瀏覽單個文章
applebread
Major Member
 
applebread的大頭照
 

加入日期: Feb 2006
文章: 240
推薦的 x264 參數設定 (ABR 2-pass 模式)

因為不太習慣這個設定介面一直改,又比較喜歡之前的 HQ Insane profile 的參數,
所以一直沒有回來看更新後的 GUI 要怎麼設到跟以前差不多。
今天花了一點時間來找參數,大概抓到做法了。

我明白很多人強調既然用了 x264 就不要用什麼 ABR 2-pass,應該用 CRF 模式才是王道。
當然我也有堅持繼續用 ABR 2-pass 的理由,但是為了避免再度引戰,所以不在此多做說明。

另外我要再次強調,這些參數只適合用來壓 DVD 或台灣這種低畫質的電視錄影。
壓 BD 用這種參數壓的話,你可能會等到牙齒都掉光了。

1. 挑選修改的參考範本

在 MeGUI 主視窗的 Encoder settings 裡選擇「Unrestricted (DXVA) - 2-pass」後,
按下右邊的 Config 以進入 x264 的設定畫面:


這裡選什麼當修改基礎其實都沒差,只要是 x264 的就好。
只是因為我還是習慣用 ABR 2-pass 模式,所以選這個可以改最少。

2. x264 configuration dialog - Main

先將 bitrate 修改成自己想要的值,然後勾選 Show Advanced Settings:

不勾 Show Advanced Settings 的話其它的標籤頁是不會出來的。

在使用的壓縮演算法相同的前提下,影像的 bitrate 數幾乎決定了整部影片的畫質。
它代表的是你每秒的畫面要給它多少 bits 來表示,這個數字越大代表畫面越好。
當然要是你給的數字大到某個程度以上,你也幾乎無法看出畫面會有任何改善。
這就像你平常將圖片壓縮成 JPEG 等格式時,指定的品質越低輸出的檔案就越小一樣,
因為用來表示那張圖片的資料量減少了,所以畫質也會跟著變差。

NTSC 規格下的影片一般是每秒 29.976 張畫面,你可以把它想成是 30 張連續的圖。
1500 kbps 指的就是每秒使用 1500 kbits 表示這 30 張連續的圖,也就是 187.5 KB。
其實也不用覺得這數字包含 30 張圖太少,因為連續的畫面重複部分很高,自然比較容易壓縮。
當然比較動態的場景會大幅減低影像重疊的部分,所以需要比較高的資料量。
動畫雖然在光碟裡是 30 張,但通常作畫實際只有 24 張,
另外多出來的 6 張是軟體補出來的,這樣做只是為了符合 NTSC 的規格。
MeGUI 的 AVS Script Creator 可以自動偵測出來,在壓影片時會做 IVTC 把它轉回 24 張。

前文範例中的 Const Quality (CRF) 模式只是把 bitrate 隱藏起來,在壓縮時動態決定當時的畫面該給多少,
為了讓每個畫面都達到你所要求的品質因數,這種模式會不計成本地將 bitrate 給足。
這裡使用的 ABR (Average Bitrate) 模式其實不是就把表示每秒畫面的資料量鎖得死死的,
它只是保證你最後輸出的影片平均 birate 數是 1500 kbps 而已,
所以較為動態的場景還是會給較高的 bitrate,相對的較為靜態的場景 bitrate 就會被犧牲。
如果整部影片都是高動態的,那麼你需要的 bitrate 數理所當然就會增加。

使用 ABR 模式的好處是你可以比較精確地控制最後輸出的檔案大小,
比方說一部影片的片長是 120 分鐘,1500 kbps 指的是每秒 187.5 KB,
所以 187.5 * 60 * 120 = 1350000 KB = 1318.39 MB,這樣算出來就是純影像部分的大小。

有些人會先使用 Const Quality 模式跑過一次,觀察輸出的檔案大小來推算平均 birate 數,
然後再用不會跟那個數字差得太離譜的 birate 數用 ABR 模式重壓一遍。
這個好處是不容易因為錯估影片的性質而給了太低或太高的 birate,缺點就是浪費時間。

有些人是以 3 ~ 3.5 倍壓縮為原則,也就是說如果原始影片是 4500 kbps (片長為 2 小時的 D5 片通常是這樣),
那麼他壓影片給的 bitrate 就固定在 1100 ~ 1400 之間的某個數字,譬如 1300 kbps。
判斷原始影片 bitrate 數的方法很多,你可以利用 MediaInfo 直接檢視 DVD 的 VOB 檔得知,
或是使用 DGIndex 的 preview 或 play 功能去實際放映 VOB 的內容來觀察。

3. x264 configuration dialog - Frame-Type

這頁要設的東西比較重要,一樣是照下面改:


如果你有參與比較後期的 x264 討論串,你會發現很多人建議你右上角的 B-frame 數不要設太大。
他們一般會建議你不要設超過 5 ~ 7,可能是 3,然後把 B-Pyramid 選成 Optimal。
我用的是較為早期的做法,並沒有跟著 doom9 那邊的主流民意做變動。
他們確實有做過一些統計和分析才決定這麼做,如果有興趣的話可以自己實際壓來比較看看,我是懶了。

左下方的 Reference Frames 數,會影響到你的影片是否能夠支援硬解。
如果你打算支援硬解,簡而言之,480p 請讓它在 13 以內,720p 在 6 以內,1080p 在 4 以內。
詳情請參考:x264 Encoding Options for Hardware Compatibility & DXVA
這參數就是跟在 --ref 後面的那個數字。

4. x264 configuration dialog - Rate Control

沒有需要變更的部分,可以自己確認一下:


5. x264 configuration dialog - Analysis

這頁要改的不少,不過沒什麼好說明的(其實是我懶得說),照著圖設定就可以:


6. x264 configuration dialog - Misc

也是沒東西要動:


最後就是把這個 profile 儲存起來,請按下面的 New 另外取一個新名字,不要直接按 Update 覆蓋原設定。
直接覆蓋的話,下次 MeGUI 如果更新時要你 Import 新的 profiles,可能會把你設好的東西蓋掉。
不過要是到時 x264 的參數也跟著改,你留下舊的似乎也沒什麼用,還是拍照和抄參數比較保險。

7. 注意事項

這樣的參數無論在過去或是現在,都稱得上是相當瘋狂且偏執。
所以如果壓影片的電腦不好,照著上面那樣設,壓一部影片所需的時間可能超乎你的想像。
如果這種時間成本你無法接受,可以在 Frame-Type 那頁把一些改過的數字調小一點。
再不然就是將 Analysis 那頁的 M.E. Algorithm 選差一點 (列表中越上面的越差)。

使用這樣的參數,4mbps 的片源壓到 1500kbps 便可達到比 2000kbps 的 VC-1 或 XviD 還要好的效果。
即便是片商直接從母帶用 VC-1 壓縮出來的 2000kbps WMV 線上販售版,仍舊對此望塵莫及。
如果你稍微將 bitrate 提升到 1800kbps,那麼 VC-1 和 XviD 就毫無機會在合理的容量下獲得相同品質。
當然 bitrate 越高,也就意味著壓縮所需的時間越長,在決定這麼做之前,請先有心理準備。

如果你的電腦超級好,可以考慮勾選最後一頁下方的 Slow first pass。
舊 2010-11-28, 09:17 PM #3
回應時引用此文章
applebread離線中