《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的AVS幀內(nèi)預測電路設計
基于FPGA的AVS幀內(nèi)預測電路設計
來源:電子技術應用2013年第8期
李文軍,王祖強,徐 輝,張貞雷
山東大學 信息科學與工程學院,山東 濟南250100
摘要: 提出了一種AVS高清視頻編碼器幀內(nèi)預測模塊硬件結構。通過對AVS幀內(nèi)預測各個預測模式的分析,設計了幀內(nèi)預測編碼流水線結構和模式預測運算單元電路。根據(jù)各預測模式的編碼運算關系,合理安排流水線結構,采用8 bit數(shù)據(jù)并行流水處理,實現(xiàn)了高清視頻幀內(nèi)預測實時編碼。將除Plane模式之外的其他預測模式采用同一硬件電路來實現(xiàn),對運算比較復雜的Plane模式單獨設計了硬件結構,節(jié)省了硬件資源。
中圖分類號: TN919.8
文獻標識碼: A
文章編號: 0258-7998(2013)08-0050-04
FPGA-based design of intra mode prediction in AVS video encoder
Li Wenjun,Wang Zuqiang,Xu Hui,Zhang Zhenlei
School of Information Science and Engineering, Shandong University, Jinan 250100,China
Abstract: In this paper, a hardware architecture of AVS HD intra predictor is proposed. After the analysis of each prediction mode, a pipeline of the intra prediction encoder and the hardware of processing element are designed. According to the relationship of each prediction mode, the pipeline is reasonable organized. The encoder can encode 8 pixels in one cycle and realize the HD video sequences real-time encoding. All of the prediction modes but Plane mode are implied in the same hardware circuit and the Plane mode is implied in a different hardware, which saves the hardware resources. The design improves the usage of the hardware.
Key words : AVS;intra prediction;hardware architecture;pipeline;parallel processing

    AVS(Audio Video coding Standard)是由中國數(shù)字音視頻編解碼技術標準工作組制定的標準,是國內(nèi)第一個針對音視頻產(chǎn)業(yè)需求而制定的標準。AVS-P2標準面向標清、高清視頻編碼應用,其采用了與H.264類似的技術框架。AVS標準在獲得高編碼效率的同時降低了實現(xiàn)的復雜度[1]。

    幀內(nèi)預測編碼器包含編碼過程和重建過程兩個方向的碼流分支。編碼過程包括幀內(nèi)預測模式選擇、整數(shù)DCT變換、量化、熵編碼等過程;重建過程則將編碼過程中量化后的殘差系數(shù)進行反量化反變換,最終得到重建像素[2]。圖1所示為幀內(nèi)預測編碼器的硬件架構。編碼器在預測一個8×8像素塊時,需要使用相鄰塊的重建像素作為參考樣本,編碼器需要等待相鄰子宏塊完成最優(yōu)預測模式選擇、變換量化和反量化反變換后才能對當前子宏塊進行預測,這種編碼方法需要合理設計編碼流水結構來保證編碼速度。針對上述問題,本文提出一種幀內(nèi)預測硬件結構,使用重建像素作為參考樣本,具有相同預測值求解算法的預測模式共用一個預測器,在進行編碼時無需等待參考樣本重建過程,其并行處理電路結構提高了數(shù)據(jù)處理速度并且兼顧了編碼圖像的質(zhì)量。
