『漫游』酷论坛>『影音数码技术学习交流』>[请教]请问一下Bframe和 ..
[请教]请问一下Bframe和ref的具体选择方法及对影片压缩比,画质等的影响....
辉耀@2009-08-10 15:46
对这两个参数一直是似懂非懂,大概原理作用倒是明白但完全是皮毛,而对比过不同字幕组同一或者类似类型的片子,这两个参数选取差别也很大(差不多从2-16都见过......);这两项具体对压缩比、画质以及解码难度方面的变动还是不太清楚,哪位能给详细点说一下或者给点资料?谢谢了,之前自己的资料都是点到即止一句带过没细谈........
a4840639@2009-08-10 16:22
首先要明确的就是GoP的概念,这是MPEG视频编码基本中的基本
http://zh.wikipedia.org/wiki/%E5%9C%96%E5%83%8F%E7%BE%A4%E7%B5%84
ref是最大允许的参考帧数目
AVC相对之前的视频编码一个很重要的改进就是加入了多重参考帧。相比之下传统的视频编码中P帧只能参考1个帧,B帧只能参考2个帧。在某些情况下甚至可以参考到前一个GoP中的帧(但事实上x264几乎不会输出非IDR帧的I帧,除非场景变换的帧数小于min-keyint)。
加大ref可以在某种程度上提升质量,但过多的参考帧意义并不大,相反会严重影响硬件解码器的解码兼容性,所以AVC的level对参考帧数目进行了限制。对high4.1来说这个限制(DBP)为8388608 / (Height X Width) = nREF。
据说以前的x264在打开--b-pyramid的时候ref要-1才符合DPB的限制,而现在似乎修复了这个问题。我是N卡,无从测试。
个人认为没必要为一点压缩率牺牲兼容性,可以在x264的命令行的最后加入--level 3.1(SD)/4.1(HD)来限制ref,但是x264对level的计算似乎并不是那么完美。
需要注意的是如果你把--level写在--ref的前面话,--ref会把--level所限制的ref设定覆盖。
至于--bframes,这个参数会影响x264是否使用b帧和连续使用B帧的数目。由于B帧的压缩率很高,几乎没人会设成0。当--b-adapt 1的时候,--bframes从1-16似乎对速度没多少影响。当--b-adapt 2的时候,--bframes加大会极大的影响速度,一般来说3-6比较合适,再多的话基本只是徒劳降低速度。除非你很纠结于速度,否则还是用b-adapt 2比较好。
如果在first pass的时候使用了b-adapt 2,2nd pass的时候可以用b-adapt 0来提升速度。
以上内容全部基于我自己的理解,经验有限,错误之处肯定不少,望指正
52wy@2009-08-10 16:25
这两个参数越大,同crf下,文件可以压得越小,同码率下,画质可以更高。
如果考虑硬解的话,并不推荐开太高,不考虑硬解的话只要电脑够劲,全开当然最好了^O^
roozhou@2009-08-10 17:10
x264现在默认参数是ref = 3, bframe = 3, b_adapt = 1, 关b_pyramid
真人片的话,这个参数不仅保证Level不超过4.1,而且压缩率上不吃亏。即使用ref 16 + b16,我敢说相对r3 b3能节省的码率不会超过1%。
二次元动画,ref = 6 + bframe = 4~5 + b_adapt = 2也就够了,当然如果考虑DXVA兼容性,对于1080P的需要用ref = 4。
据说很多解码器(软硬都有)对于b_pyramid支持有问题,而且是在看不出b_pyramid对于画质有什么帮助,所以我推荐别用。b_adapt 1/2对于真人片差别很小,对于动画可能有比较大的差别,具体哪个好我没仔细比较过。
fangfang@2009-08-10 19:24
LZ目前除了T12还有哪些MP3在用啊,分享一下
辉耀@2009-08-11 00:02
非常感谢几位热心讲解,再追问一句能否简单一点的表述IDR帧跟I帧的区别?之前看过的资料完全不明白.....感觉上像是给特殊专业有基础的学生看的.....
a4840639@2009-08-11 00:20
引用
最初由 辉耀 发布
非常感谢几位热心讲解,再追问一句能否简单一点的表述IDR帧跟I帧的区别?之前看过的资料完全不明白.....感觉上像是给特殊专业有基础的学生看的.....
其实这个问题我也被困扰了很久,不过现在应该能给出个明确的答复了
AVC的多重引用帧使得P帧在理论上可以引用上一个I帧之前的帧,而IDR帧之前的帧是没办法引用,但是就x264的设计而言,只要符合min-keyint设定的的I帧都会成为IDR帧,就算因为该设定出现了非IDR帧的I帧也不会有实际意义,官方的x264没有设计跨I帧引用。
roozhou@2009-08-11 09:45
I帧表示该帧解码不需要依赖其他帧解码后的数据
IDR帧也是I帧,但还要加个条件,IDR之后的所有帧都不能依赖IDR帧之前的帧。
所以,IDR帧可以用来作索引,而非IDR的I帧虽然自身的解码不受影响,但之后的帧在快进后解码会有问题,无法作索引。
myexp@2009-08-11 11:16
個人覺得ref3+b3就可以
如果將ref16+b16花費的時間放在更高的me/subme上會更好
不知這個提議如何...
MeteorRain@2009-08-11 13:02
ref3+b3足够了,剩下的时间,找个妹子去吧…… make love or warcraft
52wy@2009-08-11 18:13
喜欢睡觉挂机压片的设高点也无妨 ^O^ 我就是睡觉挂机压片党。
蓝の回忆@2009-08-11 19:29
讨厌睡觉挂机的路过...
roozhou@2009-08-11 20:24
睡觉挂机的可以写个死循环n pass,pass2完了pass3,pass3完了pass4,起来了ctrl+c掉就可以
myexp@2009-08-11 20:34
本人是睡覺,上學,外出掛機壓片黨
52wy@2009-08-11 20:44
嗯嗯 不用盯着看的感觉才是最好的。
«12»共2页
| TOP