呃,上次開 DivX 5.2 的主題,結果內容是在推 XviD,
這次用 RV10 當幌子,結果點進來的第一篇主力都是在介紹 FRExt....

我真的不是故意的..... ^^;
不過這次不會像上次那樣,明褒暗貶了 ^^;;
這次是真的讚賞 RV10,這個格式確實很厲害,不像 DivX 5.2 是一敗塗地,確實沒救了
RV10 唯一的缺點,大概就是播放的系統需求很高,需要比較快的 CPU 才放得動。
還有播放 .rm/.rmvb 需要另外下載安裝他們的 Real Player,有點討厭。
雖然可以下載 Gabest 寫的 RM Media Splitter,或者用 MPC 內建的分離器,
搭配 Real Alternative,就可以運用 DirectShow Filter 來解碼,不必安裝 Real Player。
不過 Real Alternative 檔案還是很大(要 5.63MB),而且是不合法的。
anyway, 總之 RV10 不是一般認為的那樣,畫質很差,只能用在低流量,
其實 RV10 提高流量,畫質也可以很好,而且用來壓 HD 的訊源,一點也不會比其他格式遜色。
測試的第一個影片是 New Mobile and Calendar。
舊的 480i/576i 的 Mobile and Calendar 是非常難壓的一個測試影片,它的動態不大,
但是難壓到超乎你的想像,用 9Mbps 的 DVD 極限流量都還是壓得非常慘,
學界很喜歡用這個 sample 做品質測試。
相反的,New Mobile and Calendar 並不難壓,我選擇用 720p (1280x720 progressive) 50fps -> 25fps
的版本做測試,大約 4Mbps(25fps) 就可以壓出堪看的品質(如果是原本的 50fps 要 8Mbps)。
測試的第一組是 MPEG-2,我想要比較 MPEG-2 壓出來和下面會做的 MPEG-4 測試成績差多少。
MPEG-4 的壓縮率到底比 MPEG-2 高多少?
我用了三個軟體的 MPEG-2 Encoder,分別是 TMPGEnc Plus 2.521, MainConcept MPEG Encoder 1.4.2
, ProCoder 2.0。
CCE SP 2.7, TMPGEnc XPress 3.0 因為不能壓 HD 的影片,所以無法測試。
HT MPEG Encoder 可以壓 HD 的影片,但是它沒有辦法讓我設定 GOP 的長度,所以還沒比就先敗下陣來,
最後我還是硬著頭皮壓了一個檔案作測試,結果壓出來的檔案用 Reference iDCT 解碼會有灰色方塊的 Bug,
於是我就放棄這個 Encoder 不測了 -_-||
以上三個 MPEG-2 Encoder 的設定我都設一樣,MP@HL,VBV Size 1194KBytes,GOP 長度 24,
約一秒鐘,因為原影片是 50fps,最佳的長度就是 24。
MainConcept MPEG Encoder 的動作搜尋範圍我有手動指定,拉到大 +127.5 ~ -128,
這樣會壓很久,我試過拉大範圍品質會比較好,「在這個測試上」。
另外掃瞄順序我從預設的 Alternate 改成較適合 Progressive 訊源使用的 Zig-zag scan。
還有量化表也由預設的非線性量化表 Non-linear 改成較適合低流量使用的線性量化表 Linear。
ProCoder 則是很聰明,在低流量的時候它會自動切換成線性量化表,所以不需要我手動更改。
TMPGEnc 則是無法更改量化表,壓 MPEG-2 只能用非線性量化表,所以這一點無法改成一致。
TMPGEnc 我有開啟 Soft Block,柔化方塊 35,不然壓出來的方塊會很多。
CBR 4000kbps 壓縮,壓出來亮度的峰值訊噪比 Y-PSNR:
(PSNR 越高越好,代表壓縮前後的畫面差異越小)
代碼:
Minimum Average Maximum
TMPGEnc 29.3983 32.2272 34.7417
MME 29.8038 33.8220 37.9377
ProCoder 30.3098 34.4586 39.1066
Minimum 是整段影片中,壓得最差的 Frame 的 PSNR
Average 是整段影片的平均 PSNR
Maximum 是壓得最好的 Frame 的 PSNR
YUV 各個 channel 的 PSNR,和最後的整體 PSNR
代碼:
Minimum Overall Maximum
TMPGEnc
Y-PSNR: 29.3983 32.0599 34.7417
U-PSNR: 34.6498 36.4692 39.0012
V-PSNR: 38.6553 40.3685 42.8819
Sum-PSNR: 30.7387 33.2997 35.9012
MME
Y-PSNR: 29.8038 33.3297 37.9377
U-PSNR: 34.7291 37.0841 40.1592
V-PSNR: 38.2876 40.7539 44.0072
Sum-PSNR: 31.0952 34.4815 38.7913
ProCoder
Y-PSNR: 30.3098 33.9728 39.1066
U-PSNR: 35.3492 37.4787 41.1736
V-PSNR: 39.1210 41.2586 44.5053
Sum-PSNR: 31.6191 35.0958 39.9491
由於 YUV 總和的成績,和單獨 Y 的成績,大致上是相同的,所以後面我就不列了,
只列對人眼來說比較敏感、比較重要的 Y-PSNR 數據,除非 UV 有很大的不同,
值得特別提出來參考的。
Y-PSNR - Frame 圖,橫軸是時間(Frame),縱軸是 PSNR(dB)
凸起來 PSNR 特別高的點都是 I-frame。
大致上整段影片,三者都維持同樣的差距,勝者恆勝,沒有互有領先的情況。
這跟使用 CBR 壓縮有關,直接硬拼實力,Encoder 不能藉由優異的流量控制分配,
暫時提升某一小段的品質,所以壓縮能力不如人家的,只好從頭輸到尾。
由於 New Mobile and Calendar 前段的畫面比較複雜,細節很多,比較難壓,所以 PSNR 較低;
後段的畫面有一大片空白,比較好壓,所以 PSNR 升高。各個 Encoder 大致都呈現這樣的趨勢,
不過 TMPGEnc 例外,我不太懂它後面為什麼為什麼會搞得這麼難壓,應該很好壓才對,
不過 TMPGEnc 這裡在銳利文字的周圍會出現很慘的破碎瑕疵,所以 PSNR 還是一蹶不振。
還有一點,由於 TMPGEnc 會做 YUV -> RGB 的轉換,會造成數值上的差異,
所以測 PSNR 通常會比其他 Encoder 低。
再加上 PSNR 有時不能很好的反應實際上人眼看起來的畫面品質,可能 PSNR 測起來很差,
但是看起來其實沒那麼糟,所以我另外測了 SSIM。
SSIM 也是一種客觀評量法,不過它考慮了一些人眼的視覺特性作計算,
所以測出來的成績和視覺的相關性比較大,比較可以信賴。
三者最後調整後的 SSIM 平均分數,這個分數越高越好
TMPGEnc: 45.83
MME: 52.65
ProCoder: 55.99
SSIM - Frame 圖,橫軸是時間,縱軸是 SSIM,這是調整前的分數,分數越高、越接近 100 越好
呃,大致上測出來的結果和 PSNR 一樣。
我實際用肉眼看,也是一樣的結論,由於這個差距很大,一個是堪看的程度,一個是壓縮瑕疵遍布的程度,
所以基本上應該沒有異議
抽幾個具有代表性的畫面做範例圖。
ProCoder #149 是 P-frame
http://home.pchome.com.tw/health/bc...ProCoder2.0.jpg
MME #149 是 B-frame
http://home.pchome.com.tw/health/bc...49-MME1.4.2.jpg
TMPGEnc #149 是 B-frame
http://home.pchome.com.tw/health/wg...MPGEnc2.521.jpg
原始畫面 #149
http://home.pchome.com.tw/health/wg...cal-149-Src.jpg
ProCoder #150(B-frame)
http://home.pchome.com.tw/health/vb...ProCoder2.0.jpg
MME #150(P-frame)
http://home.pchome.com.tw/health/vb...50-MME1.4.2.jpg
TMPGEnc #150(P-frame)
http://home.pchome.com.tw/health/sz...MPGEnc2.521.jpg
原始畫面 #150
http://home.pchome.com.tw/health/sz...cal-150-Src.jpg
MPEG-2 壓低流量的話,ProCoder 應該是最強的。事實上這個 MPEG-2 Encoder 實在強得有些可怕,
算是非常頂級的 MPEG-2 Encoder,靠著它優異的壓縮能力,把 MPEG-2 和 MPEG-4 的差距又拉近了一點。