《電子技術應用》
您所在的位置:首頁 > 可编程逻辑 > 解决方案 > H.264/AVC High Profile视频编码中自适应变换模块的设计

H.264/AVC High Profile视频编码中自适应变换模块的设计

2011-12-28
作者:姜 英,王桂海
來源:来源:电子技术应用2011年第11期

摘  要: 提出了一種可配置的整數變換運算單元并將其用于H.264/AVC High Profile視頻編碼器的自適應變換模塊中。通過變換類型信號的配置,該變換單元可以完成相應的變換操作。本設計采用Altera公司的Cyclone II系列FPGA進行實現(xiàn)和驗證,布局布線后的最大工作頻率為63 MHz,采用4個可配置變換單元的變換模塊,可以滿足HD1080P@50幀/s視頻的實時編碼要求。
關鍵詞: 自適應變換;硬件復用;離散余弦變換哈達瑪變換;H.264 High Profile視頻編碼器

    2004年7月,JVT組織發(fā)布了H.264/AVC標準的高保真度擴展(FRExt)部分,該部分引進了自適應尺寸變換(ABT)[1],變換類型由4×4變換改為可以在4×4和8×8變換之間進行自適應選擇。
    采用幀內4×4和幀內16×16預測模式得到的亮度分量預測殘差進行4×4 DCT;采用幀內8×8預測模式得到的亮度分量預測殘差進行8×8 DCT。采用幀間預測模式得到的亮度分量預測殘差,如果預測模式塊不大于8×8,則使用4×4 DCT,否則編碼器需要在4×4 DCT和8×8 DCT之間進行選擇。色度分量預測殘差全部使用4×4 DCT。H.264參考軟件JM采用的變換類型選擇算法是:分別求一個宏塊的亮度分量預測殘差的4×4 SATD和8×8 SATD,選取SATD值小的變換尺寸為離散余弦變換的變換尺寸。
1 可配置的變換運算單元的設計
    該可配置的變換運算單元能根據配置信號完成二維的4×4正、反變換操作和一維的8×8正、反變換變換操作。這個運算單元的多個例化構成用于整個編碼器中的自適應變換模塊。
1.1 前向變換
    (1)4×4整數余弦變換:根據矩陣理論中的克羅內克積和矩陣的對稱性[2],二維4×4 DCT能夠寫成:

    (3)8×8整數余弦變換:通過二維變換的行列分解,二維4×4 DCT能夠寫成二維8×8 DCT:
    Y8=Cf8X8Cf8T=Cf8(Cf8X8T)T(3)
    參考文獻[3]給出了快速1D 8×8整數余弦變換算法。
    (4)整合的前向變換單元:通過運算資源共享,式(1)、式(2)、式(3)中的運算能用同一個結構實現(xiàn),如圖1所示。對于4×4變換,當PHASE=1時,第一級運算為加法運算,得到的是一個4×4二維變換系數塊的第0行和第2行數據;當PHASE=0時,第一級運算為減法運算,得到的是一個4×4二維變換系數塊的第1行和第3行數據。在最后一級加法中,實線是4×4變換的路徑,虛線是8×8變換的路徑。

1.2 反向變換
    (1)4×4 整數余弦反變換:4×4 iDCT能進一步寫成:

    (2)8×8哈達瑪變換:參考文獻[2]將一個8×8的預測殘差塊劃分成2個4×8塊進行運算。其一維變換表達式可以寫成:
  
    參考文獻[3]給出了一維8×8整數余弦反變換的快速算法。
    (4)整合的反向變換單元:式(4)、式(5)、式(6)中的運算也能用同一個結構中來實現(xiàn),整合后的運算單元如圖2所示。

1.3 可配置的變換運算單元
    前向變換單元(圖1)和反向變換單元(圖2)有著類似的硬件結構,將它們整合到同一個運算單元中,如圖3所示。該可配置的變換運算單元結構圖一共需要36個加法器,圖中有4個只用于8×8變換的加法器沒有畫出。輸入互聯(lián)、中間互聯(lián)和輸出互聯(lián)結構為連線結構,根據變換類型確定每一級運算器的輸入并對輸出數據進行初等變換,使最后輸出的結果與輸入數據位置一一對應。

    該運算單元的輸入為16個數據:一個4×4/8×1的預測殘差塊或者反量化后的系數塊;輸出為8個數據:一個4×2/8×1的變換(反變換)系數塊。PHASE信號只在4×4變換時有效。在每一級運算的操作數輸入過程中,采用操作數隔離法減少編碼過程中電路的無效計算操作以降低功耗。為了縮短關鍵路徑提高工作頻率,數據路徑采用2級流水線設計。

 

 

