瀏覽單個文章
Shade
Senior Member
 
Shade的大頭照
 

加入日期: Oct 2002
您的住址: El's room
文章: 1,046
抓圖

所有的圖都是以該 Encoder 各自的 VFW Codec 解碼,強制輸出 YV12,由 Avisynth 統一做 YV12 -> RGB32,語法如下
avisource("Kiddy Grade NCOP_DivX5.05-B_4-pass.avi", false, "YV12").ConvertToYUY2().ConvertToRGB32()

先轉成 YUY2 再轉成 RGB32 的原因是,目前的 Avisynth 2.5,YUY2 -> RGB32 的 upsampling 計算式比 YV12 -> RGB32 的計算式,品質要好。Avisynth 的 YV12 -> RGB 計算式,目前還沒改成較高品質的 upsampling 方法。

因為圖太多,檔案太大,為避免下載負擔,部分情況用口述。

開頭有一段緩慢 zoom in,鏡頭慢慢拉遠的場景,畫面是漆黑的宇宙和中間發光的星球,其黑白交界處,XviD 有比較明顯的方塊感。這一段 XviD 會插入很多 B-frame,B-frame 用高 quantizer 壓縮,很容易出現方塊。減少連續 B-frame 個數,可以減低這種方塊感。DivX 5 也有這種方塊現象,不過因為 DivX 5 的 B-frame 最大個數只能為一個,一個 B 之後一定要接一張 P,形成 ..BPBPBP... 這樣的構造,所以不會有連續好幾張有瑕疵的 B 出現在畫面上,停留一段長時間而被人眼注意到。另外 DivX 5 的 DirectShow Filter Decoder 如果將解碼的品質調高,會有 Post-Processing 的 De-block Filter,去方塊濾波器的作用,也可以減少這種方塊現象,所以看起來不明顯。XviD 要避免,可能要減少 B-frame 的個數、降低 B-frame quantizer、改用 MPEG quant 壓縮(MPEG quant 方塊瑕疵較少),或者是開啟 XviD Decoder 的 De-block Filter。

接下來是這部動畫的標題字幕,「Kiddy Grade」,紅色的字,完全靜態的畫面。XviD 在這裡沒有問題,但是 DivX 5.0.5 在線條的邊緣,有很詭異的閃爍的雜訊。這個看單張抓圖看不出來,要實際觀看時,接連好幾張畫面連著看,才會發覺這種時間軸上雜訊閃爍的現象。在後面的畫面中 DivX 5.0.5 也是一樣,在靜態的場景,有時線條邊緣會有閃爍的雜訊,很引人注意。

接下來的圖片是 XviD 在這整片中最糟的 case。
Frame #628 DivX 5.0.5,這是一張 B-frame,Quantizer 8 壓縮。前一張 Frame #627 是一張 P-frame,Quantizer 4 壓縮,畫面和這張 B 一樣。
注意圖中用白色箭頭指出來的部分。
左邊的兩個箭頭指出來的瑕疵,一個是黑色的細線段,一個是灰色的方塊,這兩個瑕疵都是原始檔案中沒有的。而右邊箭頭指的瑕疵,看起來很奇怪,頭髮邊緣的線段突然缺了口,放大觀察,上面和下面一點的地方也有缺口,這個缺口看起來很像是有一個灰色的方塊插進去,中斷了原本連續的線條。
這是怎麼回事呢?
我們看下一張 Frame #629,Frame #629 是一張 P-frame,Quantizer 4 壓縮。Frame #629 較 Frame #628 臉部往左移動了位置。仔細觀察兩張圖片,細線段瑕疵出現的位置,是下一張圖頭髮尖端移動到的位置,而左邊線段的缺口位置,在下一張圖是灰色的牆壁。(抓下來用 ACDSee 切換著看會更清楚)
628DivX B-frame Quantizer 8

629DivX P-frame Quantizer 4


我們知道 B-frame 有一種動作預測模式叫做 Direct Mode,用這種預測模式時,該 B-Frame 的 Forward/Backward Motion Vector 是由下一張 P 直接產生:
I B P
連續動作時,我們可以預測中間的那張 B,運動會介於 I 和 P 之間,所以我們直接拿 P 的 MV 除以二,作為 B 的 Forward/Backward MV,以 I 和 P 的平均,做為參考對象。
這樣我們就可以省下記錄 MV 的 bit,只要記錄和 (I+P)/2 的誤差就好了。這是 B-frame 壓縮率最高的動作預測模式,在高 quantizer 中,這種模式使用的次數會比較多。

那二個白色箭頭所指的瑕疵,就是使用了 Direct Mode 壓縮,以前後畫面的平均為參考對象。然而後面那張 Frame 在這些地方和前面的差距很大,B-frame 又用高 quantizer 壓縮,無法精確記錄參考後的誤差,所以便出現了這種「後面畫面的影像殘留在前一張畫面」的詭異現象。

我們來看 XviD 的慘狀
628XviD B-frame Quantizer 8

629XviD P-frame Quantizer 4


XviD 在 #628 少了一些殘像的瑕疵,不過還是有灰色的方塊。慘的是,這幾個畫面的動態都不大,XviD 是插入最大的 B-frame 個數,#628 的前一張 #627 也是 B-frame,也是有灰色方塊,連續兩張 Frame 都有灰色方塊,比較容易被看出來。
XviD 的另一個敗筆是背景灰色的牆壁,方塊瑕疵很明顯,很容易注意到。雖然 XviD 在人物臉部,線條周圍的雜訊較 DivX 少,不過背景的方塊還是很引人注目。
舊 2003-05-03, 11:26 PM #64
回應時引用此文章
Shade離線中