【mpeg4】xvid參數分析

###Date: 2018.3.24php

===============================================================html

1.   Xvid參數詳解linux

衆所周知,Mencoder以其極高的壓縮速率和不錯的畫質贏得了不少朋友的認同!

原來用Mencoder壓縮Xvid的AVI都是使用Xvid編碼器的默認設置,如今我來給你們沖沖電,講解一下怎樣使用Mencoder命令行高級參數製做Xvid編碼格式AVI影片。通過測試,能夠絕不誇張的說:在減少50%的文件體積同時可以保持原有畫質!

你們平時用WisMencoder壓縮電影的時候也許會感受到雖然它速度飛快,可是關於Xvid編碼器的設置卻少得可憐!並無徹底發揮出Xvid編碼的優點! 

程序員

這裏僅僅講解WisMncoder的手動參數,其餘設置還需你們本身完成。壓縮過程當中的視頻碼率建議不要超過192Kbps(由於對於加入了手動參數的Xvid編碼器,畫質提高是至關明顯的),強烈建議用2-Pass壓縮!

首先介紹一下這些高級參數的做用:

cartoon——卡通模式
vhq=4——VHQ MODE,有0-4五個值,越大畫質越好,可是編碼速度越慢
chroma_me——動態檢索
max_key_interval——最大關鍵幀距離
Quant_type=mpeg——量化矩陣,Mpeg模式,若是壓縮時去掉這段就默認量化矩陣爲H.263
trellis——高質量量化模式
GMC——全域動態補償
qpel——四分之一像素精確動態補償(若是使用了該功能則可能下降解碼速率,建議不用)
bvhq=1——在B幀上啓用VHQ
lumi_mask——加大畫面明暗部分壓縮率(通常不用,有時會致使畫面失真)
greyscale——使用灰度,可是便出來的畫面是黑白的(通常不使用)
interlacing——隔行處理,適用於交錯片源(通常不使用)
chroma_opt——色度優化

Quantization量化選項(關鍵的關鍵就在這裏!)
量化器級別(quantizer level)即Q值越高畫面細節越豐富,可是在低碼率下越高的量化器級別,會帶來越低的畫面質量,Q 值越小,質量越好,碼率越大;Q 值越大,質量越差,碼率越小。(實際上,它的原始概念更復雜,咱們乾脆簡單地認爲1就是100%原質量,31就是1/31的原質量好了)。P-frame(即將來單項預測幀)建議設置在1--15之間,(它的做用是隻儲存與以前一個已解壓畫面的差值。即僅僅描述它與前一幀的區別)。I -frame(即關鍵幀)的Q值只用能做用於2pass-second壓制上,在VirtualDub被標示爲 [K],關鍵幀是構成一個幀組(GOP, Group of Picture)的第一個幀。I-Frame 保留了一個場景的全部信息(Keyframe原意是指能夠單獨解碼、用於同步的 frame,不過在MPEG系統中只有I-frame有這個特性,由於BF和PF都是預測幀,要靠I-Frame來還原)。B-frame(即雙向預測幀)除了參考以前解壓過了的畫面外,亦會參考後面一幀中的畫面信息。這三個設置的範圍都是1-31,應該注意的是在場景昏暗的條件下不要讓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                   快速二次線性(默認)(速度較快)
1                   二次線性
2                   二次立方(質量很好)
3                   實驗中
4                   最短距離 (bad quality)
5                   區域
6                   亮度二次立方 度二次線性
7                   高斯
8                   sincR
9                   lanczos(速度較快,並且畫面銳利)
10                   雙三次樣條曲線



實際應用舉例:


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的手動參數中的視頻編碼處,如本樓底部圖片:

而後再把 -sws 9 參數添加到視頻濾鏡處便可!記得-sws 9前必定加個空格,要不編碼器不會啓動!

固然你也能夠本身摸索適合的方案,作出效果更佳的方案!

Xvid大概介紹:(我的認爲XVID編碼比DIVX編碼的畫質更好,故只講XVID的參數。瞭解如下內容對轉換影片有必定幫助,尤爲是要放在硬盤上用PC觀看的視頻,固然對轉換成手機觀看的影片也是有好處的,使你不至於盲目的轉換)
                             (此文是參照電腦雜誌上的介紹而寫,在此感謝寫出那篇文章的做者。所涉及到的圖片是本身抓的,文字也是一個一個字打出來的,並不是從網上轉抄,我無非是想讓有興趣於此道的朋友更多的瞭解xvid這個編碼器)
若是在網頁上看不太清楚的圖片,請下載到我的電腦上查看
xvid有兩種編碼方式:single pass和twopass
single pass模式編碼簡單,速度也快,但最終效果不如twopass。
twopass就是視頻壓制須要通過兩次編碼,分別爲twopass-1st pass(簡稱1pass)和twopass-2nd pass(簡稱2pass)
1pass時,編碼器會用最高質量編碼採集可供第2次運算參考的畫面信息,而在2 pass時。編碼器會根據第一次壓縮得到的信息和用戶指定的文件大小,自動分配比特率,使須要高流量的運動畫面分配到更多的空間,更高的比特率來保證畫面質量。相對的,對於那些不包含太多運動信息的靜態畫面則用較低的比特率。追求畫質的朋友固然會選擇這種方式,但運算比single pass更費時。

接下來介紹一些基本概念:
Q值——量化值,它被用來描述1幀的質量,每幀都有一個Q值,取值範圍在1-31之間。Q值越小,畫質越好,比特率越大
I-frame——關鍵幀,常被縮寫爲IF。關鍵幀是構成一個幀組的第一幀。IF保留了一個場景的全部信息
P-frame——將來單項預測幀,縮寫爲PF,只儲存與以前一個已解壓畫面的差值
B-frame——雙向預測幀,縮寫爲BF,除了參考以前解壓的畫面之外,也會參考後一幀的畫面信息


第一步:Profile@Level(框架級別)設置
選擇Profile@Level旁的more按鈕來進行框架設置。Profile@Level裏方案的層級越低,編碼的比特率及分辨率限制的越多。在製做 DVDrip時通常選擇AS@L5或者unrestricted(不限定比特率,讓編碼器自行分配)。我在製做手機影片時一般選用AS@L5,由於可選擇的方案更多,並且比特率可本身隨意調節,只要手機能跑的動就行!!
(注意:在single pass模式下,Profile@Level的設定無效,由編碼器自行分配比特率) 



第二步:Encoding type(編碼類型)設置           (這裏是重中之重)
第1種方式:
single pass,求快能夠用這種一次性編碼來壓縮視頻。但由於每幀的壓縮率相同,流量自行分配,因此壓縮後的視頻容量沒法控制。 single pass有Target quantizer和Target bitrate兩種模式,在主界面的Encoding type裏先選擇 single pass,再點擊左下方的Target XXX按鈕在兩種模式中進行切換
名詞解釋:
Target bitrate——目標比特率模式。選擇平均比特率編碼,相對容易控制文件大小。
Target quantizer——目標Q值模式,採用動態比特率編碼。設置爲「1」是最高質量,31是最低質量。設置爲2是容量與效果的最佳比,但文件體積很大,能夠設置小一點的數值,例如2.5,若是不肯定,能夠按主界面上的「calc」按鈕計算目標容量大小(詳細的計算方法請看下一節)


如何用calc計算容量:
Target size:目標容量的大小,舉例來講,若是咱們想將視頻容量控制在1CD之內,因爲1M等於1024KB,因此其值不能高於716800KB。
subtitles:選擇此項能將外掛字幕的大小歸入計算
container:按照你想製做的最終視頻格式選擇
video:設定視頻長度及fps
Audio:設定音頻格式 


第2種方式:
爲了保證視頻的質量,不少時候咱們會選擇twopass模式來壓縮視頻
step 1:
在主窗口的「Encoding type」下拉菜單中選擇1pass模式,再點擊旁邊的more按鈕。在彈出的窗口中勾選 「Discard first pass」(不輸出第一次運算結果)不然可能生成一個高達幾GB的無用文件。 「full quality first pass」是指優質進行1pass,一般這是不必的,這樣反而會下降1pass的編碼速度



step 2:
再返回到主窗口,在「Encoding type」下拉菜單中選擇2pass模式,點擊旁邊的more按鈕進行設置。
首先點擊「stats filename」這一欄的按鈕,選擇在1pass編碼時生成的*.pass文件。


以上介紹了兩種編碼方式,如今講一下視頻的優化:
01.Advanced Options:
Motion search Precision(運動檢索精確度):設定運動檢測的精密度,數值越高,文件轉換時間越長,建議選用「6-ultra High」
VHQ mode(VHQ模式):根據人類視覺特性進行建模,能夠使肉眼可分辨的區域壓縮的好一點,從而提高肉眼所見部分的視頻質量。若想效率與質量兼顧,能夠將VHQ設置爲1,若想求得最佳畫質則能夠將VHQ設置爲4
Use VHQ for bframes too:對BF也使用VHQ模式
Use chroma motion:使用chroma(色度)信息來動態計算,雖然會增長編碼時間,但能夠有效地防止色塊和亮塊,建議選擇
Turbo:開啓BF時能夠提升編碼速度,但會下降一點畫質,不建議選取
Frame drop ratio(丟幀率):保持爲0,由於咱們但願每一幀都被編碼
Maximum I-frame interval:最大IF幀距,通常爲幀率的10倍。例如一段視頻的幀率爲24,則該處就填寫240,最好是維持爲240,這樣可確保每240幀就會有一個IF。若是場景變換偵測出須要插入IF的幀數小於這個值的話,它就會從新計算。


02.Quantization(量化)設置:
設定IF/PF/BF最小及最大Q值,從XVID1.1開始,它的流量控制作的很好,在比特率足夠的情形下,不會出現太高的Q值,保持默承認防止目標容量超出或者小於設置的狀況。但在single pass模式下設定Q值是無效的
Trellis quantization:在2pass模式下能夠提高畫質,但在single pass模式則會使畫質有一些降低,容量也有所減小 


03.Debug設置:
Performance optimizations:性能優化,能夠選擇特定的cpu指令集優化,建議選擇第一項
Fourcc used:默認值是xvid,改變此設定可讓你使用divx等其餘播放filter來播放,但有時會不兼容,建議不修改此項設置 



04.Zone options設置:
zone其實就是將影片劃分爲幾段,分別爲這些片段定製一些設置(此項設置用於轉換pc上觀看的影片較多,在此不做細講)
小提示:若是在片頭之類非重要片斷使用Quantizer模式,應該在1pass中也使用相同的設置。而若要用Weight模式則只須要在2pass中設置便可 


至此,xvid的參數設置已講解完了,有興趣於此道的朋友能夠多做嘗試,找出適合你的具體參數。
我先獻醜了,把本身的參數設置提供給你們
手機機型:QD
片源:通常都是網上下載的AVI文件
轉換軟件:TMPGEnc3XP
視頻編碼器:xvid
編碼參數:幀率:15fps   ,碼率:128-160kbps(動畫片的碼率有時更小) 編碼方式:single pass(上傳到論壇的視頻都是用的 single pass,主要是爲了節省時間,並且手機不能支持較高的碼率,故我的感受在此single pass和twopass差異不大。若是用於 pc上,仍是建議用twopass) 其他的設置均是參照上文
音頻編碼:MPEG Layer-3         32000hz   ,48kbps   CBR   ,Mono
濾鏡:只在加字幕文件的時候用到,通常是製做的SRT字幕,濾鏡是Text Sub2.23
若是有朋友常常用DIVX編碼,請發個帖子做一下詳細的介紹,你們交流一下經驗!!!


2.  web

Xvid命令行高級參數詳解

Xvid編碼高級參數:
壓縮過程當中的視頻碼率建議不要超過192Kbps(由於對於加入了手動參數的Xvid編碼器,畫質提高是至關明顯的),強烈建議用2-Pass壓縮!
首先介紹一下這些高級參數的做用:
cartoon:卡通模式,非卡通則去掉此參數
vhq=4:VHQ MODE(動態搜索算法),有0-4五個值,越大畫質越好,可是編碼速度越慢 
me_quality=6: 動態搜索精度(6爲精度最大值)
chroma_me:動態檢索 ,色彩動態評估
max_bframes=0 :B幀最大間距,設爲0表示關閉B幀功能
profile=XXX :小於等於15fps設置爲sp3,大於15fps設置爲asp3
max_key_interval=XXX :最大I幀(關鍵幀)間隔,通常設置成幀數的10倍
Quant_type=mpeg:量化矩陣,Mpeg模式,若是壓縮時去掉這段就默認量化矩陣爲H.263 
trellis:高質量量化模式 
GMC:全域動態補償 
qpel:四分之一像素精確動態補償(若是使用了該功能則可能下降解碼速率,建議不用) 
bvhq=1:在B幀上啓用VHQ 
lumi_mask:加大畫面明暗部分壓縮率(通常不用,有時會致使畫面失真) 
greyscale:使用灰度,可是便出來的畫面是黑白的(通常不使用) 
interlacing:隔行處理,適用於交錯片源(通常不使用) 
chroma_opt:色度優化 ,色彩最佳化

Quantization量化選項(關鍵的關鍵就在這裏!)
   量化器級別(quantizer level)即Q值越高畫面細節越豐富,可是在低碼率下越高的量化器級別,會帶來越低的畫面質量,Q 值越小,質量越好,碼率越大;Q 值越大,質量越差,碼率越小。(實際上,它的原始概念更復雜,咱們乾脆簡單地認爲1就是100%原質量,31就是1/31的原質量好了)。P- frame(即將來單項預測幀)建議設置在1--15之間,(它的做用是隻儲存與以前一個已解壓畫面的差值。即僅僅描述它與前一幀的區別)。I- frame(即關鍵幀)的Q值只用能做用於2pass-second壓制上,在VirtualDub被標示爲 [K],關鍵幀是構成一個幀組(GOP,Group of Picture)的第一個幀。I-Frame 保留了一個場景的全部信息(Keyframe原意是指能夠單獨解碼、用於同步的frame,不過在MPEG系統中只有I-frame有這個特性,由於BF 和PF都是預測幀,要靠I-Frame來還原)。B-frame(即雙向預測幀)除了參考以前解壓過了的畫面外,亦會參考後面一幀中的畫面信息。這三個設 置的範圍都是1-31,應該注意的是在場景昏暗的條件下不要讓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 快速二次線性(默認)(速度較快) 
1 二次線性 
2 二次立方(質量很好) 
3 實驗中 
4 最短距離 (bad quality) 
5 區域 
6 亮度二次立方 度二次線性 
7 高斯 
8 sincR 
9 lanczos(速度較快,並且畫面銳利) 
10 雙三次樣條曲線

實際應用舉例:
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的手動參數中的 視頻編碼處,而後再把 -sws 9 參數添加到 視頻濾鏡處便可!記得-sws 9前必定加個空格,要不編碼器不會啓動!固然你也能夠本身摸索適合的方案,作出效果更佳的方案!


3. 算法

詳解Xvid編碼格式

XviD簡介  XviD是當宿世界上最經常使用的視頻編碼解碼器(codec),並且是第一個真正開放源代碼的,經由過程GPL協 
  議發佈。在良屢次的codec鬥勁中,XviD的默示使人詫異的好,整體來講是當前最優異、最萬能的codec。 
  編纂本段XviD的主要性  近五年來,XviD一貫是世界上最風行的視頻編碼器。估量在BT(BitTorrent)和eMule上至少90%的片子、電視劇是用XviD壓制的。但是在中國的情形有些特殊,由於中國的影視發佈者喜歡用RMVB名目。
  編纂本段文件擴展名  XviD的文件擴展名可因此AVI、MKV、MP4等。須要聲名的是,僅從擴展名並不能看出這個視頻的編碼名目。比如說一部片子是.avi名目,但是實際上的視頻編碼名目可因此DV Code,也可因此XviD或者其餘的;音頻編碼名目可因此PCM、AC3或者MP3。
    MP4和MKV名目比AVI更前進前輩,支持更多的功能,比如字幕。AVI視頻的字幕須要另外的SRT文件。當前國外絕大大都的影視資源都是AVI名目。 
  編纂本段XviD文件的大小  網上的視頻資源大都採用固定碼率(CBR),因此文件大小很不變,並不會由於資源發佈者的差別而改變。 
    1. 一集43分鐘的劇集,文件大小爲350MB左右。按照每季22集計較,一季美劇須要7.5 GB的硬盤空間。 
    2. 一集22分鐘的劇集,文件大小爲175MB左右。 
    3. 片子文件的大小由片子的長度抉擇。 
  編纂本段XviD影視資源的文件名寄義詮釋  國外電視劇建造組發佈的歐美電視劇,其文件名的具體寄義 
    劇名.S季數E集數.集名(有的沒有標).旌旗燈號採集源.音頻編碼(默認的MP3能夠不標).視頻編碼-建造組 
    例如: 
    Prison.Break.S02E01.Manhunt.HR.HDTV.AC3.5.1.XviD-DiMENSION 
    劇名 - Prison Break 
    S季數 - S02 
    E集數 - E01 
    集名 - Manhunt 
    旌旗燈號採集源 - HDTV 
    音頻編碼 - AC3.5.1 
    視頻編碼 - XviD 
    建造組 - DiMENSION 
  編纂本段XviD技術的降生過程  在1998年之前,PC 上獨一能用的 MPEG-4 編碼器是由微軟所開發的,蒐羅 MS MPEG4 V一、MS MPEG4 V二、MS MPEG4 V3 的系列編碼焦點。其中前面兩種均可以用來建造 AVI 文件,至今都做爲 Windows 的默認組件。但是 V1 和 V2 的編碼質量都還不太好,直到 MS MPEG4 V3 預備,畫面質量有了光鮮較着的前進。但是微軟卻抉擇將這個 MS MPEG4 V3 的視頻編碼焦點封鎖在 Windows Media 流媒體技術――也就是咱們熟知的 ASF 名目之中,再也不能用於 AVI 名目。ASF 名目固然有一些益處,但是過於封鎖甚至不能被編纂,惹惱了天不怕地不怕的片子駭客。很快便有小組改削了微軟的 MS MPEG4 V3,解除了不能用於 AVI 名目的限制,並開放了其中一些壓縮參數,由此,也就降生了咱們今天所熟悉的 MPEG4 編碼器 DivX;-)3.11。
    DivX廣泛風行,成爲 DVDRip 的標準,問題是,它的根本技術是犯警盜用微軟的,只能在地下里傳佈卻上不了檯面,沒法進行更廣泛的產物化,更沒法出產硬件播放機。在這種情形下,一些精曉視頻編碼的工程師 (蒐羅原 DivX 3.11 的開發者) 成立了一家名爲 DivX Networks Inc. 的企業,簡稱 DXN。DXN 創議一個開放原始碼項目 Project Mayo,方針是開發一套全新的、開放原始碼的 MPEG4 編碼軟件。出格是徹底合適 ISO MPEG4 標準的 Open DivX CODEC 吸引了良多軟件高手介入,並很快開發出Open DivX 編碼器和譯碼器原型,以後又開發出更高機能的編碼器 Encore 2 等等。這一時代,首要編碼工做是 DXN 的人在作,而良多技術難關的解決得力於來自開放源代碼社會的輔佐。
    就在一切都看]起來進展順遂的時辰,好戲上演了。Project Mayo 固然是開放源代碼,但不是依據 GPL (通用公共許可證,一種開放源代碼項目中經常使用的保障自由使用和自由改削軟件權力的和談)而是LGPL和談(LGPL和談:次級GPL(Lesser GPL),與GPL同樣,是一種公共許可證。與GPL的最大差別是它許可私有。)。DXN 在設計受權和談時留了一手,2001 年 7 月,就在 Encore 2 基本成型,差很少能夠產物化的時辰,DXN 另搞了一個 DIVX 網站,封鎖了原始代碼,發佈了他們本身的 DivX 4。DivX 4 的根本就是 Open DivX中的 Encore 2,但操做了 DivX 的商標,出乎意料的擺了全部人預料。由於DXN 再也不介入,Project Mayo 陷於擱淺,Encore 2 的原始代碼也被 DXN 從服務器上撤下。經由激烈的爭論,DXN 固然承認 Encore 2 在法令上是開放的,但仍然拒絕把它放回服務器。開源社區就這樣被狠狠地涮了一回。
    Open DivX 尚不能實際使用,而 DivX 4 (以及後續的收費版本DivX 5) 等成了私有財富,良多酬報打破微軟壟斷而無償支出的智能和勞動僅僅是輔佐了 DXN 企業發家。這種功效固然是不能被接管的,是以,整個 0dayz 組織永遠的拒絕了 DXN 企業的 DivX4/5,而原 Open DivX 開發組中的倖存者,逐漸從頭聚攏開發力量,在最後一個 Open DivX 版本的根本上,成長出了 XviD。
    浩劫不死的 XviD 到此刻又渡過了近 1 年時刻,它繼承併成長了 Open DivX Encore 2,機能得到極大提升,被認爲當宿世界上速度最快的 MPEG4 CODEC。XviD重寫了全部代碼,並吸取前車可鑑遵守 GPL 發佈 (注重再也不是 LGPL,因此誰如果想用它作成產物而不開放源代碼是犯警的)。但是,由於 MPEG4 還存在專利權的問題,因此 XviD 只能模擬 LAME 的作法,僅僅做爲對若何實現 ISO MPEG-4 標準的一種研究交流,網站上只供給原始碼,如果要使用就要本身編譯原始碼或者到第三方網站下載編譯好的可運行版本。
    想當初Gaj 之流的幾個傢伙搞 Open DivX 的時辰,一預備是很像一個像模像樣的開放原始碼項目,良多人都被吸引曩昔一路開發,測試。直到後來,那幾個傢伙一晚上之間露出騙子的本來臉孔了,把 Open DivX 的功效一股腦帶走,釀成了封鎖源代碼的 DivX4,爾後進一步釀成此刻的收費的 DivX 5 了。本來很好的 Open DivX 被逼流產,但是也就促成了今天 XviD 的降生、成長和壯大。此刻的 XviD 更能夠說超越了 DivX 5,以更好的質量,更強的功能佻達戰着新一代的 MPEG4 應用沙場。
  編纂本段XviD版本的歷史  1.0 2002年2月17日 初版 ,初度發佈 
    1.0 2002年2月28日 大量的改進和更切確地詮釋 
    1.1 2002年3月2日 剖析澄清了良多概念 
    1.2 2002年3月4日 加進量化矩陣(quantization matrix),移去量(removed quant). 柔和(smoothing) 技術
    1.3 2002年3月8日 關於 Nic's XviD Directshow Filter 的詳釋 
    1.3+ 2002年7月23日 按照Nic's XVID Codec校訂填補部份內容 
  編纂本段豐碩多彩的技術特徵  DivX 跟 XviD 採用不按時設立關頭畫面來改進原先固按時刻關頭畫面所形成的動態畫面畫質欠安的氣象,而 2 PASS 的壓縮模式使畫質加倍滑順,基本上兩種編碼的下場差別不大,但是就同畫質的文件大小來講 XviD 更省容量,一部1.5小時的片子,DivX 編碼的大多爲兩片 CD,而 XviD 編碼的大多僅需一片 CD 容量便可!
    DivX 的版本從 2,3,4 一貫跳到 5,本來長短盈利供給網友使用,後來自 DivX 後預備當成商業軟件,其中有一部份就分開再行開發出非盈利的譯碼軌範,那就是XViD。(概略這也就是爲什麼要把 DivX 倒過來寫的緣由!)
    不只 XviD 的出線本身就是開放源代碼社會中典型的一部教科書,它在技術上的各種新特徵也都是貨真價實、老少無欺的。對於一個第二代的 MPEG4 視頻編碼焦點來講,XviD 的各種算法設計都有表明性的前進前輩意義。 多種編碼模式  除了最原始單重估定碼流壓縮 (1-pass CBR) 以外,XviD 供給了蒐羅 : 單重質量模式動態碼流壓縮、單重量化 (Quantization) 模式動態碼流壓縮、和蒐羅外部節制和內部節制的兩種雙重 (2-pass) 動態碼流壓縮模式。XviD 顯然是當前 PC 上的MPEG4 編碼焦點中,可選模式最多的視頻編碼。 
    其中出格是雙重 (2-pass) 動態碼流壓縮模式,經由過程檢測畫面行爲幅度以最優化的體例曲線分配畫面量化幅度,使佈滿活性元素的視頻影片能夠在佔用空間和畫面質量之間得到最佳的平衡。而單重量化Quantization) 模式動態碼流壓縮,能夠高速地一次性生成可控畫面細節的動態碼流視頻檔案,在較少的壓縮時刻價錢之下,能夠得到較不變的畫面細節質量,這都是純摯的 DivX 3.11 所不具備的優異功能。 量化 (Quantization) 體例和規模節制  量化 (Quantization),簡單的說就是在編碼時經由過程對時刻或空間上相鄰的畫面單元進行同化、恍惚細節的水平,是對畫面質量最基本的節制身分。XviD 不只供給了標準的 MPEG 量化體例,還特地供給了更適合低碼流壓縮的 .h263 量化體例。並且XviD 還能夠在雙重 (2-pass) 運算時,按照對畫面信息的綜合剖析,動態的抉擇某段場景的畫面量化體例,真能夠說是爲收集媒體檔案傳佈中,空間與畫質的平衡而考慮,設計貼心得抵家了。
    除了量化體例選擇,XviD 還供給了壯大的對壓縮過程當中的量化幅度的規模節制。用戶能夠選定壓縮時許可以使用的量化幅度規模。例如設定一個量化的上限,就能夠避免可能出線的畫質大幅降低的情形。 行爲偵測和曲線平衡分配  對畫面逐幀進行行爲偵測,以及對全片斷的行爲偵測功效進行剖析後,從頭以曲線平衡分配每一幀的量化幅度,以作到 : 須要高碼流的行爲畫面能夠分配更多空間、更高的碼流、更低的量化幅度來連結畫面的細節; 而對於不包含太多行爲信息的靜態畫面,則消減分配預算。這種把好鋼用在刀刃上的作法,是 XviD 作爲第二代MPEG4 編碼的焦點內容。 
    XviD供給了多極行爲偵測精度,蒐羅半像素插值 (half pixel interpolation) 的技術以 16x16 像素的微區塊爲單元標示上行爲向量; 以及 4 分行爲向量 (inter4v motion vectors) 的體例,以 8x8 的像素區塊爲單元更詳盡的記載行爲向量以供二重剖析。 動態關頭幀距  動態關頭幀距是另外一個 XviD 所具備的,在空間和畫面之間得到最大平衡的技術。咱們知道在視頻壓縮中不是每一幀都記實着全數的畫面信息,事實上只有關頭幀記實着完整的畫面信息,爾後續的 P 幀 (P-Frame) 僅僅是記載下與以前一幀的差值。如果關頭幀之間的畫面轉變很大,則會華侈珍貴的空間在 P-Frame 上; 而加進把轉變很大的那一幀記其實關頭幀裏,那麼由於後續的幀再也不有更大的轉變,就能夠節約P 幀所需的空間。是以,按照畫面鏡頭切換和行爲幅度來變換關頭幀的位置,對於視頻壓縮下的畫面質量提升,就有着事半功倍的下場。 心理視覺亮度改進  除了基本的 MPEG4 編碼外,XviD 還供給了很多附加功能。其中典型的就是心理視覺亮度改進。這個功能可能經由過程去除肉眼不能分辯的亮度旌旗燈號和亮度差別,來提升壓縮效率。遺憾的儘管這個設計非常的有創意,但是當前的實際應用中卻會致使肉眼可見的畫面質量降低,還等候在往後的版本中能夠有所改良。 演人員表選項  另一個貼心的設計是片子專用的"演人員表選項"。這個功能能夠在用戶指定的某些不須要保留細節的段落處 (例如片子的演人員表),設定下極低的碼流。甚至壓縮到正片碼流的10%如下,能夠節約很多空間,設計的也非常的貼心。 外部自界說節制  除了 XivD 本身的內部曲線分配節制體例外,XviD 也供給了外部的開放接口。許可以使用者略過 XviD 本身的編碼剖析焦點,操做第三方供給的外部剖析對象,例如Gordian Knot,生成的分配好的節制檔案,再交還 XviD 作最終的二重運算壓縮。這種體例擴展了 XviD 的可用性和用戶節制水平,由於像 Gordian Knot 這種軟件甚至能夠作到由用戶節制每一幀的量化幅度和碼流分配額度,可以爲高級應用供給更多的可能性。 行爲向量加速編碼  XviD 還有專爲提升編碼效率而開發的設計,就是記載下畫面的行爲向量信息至一個 Log 檔案中。再在二重運算壓縮時經由過程直接讀取該檔案中的信息,節約下對行爲向量信息的一再運算,大幅提升編碼速度。 畫面優化譯碼  不只在編碼上 XivD 擁有壯大的功能,在譯碼時的畫面優化方面,XviD 也有良多新的建樹。例如 "Horizontal deblock (Y)" 能夠柔化水平標的目的的亮度馬賽克; "Horizontal deblock (C)" 能夠柔化水平相的色度馬賽克; "Deringing(Y)" 能夠柔化環狀亮度色斑; "Deinging (C)" 能夠柔化環狀色度色斑; "mosquito" 能夠削減畫面中的蚊狀噪斑。並且,這些 XviD 的畫面優化手段都是可選的,是以只要封鎖幾個不是那麼須要的選項,就能夠在低配置的PC機上播放。 正在開發的 B 影格  另外一個 XviD 中惹人注目的技術成長,就是 B 影格。咱們知道 I 影格就是關頭影格,P 影格在關頭影格之間,只儲存與以前一幅已解壓畫面的差值。B 影格與 P 影格的事理同樣,但除了三者以前解壓了的畫面外,亦會參考後面一影格中的畫面信息。是以 B 影格解壓出來的畫面比P影格就要來的好。
    以前的 MPEG4 編碼焦點都僅僅使用了 I 影格和 P 影格存儲畫面。如果能在此根本上使用 B 影格技術,天然能夠在畫質和壓縮比上更上一層樓。當前 XviD 已經爲開發人員供給了測試性質 B 影格體驗版的 XviD 編碼焦點,相信不久的將來,XviD 就能夠把 MPEG4 編碼的優點闡揚到極致,成爲網上視頻記實名目的牛耳。 關於DivX發源的小知識  這種名爲DivX 的技術,由一個27歲的法籍影音發燒友羅達(Rota)及電腦黑客基爾(Gej)締造出來得。
    本來DivX所採的技術並不是這兩位仁兄發現的,他們只但是是個**天才。跟着Windows的大行其道,微軟開發了MPEG-4技術,可以將視頻影像文件容量壓縮到很小。羅達與基爾將程式重寫一遍,但將其改名爲DivX,且放在網上隨意任人下載。
    微軟聲稱將對全部敦促DivX成長的人、企業做出究查。但是羅達正周全申請將他們的DivX正當化。由於DivX雖然是從Windows的發現出來的,但卻沒有用過任何微軟的技術。並且,他更與美國一些技術人士及財經人員開會,和組新企業 ProjectMayo全力推廣DivX。
    其實,DivX是視頻DVD的另外一種保留體例,要靠DeCSS軌範(注)才能作到。由於DVD本身有防複製的標識表記標幟,讓DVD不能隨便複製到電腦裏,但DeCSS能將它解碼,令其能夠複製,壓縮成DivX片子。針對這一作法,各大片子商立即採納步履,防止DeCSS外流及散播,但爲時已晚,DeCSS在Yahoo!、Google上都能找到。
  若何播放XviD視頻  對於大大都用戶來講,只要安裝暴風影音或者K-Lite Codec Pack就能夠順遂地播放XviD視頻了。其實這些播放軟件大都是用ffdshow來解碼的,因此在播放視頻的時辰,Windows義務欄會呈現ffdshow的圖標。