2 自適應的變換模塊設計
    該自適應變換模塊的整體結構如圖4所示。該模塊中所有的4×4變換都采用直接二維變換方法,所有的8×8變換都采用行列分解方法。為了平衡4×4變換和8×8變換的吞吐量并且獲得更友好的量化模塊接口,自適應的變換模塊采用4個變換運算單元,并行處理32個數據,即2個4×4塊或者一個8×8塊的4行/列,所有的運算都是16 bit運算。trans_type信號表明變換的類型,cnt信號計數變換進行的時鐘周期數。
    當進行4×4變換時,變換運算單元0(2)和變換運算單元1(3)的輸入數據為同一個4×4塊,分別得到該4×4塊的0、3行和1、2行變換系數。因此該結構能同時處理2個4×4塊。
    當進行8×8變換時,變換運算單元0--3是相同的運算單元,首先處理前4行,一維變換的結果存入轉置寄存器,然后進行后4行的一維變換。轉置寄存器中的系數經過轉置后進行第二維變換。
    一個宏塊的處理過程如圖5所示。按照標準,對宏塊中的4×4塊/8×8塊進行編號。如果進行4×4變換,數據按照2個4×4塊的數據排列順序輸入給運算單元;如果進行8×8變換,數據按照8×8塊的數據順序輸入給運算單元。4×4變換和8×8變換按圖5中橢圓圈內的標號所示順序進行。

3 綜合結果和性能分析
    該設計使用Verilog HDL進行設計, QuartusII10.0進行綜合,TimeQuest Timing Analyzer進行時序分析。布局布線后工作頻率可以達到63 MHz。
    進行變換類型選擇時,對亮度分量依次做4×4和8×8哈達瑪變換,分別需要8+1=9和6+3×5=21個時鐘周期。如果亮度分量進行4×4變換,則處理一個宏塊最多需要30+12+1=43個時鐘周期;如果亮度分量進行8×8變換,則處理一個宏塊最多需要30+21+4=55個時鐘周期。取最差情況,每個宏塊需要55個時鐘周期,則該變換模塊每秒的吞吐量為63 000 000/55=1 145 454個宏塊。HD1080P@50幀/s的視頻每秒鐘的數據量是1 920×1 080×50×1.5/(16×16)=607 500個宏塊。因此,該自適應的變換結構可以達到HD1080P@50幀/s視頻的實時編碼需求。
    本文提出了一種用于H.264 High Profile視頻編碼器中的自適應變換模塊,該模塊可以完成編碼過程中需要的所有變換操作。該設計的吞吐率可以滿足HD1080P@50幀/s視頻的實時編碼需求。
參考文獻
[1] SULLIVAN G,TOPIWALA P,LUTHRA A.The H.264/AVC advanced video coding  standard:overview  and introduction to  the  fidelity  range extensions[C].in:SPIE Conference on Applications  of  Digital  Image Processing XXVII,2004.
[2] WIEN M.Variable blocksize transform for H.264/AVC.
     IEEE Transoction.estimate power consumption[J].when supplied with 1.8 V and circuitssystem.Video Technology.,2003,13(7):604-613.
[3] Cheng  Zhanyuan,Chen Chehong,Liu Binda,et al.High throughput 2-D transform architectures for H.264 advanced video coders[C].in IEEE Asia-Pacific Conference on Circuits and Systems,2004.2:1141-1144.
[4] JVT-J029:Joint Video Team(JVT) of ISO/IEC MPEG & ITU-T VCEG(ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6) 10th Meeting:Waikoloa,Hawaii,USA,8-12,2003(12).
[5] Liu Zhenyu,Zhou Junwei,Wang Dongsheng,et al.Register length analysis and VLSI optimization of VBS hadamard  transform in H.264/AVC[J],IEEE Transactions on Circuits and Systems for Video Technology,2011,21(5) Issue:5:601-610.

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關內容