亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        H.264硬件解碼核的FPGA實(shí)現(xiàn)

        2012-08-10 04:43:56付永慶姜靈靈
        電視技術(shù) 2012年19期
        關(guān)鍵詞:宏塊句法解碼

        付永慶,姜靈靈

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

        責(zé)任編輯:時(shí) 雯

        1 新一代視頻編碼標(biāo)準(zhǔn)H.264/AVC概述

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

        目前已有的文獻(xiàn)多致力于H.264解碼算法的軟件優(yōu)化和研究。文獻(xiàn)[1]給出了一種新型基于DSP的H.264解碼器的軟件優(yōu)化,文獻(xiàn)[2]基于影響H.264解碼速度的因素,提出了基于Trimedia DSP平臺(tái)的優(yōu)化方案,文獻(xiàn)[3]研究了H.264在DSP多核平臺(tái)的上的并行性。而基于FPGA的H.264解碼核整體實(shí)現(xiàn)方案的研究尚不多見。局限于C語言的串行執(zhí)行特性,用DSP等純軟件方案實(shí)時(shí)完成H.264解碼的運(yùn)算比較困難,特別是對(duì)于高清視頻很難達(dá)到理想解碼效果,而擁有高速度及并行處理能力的FPGA能很好滿足實(shí)時(shí)性需求?;诖?,本文研究了基于FPGA的H.264解碼核的實(shí)現(xiàn)問題,并給出了一個(gè)具體的實(shí)現(xiàn)方案。同時(shí)提供了相應(yīng)的驗(yàn)證結(jié)果。實(shí)驗(yàn)數(shù)據(jù)顯示本文提出的方法是正確的和有效的。

        2 H.264解碼算法

        2.1 H.264解碼原理

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

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

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

        圖1 H.264解碼結(jié)構(gòu)圖

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

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

        1)若當(dāng)前塊是幀內(nèi)16×16預(yù)測(cè)模式的亮度塊時(shí),交流系數(shù)由反量化公式(4)計(jì)算,直流系數(shù)反量化公式為

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

        2)若當(dāng)前塊是色度塊時(shí),交流系數(shù)由反量化公式(4)計(jì)算,直流系數(shù)反量化公式為

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

        3)若當(dāng)前塊是非幀內(nèi)16×16預(yù)測(cè)模式的亮度塊時(shí),不需要考慮直流系數(shù)時(shí)的反量化由公式為

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

        3 H.264解碼核實(shí)現(xiàn)方案

        為了提高系統(tǒng)性能和處理速度,本方案在解碼實(shí)現(xiàn)結(jié)構(gòu)上用流水線和模塊并行處理??紤]到CAVLC指令周期占解碼時(shí)間較長[5],將算法從圖2中的虛線處分開用并行處理完成,每當(dāng)虛線右部分的CAVLC完一個(gè)宏塊解碼后,便啟動(dòng)虛線左部IQIT的運(yùn)算,同時(shí)啟動(dòng)CAVLC對(duì)下一宏塊的熵解碼運(yùn)算。各模塊間采用流水線處理,使用握手信號(hào)end_xxx來表征一個(gè)運(yùn)算結(jié)束,使用啟動(dòng)信號(hào)trigger_xxx開始一個(gè)運(yùn)算,因此本方案有增加模塊間處理靈活性的優(yōu)點(diǎn)。

        圖2 H.264解碼核實(shí)現(xiàn)結(jié)構(gòu)圖

        3.1 句法解析模塊

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

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

        圖3 句法解析層級(jí)分解FSM圖

        3.2 CAVLC熵解碼的實(shí)現(xiàn)

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

        圖4 CAVLC解碼結(jié)構(gòu)圖

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

        仔細(xì)觀察4個(gè)變長表格和1個(gè)定長表格可發(fā)現(xiàn)大部分碼流都是由若干個(gè)前綴零和由1引導(dǎo)的后綴組成,類似于哥倫布碼流結(jié)構(gòu)。表1給出了NC取值的碼表規(guī)律性,在知道碼流前綴零的個(gè)數(shù)count后,使能相應(yīng)的分組信號(hào)temp++,然后使用狀態(tài)機(jī)state++狀態(tài)轉(zhuǎn)換實(shí)現(xiàn)二叉樹遍歷,解析出非零系數(shù)個(gè)數(shù)和拖尾系數(shù)個(gè)數(shù)。對(duì)于后面非零系數(shù)幅值Levels、最后一個(gè)非零系數(shù)前零的數(shù)目TotalZ-eros、每個(gè)非零系數(shù)前零的個(gè)數(shù)Run_Before[i]的解析都采用該改進(jìn)的分組—二叉樹法。

        表1 碼表規(guī)律性

        3.3 IQIT解碼塊的實(shí)現(xiàn)

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

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

        圖5 反量化算法實(shí)現(xiàn)結(jié)構(gòu)圖

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

        3.4 幀內(nèi)預(yù)測(cè)解碼塊的實(shí)現(xiàn)

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

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

        圖6為幀內(nèi)預(yù)測(cè)解碼結(jié)構(gòu)圖,加法運(yùn)算由Parallel_add硬件加法器來完成,Is_clip模塊用于完成Plane預(yù)測(cè)方式。每個(gè)周期處理1列像素點(diǎn),4個(gè)周期可完成1個(gè)4×4像素點(diǎn)的預(yù)測(cè),這有助于加快硬件處理速度。

        圖6 幀內(nèi)預(yù)測(cè)解碼結(jié)構(gòu)圖

        4 H.264解碼核功能驗(yàn)證

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

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

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

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

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

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

        表2 H.264解碼編譯報(bào)告

        5 結(jié)束語

        針對(duì)H.264解碼復(fù)雜度高的問題,從提高解碼速度和節(jié)省硬件資源兩方面來權(quán)衡考慮,給出了基于FPGA的H.264解碼核,并詳細(xì)介紹了其設(shè)計(jì)和實(shí)現(xiàn)方法,最后給出了基于FPGA的功能驗(yàn)證和與傳統(tǒng)法的性能對(duì)比。實(shí)驗(yàn)結(jié)果表明了設(shè)計(jì)的正確性,同時(shí)也顯示其在性能和解碼效率上與傳統(tǒng)法相比有較大幅度的提高。

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

        [2]林冰,馮艷,李學(xué)明.基于Trimedia DSP的H.264解碼算法優(yōu)化[J].計(jì)算機(jī)工程與應(yīng)用,2005,31:41-45.

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

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

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

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

        [7]GUO Hui,F(xiàn)U Yongqing.An improved CAVLC entropy encoder of H.264/AVC and FPGA implementation[J].Key Engineering Materials,2011,5:241-246.

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

        [9]馮杰,陳耀武.基于H.264 I幀編碼的塊邊緣模式特征提取算法[J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,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
        述謂結(jié)構(gòu)與英語句法配置
        解碼eUCP2.0
        中國外匯(2019年19期)2019-11-26 00:57:32
        NAD C368解碼/放大器一體機(jī)
        Quad(國都)Vena解碼/放大器一體機(jī)
        句法二題
        中華詩詞(2018年3期)2018-08-01 06:40:40
        詩詞聯(lián)句句法梳理
        中華詩詞(2018年11期)2018-03-26 06:41:32
        基于選擇特征宏塊的快速視頻穩(wěn)像
        基于宏塊合并的H.264模式選擇算法
        人妻少妇粉嫩av专区一| 天堂资源中文最新版在线一区| 国产麻豆剧传媒精品国产av | 破了亲妺妺的处免费视频国产| 日本顶级metart裸体全部| 日本中文字幕一区二区有码在线| 国产精品偷窥熟女精品视频| 女局长白白嫩嫩大屁股| 激情内射日本一区二区三区 | 亚洲精品亚洲人成在线下载| 国产女主播福利一区在线观看| 午夜精品一区二区三区视频免费看 | 精品久久久久久国产潘金莲| 国产精品人成在线观看不卡| 久久综合伊人有码一区中文字幕| 蜜桃国产精品视频网站| 国产自拍av在线观看视频| 亚洲人成人无码www| 无码av不卡一区二区三区| 久久亚洲精品成人av| 日韩中文字幕一区二区高清| 亚洲天堂色婷婷一区二区| 搞黄色很刺激的网站二区| 亚洲精品综合中文字幕组合 | 久久精品国产字幕高潮| 精品无码一区在线观看| 四虎成人精品国产一区a| AV在线中出| 人妻熟女中文字幕在线视频| 亚洲一区二区三区在线高清中文| 亚洲乱码一区二区av高潮偷拍的| 成人影院视频在线免费观看| 亚洲精品国产第一区二区| 日本真人边吃奶边做爽电影| 欧美日韩国产精品自在自线| 亚洲成色在线综合网站| 国产一区二区亚洲av| 亚洲天堂一区二区三区视频| 国产三级不卡视频在线观看| 午夜视频国产在线观看| 亚洲av不卡一区二区三区|