《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > AVS解碼器中幀內預測模塊的設計與實現

AVS解碼器中幀內預測模塊的設計與實現

2009-05-27
作者:袁 鯤,張衛寧,李曉燕,趙建全

  摘 要: 闡述了AVS視頻解碼器的總體框架,詳細分析了幀內預測的原理與算法,提出了一種可行的幀內預測解碼器的硬件設計, 給出了每一模塊的功能和結構的詳細介紹,并建立了一種高效的存儲機制。通過FPGA平臺的驗證,表明本設計完全滿足AVS標清視頻的實時解碼要求。
  關鍵詞: 音視頻編碼標準;解碼器;幀內預測; 現場可編程門陣列

?

  隨著信息技術和計算機互聯網的飛速發展,多媒體信息已成為人類獲取信息的重要載體。經數字化處理后的多媒體信息具有易加密、抗干擾、可再生等優點,但其數據量大的特點也對信息存儲設備及通信網絡均提出了很高要求。因此,尋找更有效的編解碼技術已成為目前電子領域的主要研究問題之一。
  AVS(Audio Video Coding Standard)標準是由中國數字音視頻編解碼技術標準工作組(簡稱AVS工作組)提出、具有自主知識產權的數字音視頻編解碼技術標準。AVS標準包括系統、視頻、音頻、移動視頻等9個部分,其中《第2部分 視頻》[1](簡稱AVS視頻)于2006年3月實施, 主要面向高清晰度和高質量數字電視廣播、數字存儲媒體和其他相關應用。它具有四個主要特點[2]:(1)先進性,以H.264標準為起點,選用的技術具有國際前沿水平;(2)性能高,編碼效率比MPEG-2高2倍以上,與H.264的編碼效率相當;(3)復雜度低,算法復雜度明顯低于H.264;(4)專利授權模式簡單,費用明顯低于同類標準。
  本文就AVS解碼器的幀內預測模塊的設計與實現進行討論,介紹了AVS解碼器總體設計的架構和各功能模塊。在介紹了幀內預測原理的基礎上,詳細描述了一種適于AVS幀內預測解碼的硬件實現方法,提出了可行的流水線并行操作與存儲機制。最后給出了實驗數據與仿真波形。
1 解碼器總體設計結構
  解碼器的結構[3]由系統控制模塊(System controller)和各功能模塊(Data processing)兩大部分組成,如圖1所示。

  功能模塊之間的數據以8×8塊為單位流水處理,輸入的碼流經過變長解碼模塊VLD(Variable Length Decoder)解析后,一部分反饋給系統控制模塊,該模塊可以接收標志信號、轉換相應控制狀態、發出使能信號、并統一時序等,控制各功能模塊之間的數據傳遞與通信;一部分經過反掃描模塊IZZ(Inverse ZigZag)、反量化模塊IQ(Inverse Quantizer)和反變換模塊IT(Inverse Transformer)恢復原始殘差數據;一部分經過幀間預測(interframe prediction)或者幀內預測IPRED(Intraframe PREDiction)模塊恢復預測值,并與殘差值疊加,由環路濾波模塊LF(Loop Filter)處理, 重建的數據回寫入WB(Write Back)SDRAM,為顯示(Display)輸出使用和后續的預測提供參考。
2 幀內預測模塊的原理與設計
  幀內預測技術是一項提高I幀壓縮性能的關鍵技術。幀內預測的壓縮原理是利用圖像內部特別是圖像平滑部分相鄰像素間的相關性來降低編碼碼率,也就是通過減少空間冗余來實現壓縮的目的。
2.1 幀內預測原理
  幀內預測是利用當前塊左邊和上邊可用的相鄰塊的邊緣像素進行預測,得到當前塊的預測值,再將預測值與實際的像素值相減得到預測殘差。編碼時只對量值較小的預測殘差進行熵編碼,以減少碼流的大小,這樣就可以達到既精確又高效的壓縮目的。
  解碼時用已解碼的相鄰塊邊緣像素值和當前塊的預測模式求得當前塊的預測值,再與IT、IQ處理后恢復的殘差值疊加,即可重構原始圖像像素值。這里用作參考的像素值是沒有經過環路濾波的數據,環路濾波過程要在一幀的數據預測完成時才進行。
