日韩专区一区,亚洲va综合va国产va中文,黄色精品国产,欧美黑人一级视频

視頻編解碼芯片設(shè)計原理----12 碼率控制

視頻編解碼芯片設(shè)計原理----12 碼率控制

視頻編解碼芯片設(shè)計原理----12 碼率控制

本系列主要介紹視頻編解碼芯片的設(shè)計,以HEVC視頻編碼標(biāo)準(zhǔn)為基礎(chǔ),簡要介紹編解碼芯片的整體硬件架構(gòu)設(shè)計以及各核心模塊的算法優(yōu)化與硬件流水線設(shè)計。

視頻編碼的實際應(yīng)用中,編碼器往往需要包含碼率控制模塊以確保編碼器的輸出碼率滿足存儲設(shè)備可提供的存儲空間、傳輸信道可提供的傳輸帶寬以及傳輸延遲的限制等條件。本章首先簡要說明了碼率控制的概念與三種基本方法,然后詳細(xì)說明了R-Q模型、URQ模型、R-λ模型以及R-λ模型的改進。

 

01





 

碼率控制的目的是在精確達到目標(biāo)碼率的同時盡可能改善編碼視頻的質(zhì)量,其主要分為兩個步驟,即比特分配和比特控制。比特分配過程通常是根據(jù)目標(biāo)碼率和視頻序列特性為每一個GOP、幀和基本單元分配適當(dāng)?shù)哪繕?biāo)比特數(shù)。比特控制過程是根據(jù)目標(biāo)比特數(shù),利用率失真模型計算量化參數(shù)或拉格朗日乘子進行編碼,使編碼器輸出每一個基本單元、幀和GOP的比特數(shù)盡可能等于預(yù)先的目標(biāo)比特。

為了更好地理解具體的碼率控制模型,首先介紹一些碼率控制方法。固定比特率編碼是指編碼器每秒輸出的比特數(shù)是常數(shù)。固定比特率編碼模式的編碼效率通常比較低,且在傳輸畫面細(xì)節(jié)較多的視頻序列時會出現(xiàn)畫面模糊等現(xiàn)象。可變比特率編碼是相對固定比特率編碼提出的概念,優(yōu)點是在保證視音頻質(zhì)量的情況下盡可能減小文件體積,缺點是不適用于對比特率穩(wěn)定程度要求較高的圖傳系統(tǒng)。平均比特率編碼是上述兩種方法的折中,通常設(shè)定有傳輸比特率的上下限。

 

02



AVCR-Q模型(JVT-N046)



 

JVT-N046提案中的碼率控制算法由GOP級碼率控制、圖像級碼率控制和基本單元級碼率控制組成。GOP級碼率控制完成以下工作:1)計算該GOP中剩余圖片的總目標(biāo)比特數(shù);2)刷新第一個參考幀的初始量化參數(shù)。具體來說,當(dāng)?shù)趇個GOP中的第j幀編碼時,該GOP中的剩余圖片的目標(biāo)比特數(shù)按下式計算:

其中f為預(yù)定義的編碼幀率,Ni是第i個GOP中的圖片總數(shù),Ri(j)是編碼第i個GOP中的第j幀時的信道速率,Bi(j)和bi(j)分別是目標(biāo)比特數(shù)和編碼實際產(chǎn)生的比特數(shù)。Vi(j)是編碼第i個GOP中的第j幀時虛擬緩沖區(qū)已占用的比特數(shù),會隨著編碼的進行按下式更新:

第一個GOP的第一個參考幀的量化參數(shù)QP由其像素深度(bpp)決定,其余GOP的第一個參考幀的QP值由其前一層GOP的初始QP或最后一幀QP值決定:

其中NP(i-1)是第(i-1)個GOP中的參考幀總數(shù),SumQP(i-1)是第(i-1)個GOP中參考幀的平均量化參數(shù)之和。

JVT-N046提案在GOP級碼率控制后緊接著進行圖像級碼率控制,主要完成兩步工作:預(yù)編碼和后編碼。預(yù)編碼是為了計算每一張圖片的量化參數(shù),后編碼則是根據(jù)實際的編碼結(jié)果更新預(yù)編碼中的參數(shù)。預(yù)編碼階段的非參考幀和參考幀的量化參數(shù)的計算方式略有不同。對于非參考幀量化參數(shù)的計算分為兩種情況,一是非參考幀的前后恰好均為參考幀:

另一種情況是兩個參考幀之間有多個非參考幀:

對于參考幀量化參數(shù)的計算,此提案分兩步計算,第一步為計算參考幀的目標(biāo)比特:

其中等式左項為參考幀的目標(biāo)比特數(shù),等式右項從左到右則分別表示圖像本身和緩沖區(qū)對于參考幀目標(biāo)比特數(shù)的影響。第二步為計算量化參數(shù)和進行率失真優(yōu)化:

  • 使用二階拋物線模型計算量化參數(shù)

其中σ~i(j)表示第i個GOP中第j幀的平均絕對誤差(MAD)。

  • 使用線性模型對當(dāng)前幀的MAD進行預(yù)測

其中a1和a2初始為1和0,會隨著編碼的進行不斷更新。

  ③  完成幀編碼與模型參數(shù)(即c1和c2,a1和a2)的更新。

JVT-N046提案的R-Q模型最后進行基本單元層的碼率控制。在一般情況下,一個基本單元由多個連續(xù)的宏塊組成。基本單元級的碼率控制與圖像級的碼率控制有相似之處,具體來說此級的碼率控制按照以下五步進行:

①  計算基本單元的MAD值。

②  計算基本單元的目標(biāo)圖片比特數(shù)。

③  使用二階拋物線模型計算量化步長并轉(zhuǎn)換為量化參數(shù)。

④  進行率失真優(yōu)化和基本單元編碼。

⑤  更新當(dāng)前幀的剩余比特數(shù)和模型參數(shù)。

 

03



HEVCURQ模型

(JCTVC-H0213)



 

隨著編碼標(biāo)準(zhǔn)的不斷更新,起源于AVC標(biāo)準(zhǔn)的R-Q模型已不適用于HEVC。JCTVC-H0213提案在JVT-N046的基礎(chǔ)上提出了基于像素級碼率控制的URQ模型。URQ模型使用與R-Q模型中相似的二階拋物模型,不過針對HEVC編碼標(biāo)準(zhǔn)做出了一定修改:

使用上式計算QP前需要完成以下兩步:1)幀級或LCU級比特分配,得到第i個GOP中第j幀的目標(biāo)比特;2)根據(jù)線性預(yù)測模型計算當(dāng)前幀的平均絕對誤差MADpred,i(j)。此提案中計算MAD依舊使用線性預(yù)測模型:

對于每一個GOP的第一個參考幀,由于不存在用于預(yù)測MAD的參數(shù),無法計算其QP。在此提案中,針對第一個GOP中的第一個參考幀和其余GOP中的第一個參考幀兩種情況進行不同的處理。對于第一個GOP中的第一個參考幀,直接使用預(yù)設(shè)的QP值,而對于其余GOP中的第一個參考幀則通過下式確定:

其中NGOP為當(dāng)前GOP中的參考幀數(shù)量。可以看出,除第一個GOP以外的其余GOP,其第一個參考幀QP取值幾乎由前一個GOP決定,而參考幀的QP又通過影響其MAD值影響其余幀的QP計算,因此預(yù)設(shè)QP的值對碼率控制的效果有著重要的影響。而HEVC的編碼模式相較H.264更加靈活多變,為不同視頻源在不同編碼模式下選擇合適初始QP值的難度更大。

 

04



HEVCR-λ模型

(JCTVC-K0103)



 

R-λ模型是通過建立R-λ的關(guān)系,而后根據(jù)λ進行碼率控制的模型。由率失真理論與率失真優(yōu)化中的拉格朗日成本函數(shù)可知-λ是R-D曲線的斜率,因此只要知道R-D曲線的關(guān)系即可知R-λ的關(guān)系。該提案采用了更好反映H.265/HEVC視頻碼率和失真關(guān)系的雙曲線模型:

通過上式λ和R可以互相確定。為了將圖像本身的特點和碼率控制聯(lián)系起來,利用bpp表示R:

其中f為視頻源的幀率,w和h分別為圖像的寬與高。

在此提案的模型中,碼率控制分為兩步:1)比特分配步驟確定目標(biāo)碼率R;2)由R-λ模型根據(jù)目標(biāo)R確定λ,由Q-λ模型根據(jù)λ確定QP,使用QP和λ完成編碼后更新模型參數(shù)α與 β。

比特分配過程分為GOP級、幀級和LCU級,首先GOP級比特分配如下進行:

其中TAvgPic為每幀的目標(biāo)比特數(shù),RPicAvg為目標(biāo)信道速率下的每幀的目標(biāo)比特數(shù),Ncoded為視頻序列已經(jīng)編碼的總幀數(shù),Rcoded為這些幀的實際編碼比特數(shù)。

在幀級與LCU級碼率分配中引入了權(quán)重ω的概念,每一幀和每一LCU依照自身權(quán)重與未編碼內(nèi)容的總權(quán)重之比在剩余的比特數(shù)中分配比特。幀級比特分配如下:

其中權(quán)重參數(shù)根據(jù)幀的編碼結(jié)構(gòu)以及bpp查表決定。

LCU級比特分配如下:

其中權(quán)重參數(shù)根據(jù)前一已編碼圖片中的同級LCU的MAD計算:

在比特分配完成后,使用R-λ關(guān)系確定λ,并根據(jù)確定的λ使用QP-λ關(guān)系式確定QP。確定QP與λ后,便可對一個LCU或幀進行編碼。編碼完成后,便是更新編碼參數(shù)一步,α與β會按照一定的規(guī)則進行更新。

R-λ模型的擺脫了蛋雞悖論,另外λ在編碼過程中以浮點數(shù)參加運算,而R-Q模型中QP僅能以整數(shù)形式變化,相比于QP,模型對于λ的調(diào)整更加精細(xì)。不過,R-λ模型也存在一定問題。一是模型主要針對幀間預(yù)測編碼,而對幀內(nèi)預(yù)測編碼涉及較少。二是模型在更新α和β參數(shù)時方法較為簡單粗糙。三是模型在比特分配時權(quán)重參數(shù)不能很好地體現(xiàn)圖像特點。



05



  改進的R-λ模型

(JCTVC-M0257,

JCTVC-M0036)



 

01

JCTVC-M0257



M0257提案提出了一種幀內(nèi)碼率控制方案。在R-λ關(guān)系上進一步加入了復(fù)雜度C的影響:

其中復(fù)雜度C基于SATD來度量,SATD是將Hadamard變換應(yīng)用于原始8×8塊后獲得的系數(shù)絕對值之和。復(fù)雜度C還被用于LCU級的比特分配過程,LCU的權(quán)重為當(dāng)前單元的復(fù)雜度和同幀中所有未編碼的單元的復(fù)雜度累加結(jié)果之比:

此提案對LCU級比特分配時剩余比特數(shù)的計算進行了修正:

其中等式左項是修正后的剩余可分配總比特數(shù),W是平滑窗口系數(shù),此提案設(shè)為4,M是當(dāng)前幀的總單元數(shù)。

其中等式左項是計劃分配給每個單元(CTU)的初始比特數(shù),Rtarget是當(dāng)前幀的目標(biāo)比特數(shù)。

最后,針對K0103提案中參數(shù)更新較為粗糙的問題,該提案使用了更為復(fù)雜的參數(shù)更新模型。



02

JCTVC-M0036



JCTVC-M0036提案提出了一種自適應(yīng)比特分配方法,應(yīng)用于幀級和LCU級。該方法與M0257提案大致相同,不同的是此提案不是依靠復(fù)雜度計算權(quán)重,而是通過求解數(shù)值方程的方法解出當(dāng)前幀的權(quán)重。用于求解的方程組如下式所示:

該式表示了幀級比特分配的理想情況,即所有幀被分配的比特之和恰好等于GOP的目標(biāo)比特。另外,在未應(yīng)用碼率控制時對 HM 分析可知,各幀的λ之比和權(quán)重之比相等,如下式所示:

M0036提案針對幀內(nèi)編碼幀的碼率控制也做了一定改進,考慮到幀內(nèi)編碼所需比特數(shù)往往多于幀間編碼的特點,一方面將α的取值范圍上限由20擴大至500,這樣模型可通過大λ和大QP降低幀內(nèi)編碼消耗的比特數(shù),使其與幀間編碼消耗的比特數(shù)接近;另一方面將log(bpp)的范圍由[-5.0,1.0]更改為[-5.0,-0.1]使模型在大bpp下能夠更精細(xì)地調(diào)整參數(shù)更新的速度。

 

訂閱快訊

通過快訊訂閱,您將及時收到我們的信息更新通知。