999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

H.264硬件解碼核的FPGA實現

2012-08-10 04:43:56付永慶姜靈靈
電視技術 2012年19期
關鍵詞:句法

付永慶,姜靈靈

(哈爾濱工程大學信息與通信工程學院,黑龍江 哈爾濱 150001)

責任編輯:時 雯

1 新一代視頻編碼標準H.264/AVC概述

隨著因特網和電子技術的迅猛發展,視訊業務對視頻的傳輸速度和播放質量的要求也在不斷提升,在已有視頻編碼標準中,新一代視頻編碼標準H.264/AVC因其具有優異的解壓縮功能和良好的網絡親和性而受到歡迎。但H.264的優越性能是以算法復雜度為代價換取的,據統計,H.264解碼復雜度相當于H.263的2.5倍,大約是MPEG-2的2~3倍。這種情況下,處理器的計算能力和解碼速度成為了視頻編解碼應用的瓶頸。

目前已有的文獻多致力于H.264解碼算法的軟件優化和研究。文獻[1]給出了一種新型基于DSP的H.264解碼器的軟件優化,文獻[2]基于影響H.264解碼速度的因素,提出了基于Trimedia DSP平臺的優化方案,文獻[3]研究了H.264在DSP多核平臺的上的并行性。而基于FPGA的H.264解碼核整體實現方案的研究尚不多見。局限于C語言的串行執行特性,用DSP等純軟件方案實時完成H.264解碼的運算比較困難,特別是對于高清視頻很難達到理想解碼效果,而擁有高速度及并行處理能力的FPGA能很好滿足實時性需求?;诖耍疚难芯苛嘶贔PGA的H.264解碼核的實現問題,并給出了一個具體的實現方案。同時提供了相應的驗證結果。實驗數據顯示本文提出的方法是正確的和有效的。

2 H.264解碼算法

2.1 H.264解碼原理

H.264/AVC并沒有明確規定編解碼器如何實現,僅規定了一個編碼后視頻比特流的句法及解碼方法。H.264編碼通常采用預測和變換的混合壓縮法,該編碼流程以宏塊為單位進行幀內或幀間預測處理,然后把預測值PRED與當前塊相減,產生殘差數據塊,之后進行塊變換和塊量化,最后將熵編碼后的數據與解碼所需頭信息組成一個壓縮碼流。H.264解碼是編碼流程的逆過程,原理如圖1所示。H.264解碼流由殘差數據和預測數據兩條路徑并行處理。殘差數據路徑主要由熵解碼CAVLC和反量化反變換IQIT產生殘差數據;預測數據路徑由基于參考像素的幀內預測(幀間預測本文暫未考慮)產生預測宏塊。兩條路徑結果輸出相加構成重建圖像,并以該圖像作為下一幀解碼圖像的參考像素進行幀內預測。

2.2 H.264反量化和逆DCT算法原理

為避免傳統浮點型離散余弦變換因解碼端的運算精度不足經常引起的失配問題[4],H.264采用整數變換技術,該變換把解碼和量化過程中的乘法合二為一,既減少了解碼的運算量,又提高了圖像解壓縮的實時性。

圖1 H.264解碼結構圖

根據整數變換與反量化過程,H.264在解碼中將逆DCT運算中的部分系數放到反量化中一起處理。與正變換對應的4×4塊像素的逆DCT變換公式為:

式中:Ci為逆變換矩陣;Ei為變換尺度調整矩陣;a=1/2,b=;Z為逆量化后的結果,將“Z?Ei”結合到逆量化的過程中去,根據當前塊類型的不同,H.264的反量化公式可分為3種情況:

1)若當前塊是幀內16×16預測模式的亮度塊時,交流系數由反量化公式(4)計算,直流系數反量化公式為

式中:i,j=0,1,2,3

2)若當前塊是色度塊時,交流系數由反量化公式(4)計算,直流系數反量化公式為

式中:i,j=0,1,2,3

3)若當前塊是非幀內16×16預測模式的亮度塊時,不需要考慮直流系數時的反量化由公式為

式中:QPy和QPc分別為亮度塊和色度塊的量化參數;WD(i,j)為直流系數的逆Hadamard變換結果;Vij是融合在反量化過程中的逆DCT的比例變換系數;Zij為j交流殘差系數矩陣。相對應于直流系數的逆Hadamard變換公式為見式(5),其中ZD為直流殘差系數矩陣

3 H.264解碼核實現方案

為了提高系統性能和處理速度,本方案在解碼實現結構上用流水線和模塊并行處理??紤]到CAVLC指令周期占解碼時間較長[5],將算法從圖2中的虛線處分開用并行處理完成,每當虛線右部分的CAVLC完一個宏塊解碼后,便啟動虛線左部IQIT的運算,同時啟動CAVLC對下一宏塊的熵解碼運算。各模塊間采用流水線處理,使用握手信號end_xxx來表征一個運算結束,使用啟動信號trigger_xxx開始一個運算,因此本方案有增加模塊間處理靈活性的優點。

