>
首页 » 业界动态 » H.264/AVC视频编码变换量化核的硬件设计

H.264/AVC视频编码变换量化核的硬件设计

作者:黄君凯, 周桦, 常周林  时间:2007-01-14 01:18  来源:

摘要: 基于H.264/AVC 视频编码标准, 完成了编码模块中的4×4 整数变换量化核的分析和硬件实现的优化设计。通过三种优化设计处理后, 在硬件开销改变不大的情况下, 使4×4 整数变换量化核的最高工作频率相比优化前的30.7MHz 提高了82%, 达到55.8MHz, 为H.264/AVC 视频编码标准的硬件实现提供了参考。

关键词: H.264/AVC 视频编码整数变换量化

随着数字化视频技术在视频电话、视频会议、DVD以及高清晰度数字电视等方面的应用, 视频压缩标准也随之不断发展。ITU- T 制定的H.26x 系列和ISO/IEC 制定的MPEG- x 系列, 是视频领域中两大独立的主流视频压缩标准。2003 年, 这些组织又联合推出新的视频压缩标准H.264/MPEG- 4 - 10AVC, 简称H.264/AVC。H.264/AVC 采用一系列新的压缩方法, 可获得更好的压缩效果, 其压缩率达到以往标准的1.5~2 倍。因此, 基于这一标准的相关研究和硬件实现具有重要的意义。视频压缩硬件实现的关键是编解码模块, 其中尤以编码模块最为核心。本文主要研究编码模块中的4×4 整数变换量化核, 提出硬件实现的优化方法, 并采用Verilog HDL 语言进行硬件设计和综合。

4 ×4 整数变换量化核的原理

在以前的视频编码标准如MPEG- 2 和H.263 中, 对于预测的残差数据都是采用8×8 离散余弦变换( DCT)作为变换的基本运算操作; 而在H.264/AVC 编码标准中, 则采用类似DCT 变换形式的基于4×4 像素块的整数变换。由于变换块的尺寸缩小, 运动物体的划分更精确, 而且运动物体边缘处的衔接误差大为减小。

对于整数变换方式, 4×4 像素块的变换公式为:



式中, ( CXCT) 是二维变换核, Ef 是缩放因子矩阵, 符号!表示CXCT 矩阵里的每个元素和Ef 矩阵中相同位置的元素相乘, a=1/2, b= 2/5 / 。为了更有效地压缩数据, 需要利用量化的方法对变换后的数据进行有损压缩。同时, 由于整数变换需要利用矩阵行向量的归一化因子进行系数缩放处理, 为降低变换的运算量, 在H.264/AVC标准中将变换的系数缩放并进行量化运算处理, 避免了复杂的实数运算和除法运算, 更有利于硬件的实现。

对于量化方式, 正向量化运算可由如下公式实现:
Zij Wij MF+ 0 1 f >>q; sign(Zij )=sign(Wij )
式中, Zij 为量化后的系数; Wij 为变换矩阵W=CXCT 中的元素;MF= PF/Qstep•2q , PF 称为缩放系数, 根据元素在阵列块中的不同位置, 其取值如表1 所示, Qstep 为量化步长, 由0 至51 共52 个量化参数QP 决定, QP 增加1,Qstep 增加12.5%; q=15+QP/6, QP/6 取整数; 对于帧内宏块f 取2q/3, 帧间宏块f 取2q/6。需要指出的是, MF 的值可根据PF 和QP 的取值经简单计算得到, 并可形成表格, 通过查表方式便可实现硬件运算, 并有效地提高了运算速度。

4 ×4 整数变换量化核的优化设计

为进一步提高硬件运算速度, 减少硬件开销, 设计中采用了如下优化方法:

在求取变换阵W=CXCT 时, 根据变换的对称性,将X 的列变换( 矩阵左乘) 与行变换( 矩阵右乘) 分开实现, 把二维变换分割为两次一维变换, 并采用快速堞形算法来实现。一维变换的快速算法实现如图1 所示,其中的列变换可用如下算式表示:
w0=( x0+x3 ) +( x1+x2 )
w1=2( x0- x3 ) +( x1- x2 )
w2=( x0+x3 ) - ( x1+x2 )
w3=( x0- x3 ) - 2( x1- x2 )


