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

        ?

        H.264整數(shù)DCT的FPGA實(shí)現(xiàn)

        2008-04-12 00:00:00朱南坤黃士坦
        現(xiàn)代電子技術(shù) 2008年24期

        摘 要:H.264整數(shù)DCT變換算法有助于減少計(jì)算復(fù)雜度,提高編碼速度,進(jìn)一步提高視頻或圖像的壓縮效率。分析H.264整數(shù)DCT變換的快速算法及其實(shí)現(xiàn)原理,并提出一種用來具體實(shí)現(xiàn)一個(gè)4×4塊的DCT變換的結(jié)構(gòu);同時(shí)給出用VHDL語(yǔ)言實(shí)現(xiàn)4×4塊DCT變換的內(nèi)部模塊的源代碼和仿真波形。仿真結(jié)果表明用該算法可快速實(shí)現(xiàn)一個(gè)4×4塊的整數(shù)DCT變換。提出一種切實(shí)可行的用于H.264整數(shù)DCT變換的結(jié)構(gòu), 該結(jié)構(gòu)可完全用硬件電路快速實(shí)現(xiàn);對(duì)于用FPGA實(shí)現(xiàn)H.264整數(shù)DCT變換做了一次實(shí)踐性的嘗試,對(duì)深入理解H.264整數(shù)DCT變換及其算法的具體實(shí)現(xiàn)具有一定的實(shí)踐意義。

        關(guān)鍵詞:H.264;宏塊;整數(shù)DCT;FPGA;VHDL

        中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:B

        文章編號(hào):1004-373X(2008)24-158-03

        Implementation of Integer DCT in H.264 on FPGA

        ZHU Nankun,HUANG Shitan

        (Xi′an Micro-electronics Technology Institute,Xi′an,710075,China)

        Abstract:The algorithm of integer transform in H.264 is good to reduce the complexities in computations and it is good to improve the speed in encoder,it can greatly improve the compress rate of videos or images from this. This article analyses the fast algorithm and principle of the integer in H.264,and privides an specific architecture which to be used to implement a 4×4 DCT transform;and gives the source codes and simulated waves in 4×4 DCT transform which implemented in VHDL.The result of simulation shows that the algorithm can fast implement a 4×4 DCT transform.The new thoughts of this article lie that it privides a practical architecture used in integer DCT transform in H.264.It can be implemented quickly in circuit through hardware, and it is a practical taste in the implemention of integer DCT transform in H.264 on FPGA.It is good to understand the integer DCT transform in H.264 deeply,it also has certain practical meanings in the specific implemention in integer DCT transform in H.264.

        Keywords:H.264;Macro Block;integer DCT;FPGA;VHDL

        1 引 言

        新一代視頻壓縮編碼標(biāo)準(zhǔn)在對(duì)圖像進(jìn)行壓縮時(shí)與以往的視頻編碼標(biāo)準(zhǔn)相同,同樣采用基于塊的變換編碼。H.264標(biāo)準(zhǔn)中使用4×4的整數(shù)DCT變換作為殘差宏塊的基本變換,這種變換的對(duì)象是經(jīng)過運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)或者幀內(nèi)預(yù)測(cè)后的包含殘差數(shù)據(jù)的4×4塊。這類變換是基于DCT變換,但又不同于DCT。由于DCT變換是實(shí)數(shù),量化時(shí)需對(duì)系數(shù)進(jìn)行四舍五入,從而影響了運(yùn)算的精度。

        同時(shí),傳統(tǒng)的DCT存在不匹配問題,產(chǎn)生參考幀的偏移,直接影響到重建圖像的質(zhì)量。H.264對(duì)圖像或預(yù)測(cè)殘差采用了4×4整數(shù)離散余弦變換技術(shù),避免以往標(biāo)準(zhǔn)中使用的通用8×8離散余弦變換、逆變換經(jīng)常出現(xiàn)的失配問題。同時(shí)采用整數(shù)DCT變換技術(shù),可有效地減少

        計(jì)算量,同時(shí)不損失圖像的準(zhǔn)確度。

        2 H.264整數(shù)DCT變換

        一維N點(diǎn)離散余弦變換(DCT)可以表示為:

        yk=Ck∑N-1n=0xncos(2n+1)kπ2N(1)

        其中,xn是輸入時(shí)域序列中的第n項(xiàng);yk是輸出頻域序列中的第k項(xiàng);系數(shù)Ck=1/N,k=0;Ck=2/N,k=1,2,…,N-1。

        二維N×N圖像塊的DCT可以理解為先對(duì)圖像塊的每行進(jìn)行一維DCT,然后對(duì)經(jīng)行變換的塊每列再應(yīng)用一維DCT??梢员硎緸椋?/p>

        Ymn=CmCn∑N-1i=0∑N-1j=0Xijcos(2j+1)nπ2Ncos(2i+1)mπ2N(2)

        其中,Xij是圖像塊X中第i行第j列圖像或其殘差值;Ymn是變換結(jié)果矩陣Y相應(yīng)頻率點(diǎn)上的DCT系數(shù)??梢杂镁仃嚤硎荆?/p>

        Y=AXAT(3)

        其中,N×N變換矩陣A中的系數(shù):

        Aij=Cicos(2j+1)iπ2N(4)

        H.264對(duì)4×4的圖像塊(亮度塊或Cr,Cb色度塊)進(jìn)行操作,則相應(yīng)的4×4 DCT變換矩陣A為:

        A=12cos(0)12cos(0)12cos(0)12cos(0)

        1/2cos(π/8)1/2cos(3π/8)1/2cos(5π/8)1/2cos(7π/8)

        1/2cos(2π/8)1/2cos(6π/8)1/2cos(10π/8)1/2cos(14π/8)

        1/2cos(3π/8)1/2cos(9π/8)1/2cos(15π/8)1/2cos(21π/8)〗

        =1/21/21/21/2

        1/2cos(π/8)1/2cos(3π/8)-1/2cos(3π/8)-1/2cos(π/8)

        1/2-1/2-1/21/2

        1/2cos(3π/8)-1/2cos(π/8)1/2cos(π/8)-1/2cos(π/8)〗(5)

        設(shè)a=1/2,b=1/2cos(π/8)及c=1/2·cos(3π/8),則:

        A=aaaa

        bc-cb

        a-a-aa

        c-bb-c(6)

        A中的a,b和c是實(shí)數(shù),而圖像塊X中的元素是整數(shù)。對(duì)實(shí)數(shù)的DCT,由于在解碼端的浮點(diǎn)運(yùn)算精度問題,會(huì)造成解碼后的數(shù)據(jù)的失配,進(jìn)而引起漂移。H.264較其他圖像編碼使用了更多的預(yù)測(cè)過程,甚至內(nèi)部編碼模式也依賴于空間預(yù)測(cè)。因此,H.264對(duì)預(yù)測(cè)漂移是十分敏感的。為此,H.264對(duì)4×4 DCT中的A進(jìn)行了改造,采用整數(shù)DCT技術(shù),可有效地減少計(jì)算量,同時(shí)不損失圖象的準(zhǔn)確度。式(3)可以等效為:

        Y=(CXCT)E=

        1111

        1d-d-1

        1-1-11

        d-11-d〗X111d

        1d-1-1

        1-d-11

        1-11-d〗

        a2aba2ab

        abb2abb2

        a2aba2ab

        abb2abb2〗(7)

        其中,d=c/b,符號(hào)“”表示(CXCT)結(jié)果中的每個(gè)元素乘以矩陣E中對(duì)應(yīng)位置的系數(shù)值的運(yùn)算。為簡(jiǎn)化運(yùn)算,取d=0.5。同時(shí)為了保持變換的正交性,對(duì)b進(jìn)行修正,取b=2/5。對(duì)矩陣C中的第2行和第4行,以及矩陣CT中的第2列和第4列元素乘以2,相應(yīng)地改造矩陣E為Ef,以保持式(7)成立,得到:

        Y = (Cf XCTf )Ef =

        1111

        21-1-2

        1-1-11

        1-22-1〗X1211

        11-1-2

        1-1-12

        1-21-1〗

        a2ab/2a2ab/2

        ab/2b2/4ab/2b2/4

        a2ab/2a2ab/2

        ab/2b2/4ab/2b2/4〗(8)

        其中,運(yùn)算“”對(duì)每個(gè)矩陣元素只進(jìn)行1次乘法,同時(shí)它將被歸納到量化運(yùn)算中。這樣,(Cf XCTf )中只剩下整數(shù)的加法、減法和移位(乘以2)運(yùn)算。H.264將DCT中“Ef”運(yùn)算的乘法融合到后面的量化過程中,實(shí)際的DCT輸出為:W=Cf XCTf。將該矩陣的乘法改造成2次一維整數(shù)DCT變換,并且每次的一維整數(shù)DCT可以采用疊形快速算法,以節(jié)省計(jì)算時(shí)間,如圖1所示。

        圖1 DCT的疊形快速算法

        3 H.264整數(shù)DCT變換的FPGA實(shí)現(xiàn)

        圖2為用FPGA實(shí)現(xiàn)H.264整數(shù)DCT變換的框圖。以上的每個(gè)行變換單元僅處理1行數(shù)據(jù),每個(gè)列變換單元僅處理1列數(shù)據(jù);由于在從行變換到列變換中間經(jīng)過1個(gè)矩陣轉(zhuǎn)置過程所以在給列變換單元輸入數(shù)據(jù)時(shí),輸入的數(shù)據(jù)需要重新組合后再送給每個(gè)列變換單元。

        圖2 用FPGA實(shí)現(xiàn)H.264整數(shù)DCT變換的框圖

        數(shù)據(jù)輸入為經(jīng)過運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)或者幀內(nèi)預(yù)測(cè)后的包含殘差數(shù)據(jù)的4×4塊。共16個(gè)數(shù)據(jù),按順序送給每個(gè)行變換單元,每個(gè)數(shù)據(jù)用8位二進(jìn)制表示,即表示輸入塊的相應(yīng)像素點(diǎn),每個(gè)像素點(diǎn)范圍為0~255;由于在進(jìn)行行變換以后的輸入行單元的數(shù)據(jù)進(jìn)行了8次加法(包括減法)和2次移位運(yùn)算,所以經(jīng)過數(shù)據(jù)組合后輸入到列變換單元的數(shù)據(jù)范圍發(fā)生了改變;所以為防止該輸入數(shù)據(jù)溢出將它定義為16位,經(jīng)列變換后即為一個(gè)殘差數(shù)據(jù)的4×4塊經(jīng)過整數(shù)DCT變換的結(jié)果。其輸出數(shù)據(jù)不會(huì)超過16位,故用16位定義不會(huì)溢出。因?yàn)樾辛凶儞Q各有4個(gè)變換單元所以處理1個(gè)殘差數(shù)據(jù)的4×4塊后需至少等待2個(gè)時(shí)鐘周期,之后讀取下一個(gè)4×4塊。行變換單元VHDL描述如下:

        library IEEE;

        use IEEE.STD_LOGIC_1164.all;

        use IEEE.STD_LOGIC_ARITH.all;

        use IEEE.STD_LOGIC_SIGNED.all;

        entity dct is

        PORT(data0,data1,data2,data3:IN

        STD_LOGIC_VECTOR(7 DOWNTO 0);

        out0,out1,out2,out3:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));

        end dct;

        architecture comp of dct is

        SIGNAL temp0,temp1:STD_LOGIC_

        VECTOR(15 DOWNTO 0);

        SIGNAL temp2,temp3:STD_LOGIC_

        VECTOR(14 DOWNTO 0);

        SIGNAL temp4,temp5,temp6:STD_LOGIC_

        VECTOR(8 DOWNTO 0);

        BEGIN

        PROCESS(temp0,temp1,temp2,temp3,data0,data1,data2,data3,temp5,temp6,temp4)

        BEGIN

        temp4<=(data0(7)data0)+(data3(7)

        data3)-(data1(7)data1)-(data2(7)data2);

        out2<=(temp4(7)temp4(7)temp4(7)

        temp4(7)temp4(7)temp4(7)

        temp4(7)temp4);

        temp5<=(data1(7)data1)-(data2(7)

        data2);

        temp0<=(temp5(7)temp5(7)temp5(7)temp5(7)temp5(7)temp5(7)temp5(7)temp5);

        temp6<=(data0(7)data0)-(data3(7)

        data3);

        temp1<=(temp6(7)temp6(7)temp6(7)temp6(7)temp6(7)temp6(7)temp6(7)temp6);

        temp2<=temp0(14 DOWNTO 0);

        temp3<=temp1(14 DOWNTO 0);

        out1<=temp3'0'+temp0;

        out3<=temp1-(temp2'0');

        END PROCESS;

        END comp;

        仿真波形如圖3所示,該仿真時(shí)輸入數(shù)據(jù)為:1,-1,1,1。輸出為:2,-2,2,4;經(jīng)驗(yàn)證正確。列變換單元VHDL描述可參考行變換單元代碼。一個(gè)4×4塊的DCT變換的代碼可以直接調(diào)用行、列變換單元模塊來實(shí)現(xiàn)。該設(shè)計(jì)可快速實(shí)現(xiàn)H.264整數(shù)DCT變換。

        圖3 仿真波形圖

        4 結(jié) 語(yǔ)

        為了實(shí)現(xiàn)H.264視頻壓縮的高壓縮率,必須進(jìn)行大量的計(jì)算,而整數(shù)DCT變換計(jì)算量大,用FPGA實(shí)現(xiàn)可大大加快其處理速度。以上實(shí)現(xiàn)可用并行計(jì)算能加速整數(shù)DCT變換的處理效率。

        參考文獻(xiàn)

        [1]Wiegand T,Sullivan G J,Bjontegaard G,et al.Overview of H.264/AVC Video Coding Standard.IEEE Trans.Circuits Syst.Video Technol.,2003(13):560-576.

        [2]Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification(ITU-T Rec.H.264/ISO/IEC 14 496-10 AVC.in Joint Video Team(JVT) of ISO/IEC MPEG and ITU-T VCEG,JVTG050,2003.

        [3]Schafer Ralf,Wiegand Thomas,Schwarz Heiko.The Emerging H.264/AVC Standard EBU Technical Review.2003.

        [4]Mathias Wien.Variable Block-Size Transforms for H.264/AVC.IEEE Trans.Circuit Syst.Video Technol.,2003,13:604-613.

        [5]畢厚杰.多媒體信息的傳輸與處理.北京:人民郵電出版社,1999.

        [6]朱秀昌.數(shù)字圖像處理與圖像通信.北京:北京郵電大學(xué)出版社,2002.

        [7]陳傳波,金先級(jí).數(shù)字圖像處理.北京:機(jī)械工業(yè)出版社,2004.

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

        [9]侯伯亨,顧新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì).西安:西安電子科技大學(xué)出版社,1997.

        [10]趙俊超.集成電路設(shè)計(jì)VHDL教程.北京:北京希望電子出版社,2002.

        [11]李玉山.電子系統(tǒng)集成設(shè)計(jì)技術(shù).北京:電子工業(yè)出版社,2002.

        作者簡(jiǎn)介 朱南坤 男,1979年出生,安徽合肥人,碩士。研究方向?yàn)閿?shù)字圖像處理及視頻壓縮。

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文

        人妻熟女翘屁股中文字幕| 久久久久久一级毛片免费无遮挡| 粉嫩av一区二区在线观看| 少妇又紧又爽丰满在线视频| 朝鲜女人大白屁股ass孕交| 婷婷成人基地| 国产亚洲欧美另类第一页| 亚洲综合在不卡在线国产另类| 色欲人妻aaaaaaa无码| 欧美成人精品一区二区综合| 久久久99精品视频| 中文字幕女同人妖熟女| 国产精品一卡二卡三卡| 亚洲天堂2017无码中文| 日本精品极品视频在线| 日本黑人亚洲一区二区| 精品久久久久成人码免费动漫| 亚洲国产成人久久一区www妖精 | 四虎影视一区二区精品| 日韩精品中文字幕 一区| 少妇又色又爽又高潮在线看| 国产又色又爽又高潮免费视频麻豆| 亚洲日本天堂| 富婆叫鸭一区二区三区| 亚洲黄色天堂网站在线观看禁18| 男男受被攻做哭娇喘声视频| 亚洲国产精品500在线观看| 91国产熟女自拍视频| 无码av不卡一区二区三区| 中文在线天堂网www| 丰满人妻无奈张开双腿av| 午夜少妇高潮在线观看| 亚洲国产美女精品久久久| 无码人妻丝袜在线视频| 少妇又紧又爽丰满在线视频| 一本本月无码-| 亚洲另类欧美综合久久图片区| 精品国产亚洲av久一区二区三区 | 男女激情视频网站免费在线| 久久99国产精一区二区三区| 国产综合自拍|