圖2 H.264解碼核實現結構圖

3.1 句法解析模塊

編碼比特流由一個個句法元素為單位依次銜接組成,比特流句法表詳細的介紹了H.264的句法,指明了在碼流中依次出現的句法元素及它們出現的條件、表示的物理意義、提取描述子等。

句法解析模塊分析和解碼每一個句法元素,為后續模塊提供參數信息,如為IQIT解碼模塊提供當前宏塊類型mb_type和量化參數偏移值mb_qp_delta等。句法解析模塊根據碼流的分層結構,引入有限狀態機FSM的處理方法,采用層次分解結合sub FSM的形式來對比特流句法進行解析。由圖3可見句法解析模塊分6個層級,且包括13個sub-FSM。對于每一個sub-FSM都是單一的輸入控制,避免了sub-FSM之間的相互轉化,減少結構復雜度。并且可以在每個sub-FSM內部根據需要自如地改變狀態,而無需考慮句法解析模塊的整體結構,因此增加了實現結構的靈活性和可擴張性。

圖3 句法解析層級分解FSM圖

3.2 CAVLC熵解碼的實現

根據CAVLC解碼原理[6],本文給出一種新型CAVLC解碼實現方案,其結構如圖4所示,主要包括NC查表模塊、Trailing_sign模塊、非零系數幅值Levels模塊、TotalZeros模塊、Run_Before模塊,Data_reorder模塊。由圖4可見,如果當前宏塊類型為P_skip,則整個宏塊不包括任何殘差信息,若當前4×4塊的CodedBlockPatter為0,則對應子塊的所有的殘差不被傳送,再者若進行NC值查表后,得到非零系數數目值TotalCoeffs為0,則沒有必要再進一步進行CAVLC解碼,以上3種情況可以直接將殘差數據設置為0,其他情況則依次進行Trailing_sign,Levels,TotalZeros,Run_Before 解碼。

圖4 CAVLC解碼結構圖

CAVLC的組成模塊都是基于變長表格來進行查表的[7],以NC查表獲取非零系數數目TotalCoeffs和拖尾系數數目TrailingOnes為例,共有4個變長表格和1個定長表格可供選擇。對于變長碼流的查表,已提出的有分組碼表法、二叉樹法、全碼查表法等,基于查表效率和硬件資源消耗的綜合考慮,本文采用改進的分組—二叉樹法來解析 ToalCoeffs和 TrailingOnes。

仔細觀察4個變長表格和1個定長表格可發現大部分碼流都是由若干個前綴零和由1引導的后綴組成,類似于哥倫布碼流結構。表1給出了NC取值的碼表規律性,在知道碼流前綴零的個數count后,使能相應的分組信號temp++,然后使用狀態機state++狀態轉換實現二叉樹遍歷,解析出非零系數個數和拖尾系數個數。對于后面非零系數幅值Levels、最后一個非零系數前零的數目TotalZ-eros、每個非零系數前零的個數Run_Before[i]的解析都采用該改進的分組—二叉樹法。

表1 碼表規律性

3.3 IQIT解碼塊的實現

根據殘差數據被編碼的類型,IQIT解碼可分為2個數據路徑:對路徑1,如果殘差數據為Intra16x16_Luma塊或者Chroma塊,則直流系數需在反量化前做逆Hadamard變換,量化后結果放到相應塊的(0,0)位置上與15個交流系數組成1個4×4塊,之后再做逆DCT變換;對于路徑2,如果殘差數據非Intra16x16_Luma塊和Chroma塊,則需對所有系數反量化,然后再進行逆DCT變換。

反量化算法主要基于乘法運算和移位操作完成,實現結構見圖5。具體實現過程為:首先由MUX選擇當前塊量化參數QP(0≤QP≤51);再由Mod6 LUT模塊對QP取余,其結果與iq_address、res_dc和res_ac信號共同用于選擇比例變換系數Vij(0≤i,j≤3);然后Vij和殘差系數Wij經乘法器lpm_mult算出Yij;此外,還把QP送入模塊Div6 LUT取商,經shift_len模塊算出移位長度len;最后把Yij和len送入移位模塊Shift LUT算出量化結果IQ_output。其中Mod6 LUT和Div6 LUT采用查表方式完成運算。該模塊每次處理一列數據加快了處理速度,為后續的逆DCT解碼提供了便利。

圖5 反量化算法實現結構圖