对于每列变换, 需要进行8 次加法和2 次移位运算, 而行变换则可根据矩阵转置的性质ABT=( BAT) T, 将经过列变换后的结果矩阵先进行转置, 再采用相同的变换形式运算。这样对4×4 点数据做一次变换, 只需通过8×8 次加法和2×8 次移位运算便可完成。

针对不同运算的位宽需要, 设计专用的加法器和乘法器。本文对整数变换中的加法器采用三级流水线加法器, 实现9 位加法, 每级流水线完成三位超前进位加法, 将逻辑延迟限制在三位加法器之内。图2 给出了9 位加法器的流水线实现框图。选用EPF10K10LC84 - 3作为适配器件, 经过Synplify Pro 7.3 综合, 结果表明这种加法器具有较优的最高工作频率和硬件开销。如表2所示, 常规加法器的最高工作频率为37.0MHz, 消耗资源却为28LC, 而经过优化的三级流水线加法器在消耗资源增加不多的情况下, 其最高工作频率相比常规加法器提高了257%, 达到94.5MHz。

在量化过程中, 对于给定的量化参数QP, MF只有三种取值, 因此乘法实现可以采用无符号数乘法运算, 乘法结构则采用16×14 位加法树乘法器。这样, 在提高运算速度的同时节约了芯片面积。

对于f 的计算, 在不影响运算精度的情况下本文采用近似处理。为了避免除法运算, 将f 的计算式变形, 即:
f=2q/3=( 215/3) ×2m≈[( 215+1) /3]×2m≈10923×2m
式中, m 取值为0~8, 具体由相应的QP 给出。由于f 在完成加法运算后其结果还需左移q 位, 所以计算精度不会受影响。这样, 对f 的计算只需进行移位操作。

4 ×4 整数变换量化核硬件实现

基于上述算法原理及其设计, 本文首先对4×4 整数变换量化模块进行C 语言编程, 验证了该模块所采用算法的正确性。然后采用Verilog HDL 语言描述4×4 整数变换和量化核( 帧内模式) 的硬件功能, 并通过仿真软件Modelsim SE 5.7 进行功能仿真, 验证了该模块输出结果与设计要求相一致。最后采用Synplify Pro7.3 综合工具,并以Altera 公司的Stratix 系列FPGA 作为主要目标适配器件进行综合。

4 ×4 整数变换量化核的二大子模块的综合结果如表3 所示, 表中同时给出经本文优化设计前后的综合结果作为对比。可见, 经本文采用的三种优化设计处理后,在硬件开销改变不大情况下, 变换子模块的最高工作频率达到59.4MHz, 是未优化前的1.73 倍, 而量化子模块的最高工作频率达到55.8MHz, 是未优化前的1.82 倍。4×4 整数变换量化核的最高工作频率取各子模块的最低频率, 这样其优化后的最高工作频率是55.8MHz, 相比优化前的30.7MHz 提高了82%。

本文对H.264/AVC 协议中的4×4 整数变换量化核从算法原理到硬件实现进行了分析和设计。采用自顶向下的Verilog HDL 设计流程, 实现了4×4 整数变换量化核硬件功能的优化设计, 模块的最高工作频率提高了82%, 为H.264/AVC 视频编码标准的硬件实现提供了参考。

相关推荐

H.264/AVC中CAVLC编码器的硬件设计与实现

FPGA  H.264/AVC  变长编码  2010-10-13

ST FLI7510 iDTV片上系统(SoC)方案

ST STi7108 HD AVC STB译码方案

STi7108  HD AVC  STB译码  3D图像GPU  2010-01-07

CAST 发布最高视频编码质量的新版本H.264编码IP

CAST  视频编码  H.264  RTL源代码  2009-07-21

博通BCM70010 PC用高清音视频译码方案

BCM70010  音视频译码  PC  H.264  VC-1  MPEG-2  2009-06-19

基于ADSP-BF561的H.264编码器设计

ADSP-BF561  H.264  视频编码器  2009-05-27
在线研讨会
焦点