1. Xvid参数详解
众所周知,Mencoder以其极高的压缩速率和不错的画质赢得了很多朋友的认同!
原来用Mencoder压缩Xvid的AVI都是使用Xvid编码器的默认设置,现在我来给大家冲冲电,讲解一下怎样使用Mencoder命令行高级参数制作Xvid编码格式AVI影片。经过测试,可以毫不夸张的说:在减小50%的文件体积同时能够保持原有画质!
大家平时用WisMencoder压缩电影的时候也许会感觉到虽然它速度飞快,但是关于Xvid编码器的设置却少得可怜!并没有完全发挥出Xvid编码的优势!
2.
3.
4.
先了解一些必要的概念。看完概念后可以直接看绿色字体的结论。然后反过来看分析。这样思路会较为清晰。
Q 值——Q 值是指量化值。顾名思义,Q 值用来描述一个帧的质量,每个帧都有Q 值。该值取值范围是1~31。Q 值越小,质量越好,码率越大;Q 值越大,质量越差,码率越小。(实际上,它的原始概念更复杂,我们干脆简单地认为1就是100%原质量,31就是1/31的原质量好了)。具体到一个片子的某一个帧的Q的取值:该值由编码器编码的时候根据该帧的颜色、与跟前/后帧的动态关系等自动确定,例如如果编码器认为该帧很重要,就会提高Q值来压制,以获得更高的质量。当然我们也可以指定它的取值。
IF——I-frame 的缩写,即关键帧,在VirtualDubMod被标示为 [K] 。关键帧是构成一个帧组(GOP,Group of Picture)的第一个帧。IF 保留了一个场景的所有信息(Keyframe原意是指可以单独解码、用于同步的frame,不过在MPEG系统中只有I-frame有这个特性,因为BF和PF都是预测帧,要靠IF来还原)。具体例子:电影通常1秒钟播放24帧,所以它1秒钟有24幅不同图象。设想有24幅鸟的图象,在第一幅里鸟在图的左侧,然后它逐渐向右移动。在第24帧鸟已经在图象的最右侧了。设想这24幅图象以足够快的速度按顺序播放,那么人眼看来就好象这鸟从屏幕的左侧飞到了右侧。
PF——P-frame 的缩写,即未来单项预测帧,只储存与之前一个已解压画面的差值。即仅仅描述它与前一帧的区别(虽然描述的不甚准确但相信理解含义并非难事)。比如说有一幅一只小鸟飞过一片有云彩天空的图象,这是个关键帧(keyframe)。然后我们可以使用I帧来这样描述P帧:将小鸟向左和下方各移动一英寸。
BF——B-frame 的缩写,即双向预测帧,除了参考之前解压过了的画面外,亦会参考后面一帧中的画面信息。B 帧具体怎样描述预测变化很复杂,下面以一个不很恰当的动画例子来说明一下它最主要的存在效果:
如果一个片子是24fps的,总长度为25分钟、那么它的总帧数为25min*60s/min*24fps=36000帧。这个是固定值。可以全是IF,也可以是IF混合着PF,或者IF、PF、BF都有。但是IF不能没有,都靠它还原呢。哪个个数增多,另外两个就要相应减少。因此,多使用PF可以不减画质下减小体积,加入BF会进一步减小体积。至少理论上是这样的。(BF是双向预测,主要记录变化值,因此可以少记录信息(事实虽并非如此,但就通常的效果来说记录量会减少,而PF是单向,因此记录量通常来说会多些))。除了压缩率以外,B 帧对画质的影响也是有的,因为 B 帧这种参考前后画面的特性,等于有内插(interpolation)的效果,所以可以减少噪讯。
概念部分终于说完了。OK,下面测试数据正式粉墨登场。请看分析所用的截图:这是内嵌时的状态图。当内嵌完成后把这个最终状态截取。片长1分32秒,30.303 fps,共计2815帧。内嵌所用的AVS脚本为 :==================================================================
LoadPlugin(“D:\Program Files\AviSynth 2.5\plugins\VSFilter.dll”)
AVISource(“D:\Downloads\100\100R.avi”)
textsub(“D:\Downloads\100\100R.ass”)
Tweak(0,1,18,1)
##亮度滤镜(色度,饱和度,亮度,对比度),一般把亮度设为16-18就很亮了##==================================================================
测试用源文件相关信息(草莓100%的OP),个人认为它各方面比如动态、画面清晰度等均属中等:
文件 : 39 Mb (39 Mb), 总长度 0:01:32, 类型为 AVI, 1 音频流, 品质 100 %
视频 : 22 Mb, 2041 Kbps, 30.303 fps, 清晰度: 640*448 (4:3),?DX50 = DivXNetworks Divx v5, 支持
音频 : 16.86 Mb, 1536 Kbps, 48000 Hz, 2 声道, 0×1 = PCM, 支持
====== 插入一点说明: =====
常见的DVD影碟的数据流的速率(bitrate)能够达到5000Kbps~10000Kbps,而目前常见的DVDRip通常具有1200Kbps~2000Kbps的速率,此时DVDRip的视觉效果与AVI文件的压缩比能够达到比较理想的平衡状态。如果追求优秀的视觉效果,我们可以将速率提高到2000Kbps;如果希望得到体积更小的AVI文件,可以使用小于等于1000Kbps的速率。另外DVDRip通常采用的采样率为48kHz,音频速率为96Kbps或128Kbps的MP3音频。
笼统地说,XVID比DIVX的压缩率更高,因此,同样质量的帧,XVID可以用更小的体积来达到。另外,无论DIVX也好, XVID也好,它们原本的用途是把DVD压缩成DVDrip。当我们拿到AVI时,已经是压缩过的啦。那些所谓的2pass/1pass比值等其实是针对DVD to DVDrip而考虑,为了提高2pass/1pass比值而缩小画面大小也是为了DVD to DVDrip而考虑。因此当我们内嵌AVI时,非特殊目的,以拿到与原AVI文件同样画质为最好。低了其实是再压缩,除非你要求更小的体积。因此,用XVID重编码时,强烈建议把目标码率尽可能设置成原文件码率。
这一段不太容易理解目的所在,我再笼统地进一步说明:假如现在有个DVD需要压缩,我们首先用XVID的Twopass的Twopass – 1st pass高质量预设采样量化值“w1”跑一遍,看看最大能做成多大的。一般在媲美原画质的情况下, XVID可以把DVDrip压到原DVD的1/5至1/10的(大致符合5000Kbps压到1000 Kbps)。如果1pass的结果认为最大能做到688M,那么,在压制700M的光盘时,我们就可以把这个结果做成1CD,就把它压到最大值。但是,有些人就不太方便了,他想得到更小的体积以节省刻盘成本。比如压成344M的2张1CD的文件,此时2pass/1pass=344m/688M=50%(呵呵,这里为了叙述方便,数字很特别),按照大多数人的画质要求,太低了,看过原DVD的人会明显感觉到画质降低了,因此,我们要提高这个比值,但是,作成80%的550M更是浪费。所以,此时,我们可以把画面大小缩小一点,以降低每一帧所占的体积。缩小画面尺寸,使画面的精密程度提高,使整体的大小下降。假如1个象素点占1K,那么720*680肯定比640*480画面来的大。再次1pass得到了可以作成最大430M的结果,然后2pass/1pass=344m/430M=80%,较高的比值。该压缩率下的画质降低已经很难觉察啦。具体换算我就不说了,这里主要是为AVI的内嵌做解说。(因此,这里给我们的片源同志提个醒,靠内嵌来修饰缺陷并不完全可取,为了保证内嵌质量,请大家尽可能的找些高画质的AVI片源吧。)
下面是1pass的结果截图,这里并不需要看那个1pass状态文件的——video.pass。(注意一下:这里1pass认为最大值为17M,但设成85%原码率或者称为85%原大小后,目标文件的大小变大了,这是因为在Twopass模式下2pass认为以Q3为预设采样量化值采样,达到这个码率才足够;我们再看2pass-q3-21m-2086kb-b2.jpg的截图,虽然设置为理论上的原码率,但结果变小了,同样压成了1530fbps的。可见这里2pass优先了预设采样量化Q=3值,这里只说Q值,是因为后面有其他的情况出现)
当2pass/1pass的比值低于65%的话,画质损失会比较容易看出来(尽管这一点不是100%正确)。因此,2pass测试中,对于这个好画质的临界值85%特别照顾了一下,虽然它是为了DVD to DVDri而存在,这里也给予一些测试好了。而21M的设定则是因为它理论上的帧速近似等于原文件帧速2041 Kbps,故此也特别给予照顾。
文件命名格式及由来(不标明2 pass的均为single pass模式):
1、2pass-q3-17.8m(85%max)-1661kb.avi
依次为:Twopass – 2nd pass、预设采样量化值、2pass/1pass比值85%的理论大小、理论帧速
2、2pass-q3-14.5m(85%max)-1343kb-b2.avi
依次为:Twopass – 2nd pass、预设采样量化值、2pass/1pass比值85%的理论大小、理论帧速、使用BF=2
3、2pass-q3-21m-2086kb.avi
依次为:Twopass – 2nd pass、预设采样量化值、与原文件同样帧速的理论大小、理论帧速
4、2pass-q3-21m-2086kb-b2.avi
依次为:Twopass – 2nd pass、预设采样量化值、与原文件同样帧速的理论大小、理论帧速、使用BF=2
5、q2-q3.avi
依次为:目标采样量化值、预设采样量化值。
另外要说明的是所有不加BF=2的文件的帧个数比大致均为:IF:PF =72: 2743(72+2743=2815); 所有BF=2的文件的帧个数比大致均为:IF:PF:BF=70:1172:1573(70+1172+1573=2815)。有变化也是几个到十几个帧的变动,可以忽略不记。这估计是原文件帧结构和XVID的“帧类别使用与压缩”判断机制所引起的。 以下测试均BF=2。原因是有效降低了大小,并可能增进了一点点的画质,如果使用BF后的文件与不使用BF的文件同样码率,想必使用BF的总平均帧质量要比不使用的高,总体质量也就要高。不过是不是属于无效增大质量呢?很有可能的。那么就看看q2-q3-b2与q2-q3的区别:IF单帧最大提高从44273B提高到了44290B,平均大小从20272提高到了20332;PF的单帧最大没有变化,但分析q2-q4-b2与q2-q4时也提升,所以可以认为是软件误差,单帧最小也从148提高到了154,平均大小从7432提高到了11768。而且,IF的帧个数并没有被改变。这里的2帧同样应该是软件误差。而发生改变的只有PF的个数。所以可以认为使用BF后,IF、PF被整体提升了质量,以保护BF的质量。顺带也就提升了整体质量。
至于在同样码率下,是不是出现无效增大质量呢?如果XVID确实比DIVX的压缩更具效率,那么,就确实可能存在很少的无效质量。不过,两个家伙能力应该比较接近。那么也可大致认为需要码率接近。虽然其BF威力比DIVX的貌似更大一些。如果原文件也是XVID编码,那么就更可认为码率要接近。又因为前面的分析,压缩比是针对DVD to DVDrip的,因此,当前考虑的首要不是再次降低块头。而且BF的前后参考性又可以某种程度上降低噪音。所以就这样认为吧。对于这一点,我想还应该有更强的分析工具来确定判断,很抱歉,限于能力,不能进一步分析了。如果有哪位朋友知道还请赐教一下。
以下均以不二次压缩为根本。即是码率保持不变。全部靠拢原帧速:2041kbps。
1、 在single pass模式下:
当以Q3为为预设采样量化值, BF=2时:目标采样量化值为Q值时,q2、q3、q4截图一模一样,IF、PF的结果Q值都等于预设采样量化Q值,BF则还要低2个数量级左右;目标采样量化值为目标指定帧速(设为原帧速)时,2056kb-q3-b2的实际帧速为1531kbps,比q3-q3-b2的1530kbps仅仅提升了1kbps。看来是“以Q3为预设采样量化值”限制了了目标采样量化值的设定。预设采样值为Q3的质量弱于原帧速采样。
当以Q2为为预设采样量化值,BF=2时:目标采样量化值为Q值时,q2、q3、q4截图一模一样,IF、PF的结果Q值都等于预设采样量化Q值, BF则还要低2个数量级左右;目标采样量化值为目标指定帧速(设为原帧速)时,2056kb-q2-b2的实际帧速为2072kbps,与q2-q2-b2帧速以及截图都一模一样。证实了“以Q2为预设采样量化值”则充分满足甚至超过了目标采样量化值的设定。预设采样值为Q2的质量强于原帧速采样。
另外从XVID的压缩算法本质上高于DIVX上来看,高于原帧速的采样应该属于无效。所以本轮由2056kb-q2-b2参加半决赛。
当以W1为预设采样量化值时, BF=2时:目标采样量化值为Q值时,结果文件的IF、PF、BF的Q值随Q值增大而成比例增大,因此就以q2-w1-b2(实际帧速为2072kbps)参赛;目标采样量化值为目标指定帧速(设为原帧速)时,结果文件的实际帧速是1951kbps。两个比较后,2056kb-w1-b2的IF单帧最大质量(65313B)比q2-w1-b2(63368B)提高了近200B,PF单帧最大质量(87371B)比(70758B)提高了近1300B,BF单帧最大质量(34570)比(24871B)提高了约1000B,另外,无论IF、PF、BF其平均大小却均下降,说明目标采样量化值为Q值限制了XVID的动态压缩能力发挥。故此预设采样为Q2的质量的有效率弱于原帧速采样。应该属于无效增大。
所以更好的 “2056kb-w1-b2”来参加半决赛。
2、 在Twopass模式下:
以Q值=2为预设采样量化值时,BF=2:无论是以大小(设成高与原大小或者低于原大小)还是以帧速(设成原帧速)作为目标量化值,状态截图均一模一样,实际帧速均为2072fbps。看来,2pass下,以Q值=2为预设采样量化值时,结果文件实际帧速只与Q值成比例。而且,可以看出Q=2时,达到了原帧速。为了验证这一点,以Q值=3为预设采样量化值时,BF=2再次测试,发现截图同样一模一样,帧速降为1530 fbps。证明猜想成立。那就随便选了“2pass-2056kb-q2-b2.jpg”出局半决赛。
以W=1为预设采样量化值时,BF=2:无论是以目标大小为目标量化值的提升(从结果看来,其实质还是在提升目标帧速),还是目标帧速的提升,都带来了实际文件帧速的提升。而且IF、PF、BF的实际Q值也在提升,比如IF: 2pass-w1-23.8m(85%)-2298kb-b2比之2pass-w1-21m-2086kb-b2其Q值范围虽然为1-3没变,但平均Q值从2.23提升到2.06;IF单帧最大63372字节虽然没变,但是平均单帧大小从24597字节提升到了25725字节。PF的Q值范围则从2-3提升到了1-3,平均Q值从2.66提升到了2.31;PF单帧最大倒是从68540减小到68472,不过从后面来看,这应该是属于软件计算误差,其平均单帧大小从15119提升到了16828。BF的Q值范围虽然为3-5没变,但平均Q值从4.44提升到4.10;BF单帧最大从21083字节提升到了23319字节,平均单帧大小也从2087字节提升到了2251字节。
同样:2pass-2056kb-w1-b2比之2pass-w1-23.8m(85%)-2298kb-b2进一步提升。而且是全面提升,另外,其实际帧速为2027 fbps。因此,这里就派2pass-2056kb-w1-b2参加半决赛。
3、 半决赛与决赛:
上下对比,2056-q2-b2与2pass-2056kb-q2-b1的状态截图是一模一样的。先放弃2056-q2-b2,直接对比2pass-2056kb-q2-b2与2pass-2056kb-w1-b2。比较后:那么以Q2或者W1为预设采样量化值,到底哪一个更好?原则上Q1的比Q2的更好,如果只有少量Q1,似乎我们也注意不到,如果把这部分更高码率的品质稍稍降低一点,补贴给Q2部分,似乎整体质量会有所提高,而局部稍弱。XVID作为第二代MPEG编码技术,它更强的功能就是品质高的给码率多些,低的给少些。看下面的2056kb-w1-b2的截图:甚至出现了BF的Q值低到了11,我认为这是正确的,因为貌似是静止的白屏,就算我们给予它Q2的质量,也纯属浪费。所以,这样就兼顾了品质与大小。仔细对比2056-W1-B2与2pass-2056kb-w1-b2, 2pass-2056kb-w1-b2的IF、PF、BF的单帧大小最大值均有所减小,但是平均大小却都提高了一点。说,说明2pass-2056kb-w1-b2的Q值分布更为平衡。
DivX DRF AnalyzerV0951的测试也这样认为(看橙色字色处)。所以我的结论是:相对来说,?single pass 模式不够细致。而Twopass模式则可以充分分析原文件,并得出最佳的画面质量。即削减高峰,增益中间。把全片质量从整体上提升。那么为什么BF的Q值在6-11的一段没有了呢?猜测估计是XVID在Twopass后认为该品质的帧可能会造成烂帧(比如马赛克)。所以提高了它的Q值,以防止烂帧的出现。
=== DivX DRF AnalyzerV0951 的一些测试信息=========================
DivX DRF Analyzer v0.9.5 Report!
File Name: E:\temp\100\2pass-2056kb-w1-b2.avi
FourCC: XVID
Codec: XviD0029
The Video has 2815 frames [ 00:01:32 ]
Average Frame quality is?HIGH?[Average DRF/quantizer is 2.74]
Standard Deviation: Quality is MEDIUM [Std. Deviation is 0.95]
Image Resolution is HIGH
=============================================================
DivX DRF Analyzer v0.9.5 Report!
File Name: E:\temp\100\test\2056kb-w1-b2.avi
FourCC: XVID
Codec: XviD0029
The Video has 2815 frames [ 00:01:32 ]
Average Frame quality is?MEDIUM?[Average DRF/quantizer is 3.27]
Standard Deviation: Quality is LOW?[Std. Deviation is 1.72]
Image Resolution is HIGH
=============================================================
最终结论:在Twopass模式下以W1为预设采样量化值、并且加入BF=2、指定目标帧速为原帧速的情况最为理想。实际上Twopass模式默认的就是以W1为默认预设采样量化值,以指定目标大小为默认值目标大小量化值,因为XVID原本就是为DVD to DVDrip而设计的。所以这里不考虑二次压缩的时候,应该改为指定目标帧速为原AVI即原DVDrip帧速。
问题一:BF的B值设置为多少比较合适?(这里的B值不是指Q值,而是指2个非BF间最多可以连续插入的BF的个数。)
其实从开头BF的优越性就可以看出一部分原因了,就是如果连续24个持续1秒钟都是BF,播放时会出现什么结果?又因为BF还需要参考后面的一帧,所以画质会特别烂,而且解码时会出现延时。造成影音不同步。所以:
1、如果你想获得低于帧速率900kbps的文件,你可以把B值设为3或者更大(不推荐)。
2、如果你想获得900-1400kbps左右的文件,你可以把B值设为2。
3、如果你想获得更高品质的文件,你可以把B值选项关掉。前提是你的源文件最好静态多,质量也很高。
4、如果你有着其他要求,那么,没有必要的情况下,请保持2的默认值吧。
下面是一些相关设置。没有说明的请保持默认。
问题二:下面再回头想想BF的Q 值,XVID是怎么得来的?
BF 的Q 值由BF 前后的IF/PF 共同决定。BF 的Q 值=BF 前后的IF(或PF)的Q 值的算术平均数* Quantizer ratio+ Quantizer offset。上边的数据貌似也反映了这个情况。
BF 是一个能有效提高压缩率的功能,是否降低画质,那要看如何设置了。有的设置压出来的部分BF,Q 值比PF 还低。用最恰当的BF 设置来调节码率,提高整体质量,是非常有效的,设置地恰当的话,会令全片的Q 值分布相当平均,可使DRF 测试中的第二项——Standard Deviation 轻易达到“Quality is HIGH [Std. Deviation is 0.50]”,即动、静态场景的画质一致,不会“静态尚可而动态MSK(马赛克)惊人”。通常情况下,全片BF 含量在30%—55%左右,画面效果与只用I、PF+VHQ4 跑出来的画质无显著差别。即省时又保证质量,所以一般应当使用BF。
随着XviD 的Frame Type 的不断进步(从0624 版开始FrameType 判断较以前版本已经有了相当大的提高),大动态场景BF 滥用现象(可以参看开头BF的图示,如果画面动态强,变换快,不具备连续性,那么BF就作用不大了)已经得到了较好的抑制(经过实测,在码率充足的情况下,大动态场景基本用IF PF PF PF PF… 来压了),所以BF 可以放心使用。
Twopass——二重运算。这种编码模式分为两步,首先对画面逐帧进行运动侦测,以及对全片段的运动侦测结果进行分析,然后重新以曲线平衡分配每一帧的Q值,以做到:需要高码率的运动画面可以分配更多空间、更高的码率、更低的Q值来保证画面质量;而对于不包含太多运动信息的静态画面,则可以消减分配的码率。这种把好钢用在刀刃上的做法,是XviD作为第二代MPEG4编码的核心内容。可以说,Twopass模式可以在影片容量与画面质量之间找到最佳平衡点,这也是大多数人都乐意花费更多时间采用这种方式的原因。
Twopass-1st pass——二重运算,第一次运算。这是Twopass 模式的第一步。在这一步中,编码器会用最高质量编码(默认值W=1)(这里要补充的是,Twopass-1st pass的这个值其实可以指定,并且效果并不相同,有高画质的,也有低的,请看下面的1pass截图),同时收集画面信息,并将这些信息记录信息文件(stats)当中提供第二次运算的时候参考。
Twopass-2nd pass——二重运算,第二次运算。这是Twopass 模式的第二步,编码器会根据第一次压缩时获得的影片的信息和用户指定的最终文件大小,自动分配码率,低动态的分配得少一些、大动态的分配得多一些,总之尽量保证最终文件大小为用户指定的大小。
5.
6.XviD配置参考详解【爆详细】
XviD的主界面
[Top]
Profile @ Level
[Top]
这个选项包含一些预设值,与分辨率和码率有关,按旁边的“more...”按钮再切换到Level标签可以看到预设的数值。因为我们制作的视频并不在其它视频播放设备(比如具备MPEG4解码能力的DVD播放机)中播放,无须考虑设备兼容性,所以这个选项一般可选“不限制”(unrestricted)或者默认的“AS @ L5”。
Zones
[Top]
XviD1.0以前的版本都有一个参数叫Credit,Zones继承并加强了以前的Credit功能,使之可以控制片中任意一段视频。大家知道,电影、动画片尾(或片头)都有制作人员名单 (即Credit,下同) ,而且一般没人会看。而老版XviD中Credit选项的作用就是,允许用户使用较低的质量制作Credit部分,让出更多的码率分配给正文部分,以提高正文部分的质量。而在最新的XviD1.0中,这个Credit选项却消失了,取而代之的是一个新的参数——Zones。在这里,我们可以把Zones理解成“区间”、或者说“片断”。也就是说,我们可以在逻辑上将片子分成许多段,并给这些段落一些“特殊待遇”。
Zones的使用例子
[Top]
上图例子中,0~40640帧是正片,按照正常压缩,所以需要设定W1.00。从40641帧开始是长长的黑白滚动字幕的制作人员名单,因为滚动字幕是非常浪费码率的,所以这里我们设定使用Q8来压缩制作人员名单。Zones界面如上图,本部分参数设置仅为例子,具体设置在下面说明。
Zones的设置
Start frame#——该区间的起始帧,用于指定该区间的范围。该区间的范围定义于起始帧开始至下一区间起始帧的前一帧。若没有定义下一区间,则该区间一直定义至影片结束。
Weight——权重。设置该区间的实际应用码率与原码率的比。比如,如果只想使用原码率的85%编码该区间,那么这里可以填写0.85。如果想使用100%码率(即原码率),填写1.00即可。什么是“原码率”呢?即XviD认为应该使用的码率。如果定义了权重,那么XviD在实际压缩的时候,就会将原码率乘以用户指定的权重,作为该处实际的码率。
Quantizer——设置该区间帧的Q值。可以强迫编码器将这段区间使用某一Q值编码(本选项通常用于Credit部分的编码)。
Begin with keyframe——本区间的第一帧强迫使用IF。一般选择此选项。
Greyscale encoding——使用灰度。编码出的画面是黑白的,适合于黑白画面(比如片尾的黑白Credit),可更加降低本区间的码率。
Chroma optimizer enabled——色度优化,可以改善颜色过渡不自然现象。该选项对画面颜色有优化作用,推荐选择。勾选此项会稍微降低编码速度,所以可以选择仅对Weight设置成1的电影正文部分应用此设置。由于Chroma optimizer是在色度上做文章,所以开启了Greyscale encoding的时候可以考虑关掉 Chroma optimizer,可以在一定程度上提高一些编码速度。
Cartoon Mode——卡通模式。这个模式可以让画面显得更干净一些,但这就意味着要抹杀细节。制作动画的时候可以使用。(下面会有一个小结专门讲解Cartoon Mode)
BVOP sensitivity——BF灵敏度。值越大,使用BF的数量越多。如果设定负值,则会减少BF用量。制作CREDIT段落的时候本参数可以适当设置大一点,用更多的高压缩率BF去压Credits,参数可以考虑20或40。
注意:如果要在Credit使用Quantizer模式的话,要在Twopass-1st pass中也使用相同的设置才有效。而若要用Weight模式则只需在Twopass-2nd pass中设定既可(从某种意义上讲,这样可令Weight模式下的Two-pass-1st pass稍微快一点)。
Zones应用于CREDIT的参数设置建议: 演职员名单的Q值可限定为8或者9,这样既可以保证名单上的文字能够分辨出来,也可以大幅降低Credit这部分的视频文件体积。有时,10分钟左右的Credits压出来也只有6、7MB,这对某些拥有5、6分钟以上较长Credit的1CD DVDRip影片制作来说,帮助是较为明显的。
Zones使用上的心得
[Top]
除非出现极端的现象,否则不建议针对正片(即影片中除广告、制作人员名单之外的正文部分)使用Zones。有些用户喜欢自作聪明地指定许多Zones人为地干预码率控制。实践证明,这种行为是非常不明智的,这样会严重干扰XviD对于码率的控制和计算,只会导致容量失控(Oversize或Lowsize)或画质下降。XviD的码率控制几乎是所有编码器中做得最好的,所以不要担心,把一切交给XviD去做吧。
考虑到观众
[Top]
现在不少影片的制作人员名单采用了带有画面的渐变或滚动字幕,画面通常为一些拍摄花絮或影片插图、设定。考虑到观众的观赏需要,这类名单不适合使用Zones来降低码率。所以,压缩的时候应当时刻考虑到观众的心情。
Cartoon Mode
[Top]
(本部分作者:Bopirit,收录时略有修改)
XviD有个动态判断标准值,指判别画面是否有动态的标准。若高于这个值,则判断画面为动,编码时记载动态信息;若低于这个值则判断为画面不动,不记载动态信息。这个通常很低,就是说,很小一点差别都会判断为动态。
打开Cartoon模式后,这个标志的值会加大,相应的,小的动态变化会忽略。对动画来说,最直接的效果就是消除了浮动的细微噪点(特别是在色块和线条之间,这种噪点即使降噪也会出现)。因为用了Cartoon模式,这些噪点造成的小度变化被忽略掉,因此会省出大量码率。在的实验中,多在8%以上。但是,因为画面的变动相对较大,PSNR会降低(虽然对动画来说这算不得降低),而且对于使用H.263量化的动画,还会让画面感觉更加模糊;而对于MPEG量化,这个Cartoon模式可以有效降低MPEG量化编码动画片的副作用,尽管PSNR降低,但实际上画面看起来更好。可以配合MPEG/MPEG Custom量化方式使用。
Q值
[Top]
Q值是指量化值(依据作者个人习惯不同,这个值在不同文章中的叫法有所不同,比如“量化值”、“量化级别”、“Quant”等等,本文统一称作“Q值”)。顾名思义,Q值用来描述一个帧的质量,每个帧都有Q值。该值取值范围是1~31。该值由编码器编码的时候根据该帧的颜色、与跟前/后帧的动态关系等自动确定。Q值越小,质量越好,码率越大;Q值越大,质量越差,码率越小。(本概念在XVID制作中非常重要,Q值直接关系到影片的画面质量。)
Encoding mode
[Top]
Encoding mode即编码模式。XviD一共提供两种编码模式。一种是Single pass,另一种是Twopass。Twopass分两步,分别是1st pass,和2nd pass。下面对这两种编码模式分别进行讲解。
Single pass
[Top]
Single pass即一次运算,Single pass有两种模式(通过Target xxx按钮切换)Target quantizer(目标Q值)和Target bitrate(目标码率)。Single pass模式编码较简单,速度也很快,但是最终质量不如Twopass模式好。可用于实时采集。
Target bitrate(CBR)——目标码率模式,单位kbps。最简单的单线编码,选择平均码率后编码。文件大小相对容易控制。
Target quantizer(VBR)——目标Q值模式,动态码率。
Two pass
[Top]
Two pass即二重运算。这种编码模式分为两步,首先对画面逐帧进行运动侦测,以及对全片段的运动侦测结果进行分析,然后重新以曲线平衡分配每一帧的Q值,以做到:需要高码率的运动画面可以分配更多空间、更高的码率、更低的Q值来保证画面质量;而对于不包含太多运动信息的静态画面,则可以消减分配的码率。这种把好钢用在刀刃上的做法,是XviD作为第二代MPEG4编码的核心内容。可以说,Twopass模式可以在影片容量与画面质量之间找到最佳平衡点,这也是大多数人都乐意花费更多时间采用这种方式的原因。
Twopass-1st pass——二重运算,第一次运算。这是Twopass模式的第一步。在这一步中,编码器会用最高质量编码(量化值2),同时收集画面信息,并将这些信息记录信息文件(stats)当中提供第二次运算的时候参考。
Twopass-2nd pass——二重运算,第二次运算。这是Twopass模式的第二步,编码器会根据第一次压缩时获得的影片的信息和用户指定的最终文件大小,自动分配码率,低动态的分配得少一些、大动态的分配得多一些,总之尽量保证最终文件大小为用户指定的大小。
注1:不要在第一重和第二重运算之间更改XviD设置(某些特殊项除外)、改变AVS脚本(如果用到AVS)或加入、删除滤镜,这些都将会造成不正确的结果。
注2:计算2pass容量的时候,应使用1K=1024Bytes的换算方法。且计算结果不包含音频大小。
Twopass-1st pass面板
[Top]
Full Quality first pass——全质量第一次运算。在 Twopass - 1st pass 时以你当前的设置进行编码,通常是没必要的。会降低1st pass编码速度。
Discard first pass——不输出第一次运算结果。一般都会打开这项,否则你可能会得到一个容量高达几个G的无用的AVI文件。
2nd pass
[Top]
这个对话框只有在2PASS的时候才可用,其的设置比较复杂,建议保留默认设置。
I-frame boost——额外分配给IF的码率。如果IF的Q值较小(如1或2),此项可以设置为0。
I-frames closer than... (frames) X ...are reduced by (%)Y(X和Y代表所设定的参数)——意思是,若两个IF的距离小于X(通常是连续的闪电效果或者连续大动态动作场面会出现这种情况),则靠后的IF码率减小Y%。如果IF的Q值较小,Y可以稍微设置大一些(可增加5%~8%)。
Overlflow treatment——码率补偿与缩减。Max overflow improvement和Max overflow degradation控制当编码器遇到不足码率或者码率过大的场景时进行修正补偿的阀值,即超码或不足码到达什么程度,编码器会进行修正。值越大,修正速度越快(即需要修正的帧较少,整体编码速度就加快),但是这可能会造成无法为别的更需要码率帧保留码率。如果Q值波动较大,可以将这个值减小到20~30,这样可能会使预测的文件大小受到影响。除非遇到特殊情况,本功能不建议使用!
Overflow control strength %——控制每个需要补偿的码率过大/不足的帧被补偿多少。除非遇到特殊情况,本功能不建议使用。
Curve compression——曲线压缩。曲线压缩的作用就是将码率较高的帧的码率拉下来,将码率较小的帧的码率提上去,让码率曲线平缓一些。此选项不建议使用,也就是保持默认设置“0”。由于现阶段XviD的动态分配(即曲线压缩)做得不是很好,所以直接采用了一种linear scale(即线性压缩)把1pass的码率曲线直接往下调。除遇到特殊情况外,不建议使用曲线压缩功能。
若想了解更多曲线压缩以及线性压缩的细节,请参阅本文附录《曲线压缩与线性压缩》。
Profile标签
[Top]
Quantization type
[Top]
量化方式。此处支持三种量化方式。分别是H.263、MPEG、MPEG Custom。应根据影片的特性确定该选项。要了解这三种量化方式的详细信息,请参见附录《三种量化方式解说》。
Adaptive Quantization
[Top]
其实这个选项就是XVID 1.0之前版本中的Lumi masking。加大图像亮/暗部等人眼不容易注意到的部分的压缩率,可能会产生画面扭曲。本选相应当谨慎使用,因为它看起来弊大于利。所以如果不是对缩小文件体积缩小有迫切的需求,最好不要使用。
Interlaced Encoding
[Top]
隔行处理。适用于有交错的片源。一般来说不需要开启。
Top Field First
[Top]
决定场序。如果选中,则为顶场(奇数场)先,否则为底场(偶数场)先。
Quarter Pixel
[Top]
1/4像素(简称QP,下同)。MPEG-4 用的 QPel 即 1/4 Pel,就是再补出1/2像素像素和1/2像素之间的1/4像素。能保留更多的细节(比不用QP多)和得到更精确的动态补偿,适合高2-PASS/1-PASS比值时采用。但会降低损失近1/3的编码速度。
通常情况下,2-PASS/1-PASS比值在50%以下,不推荐使用。800K以下的低码率使用时,部分场景的画面会产生严重的色彩飘逸现象,看上去像粘稠的液体流动(干净、低动态片源除外)。视频码率越高,使用加QP后的效果越好,而且中低码率下去色块的作用也非常明显。
Global Motion Compensation
[Top]
全域动态补偿(简称GMC,下同)。能在缩放(把镜头拉近)以及旋转(转动相机)的情形下有所帮助,尤其是画面中的物体的外型是固定的,仅在尺寸以及位置上有所不同时。若要处理的影片是自然景观或风景片时,可以开启GMC。使用该选项制作的影片可能只有XviD自己的解码器才能正常解码,若使用ffdshow等解码器解码可能存在兼容性问题,用前请考虑。
B-VOPs
[Top]
B-frame
[Top]
B-frame设定。若去掉该选项前面的对勾,则编码中不使用B-Frame(简称BF,下同),只用IF、PF来压。
Max consecutive BVOPs——最大连续BF数量。举个例子,设置2,就是说在两个PF之间(或IF/PF之间)最多会连续插入两个BF,即…IF/PF BF BF PF…;如果设置3,则最多会出现三个连续BF,即…IF/PF BF BF BF PF…。此处,应根据片源具体情况来设定,如果片源动态比较小,则可以适当开大一些,比如3、4;如果码率很充足或片源很复杂,包含大量大动态场景、运动不规则、场景切换频繁等等,则应减少BF用量,甚至不用BF。
请注意:多少个BF连续出现,没有数量限制(你可以设置成1,也可以设置成1000)。具体用多少XVID自行判断,这个地方只设定最大值。
Quantizer ratio——BF的Q值倍数。计算BF的Q值的参数。
Quantizer offset——Q值计算偏移值。计算BF的Q值的参数。(BF的Q值计算方式下面解释)
Packed bitstream——开启BF的XviD制作的avi,在播放时会延迟一帧(就是以前播放时画面第一帧的那个黑色画面,告诉你该视频使用了BF,如下图)(制作成ogm、mkv、mp4则不会)。而Packed bitstream选项的作用是解决这个问题。不过开启2个以上的连续BF并用到了Packed bitstream的时候,只有XviD的解码器可以正常解码。而用老版本的DivX/ffdshow解码,水平移动的画面会不顺畅(画面朝移动方向抖动)(ffdshow-20040225以后的版本解决了这一个问题)。
Closed GOV——在编码新的IF之前插入一个PF来关闭前一个帧组,否则解码时有可能出现问题。此选项要勾选。
BF的Q值的计算:BF的Q值由BF前后的IF/PF共同决定。
代码:
BF的Q值=BF前后的IF(或PF)的Q值的算术平均数* Quantizer ratio+ Quantizer offsetBF是一个能有效提高压缩率的功能,是否降低画质,那要看如何设置了。有的设置压出来的部分BF,Q值比PF还低。用最恰当的BF设置来调节码率,提高整体质量,是非常有效的,设置地恰当的话,会令全片的Q值分布相当平均,可使DRF测试中的第二项——Standard Deviation 轻易达到“Quality is HIGH [Std. Deviation is 0.50]”,即动、静态场景的画质一致,不会“静态尚可而动态MSK惊人”。而且在用VHQ4压片时还能省去不少时间,因为BF不像I、PF那样要作VHQ4处理。通常情况下,全片BF含量在30%—55%左右,画面效果与只用I、PF+VHQ4跑出来的画质无显著差别。即省时又保证质量,所以一般应当使用BF。
随着XviD的Frame Type的不断进步(从0624版开始FrameType判断较以前版本已经有了相当大的提高),大动态场景BF滥用现象已经得到了较好的抑制(经过实测,在码率充足的情况下,大动态场景基本用IF PF PF PF PF… 来压了),所以BF可以放心使用。
有些朋友对本部分设置可能还不是很清楚,的确,BF的设置是XviD中最难掌握的部分,参数需要精心搭配。
针对一些情况,本文给出了参考参数设置,请见附录-BF推荐设置。
Motion标签
[Top]
Motion search precision——运动检测精度,决定着给定码率下的画面质量。等级越高,画质越好,速度越慢。一般选6而不选5,因为选5只快10%。
设置:
1 – 3: 基本没有什么区别。
4-high:XVID使用半像素插值(half pixel interpolation=HPel=1/2像素)的技术达到更好的结果,而整个16x16的微区块被标示上两帧之间的运动向量(译者按:ffdshow有显示这个向量的功能,很有趣)
5-very high:XviD 使用4分运动向量(inter4v motion vectors)的方式,即16x16的微区块中的4个8x8区块,被标示各自的运动向量。
6-ultra high:运行更多边的运动检测(会减慢10%的编码速度)。
VHQ mode——搜寻宽度。等级越高,画质越好,速度越慢。这个选项会很大幅度的降低编码速度,若机器够快,可选4。想了解更多VHQ的功能,请参阅本文附录《VHQ模式》。
Use VHQ bframes too——在BF上应用VHQ。在原先版本的XviD中,VHQ Mode是不被应用在BF中的。但是从XviD1.1版本开始,只靠选中本选项,就可以在BF中应用VHQ Mode了!
Use chroma motion——通过颜色信息来判断动态。会降低编码速度5%~10%,但是有利于画面,推荐选择。
Turbo——超级模式。更快的判断BF和QP的动态。
Frame drop ratio——丢帧率,这个参数保持默认值0,并且不要改变。
Maxinum I-frame interval——最大IF帧距。该参数一般为帧率的10倍。比如,一般DVDRIP的帧率为23.976fps,则该处就填写240。有人喜欢认为将这个值调小,以增加IF的数量,达到提高画质的目的。此项可根据片子情况适当减小。但是在200以上为宜,如果太小会适得其反——文件OVERSIZE、IF占用大量码率导致BF/PF质量过低,反而不利于画质。
Quantization标签
[Top]
Quantization标签中的设定非常重要,直接关系到片子的质量。
Min I-frame quantizer——IF的Q值最低值。
Max I-frame quantizer——IF的Q值最高值。
Min P-frame quantizer——PF的Q值最低值。
Max P-frame quantizer——PF的Q值最高值。
Min B-frame quantizer——BF的Q值最低值。
Max B-frame quantizer——BF的Q值最高值。
Trellis quantization——进阶高质量量化模式。若选择该选项,编码器会选择性的降低某些画面的质量,来达到最大限度的提高片子的整体质量。可配合H.263量化方式使用。
各种类型帧的Q值设定需要注意以下原则
设置时应尽量保证IF质量,因为BF和PF的质量都由IF决定。
由于XVID对于BF质量的把握越来越好,比较黑暗的场面出现烂帧的几率也有所减少,所以BF的Q值上限可以放心的设大一些。
有些朋友提出,不要限制Q值范围,也就是全部都保留1/31的默认值,让XviD自行掌握Q值分配。笔者认为这么讲不无道理,但要看什么情况。在一些情况下,XviD自身的Q值分配算法是不能适应某些影片的(比如通篇画面都很昏暗的影片等等),这个时候,就需要我们手工来限制Q值范围。也就是说,是否限制Q值、限制多少,并没有一个确定的答案,而应当由片子本身的特性。有经验的RIPPER可以迅速的根据影片画面判断应该如何配置,也就是所谓的“经验”。所以,Q值的设定应由影片本身和制作要求灵活应变,不应一味追求所谓“理想值”。笔者认为,这点是应当特别注意的。
综合设置
[Top]
请注意,从xvid1.2开始,Debug功能被安排在了XviD Configuration项目中,按Xvid主窗口下方的Other options按钮即可进入。
Encoder
[Top]
FourCC used——FourCC 用以确定你编码好的电影用什么样的解码器来播放,默认值为"XviD",这意味着将使用"XviD directshow filters",保证了最大的质量和兼容性。你也可以选择使用"DivX 4.x"或"5.x"的解码器来回放你完成的电影,但是它们不一定就能正常播放。
Number of threads——线程数。XviD针对现在逐渐流行起来的支持HT技术或双内核处理器做出了一些优化。若您的处理器支持HT技术或有双内核,请设置为2,否则请保持默认。
Print Debug info on each frame——在每帧上打印debug信息,非专业人员不要选:)
Display encoding status——显示编码状态,就是我们在压制的时候看到的XviD Status窗口。如下图:
Common
[Top]
Performance optimizztions——性能优化。可以选择特定的CPU指令集优化。可以对编码速度的提高起到一定作用。建议选择自动选择指令集优化。
附录
[Top]
如何知道1pass容量
[Top]
获取1pass容量其实很简单。当大家开始用XviD压制1st-pass的时候,XviD会跳出来一个状态窗口,这个窗口会实时显示压制过程中各种各样的信息。当1pass压制完成的时候,这个窗口会显示1pass的最终结果。如下图:
右边红框部分所示的容量即为1pass容量。用计算出来的2pass容量除以这个值,就能计算出来2pass/1pass比值了。
BF参考设置
[Top]
2-PASS/1-PASS比值在70%以上
[Top]
由于容量相对宽松,故限制了IPB的Q值范围。
Max consecutive BVOPs --------- 2
Quantizer ratio --------------------- 1.20
Quantizer offset -------------------- 0.60
Quantization设置:2、2、2、3、2、4
2-PASS/1-PASS比值在60%--70%之间
[Top]
Max consecutive BVOPs --------- 3
Quantizer ratio --------------------- 1.30
Quantizer offset -------------------- 0.80
Quantization设置:2、2、2、4、2、5
2-PASS/1-PASS比值在50%--60%之间
[Top]
通过降低分辨率和/或使用降噪滤镜降低压缩难度,变相提升2-PASS/1-PASS比值。
Max consecutive BVOPs --------- 4
Quantizer ratio --------------------- 1.40
Quantizer offset -------------------- 0.80
Quantization设置:2、3、2、3、2、31
2-PASS/1-PASS比值在50%以下
[Top]
通过降低分辨率和/或使用降噪滤镜降低压缩难度,变相提升2-PASS/1-PASS比值。如果降低分辨率(直到你已不能接受的水平)和/或使用降噪滤镜(画面模糊到你已不能接受的水平)时,仍然不能将2-PASS/1-PASS比值提升到至少55%的水平,则考虑提高视频文件体积,或者换用其它编码器来完成压缩工作(如VP6、RV10)。
这种方法可以保证制作出来的所有视频文件的Average DRF/quantizer控制在2.5-3.5之间(I、PF的Q值为2或3),Std. Deviation控制在0.40-0.60之间。也就是说没有明显的压缩瑕疵,如MSK、噪点等(其它需要配合的设置还包括:VHQ4、hvs系列量化模式)。
基本概念解释
[Top]
本文用到了一些MPEG4中的基本概念,这些概念在本文中会经常提及。所以这里特意为新手准备了概念解释,希望新手朋友在阅读之前掌握这些概念。没有收录进来的一些针对性较强的概念已经在正文中进行重点的解释。
三种帧类型
[Top]
IF——I-frame的缩写,即关键帧。关键帧是构成一个帧组(GOP,Group of Picture)的第一个帧。IF保留了一个场景的所有信息。
PF——P-frame的缩写,即未来单项预测帧,只储存与之前一个已解压画面的差值。
BF——B-frame的缩写,即双向预测帧,除了参考之前解压过了的画面外,亦会参考后面一帧中的画面信息。
量化方式
[Top]
H.263——推荐700~900K的码率(比如1CD制作)时使用。保留画面细节不及MPEG量化方式好,但可以达到较好的画面降噪效果,可以让画面看起来更干净一些。推荐压制动画使用本量化方式。H.263 的量化方法,顾名思义,就是使用 H.263 这个压缩规格所使用的量化方法,量化的时候,8x8 的像素方块内的所有 DCT 系数,全部除以同一个数字。(这个动作就叫做量化)例如全部都除以 32,如果有一个 DCT 系数为 15,小于 32,经过相除之后,会被量化为 0,如此便可以省下很多记录的 bits。当然,除的数字越大,量化的误差也就越大,品质也就越差,但是压缩率会越高,压出来档案会越小。我们会利用另一个参数来调整量化的误差,控制最后量化的品质和档案的大小,这个参数叫做 Quantizer。量化的系数会再乘上这个 Quantizer 的倍数,例如原本要除的量化系数是 32,Quantizer 是 2,对应的放大倍数也是 2,最后真正要除的量化系数就变成 32*2=64。所以 Quantizer 越大,要除的量化系数就越大,量化误差就越大,品质就越差,但是档案也越小。H.263 的量化方法还规定,相邻的两个 MacroBlock 的Quantizer 不能相差超过 2。
MPEG——建议高码率情况下(比如2CD制作)使用,能保留较多细节,但在某些情况下可能造成噪声等副作用。若在制作动画时使用,可能引起色彩过度不自然、颜色边界处出现噪声等副作用,此时,可搭配Cartoon Mode降低这些副作用。MPEG 的量化方法,高低频系数可以除以不同的量化系数,可以视情况将高频削多一点。这个 8x8 的量化系数,也就是 Quantize Matrix(量化矩阵)。
MPEG Custom——可以加载MPEG自定义量化模板。你可以依照影片特性,自订最适当的量化矩阵。比如,压电影的时候常用的hvs-best-picture模板可以兼具MPEG和H.263量化方式的优点,即画面细节和降噪都能得到兼顾。若要采用MPEG Custom量化方式,点击Edit Matrix…按钮加载想要的量化模板即可。本选项只建议对于量化模板有较深研究的专家使用。XviD1.0安装目录下有一个XviD_Quant_Matrices.zip,里面包含了数种常用的量化模板,比如有名的HVS量化系列,在DOOM9网站或论坛上可以找到更多的量化模板。
噪声
[Top]
这里所谓“噪声”,并不是我们能够听到的实际意义上的噪声,而是指的画面上不断闪动的亮斑点或色斑点。画面出现噪声一般有以下几方面原因:1.电影:由于胶片本身的感光性能或采集过程不佳造成(老片尤其严重);2.动画:TVRIP录制时电视信号存在干扰(也就是我们常说的“雪花”);3.采用了VHS或老旧的LD片源;4.由于压制不良,导致色彩之间的边缘处有细小的色斑存在(看起来像“马赛克”)。这些噪声在画面上不停的闪烁、移动,造成惊人的码率浪费。因此需要尽量将这些噪声“过滤”掉,以节省码率,增高片子的整体质量。要想过滤噪声有许多方法,比如在AVS脚本中加入降噪滤镜等,但这不是本文讨论的重点。
Q值(即DRF值)
[Top]
在编码时,为了达到某个码率,mpeg4编解码器会对每一幅画面进行压缩。而压缩程度则取决于码率、图像内容的复杂度及动态大小。对于每一帧,一旦确定怎样去压缩以后,就会产生DRF值。DRF值为2的时候,效果最佳(在XVID中,quantizer还可能达到1)。DRF值等于31时,效果最差。8以上的DRF值,可被认为效果很差。DRF/quantizer实际上代表了编码器在降低帧大小时所丢弃的信息量。
Bits/(Pixel*frame)
[Top]
数据密度。码率并不是视频/音频质量的唯一指标,一个更重要的指标是Bits/(Pixel*frame) (数据密度),它反映了平均记录每象素所用的数据量。如果Bits/(Pixel*frame)比较低,那么DVDrip的视频流中I帧间的预测帧(P帧/B帧)的误差会比较大,视频质量会下降,(MSK等…)。制作DVDRIP的软件(例如GK)都要计算/给出这个Bits/(Pixel*frame)值。一般认为,较好的视频质量需要Bits/(Pixel*frame)>0.2(如左图)。
Video Size/1st Pass Size
[Top]
除了码率和Bits/(Pixel*frame)之外,Video Size/1st Pass Size 也是一个质量指标。DVDRIP压制时,码率的分配不是线性的,变化的(动作)场景的码率将会高,而静态场景的码率低。Twopass-1st pass就是用于确定码率分配。而后,根据设定的最终文件大小,将算出的码率分配曲线等比例压缩,得到最终Twopass-2nd pass的码率曲线。Video Size/1st Pass Size反映的就是这个压缩比。一般认为,较好的视频质量需要Video Size/1st Pass Size >55%。
曲线压缩与线性压缩
[Top]
(作者:Silky,收录时略有改动)
「曲线压缩」的意思就是将码率较大的帧拉下来,降低一点码率,码率较小的帧补上去,提高一点码率。也就是将原本上下震荡的码率曲线变平一点,最大和最小的差距不要那么大。压得越平,码率曲线就越接近一条固定的直线,也就是变成近似于CBR。不过这样实在很没有意义不是吗?本来码率高的帧,就是因为这个帧需要较多的码率纪录,你现在把它拉下来,画质岂不更惨?而码率低的帧,就是不需要花那么多码率记录的帧,你又给它多补一些码率,岂不浪费?
根据 Koepi 的说法,当码率极低的时候,很多帧的码率都不够。此时如果把少数几个码率很高的帧拉低一点,把省下来的码率分给其它帧,立刻会对这些游走在底线边缘的帧的画质有很大的帮助。曲线压缩的目的便是牺牲少数几个帧,让大部分的帧增进画质。而,这少数几个码率超高的帧,又通常都是高动态的画面。人眼对高动态的画面比较无法精确的判断、分辨出画质的好坏。所以牺牲这几个帧,增进大部分时间看起来的品质,可以说是相当划算。好像还蛮有道理的。不过如果曲线压缩的参数设定得不好的话,对画质会有很大的伤害,而且在不是超低码率的情况下,曲线压缩也没有意义。所以最好的作法还是,让编码器自行视情况调节,使用自由的 VBR,这样压出来的结果会越接近 CQ「固定品质」。(当然,如果码率实在设得太低,CQ 压出来的结果就是「固定烂品质」 这时适当的运用曲线压缩,以少换多,就有它的价值了) 。
经过许多人的测试经验,最后的结论就是 linear scaling「线性压缩」的结果最好。 线性压缩时,1st pass与曲线压缩无异,只是2nd pass的时候,就直接把 1st-pass 压出来的码率曲线按一定比例整个往下平移,降低码率,达到你所设定的目标大小为止。由于曲线只是整个往下平移,使得最终的码率变小,而不改变其原本的震荡幅度,所以称为「线性的调整大小」。 线性压缩使原本复杂,需要高码率的画面还是分到较多的码率;简单,不用太多码率的画面也不会浪费了码率。线性调整压出来的结果较接近「完美的 VBR」,也就是固定的平均品质,不会有几个帧突然发生明显劣化的情况。
使用线性压缩的方法很简单,2nd-pass的时候,把Two Pass设定底下的High bitrate scenes degradation % 和 Low bitrate scenes improvement % 两个设定都设为 0,这样跑 2nd-pass 的时候就会自动根据 XviD Codec 内建的 scaling 算法,做线性调整。
VHQ模式
[Top]
VHQ与IF、BF、码率控制没有任何关系,但VHQ越高,图像的品质越高。
MPEG系的编码器在压缩时以每个16x16像素块大小的MacroBlock为单位进行动态预测。在VHQ模式下,它先是进行简单的block-mode-decision(区块模式判定),其间会对画面内的每一块MacroBlock施以优化,然后再按三个不同档次(VHQ2、VHQ3、VHQ4)作进一步动态预测,从而更进一步的减少纪录信息所需要的容量。
使用VHQ(特别是VHQ4)可以降低Q值、使画面更干净、保留更多的细节,但这些都只是VHQ的副作用,VHQ的主要功能是提高压缩效率(当Q值一定时,令文件体积更小),以便更好的达到目标文件大小。
注意:
在1-PASS过程中,VHQ模式处于自动关闭状态,因此不必担心两个PASS之间的设置不同。
在XviD 1.0正式版中,VHQ模式已经能与BF、Quarter Pixel、Chroma motion、Adaptive Quantization、GMC功能同时开启使用了。
后记与人员列表
[Top]
整个XVID的重要参数到这里差不多都介绍完了。笔者还是坚持一点:每个片子都有其自身特点,要想用一套“万用参数”来“通吃”所有片子是不可能的。有朋友非常心急,一上来就要找出来一套适用于手头这部片子的“理想值”,但是这样往往以失败告终。所以压片之前,不要怕麻烦,多抽几段来试压,然后根据每个参数的作用进行配置,相信你会制作出优秀的DVDRIP。
XviD是一款相当强大的MPEG4编码器,如果参数配置得当,再配合良好的AVS脚本的话,可以制作出来容量只有DVD容量的1/5(MP3音频),但画质和DVD相比丝毫不差的影片!到现在为止,XviD仍然有很大的潜力可以发掘。希望大家永远不要停止探索的脚步,去获得更好的质量!
本文的编写及内容不断丰富、修订的过程中,得到了很多朋友的帮助,在这里,编者dgwxx向他们表示最诚挚的谢意。另外:如果您撰写文章或创作其他作品(如编译自己版本的XVID)的时候引用了本文的内容,请一定要注明哪些内容出自本文,这是对于作者们的尊重,同时也有助于技术的交流。在线版本的放出,间接解除了强制复制保护。您现在可以任意复制本文的任何文字、图像内容。但是这个许可仅限于用作技术交流,任何用于商业行为的复制行为、任何恶意抄袭均将受到本文作者团队的最严厉追究。
本文由多位作者共同完成。
参与编写的作者名单(依照字母顺序排列):Bopirit、Dgwxx、RKinGBo、tct66、大卫
感谢以下朋友(按内容时间先后排列):
Nemolus——在2.0版本修订过程中提出了大量意见、建议。
DvDSharer——一些概念解释;提出2.0版的修订。
Skywalker——Global Motion Compensation的改正意见。
本文编写过程中参考的资料:《高品质DVDRIP制作进阶教程》(作者DvDSharer)、《XviD-1.0的設置參考》(作者tct66)、《XVID的中文化解释》(作者大卫)、《XVID中文设置全释1.3+》以及DOOM9.org的相关英文资料。