1 幀內(nèi)預測算法分析
    AVS幀內(nèi)預測亮度塊和色度塊均采用8×8塊,亮度塊共有5種預測模式,色度塊有4種預測模式,其中色度預測模式有3種與亮度預測模式算法相同。幀內(nèi)預測模式如表1所示。


 
    參考文獻[3]提出的幀內(nèi)預測電路使用原始像素作為預測塊的參考樣本,在這一預測過程中編碼器無需等待相鄰塊完成重建過程,這種方法雖然提高了編碼的速度,但也降低了編碼圖像的質(zhì)量[4]。針對上述問題,本文設計了幀內(nèi)預測的并行流水線結構,在對8×8像素子宏塊進行幀內(nèi)預測時,像素重建過程與像素預測過程同時進行,幀內(nèi)預測編碼器無需等待重建過程,提高了編碼效率。具體流水線設計如下文所述。
    AVS標準中規(guī)定,對一幀圖像進行編碼時是以宏塊為單位進行編碼,宏塊內(nèi)編碼則是以子宏塊編號依次進行,亮度塊與色度塊分別編碼。在對圖3所示8×8子宏塊F進行幀內(nèi)預測時,相鄰的上邊和左邊宏塊已經(jīng)完成了重建過程,參考樣本存入寄存器中等待使用。當前預測塊F為0號子宏塊時,幀內(nèi)預測使用的參考樣本均來自相鄰宏塊的重建像素且參考樣本A、B、C、D、E均可用;當前預測塊F為1號子宏塊時,來自相鄰宏塊的參考樣本A、B、E和來自0號子宏塊的參考樣本C可用,其他參考樣本均不可用;當前預測塊F為2號子宏塊時,分別來自0號和1號子宏塊的參考樣本A、B和來自相鄰宏塊的參考樣本C、E可用,其他參考樣本均不可用,對于來自1號子宏塊的參考樣本,只用到參考樣本塊B中的第一個樣本(即參考樣本r[9]),由于相鄰像素之間相似度很大,本文使用參考樣本r[8]代替r[9],這樣只需使用0號子宏塊的重建像素;當前預測塊F為3號子宏塊時,來自0號、1號和2號子宏塊的參考樣本E、A、C和來自相鄰宏塊的參考樣本B可用,宏塊內(nèi)的依賴性最強。同樣可以得出,色度子宏塊編碼時在宏塊中沒有依賴性。所以在對子宏塊逐塊進行編碼時,可以在亮度子宏塊預測過程之間插入色度子宏塊的預測過程。幀內(nèi)預測器流水線設計如圖4所示。由于1號、2號子宏塊的參考樣本均只來自0號子宏塊的重建像素,因此可以依次對這兩個子宏塊進行預測,再對V色度子宏塊進行預測,最后對3號子宏塊進行預測。在對色度塊進行預測的同時亮度塊進行重建,在流水編碼時無需等待相鄰子宏塊的重建像素,提高了工作效率。

3 并行幀內(nèi)預測電路硬件設計
    幀內(nèi)預測編碼器的另一個設計重點是模式預測電路的硬件設計。參考文獻[5-6]提出了針對H.264中幀內(nèi)預測的可重構硬件電路。該電路可根據(jù)預測模式的不同對運算模塊和數(shù)據(jù)通路進行重構,從而達到對資源的最優(yōu)化利用。其缺點是像素塊處理速度慢,不利于實現(xiàn)高清實時編碼。參考文獻[7-8]針對預測值求解算法相同的模式設計了一個共用的預測器,從而優(yōu)化硬件資源。本文采用第二種方法,通過分析各預測模式之間的關系,設計出一個模式通用的預測器,并采用8路數(shù)據(jù)并行處理,解決了可重構硬件電路處理速度慢的問題。
    分析亮度和色度的預測模式算法,本文將幀內(nèi)模式預測電路分為兩部分,亮度塊預測模式通用電路模塊和Plane模式預測電路模塊。
3.1 亮度預測模式電路設計
    本文設計了8像素并行處理結構,即預測電路一個時鐘完成8個像素預測,完成一個8×8子宏塊所有模式的預測并得到最優(yōu)預測模式最多需要8×5=40個時鐘。分析模式預測算法,Vertical和Horizontal模式直接輸出參考樣本為預測樣本值,即預測值為對應行或列的r[i]或c[i]值,只需要將參考像素RAM中的值直接輸出;DC、Down_Left和Down_Right模式結構中,均有兩次(a+2×b+c+2)>>2的運算過程,其中a、b、c為求取預測值相對應的參考像素,將其轉(zhuǎn)化為兩個并行結構的硬件電路,該電路只包含移位和加法器模塊,硬件結構簡單。該亮度預測模式硬件電路如圖5所示。

