H264三種碼率控制方法(CBR, VBR, CVBR)


CBR(Constant Bit Rate)是以恆定比特率方式進行編碼,有Motion發生時,由於碼率恆定,只能通過增大QP來減少碼字大小,圖像質量變差,當場景靜止時,圖像質量又變好,因此圖像質量不穩定。這種算法優先考慮碼率(帶寬)。

這個算法也算是碼率控制最難的算法了,因為無法確定何時有motion發生,假設在碼率統計窗口的最后一幀發生motion,就會導致該幀size變大,從而導致統計的碼率大於預設的碼率,也就是說每秒統計一次碼率是不合理的,應該是統計一段時間內的平均碼率,這樣會更合理一些。

 

VBR(Variable Bit Rate)動態比特率,其碼率可以隨着圖像的復雜程度的不同而變化,因此其編碼效率比較高,Motion發生時,馬賽克很少。碼率控制算法根據圖像內容確定使用的比特率,圖像內容比較簡單則分配較少的碼率(似乎碼字更合適),圖像內容復雜則分配較多的碼字,這樣既保證了質量,又兼顧帶寬限制。這種算法優先考慮圖像質量。

 

CVBR(Constrained VariableBit Rate),這樣翻譯成中文就比較難聽了,它是VBR的一種改進方法。但是Constrained又體現在什么地方呢?這種算法對應的Maximum bitRate恆定或者Average BitRate恆定。這種方法的兼顧了以上兩種方法的優點:在圖像內容靜止時,節省帶寬,有Motion發生時,利用前期節省的帶寬來盡可能的提高圖像質量,達到同時兼顧帶寬和圖像質量的目的。這種方法通常會讓用戶輸入最大碼率和最小碼率,靜止時,碼率穩定在最小碼率,運動時,碼率大於最小碼率,但是又不超過最大碼率。比較理想的模型如下:

 

ABR (Average Bit Rate) 在一定的時間范圍內達到設定的碼率,但是局部碼率峰值可以超過設定的碼率,平均碼率恆定。

 

轉自:http://blog.csdn.net/szfhy/article/details/50820119 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM