###Date: 2018.3.24php
===============================================================html
1. Xvid参数详解linux
众所周知,Mencoder以其极高的压缩速率和不错的画质赢得了不少朋友的认同!
原来用Mencoder压缩Xvid的AVI都是使用Xvid编码器的默认设置,如今我来给你们冲冲电,讲解一下怎样使用Mencoder命令行高级参数制做Xvid编码格式AVI影片。通过测试,能够绝不夸张的说:在减少50%的文件体积同时可以保持原有画质!
你们平时用WisMencoder压缩电影的时候也许会感受到虽然它速度飞快,可是关于Xvid编码器的设置却少得可怜!并无彻底发挥出Xvid编码的优点!
程序员
2. web
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模式):
一、2pass-q3-17.8m(85%max)-1661kb.avi
依次为:Twopass – 2nd pass、预设采样量化值、2pass/1pass比值85%的理论大小、理论帧速
二、2pass-q3-14.5m(85%max)-1343kb-b2.avi
依次为:Twopass – 2nd pass、预设采样量化值、2pass/1pass比值85%的理论大小、理论帧速、使用BF=2
三、2pass-q3-21m-2086kb.avi
依次为:Twopass – 2nd pass、预设采样量化值、与原文件一样帧速的理论大小、理论帧速
四、2pass-q3-21m-2086kb-b2.avi
依次为:Twopass – 2nd pass、预设采样量化值、与原文件一样帧速的理论大小、理论帧速、使用BF=2
五、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。
一、 在single pass模式下:
当以Q3为为预设采样量化值, BF=2时:目标采样量化值为Q值时,q二、q三、q4截图如出一辙,IF、PF的结果Q值都等于预设采样量化Q值,BF则还要低2个数量级左右;目标采样量化值为目标指定帧速(设为原帧速)时,2056kb-q3-b2的实际帧速为1531kbps,比q3-q3-b2的1530kbps仅仅提高了1kbps。看来是“以Q3为预设采样量化值”限制了了目标采样量化值的设定。预设采样值为Q3的质量弱于原帧速采样。
当以Q2为为预设采样量化值,BF=2时:目标采样量化值为Q值时,q二、q三、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”来参加半决赛。
二、 在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参加半决赛。
三、 半决赛与决赛:
上下对比,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=二、指定目标帧速为原帧速的状况最为理想。实际上Twopass模式默认的就是以W1为默认预设采样量化值,以指定目标大小为默认值目标大小量化值,由于XVID本来就是为DVD to DVDrip而设计的。因此这里不考虑二次压缩的时候,应该改成指定目标帧速为原AVI即原DVDrip帧速。
问题一:BF的B值设置为多少比较合适?(这里的B值不是指Q值,而是指2个非BF间最多能够连续插入的BF的个数。)
其实从开头BF的优越性就能够看出一部分缘由了,就是若是连续24个持续1秒钟都是BF,播放时会出现什么结果?又由于BF还须要参考后面的一帧,因此画质会特别烂,并且解码时会出现延时。形成影音不一样步。因此:
一、若是你想得到低于帧速率900kbps的文件,你能够把B值设为3或者更大(不推荐)。
二、若是你想得到900-1400kbps左右的文件,你能够把B值设为2。
三、若是你想得到更高品质的文件,你能够把B值选项关掉。前提是你的源文件最好静态多,质量也很高。
四、若是你有着其余要求,那么,没有必要的状况下,请保持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.
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压出来也只有六、7MB,这对某些拥有五、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.26三、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…。此处,应根据片源具体状况来设定,若是片源动态比较小,则能够适当开大一些,好比三、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设置:二、二、二、三、二、4
2-PASS/1-PASS比值在60%--70%之间
[Top]
Max consecutive BVOPs --------- 3
Quantizer ratio --------------------- 1.30
Quantizer offset -------------------- 0.80
Quantization设置:二、二、二、四、二、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设置:二、三、二、三、二、31
2-PASS/1-PASS比值在50%如下
[Top]
经过下降分辨率和/或使用降噪滤镜下降压缩难度,变相提高2-PASS/1-PASS比值。若是下降分辨率(直到你已不能接受的水平)和/或使用降噪滤镜(画面模糊到你已不能接受的水平)时,仍然不能将2-PASS/1-PASS比值提高到至少55%的水平,则考虑提升视频文件体积,或者换用其它编码器来完成压缩工做(如VP六、RV10)。
这种方法能够保证制做出来的全部视频文件的Average DRF/quantizer控制在2.5-3.5之间(I、PF的Q值为2或3),Std. Deviation控制在0.40-0.60之间。也就是说没有明显的压缩瑕疵,如MSK、噪点等(其它须要配合的设置还包括:VHQ四、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施以优化,而后再按三个不一样档次(VHQ二、VHQ三、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、tct6六、大卫
感谢如下朋友(按内容时间前后排列):
Nemolus——在2.0版本修订过程当中提出了大量意见、建议。
DvDSharer——一些概念解释;提出2.0版的修订。
Skywalker——Global Motion Compensation的改正意见。
本文编写过程当中参考的资料:《高品质DVDRIP制做进阶教程》(做者DvDSharer)、《XviD-1.0的設置參考》(做者tct66)、《XVID的中文化解释》(做者大卫)、《XVID中文设置全释1.3+》以及DOOM9.org的相关英文资料。
参考:https://blog.csdn.net/china_video_expert/article/details/7230353