1. 程式人生 > >H.264---碼率控制策略

H.264---碼率控制策略

maximum details iss 同時 地方 ext .net https 限制

轉自:https://blog.csdn.net/yuanray/article/details/54090014

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) 在一定的時間範圍內達到設定的碼率,但是局部碼率峰值可以超過設定的碼率,平均碼率恒定。

H.264---碼率控制策略