X264 codec參數相關講解

X264 codec相關講解:
ab4cbcc379310a55585c7566b44543a9832610a6


可能有人注意到了我使用的是x264的tmod..何爲mod版...就是民間菊苣在官方x264的基礎上又自行進行了一些編譯修改..提升強化了一部分功能..本帖提供的是taro大編譯的x264..故爲tmod版本..


前面說到碼率是重中之重...


那麼通常會見到的碼率控制模式有


ABR [ Average Bitrate ](平均目標碼率模式)
CBR [ Constant Bitrate ](固定碼率模式)
2pass..3pass..npass(二次..三次..n次編碼模式..嚴格來說也屬於平均目標碼率模式.但其碼率浮動較ABR高出不少.)
CRF [ Constant Ratefactor ] (固定碼率係數模式)
QP [ Constant Quantizer ] (固定量化值模式)


但x264只提供三種碼率控制模式..至於其他怎麼搞出來後面再寫..
三種模式爲:


qp模式...bitrate模式..crf模式


下面挨個解釋一下..需要注意的是三種碼率控制方法不能共存,有其一不能有另外兩個!


qp模式
即爲固定量化值(Constant Quantizer)模式來編碼視頻..需要注意的是這裏的量化參值爲P幀的量化值..I 幀(IDR幀)和B幀的量化值又由ipratio和bpratio參數來確定..不過通常這兩個參數無需手動設置..
簡單點說qp模式就是:相對於壓縮前的原視頻來說..每一個 P 幀 ..I 幀 .. B幀都會固定的損失一部分質量..損失判定是固定的.但由於I P B幀的插入是不確定的..所以最終文件的大小是無法確定的.
設置爲qp0時將產生無損的畫面輸出(輸出文件一般會比源文件大出數倍以上)..並且相同視覺質量時..qp模式壓出的視頻文件比crf模式大..




bitrate模式
即爲固定目標碼率模式..(固定目標比特率模式)..x264會試圖讓最終文件的整體碼率與給定的碼率相等..這會使最終文件的大小是確定的..適用於精確控制體積..但由於這是一次編碼..所以畫質上不如同等體積的crf..故一般配合pass參數使用.


crf模式
即固定Ratefactor模式..如果說QP是固定量化器,bitrate是固定文件最終大小..那麼crf則是則是固定“肉眼質量”..crf可以提供跟QP一樣的視覺的質量..但是文件更小..
crf是通過降低那些“不那麼重要”的幀的質量做到這一切的~..“不那麼重要”意思是過於耗費碼率又難以用肉眼察覺的幀....省下來的碼率會用在其它更有效的幀裏..
其實crf就是一個浮動qp模式..其按照特定的標準..根據人眼的需求..給予每幀不同的qp值 .但玩好crf模式..和aq..psy..qcomp等參數都脫不開關係..後面會講到~

需要注意的是crf模式無法預測最終文件體積..


-------------------------另一種解釋----------------------------------------------------


碼率控制
qp
默認值: 未設置
三種可用的碼率控制方法之一。以恆定量化值(Constant Quantizer)方式編碼。此選項的參數用於指定 P 幀量化值。I 和 B 幀的量化值由 --ipratio 和 --pbratio 控制。CQ 模式的目標是恆定的量化值,這就意味着最終文件大小不可知(儘管能用一些方法預測)。參數 0 表示無損輸出。同等的視覺質量下, qp 比 --crf 產生的文件要大。由於固定量化值的緣故,qp 模式會關閉自適應量化。
本選項與 --bitrate 和 --crf 是互相排斥的,就是三選一的意思。欲詳細瞭解碼率控制,參見http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD。
可以使用 --crf 代替 qp,不過 qp 模式不需要預分析會更快一些。
參照: --bitrate, --crf, --ipratio, --pbratio

bitrate
默認值: 未設置
碼率控制方法之二。以比特率(bitrate)作爲目標的編碼方式。最終文件大小可知,但最終圖像質量不可知。x264 把給定的比特率作爲總平均值來作爲目標,也就是說每幀的比特率可能不符合給定的比特率,但是總體平均比特率符合給定的比特率。比特率的單位是 kilobits/sec(8bits = 1字節)。需要注意的是 1 kilobit 是 1000 bits,而不是 1024 位。
這個選項常和 --pass 一起用於2遍編碼。
本選項與 --qp 和 --crf 是互相排斥的,就是三選一的意思。欲詳細瞭解碼率控制,參見http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD。
參照: --qp, --crf, --ratetol, --pass, --stats

crf
默認值: 23.0
最後的碼率控制方法:恆定比例因子。(Constant Ratefactor。也叫恆定質量)。qp 的目標是確定的量化值,bitrate的目標是確定的文件大小,crf 的目標是確定的‘質量’。這個概念就是 crf n 能給人以 qp n 相同的視覺質量,僅僅體積小一些。crf 的單位是“ratefactor”。
crf 依靠降低‘不太重要’幀的質量來達到減小體積的目的。在這裏,‘不太重要’是指幀包含複雜或高速運動的場景,在這些地方保持與其它地方相同質量的代價很高(即耗費比特)且又缺乏可視性(就是正常播放的時候看不清楚的意思),就增加它們的量化值(量化值越大圖像質量越差)。把節省下的比特用到刀刃上。
crf 比2遍編碼方式節省時間,因爲它少了一次編碼。另外,crf 的最終比特率是不可預測的,即文件大小不可知。使用哪種碼率控制方式取決於你。
本選項與 qp 和 --bitrate 是互相排斥的,就是三選一的意思。欲詳細瞭解碼率控制,參見http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD。
參照: --qp, --bitrate


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章