4.小程序

XVID內嵌時的參數測試

這是一個XVID編碼測試,主要爲RAW爲AVI的內嵌使用。目標是個頭小而畫質好。缺一不可。針對其中比較重要的Q值、B值、single pass與Twopass作了較爲密集的測試,其餘選項儘量採用了默認值,以便結果更爲客觀。另好比「Begin with keyframe」等幾個少數主要是爲修正兼容性的或者色彩優化的選項則被勾選。 概念部分主要參考並拷貝了《[SilkyBible] 視頻知識系列》與《XVID 1.0參數詳解21b.pdf》。說實話,我看的好痛苦@0@,並且爲了便於理解。所以,下面說明或推測時都會以比較極端的例子來講明。若是有理解誤差的地方,你們請無視而pass。而後順帶轉告一下偶吧。

  先了解一些必要的概念。看完概念後能夠直接看綠色字體的結論。而後反過來看分析。這樣思路會較爲清晰。性能優化

  Q 值——Q 值是指量化值。顧名思義,Q 值用來描述一個幀的質量,每一個幀都有Q 值。該值取值範圍是1~31。Q 值越小,質量越好,碼率越大;Q 值越大,質量越差,碼率越小。(實際上,它的原始概念更復雜,咱們乾脆簡單地認爲1就是100%原質量,31就是1/31的原質量好了)。具體到一個片子的某一個幀的Q的取值:該值由編碼器編碼的時候根據該幀的顏色、與跟前/後幀的動態關係等自動肯定,例如若是編碼器認爲該幀很重要,就會提升Q值來壓制,以得到更高的質量。固然咱們也能夠指定它的取值。服務器

  IF——I-frame 的縮寫,即關鍵幀,在VirtualDubMod被標示爲 [K] 。關鍵幀是構成一個幀組(GOP,Group of Picture)的第一個幀。IF 保留了一個場景的全部信息(Keyframe原意是指能夠單獨解碼、用於同步的frame,不過在MPEG系統中只有I-frame有這個特性,由於BF和PF都是預測幀,要靠IF來還原)。具體例子:電影一般1秒鐘播放24幀,因此它1秒鐘有24幅不一樣圖象。設想有24幅鳥的圖象,在第一幅裏鳥在圖的左側,而後它逐漸向右移動。在第24幀鳥已經在圖象的最右側了。設想這24幅圖象以足夠快的速度按順序播放,那麼人眼看來就好象這鳥從屏幕的左側飛到了右側。併發

  PF——P-frame 的縮寫,即將來單項預測幀,只儲存與以前一個已解壓畫面的差值。即僅僅描述它與前一幀的區別(雖然描述的不甚準確但相信理解含義並不是難事)。好比說有一幅一隻小鳥飛過一片有云彩天空的圖象,這是個關鍵幀(keyframe)。而後咱們能夠使用I幀來這樣描述P幀:將小鳥向左和下方各移動一英寸。

  BF——B-frame 的縮寫,即雙向預測幀,除了參考以前解壓過了的畫面外,亦會參考後面一幀中的畫面信息。B 幀具體怎樣描述預測變化很複雜,下面以一個不很恰當的動畫例子來講明一下它最主要的存在效果:

  若是一個片子是24fps的,總長度爲25分鐘、那麼它的總幀數爲25min*60s/min*24fps=36000幀。這個是固定值。能夠全是IF,也能夠是IF混合着PF,或者IF、PF、BF都有。可是IF不能沒有,都靠它還原呢。哪一個個數增多,另外兩個就要相應減小。所以,多使用PF能夠不減畫質下減少體積,加入BF會進一步減少體積。至少理論上是這樣的。(BF是雙向預測,主要記錄變化值,所以能夠少記錄信息(事實雖並不是如此,但就一般的效果來講記錄量會減小,而PF是單向,所以記錄量一般來講會多些))。除了壓縮率之外,B 幀對畫質的影響也是有的,由於 B 幀這種參考先後畫面的特性,等於有內插(interpolation)的效果,因此能夠減小噪訊。

  概念部分終於說完了。OK,下面測試數據正式粉墨登場。請看分析所用的截圖:這是內嵌時的狀態圖。當內嵌完成後把這個最終狀態截取。片長1分32秒,30.303 fps,共計2815幀。內嵌所用的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)
##亮度濾鏡(色度,飽和度,亮度,對比度),通常把亮度設爲16-18就很亮了##==================================================================

  測試用源文件相關信息(草莓100%的OP),我的認爲它各方面好比動態、畫面清晰度等均屬中等:

     文件 : 39 Mb (39 Mb), 總長度 0:01:32, 類型爲 AVI, 1 音頻流, 品質 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, 支持

====== 插入一點說明: =====

  常見的DVD影碟的數據流的速率(bitrate)可以達到5000Kbps~10000Kbps,而目前常見的DVDRip一般具備1200Kbps~2000Kbps的速率,此時DVDRip的視覺效果與AVI文件的壓縮比可以達到比較理想的平衡狀態。若是追求優秀的視覺效果,咱們能夠將速率提升到2000Kbps;若是但願獲得體積更小的AVI文件,能夠使用小於等於1000Kbps的速率。另外DVDRip一般採用的採樣率爲48kHz,音頻速率爲96Kbps或128Kbps的MP3音頻。

  籠統地說,XVID比DIVX的壓縮率更高,所以,一樣質量的幀,XVID能夠用更小的體積來達到。另外,不管DIVX也好, XVID也好,它們本來的用途是把DVD壓縮成DVDrip。當咱們拿到AVI時,已是壓縮過的啦。那些所謂的2pass/1pass比值等實際上是針對DVD to DVDrip而考慮,爲了提升2pass/1pass比值而縮小畫面大小也是爲了DVD to DVDrip而考慮。所以當咱們內嵌AVI時,非特殊目的,以拿到與原AVI文件一樣畫質爲最好。低了實際上是再壓縮,除非你要求更小的體積。所以,用XVID重編碼時,強烈建議把目標碼率儘量設置成原文件碼率。

  這一段不太容易理解目的所在,我再籠統地進一步說明:假如如今有個DVD須要壓縮,咱們首先用XVID的Twopass的Twopass – 1st pass高質量預設採樣量化值「w1」跑一遍,看看最大能作成多大的。通常在媲美原畫質的狀況下, XVID能夠把DVDrip壓到原DVD的1/5至1/10的(大體符合5000Kbps壓到1000 Kbps)。若是1pass的結果認爲最大能作到688M,那麼,在壓制700M的光盤時,咱們就能夠把這個結果作成1CD,就把它壓到最大值。可是,有些人就不太方便了,他想獲得更小的體積以節省刻盤成本。好比壓成344M的2張1CD的文件,此時2pass/1pass=344m/688M=50%(呵呵,這裏爲了敘述方便,數字很特別),按照大多數人的畫質要求,過低了,看過原DVD的人會明顯感受到畫質下降了,所以,咱們要提升這個比值,可是,做成80%的550M更是浪費。因此,此時,咱們能夠把畫面大小縮小一點,以下降每一幀所佔的體積。縮小畫面尺寸,使畫面的精密程度提升,使總體的大小降低。假如1個象素點佔1K,那麼720*680確定比640*480畫面來的大。再次1pass獲得了能夠做成最大430M的結果,而後2pass/1pass=344m/430M=80%,較高的比值。該壓縮率下的畫質下降已經很難覺察啦。具體換算我就不說了,這裏主要是爲AVI的內嵌作解說。(所以,這裏給咱們的片源同志提個醒,靠內嵌來修飾缺陷並不徹底可取,爲了保證內嵌質量,請你們儘量的找些高畫質的AVI片源吧。)

  下面是1pass的結果截圖,這裏並不須要看那個1pass狀態文件的——video.pass。(注意一下:這裏1pass認爲最大值爲17M,但設成85%原碼率或者稱爲85%原大小後,目標文件的大小變大了,這是由於在Twopass模式下2pass認爲以Q3爲預設採樣量化值採樣,達到這個碼率才足夠;咱們再看2pass-q3-21m-2086kb-b2.jpg的截圖,雖然設置爲理論上的原碼率,但結果變小了,一樣壓成了1530fbps的。可見這裏2pass優先了預設採樣量化Q=3值,這裏只說Q值,是由於後面有其餘的狀況出現)


  當2pass/1pass的比值低於65%的話,畫質損失會比較容易看出來(儘管這一點不是100%正確)。所以,2pass測試中,對於這個好畫質的臨界值85%特別照顧了一下,雖然它是爲了DVD to DVDri而存在,這裏也給予一些測試好了。而21M的設定則是由於它理論上的幀速近似等於原文件幀速2041 Kbps,故此也特別給予照顧。