由2.2節逆DCT算法原理知,逆Hadamard算法和逆DCT算法在結構上相似,它們的每一維運算中都包括4個輸入和8次數學運算,不同點僅在系數上相差1/2,因此可通過引入1個系數選擇器來共用相同硬件結構;對于2×2的色度塊,可將二維逆DCT變換合成為一維的4×4塊逆DCT變換來共用同一硬件結構。故本文對逆DCT變換用信號IS_Hadamard來確定運算結構,如果IS_Hadamard=1,則選擇逆Hadamard算法;否則若IS_Hadamard=0,則選擇逆DCT算法;其次通過設置1D_counter和2D_counter信號值來選擇相應的塊,若1D_counter=4且2D_counter=4,則選擇亮度4×4塊;若1D_counter=1且2D_counte r=0,則選擇2×2的色度塊。在上述運算過程中,我們還引入了雙向加法器lpm_add_sub,從而獲得了降低算法復雜度的效果。

3.4 幀內預測解碼塊的實現

幀內預測利用宏塊之間的相關性,根據鄰近子塊的存在性和在當前圖像中的位置,獲取參考像素值A~M,然后由預測公式[8]來計算像素樣點值。其中16×16亮度塊和8×8色度塊的預測方式由句法解析模塊的解碼比特流Intra16x16_predmode和Intra_chroma_predmode直接給出,4×4亮度塊的預測方式由其相鄰上方塊及左方塊的預測方式ModeA和ModeB共同計算得出[10]。

預測方式共有17種,其中4×4亮度塊有9種[9],16×16亮度塊和8×8色度塊各有4種,若針對每一種預測方式都設計一種實現結構,勢必會增加硬件資源消耗和系統復雜度。由于17種預測方式的運算結構基本一樣,都是先求和再進行移位運算,唯一不同之處是,16×16亮度塊和8×8色度塊的Plane預測方式,需在預測之前,先算出H,V,a,b,c這5個變量[10],最后的像素值再根據下式計算

圖6為幀內預測解碼結構圖,加法運算由Parallel_add硬件加法器來完成,Is_clip模塊用于完成Plane預測方式。每個周期處理1列像素點,4個周期可完成1個4×4像素點的預測,這有助于加快硬件處理速度。

圖6 幀內預測解碼結構圖

4 H.264解碼核功能驗證

為驗證本文提出算法的正確性,在QuartusⅡ7.2版的環境中,對用VHDL設計的各個功能模塊及整個H.264解碼核執行了功能仿真,使用的FPGA為StratixⅡ系列的EP2S60F672C5ES。因文章篇幅有限,下面僅給出CAVLC熵解碼器和反量化器的仿真曲線圖及H.264解碼核編譯報告。

圖7為1個4×4塊CAVLC解碼仿真圖,輸入為000010001110010111101101的1幀圖像數據中5個句法元素的編碼比特流,解析得到的參數為ToalCoeffs為5,TrailingOnes為3,Levels為 1 和 3,Total_zeros為 3,Run_before[i]為1,0,0,1,0,解碼數據排序為 0,3,0,1,-1,-1,0,1,0,0,0,0,0,0,0,0。

圖7 CAVLC解碼器仿真圖(截圖)

圖8為反量化器波形仿真圖,其中trigger_quant為反量化模塊使能信號,高電平有效,res_ac和res_dc為交直流復位信號,高電平有效,qp為量化參數,qp_ref為qp取商結果,qp_rem為qp取余結構,data0~data3是前面CAVLC解碼器輸出的4×4殘差數矩陣,m0~m3為相對應的比例變換系數Vij,dataout0~dataout3為反量化器的量化輸出。

圖8 反量化器波形仿真圖(截圖)

H.264解碼核編譯報告由表2所示。本文提出的H.264硬件解碼核采用改進的分組—二叉樹法進行變長碼表的查找,最大程度簡化了反量化、逆DCT和幀內預測解碼實現結構,因模塊之間采取了流水線和并行處理方式,在硬件資源消耗和處理速度上與傳統未改進的硬件實現方法相比都有很大的改進,結果也表明了該H.264解碼核設計的正確性和實用性。

表2 H.264解碼編譯報告

5 結束語

針對H.264解碼復雜度高的問題,從提高解碼速度和節省硬件資源兩方面來權衡考慮,給出了基于FPGA的H.264解碼核,并詳細介紹了其設計和實現方法,最后給出了基于FPGA的功能驗證和與傳統法的性能對比。實驗結果表明了設計的正確性,同時也顯示其在性能和解碼效率上與傳統法相比有較大幅度的提高。

[1]任李悅,唐寧,滕舟.基于H.264解碼器的軟件優化[J].電子設計工程,2009,17(12):104-108.

[2]林冰,馮艷,李學明.基于Trimedia DSP的H.264解碼算法優化[J].計算機工程與應用,2005,31:41-45.

