这是我翻译的一篇文章,原文《A high-performance reconfigurable 2-D transform architecture for H.264》,有兴趣的可以共同探讨一下~~~,限于字数要求,分开发布~~~
H.264高性能可重构2-D变换结构
摘要:
在MPEG-4 AVC/H.264标准中采用了4*4整数变换矩阵。本文中采用了两种新型的4*4前向和反向变换信号结构用于H.264。本文提出了基于新SFGs的高性能可重构的2-D结构,此结构没有使用转置存储器。本文的设计采用的是0.18um CMOS工艺。本文的设计相对于已经存在的设计在性能上要更优越。在100Mhz的频率下,本结构能够实现在60fps下4096*2048进行实时处理。
一:简介
MPEG-4 AVC(高级视频编码)/H.264 标准相比MPEG-2,H.263和MPEG-4分别能够减少比特率64%,49%和39%。转换模型是H.264中的主要部分。当进行图像数据往频域数据转换时,H.264变换采用的是无乘法的整数算法。整数变换能够消除编码器与译码器之间数据的不匹配,而且计算复杂度较之前要小很多。然而硬件结构实现却仍需要精细的模型。
目前,一些变换VLSI结构已经存在。文献参考[2]和[3]给出了一种包含2个1-D变换结构,16个registers作为转置存储器,此文献中多个变换处理器,对于4*4结构,能够在80MHZ情况下处理320M pixels/sec,其硬件消耗为6538gates。设计[4]给出了一种直接2-D变换结构,此结构不包含转置存储器,能够在200Mhz下实现1.6G pixels/s。文献[5]给出了一种只包含一个1-D变换结构,16个registers作为转置存储器,其硬件消耗为3524 gates,能够支持单变换译码,实现在120Mhz情况下完成M pixels/sec。文献[6]给出了一种设计,在FPGA上处理1720 M pixels/sec,硬件消耗为77280 gates。文献[7]包含了2个1-D变换核,输入可以通过增加或减少一个4*4 block的6个pixels来获得。设计[8]给出了一种包含对H.264量化的变换结构。
本文将重点放在对4*4变换结构的算法和结构进行优化,同时实现高性能的目的。一种更有效的可重构包含之前提到的SFG,能够在H.264支持多变换。本文余下部分的组织如下。第三部分描述新的SFGs和先前提到的结构。第四部分给出结构实现和对比。最后在第五部分将对本文进行总结。
二:H.264中的4*4变换结构
在H.264中包含三种变换:4*4前向/反向整数DCT变换,4*4前向/反向Hadamard变换,2*2Hadamard变换。本文将着重介绍4*4变换的实现,因为2*2变换包含在4*4Hadamard变换中。4*4前向/反向整数DCT变换可以定义为:和 ,其中X是4*4冗余块数据输入。DCT系数矩阵Cf和Ci如下:
4*4前向/反向Hadamard变换可定义为:,其中WD是16*16内部宏模块中4*4DC组成部分。Hadamard变换系数矩阵H如下:
2-D变换结构可以用1-D变换采用行列分解的方法实现,但是会引入转置存储器。本文将给出一种2-D可重构变换,此变换基于信号流图,不需要转置存储器。
三:结构
A. 新型变换(SFG)
4*4前向DCT可以用2个1-D变换替代,如公式:P=CfX和W=PCf(转置),W可以表示为(CfPT)T,2个2*2数组T1和T2可表述如下:
P和W可以用下面的公式表示:
其中Pij,Wij,Aij,Bij是4*4数组中的元素,P,W,A和B是独立的。Aij和Bij如下:
其中Xij是输入矩阵X中的元素,定义两个置换矩阵如下:
依靠左乘M1和M2,矩阵X,PT,A和B中的第2.3.4行能够改变,以便P,W可以通过公式(3),(5)获得。因此,4*4前向DCT变换SFG可以从公式(3)和公式(7)提取出来。SFG详细信息如图1所示,如果r等于2,就是一个2-DSFG,可以每个周期计算16pxiels。
如果T2定义为,r等于1。图1可改为4*4Hadamard变换的SFG。
对于4*4反向DCT,和前面的方法相同,可用于SFG。4*4反向DCT可以被改写为,其中的三个数组可以表示如下:
其中Q和X数组可以表示为如下等式:
sunyzz 2013-3-19 18:36
用户403664 2013-3-19 14:43
sunyzz 2013-3-18 15:09
用户403664 2013-3-18 14:57