|
Advance Member
您的住址: 雲の向こう、約束の場所
文章: 496
|
引用:
Originally posted by Shade
這個,因為不同流量,不同訊源,最佳的 MPEG 量化矩陣就會有所不同,我目前也沒有找出一個通用的最佳解。
總之預設矩陣(也就是 Quantization Method 選 MPEG 時用的那一個矩陣)用來壓動畫不太適合,換別的試試看。
例如如果換成 TMPGEnc 的 CG/Animation 矩陣
intra:
08 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
inter:
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
量化出來的特性就會很像 H.263,畫面很乾淨,有點模糊,銳利線條周圍的雜訊少,但是容易出現方塊。
因為這個矩陣非常接近 H.263 的量化方式。
H.263 量化
不用量化矩陣,全部 DCT 係數除以同一個量化係數
F[u][v] 是量化前的 DCT 係數
QF[u][v] 是量化後的係數
intra:
QF[u][v]=F[u][v] / 2*quantizer_scale
inter:
QF[u][v]=F[u][v]-quantizer_scale / 4*quantizer_scale
MPEG 量化
DCT 係數分別除以量化矩陣中對應的量化係數
W[u][v] 是量化矩陣中的加權的(Weighting)量化係數
intra:
QF[u][v]=F[u][v]*16 / W[u][v]*2*quantizer_scale
inter:
QF[u][v]=F[u][v]*16 / (W[u][v](+/-)quantizer_scale)*2*quantizer_scale
intra dc(intra 最左上角的係數)則是
QF[0][0]=F[0][0]/dc_scale
dc_scale 會根據 quantizer 做 non-linear scale
代碼:
quantizer_scale(Qp): 1~4 5~8 9~24 25~31
dc_scale Y : 8 2Qp Qp+8 2Qp-16
dc_scale C : 8 (Qp+13)/2 同左 Qp-6
這個解釋起來很複雜.....
總之,換別的矩陣試試看。
那個 CG/Animation 矩陣也不適合用在 XviD 上,我上面只是舉例,這個矩陣壓出來的品質很差,除非流量超高,否則壓出來畫面很慘。而且就算流量超高,這個矩陣因為高頻(右下角)砍得少(除的少),所以壓縮某些訊源時,如果訊源有特殊的雜訊,例如訊源本身已經壓縮過,是 MPEG-2,原本就有一些壓縮瑕疵,再經過這個矩陣量化,用超高流量,也就是低 quantizer 壓縮,會保留部分高頻下來,這些高頻反而會變成一些雜訊,用這個矩陣超高流量壓縮,反而整個畫面都是灰茫茫的一片雜訊。
此時如果降低一點品質(流量),這些雜訊會被削掉,畫面會變乾淨,視覺品質反而提高。
我又扯遠了,總之就是
1. 視情況最佳矩陣會有所不同
2. 就算用同一個矩陣,根據設定的流量,表現也會不同
3. 所以..... 你問我適合動畫的矩陣..... 我也沒辦法肯定的答覆你
非常抱歉 ^^;
就是 Quantization Method 選 Custom MPEG,然後在 Quantization Matrix 設定裡面自訂量化矩陣。
在尚未更改之前,Quantization Matrix 裡面顯示的那個矩陣就是預設的量化矩陣,也就是 Quantization Method 你選 MPEG 時使用的矩陣。
這個矩陣是 MPEG-4 standard 制訂的預設量化矩陣,當使用 "MPEG" 壓縮時,會自動使用這個矩陣量化,VOL Header 不用記錄使用的矩陣資訊,Decoder 端都內建這個矩陣,知道該怎麼解碼。
也就是說
1. 使用預設矩陣,VOL Header 不用額外記錄矩陣資訊,較節省容量(雖然這個資訊所花費的容量很小很小)
2. 如果自訂矩陣,檔案的 VOL Header 就要記錄使用的自訂量化矩陣是什麼樣子,Decoder 才能知道要怎麼解碼
3. 所以使用的矩陣資訊都藏在 VOL Header 裡
|
您好~
印象中,使用costom matrix不是會有相容性的問題嗎??
變成一定得用XVID來解才行,FFDSHOW會無法正確的解碼...
煩請說明,謝謝~
__________________
雖然我已被地獄的業障之火所玷汙
我的心還是憧憬天堂~
|