当前位置: 主页 > 视频资讯 > 视频行业标准 > H.264/AVC编码器分数像素的插值算法优化

H.264/AVC编码器分数像素的插值算法优化

2009-02-28   C114 / 未知 点击: 标签:H.264 编码器 AVC
  

摘要:文中基于H.264/AVC视频编码器的系统芯片设计,对分数像素运动估计(FME)的亮度像素插值算法进行了简化调整;使用JM7.3参考代码模拟了不同分数像素插值算法对编码器性能的影响,通过分析这些插值算法的编码效率和芯片上的实现代价,提出了可以有效节约硬件实现代价的分数像素插值算法。试验结果表明优化后的插值算法可以使分数像素插值结构的硬件实现代价降低30%以上,而平均编码峰值信噪比(PSNR)和压缩率只有很小的损失。

在设计H.264/AVC视频编码器系统芯片的分数像素运动估计(FME)模块中,为了实现像素的可变块运动估计,像素块的匹配代价SATD(Sum of Absolutehadamard Transformed Differences)计算是以4×4的最小像素块为基本处理单位的[1]。如果在芯片设计中直接采用H.264/AVC视频编解码标准推荐的6阶滤波器(6-tap FiniteImpulse Response Filter)来实现参考亮度像素块的1/2像素插值;每完成一个1/2像素的插值就得读入同一行/列上6个相邻像素来进行插值运算[2,3]。那么,分数像素运动估计模块要完成一个4×4当前图像块的1/2像素匹配运算,1/2像素插值单元就得读入一个10×10的参考亮度像素块进行插值运算,这样做的结果势必会增加参考像素存储器的访问带宽、增加插值单元中数据寄存器的数目、降低插值单元的运算效率;加之,6阶插值滤波器自身的硬件结构就比较复杂、实现代价高,这样也会进一步增大分数像素运动估计模块的芯片面积,所以在H.264/AVC编码器的系统芯片设计过程中,就完全有必要根据硬件实现编码运算的特点,在编码器编码性能和硬件实现代价之间求取合理的折中;对亮度像素的插值算法和实现结构做出必要的调整和优化[4]。为此,文中发挥编解码软件实现算法的灵活性;使用H.264/AVC编解码标准的JM7.3参考代码,对4种分数像素插值算法分别进行了编码性能模拟,并且进一步分析了各自的硬件实现代价。据此,对H.264/AVC编码芯片中分数像素插值单元的优化设计问题进行了探讨。

1、分数像素的插值算法调整

1.1插值算法的调整

在H.264/AVC视频编解码标准中,为了得到良好的编解码性能;在分数像素运动估计(FME)过程中,使用了6阶滤波器来完成亮度像素的1/2插值、简单的线性内插值来完成亮度像素的1/4插值[1,2,5,6]。使用这样的插值方法,虽然可以获得较高的编码峰值信噪比(PSNR)和编码压缩率,可是在H.264/AVC编码器芯片的设计中,还是希望在不显著降低编码器性能的前提条件下,能够对分数像素插值算法做出能节约硬件实现代价和便于硬件实现的调整。为此,我们根据参考文献[7]提出了表1所示的3种亮度像素的简化分数插值方法;并通过参考软件的编码模拟来分别考察这些插值方法对编码器性能的影响。

表1中的方法4就是H.264/AVC视频编解码标准[1]中推荐的分数像素插值方法。方法1~3都是在此基础上针对硬件实现分数像素插值的调整算法。其中的方法1和方法3,对于1/2像素和1/4像素插值都采用了相同的插值算法,这样调整插值结构的初衷在于:可以为芯片中1/2像素和1/4像素插值运算提供结构复用的可能,使插值的硬件结构更为简单。当然,这些对于分数像素运动估计(FME)模块的插值算法调整还得必须同时兼顾编码器的编码性能[8],只有既有利于硬件实现而又不显著降低编码性能的算法调整才是有价值的。

1.2分数像素插值方法的编码性能模拟

对表1中的4种插值算法,用H.264/AVC编解码标准的参考代码JM7.3进行软件的编码性能模拟,用于编码性能模拟的8个测试序列参数为:(176×144,QCIF):共39帧(P帧:20帧);测试序列文件大小:1482624字节(YUV格式);编码参数设置:(搜索范围:16;参考帧数:5帧;编码格式:IPBPBP…;量化参数:QP=28),对8个常用的图像测试序列进行模拟编码后得到的结果如表2所示,由表中数据就可以看出4种分数像素插值方法的编码性能对比。

对表2中的模拟编码结果进行整理,就能得到编码器在分别采用这4种分数像素插值方法时,编码8个测试序列的平均编码性能直观对比图。图1中的左图表示了亮度信号(Y)的平均编码峰值信噪比(PSNR);右图表示8个测试序列的平均编码压缩率。

1.3插值方法的编码性能分析

对上述3种简化的分数像素插值方法(方法1~3),由上文的模拟结果可以看出:只有方法2的编码性能最接近H.264/AVC编解码标准的推荐插值算法(方法4)的编码性能:8个测试序列亮度信号Y的平均PSNR只有很小的下降,利用测试数据计算得到PSNR下降0.011dB、相对下降幅度为:0.0299%;同时,方法2的编码压缩率也只有较小的下降,计算得到的平均压缩率下降了2.729倍、相对下降幅度为:1.6392%。对于采用插值方法2和插值方法4得到的编码压缩文件直接使用JM7.3解码器进行解码性能测试,结果发现解码后的测试序列在主观上没有任何差别;方法2的平均解码信噪比(PSNR)和H.264/AVC编解码标准推荐插值算法(方法4)的解码信噪比相比较,也只下降了0.064dB,相对下降率为:0.18%。由此也可以看出4阶滤波器1/2像素插值+1/4像素线性内插的调整算法并没有使编码器的编码性能显著下降,调整后的分数像素插值算法(方法2)是比较切实可行的。

顶一下
(0)
0%
踩一下
(1)
100%
精彩推荐