xvid 详解 代码分析 编译等
1.?? Xvid參數(shù)詳解
眾所周知,Mencoder以其極高的壓縮速率和不錯(cuò)的畫質(zhì)贏得了很多朋友的認(rèn)同!
原來用Mencoder壓縮Xvid的AVI都是使用Xvid編碼器的默認(rèn)設(shè)置,現(xiàn)在我來給大家沖沖電,講解一下怎樣使用Mencoder命令行高級(jí)參數(shù)制作Xvid編碼格式AVI影片。經(jīng)過測(cè)試,可以毫不夸張的說:在減小50%的文件體積同時(shí)能夠保持原有畫質(zhì)!
大家平時(shí)用WisMencoder壓縮電影的時(shí)候也許會(huì)感覺到雖然它速度飛快,但是關(guān)于Xvid編碼器的設(shè)置卻少得可憐!并沒有完全發(fā)揮出Xvid編碼的優(yōu)勢(shì)!
首先介紹一下這些高級(jí)參數(shù)的作用:
cartoon——卡通模式
vhq=4——VHQ MODE,有0-4五個(gè)值,越大畫質(zhì)越好,但是編碼速度越慢
chroma_me——?jiǎng)討B(tài)檢索
max_key_interval——最大關(guān)鍵幀距離
Quant_type=mpeg——量化矩陣,Mpeg模式,如果壓縮時(shí)去掉這段就默認(rèn)量化矩陣為H.263
trellis——高質(zhì)量量化模式
GMC——全域動(dòng)態(tài)補(bǔ)償
qpel——四分之一像素精確動(dòng)態(tài)補(bǔ)償(如果使用了該功能則可能降低解碼速率,建議不用)
bvhq=1——在B幀上啟用VHQ
lumi_mask——加大畫面明暗部分壓縮率(一般不用,有時(shí)會(huì)導(dǎo)致畫面失真)
greyscale——使用灰度,但是便出來的畫面是黑白的(一般不使用)
interlacing——隔行處理,適用于交錯(cuò)片源(一般不使用)
chroma_opt——色度優(yōu)化
Quantization量化選項(xiàng)(關(guān)鍵的關(guān)鍵就在這里!)
量化器級(jí)別(quantizer level)即Q值越高畫面細(xì)節(jié)越豐富,但是在低碼率下越高的量化器級(jí)別,會(huì)帶來越低的畫面質(zhì)量,Q 值越小,質(zhì)量越好,碼率越大;Q 值越大,質(zhì)量越差,碼率越小。(實(shí)際上,它的原始概念更復(fù)雜,我們干脆簡(jiǎn)單地認(rèn)為1就是100%原質(zhì)量,31就是1/31的原質(zhì)量好了)。P-frame(即未來單項(xiàng)預(yù)測(cè)幀)建議設(shè)置在1--15之間,(它的作用是只儲(chǔ)存與之前一個(gè)已解壓畫面的差值。即僅僅描述它與前一幀的區(qū)別)。I -frame(即關(guān)鍵幀)的Q值只用能作用于2pass-second壓制上,在VirtualDub被標(biāo)示為 [K],關(guān)鍵幀是構(gòu)成一個(gè)幀組(GOP, Group of Picture)的第一個(gè)幀。I-Frame 保留了一個(gè)場(chǎng)景的所有信息(Keyframe原意是指可以單獨(dú)解碼、用于同步的 frame,不過在MPEG系統(tǒng)中只有I-frame有這個(gè)特性,因?yàn)锽F和PF都是預(yù)測(cè)幀,要靠I-Frame來還原)。B-frame(即雙向預(yù)測(cè)幀)除了參考之前解壓過了的畫面外,亦會(huì)參考后面一幀中的畫面信息。這三個(gè)設(shè)置的范圍都是1-31,應(yīng)該注意的是在場(chǎng)景昏暗的條件下不要讓B-frame 過低。
min_iquant=1——IF的量化最低值(取值范圍在1-31之間)
max_iquant=10——IF的量化最高值(取值范圍在1-31之間)
min_pquant=1——PF的量化最低值(取值范圍在1-31之間)
max_pquant=10——PF的量化最高值(取值范圍在1-31之間)
min_bquant=1——BF的量化最低值(取值范圍在1-31之間)
max_bquant=30——BF的量化最低值(取值范圍在1-31之間)
-sws 9 取值范圍在(0-9)之間,不同值代表不同的Resize算法!建議用 -sws 9
0?????????????????? 快速二次線性(默認(rèn))(速度較快)
1?????????????????? 二次線性
2?????????????????? 二次立方(質(zhì)量很好)
3?????????????????? 實(shí)驗(yàn)中
4?????????????????? 最短距離 (bad quality)
5?????????????????? 區(qū)域
6?????????????????? 亮度二次立方 度二次線性
7?????????????????? 高斯
8?????????????????? sincR
9?????????????????? lanczos(速度較快,而且畫面銳利)
10?????????????????? 雙三次樣條曲線
實(shí)際應(yīng)用舉例:
把
vhq=4:cartoon:chroma_me:min_iquant=1:chroma_opt:min_iquant=1:max_iquant=12:min_pquant=1:max_pquant=12:bvhq=1:min_bquant=1
添加到WisMencoder的手動(dòng)參數(shù)中的視頻編碼處,如本樓底部圖片:
然后再把 -sws 9 參數(shù)添加到視頻濾鏡處即可!記得-sws 9前一定加個(gè)空格,要不編碼器不會(huì)啟動(dòng)!
當(dāng)然你也可以自己摸索適合的方案,做出效果更佳的方案!
Xvid大概介紹:(個(gè)人認(rèn)為XVID編碼比DIVX編碼的畫質(zhì)更好,故只講XVID的參數(shù)。了解以下內(nèi)容對(duì)轉(zhuǎn)換影片有一定幫助,尤其是要放在硬盤上用PC觀看的視頻,當(dāng)然對(duì)轉(zhuǎn)換成手機(jī)觀看的影片也是有好處的,使你不至于盲目的轉(zhuǎn)換)
???????????????????????????? (此文是參照電腦雜志上的介紹而寫,在此感謝寫出那篇文章的作者。所涉及到的圖片是自己抓的,文字也是一個(gè)一個(gè)字打出來的,并非從網(wǎng)上轉(zhuǎn)抄,我無非是想讓有興趣于此道的朋友更多的了解xvid這個(gè)編碼器)
如果在網(wǎng)頁(yè)上看不太清楚的圖片,請(qǐng)下載到個(gè)人電腦上查看
xvid有兩種編碼方式:single pass和twopass
single pass模式編碼簡(jiǎn)單,速度也快,但最終效果不如twopass。
twopass就是視頻壓制需要經(jīng)過兩次編碼,分別為twopass-1st pass(簡(jiǎn)稱1pass)和twopass-2nd pass(簡(jiǎn)稱2pass)
1pass時(shí),編碼器會(huì)用最高質(zhì)量編碼采集可供第2次運(yùn)算參考的畫面信息,而在2 pass時(shí)。編碼器會(huì)根據(jù)第一次壓縮獲得的信息和用戶指定的文件大小,自動(dòng)分配比特率,使需要高流量的運(yùn)動(dòng)畫面分配到更多的空間,更高的比特率來保證畫面質(zhì)量。相對(duì)的,對(duì)于那些不包含太多運(yùn)動(dòng)信息的靜態(tài)畫面則用較低的比特率。追求畫質(zhì)的朋友當(dāng)然會(huì)選擇這種方式,但運(yùn)算比single pass更費(fèi)時(shí)。
接下來介紹一些基本概念:
Q值——量化值,它被用來描述1幀的質(zhì)量,每幀都有一個(gè)Q值,取值范圍在1-31之間。Q值越小,畫質(zhì)越好,比特率越大
I-frame——關(guān)鍵幀,常被縮寫為IF。關(guān)鍵幀是構(gòu)成一個(gè)幀組的第一幀。IF保留了一個(gè)場(chǎng)景的所有信息
P-frame——未來單項(xiàng)預(yù)測(cè)幀,縮寫為PF,只儲(chǔ)存與之前一個(gè)已解壓畫面的差值
B-frame——雙向預(yù)測(cè)幀,縮寫為BF,除了參考之前解壓的畫面以外,也會(huì)參考后一幀的畫面信息
第一步:Profile@Level(框架級(jí)別)設(shè)置
選擇Profile@Level旁的more按鈕來進(jìn)行框架設(shè)置。Profile@Level里方案的層級(jí)越低,編碼的比特率及分辨率限制的越多。在制作 DVDrip時(shí)一般選擇AS@L5或者unrestricted(不限定比特率,讓編碼器自行分配)。我在制作手機(jī)影片時(shí)通常選用AS@L5,因?yàn)榭蛇x擇的方案更多,而且比特率可自己隨意調(diào)節(jié),只要手機(jī)能跑的動(dòng)就行!!
(注意:在single pass模式下,Profile@Level的設(shè)定無效,由編碼器自行分配比特率)
第二步:Encoding type(編碼類型)設(shè)置?????????? (這里是重中之重)
第1種方式:
single pass,求快可以用這種一次性編碼來壓縮視頻。但因?yàn)槊繋膲嚎s率相同,流量自行分配,所以壓縮后的視頻容量無法控制。 single pass有Target quantizer和Target bitrate兩種模式,在主界面的Encoding type里先選擇 single pass,再點(diǎn)擊左下方的Target XXX按鈕在兩種模式中進(jìn)行切換
名詞解釋:
Target bitrate——目標(biāo)比特率模式。選擇平均比特率編碼,相對(duì)容易控制文件大小。
Target quantizer——目標(biāo)Q值模式,采用動(dòng)態(tài)比特率編碼。設(shè)置為“1”是最高質(zhì)量,31是最低質(zhì)量。設(shè)置為2是容量與效果的最佳比,但文件體積很大,可以設(shè)置小一點(diǎn)的數(shù)值,例如2.5,如果不確定,可以按主界面上的“calc”按鈕計(jì)算目標(biāo)容量大小(詳細(xì)的計(jì)算方法請(qǐng)看下一節(jié))
如何用calc計(jì)算容量:
Target size:目標(biāo)容量的大小,舉例來說,如果我們想將視頻容量控制在1CD以內(nèi),由于1M等于1024KB,所以其值不能高于716800KB。
subtitles:選擇此項(xiàng)能將外掛字幕的大小納入計(jì)算
container:按照你想制作的最終視頻格式選擇
video:設(shè)定視頻長(zhǎng)度及fps
Audio:設(shè)定音頻格式
第2種方式:
為了保證視頻的質(zhì)量,很多時(shí)候我們會(huì)選擇twopass模式來壓縮視頻
step 1:
在主窗口的“Encoding type”下拉菜單中選擇1pass模式,再點(diǎn)擊旁邊的more按鈕。在彈出的窗口中勾選 “Discard first pass”(不輸出第一次運(yùn)算結(jié)果)否則可能生成一個(gè)高達(dá)幾GB的無用文件。 “full quality first pass”是指優(yōu)質(zhì)進(jìn)行1pass,通常這是沒必要的,這樣反而會(huì)降低1pass的編碼速度
step 2:
再返回到主窗口,在“Encoding type”下拉菜單中選擇2pass模式,點(diǎn)擊旁邊的more按鈕進(jìn)行設(shè)置。
首先點(diǎn)擊“stats filename”這一欄的按鈕,選擇在1pass編碼時(shí)生成的*.pass文件。
其余講解請(qǐng)看圖
以上介紹了兩種編碼方式,現(xiàn)在講一下視頻的優(yōu)化:
01.Advanced Options:
Motion search Precision(運(yùn)動(dòng)檢索精確度):設(shè)定運(yùn)動(dòng)檢測(cè)的精密度,數(shù)值越高,文件轉(zhuǎn)換時(shí)間越長(zhǎng),建議選用“6-ultra High”
VHQ mode(VHQ模式):根據(jù)人類視覺特性進(jìn)行建模,可以使肉眼可分辨的區(qū)域壓縮的好一點(diǎn),從而提升肉眼所見部分的視頻質(zhì)量。若想效率與質(zhì)量兼顧,可以將VHQ設(shè)置為1,若想求得最佳畫質(zhì)則可以將VHQ設(shè)置為4
Use VHQ for bframes too:對(duì)BF也使用VHQ模式
Use chroma motion:使用chroma(色度)信息來動(dòng)態(tài)計(jì)算,雖然會(huì)增加編碼時(shí)間,但可以有效地防止色塊和亮塊,建議選擇
Turbo:開啟BF時(shí)可以提高編碼速度,但會(huì)降低一點(diǎn)畫質(zhì),不建議選取
Frame drop ratio(丟幀率):保持為0,因?yàn)槲覀兿M恳粠急痪幋a
Maximum I-frame interval:最大IF幀距,一般為幀率的10倍。例如一段視頻的幀率為24,則該處就填寫240,最好是維持為240,這樣可確保每240幀就會(huì)有一個(gè)IF。如果場(chǎng)景變換偵測(cè)出需要插入IF的幀數(shù)小于這個(gè)值的話,它就會(huì)重新計(jì)算
02.Quantization(量化)設(shè)置:
設(shè)定IF/PF/BF最小及最大Q值,從XVID1.1開始,它的流量控制做的很好,在比特率足夠的情形下,不會(huì)出現(xiàn)過高的Q值,保持默認(rèn)可防止目標(biāo)容量超出或者小于設(shè)置的情況。但在single pass模式下設(shè)定Q值是無效的
Trellis quantization:在2pass模式下可以提升畫質(zhì),但在single pass模式則會(huì)使畫質(zhì)有一些下降,容量也有所減少
03.Debug設(shè)置:
Performance optimizations:性能優(yōu)化,可以選擇特定的cpu指令集優(yōu)化,建議選擇第一項(xiàng)
Fourcc used:默認(rèn)值是xvid,改變此設(shè)定可以讓你使用divx等其他播放filter來播放,但有時(shí)會(huì)不兼容,建議不修改此項(xiàng)設(shè)置
04.Zone options設(shè)置:
zone其實(shí)就是將影片劃分為幾段,分別為這些片斷定制一些設(shè)置(此項(xiàng)設(shè)置用于轉(zhuǎn)換pc上觀看的影片較多,在此不作細(xì)講)
小提示:如果在片頭之類非重要片段使用Quantizer模式,應(yīng)該在1pass中也使用相同的設(shè)置。而若要用Weight模式則只需要在2pass中設(shè)置即可
至此,xvid的參數(shù)設(shè)置已講解完了,有興趣于此道的朋友可以多作嘗試,找出適合你的具體參數(shù)。
我先獻(xiàn)丑了,把自己的參數(shù)設(shè)置提供給大家
手機(jī)機(jī)型:QD
片源:一般都是網(wǎng)上下載的AVI文件
轉(zhuǎn)換軟件:TMPGEnc3XP
視頻編碼器:xvid
編碼參數(shù):幀率:15fps?? ,碼率:128-160kbps(動(dòng)畫片的碼率有時(shí)更小) 編碼方式:single pass(上傳到論壇的視頻都是用的 single pass,主要是為了節(jié)省時(shí)間,而且手機(jī)不能支持較高的碼率,故個(gè)人感覺在此single pass和twopass差別不大。如果用于 pc上,還是建議用twopass) 其余的設(shè)置均是參照上文
音頻編碼:MPEG Layer-3???????? 32000hz?? ,48kbps?? CBR?? ,Mono
濾鏡:只在加字幕文件的時(shí)候用到,一般是制作的SRT字幕,濾鏡是Text Sub2.23
如果有朋友經(jīng)常用DIVX編碼,請(qǐng)發(fā)個(gè)帖子作一下詳細(xì)的介紹,大家交流一下經(jīng)驗(yàn)!!!
2.??
Xvid命令行高級(jí)參數(shù)詳解
Xvid編碼高級(jí)參數(shù): 壓縮過程中的視頻碼率建議不要超過192Kbps(因?yàn)閷?duì)于加入了手動(dòng)參數(shù)的Xvid編碼器,畫質(zhì)提升是相當(dāng)明顯的),強(qiáng)烈建議用2-Pass壓縮! 首先介紹一下這些高級(jí)參數(shù)的作用: cartoon:卡通模式,非卡通則去掉此參數(shù)vhq=4:VHQ MODE(動(dòng)態(tài)搜索算法),有0-4五個(gè)值,越大畫質(zhì)越好,但是編碼速度越慢
me_quality=6: 動(dòng)態(tài)搜索精度(6為精度最大值)
chroma_me:動(dòng)態(tài)檢索 ,色彩動(dòng)態(tài)評(píng)估 max_bframes=0 :B幀最大間距,設(shè)為0表示關(guān)閉B幀功能
profile=XXX :小于等于15fps設(shè)置為sp3,大于15fps設(shè)置為asp3
max_key_interval=XXX :最大I幀(關(guān)鍵幀)間隔,一般設(shè)置成幀數(shù)的10倍
Quant_type=mpeg:量化矩陣,Mpeg模式,如果壓縮時(shí)去掉這段就默認(rèn)量化矩陣為H.263
trellis:高質(zhì)量量化模式
GMC:全域動(dòng)態(tài)補(bǔ)償
qpel:四分之一像素精確動(dòng)態(tài)補(bǔ)償(如果使用了該功能則可能降低解碼速率,建議不用)
bvhq=1:在B幀上啟用VHQ
lumi_mask:加大畫面明暗部分壓縮率(一般不用,有時(shí)會(huì)導(dǎo)致畫面失真)
greyscale:使用灰度,但是便出來的畫面是黑白的(一般不使用)
interlacing:隔行處理,適用于交錯(cuò)片源(一般不使用)
chroma_opt:色度優(yōu)化 ,色彩最佳化
Quantization量化選項(xiàng)(關(guān)鍵的關(guān)鍵就在這里!) 量化器級(jí)別(quantizer level)即Q值越高畫面細(xì)節(jié)越豐富,但是在低碼率下越高的量化器級(jí)別,會(huì)帶來越低的畫面質(zhì)量,Q 值越小,質(zhì)量越好,碼率越大;Q 值越大,質(zhì)量越差,碼率越小。(實(shí)際上,它的原始概念更復(fù)雜,我們干脆簡(jiǎn)單地認(rèn)為1就是100%原質(zhì)量,31就是1/31的原質(zhì)量好了)。P- frame(即未來單項(xiàng)預(yù)測(cè)幀)建議設(shè)置在1--15之間,(它的作用是只儲(chǔ)存與之前一個(gè)已解壓畫面的差值。即僅僅描述它與前一幀的區(qū)別)。I- frame(即關(guān)鍵幀)的Q值只用能作用于2pass-second壓制上,在VirtualDub被標(biāo)示為 [K],關(guān)鍵幀是構(gòu)成一個(gè)幀組(GOP,Group of Picture)的第一個(gè)幀。I-Frame 保留了一個(gè)場(chǎng)景的所有信息(Keyframe原意是指可以單獨(dú)解碼、用于同步的frame,不過在MPEG系統(tǒng)中只有I-frame有這個(gè)特性,因?yàn)锽F 和PF都是預(yù)測(cè)幀,要靠I-Frame來還原)。B-frame(即雙向預(yù)測(cè)幀)除了參考之前解壓過了的畫面外,亦會(huì)參考后面一幀中的畫面信息。這三個(gè)設(shè) 置的范圍都是1-31,應(yīng)該注意的是在場(chǎng)景昏暗的條件下不要讓B-frame過低。
min_iquant=1——IF的量化最低值(取值范圍在1-31之間)
max_iquant=10——IF的量化最高值(取值范圍在1-31之間)
min_pquant=1——PF的量化最低值(取值范圍在1-31之間)
max_pquant=10——PF的量化最高值(取值范圍在1-31之間)
min_bquant=1——BF的量化最低值(取值范圍在1-31之間)
max_bquant=30——BF的量化最低值(取值范圍在1-31之間)
-sws 9 取值范圍在(0-9)之間,不同值代表不同的Resize算法!建議用 -sws 9
0 快速二次線性(默認(rèn))(速度較快)
1 二次線性
2 二次立方(質(zhì)量很好)
3 實(shí)驗(yàn)中
4 最短距離 (bad quality)
5 區(qū)域
6 亮度二次立方 度二次線性
7 高斯
8 sincR
9 lanczos(速度較快,而且畫面銳利)
10 雙三次樣條曲線
實(shí)際應(yīng)用舉例: vhq=4:cartoon:chroma_me:chroma_opt:min_iquant=1:max_iquant=12:min_pquant=1:max_pquant=12:bvhq=1:min_bquant=1
添加到WisMencoder的手動(dòng)參數(shù)中的視頻編碼處,然后再把 -sws 9 參數(shù)添加到視頻濾鏡處即可!記得-sws 9前一定加個(gè)空格,要不編碼器不會(huì)啟動(dòng)!當(dāng)然你也可以自己摸索適合的方案,做出效果更佳的方案!
3.?
詳解Xvid編碼格式
XviD簡(jiǎn)介 XviD是當(dāng)宿世界上最常用的視頻編碼解碼器(codec),而且是第一個(gè)真正開放源代碼的,經(jīng)由過程GPL協(xié)議發(fā)布。在良多次的codec斗勁中,XviD的默示令人詫異的好,總體來說是當(dāng)前最優(yōu)異、最萬(wàn)能的codec。
編纂本段XviD的主要性 近五年來,XviD一向是世界上最風(fēng)行的視頻編碼器。估量在BT(BitTorrent)和eMule上至少90%的片子、電視劇是用XviD壓制的。可是在中國(guó)的情形有些特殊,因?yàn)橹袊?guó)的影視發(fā)布者喜歡用RMVB名目。
編纂本段文件擴(kuò)展名 XviD的文件擴(kuò)展名可所以AVI、MKV、MP4等。需要聲名的是,僅從擴(kuò)展名并不能看出這個(gè)視頻的編碼名目。好比說一部片子是.avi名目,可是實(shí)際上的視頻編碼名目可所以DV Code,也可所以XviD或者其他的;音頻編碼名目可所以PCM、AC3或者M(jìn)P3。
MP4和MKV名目比AVI更前進(jìn)前輩,支持更多的功能,好比字幕。AVI視頻的字幕需要另外的SRT文件。當(dāng)前國(guó)外絕大大都的影視資源都是AVI名目。
編纂本段XviD文件的大小 網(wǎng)上的視頻資源大都采用固定碼率(CBR),所以文件大小很不變,并不會(huì)因?yàn)橘Y源發(fā)布者的差異而改變。
1. 一集43分鐘的劇集,文件大小為350MB左右。按照每季22集計(jì)較,一季美劇需要7.5 GB的硬盤空間。
2. 一集22分鐘的劇集,文件大小為175MB左右。
3. 片子文件的大小由片子的長(zhǎng)度抉擇。
編纂本段XviD影視資源的文件名寄義詮釋 國(guó)外電視劇建造組發(fā)布的歐美電視劇,其文件名的具體寄義
劇名.S季數(shù)E集數(shù).集名(有的沒有標(biāo)).旌旗燈號(hào)采集源.音頻編碼(默認(rèn)的MP3可以不標(biāo)).視頻編碼-建造組
例如:
Prison.Break.S02E01.Manhunt.HR.HDTV.AC3.5.1.XviD-DiMENSION
劇名 - Prison Break
S季數(shù) - S02
E集數(shù) - E01
集名 - Manhunt
旌旗燈號(hào)采集源 - HDTV
音頻編碼 - AC3.5.1
視頻編碼 - XviD
建造組 - DiMENSION
編纂本段XviD技術(shù)的降生過程 在1998年以前,PC 上獨(dú)一能用的 MPEG-4 編碼器是由微軟所開發(fā)的,搜羅 MS MPEG4 V1、MS MPEG4 V2、MS MPEG4 V3 的系列編碼焦點(diǎn)。其中前面兩種都可以用來建造 AVI 文件,至今都作為 Windows 的默認(rèn)組件。可是 V1 和 V2 的編碼質(zhì)量都還不太好,直到 MS MPEG4 V3 預(yù)備,畫面質(zhì)量有了光鮮較著的前進(jìn)。可是微軟卻抉擇將這個(gè) MS MPEG4 V3 的視頻編碼焦點(diǎn)封鎖在 Windows Media 流媒體技術(shù)――也就是我們熟知的 ASF 名目之中,不再能用于 AVI 名目。ASF 名目當(dāng)然有一些益處,可是過于封鎖甚至不能被編纂,惹惱了天不怕地不怕的片子駭客。很快便有小組改削了微軟的 MS MPEG4 V3,解除了不能用于 AVI 名目的限制,并開放了其中一些壓縮參數(shù),由此,也就降生了我們今天所熟悉的 MPEG4 編碼器 DivX;-)3.11。
DivX普遍風(fēng)行,成為 DVDRip 的標(biāo)準(zhǔn),問題是,它的根本技術(shù)是犯警盜用微軟的,只能在地下里傳布卻上不了臺(tái)面,無法進(jìn)行更普遍的產(chǎn)物化,更無法出產(chǎn)硬件播放機(jī)。在這種情形下,一些精曉視頻編碼的工程師 (搜羅原 DivX 3.11 的開發(fā)者) 成立了一家名為 DivX Networks Inc. 的企業(yè),簡(jiǎn)稱 DXN。DXN 創(chuàng)議一個(gè)開放原始碼項(xiàng)目 Project Mayo,方針是開發(fā)一套全新的、開放原始碼的 MPEG4 編碼軟件。出格是完全合適 ISO MPEG4 標(biāo)準(zhǔn)的 Open DivX CODEC 吸引了良多軟件高手介入,并很快開發(fā)出Open DivX 編碼器和譯碼器原型,之后又開發(fā)出更高機(jī)能的編碼器 Encore 2 等等。這一時(shí)代,首要編碼工作是 DXN 的人在做,而良多技術(shù)難關(guān)的解決得力于來自開放源代碼社會(huì)的輔佐。
就在一切都看]起來進(jìn)展順?biāo)斓臅r(shí)辰,好戲上演了。Project Mayo 當(dāng)然是開放源代碼,但不是依據(jù) GPL (通用公共許可證,一種開放源代碼項(xiàng)目中常用的保障自由使用和自由改削軟件權(quán)力的和談)而是LGPL和談(LGPL和談:次級(jí)GPL(Lesser GPL),與GPL一樣,是一種公共許可證。與GPL的最大差異是它許可私有。)。DXN 在設(shè)計(jì)授權(quán)和談時(shí)留了一手,2001 年 7 月,就在 Encore 2 基本成型,差不多可以產(chǎn)物化的時(shí)辰,DXN 另搞了一個(gè) DIVX 網(wǎng)站,封鎖了原始代碼,發(fā)布了他們自己的 DivX 4。DivX 4 的根本就是 Open DivX中的 Encore 2,但操作了 DivX 的商標(biāo),出乎意料的擺了所有人預(yù)料。因?yàn)镈XN 不再介入,Project Mayo 陷于擱淺,Encore 2 的原始代碼也被 DXN 從服務(wù)器上撤下。經(jīng)由激烈的爭(zhēng)論,DXN 當(dāng)然認(rèn)可 Encore 2 在法令上是開放的,但仍然拒絕把它放回服務(wù)器。開源社區(qū)就這樣被狠狠地涮了一回。
Open DivX 尚不能實(shí)際使用,而 DivX 4 (以及后續(xù)的收費(fèi)版本DivX 5) 等成了私有財(cái)富,良多酬報(bào)打破微軟壟斷而無償支出的智能和勞動(dòng)僅僅是輔佐了 DXN 企業(yè)發(fā)家。這種功效當(dāng)然是不能被接管的,是以,整個(gè) 0dayz 組織永遠(yuǎn)的拒絕了 DXN 企業(yè)的 DivX4/5,而原 Open DivX 開發(fā)組中的幸存者,逐漸從頭聚攏開發(fā)力量,在最后一個(gè) Open DivX 版本的根本上,成長(zhǎng)出了 XviD。
浩劫不死的 XviD 到此刻又渡過了近 1 年時(shí)刻,它繼承并成長(zhǎng)了 Open DivX Encore 2,機(jī)能獲得極大提高,被認(rèn)為當(dāng)宿世界上速度最快的 MPEG4 CODEC。XviD重寫了所有代碼,并吸收前車之鑒遵照 GPL 發(fā)布 (注重不再是 LGPL,所以誰(shuí)若是想用它做成產(chǎn)物而不開放源代碼是犯警的)。可是,因?yàn)?MPEG4 還存在專利權(quán)的問題,所以 XviD 只能模擬 LAME 的做法,僅僅作為對(duì)若何實(shí)現(xiàn) ISO MPEG-4 標(biāo)準(zhǔn)的一種研究交流,網(wǎng)站上只供給原始碼,若是要使用就要自己編譯原始碼或者到第三方網(wǎng)站下載編譯好的可運(yùn)行版本。
想當(dāng)初Gaj 之流的幾個(gè)家伙搞 Open DivX 的時(shí)辰,一預(yù)備是很像一個(gè)像模像樣的開放原始碼項(xiàng)目,良多人都被吸引曩昔一路開發(fā),測(cè)試。直到后來,那幾個(gè)家伙一夜之間露出騙子的原本臉孔了,把 Open DivX 的功效一股腦帶走,釀成了封鎖源代碼的 DivX4,爾后進(jìn)一步釀成此刻的收費(fèi)的 DivX 5 了。原本很好的 Open DivX 被逼流產(chǎn),可是也就促成了今天 XviD 的降生、成長(zhǎng)和壯大。此刻的 XviD 更可以說超越了 DivX 5,以更好的質(zhì)量,更強(qiáng)的功能佻達(dá)戰(zhàn)著新一代的 MPEG4 應(yīng)用沙場(chǎng)。
編纂本段XviD版本的歷史 1.0 2002年2月17日 第一版 ,初度發(fā)布
1.0 2002年2月28日 大量的改進(jìn)和更切確地詮釋
1.1 2002年3月2日 剖析澄清了良多概念
1.2 2002年3月4日 加進(jìn)量化矩陣(quantization matrix),移去量(removed quant). 柔和(smoothing) 技術(shù)
1.3 2002年3月8日 關(guān)于 Nic's XviD Directshow Filter 的詳釋
1.3+ 2002年7月23日 按照Nic's XVID Codec校正填補(bǔ)部分內(nèi)容
編纂本段豐碩多彩的技術(shù)特征 DivX 跟 XviD 采用不按時(shí)設(shè)立關(guān)頭畫面來改進(jìn)原先固按時(shí)刻關(guān)頭畫面所造成的動(dòng)態(tài)畫面畫質(zhì)欠安的氣象,而 2 PASS 的壓縮模式使畫質(zhì)加倍滑順,基本上兩種編碼的下場(chǎng)差異不大,可是就同畫質(zhì)的文件大小來說 XviD 更省容量,一部1.5小時(shí)的片子,DivX 編碼的大多為兩片 CD,而 XviD 編碼的大多僅需一片 CD 容量即可!
DivX 的版本從 2,3,4 一向跳到 5,原本長(zhǎng)短盈利供給網(wǎng)友使用,后來自 DivX 后預(yù)備當(dāng)成商業(yè)軟件,其中有一部份就分開再行開發(fā)出非盈利的譯碼軌范,那就是XViD。(概略這也就是為何要把 DivX 倒過來寫的原因!)
不僅 XviD 的出線自己就是開放源代碼社會(huì)中典型的一部教科書,它在技術(shù)上的各類新特征也都是貨真價(jià)實(shí)、老小無欺的。對(duì)于一個(gè)第二代的 MPEG4 視頻編碼焦點(diǎn)來說,XviD 的各類算法設(shè)計(jì)都有代表性的前進(jìn)前輩意義。 多種編碼模式 除了最原始單重估定碼流壓縮 (1-pass CBR) 之外,XviD 供給了搜羅 : 單重質(zhì)量模式動(dòng)態(tài)碼流壓縮、單重量化 (Quantization) 模式動(dòng)態(tài)碼流壓縮、和搜羅外部節(jié)制和內(nèi)部節(jié)制的兩種雙重 (2-pass) 動(dòng)態(tài)碼流壓縮模式。XviD 顯然是當(dāng)前 PC 上的MPEG4 編碼焦點(diǎn)中,可選模式最多的視頻編碼。
其中出格是雙重 (2-pass) 動(dòng)態(tài)碼流壓縮模式,經(jīng)由過程檢測(cè)畫面行為幅度以最優(yōu)化的體例曲線分配畫面量化幅度,使布滿活性元素的視頻影片可以在占用空間和畫面質(zhì)量之間獲得最佳的平衡。而單重量化Quantization) 模式動(dòng)態(tài)碼流壓縮,可以高速地一次性生成可控畫面細(xì)節(jié)的動(dòng)態(tài)碼流視頻檔案,在較少的壓縮時(shí)刻價(jià)錢之下,可以獲得較不變的畫面細(xì)節(jié)質(zhì)量,這都是純摯的 DivX 3.11 所不具有的優(yōu)異功能。 量化 (Quantization) 體例和規(guī)模節(jié)制 量化 (Quantization),簡(jiǎn)單的說就是在編碼時(shí)經(jīng)由過程對(duì)時(shí)刻或空間上相鄰的畫面單元進(jìn)行同化、恍惚細(xì)節(jié)的水平,是對(duì)畫面質(zhì)量最基本的節(jié)制身分。XviD 不僅供給了標(biāo)準(zhǔn)的 MPEG 量化體例,還特意供給了更適合低碼流壓縮的 .h263 量化體例。而且XviD 還可以在雙重 (2-pass) 運(yùn)算時(shí),按照對(duì)畫面信息的綜合剖析,動(dòng)態(tài)的抉擇某段場(chǎng)景的畫面量化體例,真可以說是為收集媒體檔案?jìng)鞑贾?#xff0c;空間與畫質(zhì)的平衡而考慮,設(shè)計(jì)貼心得抵家了。
除了量化體例選擇,XviD 還供給了壯大的對(duì)壓縮過程中的量化幅度的規(guī)模節(jié)制。用戶可以選定壓縮時(shí)許可使用的量化幅度規(guī)模。例如設(shè)定一個(gè)量化的上限,就可以避免可能出線的畫質(zhì)大幅下降的情形。 行為偵測(cè)和曲線平衡分配 對(duì)畫面逐幀進(jìn)行行為偵測(cè),以及對(duì)全片段的行為偵測(cè)功效進(jìn)行剖析后,從頭以曲線平衡分配每一幀的量化幅度,以做到 : 需要高碼流的行為畫面可以分配更多空間、更高的碼流、更低的量化幅度來連結(jié)畫面的細(xì)節(jié); 而對(duì)于不包含太多行為信息的靜態(tài)畫面,則消減分配預(yù)算。這種把好鋼用在刀刃上的做法,是 XviD 做為第二代MPEG4 編碼的焦點(diǎn)內(nèi)容。
XviD供給了多極行為偵測(cè)精度,搜羅半像素插值 (half pixel interpolation) 的技術(shù)以 16x16 像素的微區(qū)塊為單元標(biāo)示上行為向量; 以及 4 分行為向量 (inter4v motion vectors) 的體例,以 8x8 的像素區(qū)塊為單元更詳盡的記載行為向量以供二重剖析。 動(dòng)態(tài)關(guān)頭幀距 動(dòng)態(tài)關(guān)頭幀距是另一個(gè) XviD 所具有的,在空間和畫面之間獲得最大平衡的技術(shù)。我們知道在視頻壓縮中不是每一幀都記實(shí)著全數(shù)的畫面信息,事實(shí)上只有關(guān)頭幀記實(shí)著完整的畫面信息,爾后續(xù)的 P 幀 (P-Frame) 僅僅是記載下與之前一幀的差值。若是關(guān)頭幀之間的畫面轉(zhuǎn)變很大,則會(huì)華侈珍貴的空間在 P-Frame 上; 而加進(jìn)把轉(zhuǎn)變很大的那一幀記其實(shí)關(guān)頭幀里,那么因?yàn)楹罄m(xù)的幀不再有更大的轉(zhuǎn)變,就可以節(jié)約P 幀所需的空間。是以,按照畫面鏡頭切換和行為幅度來變換關(guān)頭幀的位置,對(duì)于視頻壓縮下的畫面質(zhì)量提高,就有著事半功倍的下場(chǎng)。 心理視覺亮度改進(jìn) 除了基本的 MPEG4 編碼外,XviD 還供給了不少附加功能。其中典型的就是心理視覺亮度改進(jìn)。這個(gè)功能可能經(jīng)由過程去除肉眼不能分辯的亮度旌旗燈號(hào)和亮度差異,來提高壓縮效率。遺憾的盡管這個(gè)設(shè)計(jì)很是的有創(chuàng)意,可是當(dāng)前的實(shí)際應(yīng)用中卻會(huì)導(dǎo)致肉眼可見的畫面質(zhì)量下降,還等候在日后的版本中可以有所改良。 演人員表選項(xiàng) 另外一個(gè)貼心的設(shè)計(jì)是片子專用的"演人員表選項(xiàng)"。這個(gè)功能可以在用戶指定的某些不需要保留細(xì)節(jié)的段落處 (例如片子的演人員表),設(shè)定下極低的碼流。甚至壓縮到正片碼流的10%以下,可以節(jié)約不少空間,設(shè)計(jì)的也很是的貼心。 外部自界說節(jié)制 除了 XivD 自己的內(nèi)部曲線分配節(jié)制體例外,XviD 也供給了外部的開放接口。許可使用者略過 XviD 自己的編碼剖析焦點(diǎn),操作第三方供給的外部剖析對(duì)象,例如Gordian Knot,生成的分配好的節(jié)制檔案,再交還 XviD 做最終的二重運(yùn)算壓縮。這種體例擴(kuò)展了 XviD 的可用性和用戶節(jié)制水平,因?yàn)橄?Gordian Knot 這種軟件甚至可以做到由用戶節(jié)制每一幀的量化幅度和碼流分配額度,可覺得高級(jí)應(yīng)用供給更多的可能性。 行為向量加速編碼 XviD 還有專為提高編碼效率而開發(fā)的設(shè)計(jì),就是記載下畫面的行為向量信息至一個(gè) Log 檔案中。再在二重運(yùn)算壓縮時(shí)經(jīng)由過程直接讀取該檔案中的信息,節(jié)約下對(duì)行為向量信息的一再運(yùn)算,大幅提高編碼速度。 畫面優(yōu)化譯碼 不僅在編碼上 XivD 擁有壯大的功能,在譯碼時(shí)的畫面優(yōu)化方面,XviD 也有良多新的建樹。例如 "Horizontal deblock (Y)" 可以柔化水平標(biāo)的目的的亮度馬賽克; "Horizontal deblock (C)" 可以柔化水平相的色度馬賽克; "Deringing(Y)" 可以柔化環(huán)狀亮度色斑; "Deinging (C)" 可以柔化環(huán)狀色度色斑; "mosquito" 可以削減畫面中的蚊狀噪斑。而且,這些 XviD 的畫面優(yōu)化手段都是可選的,是以只要封鎖幾個(gè)不是那么需要的選項(xiàng),就可以在低配置的PC機(jī)上播放。 正在開發(fā)的 B 影格 另一個(gè) XviD 中惹人注目的技術(shù)成長(zhǎng),就是 B 影格。我們知道 I 影格就是關(guān)頭影格,P 影格在關(guān)頭影格之間,只儲(chǔ)存與之前一幅已解壓畫面的差值。B 影格與 P 影格的事理一樣,但除了三者之前解壓了的畫面外,亦會(huì)參考后面一影格中的畫面信息。是以 B 影格解壓出來的畫面比P影格就要來的好。
之前的 MPEG4 編碼焦點(diǎn)都僅僅使用了 I 影格和 P 影格存儲(chǔ)畫面。若是能在此根本上使用 B 影格技術(shù),自然可以在畫質(zhì)和壓縮比上更上一層樓。當(dāng)前 XviD 已經(jīng)為開發(fā)人員供給了測(cè)試性質(zhì) B 影格體驗(yàn)版的 XviD 編碼焦點(diǎn),相信不久的未來,XviD 就可以把 MPEG4 編碼的優(yōu)勢(shì)闡揚(yáng)到極致,成為網(wǎng)上視頻記實(shí)名目的牛耳。 關(guān)于DivX發(fā)源的小知識(shí) 這種名為DivX 的技術(shù),由一個(gè)27歲的法籍影音發(fā)燒友羅達(dá)(Rota)及電腦黑客基爾(Gej)締造出來得。
原本DivX所采的技術(shù)并非這兩位仁兄發(fā)現(xiàn)的,他們只可是是個(gè)**天才。跟著Windows的大行其道,微軟開發(fā)了MPEG-4技術(shù),能夠?qū)⒁曨l影像文件容量壓縮到很小。羅達(dá)與基爾將程式重寫一遍,但將其更名為DivX,且放在網(wǎng)上隨意任人下載。
微軟聲稱將對(duì)所有敦促DivX成長(zhǎng)的人、企業(yè)作出究查。可是羅達(dá)正周全申請(qǐng)將他們的DivX正當(dāng)化。因?yàn)镈ivX雖然是從Windows的發(fā)現(xiàn)出來的,但卻沒有用過任何微軟的技術(shù)。而且,他更與美國(guó)一些技術(shù)人士及財(cái)經(jīng)人員開會(huì),和組新企業(yè) ProjectMayo全力推廣DivX。
其實(shí),DivX是視頻DVD的另一種保留體例,要靠DeCSS軌范(注)才能做到。因?yàn)镈VD自己有防復(fù)制的標(biāo)識(shí)表記標(biāo)幟,讓DVD不能隨便復(fù)制到電腦里,但DeCSS能將它解碼,令其可以復(fù)制,壓縮成DivX片子。針對(duì)這一做法,各大片子商當(dāng)即采納步履,防止DeCSS外流及散播,但為時(shí)已晚,DeCSS在Yahoo!、Google上都能找到。
若何播放XviD視頻 對(duì)于大大都用戶來說,只要安裝暴風(fēng)影音或者K-Lite Codec Pack就可以順?biāo)斓夭シ臱viD視頻了。其實(shí)這些播放軟件大都是用ffdshow來解碼的,所以在播放視頻的時(shí)辰,Windows義務(wù)欄會(huì)呈現(xiàn)ffdshow的圖標(biāo)。
4.
XVID內(nèi)嵌時(shí)的參數(shù)測(cè)試
這是一個(gè)XVID編碼測(cè)試,主要為RAW為AVI的內(nèi)嵌使用。目標(biāo)是個(gè)頭小而畫質(zhì)好。缺一不可。針對(duì)其中比較重要的Q值、B值、single pass與Twopass做了較為密集的測(cè)試,其他選項(xiàng)盡可能采用了默認(rèn)值,以便結(jié)果更為客觀。另比如“Begin with keyframe”等幾個(gè)少數(shù)主要是為修正兼容性的或者色彩優(yōu)化的選項(xiàng)則被勾選。 概念部分主要參考并拷貝了《[SilkyBible] 視頻知識(shí)系列》與《XVID 1.0參數(shù)詳解21b.pdf》。說實(shí)話,我看的好痛苦@0@,而且為了便于理解。因此,下面說明或推測(cè)時(shí)都會(huì)以比較極端的例子來說明。如果有理解偏差的地方,大家請(qǐng)無視而pass。然后順帶轉(zhuǎn)告一下偶吧。先了解一些必要的概念。看完概念后可以直接看綠色字體的結(jié)論。然后反過來看分析。這樣思路會(huì)較為清晰。
Q 值——Q 值是指量化值。顧名思義,Q 值用來描述一個(gè)幀的質(zhì)量,每個(gè)幀都有Q 值。該值取值范圍是1~31。Q 值越小,質(zhì)量越好,碼率越大;Q 值越大,質(zhì)量越差,碼率越小。(實(shí)際上,它的原始概念更復(fù)雜,我們干脆簡(jiǎn)單地認(rèn)為1就是100%原質(zhì)量,31就是1/31的原質(zhì)量好了)。具體到一個(gè)片子的某一個(gè)幀的Q的取值:該值由編碼器編碼的時(shí)候根據(jù)該幀的顏色、與跟前/后幀的動(dòng)態(tài)關(guān)系等自動(dòng)確定,例如如果編碼器認(rèn)為該幀很重要,就會(huì)提高Q值來壓制,以獲得更高的質(zhì)量。當(dāng)然我們也可以指定它的取值。
IF——I-frame 的縮寫,即關(guān)鍵幀,在VirtualDubMod被標(biāo)示為 [K] 。關(guān)鍵幀是構(gòu)成一個(gè)幀組(GOP,Group of Picture)的第一個(gè)幀。IF 保留了一個(gè)場(chǎng)景的所有信息(Keyframe原意是指可以單獨(dú)解碼、用于同步的frame,不過在MPEG系統(tǒng)中只有I-frame有這個(gè)特性,因?yàn)锽F和PF都是預(yù)測(cè)幀,要靠IF來還原)。具體例子:電影通常1秒鐘播放24幀,所以它1秒鐘有24幅不同圖象。設(shè)想有24幅鳥的圖象,在第一幅里鳥在圖的左側(cè),然后它逐漸向右移動(dòng)。在第24幀鳥已經(jīng)在圖象的最右側(cè)了。設(shè)想這24幅圖象以足夠快的速度按順序播放,那么人眼看來就好象這鳥從屏幕的左側(cè)飛到了右側(cè)。
PF——P-frame 的縮寫,即未來單項(xiàng)預(yù)測(cè)幀,只儲(chǔ)存與之前一個(gè)已解壓畫面的差值。即僅僅描述它與前一幀的區(qū)別(雖然描述的不甚準(zhǔn)確但相信理解含義并非難事)。比如說有一幅一只小鳥飛過一片有云彩天空的圖象,這是個(gè)關(guān)鍵幀(keyframe)。然后我們可以使用I幀來這樣描述P幀:將小鳥向左和下方各移動(dòng)一英寸。
BF——B-frame 的縮寫,即雙向預(yù)測(cè)幀,除了參考之前解壓過了的畫面外,亦會(huì)參考后面一幀中的畫面信息。B 幀具體怎樣描述預(yù)測(cè)變化很復(fù)雜,下面以一個(gè)不很恰當(dāng)?shù)膭?dòng)畫例子來說明一下它最主要的存在效果:
如果一個(gè)片子是24fps的,總長(zhǎng)度為25分鐘、那么它的總幀數(shù)為25min*60s/min*24fps=36000幀。這個(gè)是固定值。可以全是IF,也可以是IF混合著PF,或者IF、PF、BF都有。但是IF不能沒有,都靠它還原呢。哪個(gè)個(gè)數(shù)增多,另外兩個(gè)就要相應(yīng)減少。因此,多使用PF可以不減畫質(zhì)下減小體積,加入BF會(huì)進(jìn)一步減小體積。至少理論上是這樣的。(BF是雙向預(yù)測(cè),主要記錄變化值,因此可以少記錄信息(事實(shí)雖并非如此,但就通常的效果來說記錄量會(huì)減少,而PF是單向,因此記錄量通常來說會(huì)多些))。除了壓縮率以外,B 幀對(duì)畫質(zhì)的影響也是有的,因?yàn)?B 幀這種參考前后畫面的特性,等于有內(nèi)插(interpolation)的效果,所以可以減少噪訊。
概念部分終于說完了。OK,下面測(cè)試數(shù)據(jù)正式粉墨登場(chǎng)。請(qǐng)看分析所用的截圖:這是內(nèi)嵌時(shí)的狀態(tài)圖。當(dāng)內(nèi)嵌完成后把這個(gè)最終狀態(tài)截取。片長(zhǎng)1分32秒,30.303 fps,共計(jì)2815幀。內(nèi)嵌所用的AVS腳本為 :==================================================================
LoadPlugin(“D:\Program Files\AviSynth 2.5\plugins\VSFilter.dll”)
AVISource(“D:\Downloads\100\100R.avi”)
textsub(“D:\Downloads\100\100R.ass”)
Tweak(0,1,18,1)
##亮度濾鏡(色度,飽和度,亮度,對(duì)比度),一般把亮度設(shè)為16-18就很亮了##==================================================================
測(cè)試用源文件相關(guān)信息(草莓100%的OP),個(gè)人認(rèn)為它各方面比如動(dòng)態(tài)、畫面清晰度等均屬中等:
文件 : 39 Mb (39 Mb), 總長(zhǎng)度 0:01:32, 類型為 AVI, 1 音頻流, 品質(zhì) 100 %
視頻 : 22 Mb, 2041 Kbps, 30.303 fps, 清晰度: 640*448 (4:3),?DX50 = DivXNetworks Divx v5, 支持
音頻 : 16.86 Mb, 1536 Kbps, 48000 Hz, 2 聲道, 0×1 = PCM, 支持
====== 插入一點(diǎn)說明: =====
常見的DVD影碟的數(shù)據(jù)流的速率(bitrate)能夠達(dá)到5000Kbps~10000Kbps,而目前常見的DVDRip通常具有1200Kbps~2000Kbps的速率,此時(shí)DVDRip的視覺效果與AVI文件的壓縮比能夠達(dá)到比較理想的平衡狀態(tài)。如果追求優(yōu)秀的視覺效果,我們可以將速率提高到2000Kbps;如果希望得到體積更小的AVI文件,可以使用小于等于1000Kbps的速率。另外DVDRip通常采用的采樣率為48kHz,音頻速率為96Kbps或128Kbps的MP3音頻。
籠統(tǒng)地說,XVID比DIVX的壓縮率更高,因此,同樣質(zhì)量的幀,XVID可以用更小的體積來達(dá)到。另外,無論DIVX也好, XVID也好,它們?cè)镜挠猛臼前袲VD壓縮成DVDrip。當(dāng)我們拿到AVI時(shí),已經(jīng)是壓縮過的啦。那些所謂的2pass/1pass比值等其實(shí)是針對(duì)DVD to DVDrip而考慮,為了提高2pass/1pass比值而縮小畫面大小也是為了DVD to DVDrip而考慮。因此當(dāng)我們內(nèi)嵌AVI時(shí),非特殊目的,以拿到與原AVI文件同樣畫質(zhì)為最好。低了其實(shí)是再壓縮,除非你要求更小的體積。因此,用XVID重編碼時(shí),強(qiáng)烈建議把目標(biāo)碼率盡可能設(shè)置成原文件碼率。
這一段不太容易理解目的所在,我再籠統(tǒng)地進(jìn)一步說明:假如現(xiàn)在有個(gè)DVD需要壓縮,我們首先用XVID的Twopass的Twopass – 1st pass高質(zhì)量預(yù)設(shè)采樣量化值“w1”跑一遍,看看最大能做成多大的。一般在媲美原畫質(zhì)的情況下, XVID可以把DVDrip壓到原DVD的1/5至1/10的(大致符合5000Kbps壓到1000 Kbps)。如果1pass的結(jié)果認(rèn)為最大能做到688M,那么,在壓制700M的光盤時(shí),我們就可以把這個(gè)結(jié)果做成1CD,就把它壓到最大值。但是,有些人就不太方便了,他想得到更小的體積以節(jié)省刻盤成本。比如壓成344M的2張1CD的文件,此時(shí)2pass/1pass=344m/688M=50%(呵呵,這里為了敘述方便,數(shù)字很特別),按照大多數(shù)人的畫質(zhì)要求,太低了,看過原DVD的人會(huì)明顯感覺到畫質(zhì)降低了,因此,我們要提高這個(gè)比值,但是,作成80%的550M更是浪費(fèi)。所以,此時(shí),我們可以把畫面大小縮小一點(diǎn),以降低每一幀所占的體積。縮小畫面尺寸,使畫面的精密程度提高,使整體的大小下降。假如1個(gè)象素點(diǎn)占1K,那么720*680肯定比640*480畫面來的大。再次1pass得到了可以作成最大430M的結(jié)果,然后2pass/1pass=344m/430M=80%,較高的比值。該壓縮率下的畫質(zhì)降低已經(jīng)很難覺察啦。具體換算我就不說了,這里主要是為AVI的內(nèi)嵌做解說。(因此,這里給我們的片源同志提個(gè)醒,靠?jī)?nèi)嵌來修飾缺陷并不完全可取,為了保證內(nèi)嵌質(zhì)量,請(qǐng)大家盡可能的找些高畫質(zhì)的AVI片源吧。)
下面是1pass的結(jié)果截圖,這里并不需要看那個(gè)1pass狀態(tài)文件的——video.pass。(注意一下:這里1pass認(rèn)為最大值為17M,但設(shè)成85%原碼率或者稱為85%原大小后,目標(biāo)文件的大小變大了,這是因?yàn)樵赥wopass模式下2pass認(rèn)為以Q3為預(yù)設(shè)采樣量化值采樣,達(dá)到這個(gè)碼率才足夠;我們?cè)倏?pass-q3-21m-2086kb-b2.jpg的截圖,雖然設(shè)置為理論上的原碼率,但結(jié)果變小了,同樣壓成了1530fbps的。可見這里2pass優(yōu)先了預(yù)設(shè)采樣量化Q=3值,這里只說Q值,是因?yàn)楹竺嬗衅渌那闆r出現(xiàn))
當(dāng)2pass/1pass的比值低于65%的話,畫質(zhì)損失會(huì)比較容易看出來(盡管這一點(diǎn)不是100%正確)。因此,2pass測(cè)試中,對(duì)于這個(gè)好畫質(zhì)的臨界值85%特別照顧了一下,雖然它是為了DVD to DVDri而存在,這里也給予一些測(cè)試好了。而21M的設(shè)定則是因?yàn)樗碚撋系膸俳频扔谠募?041 Kbps,故此也特別給予照顧。
文件命名格式及由來(不標(biāo)明2 pass的均為single pass模式):
1、2pass-q3-17.8m(85%max)-1661kb.avi
依次為:Twopass – 2nd pass、預(yù)設(shè)采樣量化值、2pass/1pass比值85%的理論大小、理論幀速
2、2pass-q3-14.5m(85%max)-1343kb-b2.avi
依次為:Twopass – 2nd pass、預(yù)設(shè)采樣量化值、2pass/1pass比值85%的理論大小、理論幀速、使用BF=2
3、2pass-q3-21m-2086kb.avi
依次為:Twopass – 2nd pass、預(yù)設(shè)采樣量化值、與原文件同樣幀速的理論大小、理論幀速
4、2pass-q3-21m-2086kb-b2.avi
依次為:Twopass – 2nd pass、預(yù)設(shè)采樣量化值、與原文件同樣幀速的理論大小、理論幀速、使用BF=2
5、q2-q3.avi
依次為:目標(biāo)采樣量化值、預(yù)設(shè)采樣量化值。
另外要說明的是所有不加BF=2的文件的幀個(gè)數(shù)比大致均為:IF:PF =72: 2743(72+2743=2815); 所有BF=2的文件的幀個(gè)數(shù)比大致均為:IF:PF:BF=70:1172:1573(70+1172+1573=2815)。有變化也是幾個(gè)到十幾個(gè)幀的變動(dòng),可以忽略不記。這估計(jì)是原文件幀結(jié)構(gòu)和XVID的“幀類別使用與壓縮”判斷機(jī)制所引起的。 以下測(cè)試均BF=2。原因是有效降低了大小,并可能增進(jìn)了一點(diǎn)點(diǎn)的畫質(zhì),如果使用BF后的文件與不使用BF的文件同樣碼率,想必使用BF的總平均幀質(zhì)量要比不使用的高,總體質(zhì)量也就要高。不過是不是屬于無效增大質(zhì)量呢?很有可能的。那么就看看q2-q3-b2與q2-q3的區(qū)別:IF單幀最大提高從44273B提高到了44290B,平均大小從20272提高到了20332;PF的單幀最大沒有變化,但分析q2-q4-b2與q2-q4時(shí)也提升,所以可以認(rèn)為是軟件誤差,單幀最小也從148提高到了154,平均大小從7432提高到了11768。而且,IF的幀個(gè)數(shù)并沒有被改變。這里的2幀同樣應(yīng)該是軟件誤差。而發(fā)生改變的只有PF的個(gè)數(shù)。所以可以認(rèn)為使用BF后,IF、PF被整體提升了質(zhì)量,以保護(hù)BF的質(zhì)量。順帶也就提升了整體質(zhì)量。
至于在同樣碼率下,是不是出現(xiàn)無效增大質(zhì)量呢?如果XVID確實(shí)比DIVX的壓縮更具效率,那么,就確實(shí)可能存在很少的無效質(zhì)量。不過,兩個(gè)家伙能力應(yīng)該比較接近。那么也可大致認(rèn)為需要碼率接近。雖然其BF威力比DIVX的貌似更大一些。如果原文件也是XVID編碼,那么就更可認(rèn)為碼率要接近。又因?yàn)榍懊娴姆治?#xff0c;壓縮比是針對(duì)DVD to DVDrip的,因此,當(dāng)前考慮的首要不是再次降低塊頭。而且BF的前后參考性又可以某種程度上降低噪音。所以就這樣認(rèn)為吧。對(duì)于這一點(diǎn),我想還應(yīng)該有更強(qiáng)的分析工具來確定判斷,很抱歉,限于能力,不能進(jìn)一步分析了。如果有哪位朋友知道還請(qǐng)賜教一下。
以下均以不二次壓縮為根本。即是碼率保持不變。全部靠攏原幀速:2041kbps。
1、 在single pass模式下:
當(dāng)以Q3為為預(yù)設(shè)采樣量化值, BF=2時(shí):目標(biāo)采樣量化值為Q值時(shí),q2、q3、q4截圖一模一樣,IF、PF的結(jié)果Q值都等于預(yù)設(shè)采樣量化Q值,BF則還要低2個(gè)數(shù)量級(jí)左右;目標(biāo)采樣量化值為目標(biāo)指定幀速(設(shè)為原幀速)時(shí),2056kb-q3-b2的實(shí)際幀速為1531kbps,比q3-q3-b2的1530kbps僅僅提升了1kbps。看來是“以Q3為預(yù)設(shè)采樣量化值”限制了了目標(biāo)采樣量化值的設(shè)定。預(yù)設(shè)采樣值為Q3的質(zhì)量弱于原幀速采樣。
當(dāng)以Q2為為預(yù)設(shè)采樣量化值,BF=2時(shí):目標(biāo)采樣量化值為Q值時(shí),q2、q3、q4截圖一模一樣,IF、PF的結(jié)果Q值都等于預(yù)設(shè)采樣量化Q值, BF則還要低2個(gè)數(shù)量級(jí)左右;目標(biāo)采樣量化值為目標(biāo)指定幀速(設(shè)為原幀速)時(shí),2056kb-q2-b2的實(shí)際幀速為2072kbps,與q2-q2-b2幀速以及截圖都一模一樣。證實(shí)了“以Q2為預(yù)設(shè)采樣量化值”則充分滿足甚至超過了目標(biāo)采樣量化值的設(shè)定。預(yù)設(shè)采樣值為Q2的質(zhì)量強(qiáng)于原幀速采樣。
另外從XVID的壓縮算法本質(zhì)上高于DIVX上來看,高于原幀速的采樣應(yīng)該屬于無效。所以本輪由2056kb-q2-b2參加半決賽。
當(dāng)以W1為預(yù)設(shè)采樣量化值時(shí), BF=2時(shí):目標(biāo)采樣量化值為Q值時(shí),結(jié)果文件的IF、PF、BF的Q值隨Q值增大而成比例增大,因此就以q2-w1-b2(實(shí)際幀速為2072kbps)參賽;目標(biāo)采樣量化值為目標(biāo)指定幀速(設(shè)為原幀速)時(shí),結(jié)果文件的實(shí)際幀速是1951kbps。兩個(gè)比較后,2056kb-w1-b2的IF單幀最大質(zhì)量(65313B)比q2-w1-b2(63368B)提高了近200B,PF單幀最大質(zhì)量(87371B)比(70758B)提高了近1300B,BF單幀最大質(zhì)量(34570)比(24871B)提高了約1000B,另外,無論IF、PF、BF其平均大小卻均下降,說明目標(biāo)采樣量化值為Q值限制了XVID的動(dòng)態(tài)壓縮能力發(fā)揮。故此預(yù)設(shè)采樣為Q2的質(zhì)量的有效率弱于原幀速采樣。應(yīng)該屬于無效增大。
所以更好的 “2056kb-w1-b2”來參加半決賽。
2、 在Twopass模式下:
以Q值=2為預(yù)設(shè)采樣量化值時(shí),BF=2:無論是以大小(設(shè)成高與原大小或者低于原大小)還是以幀速(設(shè)成原幀速)作為目標(biāo)量化值,狀態(tài)截圖均一模一樣,實(shí)際幀速均為2072fbps。看來,2pass下,以Q值=2為預(yù)設(shè)采樣量化值時(shí),結(jié)果文件實(shí)際幀速只與Q值成比例。而且,可以看出Q=2時(shí),達(dá)到了原幀速。為了驗(yàn)證這一點(diǎn),以Q值=3為預(yù)設(shè)采樣量化值時(shí),BF=2再次測(cè)試,發(fā)現(xiàn)截圖同樣一模一樣,幀速降為1530 fbps。證明猜想成立。那就隨便選了“2pass-2056kb-q2-b2.jpg”出局半決賽。
以W=1為預(yù)設(shè)采樣量化值時(shí),BF=2:無論是以目標(biāo)大小為目標(biāo)量化值的提升(從結(jié)果看來,其實(shí)質(zhì)還是在提升目標(biāo)幀速),還是目標(biāo)幀速的提升,都帶來了實(shí)際文件幀速的提升。而且IF、PF、BF的實(shí)際Q值也在提升,比如IF: 2pass-w1-23.8m(85%)-2298kb-b2比之2pass-w1-21m-2086kb-b2其Q值范圍雖然為1-3沒變,但平均Q值從2.23提升到2.06;IF單幀最大63372字節(jié)雖然沒變,但是平均單幀大小從24597字節(jié)提升到了25725字節(jié)。PF的Q值范圍則從2-3提升到了1-3,平均Q值從2.66提升到了2.31;PF單幀最大倒是從68540減小到68472,不過從后面來看,這應(yīng)該是屬于軟件計(jì)算誤差,其平均單幀大小從15119提升到了16828。BF的Q值范圍雖然為3-5沒變,但平均Q值從4.44提升到4.10;BF單幀最大從21083字節(jié)提升到了23319字節(jié),平均單幀大小也從2087字節(jié)提升到了2251字節(jié)。
同樣:2pass-2056kb-w1-b2比之2pass-w1-23.8m(85%)-2298kb-b2進(jìn)一步提升。而且是全面提升,另外,其實(shí)際幀速為2027 fbps。因此,這里就派2pass-2056kb-w1-b2參加半決賽。
3、 半決賽與決賽:
上下對(duì)比,2056-q2-b2與2pass-2056kb-q2-b1的狀態(tài)截圖是一模一樣的。先放棄2056-q2-b2,直接對(duì)比2pass-2056kb-q2-b2與2pass-2056kb-w1-b2。比較后:那么以Q2或者W1為預(yù)設(shè)采樣量化值,到底哪一個(gè)更好?原則上Q1的比Q2的更好,如果只有少量Q1,似乎我們也注意不到,如果把這部分更高碼率的品質(zhì)稍稍降低一點(diǎn),補(bǔ)貼給Q2部分,似乎整體質(zhì)量會(huì)有所提高,而局部稍弱。XVID作為第二代MPEG編碼技術(shù),它更強(qiáng)的功能就是品質(zhì)高的給碼率多些,低的給少些。看下面的2056kb-w1-b2的截圖:甚至出現(xiàn)了BF的Q值低到了11,我認(rèn)為這是正確的,因?yàn)槊菜剖庆o止的白屏,就算我們給予它Q2的質(zhì)量,也純屬浪費(fèi)。所以,這樣就兼顧了品質(zhì)與大小。仔細(xì)對(duì)比2056-W1-B2與2pass-2056kb-w1-b2, 2pass-2056kb-w1-b2的IF、PF、BF的單幀大小最大值均有所減小,但是平均大小卻都提高了一點(diǎn)。說,說明2pass-2056kb-w1-b2的Q值分布更為平衡。
DivX DRF AnalyzerV0951的測(cè)試也這樣認(rèn)為(看橙色字色處)。所以我的結(jié)論是:相對(duì)來說,?single pass 模式不夠細(xì)致。而Twopass模式則可以充分分析原文件,并得出最佳的畫面質(zhì)量。即削減高峰,增益中間。把全片質(zhì)量從整體上提升。那么為什么BF的Q值在6-11的一段沒有了呢?猜測(cè)估計(jì)是XVID在Twopass后認(rèn)為該品質(zhì)的幀可能會(huì)造成爛幀(比如馬賽克)。所以提高了它的Q值,以防止?fàn)€幀的出現(xiàn)。
=== DivX DRF AnalyzerV0951 的一些測(cè)試信息=========================
DivX DRF Analyzer v0.9.5 Report!
File Name: E:\temp\100\2pass-2056kb-w1-b2.avi
FourCC: XVID
Codec: XviD0029
The Video has 2815 frames [ 00:01:32 ]
Average Frame quality is?HIGH?[Average DRF/quantizer is 2.74]
Standard Deviation: Quality is MEDIUM [Std. Deviation is 0.95]
Image Resolution is HIGH
=============================================================
DivX DRF Analyzer v0.9.5 Report!
File Name: E:\temp\100\test\2056kb-w1-b2.avi
FourCC: XVID
Codec: XviD0029
The Video has 2815 frames [ 00:01:32 ]
Average Frame quality is?MEDIUM?[Average DRF/quantizer is 3.27]
Standard Deviation: Quality is LOW?[Std. Deviation is 1.72]
Image Resolution is HIGH
=============================================================
最終結(jié)論:在Twopass模式下以W1為預(yù)設(shè)采樣量化值、并且加入BF=2、指定目標(biāo)幀速為原幀速的情況最為理想。實(shí)際上Twopass模式默認(rèn)的就是以W1為默認(rèn)預(yù)設(shè)采樣量化值,以指定目標(biāo)大小為默認(rèn)值目標(biāo)大小量化值,因?yàn)閄VID原本就是為DVD to DVDrip而設(shè)計(jì)的。所以這里不考慮二次壓縮的時(shí)候,應(yīng)該改為指定目標(biāo)幀速為原AVI即原DVDrip幀速。
問題一:BF的B值設(shè)置為多少比較合適?(這里的B值不是指Q值,而是指2個(gè)非BF間最多可以連續(xù)插入的BF的個(gè)數(shù)。)
其實(shí)從開頭BF的優(yōu)越性就可以看出一部分原因了,就是如果連續(xù)24個(gè)持續(xù)1秒鐘都是BF,播放時(shí)會(huì)出現(xiàn)什么結(jié)果?又因?yàn)锽F還需要參考后面的一幀,所以畫質(zhì)會(huì)特別爛,而且解碼時(shí)會(huì)出現(xiàn)延時(shí)。造成影音不同步。所以:
1、如果你想獲得低于幀速率900kbps的文件,你可以把B值設(shè)為3或者更大(不推薦)。
2、如果你想獲得900-1400kbps左右的文件,你可以把B值設(shè)為2。
3、如果你想獲得更高品質(zhì)的文件,你可以把B值選項(xiàng)關(guān)掉。前提是你的源文件最好靜態(tài)多,質(zhì)量也很高。
4、如果你有著其他要求,那么,沒有必要的情況下,請(qǐng)保持2的默認(rèn)值吧。
下面是一些相關(guān)設(shè)置。沒有說明的請(qǐng)保持默認(rèn)。
問題二:下面再回頭想想BF的Q 值,XVID是怎么得來的?
BF 的Q 值由BF 前后的IF/PF 共同決定。BF 的Q 值=BF 前后的IF(或PF)的Q 值的算術(shù)平均數(shù)* Quantizer ratio+ Quantizer offset。上邊的數(shù)據(jù)貌似也反映了這個(gè)情況。
BF 是一個(gè)能有效提高壓縮率的功能,是否降低畫質(zhì),那要看如何設(shè)置了。有的設(shè)置壓出來的部分BF,Q 值比PF 還低。用最恰當(dāng)?shù)腂F 設(shè)置來調(diào)節(jié)碼率,提高整體質(zhì)量,是非常有效的,設(shè)置地恰當(dāng)?shù)脑?#xff0c;會(huì)令全片的Q 值分布相當(dāng)平均,可使DRF 測(cè)試中的第二項(xiàng)——Standard Deviation 輕易達(dá)到“Quality is HIGH [Std. Deviation is 0.50]”,即動(dòng)、靜態(tài)場(chǎng)景的畫質(zhì)一致,不會(huì)“靜態(tài)尚可而動(dòng)態(tài)MSK(馬賽克)驚人”。通常情況下,全片BF 含量在30%—55%左右,畫面效果與只用I、PF+VHQ4 跑出來的畫質(zhì)無顯著差別。即省時(shí)又保證質(zhì)量,所以一般應(yīng)當(dāng)使用BF。
隨著XviD 的Frame Type 的不斷進(jìn)步(從0624 版開始FrameType 判斷較以前版本已經(jīng)有了相當(dāng)大的提高),大動(dòng)態(tài)場(chǎng)景BF 濫用現(xiàn)象(可以參看開頭BF的圖示,如果畫面動(dòng)態(tài)強(qiáng),變換快,不具備連續(xù)性,那么BF就作用不大了)已經(jīng)得到了較好的抑制(經(jīng)過實(shí)測(cè),在碼率充足的情況下,大動(dòng)態(tài)場(chǎng)景基本用IF PF PF PF PF… 來壓了),所以BF 可以放心使用。
Twopass——二重運(yùn)算。這種編碼模式分為兩步,首先對(duì)畫面逐幀進(jìn)行運(yùn)動(dòng)偵測(cè),以及對(duì)全片段的運(yùn)動(dòng)偵測(cè)結(jié)果進(jìn)行分析,然后重新以曲線平衡分配每一幀的Q值,以做到:需要高碼率的運(yùn)動(dòng)畫面可以分配更多空間、更高的碼率、更低的Q值來保證畫面質(zhì)量;而對(duì)于不包含太多運(yùn)動(dòng)信息的靜態(tài)畫面,則可以消減分配的碼率。這種把好鋼用在刀刃上的做法,是XviD作為第二代MPEG4編碼的核心內(nèi)容。可以說,Twopass模式可以在影片容量與畫面質(zhì)量之間找到最佳平衡點(diǎn),這也是大多數(shù)人都樂意花費(fèi)更多時(shí)間采用這種方式的原因。
Twopass-1st pass——二重運(yùn)算,第一次運(yùn)算。這是Twopass 模式的第一步。在這一步中,編碼器會(huì)用最高質(zhì)量編碼(默認(rèn)值W=1)(這里要補(bǔ)充的是,Twopass-1st pass的這個(gè)值其實(shí)可以指定,并且效果并不相同,有高畫質(zhì)的,也有低的,請(qǐng)看下面的1pass截圖),同時(shí)收集畫面信息,并將這些信息記錄信息文件(stats)當(dāng)中提供第二次運(yùn)算的時(shí)候參考。
Twopass-2nd pass——二重運(yùn)算,第二次運(yùn)算。這是Twopass 模式的第二步,編碼器會(huì)根據(jù)第一次壓縮時(shí)獲得的影片的信息和用戶指定的最終文件大小,自動(dòng)分配碼率,低動(dòng)態(tài)的分配得少一些、大動(dòng)態(tài)的分配得多一些,總之盡量保證最終文件大小為用戶指定的大小。
5.
DivX和XviD
如今的電影是越來越好看,拍攝、制作的特技效果越來越精彩,人們期待的程度越來越高,盜版也越來越多;同時(shí)電影制作公司的防盜版技術(shù)做的越來越高明。但有句老話叫:"道高一尺,魔高一丈",無論你的電影多精彩、防盜技術(shù)多高明,總是有人偏偏能夠把你"盜"出來,而且還"盜亦有盜",在保持"原版原味"的條件下,占用的空間變得越來越小,操作越來越靈活、簡(jiǎn)單,越來越方便傳播。而且這種技術(shù)隨著版本不斷更新,畫質(zhì)越來越貼近原版、壓縮速度越來越快、壓縮/播放進(jìn)程對(duì)計(jì)算機(jī)的需求越來越低。這就是DivX時(shí)代的新生力量――XviD。黑格爾說過"存在即合理"
隨著時(shí)代的進(jìn)步,社會(huì)的發(fā)展,在計(jì)算機(jī)視頻技術(shù)方面更是突飛猛進(jìn)。如今視頻的業(yè)界標(biāo)準(zhǔn)已經(jīng)到了DVD時(shí)代。主流的DVD光驅(qū)的價(jià)格已經(jīng)降到400元人民幣以內(nèi)。DVD播放機(jī)的價(jià)格最便宜的已經(jīng)降到了700元。但是這些都是近期發(fā)生的事情,目前仍有一大群only CD-ROM群體,他們不愿意再投資去買DVD光驅(qū),有的甚至由于機(jī)器無法再擴(kuò)充而不能購(gòu)買DVD光驅(qū)。這便促使另一個(gè)的解決方案的萌發(fā)。
除此之外,互聯(lián)網(wǎng)寬帶的普及,Adsl寬帶入戶,P2P軟件的泛濫,使得650MB的大文件輕松的實(shí)現(xiàn)異地傳輸。還有正版DVD大片的價(jià)格居高不下,也是正版DVD普及化的一大障礙。
基于以上因素的存在,有一種新的視頻壓縮技術(shù)出現(xiàn),那就是DivX,即"壓縮電影"。壓縮電影的技術(shù)有很多種,但是DivX最為普及,它廣泛流傳于互聯(lián)網(wǎng)與盜版盤。
隨著時(shí)間的推移DivX再推出剛剛推出不久,就不斷推陳出新,從DivX3.11到DivX4 ,目前最新版本為DivX5.02。本來版本越高,技術(shù)也就越高、播放的質(zhì)量應(yīng)該更好、更清晰。但是事實(shí)告訴我們隨著版本的提升,壓縮后的播放效果提升不明顯,壓縮所用的時(shí)間越來越長(zhǎng),壓縮后的體積沒有太大的進(jìn)步,甚至有的使用DivX5.02壓縮以后會(huì)出現(xiàn)跳幀的問題。這到底是為什么呢?難道視頻壓縮技術(shù)已經(jīng)達(dá)到頂峰不能夠再穿越了么?
目前又出現(xiàn)一種新的壓縮技術(shù)名為XviD,在視頻業(yè)界初見端倪,就目前來看它的壓縮時(shí)間就是一大賣點(diǎn),它可以在保持DivX5的畫質(zhì)的基礎(chǔ)上,大大提高壓縮時(shí)間。
光從名字上看就可以看出Xvid與Divx,他們之間肯定有著千絲萬(wàn)縷的聯(lián)系,大家一定想知道。下面就為大家談?wù)勱P(guān)于XviD的故事。
Long long ago…
故事的經(jīng)過是這樣的。
早在1998年微軟開發(fā)了第一個(gè)(也是唯一的)在PC上使用的MPEG-4(注)編碼器,它包括MS MPEG4V1、MS MPEG4V2、MS MPEG4V3的系列編碼內(nèi)核。其中的V1和V2用來制作AVI文件,一直到現(xiàn)在它都是作為Windows的默認(rèn)組件。不過V1和V2的編碼質(zhì)量不是很好,一直到MS MPEG4V3才開始有好轉(zhuǎn),畫質(zhì)有了顯著的進(jìn)步。但是不知微軟出何居心,卻將這個(gè)MS MPEG4V3 的視頻編碼內(nèi)核封閉在僅僅應(yīng)用于Windows Media流媒體技術(shù)上,也就是說,我們經(jīng)常看到的ASF流媒體文件中。ASF文件雖然有一些優(yōu)勢(shì),但是由于過分的封閉,不能被編輯,未得到廣泛的應(yīng)用。這便惹怒了不怕天不怕地的視頻黑客和置于鉆研視頻編碼的高手。后來,這些小組不僅破解了微軟的視頻編碼,而且經(jīng)過他們的修改,一種新的視頻編碼誕生了。那就是廣為流傳的Mpeg4編碼器――DivX3.11。
隨后一發(fā)不可收拾,DivX被傳得紅得發(fā)紫,很快就成了業(yè)界的標(biāo)準(zhǔn)。但是問題同樣很快的出現(xiàn)了,DivX的基礎(chǔ)技術(shù)是非法盜用微軟的,只能在地下里流傳,卻上不了臺(tái)面,正所謂"名不正,言不順",無法進(jìn)行廣泛的發(fā)展,即產(chǎn)品化,更無法生產(chǎn)硬件播放機(jī)。
"生產(chǎn)力要改變生產(chǎn)關(guān)系"
在這種情況的迫使下,一些視頻編碼的高級(jí)程序員(包括原DivX 的開發(fā)者)組建了一家公司,名為DivXNetworks Inc。這家公司發(fā)起一個(gè)完全開放源碼的項(xiàng)目,名為"ProjectMayo",目標(biāo)是開發(fā)一套全新的、開放源碼的MPEG4編碼軟件。由于它完全符合ISO MPEG4標(biāo)準(zhǔn),又是完全開放源代碼(就象linux操作系統(tǒng)),OpenDivX CODEC吸引了很多軟件、視頻高手參與。人力、物力大大投入,OpenDivX編碼器和解碼器原型很快便公布于眾,之后又開發(fā)出具有更高性能的編碼器Encore 2等等。這DivX的輝煌時(shí)期。
雖然主要編碼工作是DXN的人在做,但許多的技術(shù)難關(guān)的突破完全得力于來自開放源碼社會(huì)的幫助。
DivX的優(yōu)勢(shì)被人們所接受,高品質(zhì)的DVD電影的容量一般為5GB,但經(jīng)過DivX編碼后的大小只有650MB,僅僅為原DVD容量的八分之一,圖像品質(zhì)卻與DVD相當(dāng)。它可以通過互聯(lián)網(wǎng)相互傳輸,還可以報(bào)存在一張CD光盤(650MB)上。
DXN的野心:
DivXNetworks一直希望DivX能成為好萊塢巨頭們選擇的行業(yè)標(biāo)準(zhǔn),并可以通過互聯(lián)網(wǎng)進(jìn)行傳輸?shù)囊曨l文件,就像唱片發(fā)行公司不得不接受MP3格式,并使用它在網(wǎng)上傳輸音樂文件一樣。DXN希望并計(jì)劃在網(wǎng)上出售視頻內(nèi)容的公司達(dá)成技術(shù)轉(zhuǎn)讓的協(xié)議。但是,到目前為止,它尚未和任何一家主要的、甚至具有影響力的電影制片公司達(dá)成這類協(xié)議。
很可惜的是想DivX這么好的電影只能在電腦上播放,目前還沒有一款播放機(jī)能夠播放這樣的光盤。日前,DXN已經(jīng)來到了中國(guó),這家公司的負(fù)責(zé)人表示,目前有許多美國(guó)人都希望能買到采用這一技術(shù)的DVD播放設(shè)備,但全球還沒有人能生產(chǎn),所以他希望能與中國(guó)的DVD制造商攜手,在年內(nèi)拿出產(chǎn)品,并且首先在美國(guó)推出。
"天底下真的好人多么?那么小人算好人么?"
就在DivX順利發(fā)展時(shí)期,DivX的技術(shù)逐漸成熟,商機(jī)無限的時(shí)候,一臺(tái)好戲上演了。由于DivX的技術(shù)不是依據(jù)GPL協(xié)議(通用公共許可證,一種開放源碼項(xiàng)目中常用的保障自由使用和修改的軟件或源碼的協(xié)議),而是LGPL協(xié)議(注)。這是DXN公司為自己留的后門。
2001年7月就在Encore2基本成型的時(shí)候,DXN公司突然封閉了DivX的原代碼,并在此基礎(chǔ)上發(fā)布了自有產(chǎn)品DivX4。DivX 4的基礎(chǔ)就是開放源代碼OpenDivX中的Encore 2,DXN利用了DivX的招牌。DNX公司這么做,可以說是初其不備的擺了所有人一刀。開放源碼社會(huì)就這樣被狠狠地涮了一回,他們是那么的無辜。
DXN公司趁熱打鐵,很快推出了DivX5,但是DivX5沒有比DivX4強(qiáng)到哪里去,甚至有bug,更可氣的是這一版本還要收費(fèi)。可憐阿,有那么多無償為DivX技術(shù)付出的智慧與勞動(dòng)的人,可悲阿,他們?yōu)橐恢刀荚跓o償?shù)臑镈NX公司賺錢。這種壟斷和一直處于壟斷地位的微軟來說,DXN要更恨、更毒。
人世間還是好人多!正義當(dāng)頭!
首先是全球整個(gè)0dayz組織(注)永遠(yuǎn)的拒絕了DXN公司的DivX45。
被人"涮"了一把的開源社團(tuán)決定另起門戶,逐漸重新聚攏開發(fā)力量,在OpenDivX版本的基礎(chǔ)上,再次開發(fā)出一種新的MPEG-4編碼、解碼軟件。這就是:XviD。從技術(shù)上來說XviD已經(jīng)基本上與DivX5接近,或者還有所超越;
春天來了:
近一年來XviD繼承并發(fā)展了曾經(jīng)的OpenDIVX Encore 2,并且使其的性能、效率的到了極大的提升,被認(rèn)為是目前最快的MPEG4編碼。這是因?yàn)閄viD重新改寫了所有原代碼,煥然一新。除此之外,Xvid還吸收了前車之鑒,依照GPL發(fā)布。(不再是以前DivX的LGPL,也就是說:誰(shuí)要是想用它做成產(chǎn)品而不開放源碼是非法的)而且在2002年,也就是今年,TDX2002(全球最著名的地下電影發(fā)行組織,每年在網(wǎng)上放出數(shù)千部最新而且高品質(zhì)影片RIP)已經(jīng)接納XviD為官方標(biāo)準(zhǔn)。這樣TDX2002就有了兩個(gè)正式標(biāo)準(zhǔn):DivX 3.11與XviD。而DivX 4、5像其它封閉的商業(yè)軟件一樣,被永遠(yuǎn)拒絕。
報(bào)應(yīng)來了!
對(duì)開源軟件下毒手的人遠(yuǎn)不止DXN一家,目前因?yàn)橐患疑虡I(yè)軟件公司盜用XviD源代碼,而被迫停止開發(fā)。具體的情況請(qǐng)參閱: http://www.xvid.org;
XviD使用技巧:
關(guān)于XviD壓縮設(shè)置的文章很多,XviD可以調(diào)節(jié)的選項(xiàng)很細(xì),由于篇幅限制,不再本文的討論之內(nèi)。在這里,我推薦大家使用"2-Pass"編碼, 因?yàn)樗芙o我們更精確的最終文件大小,并且生成最佳質(zhì)量的編碼 (在文件大小相同的情況下)。
只安裝DivX5的編解碼器不能播放由Xvid壓縮的電影。但是只安裝XviD編碼,可以順利播放DivX5壓縮的電影。但是在播放DivX5電影的時(shí)候,速度不能讓人滿意。加上ffdshow(注)之后效果明顯改善。看來XviD在播放divX5的還不是很完善。
雖然XviD到目前來講與DivX5對(duì)戰(zhàn),仍有些身單力薄,優(yōu)勢(shì)不是很明顯。但是筆者很看好XviD。首先,它是絕對(duì)開放源代碼,這使得有更多的人投入到XviD的研發(fā)之中。還有,它完全重寫DivX的原代碼,讓新的XivD去粗取精、煥然一新;目前XviD的開發(fā)人員有很多都是當(dāng)初DivX的研發(fā)人員,對(duì)DivX的錯(cuò)誤了解得很清楚,重寫之后,XivD的地層優(yōu)勢(shì)可見一斑。另外,DivX4/5雖然版本不斷更新,但是功能提升并不高,優(yōu)勢(shì)不明顯。XviD是新生力量,而且充滿了復(fù)仇的力量。祝XviD一路走好。
XviD版本的歷史:
1.0 2002年2月17日 第一版 ,首次發(fā)布
1.0 2002年2月28日 大量的修正和更準(zhǔn)確地解釋
1.1 2002年3月2日 分析澄清了很多概念
1.2 2002年3月4日 加入量化矩陣(quantization matrix), 移去量(removed quant). 柔和(smoothing) 技術(shù)
1.3 2002年3月8日 關(guān)于 Nic's XviD Directshow Filter 的詳釋
1.3 2002年7月23日 按照Nic's XVID Codec校正補(bǔ)充部分內(nèi)容(目前最新版本)
關(guān)于DivX起源的小知識(shí):
這種名為DivX 的技術(shù),由一個(gè)27歲的法籍影音發(fā)燒友羅達(dá)(Rota)及電腦黑客基爾(Gej)創(chuàng)造出來得。
原來DivX所采的技術(shù)并非這兩位仁兄發(fā)明的,他們只不過是個(gè)盜版天才。隨著Windows的大行其道,微軟開發(fā)了MPEG-4技術(shù),能夠?qū)⒁曨l影像文件容量壓縮到很小。羅達(dá)與基爾將程式重寫一遍,但將其改名為DivX,且放在網(wǎng)上隨意任人下載。
微軟聲稱將對(duì)所有推動(dòng)DivX發(fā)展的人、企業(yè)作出追究。可是羅達(dá)正全面申請(qǐng)將他們的DivX合法化。由于DivX雖然是從Windows的發(fā)明出來的,但卻沒有用過任何微軟的技術(shù)。而且,他更與美國(guó)一些技術(shù)人士及財(cái)經(jīng)人員開會(huì),和組新公司 ProjectMayo.com全力推廣DivX。
其實(shí),DivX是視頻DVD的另一種保存方式,要靠DeCSS程序(注)才能做到。因?yàn)镈VD本身有防復(fù)制的標(biāo)記,讓DVD不能隨便復(fù)制到電腦里,但DeCSS能將它解碼,令其可以復(fù)制,壓縮成DivX電影。針對(duì)這一做法,各大電影商立即采取行動(dòng),防止DeCSS外流及散播,但為時(shí)已晚,DeCSS在Yahoo!、Google上都能找到。
名詞解釋:
TDX2002組織:全球最著名的地下電影發(fā)行組織,每年在網(wǎng)上放出數(shù)千部最新而且高品質(zhì)影片RIP。
0day組織:全球著名的破解組織。其意思為在不到一天的時(shí)間里破解軟件(自然包括游戲,軟件,現(xiàn)在還涉及到其他東西),0Day只是一個(gè)統(tǒng)稱(和WareZ的意思一樣)。成為他們旗下的會(huì)員就可以獲得他們提供給你的帳號(hào),當(dāng)然由于要求嚴(yán)格,所以一般是很難進(jìn)入的!!(這里我只提醒一下,多留意NFO文件里的信息).
DeCSS程序:喬·約翰森編寫的小程序,僅有57K,不僅震撼了好萊塢,還引發(fā)了無數(shù)的法律糾紛。他創(chuàng)造出來的“小魔怪”,如今已經(jīng)成了好萊塢制片商們最恨之入骨的冤家對(duì)頭。DeCSS程序能夠?qū)⒄婕用艿腄VD影片復(fù)制到計(jì)算機(jī)硬盤上。它還可以將這些影片上傳到互聯(lián)網(wǎng)上。
MPEG-4技術(shù):是一種嶄新的低碼率、高壓縮比的視頻編碼標(biāo)準(zhǔn),傳輸速率為4.8~64kbit/s,使用時(shí)占用的存儲(chǔ)空間比較小。目前的DivX(最新的XviD)電影都采用的此技術(shù),現(xiàn)在被廣泛采用。
GPL協(xié)議:通用公共許可證,一種開放源碼項(xiàng)目中常用的保障自由使用和修改的軟件或源碼的協(xié)議。
LGPL協(xié)議:次級(jí)GPL(Lesser GPL),與GPL一樣,是一種公共許可證。與GPL的最大不同是它允許私有。
Ffdshow:一個(gè)支持 Xvid、MPEG4-V3 MPEG4-V2 以及 DivX 所有版本所制作的視頻文件的播放軟件,占CPU 資源比較少。
6.XviD配置參考詳解【爆詳細(xì)】
XviD的主界面
[Top]
Profile @ Level
[Top]
這個(gè)選項(xiàng)包含一些預(yù)設(shè)值,與分辨率和碼率有關(guān),按旁邊的“more...”按鈕再切換到Level標(biāo)簽可以看到預(yù)設(shè)的數(shù)值。因?yàn)槲覀冎谱鞯囊曨l并不在其它視頻播放設(shè)備(比如具備MPEG4解碼能力的DVD播放機(jī))中播放,無須考慮設(shè)備兼容性,所以這個(gè)選項(xiàng)一般可選“不限制”(unrestricted)或者默認(rèn)的“AS @ L5”。
Zones
[Top]
XviD1.0以前的版本都有一個(gè)參數(shù)叫Credit,Zones繼承并加強(qiáng)了以前的Credit功能,使之可以控制片中任意一段視頻。大家知道,電影、動(dòng)畫片尾(或片頭)都有制作人員名單 (即Credit,下同) ,而且一般沒人會(huì)看。而老版XviD中Credit選項(xiàng)的作用就是,允許用戶使用較低的質(zhì)量制作Credit部分,讓出更多的碼率分配給正文部分,以提高正文部分的質(zhì)量。而在最新的XviD1.0中,這個(gè)Credit選項(xiàng)卻消失了,取而代之的是一個(gè)新的參數(shù)——Zones。在這里,我們可以把Zones理解成“區(qū)間”、或者說“片斷”。也就是說,我們可以在邏輯上將片子分成許多段,并給這些段落一些“特殊待遇”。
Zones的使用例子
[Top]
上圖例子中,0~40640幀是正片,按照正常壓縮,所以需要設(shè)定W1.00。從40641幀開始是長(zhǎng)長(zhǎng)的黑白滾動(dòng)字幕的制作人員名單,因?yàn)闈L動(dòng)字幕是非常浪費(fèi)碼率的,所以這里我們?cè)O(shè)定使用Q8來壓縮制作人員名單。Zones界面如上圖,本部分參數(shù)設(shè)置僅為例子,具體設(shè)置在下面說明。
Zones的設(shè)置
Start frame#——該區(qū)間的起始幀,用于指定該區(qū)間的范圍。該區(qū)間的范圍定義于起始幀開始至下一區(qū)間起始幀的前一幀。若沒有定義下一區(qū)間,則該區(qū)間一直定義至影片結(jié)束。
Weight——權(quán)重。設(shè)置該區(qū)間的實(shí)際應(yīng)用碼率與原碼率的比。比如,如果只想使用原碼率的85%編碼該區(qū)間,那么這里可以填寫0.85。如果想使用100%碼率(即原碼率),填寫1.00即可。什么是“原碼率”呢?即XviD認(rèn)為應(yīng)該使用的碼率。如果定義了權(quán)重,那么XviD在實(shí)際壓縮的時(shí)候,就會(huì)將原碼率乘以用戶指定的權(quán)重,作為該處實(shí)際的碼率。
Quantizer——設(shè)置該區(qū)間幀的Q值。可以強(qiáng)迫編碼器將這段區(qū)間使用某一Q值編碼(本選項(xiàng)通常用于Credit部分的編碼)。
Begin with keyframe——本區(qū)間的第一幀強(qiáng)迫使用IF。一般選擇此選項(xiàng)。
Greyscale encoding——使用灰度。編碼出的畫面是黑白的,適合于黑白畫面(比如片尾的黑白Credit),可更加降低本區(qū)間的碼率。
Chroma optimizer enabled——色度優(yōu)化,可以改善顏色過渡不自然現(xiàn)象。該選項(xiàng)對(duì)畫面顏色有優(yōu)化作用,推薦選擇。勾選此項(xiàng)會(huì)稍微降低編碼速度,所以可以選擇僅對(duì)Weight設(shè)置成1的電影正文部分應(yīng)用此設(shè)置。由于Chroma optimizer是在色度上做文章,所以開啟了Greyscale encoding的時(shí)候可以考慮關(guān)掉 Chroma optimizer,可以在一定程度上提高一些編碼速度。
Cartoon Mode——卡通模式。這個(gè)模式可以讓畫面顯得更干凈一些,但這就意味著要抹殺細(xì)節(jié)。制作動(dòng)畫的時(shí)候可以使用。(下面會(huì)有一個(gè)小結(jié)專門講解Cartoon Mode)
BVOP sensitivity——BF靈敏度。值越大,使用BF的數(shù)量越多。如果設(shè)定負(fù)值,則會(huì)減少BF用量。制作CREDIT段落的時(shí)候本參數(shù)可以適當(dāng)設(shè)置大一點(diǎn),用更多的高壓縮率BF去壓Credits,參數(shù)可以考慮20或40。
注意:如果要在Credit使用Quantizer模式的話,要在Twopass-1st pass中也使用相同的設(shè)置才有效。而若要用Weight模式則只需在Twopass-2nd pass中設(shè)定既可(從某種意義上講,這樣可令Weight模式下的Two-pass-1st pass稍微快一點(diǎn))。
Zones應(yīng)用于CREDIT的參數(shù)設(shè)置建議: 演職員名單的Q值可限定為8或者9,這樣既可以保證名單上的文字能夠分辨出來,也可以大幅降低Credit這部分的視頻文件體積。有時(shí),10分鐘左右的Credits壓出來也只有6、7MB,這對(duì)某些擁有5、6分鐘以上較長(zhǎng)Credit的1CD DVDRip影片制作來說,幫助是較為明顯的。
Zones使用上的心得
[Top]
除非出現(xiàn)極端的現(xiàn)象,否則不建議針對(duì)正片(即影片中除廣告、制作人員名單之外的正文部分)使用Zones。有些用戶喜歡自作聰明地指定許多Zones人為地干預(yù)碼率控制。實(shí)踐證明,這種行為是非常不明智的,這樣會(huì)嚴(yán)重干擾XviD對(duì)于碼率的控制和計(jì)算,只會(huì)導(dǎo)致容量失控(Oversize或Lowsize)或畫質(zhì)下降。XviD的碼率控制幾乎是所有編碼器中做得最好的,所以不要擔(dān)心,把一切交給XviD去做吧。
考慮到觀眾
[Top]
現(xiàn)在不少影片的制作人員名單采用了帶有畫面的漸變或滾動(dòng)字幕,畫面通常為一些拍攝花絮或影片插圖、設(shè)定。考慮到觀眾的觀賞需要,這類名單不適合使用Zones來降低碼率。所以,壓縮的時(shí)候應(yīng)當(dāng)時(shí)刻考慮到觀眾的心情。
Cartoon Mode
[Top]
(本部分作者:Bopirit,收錄時(shí)略有修改)
XviD有個(gè)動(dòng)態(tài)判斷標(biāo)準(zhǔn)值,指判別畫面是否有動(dòng)態(tài)的標(biāo)準(zhǔn)。若高于這個(gè)值,則判斷畫面為動(dòng),編碼時(shí)記載動(dòng)態(tài)信息;若低于這個(gè)值則判斷為畫面不動(dòng),不記載動(dòng)態(tài)信息。這個(gè)通常很低,就是說,很小一點(diǎn)差別都會(huì)判斷為動(dòng)態(tài)。
打開Cartoon模式后,這個(gè)標(biāo)志的值會(huì)加大,相應(yīng)的,小的動(dòng)態(tài)變化會(huì)忽略。對(duì)動(dòng)畫來說,最直接的效果就是消除了浮動(dòng)的細(xì)微噪點(diǎn)(特別是在色塊和線條之間,這種噪點(diǎn)即使降噪也會(huì)出現(xiàn))。因?yàn)橛昧薈artoon模式,這些噪點(diǎn)造成的小度變化被忽略掉,因此會(huì)省出大量碼率。在的實(shí)驗(yàn)中,多在8%以上。但是,因?yàn)楫嬅娴淖儎?dòng)相對(duì)較大,PSNR會(huì)降低(雖然對(duì)動(dòng)畫來說這算不得降低),而且對(duì)于使用H.263量化的動(dòng)畫,還會(huì)讓畫面感覺更加模糊;而對(duì)于MPEG量化,這個(gè)Cartoon模式可以有效降低MPEG量化編碼動(dòng)畫片的副作用,盡管PSNR降低,但實(shí)際上畫面看起來更好。可以配合MPEG/MPEG Custom量化方式使用。
Q值
[Top]
Q值是指量化值(依據(jù)作者個(gè)人習(xí)慣不同,這個(gè)值在不同文章中的叫法有所不同,比如“量化值”、“量化級(jí)別”、“Quant”等等,本文統(tǒng)一稱作“Q值”)。顧名思義,Q值用來描述一個(gè)幀的質(zhì)量,每個(gè)幀都有Q值。該值取值范圍是1~31。該值由編碼器編碼的時(shí)候根據(jù)該幀的顏色、與跟前/后幀的動(dòng)態(tài)關(guān)系等自動(dòng)確定。Q值越小,質(zhì)量越好,碼率越大;Q值越大,質(zhì)量越差,碼率越小。(本概念在XVID制作中非常重要,Q值直接關(guān)系到影片的畫面質(zhì)量。)
Encoding mode
[Top]
Encoding mode即編碼模式。XviD一共提供兩種編碼模式。一種是Single pass,另一種是Twopass。Twopass分兩步,分別是1st pass,和2nd pass。下面對(duì)這兩種編碼模式分別進(jìn)行講解。
Single pass
[Top]
Single pass即一次運(yùn)算,Single pass有兩種模式(通過Target xxx按鈕切換)Target quantizer(目標(biāo)Q值)和Target bitrate(目標(biāo)碼率)。Single pass模式編碼較簡(jiǎn)單,速度也很快,但是最終質(zhì)量不如Twopass模式好。可用于實(shí)時(shí)采集。
Target bitrate(CBR)——目標(biāo)碼率模式,單位kbps。最簡(jiǎn)單的單線編碼,選擇平均碼率后編碼。文件大小相對(duì)容易控制。
Target quantizer(VBR)——目標(biāo)Q值模式,動(dòng)態(tài)碼率。
Two pass
[Top]
Two pass即二重運(yùn)算。這種編碼模式分為兩步,首先對(duì)畫面逐幀進(jìn)行運(yùn)動(dòng)偵測(cè),以及對(duì)全片段的運(yùn)動(dòng)偵測(cè)結(jié)果進(jìn)行分析,然后重新以曲線平衡分配每一幀的Q值,以做到:需要高碼率的運(yùn)動(dòng)畫面可以分配更多空間、更高的碼率、更低的Q值來保證畫面質(zhì)量;而對(duì)于不包含太多運(yùn)動(dòng)信息的靜態(tài)畫面,則可以消減分配的碼率。這種把好鋼用在刀刃上的做法,是XviD作為第二代MPEG4編碼的核心內(nèi)容。可以說,Twopass模式可以在影片容量與畫面質(zhì)量之間找到最佳平衡點(diǎn),這也是大多數(shù)人都樂意花費(fèi)更多時(shí)間采用這種方式的原因。
Twopass-1st pass——二重運(yùn)算,第一次運(yùn)算。這是Twopass模式的第一步。在這一步中,編碼器會(huì)用最高質(zhì)量編碼(量化值2),同時(shí)收集畫面信息,并將這些信息記錄信息文件(stats)當(dāng)中提供第二次運(yùn)算的時(shí)候參考。
Twopass-2nd pass——二重運(yùn)算,第二次運(yùn)算。這是Twopass模式的第二步,編碼器會(huì)根據(jù)第一次壓縮時(shí)獲得的影片的信息和用戶指定的最終文件大小,自動(dòng)分配碼率,低動(dòng)態(tài)的分配得少一些、大動(dòng)態(tài)的分配得多一些,總之盡量保證最終文件大小為用戶指定的大小。
注1:不要在第一重和第二重運(yùn)算之間更改XviD設(shè)置(某些特殊項(xiàng)除外)、改變AVS腳本(如果用到AVS)或加入、刪除濾鏡,這些都將會(huì)造成不正確的結(jié)果。
注2:計(jì)算2pass容量的時(shí)候,應(yīng)使用1K=1024Bytes的換算方法。且計(jì)算結(jié)果不包含音頻大小。
Twopass-1st pass面板
[Top]
Full Quality first pass——全質(zhì)量第一次運(yùn)算。在 Twopass - 1st pass 時(shí)以你當(dāng)前的設(shè)置進(jìn)行編碼,通常是沒必要的。會(huì)降低1st pass編碼速度。
Discard first pass——不輸出第一次運(yùn)算結(jié)果。一般都會(huì)打開這項(xiàng),否則你可能會(huì)得到一個(gè)容量高達(dá)幾個(gè)G的無用的AVI文件。
2nd pass
[Top]
這個(gè)對(duì)話框只有在2PASS的時(shí)候才可用,其的設(shè)置比較復(fù)雜,建議保留默認(rèn)設(shè)置。
I-frame boost——額外分配給IF的碼率。如果IF的Q值較小(如1或2),此項(xiàng)可以設(shè)置為0。
I-frames closer than... (frames) X ...are reduced by (%)Y(X和Y代表所設(shè)定的參數(shù))——意思是,若兩個(gè)IF的距離小于X(通常是連續(xù)的閃電效果或者連續(xù)大動(dòng)態(tài)動(dòng)作場(chǎng)面會(huì)出現(xiàn)這種情況),則靠后的IF碼率減小Y%。如果IF的Q值較小,Y可以稍微設(shè)置大一些(可增加5%~8%)。
Overlflow treatment——碼率補(bǔ)償與縮減。Max overflow improvement和Max overflow degradation控制當(dāng)編碼器遇到不足碼率或者碼率過大的場(chǎng)景時(shí)進(jìn)行修正補(bǔ)償?shù)拈y值,即超碼或不足碼到達(dá)什么程度,編碼器會(huì)進(jìn)行修正。值越大,修正速度越快(即需要修正的幀較少,整體編碼速度就加快),但是這可能會(huì)造成無法為別的更需要碼率幀保留碼率。如果Q值波動(dòng)較大,可以將這個(gè)值減小到20~30,這樣可能會(huì)使預(yù)測(cè)的文件大小受到影響。除非遇到特殊情況,本功能不建議使用!
Overflow control strength %——控制每個(gè)需要補(bǔ)償?shù)拇a率過大/不足的幀被補(bǔ)償多少。除非遇到特殊情況,本功能不建議使用。
Curve compression——曲線壓縮。曲線壓縮的作用就是將碼率較高的幀的碼率拉下來,將碼率較小的幀的碼率提上去,讓碼率曲線平緩一些。此選項(xiàng)不建議使用,也就是保持默認(rèn)設(shè)置“0”。由于現(xiàn)階段XviD的動(dòng)態(tài)分配(即曲線壓縮)做得不是很好,所以直接采用了一種linear scale(即線性壓縮)把1pass的碼率曲線直接往下調(diào)。除遇到特殊情況外,不建議使用曲線壓縮功能。
若想了解更多曲線壓縮以及線性壓縮的細(xì)節(jié),請(qǐng)參閱本文附錄《曲線壓縮與線性壓縮》。
Profile標(biāo)簽
[Top]
Quantization type
[Top]
量化方式。此處支持三種量化方式。分別是H.263、MPEG、MPEG Custom。應(yīng)根據(jù)影片的特性確定該選項(xiàng)。要了解這三種量化方式的詳細(xì)信息,請(qǐng)參見附錄《三種量化方式解說》。
Adaptive Quantization
[Top]
其實(shí)這個(gè)選項(xiàng)就是XVID 1.0之前版本中的Lumi masking。加大圖像亮/暗部等人眼不容易注意到的部分的壓縮率,可能會(huì)產(chǎn)生畫面扭曲。本選相應(yīng)當(dāng)謹(jǐn)慎使用,因?yàn)樗雌饋肀状笥诶K匀绻皇菍?duì)縮小文件體積縮小有迫切的需求,最好不要使用。
Interlaced Encoding
[Top]
隔行處理。適用于有交錯(cuò)的片源。一般來說不需要開啟。
Top Field First
[Top]
決定場(chǎng)序。如果選中,則為頂場(chǎng)(奇數(shù)場(chǎng))先,否則為底場(chǎng)(偶數(shù)場(chǎng))先。
Quarter Pixel
[Top]
1/4像素(簡(jiǎn)稱QP,下同)。MPEG-4 用的 QPel 即 1/4 Pel,就是再補(bǔ)出1/2像素像素和1/2像素之間的1/4像素。能保留更多的細(xì)節(jié)(比不用QP多)和得到更精確的動(dòng)態(tài)補(bǔ)償,適合高2-PASS/1-PASS比值時(shí)采用。但會(huì)降低損失近1/3的編碼速度。
通常情況下,2-PASS/1-PASS比值在50%以下,不推薦使用。800K以下的低碼率使用時(shí),部分場(chǎng)景的畫面會(huì)產(chǎn)生嚴(yán)重的色彩飄逸現(xiàn)象,看上去像粘稠的液體流動(dòng)(干凈、低動(dòng)態(tài)片源除外)。視頻碼率越高,使用加QP后的效果越好,而且中低碼率下去色塊的作用也非常明顯。
Global Motion Compensation
[Top]
全域動(dòng)態(tài)補(bǔ)償(簡(jiǎn)稱GMC,下同)。能在縮放(把鏡頭拉近)以及旋轉(zhuǎn)(轉(zhuǎn)動(dòng)相機(jī))的情形下有所幫助,尤其是畫面中的物體的外型是固定的,僅在尺寸以及位置上有所不同時(shí)。若要處理的影片是自然景觀或風(fēng)景片時(shí),可以開啟GMC。使用該選項(xiàng)制作的影片可能只有XviD自己的解碼器才能正常解碼,若使用ffdshow等解碼器解碼可能存在兼容性問題,用前請(qǐng)考慮。
B-VOPs
[Top]
B-frame
[Top]
B-frame設(shè)定。若去掉該選項(xiàng)前面的對(duì)勾,則編碼中不使用B-Frame(簡(jiǎn)稱BF,下同),只用IF、PF來壓。
Max consecutive BVOPs——最大連續(xù)BF數(shù)量。舉個(gè)例子,設(shè)置2,就是說在兩個(gè)PF之間(或IF/PF之間)最多會(huì)連續(xù)插入兩個(gè)BF,即…IF/PF BF BF PF…;如果設(shè)置3,則最多會(huì)出現(xiàn)三個(gè)連續(xù)BF,即…IF/PF BF BF BF PF…。此處,應(yīng)根據(jù)片源具體情況來設(shè)定,如果片源動(dòng)態(tài)比較小,則可以適當(dāng)開大一些,比如3、4;如果碼率很充足或片源很復(fù)雜,包含大量大動(dòng)態(tài)場(chǎng)景、運(yùn)動(dòng)不規(guī)則、場(chǎng)景切換頻繁等等,則應(yīng)減少BF用量,甚至不用BF。
請(qǐng)注意:多少個(gè)BF連續(xù)出現(xiàn),沒有數(shù)量限制(你可以設(shè)置成1,也可以設(shè)置成1000)。具體用多少XVID自行判斷,這個(gè)地方只設(shè)定最大值。
Quantizer ratio——BF的Q值倍數(shù)。計(jì)算BF的Q值的參數(shù)。
Quantizer offset——Q值計(jì)算偏移值。計(jì)算BF的Q值的參數(shù)。(BF的Q值計(jì)算方式下面解釋)
Packed bitstream——開啟BF的XviD制作的avi,在播放時(shí)會(huì)延遲一幀(就是以前播放時(shí)畫面第一幀的那個(gè)黑色畫面,告訴你該視頻使用了BF,如下圖)(制作成ogm、mkv、mp4則不會(huì))。而Packed bitstream選項(xiàng)的作用是解決這個(gè)問題。不過開啟2個(gè)以上的連續(xù)BF并用到了Packed bitstream的時(shí)候,只有XviD的解碼器可以正常解碼。而用老版本的DivX/ffdshow解碼,水平移動(dòng)的畫面會(huì)不順暢(畫面朝移動(dòng)方向抖動(dòng))(ffdshow-20040225以后的版本解決了這一個(gè)問題)。
Closed GOV——在編碼新的IF之前插入一個(gè)PF來關(guān)閉前一個(gè)幀組,否則解碼時(shí)有可能出現(xiàn)問題。此選項(xiàng)要勾選。
BF的Q值的計(jì)算:BF的Q值由BF前后的IF/PF共同決定。
代碼:
BF的Q值=BF前后的IF(或PF)的Q值的算術(shù)平均數(shù)* Quantizer ratio+ Quantizer offsetBF是一個(gè)能有效提高壓縮率的功能,是否降低畫質(zhì),那要看如何設(shè)置了。有的設(shè)置壓出來的部分BF,Q值比PF還低。用最恰當(dāng)?shù)腂F設(shè)置來調(diào)節(jié)碼率,提高整體質(zhì)量,是非常有效的,設(shè)置地恰當(dāng)?shù)脑?#xff0c;會(huì)令全片的Q值分布相當(dāng)平均,可使DRF測(cè)試中的第二項(xiàng)——Standard Deviation 輕易達(dá)到“Quality is HIGH [Std. Deviation is 0.50]”,即動(dòng)、靜態(tài)場(chǎng)景的畫質(zhì)一致,不會(huì)“靜態(tài)尚可而動(dòng)態(tài)MSK驚人”。而且在用VHQ4壓片時(shí)還能省去不少時(shí)間,因?yàn)锽F不像I、PF那樣要作VHQ4處理。通常情況下,全片BF含量在30%—55%左右,畫面效果與只用I、PF+VHQ4跑出來的畫質(zhì)無顯著差別。即省時(shí)又保證質(zhì)量,所以一般應(yīng)當(dāng)使用BF。
隨著XviD的Frame Type的不斷進(jìn)步(從0624版開始FrameType判斷較以前版本已經(jīng)有了相當(dāng)大的提高),大動(dòng)態(tài)場(chǎng)景BF濫用現(xiàn)象已經(jīng)得到了較好的抑制(經(jīng)過實(shí)測(cè),在碼率充足的情況下,大動(dòng)態(tài)場(chǎng)景基本用IF PF PF PF PF… 來壓了),所以BF可以放心使用。
有些朋友對(duì)本部分設(shè)置可能還不是很清楚,的確,BF的設(shè)置是XviD中最難掌握的部分,參數(shù)需要精心搭配。
針對(duì)一些情況,本文給出了參考參數(shù)設(shè)置,請(qǐng)見附錄-BF推薦設(shè)置。
Motion標(biāo)簽
[Top]
Motion search precision——運(yùn)動(dòng)檢測(cè)精度,決定著給定碼率下的畫面質(zhì)量。等級(jí)越高,畫質(zhì)越好,速度越慢。一般選6而不選5,因?yàn)檫x5只快10%。
設(shè)置:
1 – 3: 基本沒有什么區(qū)別。
4-high:XVID使用半像素插值(half pixel interpolation=HPel=1/2像素)的技術(shù)達(dá)到更好的結(jié)果,而整個(gè)16x16的微區(qū)塊被標(biāo)示上兩幀之間的運(yùn)動(dòng)向量(譯者按:ffdshow有顯示這個(gè)向量的功能,很有趣)
5-very high:XviD 使用4分運(yùn)動(dòng)向量(inter4v motion vectors)的方式,即16x16的微區(qū)塊中的4個(gè)8x8區(qū)塊,被標(biāo)示各自的運(yùn)動(dòng)向量。
6-ultra high:運(yùn)行更多邊的運(yùn)動(dòng)檢測(cè)(會(huì)減慢10%的編碼速度)。
VHQ mode——搜尋寬度。等級(jí)越高,畫質(zhì)越好,速度越慢。這個(gè)選項(xiàng)會(huì)很大幅度的降低編碼速度,若機(jī)器夠快,可選4。想了解更多VHQ的功能,請(qǐng)參閱本文附錄《VHQ模式》。
Use VHQ bframes too——在BF上應(yīng)用VHQ。在原先版本的XviD中,VHQ Mode是不被應(yīng)用在BF中的。但是從XviD1.1版本開始,只靠選中本選項(xiàng),就可以在BF中應(yīng)用VHQ Mode了!
Use chroma motion——通過顏色信息來判斷動(dòng)態(tài)。會(huì)降低編碼速度5%~10%,但是有利于畫面,推薦選擇。
Turbo——超級(jí)模式。更快的判斷BF和QP的動(dòng)態(tài)。
Frame drop ratio——丟幀率,這個(gè)參數(shù)保持默認(rèn)值0,并且不要改變。
Maxinum I-frame interval——最大IF幀距。該參數(shù)一般為幀率的10倍。比如,一般DVDRIP的幀率為23.976fps,則該處就填寫240。有人喜歡認(rèn)為將這個(gè)值調(diào)小,以增加IF的數(shù)量,達(dá)到提高畫質(zhì)的目的。此項(xiàng)可根據(jù)片子情況適當(dāng)減小。但是在200以上為宜,如果太小會(huì)適得其反——文件OVERSIZE、IF占用大量碼率導(dǎo)致BF/PF質(zhì)量過低,反而不利于畫質(zhì)。
Quantization標(biāo)簽
[Top]
Quantization標(biāo)簽中的設(shè)定非常重要,直接關(guān)系到片子的質(zhì)量。
Min I-frame quantizer——IF的Q值最低值。
Max I-frame quantizer——IF的Q值最高值。
Min P-frame quantizer——PF的Q值最低值。
Max P-frame quantizer——PF的Q值最高值。
Min B-frame quantizer——BF的Q值最低值。
Max B-frame quantizer——BF的Q值最高值。
Trellis quantization——進(jìn)階高質(zhì)量量化模式。若選擇該選項(xiàng),編碼器會(huì)選擇性的降低某些畫面的質(zhì)量,來達(dá)到最大限度的提高片子的整體質(zhì)量。可配合H.263量化方式使用。
各種類型幀的Q值設(shè)定需要注意以下原則
設(shè)置時(shí)應(yīng)盡量保證IF質(zhì)量,因?yàn)锽F和PF的質(zhì)量都由IF決定。
由于XVID對(duì)于BF質(zhì)量的把握越來越好,比較黑暗的場(chǎng)面出現(xiàn)爛幀的幾率也有所減少,所以BF的Q值上限可以放心的設(shè)大一些。
有些朋友提出,不要限制Q值范圍,也就是全部都保留1/31的默認(rèn)值,讓XviD自行掌握Q值分配。筆者認(rèn)為這么講不無道理,但要看什么情況。在一些情況下,XviD自身的Q值分配算法是不能適應(yīng)某些影片的(比如通篇畫面都很昏暗的影片等等),這個(gè)時(shí)候,就需要我們手工來限制Q值范圍。也就是說,是否限制Q值、限制多少,并沒有一個(gè)確定的答案,而應(yīng)當(dāng)由片子本身的特性。有經(jīng)驗(yàn)的RIPPER可以迅速的根據(jù)影片畫面判斷應(yīng)該如何配置,也就是所謂的“經(jīng)驗(yàn)”。所以,Q值的設(shè)定應(yīng)由影片本身和制作要求靈活應(yīng)變,不應(yīng)一味追求所謂“理想值”。筆者認(rèn)為,這點(diǎn)是應(yīng)當(dāng)特別注意的。
綜合設(shè)置
[Top]
請(qǐng)注意,從xvid1.2開始,Debug功能被安排在了XviD Configuration項(xiàng)目中,按Xvid主窗口下方的Other options按鈕即可進(jìn)入。
Encoder
[Top]
FourCC used——FourCC 用以確定你編碼好的電影用什么樣的解碼器來播放,默認(rèn)值為"XviD",這意味著將使用"XviD directshow filters",保證了最大的質(zhì)量和兼容性。你也可以選擇使用"DivX 4.x"或"5.x"的解碼器來回放你完成的電影,但是它們不一定就能正常播放。
Number of threads——線程數(shù)。XviD針對(duì)現(xiàn)在逐漸流行起來的支持HT技術(shù)或雙內(nèi)核處理器做出了一些優(yōu)化。若您的處理器支持HT技術(shù)或有雙內(nèi)核,請(qǐng)?jiān)O(shè)置為2,否則請(qǐng)保持默認(rèn)。
Print Debug info on each frame——在每幀上打印debug信息,非專業(yè)人員不要選:)
Display encoding status——顯示編碼狀態(tài),就是我們?cè)趬褐频臅r(shí)候看到的XviD Status窗口。如下圖:
Common
[Top]
Performance optimizztions——性能優(yōu)化。可以選擇特定的CPU指令集優(yōu)化。可以對(duì)編碼速度的提高起到一定作用。建議選擇自動(dòng)選擇指令集優(yōu)化。
附錄
[Top]
如何知道1pass容量
[Top]
獲取1pass容量其實(shí)很簡(jiǎn)單。當(dāng)大家開始用XviD壓制1st-pass的時(shí)候,XviD會(huì)跳出來一個(gè)狀態(tài)窗口,這個(gè)窗口會(huì)實(shí)時(shí)顯示壓制過程中各種各樣的信息。當(dāng)1pass壓制完成的時(shí)候,這個(gè)窗口會(huì)顯示1pass的最終結(jié)果。如下圖:
右邊紅框部分所示的容量即為1pass容量。用計(jì)算出來的2pass容量除以這個(gè)值,就能計(jì)算出來2pass/1pass比值了。
BF參考設(shè)置
[Top]
2-PASS/1-PASS比值在70%以上
[Top]
由于容量相對(duì)寬松,故限制了IPB的Q值范圍。
Max consecutive BVOPs --------- 2
Quantizer ratio --------------------- 1.20
Quantizer offset -------------------- 0.60
Quantization設(shè)置:2、2、2、3、2、4
2-PASS/1-PASS比值在60%--70%之間
[Top]
Max consecutive BVOPs --------- 3
Quantizer ratio --------------------- 1.30
Quantizer offset -------------------- 0.80
Quantization設(shè)置:2、2、2、4、2、5
2-PASS/1-PASS比值在50%--60%之間
[Top]
通過降低分辨率和/或使用降噪濾鏡降低壓縮難度,變相提升2-PASS/1-PASS比值。
Max consecutive BVOPs --------- 4
Quantizer ratio --------------------- 1.40
Quantizer offset -------------------- 0.80
Quantization設(shè)置:2、3、2、3、2、31
2-PASS/1-PASS比值在50%以下
[Top]
通過降低分辨率和/或使用降噪濾鏡降低壓縮難度,變相提升2-PASS/1-PASS比值。如果降低分辨率(直到你已不能接受的水平)和/或使用降噪濾鏡(畫面模糊到你已不能接受的水平)時(shí),仍然不能將2-PASS/1-PASS比值提升到至少55%的水平,則考慮提高視頻文件體積,或者換用其它編碼器來完成壓縮工作(如VP6、RV10)。
這種方法可以保證制作出來的所有視頻文件的Average DRF/quantizer控制在2.5-3.5之間(I、PF的Q值為2或3),Std. Deviation控制在0.40-0.60之間。也就是說沒有明顯的壓縮瑕疵,如MSK、噪點(diǎn)等(其它需要配合的設(shè)置還包括:VHQ4、hvs系列量化模式)。
基本概念解釋
[Top]
本文用到了一些MPEG4中的基本概念,這些概念在本文中會(huì)經(jīng)常提及。所以這里特意為新手準(zhǔn)備了概念解釋,希望新手朋友在閱讀之前掌握這些概念。沒有收錄進(jìn)來的一些針對(duì)性較強(qiáng)的概念已經(jīng)在正文中進(jìn)行重點(diǎn)的解釋。
三種幀類型
[Top]
IF——I-frame的縮寫,即關(guān)鍵幀。關(guān)鍵幀是構(gòu)成一個(gè)幀組(GOP,Group of Picture)的第一個(gè)幀。IF保留了一個(gè)場(chǎng)景的所有信息。
PF——P-frame的縮寫,即未來單項(xiàng)預(yù)測(cè)幀,只儲(chǔ)存與之前一個(gè)已解壓畫面的差值。
BF——B-frame的縮寫,即雙向預(yù)測(cè)幀,除了參考之前解壓過了的畫面外,亦會(huì)參考后面一幀中的畫面信息。
量化方式
[Top]
H.263——推薦700~900K的碼率(比如1CD制作)時(shí)使用。保留畫面細(xì)節(jié)不及MPEG量化方式好,但可以達(dá)到較好的畫面降噪效果,可以讓畫面看起來更干凈一些。推薦壓制動(dòng)畫使用本量化方式。H.263 的量化方法,顧名思義,就是使用 H.263 這個(gè)壓縮規(guī)格所使用的量化方法,量化的時(shí)候,8x8 的像素方塊內(nèi)的所有 DCT 系數(shù),全部除以同一個(gè)數(shù)字。(這個(gè)動(dòng)作就叫做量化)例如全部都除以 32,如果有一個(gè) DCT 系數(shù)為 15,小于 32,經(jīng)過相除之后,會(huì)被量化為 0,如此便可以省下很多記錄的 bits。當(dāng)然,除的數(shù)字越大,量化的誤差也就越大,品質(zhì)也就越差,但是壓縮率會(huì)越高,壓出來檔案會(huì)越小。我們會(huì)利用另一個(gè)參數(shù)來調(diào)整量化的誤差,控制最后量化的品質(zhì)和檔案的大小,這個(gè)參數(shù)叫做 Quantizer。量化的系數(shù)會(huì)再乘上這個(gè) Quantizer 的倍數(shù),例如原本要除的量化系數(shù)是 32,Quantizer 是 2,對(duì)應(yīng)的放大倍數(shù)也是 2,最后真正要除的量化系數(shù)就變成 32*2=64。所以 Quantizer 越大,要除的量化系數(shù)就越大,量化誤差就越大,品質(zhì)就越差,但是檔案也越小。H.263 的量化方法還規(guī)定,相鄰的兩個(gè) MacroBlock 的Quantizer 不能相差超過 2。
MPEG——建議高碼率情況下(比如2CD制作)使用,能保留較多細(xì)節(jié),但在某些情況下可能造成噪聲等副作用。若在制作動(dòng)畫時(shí)使用,可能引起色彩過度不自然、顏色邊界處出現(xiàn)噪聲等副作用,此時(shí),可搭配Cartoon Mode降低這些副作用。MPEG 的量化方法,高低頻系數(shù)可以除以不同的量化系數(shù),可以視情況將高頻削多一點(diǎn)。這個(gè) 8x8 的量化系數(shù),也就是 Quantize Matrix(量化矩陣)。
MPEG Custom——可以加載MPEG自定義量化模板。你可以依照影片特性,自訂最適當(dāng)?shù)牧炕仃嚒1热?#xff0c;壓電影的時(shí)候常用的hvs-best-picture模板可以兼具M(jìn)PEG和H.263量化方式的優(yōu)點(diǎn),即畫面細(xì)節(jié)和降噪都能得到兼顧。若要采用MPEG Custom量化方式,點(diǎn)擊Edit Matrix…按鈕加載想要的量化模板即可。本選項(xiàng)只建議對(duì)于量化模板有較深研究的專家使用。XviD1.0安裝目錄下有一個(gè)XviD_Quant_Matrices.zip,里面包含了數(shù)種常用的量化模板,比如有名的HVS量化系列,在DOOM9網(wǎng)站或論壇上可以找到更多的量化模板。
噪聲
[Top]
這里所謂“噪聲”,并不是我們能夠聽到的實(shí)際意義上的噪聲,而是指的畫面上不斷閃動(dòng)的亮斑點(diǎn)或色斑點(diǎn)。畫面出現(xiàn)噪聲一般有以下幾方面原因:1.電影:由于膠片本身的感光性能或采集過程不佳造成(老片尤其嚴(yán)重);2.動(dòng)畫:TVRIP錄制時(shí)電視信號(hào)存在干擾(也就是我們常說的“雪花”);3.采用了VHS或老舊的LD片源;4.由于壓制不良,導(dǎo)致色彩之間的邊緣處有細(xì)小的色斑存在(看起來像“馬賽克”)。這些噪聲在畫面上不停的閃爍、移動(dòng),造成驚人的碼率浪費(fèi)。因此需要盡量將這些噪聲“過濾”掉,以節(jié)省碼率,增高片子的整體質(zhì)量。要想過濾噪聲有許多方法,比如在AVS腳本中加入降噪濾鏡等,但這不是本文討論的重點(diǎn)。
Q值(即DRF值)
[Top]
在編碼時(shí),為了達(dá)到某個(gè)碼率,mpeg4編解碼器會(huì)對(duì)每一幅畫面進(jìn)行壓縮。而壓縮程度則取決于碼率、圖像內(nèi)容的復(fù)雜度及動(dòng)態(tài)大小。對(duì)于每一幀,一旦確定怎樣去壓縮以后,就會(huì)產(chǎn)生DRF值。DRF值為2的時(shí)候,效果最佳(在XVID中,quantizer還可能達(dá)到1)。DRF值等于31時(shí),效果最差。8以上的DRF值,可被認(rèn)為效果很差。DRF/quantizer實(shí)際上代表了編碼器在降低幀大小時(shí)所丟棄的信息量。
Bits/(Pixel*frame)
[Top]
數(shù)據(jù)密度。碼率并不是視頻/音頻質(zhì)量的唯一指標(biāo),一個(gè)更重要的指標(biāo)是Bits/(Pixel*frame) (數(shù)據(jù)密度),它反映了平均記錄每象素所用的數(shù)據(jù)量。如果Bits/(Pixel*frame)比較低,那么DVDrip的視頻流中I幀間的預(yù)測(cè)幀(P幀/B幀)的誤差會(huì)比較大,視頻質(zhì)量會(huì)下降,(MSK等…)。制作DVDRIP的軟件(例如GK)都要計(jì)算/給出這個(gè)Bits/(Pixel*frame)值。一般認(rèn)為,較好的視頻質(zhì)量需要Bits/(Pixel*frame)>0.2(如左圖)。
Video Size/1st Pass Size
[Top]
除了碼率和Bits/(Pixel*frame)之外,Video Size/1st Pass Size 也是一個(gè)質(zhì)量指標(biāo)。DVDRIP壓制時(shí),碼率的分配不是線性的,變化的(動(dòng)作)場(chǎng)景的碼率將會(huì)高,而靜態(tài)場(chǎng)景的碼率低。Twopass-1st pass就是用于確定碼率分配。而后,根據(jù)設(shè)定的最終文件大小,將算出的碼率分配曲線等比例壓縮,得到最終Twopass-2nd pass的碼率曲線。Video Size/1st Pass Size反映的就是這個(gè)壓縮比。一般認(rèn)為,較好的視頻質(zhì)量需要Video Size/1st Pass Size >55%。
曲線壓縮與線性壓縮
[Top]
(作者:Silky,收錄時(shí)略有改動(dòng))
「曲線壓縮」的意思就是將碼率較大的幀拉下來,降低一點(diǎn)碼率,碼率較小的幀補(bǔ)上去,提高一點(diǎn)碼率。也就是將原本上下震蕩的碼率曲線變平一點(diǎn),最大和最小的差距不要那么大。壓得越平,碼率曲線就越接近一條固定的直線,也就是變成近似于CBR。不過這樣實(shí)在很沒有意義不是嗎?本來碼率高的幀,就是因?yàn)檫@個(gè)幀需要較多的碼率紀(jì)錄,你現(xiàn)在把它拉下來,畫質(zhì)豈不更慘?而碼率低的幀,就是不需要花那么多碼率記錄的幀,你又給它多補(bǔ)一些碼率,豈不浪費(fèi)?
根據(jù) Koepi 的說法,當(dāng)碼率極低的時(shí)候,很多幀的碼率都不夠。此時(shí)如果把少數(shù)幾個(gè)碼率很高的幀拉低一點(diǎn),把省下來的碼率分給其它幀,立刻會(huì)對(duì)這些游走在底線邊緣的幀的畫質(zhì)有很大的幫助。曲線壓縮的目的便是犧牲少數(shù)幾個(gè)幀,讓大部分的幀增進(jìn)畫質(zhì)。而,這少數(shù)幾個(gè)碼率超高的幀,又通常都是高動(dòng)態(tài)的畫面。人眼對(duì)高動(dòng)態(tài)的畫面比較無法精確的判斷、分辨出畫質(zhì)的好壞。所以犧牲這幾個(gè)幀,增進(jìn)大部分時(shí)間看起來的品質(zhì),可以說是相當(dāng)劃算。好像還蠻有道理的。不過如果曲線壓縮的參數(shù)設(shè)定得不好的話,對(duì)畫質(zhì)會(huì)有很大的傷害,而且在不是超低碼率的情況下,曲線壓縮也沒有意義。所以最好的作法還是,讓編碼器自行視情況調(diào)節(jié),使用自由的 VBR,這樣壓出來的結(jié)果會(huì)越接近 CQ「固定品質(zhì)」。(當(dāng)然,如果碼率實(shí)在設(shè)得太低,CQ 壓出來的結(jié)果就是「固定爛品質(zhì)」 這時(shí)適當(dāng)?shù)倪\(yùn)用曲線壓縮,以少換多,就有它的價(jià)值了) 。
經(jīng)過許多人的測(cè)試經(jīng)驗(yàn),最后的結(jié)論就是 linear scaling「線性壓縮」的結(jié)果最好。 線性壓縮時(shí),1st pass與曲線壓縮無異,只是2nd pass的時(shí)候,就直接把 1st-pass 壓出來的碼率曲線按一定比例整個(gè)往下平移,降低碼率,達(dá)到你所設(shè)定的目標(biāo)大小為止。由于曲線只是整個(gè)往下平移,使得最終的碼率變小,而不改變其原本的震蕩幅度,所以稱為「線性的調(diào)整大小」。 線性壓縮使原本復(fù)雜,需要高碼率的畫面還是分到較多的碼率;簡(jiǎn)單,不用太多碼率的畫面也不會(huì)浪費(fèi)了碼率。線性調(diào)整壓出來的結(jié)果較接近「完美的 VBR」,也就是固定的平均品質(zhì),不會(huì)有幾個(gè)幀突然發(fā)生明顯劣化的情況。
使用線性壓縮的方法很簡(jiǎn)單,2nd-pass的時(shí)候,把Two Pass設(shè)定底下的High bitrate scenes degradation % 和 Low bitrate scenes improvement % 兩個(gè)設(shè)定都設(shè)為 0,這樣跑 2nd-pass 的時(shí)候就會(huì)自動(dòng)根據(jù) XviD Codec 內(nèi)建的 scaling 算法,做線性調(diào)整。
VHQ模式
[Top]
VHQ與IF、BF、碼率控制沒有任何關(guān)系,但VHQ越高,圖像的品質(zhì)越高。
MPEG系的編碼器在壓縮時(shí)以每個(gè)16x16像素塊大小的MacroBlock為單位進(jìn)行動(dòng)態(tài)預(yù)測(cè)。在VHQ模式下,它先是進(jìn)行簡(jiǎn)單的block-mode-decision(區(qū)塊模式判定),其間會(huì)對(duì)畫面內(nèi)的每一塊MacroBlock施以優(yōu)化,然后再按三個(gè)不同檔次(VHQ2、VHQ3、VHQ4)作進(jìn)一步動(dòng)態(tài)預(yù)測(cè),從而更進(jìn)一步的減少紀(jì)錄信息所需要的容量。
使用VHQ(特別是VHQ4)可以降低Q值、使畫面更干凈、保留更多的細(xì)節(jié),但這些都只是VHQ的副作用,VHQ的主要功能是提高壓縮效率(當(dāng)Q值一定時(shí),令文件體積更小),以便更好的達(dá)到目標(biāo)文件大小。
注意:
在1-PASS過程中,VHQ模式處于自動(dòng)關(guān)閉狀態(tài),因此不必?fù)?dān)心兩個(gè)PASS之間的設(shè)置不同。
在XviD 1.0正式版中,VHQ模式已經(jīng)能與BF、Quarter Pixel、Chroma motion、Adaptive Quantization、GMC功能同時(shí)開啟使用了。
后記與人員列表
[Top]
整個(gè)XVID的重要參數(shù)到這里差不多都介紹完了。筆者還是堅(jiān)持一點(diǎn):每個(gè)片子都有其自身特點(diǎn),要想用一套“萬(wàn)用參數(shù)”來“通吃”所有片子是不可能的。有朋友非常心急,一上來就要找出來一套適用于手頭這部片子的“理想值”,但是這樣往往以失敗告終。所以壓片之前,不要怕麻煩,多抽幾段來試壓,然后根據(jù)每個(gè)參數(shù)的作用進(jìn)行配置,相信你會(huì)制作出優(yōu)秀的DVDRIP。
XviD是一款相當(dāng)強(qiáng)大的MPEG4編碼器,如果參數(shù)配置得當(dāng),再配合良好的AVS腳本的話,可以制作出來容量只有DVD容量的1/5(MP3音頻),但畫質(zhì)和DVD相比絲毫不差的影片!到現(xiàn)在為止,XviD仍然有很大的潛力可以發(fā)掘。希望大家永遠(yuǎn)不要停止探索的腳步,去獲得更好的質(zhì)量!
本文的編寫及內(nèi)容不斷豐富、修訂的過程中,得到了很多朋友的幫助,在這里,編者dgwxx向他們表示最誠(chéng)摯的謝意。另外:如果您撰寫文章或創(chuàng)作其他作品(如編譯自己版本的XVID)的時(shí)候引用了本文的內(nèi)容,請(qǐng)一定要注明哪些內(nèi)容出自本文,這是對(duì)于作者們的尊重,同時(shí)也有助于技術(shù)的交流。在線版本的放出,間接解除了強(qiáng)制復(fù)制保護(hù)。您現(xiàn)在可以任意復(fù)制本文的任何文字、圖像內(nèi)容。但是這個(gè)許可僅限于用作技術(shù)交流,任何用于商業(yè)行為的復(fù)制行為、任何惡意抄襲均將受到本文作者團(tuán)隊(duì)的最嚴(yán)厲追究。
本文由多位作者共同完成。
參與編寫的作者名單(依照字母順序排列):Bopirit、Dgwxx、RKinGBo、tct66、大衛(wèi)
感謝以下朋友(按內(nèi)容時(shí)間先后排列):
Nemolus——在2.0版本修訂過程中提出了大量意見、建議。
DvDSharer——一些概念解釋;提出2.0版的修訂。
Skywalker——Global Motion Compensation的改正意見。
本文編寫過程中參考的資料:《高品質(zhì)DVDRIP制作進(jìn)階教程》(作者DvDSharer)、《XviD-1.0的設(shè)置參考》(作者tct66)、《XVID的中文化解釋》(作者大衛(wèi))、《XVID中文設(shè)置全釋1.3+》以及DOOM9.org的相關(guān)英文資料。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的xvid 详解 代码分析 编译等的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言中可以定义变量吗?怎么定义?有局
- 下一篇: dotNetCharting使用总结