天天看點

視訊編碼中CBR和VBR的差別

在視訊編碼中,有一個子產品是碼率控制,即通過選擇一系列編碼參數,使得視訊編碼後的比特率滿足所需要的速率限制,并且使編碼失真竟可能小。該子產品嚴格上不屬于視訊編碼标準,屬于率失真優化有兩範疇。碼率控制分為兩個步驟,一個是碼率配置設定,二是确定量化參數;

    在實際應用中,存在好幾種碼率控制方法,分别是CBR,VBR,ABR和CVBR,下面對着四個技術進行展開:

CBR:constant bitrate

     顧名思義,以恒定比特率方式進行編碼,有運動發生時,由于碼率恒定,隻能通過增大QP來減少碼字大小,圖像品質變差,當場景靜止時,圖像品質又變好,是以圖像品質不穩定。這種算法優先考慮碼率(帶寬)。适合在流式播放中應用。CBR編碼的缺點在于編碼内容的品質不穩定,容易産生馬賽克。因為對于某些較複雜的圖像比較難壓縮,是以CBR流的某些部分品質就比其他部分差。

   具體的,一段視訊一共有10分鐘,我們設定的碼流為1M,那麼這個視訊中每一秒的畫面都是1M碼流。

VBR:variable bitrate

    顧名思義,即以可變的比特方式進行編碼,比特配置設定根據圖像内容的複雜度進行。如果圖像細節較豐富或者含有大量的運動,則給其配置設定大一點的碼流,若圖像比較平坦,就給其配置設定較少的碼流,   這樣既保證了品質,又兼顧帶寬限制。這種算法适合圖像内容變化幅度較大的情況;

    适合的應用場景是媒體存儲,不适合網絡傳輸;

ABR:average bitrate

      平均比特率,是在CBR和VBR兩者之間的一種權衡,即設定一段時間的平均碼率,在此時間内,對簡單,靜态的圖像配置設定低于平均碼率的碼率,對于複雜的,大量運動的圖像配置設定高于平均碼率的碼流;

   适合網絡傳輸;

CVBR:Constrained VariableBit Rate

     是VBR的一種改進方法,對應的Maximum bitRate恒定或者Average BitRate恒定。兼顧了CBR和VBR的優點:在圖像内容靜止時,節省帶寬,有運動發生時,利用前期節省的帶寬來盡可能的提高圖像品質,達到同時兼顧帶寬和圖像品質的目的。這種方法通常會讓使用者輸入最大碼率和最小碼率,靜止時,碼率穩定在最小碼率,運動時,碼率大于最小碼率,但是又不超過最大碼率。比較理想的模型如下:

視訊編碼中CBR和VBR的差別

      碼率控制:

      對幀間圖像進行碼率控制:

       可以根據被參考的重要性來配置設定碼率,如過某個幀經常被參考,則給他配置設定多點的碼率,如果沒有被參考,則可以配置設定少點的碼率;

 對幀内圖像怎麼進行碼率控制;

      細節多的配置設定少點的碼率,比如石頭,樹枝,運動物體配置設定少點碼率,因為被參考的可能性不大;

如果一個塊被選中是幀内模式,怎麼改可以讓它選擇幀間模式;

     改lamda?碼率控制?不知道;

    在做足球直播時,固定碼率好還是固定QP好?固定QP好,可以節省碼率;

如果固定碼率,則在畫面靜止時會浪費帶寬,而固定QP時,畫面靜止時也不會浪費太多的比特;