您现在的位置是:首页 > 家电

H.264_AVC视频编码变换量化核实现

2020-05-30 08:01:06

  2003年推出新的视频压缩标准H.264 /MPEG-4 -10AVC,简称H.264/AVC。 H.264/AVC采用一系列新的压缩方法[1],可获得更好的压缩效果,其压缩率达到以往标准的1.5~2倍。因此,基于这一标准的相关研究和硬件实现具有重要的意义。视频压缩硬件实现的关键是编解码模块,其中尤以编码模块最为核心。本文主要研究编码模块中的4&TImes;4整数变换量化核,提出硬件实现的优化方法,并采用Verilog HDL语言进行硬件设计和综合。

  1 4&TImes;4整数变换量化核的原理

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

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

  

 

  式中,(CXCT)是二维变换核,Ef是缩放因子矩阵,符号表示CXCT矩阵里的每个元素和Ef矩阵中相同位置的元素相乘,a=1/2,b=

。为了更有效地压缩数据,需要利用量化的方法对变换后的数据进行有损压缩。同时,由于整数变换需要利用矩阵行向量的归一化因子进行系数缩放处理,为降低变换的运算量,在H.264/AVC标准中将变换的系数缩放并进行量化运算处理,避免了复杂的实数运算和除法运算,更有利于硬件的实现。

 

  对于量化方式,正向量化运算可由如下公式[3]实现:

  

 

  式中, Zij为量化后的系数;Wij为变换矩阵W=CXCT中的元素;MF=

·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的取值经简单计算得到,并可形成表格,通过查表方式便可实现硬件运算,并有效地提高了运算速度。

 

  

 

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

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

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

  

 

  

 

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