Video那些事--Rate Control Mode
CBR與VBR
CBR會在壓縮輸出的時候就把會每一秒的畫面都計算為固定的大小,運算量小,編碼時間短而且解碼算法也簡單,缺點是在畫面劇烈運動的時候會由于碼率不夠而丟失部分畫面信息。從視覺上來看就是畫面波紋嚴重,圖像不清晰,VBR的出現(xiàn)就是為了解決這個問題。
VBR(Variable Bit Rate)是可變碼率
CBR需要設置一個固定碼率。
VBR有三個參數(shù)分別是MAX,Average和MIN,即最大碼率,平均碼率和最小碼率。
DVD視頻文件平均碼率6Mbps,每一秒的視頻就是6Mbps/8=750KB,一小時的視頻大小就是750KB*3600=2700MB即2.7GB。
采用VBR壓縮視頻時,Encoder會先逐幀掃描一下,把運動量大的幀碼率調(diào)高,運動量小或是靜止的畫面碼率調(diào)低,保證平均后的碼率等于ARG值。
采用VBR壓縮視頻時,Encoder會先逐幀掃描一下,把運動量大的幀碼率調(diào)高,運動量小或是靜止的畫面碼率調(diào)低,保證平均后的碼率等于ARG值。
VBR的畫面質(zhì)量相對高,但運算量大壓縮時間長,解碼算法復雜,對解碼器的要求比較高。這就是很多手機可以播出CBR的RM視頻,卻播不了VBR的RMVB視頻的原因。
在MPEG4級壓縮的應用還出現(xiàn)了Bitrate VBR和Quality VBR即碼率控制與質(zhì)量控制,前者是單純的調(diào)整碼率達到平均值,后者復雜一些是根據(jù)圖像質(zhì)量而定所以并不能先給出一個平均值來,只是保證每一幀畫面的質(zhì)量達到要求,至于這一幀畫面為了保證質(zhì)量會達到什么樣的碼率值并不是提前知道的,當然這種運算就更復雜了。還有更高級的保持質(zhì)量的壓縮方式Two-pass即Two-pass Encoding 的先對影片作一次分析,即First-pass。此時整個影片檔案會被先作掃描,定義影片中的影格是動態(tài)或是靜態(tài),所以再決定相應的每一幀畫面的碼率來進行壓縮。
X264 中對于碼率控制方法有三種:X264_RC_CQP、X264_RC_CRF、X264_RC_ABR。默認情況是選擇 CRF 方法
介紹一下 X264 中使用到的與碼率控制相關的幾個概念:
-
CQP(Constant QP),恒定QP(Quantization Parameter),追求量化失真的恒定,瞬時碼率會隨場景 復雜度而波動,該模式基本被淘汰(被 CRF 取代),只有用”-pq 0”來進行無損編碼還有價值。
-
CRF(Constant Rate Factor),恒定質(zhì)量因子,與恒定 QP 類似,但追求主觀感知到的質(zhì)量恒定,瞬時碼率也 會隨場景復雜度波動。對于快速運動或細節(jié)豐富的場景會適當增大量化失真(因為人眼不易注意到),反之 對于靜止或平坦區(qū)域則減少量化失真。
-
ABR(Average Bitrate),平均碼率,追求整個文件的碼率平均達到指定值(對于流媒體有何特殊之處?)。 瞬時碼率也會隨著場景復雜度波動,但最終要受平均值的約束。
-
CBR(Constant Bitrate),恒定碼率。前面幾個模式都屬于可變碼率(瞬時碼率在波動),即VBR(Variable Bitrate); 恒定碼率與之相對,即碼率保持不變。
x264 并沒有直接提供 CBR 這種模式,但可以通過在 VBR 模式的基礎上做進一步限制來達到恒定碼率的目標。 CRF 和 ABR 模式都能通過--vbv-maxrate --vbv-bufsize來限制碼率波動。

浙公網(wǎng)安備 33010602011771號