热度 15
2013-3-16 15:11
1327 次阅读|
4 个评论
这是我翻译的一篇文章,原文《 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 个 1-D 变换结构, 16 个 registers 作为转置存储器,此文献中多个变换处理器,对于 4*4 结构,能够在 80MHZ 情况下处理 320M pixels/sec ,其硬件消耗为 6538gates 。设计 给出了一种直接 2-D 变换结构,此结构不包含转置存储器,能够在 200Mhz 下实现 1.6G pixels/s 。文献 给出了一种只包含一个 1-D 变换结构, 16 个 registers 作为转置存储器,其硬件消耗为 3524 gates ,能够支持单变换译码,实现在 120Mhz 情况下完成 M pixels/sec 。文献 给出了一种设计,在 FPGA 上处理 1720 M pixels/sec ,硬件消耗为 77280 gates 。文献 包含了 2 个 1-D 变换核,输入可以通过增加或减少一个 4*4 block 的 6 个 pixels 来获得。设计 给出了一种包含对 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 数组可以表示为如下等式: