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

視頻編解碼芯片設計原理----11 率失真優化

視頻編解碼芯片設計原理----11 率失真優化

視頻編解碼芯片設計原理----11 率失真優化


本系列主要介紹視頻編解碼芯片的設計,以HEVC視頻編碼標準為基礎,簡要介紹編解碼芯片的整體硬件架構設計以及各核心模塊的算法優化與硬件流水線設計。

低碼率的視頻更利于傳輸和存儲,但失真度會大大增加,相反,低失真度的高質量視頻則會使碼率增加,增大網絡傳輸的壓力。如何在視頻碼率和編碼質量之間權衡是視頻編碼中永恒的命題,這個過程稱之為率失真優化。

本文提出了一種硬件友好的碼率估計算法,依次介紹了算法優化和VLSI實現,最后對VLSI實現進行了性能評估。

 



概述



01

率失真曲線

如下圖所示,可操作率失真曲線包絡是一個靠近理論曲線的凸包絡。率失真優化的目的就是找到一組編碼參數使得對應的可操作點盡可能接近率失真曲線理論值,也就是在一組可能的操作點中確定使系統性能最優的操作點。

圖1

02

設計考量

視頻編碼過程中,幀內預測和幀間預測的后預測階段需要計算得到較為精確的失真代價和碼率代價。下面給出計算精確RDO代價所需的重建環路數據流圖。

圖2

為了保證失真代價的精確度,不可避免地需要計算經過重建環路的重建像素和原始像素的差異代價,這意味著要在RDO模塊中引入完整的重建環路,其中存在非常大的硬件資源代價和周期代價。前者主要來源于變換中4×4到32×32尺寸的DCT矩陣乘法,后者則由重建像素和預測像素之間的數據依賴導致。



算法優化






變換單元統計



對于系數編碼,盡管CABAC通過引入了上下文去除了大量的信息熵,但是絕大多數情況下碼率代價和TU系數之間仍然存在著正相關性,即當TU系數矩陣越復雜時,編碼其所需的碼流就越多?;诮y計的算法,其思路是:通過“某計算”得到能夠表征當前TU系數復雜程度的值,再通過“某映射”得到碼率代價。

本文采用了“帶權重的絕對值之和”作為表征TU系數復雜度的計算方法,計算下式所示。

其中x和y為系數在系數矩陣中的橫縱坐標,coef為系數矩陣。

確定了擬合輸入后,需要獲取擬合輸出,如下圖所示,分別給出了某視頻序列給定QP下32×32亮度TU和色度TU的映射情況。

圖3

本文利用Matlab對上述數據進行了函數擬合,采用的映射關系如下式所示。

為了進一步實現硬件化,算法做了以下優化:

1)數據定點化,根據數據的實際運算確定其要保留的小數位。

2)映射簡化,將上式中的b簡化為0.5。

3)x0.5的優化,基于7位查找表、定參數乘法器和移位器實現。

4)??的優化,將??合入擬合參數a和c中,節省一個乘法操作的cycle。



 

其他信息統計



除了系數矩陣,預測信息和劃分信息也經過熵編碼輸出為碼流,需要進行信息統計。

1、預測信息

對于幀內預測,HEVC通過構建MPM候選模式列表,將模式編碼轉換為Index或Index+Mode的編碼,如下表所示。

表1

對于幀間預測的非Merge模式,HEVC通過構建AMVP候選MV列表,將MV編碼轉換為Index+MVD的編碼。其中對Index的編碼較為簡單,如下表所示。

表2

對MVD的碼率估計算法較為復雜,MVD的編碼和系數矩陣類似,即MVD越大,碼率越大。通過下式將二維向量MVD轉化為一維標量fitIn。

計算fitIn和MVD碼率估計結果,如下圖所示,其中橫軸為fitIn,縱軸為碼率估計結果,最終選擇 y=ax+b 作為擬合函數。

圖4

對于幀間預測的Merge模式MV編碼,因為MV復用相鄰塊的MV,故只需要對Merge候選MV列表的Index(0~3)進行編碼,如下表所示。

表3

 

2、劃分信息

幀內和幀間預測劃分信息碼率估計如下表所示。

表4

 



VLSI實現



頂層架構及時序

視頻編碼中的率失真優化遞歸并不復雜,硬件實現中可以通過將RDO模塊展開為4×4、8×8、16×16、32×32、64×64這5個尺寸的計算模塊來提高并行度,只需要在關鍵節點上保持同步即可。

本文提出的架構如下圖所示。其中包括任務發布模塊、預測模塊、重建環路模塊、代價計算模塊和模式判決模塊。

圖5

圖中的箭頭標志數據流向,模式判決模塊的反箭頭表示存在feedback數據。同一PU的所有待遍歷模式之間沒有數據依賴,可以流水實現。重建環路中的數據依賴在4×4 PU中體現的最為明顯,因此4×4 PU的吞吐率是RDO模塊的瓶頸。

任務發布模塊

任務發布模塊的功能是遍歷所有PU,以及對應PU的所有編碼方式,即RMD和FME模塊傳輸過來的幀內預測模式信息和幀間預測MV信息。任務發布模塊的輸入為所有尺寸PU的粗略編碼方式,以下統稱幀內預測的角度模式和幀間預測的FMV為rough mode。

圖6

prt模塊中進行不同尺寸PU的Z-scan順序和色彩通道遍歷,輸出位置和通道信息去RAM中取數據。mod模塊根據讀取到的rough mode數據進行當前PU的編碼方式遍歷。mod模塊和prt模塊通過握手協議保持一致,在mod遍歷完當前PU的rough mode之前,prt模塊不會進行下一個PU的遍歷。

任務發布模塊是RDO過程中唯一的模式信息來源,其本身需要生成后續所有模塊中需要的mod類參數,如MVP_idx,MPM_idx等,下稱general mode,因此任務發布模塊中需要包括LCU級的Mode和MV寄存器陣列。任務發布模塊和后續不直接連接的模塊如代價計算模塊和模式判決模塊之間需要FIFO來暫存general mode。

 

預測模塊

預測模塊將完成幀內和幀間的預測過程。幀內預測時,預測模塊中僅src模塊與RAM(原始像素)存在交互,讀取原始像素;幀間預測時,src模塊和preP模塊會與RAM(原始像素)和RAM(參考像素)存在數據交互,讀取原始像素和參考像素。

圖7

參考像素的準備過程,即ref模塊和模式判決模塊中buffer rec的數據交互,和原始像素的讀取是同時進行的,因此所有尺寸的PU得到預測像素的延時是相同的。幀間預測過程中,參考像素和原始像素通過兩組接口在兩個RAM中分別讀取,因此不同尺寸的PU獲取預測像素的延時仍是相同的。

 

重建環路模塊

重建環路模塊的設計可參考往期推送——《視頻編解碼芯片設計原理----07重建環路》,硬件結構如下圖所示。

圖8



代價計算模塊

代價計算模塊的功能是計算失真代價和碼率代價,下圖為PU尺寸4×4和大于4×4兩種情況下的代價計算模塊時空圖。對于4×4塊,由于是一次性讀完PU所有數據,因此對于失真代價和碼率代價的計算是嚴格的1 cycle和3cycle限制。

圖9

代價計算模塊如下圖所示,主體為計算失真代價的dist模塊和計算碼率代價的rate模塊,param模塊提供算法中需要的參數信息。

圖10

對于失真代價(SSE)的計算,硬件中通過一組乘法器進行操作,可以在1cycle中完成且沒有時序壓力。對于碼率代價的計算,本文的算法將其分為三個模塊:lftI和lftP模塊對應其余編碼信息統計,coe模塊對應變換系數編碼信息統計,計算時序如下圖所示。

圖11

param模塊將放在配置寄存器中的參數和??相乘得到新的參數,這種做法是為了省掉一個乘法步驟,優化時序。通常一個LCU中的配置信息是固定,在LCU編碼開始,start信號使能時同時激活param模塊,在數據到達代價計算模塊前計算完成即可。

代價計算模塊引入兩組dist模塊是為了計算Skip模式的率失真代價。Skip模式也是編碼參數的一部分,所以在從代價計算模塊到模式判決模塊的數據傳遞過程中,會對任務發布模塊通過FIFO傳到模式判決模塊的general mode進行覆寫。



模式判決模塊

模式判決模塊的功能是根據代價計算模塊輸出的RDO代價對劃分和模式進行判決,其流程框圖如下圖所示。其工作流程如下:mod模塊收集當前PU所有遍歷模式的亮度和色度分量的RDO cost,并從中選出當前PU代價最小的編碼模式。當前四叉子樹的母節點和子節點的率失真代價都計算完畢之后,對當前子樹所在的塊進行判決。

圖12

整體上來看硬件RDO的遍歷思路是尺寸從小到大、深度由深到淺進行的。Buffer會暫存所有層級的最右列和最下行的編碼模式信息和重建像素。遍歷過程中,在確定了四叉子樹的最優模式和劃分后,將對應的模式和重建像素從對應層級的Buffer中取出來,feedback到前級。



性能評估

采用global foundry 28nm工藝在500M下進行綜合,得到RDO各模塊的資源代價如下表所示。

表5

本文提出的碼率估計算法VLSI實現(代價計算模塊)和其他基于統計方法的碼率估計算法VLSI實現對比如下表所示。增加非系數編碼信息碼率估計在rate計算模塊引入了較多LUT,但對RDO整體來說面積不大,在大大降低了周期和時序壓力的基礎上,將BD rate縮小了近一倍。

表6



 

參考文獻:

[1]Weiwei Shen, Yibo Fan, Leilei Huang.A Hardware-friendly method forrate-distortion optimization of HEVC intra coding[A].Technical Papers of 2014International Symposium on VLSI Design, Automation and Test. IEEE[C].IEEE,2014:1-4.

[2]Chang J H,Chang T S.Fast rate distortion optimization design for HEVC intra coding[A].2015IEEE International Conference on Digital Signal Processing[C].IEEE,2015:473-476.

 

訂閱快訊

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