http://dgwxx.dns0755.net/nmm
論壇是:http://dgwxx.dns0755.net/nmmbbs。
主題當然是MPEG4相關的啦,會經常發表一些我原創的或者我搜集來的好文章~各位有時間
多去捧捧場~謝謝!
一.主介面
主介面
http://super0315a.myweb.hinet.net/xvid/01.jpg
Zones設置視窗
http://super0315a.myweb.hinet.net/xvid/02.jpg
Profile @ Level——這個選項包含一些預設值,與解析度和碼率有關,按旁邊的“
more...”按鈕再切換到Level標籤可以看到預設的數值。因為我們製作的視頻並不在其他
視頻播放設備(比如具備MPEG4解碼能力的DVD播放機)中播放,無須考慮設備相容性,所
以這個選項一般可選“不限制”(unrestricted)或者默認的“AS @ L5”。
Zones——XviD1.0以前的版本都有一個參數叫Credit,Zones繼承並加強了以前的Credit
功能,使之可以控制片中任意一段視頻。大家都知道,電影、動畫片尾(或片頭)都有製
作人員名單 (即Credit,下同) ,而且一般沒人會看。而老版XviD中Credit 選項的作
用就是,允許用戶使用較低的品質製作Credit部分,讓出更多的碼率分配給正文部分,以
提高正文部分的品質。而在最新的XviD1.0中,這個 Credit選項卻消失了,取而代之的是
一個新的參數——Zones。在這裏,我們可以把Zones理解成“區間”、或者說“片斷”。
也就是說,我們可以在邏輯上將片子分成許多段,並給這些段落一些“特殊待遇”。如果
平均碼率較高(比如在1000K或1200K以上),可以不設置該項。
============================================
http://super0315a.myweb.hinet.net/xvid/03.jpg
Zones的使用例子:
在上圖例子中,片頭0~1339幀是製作人員名單,沒必要浪費碼率在這,所以設置0~1339用
Q9來編碼;再設定1440~2879幀用原來分析的碼率(簡稱“原碼率”,即“本區間應該使
用的碼率”,下同)來編碼,即weight為1.00;而2880~4319幀設定用Q2來編碼,提高這
部分品質;再設定4320以後的幀用原碼率來編碼,即weight設 1.00,如果後面也有製作
人員名單(比如開始的幀是100000)則再加上設置100000以後的幀用Q9來編碼。Zones介面
如上圖,本部分參數設置僅為例子,具體設置在下面說明。
http://super0315a.myweb.hinet.net/xvid/04.jpg
Zones的設置解說:
Start frame#——該區間的起始幀。
Weight——權重。設置該區間的實際應用碼率與原碼率的比。比如,我只想使用原碼率的
15%編碼該區間,那麼這裏可以填寫0.15。如果想使用100%碼率(即原碼率),填寫1.00
即可。
Quantizer——設置該區間幀的Q值。可以強迫編碼器將這段區間使用某一Q值編碼(本選
項通常用於Credit部分的編碼)。
Begin with keyframe——本區間的第一幀強迫使用IF。一般選擇此選項。
Greyscale encoding——使用灰度。編碼出的畫面是黑白的,適合於黑白畫面(比如片尾
的黑白Credit),可更加降低本區間的碼率。
Chroma optimizer enabled——色度優化。在純黑白區域(或圖元)中插入顏色,可以改
善顏色過渡不自然現象(也就是Rainbow現象)。該選項對畫面顏色有優化作用,推薦選
擇。勾選此項會稍微降低編碼速度,所以可以選擇僅對Weight設置成1的電影正文部分應
用此設置。由於Chroma optimizer是在色度上做文章,所以開啟了Greyscale encoding的
時候可以考慮關掉 Chroma optimizer,正可以提高一些編碼速度。
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值可限定為20(老版XviD的預設值),這樣既可以保證名單上的文字能夠
分辨出來,也可以大幅降低Credit這部分的視頻檔體積。有時,10分鐘左右的Credits壓
出來也只有6、7MB,這對某些擁有5、6分鐘以上較長Credit的1CD DVDRip影片製作來說,
幫助是較為明顯的。
Q值——Q值是指量化值(依據作者個人習慣不同,這個值在不同文章中的叫法有所不同,
比如“量化值”、“量化級別”、“Quant”等等,本文統一稱作 “Q值”)。顧名思義
,Q值用來描述一個幀的品質,每個幀都有Q值。該值取值範圍是1~31。該值由編碼器編碼
的時候根據該幀的顏色、與跟前/後幀的動態關係等自動確定。Q值越小,品質越好,碼率
越大;Q值越大,品質越差,碼率越小。(本概念在XVID製作中非常重要,Q值直接關係到
影片的畫面品質。)
===========================================
Encoding mode——編碼模式。XviD一共提供兩種編碼模式。一種是Single pass,另一種
是Twopass。Twopass分兩步,分別是1st pass,和2nd pass。下面對這兩種編碼模式分別
進行講解。
http://super0315a.myweb.hinet.net/xvid/05.jpg
編碼模式解說:
Single pass——一次運算,Single pass有兩種模式(通過Target xxx按鈕切換)
Target quantizer(目標Q值)和Target bitrate(目標碼率)。Single pass模式編碼較
簡單,速度也很快,但是最終品質不如Twopass模式好。可用於即時採集。
Single pass之Target bitrate(CBR)——目標碼率模式,單位kbps。最簡單的單線編碼,
選擇平均碼率後編碼。文件大小相對容易控制。
Single pass之Target quantizer(VBR)——目標Q值模式,動態碼率。
Twopass——二重運算。這種編碼模式分為兩步,首先對畫面逐幀進行運動偵測,以及對
全片段的運動偵測結果進行分析,然後重新以曲線平衡分配每一幀的 Q值,以做到:需要
高碼率的運動畫面可以分配更多空間、更高的碼率、更低的Q值來保證畫面品質;而對於
不包含太多運動資訊的靜態畫面,則可以消減分配的碼率。這種把好鋼用在刀刃上的做法
,是XviD作為第二代MPEG4編碼的核心內容。可以說,Twopass模式可以在影片容量與畫面
品質之間找到最佳平衡點,這也是大多數人都樂意花費更多時間採用這種方式的原因。
Twopass-1st pass——二重運算,第一次運算。這是Twopass模式的第一步。在這一步中
,編碼器會用最高品質編碼(量化值2),同時收集畫面資訊,並將這些資訊記錄資訊檔
(stats)當中提供第二次運算的時候參考。
Twopass-2nd pass——二重運算,第二次運算。這是Twopass模式的第二步,編碼器會根
據第一次壓縮時獲得的影片的資訊和用戶指定的最終檔大小,自動分配碼率,低動態的分
配得少一些、大動態的分配得多一些,總之儘量保證最終檔大小為用戶指定的大小。
注1:不要在第一重和第二重運算之間更改XviD設置(某些特殊項除外)、改變AVS腳本(
如果用到AVS)或加入、刪除濾鏡,這些都將會造成不正確的結果。
注2:計算2pass容量的時候,應使用1K=1024Bytes的換算方法。且計算結果不包含音頻大
小。
http://super0315a.myweb.hinet.net/xvid/06.jpg
Twopass-1st pass面板:
Full Quality first pass——全品質第一次運算。在 Twopass - 1st pass 時以你當前
的設置進行編碼,通常是沒必要的。會降低1st pass編碼速度。
============================================
二.Profile標籤
http://super0315a.myweb.hinet.net/xvid/05.jpg
Quantization type——量化方式。此處支援三種量化方式。分別是H.263、MPEG、MPEG
Custom。應根據碼率以及影片的特性確定該選項。要瞭解這三種量化方式的詳細資訊,請
參見附錄《三種量化方式解說》。
Adaptive Quantization——其實這個選項就是XVID 1.0之前版本中的Lumi masking。作
用是減少肉眼看不見的地方使用的碼率,可能會產生畫面扭曲。本選相應當謹慎使用,因
為它看起來弊大於利。所以如果不是對檔體積縮小有迫切的需求,最好不要使用。
Interlaced Encoding——隔行處理。適用於有拉絲的片源。(如果片源已通過AVS完成
IVTC處理,則不需要開啟。)
Quarter Pixel——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——全域動態補償(簡稱GMC,下同)。能在縮放(把鏡頭
拉近)以及旋轉(轉動相機)的情形下有所幫助,尤其是畫面中的物體的外型是固定的,
僅在尺寸以及位置上有所不同時。若要處理的影片是自然景觀或風景片時,可以開啟GMC
。使用該選項製作的影片可能只有XviD自己的解碼器才能正常解碼,若使用ffdshow等解
碼器解碼可能存在相容性問題,用前請考慮。
B-VOPs——B-frame設定。若去掉該選項前面的對勾,則編碼中不使用B-Frame(簡稱BF,
下同),只用IF、PF來壓。如果碼率足夠或者片源動態高、運動不規則、畫面太乾淨、無
殘影、前後無關聯性,可以不使用BF,壓出來的片子效果比用BF稍微好些。
B-frame設置解說:
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值計算方式下面解
釋)
http://super0315a.myweb.hinet.net/xvid/08.jpg
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 offset
BF是一個能有效提高壓縮率的功能,是否降低畫質,那要看如何設置了。有的設置壓出來
的部分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推薦設置》。
======================================
三.2nd pass設定
http://super0315a.myweb.hinet.net/xvid/09.jpg
這個對話方塊只有在2PASS的時候才可用,其的設置比較複雜,建立保留默認設置。
I-frame boost——額外分配給IF的碼率。如果IF的Q值較小(如1或2),此項可以設置為
0。
I-frames closer than... (frames) X1 ...are reduced by (%) X2(X代表你設定的參
數)——意思是,若兩個IF的距離小於X1(通常是連續的閃電效果或者連續大動態動作場
面會出現這種情況),則靠後的IF碼率減小 X2%。如果IF的Q值較小,X2可以稍微設置大
一些(可增加5%~8%)。
Overlflow treatment——碼率補償與縮減。Max overflow improvement和Max overflow
degradation控制當編碼器遇到不足碼率或者碼率過大的場景時進行修正補償的閥值,即
超碼或不足碼到達什麼程度,編碼器會進行修正。值越大,修正速度越快(即需要修正的
幀較少,整體編碼速度就加快),但是這可能會造成無法為別的更需要碼率幀保留碼率。
如果Q值波動較大,可以將這個值減小到 20~30,這樣可能會使預測的檔大小受到影響。
除非遇到特殊情況,本功能不建議使用!
Overflow control strength %——控制每個需要補償的碼率過大/不足的幀被補償多少。
除非遇到特殊情況,本功能不建議使用。
Curve compression——曲線壓縮。曲線壓縮的作用就是將碼率較高的幀的碼率拉下來,
將碼率較小的幀的碼率提上去,讓碼率曲線平緩一些。此選項不建議使用,也就是保持默
認設置“0”。由於現階段XviD的動態分配(即曲線壓縮)做得不是很好,所以直接採用
了一種linear scale(即線性壓縮)把1pass的碼率曲線直接往下調。除遇到特殊情況外
,不建議使用曲線壓縮功能。
若想瞭解更多曲線壓縮以及線性壓縮的細節,請參閱本文附錄《曲線壓縮與線性壓縮》。
=================================
四.Motion標籤
http://super0315a.myweb.hinet.net/xvid/10.jpg
Motion search precision——運動檢測精度。等級越高,畫質越好,速度越慢。一般選6
而不選5,因為選5只快10%。若想瞭解更多運動檢測的細節,請參閱本文附錄《運動檢測
解說》
VHQ model——搜尋寬度。等級越高,畫質越好,速度越慢。這個選項會很大幅度的降低
編碼速度,若機器夠快,可選4。想瞭解更多VHQ的功能,請參閱本文附錄《VHQ模式》。
Use chroma motion——通過顏色資訊來判斷動態。會降低編碼速度5%~10%,但是有利於
畫面,推薦勾選。
Turbo——超級模式。更快的檢測BF動態。不推薦。
Frame drop ratio——丟幀率,這個參數保持預設值0,並且不要改變。
Maxinum I-frame interval——最大IF幀距。該參數一般為幀率的10倍。比如,一般
DVDRIP的幀率為23.976fps,則該處就填寫240。有人喜歡認為將這個值調小,以增加IF的
數量,達到提高畫質的目的。此項可根據片子情況適當減小。但是在200以上為宜,如果
太小會適得其反——檔OVERSIZE、 IF佔用大量碼率導致BF/PF品質過低,反而不利於畫質
。
Cartoon Mode——卡通模式。這個模式可以讓畫面顯得更乾淨一些,但這就意味著要抹殺
細節。製作一般動畫的時候推薦使用(劇場版動畫須看情況而定)。
Cartoon Mode解說:
XviD有個動態判斷標準值,指判別畫面是否有動態的標準。若高於這個值,則判斷畫面為
動,編碼時記載動態資訊;若低於這個值則判斷為畫面不動,不記載動態資訊。這個通常
很低,就是說,很小一點差別都會判斷為動態。
打開Cartoon模式後,這個標誌的值會加大,相應的,小的動態變化會忽略。對動畫來說
,最直接的效果就是消除了浮動的細微噪點(特別是在色塊和線條之間,這種噪點即使降
噪也會出現)。因為用了Cartoon模式,這些噪點造成的小度變化被忽略掉,因此會省出
大量碼率。在我的實驗中,多在8%以上。但是,因為畫面的變動相對較大,PSNR會降低(
雖然對動畫來說這算不得降低),而且對於使用H.263量化的動畫,還會讓畫面感覺更加
模糊;而對於 MPEG量化,這個Cartoon模式可以有效降低MPEG量化編碼動畫片的副作用,
儘管PSNR降低,但實際上畫面看起來更好。推薦配合 MPEG/MPEG Custom量化方式使用。
(本部分作者:Bopirit,收錄時略有修改)
=====================================
五.Quantization標籤
http://super0315a.myweb.hinet.net/xvid/11.jpg
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值設定需要注意以下原則:
1. 設置時應儘量保證IF品質,因為BF和PF的品質都由IF決定;
2. 由於XVID對於BF品質的把握越來越好,比較黑暗的場面出現爛幀的幾率也有所減少,
所以BF的Q值上限可以放心的設大一些。
3. 有些朋友提出,不要限制Q值範圍,也就是全部都保留1/31的預設值,讓XviD自行掌握
Q值分配。筆者認為這麼講不無道理,但要看什麼情況。在一些情況下,XviD自身的Q值分
配演算法是不能適應某些影片的(比如通篇畫面都很昏暗的影片等等),這個時候,就需
要我們手工來限制Q值範圍。也就是說,是否限制Q值、限制多少,並沒有一個確定的答案
,而應當由片子本身的特性。有經驗的RIPPER可以迅速的根據影片畫面判斷應該如何配置
,也就是所謂的“經驗”。所以,Q值的設定應由影片本身和製作要求靈活應變,不應一
味追求所謂“理想值”。筆者認為,這點是應當特別注意的。
========================================
六.DEBUG面板
http://super0315a.myweb.hinet.net/xvid/12.jpg
Performance optimizztions——性能優化。可以選擇特定的CPU指令集優化。可以對編碼
速度的提高起到一定作用。建議選擇自動選擇指令集優化。
FourCC used——FourCC 用以確定你編碼好的電影用什麼樣的解碼器來播放,預設值為
"XviD",這意味著將使用"XviD directshow filters",保證了最大的品質和相容性。你
也可以選擇使用"DivX 4.x"或"5.x"的解碼器來重播你完成的電影,但是它們不一定就能
正常播放。
後記:
整個XVID的重要參數到這裏差不多都介紹完了。筆者還是堅持一點:每個片子都有其自身
特點,要想用一套“萬用參數”來“通吃”所有片子是不可能的。有朋友非常心急,一上
來就要找出來一套適用於手頭這部片子的“理想值”,但是這樣往往以失敗告終。所以壓
片之前,不要怕麻煩,多抽幾段來試壓,然後根據每個參數的作用進行配置,相信你會製
作出優秀的DVDRIP。
XviD是一款相當偉大的MPEG4編碼器,如果參數配置得當,再配合良好的AVS腳本的話,可
以製作出來容量只有DVD容量的1/5(MP3音頻),但畫質和DVD相比絲毫不差的影片!到現
在為止,XviD仍然有很大的潛力可以發掘。希望大家永遠不要停止探索的腳步,去獲得更
好的品質!
本文的編寫及內容不斷地豐富、修訂,得到了很多朋友的幫助,在這裏,dgwxx向他們表
示最誠摯的謝意。
另外:如果您撰寫文章或創作其他作品(如編譯自己版本的XVID)的時候引用了本文的內
容,請一定要注明哪些內容出自本文,這是對於作者的尊重,同時也有助於技術的交流。
本文從1.4版開始放寬了版權鎖定。依照現在的設置,您可以任意複製本文的任何文字、
圖像內容。但是這個許可僅限於用作技術交流,任何用於商業行為的複製行為、任何惡意
抄襲均將受到本文作者團隊的最嚴厲追究。
本文由多位作者共同完成編寫編撰組作者名單:tct66、Bopirit、Dgwxx、RKinGBo、大衛
本文感謝以下朋友:
Nemolus——在2.0版本修訂過程中提出了大量意見、建議。
DvDSharer——一些概念解釋;提出2.0版的修訂。
Skywalker——Global Motion Compensation的改正意見。
參考資料:《高品質DVDRIP製作進階教程》(作者DvDSharer)、《XviD-1.0的設置參考
》(作者tct66)、《XVID的中文化解釋》(作者大衛)、《XVID中文設置全釋1.3+》以
及DOOM9.org的相關英文資料。
附錄:
如何知道1pass容量:
獲取1pass容量其實很簡單。當大家開始用XviD壓制1st-pass的時候,XviD會跳出來一個
狀態視窗,這個視窗會即時顯示壓制過程中各種各樣的資訊。當1pass壓制完成的時候,
這個視窗會顯示1pass的最終結果。如下圖:
http://super0315a.myweb.hinet.net/xvid/13.jpg
右邊紅框部分所示的容量即為1pass容量。用計算出來的2pass容量除以這個值,就能計算
出來2pass/1pass比值了。
----------------------------
BF參考設置: 2-PASS/1-PASS比值在70%以上: 建議關閉BF,直接用I、PF壓制。 最大和
最小IF、PF、BF的Quantization設置依次為(下同):1、2、1、3、1、31
2-PASS/1-PASS比值在60%--70%之間: Max consecutive BVOPs --------- 2 Quantizer
ratio --------------------- 1.20 Quantizer offset -------------------- 0.60
Quantization設置:1、2、1、3、1、31
2-PASS/1-PASS比值在50%--60%之間: 通過降低解析度和/或使用降噪濾鏡降低壓縮難度
,變相提升2-PASS/1-PASS比值。 Max consecutive BVOPs --------- 2 Quantizer
ratio --------------------- 1.20 Quantizer offset -------------------- 0.60
Quantization設置:1、3、1、3、1、31
2-PASS/1-PASS比值在50%以下: 通過降低解析度和/或使用降噪濾鏡降低壓縮難度,變相
提升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系列量化模式)。
-----------------------------------------
基本概念解釋:
本文用到了一些MPEG4中的基本概念,這些概念在本文中會經常提及。所以這裏特意為新
手準備了概念解釋,希望新手朋友在閱讀之前掌握這些概念。沒有收錄進來的一些針對性
較強的概念已經在正文中進行重點的解釋。
三種幀類型:
IF——I-frame的縮寫,即關鍵幀。關鍵幀是構成一個幀組(GOP,Group of Picture)的
第一個幀。IF保留了一個場景的所有資訊。
PF——P-frame的縮寫,即未來單項預測幀,只儲存與之前一個已解壓畫面的差值。
BF——B-frame的縮寫,即雙向預測幀,除了參考之前解壓過了的畫面外,亦會參考後面
一幀中的畫面資訊。
三種量化方式:H.263、MPEG和MPEG Custom:
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製作)使用,畫質最佳,能保留較多細節。推薦製
作電影DVDRIP使用本方式。若在製作動畫時使用,可能引起色彩過度不自然、顏色邊界處
出現雜訊等副作用,此時,可搭配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網站或論壇上可以找到更多的量化
範本。
雜訊——這裏所謂“雜訊”,並不是我們能夠聽到的實際意義上的雜訊,而是指的畫面上
不斷閃動的亮斑點或色斑點。畫面出現雜訊一般有以下幾方面原因:1.電影:由於膠片本
身的感光性能或採集過程不佳造成(老片尤其嚴重);2.動畫:TVRIP錄製時電視信號存
在干擾(也就是我們常說的“雪花”);3.採用了 VHS或老舊的LD片源;4.由於壓制不良
,導致色彩之間的邊緣處有細小的色斑存在(看起來像“馬賽克”)。這些雜訊在畫面上
不停的閃爍、移動,造成驚人的碼率浪費。因此需要儘量將這些雜訊“過濾”掉,以節省
碼率,增高片子的整體品質。要想過濾雜訊有許多方法,比如在AVS腳本中加入降噪濾鏡
等,但這不是本文討論的重點。
DRF值——(概念同前面提到的“Q值”。“DRF值”這種說法一般在測試視頻品質,用來
畫面好壞的場合下)在編碼時,為了達到某個碼率,mpeg4編解碼器會對每一幅畫面進行
壓縮。而壓縮程度則取決於碼率、圖像內容的複雜度及動態大小。對於每一幀,一旦確定
怎樣去壓縮以後,就會產生DRF值。DRF值為 2的時候,效果最佳(在XVID中,quantizer還
可能達到1)。DRF值等於31時,效果最差。8以上的DRF值,可被認為效果很差。
DRF/quantizer實際上代表了編碼器在降低幀大小時所丟棄的信息量。
http://super0315a.myweb.hinet.net/xvid/14.jpg
Bits/(Pixel*frame)——資料密度。碼率並不是視頻/音頻品質的唯一指標,一個更重要
的指標是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——除了碼率和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%。
曲線壓縮與線性壓縮(作者: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 演算法,做線性調整
。
如果看了上面的解說您還不是很明白的話,讓我們舉個例子吧。請看下圖(圖中的資料只
是舉例子,並不具有任何實際意義):
http://super0315a.myweb.hinet.net/xvid/15.jpg
圖中,藍色的線是1pass的時候XviD算出的1pass碼率曲線;粉色的線則是線性調整碼率的
最終碼率曲線;黃色的線是類比曲線壓縮的最終碼率曲線。
可以看出來,在本例子中,片源的碼率狀況波動很大(實際上基本不會出現這樣的狀況,
本例中為了看起來比較明顯,所以用了比較“誇張”的資料);線性調整碼率的結果碼率
波動狀況基本與片源相同,即“按照一定比例將原碼率曲線向下平移”(在本例中,我將
碼率降低了45%,但是在實際的壓制中,線性調整遠比這個複雜);曲線壓縮的結果可以
很明顯地看出來,曲線壓縮的碼率曲線與線性壓縮的走勢基本相同,但不同的是比線性壓
縮的碼率曲線要平滑的多,原來的碼率“高峰”被壓低,碼率“低谷”被上揚,即“碼率
曲線接近一條固定的直線,也就是變成近似於CBR”。
VHQ模式:
VHQ與IF、BF(暫時性)、碼率控制沒有任何關係,但VHQ越高,PF的品質越高。
MPEG系的編碼器在壓縮時以每個16x16圖元塊大小的MacroBlock為單位進行動態預測。在
VHQ模式下,它先是進行簡單的block- mode-decision(區塊模式判定),其間會對畫面
內的每一塊MacroBlock施以優化,然後再按三個不同檔次(VHQ2、VHQ3、 VHQ4)作進一
步動態預測,從而更進一步的減少紀錄資訊所需要的容量。
使用VHQ(特別是VHQ4)可以降低PF的Q值、使畫面更乾淨、保留更多的細節,但這些都只
是VHQ的副作用,VHQ的主要功能是提高壓縮效率(當Q值一定時,令檔體積更小),以便
更好的達到目標檔大小。
注意:
1.在1-PASS過程中,VHQ模式處於自動關閉狀態,因此不必擔心兩個PASS之間的設置不同
。
2.在XviD 1.0正式版中,VHQ模式已經能與BF、Quarter Pixel、Chroma motion、
Adaptive Quantization、GMC功能同時開啟使用了。
運動檢測:(本部分選自大衛的《xvid的中文化解釋》)
運動檢測精度(Motion search precision): 運動檢測精度決定著給定碼率下的畫面品質
。
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%的編碼速度)
===========================================
本文更新記錄:
V1.5 to V2.0更新:
1. Profile @ Level的說明更新了一下。本文原來提到的“DVD播放器”指的是“具有
MPEG4視頻流解碼能力的視頻播放器”。
2. BF說明第一自然段中,原來“大碼率影片”指的是“碼率充足、不用依靠BF來提高壓
縮率的影片”。
3. 就Zones設置中,Chroma optimizer這個功能的使用進行了一些增補。
4. 依然是連續BF數量的問題。“最大連續BF數量。可以設置1、2、3。”容易讓人誤解成
“最大連續BF只能是1、2、3。”,其實最大連續BF是沒有限制的。
5. 本文中涉及到的兩個概念“DRF”和“Q值”其實是一樣東西。但由於這兩種叫法通常
用於兩種不用的場合,故未進行統一。這樣可能會對一些剛接觸XVID的讀者造成誤導,認
為DRF和Q值是兩個概念。現在已在《附錄》中加以說明。
V1.4 to V1.5更新:
1. 修改了BF參考設置的絕大部分內容,建議讀者重新閱讀這部分內容。
2. 在附錄中增加了VHQ的說明。強烈建議閱讀!
3. 附錄中增加了《如何知道1pass容量》
4. 附錄中《曲線壓縮與線性壓縮》作了較大更改,建議有興趣的朋友重新閱讀。
5. 修正了不少排版錯誤、錯別字。
V1.3.5 to V1.4更新:
本文本次更新主要針對XviD1.0正式版的推出進行一些修訂和補充。本次更新修正了眾多
前一個版本中存在的問題,請讀者一定要注意一下有所改動的地方!
本文在以下方面有改動:
1. 刪除了Profile@Level的詳細說明(沒什麼實質性內容,所以沒有存在下去的必要)。
2. 修正了ZONES中“BF靈敏度”這個參數推薦設置值的錯誤。
3. 加入了SINGLE PASS這個編碼模式的詳細說明。
4. 重要:修正了“BF最大連續數量”這項設置中可能會引起誤解的地方。並在附錄中增
加《BF最大連續數量》。
5. 在附錄中增加“資料密度”這個概念的解釋。
6. 增加了Twopass-1st pass面板的解說。
7. 增加了DEBUG面板的說明。
8. 附錄增加了Video Size/1st Pass Size的說明。
9. 重要:改正了BF的Q值計算公式(原來的公式適用於舊版本XVID,現已更新為新演算法
)。
10. 重要:對整個Quantization標籤的設置作了大幅度修改,若讀者有時間,建議重新閱
讀這部分內容。
11. 將Zones選項中“weight”這個選項重新翻譯為“權重”。並增加了使用Quantizer和
Weight兩個選項的注意事項。
12. 針對新版本的XviD更新了部分截圖。
13. 將全文的概念名稱統一(由於本文屬於多位作者共同創作,故以前有些概念、選項的
叫法不太一樣)。
14. 修正了Profile標籤中Interlaced Encoding這個選項的說明。
本文還對排版方面做出了一些改動:
1. 再次將Q值的概念提到文章前部。
2. 統一了小標題的格式。
3. BF解說部分,對於一些應引起重視的詞語加了粗體顯示。
V1.3 to V1.3.5更新:
改正BF解說中一個微小的排版錯誤(本版本沒有單獨發佈修正版PDF)
V1.1 to V1.3更新:
1.增加了Zones參數設置建議;
2.對Quarter Pixel的解說作了修改;
3.增加了附錄《BF推薦設置》;
4.增加了《更新記錄》;
5.增加了編碼方式的解釋;
6.內容大幅增加,版式上更改了一下。為了方便閱讀,增加了目錄。改正了一些錯別字。
7.修正了QP中文名字的嚴重翻譯錯誤
8. 修正了MPEG Custom的說明錯誤,增加了H.263和MPEG量化方式的理論說明。(見附錄
《概念解釋》)
9.Interlaced Encode解說更改
10.讓GMC的解說更詳細
11.BF的解說修正
12.增加了“曲線壓縮”與“線性壓縮”(見附錄《曲線壓縮與線性壓縮》)
13.運動精度檢測詳解加入了附錄(見附錄《運動檢測解說》)
V1.3修訂說明:
在本文V1.3修訂過程中,XviD升級到了RC4。但是鑒於RC3和RC4的編碼器之間並無太大差
別(RC4的更新主要在於解碼器方面),所以本文同樣適用於RC4版本。
“V1.3版”是自本文創作完成以來所做的最大的一次修訂。這次修訂,主要參考RkinGBo
專門為本文寫的《增補、修訂意見》、大衛的《xvid的中文化解釋》、射手網沈晟寫的《
XviD中文設置全釋1.3+》這三篇文章來進行。由於後兩篇文章是針對XviD0624版所作,因
此其中部分語言在選入本文時作了適當修改。
另外,由於內容增多,為適應排版的需要,將原來的“名詞概念解釋”部分挪到了文章尾
部的“附錄”當中。
本次附錄添加的一系列內容均為完全的理論知識和原理分析,其掌握與否並不影響XviD的
參數設置。之所以加入這些內容,是因為這可以讓讀者更加瞭解 XviD的各項特性及原理
,還能增加一些閱讀趣味性,使文章不至於很枯燥(我個人覺得讀一些自己不懂的東西的
時候,會很有好奇心,讀起來也會格外認真^^ 呵呵)。
V1.0 to V1.1更新:
1.CARTOON模式解釋加入(作者Bopirit)! 2.加入了“畫面雜訊”這個概念的解釋。 3.
修正了Global Motion Compensation的解釋(感謝Skywalker提出,感謝TCT66的解釋)。
4.修正“Trellis quantization”選項的名稱翻譯錯誤(原來翻譯成“高品質Q值模式”
,其實應為“高品質量化模式”,感謝Skywalker提出)。 5.增加Trellis quantization
的解說。 6.由於內容增多了,所以版式上更新了一下,另外修正了一些細節(錯別字、
標點符號等等)
--
/ ̄ ̄\/* / ̄ ̄ ̄ ̄ ̄ ̄\ ◢██◣ ◤ ◥ ╭───────╮
︳顏哥 |ˍ/ 幹你娘老雞掰 │ |請| ▌顏爸 ▌ │回本才是王道!!│
︳O O |\ 啦,嫩就要量 │ |量| ▌ˋ ˊ ▌ ╭───────╯
︳ ^ | \ 力而為,不然 │ |力| ▌ ^ ▌
\ V / │ 你是在幫殺小 │ |而| ◥ 口 ◤
/ ̄ ̄\ │ 玻璃就是屌… │ |為| / ̄ ̄\
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.240.234.144
目錄:
1. 前言………………………………………………………… 請用ctrl+f 搜尋
2. 主介面……………………………………………………… 請用ctrl+f 搜尋
3. Profile標籤………………………………………………… 請用ctrl+f 搜尋
4. 2nd PASS設定…………………………………………… 請用ctrl+f 搜尋
5. Motion標籤…………………………………………………請用ctrl+f 搜尋
6. Quantization標籤…………………………………………請用ctrl+f 搜尋
7. DEBUG面板…………………………………………………請用ctrl+f 搜尋
8. 後記…………………………………………………………請用ctrl+f 搜尋
9. 附錄…………………………………………………………請用ctrl+f 搜尋
10. 更新記錄………………………………………………… 請用ctrl+f 搜尋
前言
本文針對的XviD版本是XviD1.0.1
現在網上介紹XviD的文章很多,但是不少都在教你“設置什麼參數”,卻沒有介紹“為什
麼這樣設置”。於是這就牽扯到了文章寫作目的的問題。我認為,每個片子的情況不同,
所需要的參數也不同,沒有一套參數可以“通吃”所有片子,所以盲目迷信所為的“高手
推薦設置”是沒有必要的。所以,我寫這篇文章的目的是儘量詳細的講解每個參數的作用
和原理,而不是單純羅列“推薦設置”。
另外,由於本文篇幅較長,筆者建議讀者將本文列印後閱讀,這樣一來可以加強閱讀文章
時候的邏輯性(整個文章的層次性顯得較強),二來可以保護您的視力,免得長時間盯住
螢幕造成眼疲勞。
2.0版修訂說明:
本文2.0版是應新視界論壇的DvDSharer版主以及DreamLand論壇nemolus朋友的要求進行修
訂的。本次修訂,改正了不少本文在說法上的錯誤以及容易引起讀者誤解的地方。在本版
休整中,nemolus提出了很多意見、建議,在此,大蝦表示由衷感謝!具體更新的內容,
請看本文最後的更新記錄。
在本文以前版本中,引用了Silky的文章,但是由於種種失誤,並沒有標明作者,本次更
新一併將作者名字補上,希望Silky能原諒我的過失。
最後,感謝所有關心愛護本文的朋友。
另:做個小廣告~本人的小站開張了~
地址是: