查看單個文章
舊 2004-06-11, 04:27 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 低碼率MPEG2製作精品DVDRIP之混血兒篇----TMPGENC+XVID

XVID是目前做DVDRIP首屈一指的編碼,但是在做2CD高碼率RIP的時候我們還可以考慮用MPEG2.
在這裡高碼率的MPEG2是指1200K左右的碼率,因為扣掉AC3的音瀕部分(通常是384K和448K),我們還可以每分鐘9M左右的文件體積製作兩小時的VIDEO文件.
但不是任何一種MPEG2的壓縮軟體或壓縮模式都可以勝任低碼率MPEG2的DVDRIP.

上次我介紹了CANOPUS PROCODER,已經可以勝任我們的的DVDRIP了,這次我再推薦一個品質更好的方法,就是用TMPGENC.
經過研究證明TMPGENC的MPEG2 CQ壓縮模式有更好的碼率動態分配的功能,可以大幅度減少低碼率時馬塞克的發生.

為什麼不用TMPGENC的2PASS_VBR?
因為實驗表明TMPEGENC的2PASS_VBR的碼率動態分配很窄,它應該不是關於QUAN的碼率分配模式,效果自然也就很差了.

但是CQ模式不能控制文件體積,所以在選取CQ品質參數時將無所適從.

實驗表明TMPGENC與XVID製作出來的DVDRIP片段的碼率分配曲線非常相似
所以我們可以用XVID的1PASS+DEBUGVIEW,用它們我可以得到QUAN2下的文件大小,這是與文件的內在細節和動態含量直接相關的.
由此思路只要建立與TMPGENC CQ參數和最後文件體積的回歸方程式,就可以控制TMPGENC CQ模式下壓縮的文件體積了.

結果表明此路是通的.

我先壓了兩個7分鐘的片段,片源都是N制的原版MUMMY的最後一個VOB
一個是2.33:1的,640X272時XVID+DEBUGVIEW算出1P的QUAN2的文件體積為122572K,目標文件63M.
代入回歸方程後求出應該用CQ68%,結果文件體積為64.4M.
另一個是4:3的,640X480時XVID+DEBUGVIEW算出1P的QUAN2的文件體積為166780K,目標文件63M.
代入回歸方程後求出應該用CQ55%,結果文件體積為66.7M.(大了5%)

當然,文件體積不可能像XVID產生的那樣精確,但也應該湊合用了.
另一方面,壓大解析度的可能效果要差一點點,所以建議推算的結果可選用CQ60%或以上時,才考慮用MPEG2壓縮.
否則還是用XVID吧.
不過對絕大多數640X272或640X352的兩小時左右的片子來講,求出的結果都會在CQ60%以上.
至於回歸方程參數的進一步完善和TMPGENC的其它進階選項的套用,還有待於有興趣的朋友們自己去玩了(比如同時壓入字幕).
好經驗可別忘了我呀!

言歸正傳,介紹軟體和使用方法:
所需軟體:

1.TMPGENC 2511
2.Avisynth 2.X
3.DEBUGVIEW 4.2
4.最新版的XVID編碼
6.NERO 5.X
7.Media Player Classic 6.4.4.2
8.MAIN COCEPT MPEG和 AC3解碼 FILTER
9.DVD2AVI或其它可以解出VOB裡AC3文件的軟體.

1.開起DEBUGVIEW,用VDUB或VMOD讀入VOB文件做XVID的1PASS.

LoadPlugin("j:\avs\mpegdecoder.dll")
mpegsource("5.vob",1,"ff")
crop(8,0,-8,0)
LanczosResize(640,480)
#trim(1,10072)

記下DEBUGVIEW最後一行上的那個文件體積

注:XVID的1P時不要選B畫格,LM,QP等影響1P速度的參數,我只選了一個CM.
對一些高解析度或長時間的DVD片子,DEBUGVIEW可能不能顯示吃2G以上的文件SIZE,這時候只能分段用DEBUVIEW測算再求和了.
2.代入公式計算可以選取的CQ水準:

DEBUGVIEW的文件體積(K)/20/目標文件的產生體積(M)
CQ=-0.3607X+102.7
以本例為例
DEBUGVIEW 166780K/20=8337/63M=132

CQ=-0.3607X132+102.7=55(%)

3.用TMPGENC讀入AVS文件,注意ADVANCED(輸入)和VIDEO(輸出)裡的一些基本參數的設定.
特別是實際輸出的MPEG2的解析度,拿不準的話可先輸出一小段試一下,有問題可以及時調節.
CQ視窗裡設頂最大碼率為6000.
4.開壓.
壓縮速度相當於壓XVID.

5.用TMPGENC 的MPEG TOOL選項合成M2V和AC3文件,並分成2CD的文件兩個.

6.用NERO的SVCD 模版燒刻儲存,不要勾選那個相容性的選項.

7.用Media Player Classic 6.4.4.2播放.


看上去是不是比上一次的CP版還要簡單高效

混血兒長的大嗎?
先上PSNR的比較結果
再上個別畫格的比較
再再比較畫格的片段
DVD源是原版MUMMY最後一個VOB
4:3,640X480,23.97
(截圖比較時可能不用再放大了)
取15分鐘壓縮
(因我現在的硬碟空間被兒子佔去太多,暫不能壓全片比較)
CQ選60%的較低水準,怕選高了的話MPEG4輸的找不到北
平均碼率1450K左右
有人可能要說1450K太大了
不過請注意這是640X480的片子,真的要壓那些640X352或640X272的片子時CQ60%所對應的碼率一定會在1200K以下的
先比較了8000畫格的PSNR
可見PSNR的均值MPEG2比XVID足足高了0.4DB
雖然離普通眼可見區別的0.5DB還差一點點
但也比XVID絞盡腦汁設定所提高的0.1DB高太多了.
這裡是兩者都配送碼率較大的地方,
都在3500K左右
這裡是兩者都配送碼率較小的地方,
都在500K左右
mpeg2處理灰暗部分怎麼這麼差勁,我的豬羅紀3的片段根本不能看,而且CQ還是70以上。MPEG2製作精品DVDRIP之公式校正
CQ=103-0.36x

1pass加速預測法AVS語句如下:
SelectRangeEvery(a,b)

原理是在全片或片段中抽樣測定文件的資訊含量.

建議每個抽樣點取20畫格:b=20

取樣數為總畫格數的10%

a值計算如下:
如某片段為避免22150畫格
則需取樣2215畫格
取樣點個數=2215/20=110.75
a=取樣點間隔=22150/110.75=200

則有:SelectRangeEvery(200,20)

當然DEBUGVIEW的到的文件體積要乘10後再代入回歸方程計算了

或者DEBUGVIEW的總文件體積除以2而不是除以20也一樣吧?!

希望有興趣的朋友做點實驗來校正回歸公式
帝國驕雄D9版
最後一個VOB 7200畫格 640X272
目標文件45M,CQ59%,實際產生42.2M

中間的是VOB
兩邊的各取所愛吧!

PSNR:
MPEG2 34.72
XVID 33.96
小日本實際上要選次最高品質壓縮
HIGH QUALITY (SLOW) 而不是NORMAL
當然壓縮速度要慢50%左右

一般來講要CQ60或以上才會有好的結果,而且適用於色彩鮮艷的片源
而不是DOOME9 喜歡的灰片,如MATRIX

就PSNR而言
RGB模式比較時
CQ60時MPEG2肯定明顯高於XVID,而且往上差距越大
CQ55時MPEG2與XVID相當,
CQ50時MPEG2將開始低於XVID

但YUV模式時PSNR的值要比RGM模式時的到的結果高5 DB左右
(這也是我的PSNR總比SILKY測的低的原因)
而且XVID測的PSNR要比MPEG2高了,估計要到CQ65時兩者的值才會接近.

但是,顯示器上的看的圖像效果是接近RGB的還是接近YUV的我又忘記了
看來要去查BBS的老帖子了
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次