H.264中基于编码模式的自适应重叠块运动补偿
摘 要:为进一步提高视频压缩效率,将重叠块运动预测补偿与H.264视频编码框架中的可变大小块运动预测相结合,根据不同块的编码模式,自适应调整重叠块运动补偿的加权系数。实验结果表明,所提出的基于编码模式的自适应重叠块运动补偿对于较复杂的序列,在较高目标码率下,最大编码增益可达0.21 dB,显著提高了H.264的编码效率。
关键词:视频压缩;重叠块运动补偿,编码模式
随着网络和多媒体技术的发展,越来越多的数字视频业务不断涌现。H.264标准正是为适应各种业务增长对于运动图像压缩率的更高要求而制定的。在H.264中,引入了可变大小的块运动预测、多帧预测、1/4像素插值等技术,以进一步提高运动预测的精度,提高了视频压缩效率。
在高压缩效率下,基于块运动预测和补偿(block motion compensation,BMC)的视频压缩算法会产生块效应,严重影响了重建视频的主观质量。在H.264中,在运动预测/补偿环路中引入去除块效应滤波器以降低块效应的影响。另一方面,文证明了重叠块运动补偿(overlapped blockmotion compensation,OBMC)也是降低块效应、提高预测精度的一种有效手段,并研究了最优重叠块匹配加权窗的系数设计方法。但以上算法尚未在重叠块运动补偿中有效利用H.264现有编码框架中的多种预测模式,在H.264框架中引入重叠块运动补偿,可以进一步提高其编码效率。
本文提出了一种基于编码模式的自适应重叠块运动补偿算法。该算法根据周围已编码块的编码模式,自适应选择加权系数提高当前编码块的运动预测精度。实验结果表明,本算法在高码率时,最大编码增益可达0.21 dB,提高了H.264的编码效率。
1 基于编码模式的自适应重叠块运动补偿
文提出重叠块运动补偿提高了预测精度和编码效率,并均衡了失真分布。在OBMC中,对于当前编码块,可以拥有多个备选运动矢量,包括其自身的运动矢量和周围已编码块的运动矢量。通过引入一组加权系数,对每个候选的运动预测块加权得到最终的运动预测。
考虑到H.264中最基本的编码单位是44,为了描述方便,本算法中的OBMC选择的块大小为44。在实际实现中,为了提高运算速度,可以针对不同的编码模式采取相应的OBMC块大小。对于当前帧内每个块,如图1所示,其备选运动矢量集由其自身的运动矢量和周围块的运动矢量组成。令Bc表示当前编码块,Bi(i=1,2,3,4)表示其相邻块,相应的运动矢量为vc、vi。
如图2所示,假设p表示当前编码块内像素的坐标,表示该像素采用OBMC得到的运动预测值,则有
其中,fn-1(p)表示参考帧中位置p处的像素值,而ωc(p)、ωi(p),1≤i≤4分别表示OBMC的加权系数,且应满足以下约束
在对Bc块进行编码时,B2和B4块的运动矢量有可能还未进行编码(当B2、B4块与Bc块不在同一个宏块中时)。此时为了保证编、解码的同步,约定B2和B4的运动矢量设为vc。
由于块Bi内不同位置p的加权系数是不均匀的,它们的取值构成加权矩阵Wi。Wi的设置在很大程度上影响了OBMC的编码效率。文给出了若干Wi的选取方法,然而,它针对的是运动预测块的划分为固定的情况。
由于H.264中采取了可变大小块运动预测,从定性上来看,划分较小的运动预测块所对应的运动矢量一般来说更加精确,也更能够反映相邻块的运动趋势。基于该假设,属于较小划分的块所对应的运动矢量,在OBMC中应被赋予更大的权重,以进一步提高OBMC的运动预测精度,提高编码效率。
根据这一推论,本算法采用了一种基于编码模式的自适应OBMC算法。对于当前编码块Bc的每个邻近块Bi,定义一个加权矩阵集合si,根据Bc和Bi的编码模式,选取合适的加权矩阵Wi∈Si。也就是说,加权矩阵的选取策略取决于2个块各自对应的编码模式。例如,假设相邻块Bl对应的运动预测块大小为88,当Bc的预测块大小为1616,相应于v1的加权系数矩阵为W161,当Bc的预测块大小为44时,相应于v1的加权系数矩阵为W41。加权矩阵的选择策略应该保证对于加权矩阵中每个位置(m,n)的系数,都有。在实际实现中,可以采用查找表来存储选择策略。同时,加权矩阵集合和相应的选择策略可以通过对若干测试序列进行训练而获得。
在采用OBMC后,相应运动搜索的度量准则应进行相应的修正。在本文中,为了降低实现复杂度,对运动矢量的搜索不采取迭代的方法。此时,在进行运动搜索时,当前块选取的运动矢量不仅决定了其自身的运动预测值,也会影响到其右边及下边块的运动预测值(左边及上边块的运动矢量已经确定,不再进行考虑)。为了反映这种影响,将运动搜索的准则重新定义为
其中:第1项是当前块的预测误差的绝对误差和;第2、3项反映了对右边和下边块的预测误差影响;第4项中bv为对运动矢量的编码所需的速率。
2 实验结果
本实验采用H.264参考代码JMl0.1作为仿真平台,给出了各种CIF(common intermedia format)和QCIF(quarter common intermedia format)测试序列的测试结果。在本实验中,编码器设置为:率失真打开,参考帧数为1,可选的编码模式为7,采取内容自适应变长熵编码编码,运动搜索范围为1616,每个帧组包括1个I帧和49个P帧,所有帧均采用相同的量化参数。
表1给出了各测试序列的QP设置分别为20、24、28、32时,峰值信噪比(peek signal noise ratio,PSNR)和码率的对比。按照文提出的PSNR和码率的插值算法,表2给出了对于不同测试序列本算法和标准的H.264压缩效率的对比。从这些结果可以看出:采用OBMC的编码增益随着编码速率的增加而提高。在高码率时,最高编码效率可提高0.21 dB。当编码序列的运动比较复杂时,如Coastguard和Tempete序列,编码增益也比较明显。这种现象也符合上述对OBMC优越性的分析。
表3给出了对Foreman序列进行QP=24编码时,P帧各部分信息所占用比特数的对比。可以看到,采用OBMC算法明显降低了编码运动矢量信息和亮度残差信息的速率。为了简洁起见,没有对色度信号的运动补偿采用重叠块模式,因此,表示色度残差信号所需的码率与原算法相当。
3 结 论
为了将OBMC与标准中的可变块大小运动补偿结合起来,提出了根据相邻块编码模式选择OBMC加权矩阵的算法。仿真试验表明,OBMC的采用可带来平均0.1 dB以上的编码增益。对于高复杂度序列在高速率下的编码,最高增益可达0.2 dB.
下一步将对加权系数矩阵的自适应进行研究,以进一步提高编码效率。另外,并不是每个宏块采用OBMC都可以带来编码增益。可以研究在宏块级别引入一个标志,指示该宏块是否采取OBMC。这种灵活性将进一步提高编码效率。
评论