2.2 AVS幀內預測算法
  AVS解碼器的幀內預測都是以8×8塊為單位,分為亮度(luma)和色度(chroma)預測兩種,如圖2所示。其中,色度預測包括17個參考像素點,有4種預測模式;亮度預測包括33個參考像素點,有5種預測模式。

  亮度和色度的某些預測模式相同,綜合起來包括以下6種[1](其中,r[i]和c[i](i=0~16)分別為上邊和左邊參考像素點(r、c可表示亮度或色度),預測完成后得到一個8×8的預測樣本矩陣predMatrix):
  (1)Vertical模式
  若r[i](i=1~8)可用,則利用上邊沿像素垂直預測:
  predMatrix[x,y]=r[x+1](x,y=0~7)
  (2)Horizontal模式
  若r[i](i=1~8)可用,則利用左邊沿像素水平預測:
  predMatrix[x,y]=c[x+1](x,y=0~7)
  (3)DC預測模式
  (a)若r[i]、c[i](i=0~9)都可用,則利用當前像素值對應上邊、左邊參考像素的低通濾波值預測:
  predMatrix[x,y]=((r[x]+2×r[x+1]+r[x+2]+2)>>2+(c[y]+2×c[y+1]+c[y+2]+2)>>2)>>1(x,y=0~7);否則
  (b)若r[i](i=0~9)可用,則利用當前像素值對應上邊參考像素的低通濾波值預測:
  predMatrix[x,y]=(r[x]+2×r[x+1]+r[x+2]+2)>>2
 ?。▁,y=0~7);否則
  (c)若c[i](i=0~9)可用,則利用當前像素值對應左邊參考像素的低通濾波值預測:
  predMatrix[x,y]=(c[y]+2×c[y+1]+c[y+2]+2)>>2
  (x,y=0~7);否則
  (d)predMatrix[x,y]=128(x,y=0~7)。
  (4)Down_left預測模式
  若r[i]、c[i](i=1~16)均可用,則利用當前像素所在的對應連線兩端的參考像素的低通濾波值預測為:
?  predMatrix[x,y]=(r[x,y+1]+2×r[x,y+2]+r[x,y+3]+2)>>2+(c[x,y+1]+2×c[x,y+2]+c[x,y+3]+2)>>2)>>1(x,y=0~7)
  (5)Down_right預測模式
  若r[i]、c[i](i=0~16)均可用,則利用當前像素所在的對應連線頂端的參考像素的低通濾波值預測:
  如果x=y,predMatrix[x,y]=(c[1]+2×r[0]+r[1]+2)>>2
  (x,y=0~7);
  如果x>y,predMatrix[x,y]=(r[x-y+1]+2×r[x-y]+r[x-y-1]+2)>>2(x,y=0~7);
  如果y>x,predMatrix[x,y]=(c[y-x+1]+2×c[y-x]+c[y-x-1]+2)>>2(x,y=0~7)。
  (6)Plane預測模式
  若r[i]、c[i](i=1~8)均可用,
?  predMatrix[x,y]=Clip1((ia+(x-3)×ib+(y-3)×ic+16)>>5)(x,y=0~7)。
  
???
2.3 幀內預測的硬件設計
  文中所設計的幀內預測總體結構如圖3所示。包括三部分:TopIICT模塊、TopIntrapred模塊和Topcombination模塊。TopIICT模塊完成經過反整數余弦變換IICT(Inverse Integer Cosine Transformer)求得殘差數據;TopIntrapred模塊完成由預測模式和相鄰參考值求得預測值;Topcombination模塊完成對上述兩組數據的重建,恢復原始數據并存儲。因為對于4:2:0采樣格式的視頻序列,一個宏塊的亮度包含四個8×8塊,而兩個色度均只包含一個8×8塊的特點,這就決定了一個宏塊的亮度和兩種色度預測是可以并行執行的,所以如圖3的總體結構對亮度和色度均適用。其中加入FIFO的設計是為了緩沖兩路數據,并統一時序,使系統能夠并行操作。