文件命名格式及由來(不標明2 pass的均爲single pass模式):

一、2pass-q3-17.8m(85%max)-1661kb.avi
依次爲:Twopass – 2nd pass、預設採樣量化值、2pass/1pass比值85%的理論大小、理論幀速

二、2pass-q3-14.5m(85%max)-1343kb-b2.avi
依次爲:Twopass – 2nd pass、預設採樣量化值、2pass/1pass比值85%的理論大小、理論幀速、使用BF=2

三、2pass-q3-21m-2086kb.avi
依次爲:Twopass – 2nd pass、預設採樣量化值、與原文件一樣幀速的理論大小、理論幀速

四、2pass-q3-21m-2086kb-b2.avi
依次爲:Twopass – 2nd pass、預設採樣量化值、與原文件一樣幀速的理論大小、理論幀速、使用BF=2

五、q2-q3.avi
依次爲:目標採樣量化值、預設採樣量化值。

  另外要說明的是全部不加BF=2的文件的幀個數比大體均爲:IF:PF =72: 2743(72+2743=2815); 全部BF=2的文件的幀個數比大體均爲:IF:PF:BF=70:1172:1573(70+1172+1573=2815)。有變化也是幾個到十幾個幀的變更,能夠忽略不記。這估計是原文件幀結構和XVID的「幀類別使用與壓縮」判斷機制所引發的。 如下測試均BF=2。緣由是有效下降了大小,並可能增進了一點點的畫質,若是使用BF後的文件與不使用BF的文件一樣碼率,想必使用BF的總平均幀質量要比不使用的高,整體質量也就要高。不過是否是屬於無效增大質量呢?頗有可能的。那麼就看看q2-q3-b2與q2-q3的區別:IF單幀最大提升從44273B提升到了44290B,平均大小從20272提升到了20332;PF的單幀最大沒有變化,但分析q2-q4-b2與q2-q4時也提高,因此能夠認爲是軟件偏差,單幀最小也從148提升到了154,平均大小從7432提升到了11768。並且,IF的幀個數並無被改變。這裏的2幀一樣應該是軟件偏差。而發生改變的只有PF的個數。因此能夠認爲使用BF後,IF、PF被總體提高了質量,以保護BF的質量。順帶也就提高了總體質量。

  至於在一樣碼率下,是否是出現無效增大質量呢?若是XVID確實比DIVX的壓縮更具效率,那麼,就確實可能存在不多的無效質量。不過,兩個傢伙能力應該比較接近。那麼也可大體認爲須要碼率接近。雖然其BF威力比DIVX的貌似更大一些。若是原文件也是XVID編碼,那麼就更可認爲碼率要接近。又由於前面的分析,壓縮比是針對DVD to DVDrip的,所以,當前考慮的首要不是再次下降塊頭。並且BF的先後參考性又能夠某種程度上下降噪音。因此就這樣認爲吧。對於這一點,我想還應該有更強的分析工具來肯定判斷,很抱歉,限於能力,不能進一步分析了。若是有哪位朋友知道還請賜教一下。

  如下均以不二次壓縮爲根本。便是碼率保持不變。所有靠攏原幀速:2041kbps。

一、 在single pass模式下:

  當以Q3爲爲預設採樣量化值, BF=2時:目標採樣量化值爲Q值時,q二、q三、q4截圖如出一轍,IF、PF的結果Q值都等於預設採樣量化Q值,BF則還要低2個數量級左右;目標採樣量化值爲目標指定幀速(設爲原幀速)時,2056kb-q3-b2的實際幀速爲1531kbps,比q3-q3-b2的1530kbps僅僅提高了1kbps。看來是「以Q3爲預設採樣量化值」限制了了目標採樣量化值的設定。預設採樣值爲Q3的質量弱於原幀速採樣。

  當以Q2爲爲預設採樣量化值,BF=2時:目標採樣量化值爲Q值時,q二、q三、q4截圖如出一轍,IF、PF的結果Q值都等於預設採樣量化Q值, BF則還要低2個數量級左右;目標採樣量化值爲目標指定幀速(設爲原幀速)時,2056kb-q2-b2的實際幀速爲2072kbps,與q2-q2-b2幀速以及截圖都如出一轍。證明了「以Q2爲預設採樣量化值」則充分知足甚至超過了目標採樣量化值的設定。預設採樣值爲Q2的質量強於原幀速採樣。

  另外從XVID的壓縮算法本質上高於DIVX上來看,高於原幀速的採樣應該屬於無效。因此本輪由2056kb-q2-b2參加半決賽。


  當以W1爲預設採樣量化值時, BF=2時:目標採樣量化值爲Q值時,結果文件的IF、PF、BF的Q值隨Q值增大而成比例增大,所以就以q2-w1-b2(實際幀速爲2072kbps)參賽;目標採樣量化值爲目標指定幀速(設爲原幀速)時,結果文件的實際幀速是1951kbps。兩個比較後,2056kb-w1-b2的IF單幀最大質量(65313B)比q2-w1-b2(63368B)提升了近200B,PF單幀最大質量(87371B)比(70758B)提升了近1300B,BF單幀最大質量(34570)比(24871B)提升了約1000B,另外,不管IF、PF、BF其平均大小卻均降低,說明目標採樣量化值爲Q值限制了XVID的動態壓縮能力發揮。故此預設採樣爲Q2的質量的有效率弱於原幀速採樣。應該屬於無效增大。

  因此更好的 「2056kb-w1-b2」來參加半決賽。

二、 在Twopass模式下:

  以Q值=2爲預設採樣量化值時,BF=2:不管是以大小(設成高與原大小或者低於原大小)仍是以幀速(設成原幀速)做爲目標量化值,狀態截圖均如出一轍,實際幀速均爲2072fbps。看來,2pass下,以Q值=2爲預設採樣量化值時,結果文件實際幀速只與Q值成比例。並且,能夠看出Q=2時,達到了原幀速。爲了驗證這一點,以Q值=3爲預設採樣量化值時,BF=2再次測試,發現截圖一樣如出一轍,幀速降爲1530 fbps。證實猜測成立。那就隨便選了「2pass-2056kb-q2-b2.jpg」出局半決賽。


  以W=1爲預設採樣量化值時,BF=2:不管是以目標大小爲目標量化值的提高(從結果看來,其實質仍是在提高目標幀速),仍是目標幀速的提高,都帶來了實際文件幀速的提高。並且IF、PF、BF的實際Q值也在提高,好比IF: 2pass-w1-23.8m(85%)-2298kb-b2比之2pass-w1-21m-2086kb-b2其Q值範圍雖然爲1-3沒變,但平均Q值從2.23提高到2.06;IF單幀最大63372字節雖然沒變,可是平均單幀大小從24597字節提高到了25725字節。PF的Q值範圍則從2-3提高到了1-3,平均Q值從2.66提高到了2.31;PF單幀最大卻是從68540減少到68472,不過從後面來看,這應該是屬於軟件計算偏差,其平均單幀大小從15119提高到了16828。BF的Q值範圍雖然爲3-5沒變,但平均Q值從4.44提高到4.10;BF單幀最大從21083字節提高到了23319字節,平均單幀大小也從2087字節提高到了2251字節。

  一樣:2pass-2056kb-w1-b2比之2pass-w1-23.8m(85%)-2298kb-b2進一步提高。並且是全面提高,另外,其實際幀速爲2027 fbps。所以,這裏就派2pass-2056kb-w1-b2參加半決賽。


三、 半決賽與決賽:

  上下對比,2056-q2-b2與2pass-2056kb-q2-b1的狀態截圖是如出一轍的。先放棄2056-q2-b2,直接對比2pass-2056kb-q2-b2與2pass-2056kb-w1-b2。比較後:那麼以Q2或者W1爲預設採樣量化值,到底哪個更好?原則上Q1的比Q2的更好,若是隻有少許Q1,彷佛咱們也注意不到,若是把這部分更高碼率的品質稍稍下降一點,補貼給Q2部分,彷佛總體質量會有所提升,而局部稍弱。XVID做爲第二代MPEG編碼技術,它更強的功能就是品質高的給碼率多些,低的給少些。看下面的2056kb-w1-b2的截圖:甚至出現了BF的Q值低到了11,我認爲這是正確的,由於貌似是靜止的白屏,就算咱們給予它Q2的質量,也純屬浪費。因此,這樣就兼顧了品質與大小。仔細對比2056-W1-B2與2pass-2056kb-w1-b2, 2pass-2056kb-w1-b2的IF、PF、BF的單幀大小最大值均有所減少,可是平均大小卻都提升了一點。說,說明2pass-2056kb-w1-b2的Q值分佈更爲平衡。

  DivX DRF AnalyzerV0951的測試也這樣認爲(看橙色字色處)。因此個人結論是:相對來講,?single pass 模式不夠細緻。而Twopass模式則能夠充分分析原文件,並得出最佳的畫面質量。即削減高峯,增益中間。把全片質量從總體上提高。那麼爲何BF的Q值在6-11的一段沒有了呢?猜想估計是XVID在Twopass後認爲該品質的幀可能會形成爛幀(好比馬賽克)。因此提升了它的Q值,以防止爛幀的出現。

=== DivX DRF AnalyzerV0951 的一些測試信息=========================
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

=============================================================

  最終結論:在Twopass模式下以W1爲預設採樣量化值、而且加入BF=二、指定目標幀速爲原幀速的狀況最爲理想。實際上Twopass模式默認的就是以W1爲默認預設採樣量化值,以指定目標大小爲默認值目標大小量化值,由於XVID本來就是爲DVD to DVDrip而設計的。因此這裏不考慮二次壓縮的時候,應該改成指定目標幀速爲原AVI即原DVDrip幀速。


問題一:BF的B值設置爲多少比較合適?(這裏的B值不是指Q值,而是指2個非BF間最多能夠連續插入的BF的個數。)

  其實從開頭BF的優越性就能夠看出一部分緣由了,就是若是連續24個持續1秒鐘都是BF,播放時會出現什麼結果?又由於BF還須要參考後面的一幀,因此畫質會特別爛,並且解碼時會出現延時。形成影音不一樣步。因此:

   一、若是你想得到低於幀速率900kbps的文件,你能夠把B值設爲3或者更大(不推薦)。
   二、若是你想得到900-1400kbps左右的文件,你能夠把B值設爲2。
   三、若是你想得到更高品質的文件,你能夠把B值選項關掉。前提是你的源文件最好靜態多,質量也很高。
   四、若是你有着其餘要求,那麼,沒有必要的狀況下,請保持2的默認值吧。

  下面是一些相關設置。沒有說明的請保持默認。

問題二:下面再回頭想一想BF的Q 值,XVID是怎麼得來的?

  BF 的Q 值由BF 先後的IF/PF 共同決定。BF 的Q 值=BF 先後的IF(或PF)的Q 值的算術平均數* Quantizer ratio+ Quantizer offset。上邊的數據貌似也反映了這個狀況。

  BF 是一個能有效提升壓縮率的功能,是否下降畫質,那要看如何設置了。有的設置壓出來的部分BF,Q 值比PF 還低。用最恰當的BF 設置來調節碼率,提升總體質量,是很是有效的,設置地恰當的話,會令全片的Q 值分佈至關平均,可以使DRF 測試中的第二項——Standard Deviation 輕易達到「Quality is HIGH [Std. Deviation is 0.50]」,即動、靜態場景的畫質一致,不會「靜態尚可而動態MSK(馬賽克)驚人」。一般狀況下,全片BF 含量在30%—55%左右,畫面效果與只用I、PF+VHQ4 跑出來的畫質無顯著差異。即省時又保證質量,因此通常應當使用BF。

  隨着XviD 的Frame Type 的不斷進步(從0624 版開始FrameType 判斷較之前版本已經有了至關大的提升),大動態場景BF 濫用現象(能夠參看開頭BF的圖示,若是畫面動態強,變換快,不具有連續性,那麼BF就做用不大了)已經獲得了較好的抑制(通過實測,在碼率充足的狀況下,大動態場景基本用IF PF PF PF PF… 來壓了),因此BF 能夠放心使用。

  Twopass——二重運算。這種編碼模式分爲兩步,首先對畫面逐幀進行運動偵測,以及對全片斷的運動偵測結果進行分析,而後從新以曲線平衡分配每一幀的Q值,以作到:須要高碼率的運動畫面能夠分配更多空間、更高的碼率、更低的Q值來保證畫面質量;而對於不包含太多運動信息的靜態畫面,則能夠消減分配的碼率。這種把好鋼用在刀刃上的作法,是XviD做爲第二代MPEG4編碼的核心內容。能夠說,Twopass模式能夠在影片容量與畫面質量之間找到最佳平衡點,這也是大多數人都樂意花費更多時間採用這種方式的緣由。

  Twopass-1st pass——二重運算,第一次運算。這是Twopass 模式的第一步。在這一步中,編碼器會用最高質量編碼(默認值W=1)(這裏要補充的是,Twopass-1st pass的這個值其實能夠指定,而且效果並不相同,有高畫質的,也有低的,請看下面的1pass截圖),同時收集畫面信息,並將這些信息記錄信息文件(stats)當中提供第二次運算的時候參考。

  Twopass-2nd pass——二重運算,第二次運算。這是Twopass 模式的第二步,編碼器會根據第一次壓縮時得到的影片的信息和用戶指定的最終文件大小,自動分配碼率,低動態的分配得少一些、大動態的分配得多一些,總之儘可能保證最終文件大小爲用戶指定的大小。


5.

DivX和XviD

現在的電影是愈來愈好看,拍攝、製做的特技效果愈來愈精彩,人們期待的程度愈來愈高,盜版也愈來愈多;同時電影製做公司的防盜版技術作的愈來愈高明。但有句老話叫:"道高一尺,魔高一丈",不管你的電影多精彩、防盜技術多高明,老是有人恰恰可以把你"盜"出來,並且還"盜亦有盜",在保持"原版原味"的條件下,佔用的空間變得愈來愈小,操做愈來愈靈活、簡單,愈來愈方便傳播。並且這種技術隨着版本不斷更新,畫質愈來愈貼近原版、壓縮速度愈來愈快、壓縮/播放進程對計算機的需求愈來愈低。這就是DivX時代的新生力量――XviD。




   黑格爾說過"存在即合理"

  隨着時代的進步,社會的發展,在計算機視頻技術方面更是日新月異。現在視頻的業界標準已經到了DVD時代。主流的DVD光驅的價格已經降到400元人民幣之內。DVD播放機的價格最便宜的已經降到了700元。可是這些都是近期發生的事情,目前仍有一大羣only CD-ROM羣體,他們不肯意再投資去買DVD光驅,有的甚至因爲機器沒法再擴充而不能購買DVD光驅。這便促使另外一個的解決方案的萌發。

  除此以外,互聯網寬帶的普及,Adsl寬帶入戶,P2P軟件的泛濫,使得650MB的大文件輕鬆的實現異地傳輸。還有正版DVD大片的價格居高不下,也是正版DVD普及化的一大障礙。

  基於以上因素的存在,有一種新的視頻壓縮技術出現,那就是DivX,即"壓縮電影"。壓縮電影的技術有不少種,可是DivX最爲普及,它普遍流傳於互聯網與盜版盤。

  隨着時間的推移DivX再推出剛剛推出不久,就不斷推陳出新,從DivX3.11到DivX4 ,目前最新版本爲DivX5.02。原本版本越高,技術也就越高、播放的質量應該更好、更清晰。可是事實告訴咱們隨着版本的提高,壓縮後的播放效果提高不明顯,壓縮所用的時間愈來愈長,壓縮後的體積沒有太大的進步,甚至有的使用DivX5.02壓縮之後會出現跳幀的問題。這究竟是爲何呢?難道視頻壓縮技術已經達到頂峯不可以再穿越了麼?

  目前又出現一種新的壓縮技術名爲XviD,在視頻業界初見端倪,就目前來看它的壓縮時間就是一大賣點,它能夠在保持DivX5的畫質的基礎上,大大提升壓縮時間。

  光從名字上看就能夠看出Xvid與Divx,他們之間確定有着千絲萬縷的聯繫,你們必定想知道。下面就爲你們談談關於XviD的故事。

   Long long ago…

  故事的通過是這樣的。

  早在1998年微軟開發了第一個(也是惟一的)在PC上使用的MPEG-4(注)編碼器,它包括MS MPEG4V一、MS MPEG4V二、MS MPEG4V3的系列編碼內核。其中的V1和V2用來製做AVI文件,一直到如今它都是做爲Windows的默認組件。不過V1和V2的編碼質量不是很好,一直到MS MPEG4V3纔開始有好轉,畫質有了顯著的進步。可是不知微軟出何居心,卻將這個MS MPEG4V3 的視頻編碼內核封閉在僅僅應用於Windows Media流媒體技術上,也就是說,咱們常常看到的ASF流媒體文件中。ASF文件雖然有一些優點,可是因爲過度的封閉,不能被編輯,未獲得普遍的應用。這便惹怒了不怕天不怕地的視頻黑客和置於鑽研視頻編碼的高手。後來,這些小組不只破解了微軟的視頻編碼,並且通過他們的修改,一種新的視頻編碼誕生了。那就是廣爲流傳的Mpeg4編碼器――DivX3.11。



  隨後一發不可收拾,DivX被傳得紅得發紫,很快就成了業界的標準。可是問題一樣很快的出現了,DivX的基礎技術是非法盜用微軟的,只能在地下里流傳,卻上不了檯面,正所謂"名不正,言不順",沒法進行普遍的發展,即產品化,更沒法生產硬件播放機。


   "生產力要改變生產關係"

  在這種狀況的迫使下,一些視頻編碼的高級程序員(包括原DivX 的開發者)組建了一家公司,名爲DivXNetworks Inc。這家公司發起一個徹底開放源碼的項目,名爲"ProjectMayo",目標是開發一套全新的、開放源碼的MPEG4編碼軟件。因爲它徹底符合ISO MPEG4標準,又是徹底開放源代碼(就象linux操做系統),OpenDivX CODEC吸引了不少軟件、視頻高手參與。人力、物力大大投入,OpenDivX編碼器和解碼器原型很快便公佈於衆,以後又開發出具備更高性能的編碼器Encore 2等等。這DivX的輝煌時期。

  雖然主要編碼工做是DXN的人在作,但許多的技術難關的突破徹底得力於來自開放源碼社會的幫助。

  DivX的優點被人們所接受,高品質的DVD電影的容量通常爲5GB,但通過DivX編碼後的大小隻有650MB,僅僅爲原DVD容量的八分之一,圖像品質卻與DVD至關。它能夠經過互聯網相互傳輸,還能夠報存在一張CD光盤(650MB)上。




   DXN的野心:

  DivXNetworks一直但願DivX能成爲好萊塢巨頭們選擇的行業標準,並能夠經過互聯網進行傳輸的視頻文件,就像唱片發行公司不得不接受MP3格式,並使用它在網上傳輸音樂文件同樣。DXN但願並計劃在網上出售視頻內容的公司達成技術轉讓的協議。可是,到目前爲止,它還沒有和任何一家主要的、甚至具備影響力的電影製片公司達成這類協議。

  很惋惜的是想DivX這麼好的電影只能在電腦上播放,目前尚未一款播放機可以播放這樣的光盤。日前,DXN已經來到了中國,這家公司的負責人表示,目前有許多美國人都但願能買到採用這一技術的DVD播放設備,但全球尚未人能生產,因此他但願能與中國的DVD製造商攜手,在年內拿出產品,而且首先在美國推出。


   "天底下真的好人多麼?那麼小人算好人麼?"

  就在DivX順利發展時期,DivX的技術逐漸成熟,商機無限的時候,一臺好戲上演了。因爲DivX的技術不是依據GPL協議(通用公共許可證,一種開放源碼項目中經常使用的保障自由使用和修改的軟件或源碼的協議),而是LGPL協議(注)。這是DXN公司爲本身留的後門。

  2001年7月就在Encore2基本成型的時候,DXN公司忽然封閉了DivX的原代碼,並在此基礎上發佈了自有產品DivX4。DivX 4的基礎就是開放源代碼OpenDivX中的Encore 2,DXN利用了DivX的招牌。DNX公司這麼作,能夠說是初其不備的擺了全部人一刀。開放源碼社會就這樣被狠狠地涮了一回,他們是那麼的無辜。

  DXN公司趁熱打鐵,很快推出了DivX5,可是DivX5沒有比DivX4強到哪裏去,甚至有bug,更可氣的是這一版本還要收費。可憐阿,有那麼多無償爲DivX技術付出的智慧與勞動的人,可悲阿,他們爲一值都在無償的爲DNX公司賺錢。這種壟斷和一直處於壟斷地位的微軟來講,DXN要更恨、更毒。


   人世間仍是好人多!正義當頭!

  首先是全球整個0dayz組織(注)永遠的拒絕了DXN公司的DivX45。

  被人"涮"了一把的開源社團決定另起門戶,逐漸從新聚攏開發力量,在OpenDivX版本的基礎上,再次開發出一種新的MPEG-4編碼、解碼軟件。這就是:XviD。從技術上來講XviD已經基本上與DivX5接近,或者還有所超越;

   春天來了

  近一年來XviD繼承並發展了曾經的OpenDIVX Encore 2,而且使其的性能、效率的到了極大的提高,被認爲是目前最快的MPEG4編碼。這是由於XviD從新改寫了全部原代碼,面目一新。除此以外,Xvid還吸取了前車可鑑,依照GPL發佈。(再也不是之前DivX的LGPL,也就是說:誰要是想用它作成產品而不開放源碼是非法的)並且在2002年,也就是今年,TDX2002(全球最著名的地下電影發行組織,每一年在網上放出數千部最新並且高品質影片RIP)已經接納XviD爲官方標準。這樣TDX2002就有了兩個正式標準:DivX 3.11與XviD。而DivX 四、5像其它封閉的商業軟件同樣,被永遠拒絕。

   報應來了!

  對開源軟件下毒手的人遠不止DXN一家,目前由於一家商業軟件公司盜用XviD源代碼,而被迫中止開發。具體的狀況請參閱: http://www.xvid.org




   XviD使用技巧:

  關於XviD壓縮設置的文章不少,XviD能夠調節的選項很細,因爲篇幅限制,再也不本文的討論以內。在這裏,我推薦你們使用"2-Pass"編碼, 由於它能給咱們更精確的最終文件大小,而且生成最佳質量的編碼 (在文件大小相同的狀況下)。



  只安裝DivX5的編解碼器不能播放由Xvid壓縮的電影。可是隻安裝XviD編碼,能夠順利播放DivX5壓縮的電影。可是在播放DivX5電影的時候,速度不能讓人滿意。加上ffdshow(注)以後效果明顯改善。看來XviD在播放divX5的還不是很完善。

  雖然XviD到目前來說與DivX5對戰,仍有些身單力薄,優點不是很明顯。可是筆者很看好XviD。首先,它是絕對開放源代碼,這使得有更多的人投入到XviD的研發之中。還有,它徹底重寫DivX的原代碼,讓新的XivD去粗取精、面目一新;目前XviD的開發人員有不少都是當初DivX的研發人員,對DivX的錯誤瞭解得很清楚,重寫以後,XivD的地層優點可見一斑。另外,DivX4/5雖然版本不斷更新,可是功能提高並不高,優點不明顯。XviD是新生力量,並且充滿了復仇的力量。祝XviD一路走好。


   XviD版本的歷史:

  1.0 2002年2月17日 初版 ,首次發佈
  1.0 2002年2月28日 大量的修正和更準確地解釋
  1.1 2002年3月2日 分析澄清了不少概念
  1.2 2002年3月4日 加入量化矩陣(quantization matrix), 移去量(removed quant). 柔和(smoothing) 技術
  1.3 2002年3月8日 關於 Nic's XviD Directshow Filter 的詳釋
  1.3 2002年7月23日 按照Nic's XVID Codec校訂補充部份內容(目前最新版本)


   關於DivX起源的小知識

  這種名爲DivX 的技術,由一個27歲的法籍影音發燒友羅達(Rota)及電腦黑客基爾(Gej)創造出來得。

  原來DivX所採的技術並不是這兩位仁兄發明的,他們只不過是個盜版天才。隨着Windows的大行其道,微軟開發了MPEG-4技術,可以將視頻影像文件容量壓縮到很小。羅達與基爾將程式重寫一遍,但將其更名爲DivX,且放在網上隨意任人下載。

  微軟聲稱將對全部推進DivX發展的人、企業做出追究。但是羅達正全面申請將他們的DivX合法化。因爲DivX雖然是從Windows的發明出來的,但卻沒有用過任何微軟的技術。並且,他更與美國一些技術人士及財經人員開會,和組新公司 ProjectMayo.com全力推廣DivX。

  其實,DivX是視頻DVD的另外一種保存方式,要靠DeCSS程序(注)才能作到。由於DVD自己有防複製的標記,讓DVD不能隨便複製到電腦裏,但DeCSS能將它解碼,令其能夠複製,壓縮成DivX電影。針對這一作法,各大電影商當即採起行動,防止DeCSS外流及散播,但爲時已晚,DeCSS在Yahoo!、Google上都能找到。

   名詞解釋:

  TDX2002組織