[3]奚杰,陳杰,劉建,等.H.264在多核平臺上的并行性分析[J].哈爾濱工程大學學報,2010,31(6):736-742.

[4]曹偉,洪琪,侯慧,等.一種用于H.264編解碼的新型高效可重構多變換 VLSI結構[J]. 電子學報,2009,37(4):675-674.

[5]郭倩,陳耀武.基于功能模塊的H.264并行解碼算法[J].計算機工程,2010,36(23):231-233.

[6]CHEN Guanghua,HU Dengji,ZHANG Jinyi.Efficient VLSI architecture of CAVLC decoder with power optimized[J].上海大學學報:英文版,2009,13(6):462-465.

[7]GUO Hui,FU Yongqing.An improved CAVLC entropy encoder of H.264/AVC and FPGA implementation[J].Key Engineering Materials,2011,5:241-246.

[8]畢厚杰,王健.新一代視頻壓縮編碼標準——H.264/AVC[M].2版.北京:人民郵電出版社,2009.

[9]馮杰,陳耀武.基于H.264 I幀編碼的塊邊緣模式特征提取算法[J].華南理工大學學報:自然科學版,2010,38(2):126-129.

[10]ISO/IEC 14496-10.draft ITU-T Recommendation and finaldraftinternational standard of joint video specification(ITU-T Rec.H.264/AVC)[S].2002.

猜你喜歡
句法
句法 定語從句
句法與句意(外一篇)
中華詩詞(2021年3期)2021-12-31 08:07:22
述謂結構與英語句法配置
市場調查報告句法特征分析
句法二題
中華詩詞(2018年3期)2018-08-01 06:40:40
詩詞聯句句法梳理
中華詩詞(2018年11期)2018-03-26 06:41:32
“無可無不可”的句法、語義及其歷時演變
“幾乎”的句法和語義特點
疑問詞“怎么”句法功能的演變及其動因
“分分合合”是商務漢英句法翻譯轉換的必然選擇
主站蜘蛛池模板: 亚洲国产天堂久久综合226114| 亚洲妓女综合网995久久| a亚洲视频| 99er这里只有精品| 欧美激情网址| 国产区成人精品视频| 亚洲乱码在线视频| 亚洲欧美精品一中文字幕| 亚洲伊人电影| 国产精品第5页| 国产噜噜在线视频观看| 国产极品美女在线播放| 亚洲一级毛片| 9丨情侣偷在线精品国产| 精品無碼一區在線觀看 | 国产精品手机在线播放| 亚洲AV一二三区无码AV蜜桃| 制服丝袜在线视频香蕉| 中文字幕在线欧美| 亚洲av无码成人专区| 91在线无码精品秘九色APP| 亚洲一道AV无码午夜福利| 99re经典视频在线| 99在线观看免费视频| 91在线无码精品秘九色APP | 国产毛片基地| 最新国产你懂的在线网址| 国产 日韩 欧美 第二页| 一本一道波多野结衣av黑人在线| 免费可以看的无遮挡av无码| 日韩AV无码免费一二三区| 五月婷婷激情四射| 国产人在线成免费视频| 一级毛片免费观看不卡视频| 日韩AV无码免费一二三区| 欧美视频在线不卡| 女人av社区男人的天堂| 日韩黄色大片免费看| 在线观看热码亚洲av每日更新| 成人亚洲天堂| 色婷婷国产精品视频| 亚洲一区黄色| 亚洲精品无码人妻无码| 久久黄色免费电影| 国产精品刺激对白在线| 秋霞国产在线| 亚洲天堂免费| 国产精品成人AⅤ在线一二三四| 国产免费好大好硬视频| 亚洲精品视频免费| 国产午夜福利亚洲第一| 国产精品视频导航| 久久久久亚洲Av片无码观看| 国产微拍精品| 亚洲人成网18禁| a毛片在线| 婷婷丁香在线观看| 第一区免费在线观看| 波多野结衣久久高清免费| 国产18在线| 久久夜色精品| 国产乱子伦视频三区| 国产在线八区| 亚洲综合经典在线一区二区| 久久香蕉国产线看观看精品蕉| 丰满人妻中出白浆| 又爽又黄又无遮挡网站| 97在线免费视频| 亚洲国产成人麻豆精品| 午夜无码一区二区三区| 国产精品流白浆在线观看| 欧美一区二区三区不卡免费| 国产成人亚洲无吗淙合青草| 亚洲日本中文综合在线| 二级毛片免费观看全程| 国产在线拍偷自揄观看视频网站| 日韩中文无码av超清| 亚洲成在线观看 | 久久青草免费91线频观看不卡| 中文无码毛片又爽又刺激| а∨天堂一区中文字幕| 人人艹人人爽|