?

2.3.1 TopIICT子模塊結構
  TopIICT模塊是幀內和幀間預測都會使用到的模塊,并且由于其復雜的運算過程使得其耗時較多,其他與之并行的模塊都要等待該模塊,以便統一時序進行下一步處理。該模塊設計的效率偏低,不僅會影響系統效率,還會造成存儲其他等待數據對空間的占用和浪費。因此,本文針對該模塊提出了如圖4所示的一種高效可行的并行流水操作的硬件設計方法。

?


  處理的數據以8×8塊為單位,TopIICT模塊在第一個時鐘以8×16 bit并行接收一組8個像素的數據,送入第一級的行處理子模塊row1,并由EN1sign控制模塊控制行處理子模塊rowN(N=2~8),對接下來7個時鐘依次接收的7組行數據流水處理。同樣,由EN2sign控制模塊控制第二級的列處理子模塊colN(N=1~8),對第一級的數據按列重分組后流水處理,最后由Rdsign控制模塊控制第二級的數據再次按行重分組,從位寬8×9 bit的輸出端口經過八個時鐘串行輸出,完成對一個8×8塊的變換。由于設計中前兩級都采用了流水例化8個子模塊,使得8組數據可以在系統中并行操作,雖然硬件開銷有所增加,但實驗表明,TopIICT模塊的運行速度顯著提高。
2.3.2 TopIntrapred子模塊結構
  前面指出,由于亮度和色度預測模式具有相容性,所以可以將兩種預測設計在一個模塊中,如圖5所示。


  設計中,Blockjudge子模塊的功能是由系統計數的BlockNum變量判斷當前塊在一幀圖像中的位置,從而決定當前塊的相鄰塊邊緣像素的可用性,為下一子模塊提供參考像素。Intrapred子模塊的功能是利用參考像素值及其可用性,結合解析出來的預測模式語法元素,共同求得當前塊的預測值。其中,六種預測模式都已并行掛起,某個塊具體解碼時由當前塊的預測模式所決定。該部分設計同樣是以8×8塊為單位,一個8×8塊的預測結束后,位寬8×8bit的輸出端口由8個時鐘依次輸出得到的8組行數據。
2.3.3 Topcombination子模塊及存儲機制
  該部分主要實現將預測值和殘差值兩組數據的疊加,重建原始數據并存儲于RAM空間。對處理完的數據存儲有兩條途徑:一是將所有數據存儲于外部RAM空間,以備幀間預測時用作參考像素,或是一幀像素存儲完成后進行環路濾波;二是將當前塊的邊緣像素存儲于片內RAM,以備當前幀其他塊幀內預測時用作參考像素,避免因頻繁從外部RAM讀取數據造成的耗時。以色度Cb的存儲機制為例介紹,如圖6所示。

  對于4:2:0采樣格式的視頻序列,一個宏塊的亮度對應一個8×8塊的色度,所以設計中開辟的片內RAM空間位寬64 bit,深度由一幀圖像以亮度宏塊為單位的長度LengthinMB決定,大小為2×LengthinMB+1。其中,地址addr0始終用來存儲每個色度塊的最右列的八個重建后的像素值。由于重建的過程以行數據為基本單位,所以要等一個塊的最后一行數據重建完才能將每一行的最后一個重建值組成一個新的64 bit數據存入addr0。由于每一個塊的最右列像素僅被其右邊的一個塊用作參考像素,且右邊塊在解碼順序上又是緊接著當前塊,所以每個預測完成塊的最右列都可以覆蓋前一塊的最右列的存儲地址,使該空間重復利用以達到節省的目的。而一幀圖像每一行最后一個塊的右邊緣不再存入addr0,而是以0x80代替,以便下一行第一個塊使用。
  地址addrN(N=2M-1,M=1~LengthinMB)用來存儲一行LengthinMB個塊的每個塊最下列八個像素,以備下一行對應塊用作參考,且在下一行對應塊最下列重建后被覆蓋。因為當前塊的最下列要等待一行的數據重建后才會被下一行的對應塊用作參考像素。
  而地址addrN(N=2M,M=1~LengthinMB)則是用來存儲一行LengthinMB個塊的每塊右下一個像素,以備下一行對應塊的右邊塊用作左上參考值。由于該像素的特殊性,對于這些數據的存儲也要特殊對待。在當前塊重建完成并存儲該像素點于對應地址之前,先將對應地址的原數據左移8位,以備下一塊用作左上參考值,再將當前塊該像素存入對應地址的低8位。當重建一幀圖像的最后一行的塊時,用0x80代替最下列和右下像素,以便下一幀第一行塊的使用。
  色度Cr的存儲機制與Cb完全相同,且二者是順序執行的,而亮度也和色度的存儲機制基本一致,且與色度并行。只是由于亮度預測需要更多的參考點,RAM空間的深度也要相應增加。這一片內RAM存儲機制的建立,大大減少了系統與外部RAM的數據通信,縮短了系統的運行周期,有助于實時性的提高。