3.2 Plane預測模式電路設計
    Plane預測模式是幀內(nèi)預測中運算最復雜的模式[9],圖6所示是本文設計的Plane預測模式硬件電路。由于參數(shù)ia、ib、ic、ih和iv均是由已知的參考樣本經(jīng)過運算得到的,因此可以在編碼流水中提前在參考像素RAM中取出相應的參考像素并計算出ia、ib和ic的值供預測Plane模式時使用。在Plane預測模式中使用到的乘法運算均用移位來代替,節(jié)省了硬件資源。

    為了簡化Plane模式的硬件結構,假設A=ia+(-3)×ib+(-3)×ic+16,可以分析得出PredMatrix[x,y]=Clip1((A+x×ib+y×ic)>>5),其中x×ib和y×ic運算可以轉(zhuǎn)化ib和ic的移位加和運算。
4 仿真和綜合結果

 


    本文根據(jù)高清視頻實時編碼的實際要求,設計實現(xiàn)了AVS幀內(nèi)預測編碼器的硬件電路。該編碼器每個時鐘周期可處理8個像素,采用并行流水線結構對各個模式進行預測。該設計使用Verilog HDL語言完成硬件的編寫,選用Altera公司的Cyclone II 系列2C35 FPGA芯片進行了綜合和驗證,部分仿真結果如圖7所示。其中enable_A~enable_E表示為預測塊所用參考樣本的可用性,valid_mode表示有效模式輸出,PE0_out_reg~PE7_out_reg表示8個像素預測輸出。從仿真圖中可以看出,電路按照本文設計的流水線進行預測,每8個時鐘周期完成一個預測模式的預測,預測結果正確。本設計所占用的邏輯資源數(shù)量較少,節(jié)省了硬件資源;且本設計提出的并行流水線結構能夠提高幀內(nèi)預測電路的工作速度,滿足了高清視頻實時編碼的要求,對AVS高清視頻編碼芯片設計具有一定的意義。

參考文獻
[1] AVS工作組.信息技術先進音視頻編碼:視頻[M].北京:中國標準出版社,2006.
[2] 陳靖,劉京,曹喜信.深入理解視頻編解碼技術——基于 H.264標準及參考模型[M].北京:北京航空航天大學出版社,2012.
[3] Zhu Xiangkui,Yin Haibin,Gao Wen,et al.An intra prediction pipeline architecture design for AVS encoder[C].Consumer Electronics(ICCE),2010.
[4] Wang Tu-Chih,Huang Yu-Wen,F(xiàn)ang Hung-Chi,et al.Performance analysis of hardware oriented algorithm modifications in H.264[C].Acoustics,Speech,and Signal Processing,2003.
[5] Huang Yu-Wen,Hsieh Bing-Yu,Chen Tung-Chien,et al. Analysis,fast algorithm, and VLSI architecture design for  H.264/AVC intra frame coder[C].IEEE Transactions on Circuit and Systems for Video Technology,2005.
[6] 劉凌志,路奇,戎蒙,等.一種并行結構的H.264幀內(nèi)預測器[J].上海交通大學學報,2006,40(1):54-58.
[7] Huang Yu-Wen,Hsieh Bing-Yu,Chen Tung-Chien,et al. Hardware architecture design for H.264/AVC intra frame  coder[C].International Symposium on Circuits and System,2004.
[8] Kao Yu-Chien,Kuo Huang-Chih,Lin Yin-Tzu,et al.A  high-performance VLSI architecture for intra prediction and  mode decision in H.264/AVC video encoding[C].Asia Pacific Conference on Circuits and Systems,2006.
[9] 宋健,王祖強,秦盼.H.264視頻解碼器中幀內(nèi)預測模塊的硬件設計[J].電子技術應用,2011,37(10):53-59.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。