###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