測試二:接下來測試開啟 B-frame 的效果
DivX 5.0.5 的設定:
和測試一相同,多加使用 B-frame
DivX 5 B-frame 的預設值,當 I/P Frame quantizer 為 2 時,B-frame quantizer 為 4
XviD 的設定:
和測試一相同,多加使用 B-frame
配合 DivX 5,將 B-frame ratio 設為 100,offset 設為 200,也就是同樣使用 quantizer 4
最大 B-frame 個數 4 個
壓出來檔案大小
DivX 5.0.5: 29,198,336 bytes (100%)
XviD Nic's: 29,896,704 bytes (102.4%)
XviD 04-25: 27,856,896 bytes (95.4%)
XviD Nic's 的 B-frame 壓縮率不如 DivX 5。
原因可能有:
1. XviD 的 VHQ 功能目前對 B-frame 沒作用。
B-frame 可供選擇的壓縮模式更多,從 VHQ 能得到的好處更多,不能用非常可惜。
B-frame 少了 VHQ 輔助,原本大勝的差距就被 DivX 5 追上。
由此可見 VHQ 很重要,一定要開。
2. XviD 的 B-frame 是動態地插入,會視畫面做判斷要不要使用 B-frame。
而 DivX 5 的 B-frame 則是固定的,一定要維持 IBPBPB... 的形式。
所以遇到不適合使用 B-frame 的畫面,DivX 5 還是要使用 B-frame,並且以高 quantizer 壓縮,畫質會較差。
而 XviD 的動態判斷還在改良,插入的判斷較保守,遇到這種高動態、無殘影的動畫訊源,插入的 B-frame 個數較少,以高 quantizer 壓縮的 B-frame 個數減少,壓縮率自然下降。
Koepi 編譯的版本有加入一個設定,可以讓你控制插入 B-frame 的判斷,將 threshold 設得越高,B-frame 插得越多。
Nic 的版本沒有開放這個選項,用的是內定的預設值 0。
然而經過 sysKin 這一個月來的改進,04-25 的 XviD B-frame 壓縮效率大增,檔案小了快 2MB !!
那麼畫質有沒有下降呢?
測定 PSNR。
這裡要說明一下,由於加入 B-frame,解碼時會產生 delayed frame,XviD 開頭多一張 frame,DivX 結尾多一張 frame,要把這些多出來的 frame 切掉,才能對齊比對,算出來的 PSNR 才會正確。
例如 XviD 開頭多一張,Avisynth 處理的語法
encoded=avisource("Kiddy Grade NCOP_XviD_H.263-B4.avi", false, "YV12").Trim(1,0)
算出來的結果:
代碼:
Average PSNR (dB)
Y U V YUV
========================================================
DivX 5.0.5: 46.5597 46.5629 46.4920 46.5382
XviD 04-25: 46.9404 46.9653 46.8575 46.9211
贏得比不用 B-frame 的時候更多。
考慮檔案大小和 PSNR 比 (YUV PSNR/檔案大小%) 調整後的分數
DivX 5.0.5: 46.5382
XviD 04-25: 49.1835
還是大勝
============== 無關主題,順便一提 開始 ==============>
用了 B-frame、Quarter Pixel、GMC 等進階功能壓縮率和畫質就會變得比較好嗎?
不一定。
B-frame 因為提高 quantizer 壓縮,通常來說使用 B-frame 後檔案都會縮小,但是品質確有可能降得非常快。
使用 B-frame PSNR 會下降可以理解(因為 B-frame quantizer 較高),但是如果降得太離譜,視覺品質也會很明顯的跟著下降。
XviD 的三位大神之一 gruel 曾做過測試,VQEG 的測試 sample 中,有一個影片只要一開 B-frame,PSNR 會整整掉 12.5dB !!
(根據經驗,CG 動畫類的通常不太適合開 B-frame,不過也有反例,要看素材的內容)
所以哪些影片適合使用 B-frame,哪些不適合用,這正是 XviD 正在努力研究的方向。
Quarter Pixel 也是,根據理論 Quarter Pixel 可以提高壓縮率,但是據許多人的測試,開了 Quarter Pixel 後檔案有時反而會變大。這也是 XviD 的開發人員正在研究的課題。
同理 GMC 也是,用了不一定會提高壓縮率、促進品質。
XviD 希望能夠歸納出各種功能適當的使用時機,在適當的時候才使用這些功能,讓這些工具能發揮最大的效率。
所以在此之前,如果你的流量夠,不計壓出來的大小,或是檔案很好壓縮,可以試著不用 B-frame。
然而 B-frame、Quarter Pixel 使用後都有一些視覺上的作用,例如 B-frame 具有減少雜訊的作用,Quarter Pixel 會讓顏色變深。
如果希望具有這些視覺效果,那麼就開啟這些功能吧。
<============== 無關主題,順便一提 結束 ==============