:全球最著名的地下電影發行組織,每一年在網上放出數千部最新並且高品質影片RIP。

   0day組織 :全球著名的破解組織。其意思爲在不到一天的時間裏破解軟件(天然包括遊戲,軟件,如今還涉及到其餘東西),0Day只是一個統稱(和WareZ的意思同樣)。成爲他們旗下的會員就能夠得到他們提供給你的賬號,固然因爲要求嚴格,因此通常是很難進入的!!(這裏我只提醒一下,多留意NFO文件裏的信息).

   DeCSS程序 :喬·約翰森編寫的小程序,僅有57K,不只震撼了好萊塢,還引起了無數的法律糾紛。他創造出來的「小魔怪」,現在已經成了好萊塢製片商們最恨之入骨的冤家對頭。DeCSS程序可以將正版加密的DVD影片複製到計算機硬盤上。它還能夠將這些影片上傳到互聯網上。

   MPEG-4技術 :是一種嶄新的低碼率、高壓縮比的視頻編碼標準,傳輸速率爲4.8~64kbit/s,使用時佔用的存儲空間比較小。目前的DivX(最新的XviD)電影都採用的此技術,如今被普遍採用。

   GPL協議 :通用公共許可證,一種開放源碼項目中經常使用的保障自由使用和修改的軟件或源碼的協議。

   LGPL協議 :次級GPL(Lesser GPL),與GPL同樣,是一種公共許可證。與GPL的最大不一樣是它容許私有。

   Ffdshow :一個支持 Xvid、MPEG4-V3 MPEG4-V2 以及 DivX 全部版本所製做的視頻文件的播放軟件,佔CPU 資源比較少。


6.XviD配置參考詳解【爆詳細】

