999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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語言實(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);對于用FPGA實(shí)現(xiàn)H.264整數(shù)DCT變換做了一次實(shí)踐性的嘗試,對深入理解H.264整數(shù)DCT變換及其算法的具體實(shí)現(xiàn)具有一定的實(shí)踐意義。

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

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

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

同時(shí),傳統(tǒng)的DCT存在不匹配問題,產(chǎn)生參考幀的偏移,直接影響到重建圖像的質(zhì)量。H.264對圖像或預(yù)測殘差采用了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可以理解為先對圖像塊的每行進(jìn)行一維DCT,然后對經(jīng)行變換的塊每列再應(yīng)用一維DCT。可以表示為:

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ù)。可以用矩陣表示:

Y=AXAT(3)

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

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

H.264對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ù)。對實(shí)數(shù)的DCT,由于在解碼端的浮點(diǎn)運(yùn)算精度問題,會造成解碼后的數(shù)據(jù)的失配,進(jìn)而引起漂移。H.264較其他圖像編碼使用了更多的預(yù)測過程,甚至內(nèi)部編碼模式也依賴于空間預(yù)測。因此,H.264對預(yù)測漂移是十分敏感的。為此,H.264對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,符號“”表示(CXCT)結(jié)果中的每個(gè)元素乘以矩陣E中對應(yīng)位置的系數(shù)值的運(yùn)算。為簡化運(yùn)算,取d=0.5。同時(shí)為了保持變換的正交性,對b進(jìn)行修正,取b=2/5。對矩陣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)算“”對每個(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)動補(bǔ)償預(yù)測或者幀內(nèi)預(yù)測后的包含殘差數(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ù)不會超過16位,故用16位定義不會溢出。因?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é) 語

為了實(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]陳傳波,金先級.數(shù)字圖像處理.北京:機(jī)械工業(yè)出版社,2004.

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

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

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

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

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

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

主站蜘蛛池模板: 欧日韩在线不卡视频| 国产理论一区| 囯产av无码片毛片一级| 国产欧美精品午夜在线播放| 亚洲精品天堂在线观看| 四虎永久在线| 青青草原偷拍视频| 国产一区二区三区在线观看视频| 亚洲成人在线网| 欧美国产在线看| 国产在线无码一区二区三区| 国产三级视频网站| 国内嫩模私拍精品视频| 在线观看免费黄色网址| 国模视频一区二区| 亚洲男人在线| 91精品免费久久久| 国产丝袜一区二区三区视频免下载| 无遮挡国产高潮视频免费观看| 91福利一区二区三区| 色婷婷久久| 亚洲色图另类| 国产欧美专区在线观看| 乱码国产乱码精品精在线播放| 成年午夜精品久久精品| 永久免费无码成人网站| 人人爱天天做夜夜爽| m男亚洲一区中文字幕| 18禁高潮出水呻吟娇喘蜜芽| 激情無極限的亚洲一区免费| 成人午夜网址| 狂欢视频在线观看不卡| 香蕉在线视频网站| 中文字幕免费在线视频| 亚洲香蕉久久| 久久6免费视频| 无码内射中文字幕岛国片| 久久亚洲国产视频| jizz国产视频| 亚洲综合色吧| 本亚洲精品网站| 成年看免费观看视频拍拍| 国产欧美高清| 狠狠色成人综合首页| 十八禁美女裸体网站| 亚洲国内精品自在自线官| 国产成人啪视频一区二区三区| 国产一级小视频| 国产幂在线无码精品| 亚洲第一区在线| 久久精品丝袜高跟鞋| 国产成人精品18| 久草视频福利在线观看| 亚洲精品成人片在线观看| 91成人在线观看| 亚洲清纯自偷自拍另类专区| AV在线麻免费观看网站| 日日拍夜夜操| 国产精品久久久精品三级| 女同久久精品国产99国| 9久久伊人精品综合| 婷婷六月综合网| 91午夜福利在线观看| 国产无套粉嫩白浆| 97色伦色在线综合视频| 日韩在线成年视频人网站观看| 国产美女免费网站| 国产无码性爱一区二区三区| 国产精品成人啪精品视频| 日本一区二区三区精品AⅤ| 婷婷在线网站| 亚洲资源在线视频| 91无码视频在线观看| 欧美精品亚洲精品日韩专区| 久久99国产乱子伦精品免| 中文字幕在线欧美| 伊人成人在线| 亚洲国产日韩一区| 久久综合丝袜长腿丝袜| 亚洲一区二区三区国产精品| 国产精品v欧美| 免费看的一级毛片|