3 實驗結果
  按此方案設計的幀內預測解碼單元,在Xilinx的ISE環境下,用Verilog HDL硬件描述語言實現,并采用Xst工具進行綜合, Modelsim工具進行仿真,與C語言實現的AVS解碼器參考代碼 rm52j 的中間結果進行比較,結果表明二者完全一致。該設計完全滿足幀內預測解碼器的要求,仿真結果如圖7所示。

?


  根據AVS幀內預測的特點,提出了一種AVS幀內預測解碼器的硬件結構,充分利用了流水線、并行、資源復用等設計思想,并盡可能少使用存儲器資源,非常適合于ASIC設計。用Xilinx公司的Virtex4系列的XC4VSX35型FPGA,綜合出來的頻率達到133 MHz,完全滿足AVS標準清晰度(720×576,30 f/s)視頻的實時解碼要求。


參考文獻
[1] 數字音視頻編碼技術標準工作組.信息技術 先進音視頻編碼 第2部分:視頻(GB/T 200090.2-2006).中國國家標準化管理委會,2006.
[2] 生濱.AVS視頻編解碼芯片關鍵部件的體系結構研究與設計博士畢業論文.
[3] 胡倩,張珂,虞露.AVS 視頻解碼器的一種結構設計與硬件實現[J].浙江大學工學報,2006(12).
[4] 高文,黃鐵軍.信源編碼標準AVS及其在數字電視中的應用[J].電視技術,2003(11).
[5] 王爭,劉佩林.AVS幀內預測算法及其解碼器的硬件實現[J].計算機工程與應用,2006(19).

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 91视频一88av | 久久99国产亚洲高清观看首页 | 女攻高h全肉污文play | 一个人看的www在线播放 | 欧美成人性性 | 亚洲综合久久伊人热 | 日本一区二区三区中文字幕视频 | 欧美日韩国产动漫 | 男男1v1高h猛烈做哭bl强制 | 欧美成人hd | 日韩欧美中文字幕一区 | 国产精品27页 | 欧美三级欧美一级 | 精品福利一区 | 免费永久观看美女视频网站网址 | 亚洲国产成人久久笫一页 | 日本人在线看片 | 高清不卡毛片免费观看 | 国产色视频在线观看免费 | 欧美日韩一区二区三区高清不卡 | 日本一区高清视频 | 色老头在线官方网站 | 1769亚洲资源站365在线 | 动漫精品一区二区三区四区 | 国产专区日韩精品欧美色 | 日本国产一区在线观看 | 高清午夜看片a福利在线观看琪琪 | 色综合天天综久久久噜噜噜久久〔 | 国产精品成人免费视频 | 美女一级a毛片免费观看 | 最近免费字幕高清在线观看 | 亚欧成人中文字幕一区 | 在线视频观看免费视频18 | 色香欲亚洲天天综合网 | 91精品观看91久久久久久 | 无遮挡h黄漫画免费观看 | 亚洲va欧美va国产综合久久 | 在线播放亚洲精品 | 中国国产一国产一级毛片视频 | 岛国毛片在线 | 中国a毛片 |