XviD的主界面
[Top]
ALT+鼠標滾輪可調整圖片大小
Profile @ Level
[Top]
這個選項包含一些預設值,與分辨率和碼率有關,按旁邊的「more...」按鈕再切換到Level標籤能夠看到預設的數值。由於咱們製做的視頻並不在其它視頻播放設備(好比具有MPEG4解碼能力的DVD播放機)中播放,無須考慮設備兼容性,因此這個選項通常可選「不限制」(unrestricted)或者默認的「AS @ L5」。
Zones
[Top]
XviD1.0之前的版本都有一個參數叫Credit,Zones繼承並增強了之前的Credit功能,使之能夠控制片中任意一段視頻。你們知道,電影、動畫片尾(或片頭)都有製做人員名單 (即Credit,下同) ,並且通常沒人會看。而老版XviD中Credit選項的做用就是,容許用戶使用較低的質量製做Credit部分,讓出更多的碼率分配給正文部分,以提升正文部分的質量。而在最新的XviD1.0中,這個Credit選項卻消失了,取而代之的是一個新的參數——Zones。在這裏,咱們能夠把Zones理解成「區間」、或者說「片段」。也就是說,咱們能夠在邏輯上將片子分紅許多段,並給這些段落一些「特殊待遇」。
Zones的使用例子
[Top]
ALT+鼠標滾輪可調整圖片大小
上圖例子中,0~40640幀是正片,按照正常壓縮,因此須要設定W1.00。從40641幀開始是長長的黑白滾動字幕的製做人員名單,由於滾動字幕是很是浪費碼率的,因此這裏咱們設定使用Q8來壓縮製做人員名單。Zones界面如上圖,本部分參數設置僅爲例子,具體設置在下面說明。
Zones的設置
ALT+鼠標滾輪可調整圖片大小
Start frame#——該區間的起始幀,用於指定該區間的範圍。該區間的範圍定義於起始幀開始至下一區間起始幀的前一幀。若沒有定義下一區間,則該區間一直定義至影片結束。
Weight——權重。設置該區間的實際應用碼率與原碼率的比。好比,若是隻想使用原碼率的85%編碼該區間,那麼這裏能夠填寫0.85。若是想使用100%碼率(即原碼率),填寫1.00便可。什麼是「原碼率」呢?即XviD認爲應該使用的碼率。若是定義了權重,那麼XviD在實際壓縮的時候,就會將原碼率乘以用戶指定的權重,做爲該處實際的碼率。
Quantizer——設置該區間幀的Q值。能夠強迫編碼器將這段區間使用某一Q值編碼(本選項一般用於Credit部分的編碼)。 
Begin with keyframe——本區間的第一幀強迫使用IF。通常選擇此選項。 
Greyscale encoding——使用灰度。編碼出的畫面是黑白的,適合於黑白畫面(好比片尾的黑白Credit),可更加下降本區間的碼率。
Chroma optimizer enabled——色度優化,能夠改善顏色過渡不天然現象。該選項對畫面顏色有優化做用,推薦選擇。勾選此項會稍微下降編碼速度,因此能夠選擇僅對Weight設置成1的電影正文部分應用此設置。因爲Chroma optimizer是在色度上作文章,因此開啓了Greyscale encoding的時候能夠考慮關掉 Chroma optimizer,能夠在必定程度上提升一些編碼速度。
Cartoon Mode——卡通模式。這個模式可讓畫面顯得更乾淨一些,但這就意味着要抹殺細節。製做動畫的時候能夠使用。(下面會有一個小結專門講解Cartoon Mode)
BVOP sensitivity——BF靈敏度。值越大,使用BF的數量越多。若是設定負值,則會減小BF用量。製做CREDIT段落的時候本參數能夠適當設置大一點,用更多的高壓縮率BF去壓Credits,參數能夠考慮20或40。
注意:若是要在Credit使用Quantizer模式的話,要在Twopass-1st pass中也使用相同的設置纔有效。而若要用Weight模式則只需在Twopass-2nd pass中設定既可(從某種意義上講,這樣可令Weight模式下的Two-pass-1st pass稍微快一點)。
Zones應用於CREDIT的參數設置建議: 演職員名單的Q值可限定爲8或者9,這樣既能夠保證名單上的文字可以分辨出來,也能夠大幅下降Credit這部分的視頻文件體積。有時,10分鐘左右的Credits壓出來也只有六、7MB,這對某些擁有五、6分鐘以上較長Credit的1CD DVDRip影片製做來講,幫助是較爲明顯的。
Zones使用上的心得
[Top]
除非出現極端的現象,不然不建議針對正片(即影片中除廣告、製做人員名單以外的正文部分)使用Zones。有些用戶喜歡自做聰明地指定許多Zones人爲地干預碼率控制。實踐證實,這種行爲是很是不明智的,這樣會嚴重干擾XviD對於碼率的控制和計算,只會致使容量失控(Oversize或Lowsize)或畫質降低。XviD的碼率控制幾乎是全部編碼器中作得最好的,因此不要擔憂,把一切交給XviD去作吧。
考慮到觀衆
[Top]
如今很多影片的製做人員名單採用了帶有畫面的漸變或滾動字幕,畫面一般爲一些拍攝花絮或影片插圖、設定。考慮到觀衆的觀賞須要,這類名單不適合使用Zones來下降碼率。因此,壓縮的時候應當時刻考慮到觀衆的心情。
Cartoon Mode
[Top]
(本部分做者:Bopirit,收錄時略有修改) 
XviD有個動態判斷標準值,指判別畫面是否有動態的標準。若高於這個值,則判斷畫面爲動,編碼時記載動態信息;若低於這個值則判斷爲畫面不動,不記載動態信息。這個一般很低,就是說,很小一點差異都會判斷爲動態。
打開Cartoon模式後,這個標誌的值會加大,相應的,小的動態變化會忽略。對動畫來講,最直接的效果就是消除了浮動的細微噪點(特別是在色塊和線條之間,這種噪點即便降噪也會出現)。由於用了Cartoon模式,這些噪點形成的小度變化被忽略掉,所以會省出大量碼率。在的實驗中,多在8%以上。可是,由於畫面的變更相對較大,PSNR會下降(雖然對動畫來講這算不得下降),並且對於使用H.263量化的動畫,還會讓畫面感受更加模糊;而對於MPEG量化,這個Cartoon模式能夠有效下降MPEG量化編碼動畫片的反作用,儘管PSNR下降,但實際上畫面看起來更好。能夠配合MPEG/MPEG Custom量化方式使用。 
Q值
[Top]
Q值是指量化值(依據做者我的習慣不一樣,這個值在不一樣文章中的叫法有所不一樣,好比「量化值」、「量化級別」、「Quant」等等,本文統一稱做「Q值」)。顧名思義,Q值用來描述一個幀的質量,每一個幀都有Q值。該值取值範圍是1~31。該值由編碼器編碼的時候根據該幀的顏色、與跟前/後幀的動態關係等自動肯定。Q值越小,質量越好,碼率越大;Q值越大,質量越差,碼率越小。(本概念在XVID製做中很是重要,Q值直接關係到影片的畫面質量。)
Encoding mode
[Top]
ALT+鼠標滾輪可調整圖片大小
Encoding mode即編碼模式。XviD一共提供兩種編碼模式。一種是Single pass,另外一種是Twopass。Twopass分兩步,分別是1st pass,和2nd pass。下面對這兩種編碼模式分別進行講解。
Single pass
[Top]
Single pass即一次運算,Single pass有兩種模式(經過Target xxx按鈕切換)Target quantizer(目標Q值)和Target bitrate(目標碼率)。Single pass模式編碼較簡單,速度也很快,可是最終質量不如Twopass模式好。可用於實時採集。
Target bitrate(CBR)——目標碼率模式,單位kbps。最簡單的單線編碼,選擇平均碼率後編碼。文件大小相對容易控制。 
Target quantizer(VBR)——目標Q值模式,動態碼率。 
Two pass
[Top]
Two pass即二重運算。這種編碼模式分爲兩步,首先對畫面逐幀進行運動偵測,以及對全片斷的運動偵測結果進行分析,而後從新以曲線平衡分配每一幀的Q值,以作到:須要高碼率的運動畫面能夠分配更多空間、更高的碼率、更低的Q值來保證畫面質量;而對於不包含太多運動信息的靜態畫面,則能夠消減分配的碼率。這種把好鋼用在刀刃上的作法,是XviD做爲第二代MPEG4編碼的核心內容。能夠說,Twopass模式能夠在影片容量與畫面質量之間找到最佳平衡點,這也是大多數人都樂意花費更多時間採用這種方式的緣由。
Twopass-1st pass——二重運算,第一次運算。這是Twopass模式的第一步。在這一步中,編碼器會用最高質量編碼(量化值2),同時收集畫面信息,並將這些信息記錄信息文件(stats)當中提供第二次運算的時候參考。
Twopass-2nd pass——二重運算,第二次運算。這是Twopass模式的第二步,編碼器會根據第一次壓縮時得到的影片的信息和用戶指定的最終文件大小,自動分配碼率,低動態的分配得少一些、大動態的分配得多一些,總之儘可能保證最終文件大小爲用戶指定的大小。
注1:不要在第一重和第二重運算之間更改XviD設置(某些特殊項除外)、改變AVS腳本(若是用到AVS)或加入、刪除濾鏡,這些都將會形成不正確的結果。 
注2:計算2pass容量的時候,應使用1K=1024Bytes的換算方法。且計算結果不包含音頻大小。 
Twopass-1st pass面板
[Top]
ALT+鼠標滾輪可調整圖片大小
Full Quality first pass——全質量第一次運算。在 Twopass - 1st pass 時以你當前的設置進行編碼,一般是不必的。會下降1st pass編碼速度。
Discard first pass——不輸出第一次運算結果。通常都會打開這項,不然你可能會獲得一個容量高達幾個G的無用的AVI文件。
2nd pass
[Top]
ALT+鼠標滾輪可調整圖片大小
這個對話框只有在2PASS的時候纔可用,其的設置比較複雜,建議保留默認設置。 
I-frame boost——
額外分配給IF的碼率。若是IF的Q值較小(如1或2),此項能夠設置爲0。 
I-frames closer than... (frames) X ...are reduced by (%)Y(X和Y表明所設定的參數)——意思是,若兩個IF的距離小於X(一般是連續的閃電效果或者連續大動態動做場面會出現這種狀況),則靠後的IF碼率減少Y%。若是IF的Q值較小,Y能夠稍微設置大一些(可增長5%~8%)。
Overlflow treatment——碼率補償與縮減。Max overflow improvement和Max overflow degradation控制當編碼器遇到不足碼率或者碼率過大的場景時進行修正補償的閥值,即超碼或不足碼到達什麼程度,編碼器會進行修正。值越大,修正速度越快(即須要修正的幀較少,總體編碼速度就加快),可是這可能會形成沒法爲別的更須要碼率幀保留碼率。若是Q值波動較大,能夠將這個值減少到20~30,這樣可能會使預測的文件大小受到影響。除非遇到特殊狀況,本功能不建議使用!
Overflow control strength %——控制每一個須要補償的碼率過大/不足的幀被補償多少。除非遇到特殊狀況,本功能不建議使用。
Curve compression——曲線壓縮。曲線壓縮的做用就是將碼率較高的幀的碼率拉下來,將碼率較小的幀的碼率提上去,讓碼率曲線平緩一些。此選項不建議使用,也就是保持默認設置「0」。因爲現階段XviD的動態分配(即曲線壓縮)作得不是很好,因此直接採用了一種linear scale(即線性壓縮)把1pass的碼率曲線直接往下調。除遇到特殊狀況外,不建議使用曲線壓縮功能。
若想了解更多曲線壓縮以及線性壓縮的細節,請參閱本文附錄《曲線壓縮與線性壓縮》
Profile標籤
[Top]
ALT+鼠標滾輪可調整圖片大小
Quantization type
[Top]
量化方式。此處支持三種量化方式。分別是H.26三、MPEG、MPEG Custom。應根據影片的特性肯定該選項。要了解這三種量化方式的詳細信息,請參見附錄《三種量化方式解說》。
Adaptive Quantization
[Top]
其實這個選項就是XVID 1.0以前版本中的Lumi masking。加大圖像亮/暗部等人眼不容易注意到的部分的壓縮率,可能會產生畫面扭曲。本選相應當謹慎使用,由於它看起來弊大於利。因此若是不是對縮小文件體積縮小有迫切的需求,最好不要使用。
Interlaced Encoding
[Top]
隔行處理。適用於有交錯的片源。通常來講不須要開啓。 
Top Field First
[Top]
決定場序。若是選中,則爲頂場(奇數場)先,不然爲底場(偶數場)先。 
Quarter Pixel
[Top]
1/4像素(簡稱QP,下同)。MPEG-4 用的 QPel 即 1/4 Pel,就是再補出1/2像素像素和1/2像素之間的1/4像素。能保留更多的細節(比不用QP多)和獲得更精確的動態補償,適合高2-PASS/1-PASS比值時採用。但會下降損失近1/3的編碼速度。
一般狀況下,2-PASS/1-PASS比值在50%如下,不推薦使用。800K如下的低碼率使用時,部分場景的畫面會產生嚴重的色彩飄逸現象,看上去像粘稠的液體流動(乾淨、低動態片源除外)。視頻碼率越高,使用加QP後的效果越好,並且中低碼率下去色塊的做用也很是明顯。
Global Motion Compensation
[Top]
全域動態補償(簡稱GMC,下同)。能在縮放(把鏡頭拉近)以及旋轉(轉動相機)的情形下有所幫助,尤爲是畫面中的物體的外型是固定的,僅在尺寸以及位置上有所不一樣時。若要處理的影片是天然景觀或風景片時,能夠開啓GMC。使用該選項製做的影片可能只有XviD本身的解碼器才能正常解碼,若使用ffdshow等解碼器解碼可能存在兼容性問題,用前請考慮。
B-VOPs
[Top]
B-frame
[Top]
B-frame設定。若去掉該選項前面的對勾,則編碼中不使用B-Frame(簡稱BF,下同),只用IF、PF來壓。 
Max consecutive BVOPs——最大連續BF數量。舉個例子,設置2,就是說在兩個PF之間(或IF/PF之間)最多會連續插入兩個BF,即…IF/PF BF BF PF…;若是設置3,則最多會出現三個連續BF,即…IF/PF BF BF BF PF…。此處,應根據片源具體狀況來設定,若是片源動態比較小,則能夠適當開大一些,好比三、4;若是碼率很充足或片源很複雜,包含大量大動態場景、運動不規則、場景切換頻繁等等,則應減小BF用量,甚至不用BF。
請注意:多少個BF連續出現,沒有數量限制(你能夠設置成1,也能夠設置成1000)。具體用多少XVID自行判斷,這個地方只設定最大值。 
Quantizer ratio——BF的Q值倍數。計算BF的Q值的參數。 
Quantizer offset——Q值計算偏移值。計算BF的Q值的參數。(BF的Q值計算方式下面解釋) 
Packed bitstream——開啓BF的XviD製做的avi,在播放時會延遲一幀(就是之前播放時畫面第一幀的那個黑色畫面,告訴你該視頻使用了BF,以下圖)(製做成ogm、mkv、mp4則不會)。而Packed bitstream選項的做用是解決這個問題。不過開啓2個以上的連續BF並用到了Packed bitstream的時候,只有XviD的解碼器能夠正常解碼。而用老版本的DivX/ffdshow解碼,水平移動的畫面會不暢(畫面朝移動方向抖動)(ffdshow-20040225之後的版本解決了這一個問題)。
ALT+鼠標滾輪可調整圖片大小
Closed GOV——在編碼新的IF以前插入一個PF來關閉前一個幀組,不然解碼時有可能出現問題。此選項要勾選。 
BF的Q值的計算:BF的Q值由BF先後的IF/PF共同決定。
代碼:
BF的Q值=BF先後的IF(或PF)的Q值的算術平均數* Quantizer ratio+ Quantizer offsetBF是一個能有效提升壓縮率的功能,是否下降畫質,那要看如何設置了。有的設置壓出來的部分BF,Q值比PF還低。用最恰當的BF設置來調節碼率,提升總體質量,是很是有效的,設置地恰當的話,會令全片的Q值分佈至關平均,可以使DRF測試中的第二項——Standard Deviation 輕易達到「Quality is HIGH [Std. Deviation is 0.50]」,即動、靜態場景的畫質一致,不會「靜態尚可而動態MSK驚人」。並且在用VHQ4壓片時還能省去很多時間,由於BF不像I、PF那樣要做VHQ4處理。一般狀況下,全片BF含量在30%—55%左右,畫面效果與只用I、PF+VHQ4跑出來的畫質無顯著差異。即省時又保證質量,因此通常應當使用BF。
隨着XviD的Frame Type的不斷進步(從0624版開始FrameType判斷較之前版本已經有了至關大的提升),大動態場景BF濫用現象已經獲得了較好的抑制(通過實測,在碼率充足的狀況下,大動態場景基本用IF PF PF PF PF… 來壓了),因此BF能夠放心使用。
有些朋友對本部分設置可能還不是很清楚,的確,BF的設置是XviD中最難掌握的部分,參數須要精心搭配。 
針對一些狀況,本文給出了參考參數設置,請見附錄-BF推薦設置。
Motion標籤
[Top]
ALT+鼠標滾輪可調整圖片大小
Motion search precision——運動檢測精度,決定着給定碼率下的畫面質量。等級越高,畫質越好,速度越慢。通常選6而不選5,由於選5只快10%。
設置: 
1 – 3: 基本沒有什麼區別。 
4-high:XVID使用半像素插值(half pixel interpolation=HPel=1/2像素)的技術達到更好的結果,而整個16x16的微區塊被標示上兩幀之間的運動向量(譯者按:ffdshow有顯示這個向量的功能,頗有趣)
5-very high:XviD 使用4分運動向量(inter4v motion vectors)的方式,即16x16的微區塊中的4個8x8區塊,被標示各自的運動向量。
6-ultra high:運行更多邊的運動檢測(會減慢10%的編碼速度)。
VHQ mode——搜尋寬度。等級越高,畫質越好,速度越慢。這個選項會很大幅度的下降編碼速度,若機器夠快,可選4。想了解更多VHQ的功能,請參閱本文附錄《VHQ模式》。
Use VHQ bframes too——在BF上應用VHQ。在原先版本的XviD中,VHQ Mode是不被應用在BF中的。可是從XviD1.1版本開始,只靠選中本選項,就能夠在BF中應用VHQ Mode了!
Use chroma motion——經過顏色信息來判斷動態。會下降編碼速度5%~10%,可是有利於畫面,推薦選擇。 
Turbo——超級模式。更快的判斷BF和QP的動態。 
Frame drop ratio——丟幀率,這個參數保持默認值0,而且不要改變。 
Maxinum I-frame interval——最大IF幀距。該參數通常爲幀率的10倍。好比,通常DVDRIP的幀率爲23.976fps,則該處就填寫240。有人喜歡認爲將這個值調小,以增長IF的數量,達到提升畫質的目的。此項可根據片子狀況適當減少。可是在200以上爲宜,若是過小會拔苗助長——文件OVERSIZE、IF佔用大量碼率致使BF/PF質量太低,反而不利於畫質。
Quantization標籤
[Top]
ALT+鼠標滾輪可調整圖片大小
Quantization標籤中的設定很是重要,直接關係到片子的質量。 
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——進階高質量量化模式。若選擇該選項,編碼器會選擇性的下降某些畫面的質量,來達到最大限度的提升片子的總體質量。可配合H.263量化方式使用。
各類類型幀的Q值設定須要注意如下原則 
設置時應儘可能保證IF質量,由於BF和PF的質量都由IF決定。
因爲XVID對於BF質量的把握愈來愈好,比較黑暗的場面出現爛幀的概率也有所減小,因此BF的Q值上限能夠放心的設大一些。
有些朋友提出,不要限制Q值範圍,也就是所有都保留1/31的默認值,讓XviD自行掌握Q值分配。筆者認爲這麼講不無道理,但要看什麼狀況。在一些狀況下,XviD自身的Q值分配算法是不能適應某些影片的(好比通篇畫面都很昏暗的影片等等),這個時候,就須要咱們手工來限制Q值範圍。也就是說,是否限制Q值、限制多少,並無一個肯定的答案,而應當由片子自己的特性。有經驗的RIPPER能夠迅速的根據影片畫面判斷應該如何配置,也就是所謂的「經驗」。因此,Q值的設定應由影片自己和製做要求靈活應變,不該一味追求所謂「理想值」。筆者認爲,這點是應當特別注意的。
綜合設置
[Top]
請注意,從xvid1.2開始,Debug功能被安排在了XviD Configuration項目中,按Xvid主窗口下方的Other options按鈕便可進入。
Encoder
[Top]
ALT+鼠標滾輪可調整圖片大小
FourCC used——FourCC 用以肯定你編碼好的電影用什麼樣的解碼器來播放,默認值爲"XviD",這意味着將使用"XviD directshow filters",保證了最大的質量和兼容性。你也能夠選擇使用"DivX 4.x"或"5.x"的解碼器來回放你完成的電影,可是它們不必定就能正常播放。
Number of threads——線程數。XviD針對如今逐漸流行起來的支持HT技術或雙內核處理器作出了一些優化。若您的處理器支持HT技術或有雙內核,請設置爲2,不然請保持默認。
Print Debug info on each frame——在每幀上打印debug信息,非專業人員不要選:) 
Display encoding status——顯示編碼狀態,就是咱們在壓制的時候看到的XviD Status窗口。以下圖: 
ALT+鼠標滾輪可調整圖片大小
Common
[Top]
ALT+鼠標滾輪可調整圖片大小
Performance optimizztions——性能優化。能夠選擇特定的CPU指令集優化。能夠對編碼速度的提升起到必定做用。建議選擇自動選擇指令集優化。 
附錄
[Top]
如何知道1pass容量
[Top]
獲取1pass容量其實很簡單。當你們開始用XviD壓制1st-pass的時候,XviD會跳出來一個狀態窗口,這個窗口會實時顯示壓制過程當中各類各樣的信息。當1pass壓制完成的時候,這個窗口會顯示1pass的最終結果。以下圖:
ALT+鼠標滾輪可調整圖片大小
右邊紅框部分所示的容量即爲1pass容量。用計算出來的2pass容量除以這個值,就能計算出來2pass/1pass比值了。
BF參考設置
[Top]
2-PASS/1-PASS比值在70%以上
[Top]
因爲容量相對寬鬆,故限制了IPB的Q值範圍。
Max consecutive BVOPs --------- 2
Quantizer ratio --------------------- 1.20
Quantizer offset -------------------- 0.60
Quantization設置:二、二、二、三、二、4 
2-PASS/1-PASS比值在60%--70%之間
[Top]
Max consecutive BVOPs --------- 3
Quantizer ratio --------------------- 1.30
Quantizer offset -------------------- 0.80
Quantization設置:二、二、二、四、二、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設置:二、三、二、三、二、31 
2-PASS/1-PASS比值在50%如下
[Top]
經過下降分辨率和/或使用降噪濾鏡下降壓縮難度,變相提高2-PASS/1-PASS比值。若是下降分辨率(直到你已不能接受的水平)和/或使用降噪濾鏡(畫面模糊到你已不能接受的水平)時,仍然不能將2-PASS/1-PASS比值提高到至少55%的水平,則考慮提升視頻文件體積,或者換用其它編碼器來完成壓縮工做(如VP六、RV10)。
這種方法能夠保證製做出來的全部視頻文件的Average DRF/quantizer控制在2.5-3.5之間(I、PF的Q值爲2或3),Std. Deviation控制在0.40-0.60之間。也就是說沒有明顯的壓縮瑕疵,如MSK、噪點等(其它須要配合的設置還包括:VHQ四、hvs系列量化模式)。
基本概念解釋
[Top]
本文用到了一些MPEG4中的基本概念,這些概念在本文中會常常說起。因此這裏特地爲新手準備了概念解釋,但願新手朋友在閱讀以前掌握這些概念。沒有收錄進來的一些針對性較強的概念已經在正文中進行重點的解釋。
三種幀類型
[Top]
IF——I-frame的縮寫,即關鍵幀。關鍵幀是構成一個幀組(GOP,Group of Picture)的第一個幀。IF保留了一個場景的全部信息。
PF——P-frame的縮寫,即將來單項預測幀,只儲存與以前一個已解壓畫面的差值。
BF——B-frame的縮寫,即雙向預測幀,除了參考以前解壓過了的畫面外,亦會參考後面一幀中的畫面信息。
量化方式
[Top]
H.263——推薦700~900K的碼率(好比1CD製做)時使用。保留畫面細節不及MPEG量化方式好,但能夠達到較好的畫面降噪效果,可讓畫面看起來更乾淨一些。推薦壓制動畫使用本量化方式。H.263 的量化方法,顧名思義,就是使用 H.263 這個壓縮規格所使用的量化方法,量化的時候,8x8 的像素方塊內的全部 DCT 係數,所有除以同一個數字。(這個動做就叫作量化)例如所有都除以 32,若是有一個 DCT 係數爲 15,小於 32,通過相除以後,會被量化爲 0,如此即可以省下不少記錄的 bits。固然,除的數字越大,量化的偏差也就越大,品質也就越差,可是壓縮率會越高,壓出來檔案會越小。咱們會利用另外一個參數來調整量化的偏差,控制最後量化的品質和檔案的大小,這個參數叫作 Quantizer。量化的係數會再乘上這個 Quantizer 的倍數,例如本來要除的量化係數是 32,Quantizer 是 2,對應的放大倍數也是 2,最後真正要除的量化係數就變成 32*2=64。因此 Quantizer 越大,要除的量化係數就越大,量化偏差就越大,品質就越差,可是檔案也越小。H.263 的量化方法還規定,相鄰的兩個 MacroBlock 的Quantizer 不能相差超過 2。 
MPEG——建議高碼率狀況下(好比2CD製做)使用,能保留較多細節,但在某些狀況下可能形成噪聲等反作用。若在製做動畫時使用,可能引發色彩過分不天然、顏色邊界處出現噪聲等反作用,此時,可搭配Cartoon Mode下降這些反作用。MPEG 的量化方法,高低頻係數能夠除以不一樣的量化係數,能夠視狀況將高頻削多一點。這個 8x8 的量化係數,也就是 Quantize Matrix(量化矩陣)。
MPEG Custom——能夠加載MPEG自定義量化模板。你能夠依照影片特性,自訂最適當的量化矩陣。好比,壓電影的時候經常使用的hvs-best-picture模板能夠兼具MPEG和H.263量化方式的優勢,即畫面細節和降噪都能獲得兼顧。若要採用MPEG Custom量化方式,點擊Edit Matrix…按鈕加載想要的量化模板便可。本選項只建議對於量化模板有較深研究的專家使用。XviD1.0安裝目錄下有一個XviD_Quant_Matrices.zip,裏面包含了數種經常使用的量化模板,好比有名的HVS量化系列,在DOOM9網站或論壇上能夠找到更多的量化模板。
噪聲
[Top]
這裏所謂「噪聲」,並非咱們可以聽到的實際意義上的噪聲,而是指的畫面上不斷閃動的亮斑點或色斑點。畫面出現噪聲通常有如下幾方面緣由:1.電影:因爲膠片自己的感光性能或採集過程不佳形成(老片尤爲嚴重);2.動畫:TVRIP錄製時電視信號存在干擾(也就是咱們常說的「雪花」);3.採用了VHS或老舊的LD片源;4.因爲壓制不良,致使色彩之間的邊緣處有細小的色斑存在(看起來像「馬賽克」)。這些噪聲在畫面上不停的閃爍、移動,形成驚人的碼率浪費。所以須要儘可能將這些噪聲「過濾」掉,以節省碼率,增高片子的總體質量。要想過濾噪聲有許多方法,好比在AVS腳本中加入降噪濾鏡等,但這不是本文討論的重點。
Q值(即DRF值)
[Top]
在編碼時,爲了達到某個碼率,mpeg4編解碼器會對每一幅畫面進行壓縮。而壓縮程度則取決於碼率、圖像內容的複雜度及動態大小。對於每一幀,一旦肯定怎樣去壓縮之後,就會產生DRF值。DRF值爲2的時候,效果最佳(在XVID中,quantizer還可能達到1)。DRF值等於31時,效果最差。8以上的DRF值,可被認爲效果不好。DRF/quantizer實際上表明瞭編碼器在下降幀大小時所丟棄的信息量。
Bits/(Pixel*frame)
[Top]
數據密度。碼率並非視頻/音頻質量的惟一指標,一個更重要的指標是Bits/(Pixel*frame) (數據密度),它反映了平均記錄每象素所用的數據量。若是Bits/(Pixel*frame)比較低,那麼DVDrip的視頻流中I幀間的預測幀(P幀/B幀)的偏差會比較大,視頻質量會降低,(MSK等…)。製做DVDRIP的軟件(例如GK)都要計算/給出這個Bits/(Pixel*frame)值。通常認爲,較好的視頻質量須要Bits/(Pixel*frame)>0.2(如左圖)。
Video Size/1st Pass Size
[Top]
除了碼率和Bits/(Pixel*frame)以外,Video Size/1st Pass Size 也是一個質量指標。DVDRIP壓制時,碼率的分配不是線性的,變化的(動做)場景的碼率將會高,而靜態場景的碼率低。Twopass-1st pass就是用於肯定碼率分配。然後,根據設定的最終文件大小,將算出的碼率分配曲線等比例壓縮,獲得最終Twopass-2nd pass的碼率曲線。Video Size/1st Pass Size反映的就是這個壓縮比。通常認爲,較好的視頻質量須要Video Size/1st Pass Size >55%。
曲線壓縮與線性壓縮
[Top]
(做者:Silky,收錄時略有改動) 
「曲線壓縮」的意思就是將碼率較大的幀拉下來,下降一點碼率,碼率較小的幀補上去,提升一點碼率。也就是將本來上下震盪的碼率曲線變平一點,最大和最小的差距不要那麼大。壓得越平,碼率曲線就越接近一條固定的直線,也就是變成近似於CBR。不過這樣實在很沒有意義不是嗎?原本碼率高的幀,就是由於這個幀須要較多的碼率紀錄,你如今把它拉下來,畫質豈不更慘?而碼率低的幀,就是不須要花那麼多碼率記錄的幀,你又給它多補一些碼率,豈不浪費?
根據 Koepi 的說法,當碼率極低的時候,不少幀的碼率都不夠。此時若是把少數幾個碼率很高的幀拉低一點,把省下來的碼率分給其它幀,馬上會對這些遊走在底線邊緣的幀的畫質有很大的幫助。曲線壓縮的目的即是犧牲少數幾個幀,讓大部分的幀增進畫質。而,這少數幾個碼率超高的幀,又一般都是高動態的畫面。人眼對高動態的畫面比較沒法精確的判斷、分辨出畫質的好壞。因此犧牲這幾個幀,增進大部分時間看起來的品質,能夠說是至關划算。好像還蠻有道理的。不過若是曲線壓縮的參數設定得很差的話,對畫質會有很大的傷害,並且在不是超低碼率的狀況下,曲線壓縮也沒有意義。因此最好的做法仍是,讓編碼器自行視狀況調節,使用自由的 VBR,這樣壓出來的結果會越接近 CQ「固定品質」。(固然,若是碼率實在設得過低,CQ 壓出來的結果就是「固定爛品質」 這時適當的運用曲線壓縮,以少換多,就有它的價值了) 。
通過許多人的測試經驗,最後的結論就是 linear scaling「線性壓縮」的結果最好。 線性壓縮時,1st pass與曲線壓縮無異,只是2nd pass的時候,就直接把 1st-pass 壓出來的碼率曲線按必定比例整個往下平移,下降碼率,達到你所設定的目標大小爲止。因爲曲線只是整個往下平移,使得最終的碼率變小,而不改變其本來的震盪幅度,因此稱爲「線性的調整大小」。 線性壓縮使本來複雜,須要高碼率的畫面仍是分到較多的碼率;簡單,不用太多碼率的畫面也不會浪費了碼率。線性調整壓出來的結果較接近「完美的 VBR」,也就是固定的平均品質,不會有幾個幀忽然發生明顯劣化的狀況。
使用線性壓縮的方法很簡單,2nd-pass的時候,把Two Pass設定底下的High bitrate scenes degradation % 和 Low bitrate scenes improvement % 兩個設定都設爲 0,這樣跑 2nd-pass 的時候就會自動根據 XviD Codec 內建的 scaling 算法,作線性調整。
VHQ模式
[Top]
VHQ與IF、BF、碼率控制沒有任何關係,但VHQ越高,圖像的品質越高。 
MPEG系的編碼器在壓縮時以每一個16x16像素塊大小的MacroBlock爲單位進行動態預測。在VHQ模式下,它先是進行簡單的block-mode-decision(區塊模式斷定),其間會對畫面內的每一塊MacroBlock施以優化,而後再按三個不一樣檔次(VHQ二、VHQ三、VHQ4)做進一步動態預測,從而更進一步的減小紀錄信息所須要的容量。
使用VHQ(特別是VHQ4)能夠下降Q值、使畫面更乾淨、保留更多的細節,但這些都只是VHQ的反作用,VHQ的主要功能是提升壓縮效率(當Q值必定時,令文件體積更小),以便更好的達到目標文件大小。
注意
在1-PASS過程當中,VHQ模式處於自動關閉狀態,所以沒必要擔憂兩個PASS之間的設置不一樣。
在XviD 1.0正式版中,VHQ模式已經能與BF、Quarter Pixel、Chroma motion、Adaptive Quantization、GMC功能同時開啓使用了。
後記與人員列表
[Top]
整個XVID的重要參數到這裏差很少都介紹完了。筆者仍是堅持一點:每一個片子都有其自身特色,要想用一套「萬用參數」來「通吃」全部片子是不可能的。有朋友很是心急,一上來就要找出來一套適用於手頭這部片子的「理想值」,可是這樣每每以失敗了結。因此壓片以前,不要怕麻煩,多抽幾段來試壓,而後根據每一個參數的做用進行配置,相信你會製做出優秀的DVDRIP。
XviD是一款至關強大的MPEG4編碼器,若是參數配置得當,再配合良好的AVS腳本的話,能夠製做出來容量只有DVD容量的1/5(MP3音頻),但畫質和DVD相比絲絕不差的影片!到如今爲止,XviD仍然有很大的潛力能夠發掘。但願你們永遠不要中止探索的腳步,去得到更好的質量!
本文的編寫及內容不斷豐富、修訂的過程當中,獲得了不少朋友的幫助,在這裏,編者dgwxx向他們表示最誠摯的謝意。另外:若是您撰寫文章或創做其餘做品(如編譯本身版本的XVID)的時候引用了本文的內容,請必定要註明哪些內容出自本文,這是對於做者們的尊重,同時也有助於技術的交流。在線版本的放出,間接解除了強制複製保護。您如今能夠任意複製本文的任何文字、圖像內容。可是這個許可僅限於用做技術交流,任何用於商業行爲的複製行爲、任何惡意抄襲均將受到本文做者團隊的最嚴厲追究。
本文由多位做者共同完成。
參與編寫的做者名單(依照字母順序排列):Bopirit、Dgwxx、RKinGBo、tct6六、大衛
感謝如下朋友(按內容時間前後排列):
Nemolus——在2.0版本修訂過程當中提出了大量意見、建議。
DvDSharer——一些概念解釋;提出2.0版的修訂。
Skywalker——Global Motion Compensation的改正意見。
本文編寫過程當中參考的資料:《高品質DVDRIP製做進階教程》(做者DvDSharer)、《XviD-1.0的設置參考》(做者tct66)、《XVID的中文化解釋》(做者大衛)、《XVID中文設置全釋1.3+》以及DOOM9.org的相關英文資料。



參考:https://blog.csdn.net/china_video_expert/article/details/7230353

相關文章
相關標籤/搜索