故事志 > 生活 > 正文

​详解视频拖影现象和解决办法

2023-11-27 07:43 来源:故事志 点击:

详解视频拖影现象和解决办法

0 引言

本篇文章主要讲解了拖影现象的产生,以及后面的解决办法。这篇文章是由一篇论文里提取的,并非本人之笔。给大家推荐这篇文章,是因为在项目中遇到这个拖影问题,然后从这篇论文里面提取找到解决办法,这篇文章的作者,也是我以前上数字视频算法技术的老师,非常有功底的一个教授。

消除视频解码重建图像拖影的研究

本文基于光流场和光流方程的图像检测技术,在快匹配情况下,通过比较相邻方块的运动矢量,检查各自对应的参考帧方块是否重叠,从而检测出先被运动前景覆盖,而后又显露出来的图像区域,结合以率失真性能最佳的编码模式选择算法彻底消除运动前景边缘的拖影和残留,从而获得良好的图像质量。

1 前言

在视频编解码过程中,变换域内的量化会造成在重建图像中出现非自然成像效果.其中直流和较低频率变换系数的量化失真引起了方块效应 ,此时沿图像分块网格呈现图像波形不连续;较高频率变换系数失真引起了环状效应,将会在静止图像中呈现的边缘的尖锐振动波形和在连续播放的图像中呈现的边缘的拖影和残留。这类局部失真要么有规律地出现,要么出现在主观感兴趣区域,容易为人眼察觉,对重建图像的主观质量影响很大。在 H.264实时视频编码及传输的现场,观察到这样的图像质量衰退一运动的人物前景边缘在静止背景上留下明显的拖影和颗粒残留.当码率较低 (低于768kbps)同时运动前景与静止背景的颜色反差较大时,在背景上留下的前景边缘残留尤其明显。现有的消除这种拖影和颗粒残留效果的一种方法是去环状效应滤波,如 MPEG-4 VM18.0I一定 义的去环状效应滤波算法.然而去环状效应滤波并没有被现有的视频编码标准定义为环路滤波(现有的视频编码标准如 H.264【2】仅定义去方块效应滤波为环路滤波),只能用作后处理,于是大大降低去方块效应滤波的适用性和有效性.因为接收端在没有原始图像数据和可以利用原始图像数据的发送端提供的相关信息的情况下不可能完全正确区分真实图像细节与编码量化失真所引起的拖影和颗粒残留效果,所以在接收端完成的用作后处理的去环状效应滤波必然会使图像细节模糊.此外不能保证与其它厂商产品互通时的图像质量.研究中发现如果在 H.264的运动估计和模式选择中采用 Hadamard变换,则图像拖影和残留效果消失,同时图像变得更清晰,但是仅编码不能达到实时的速度-由于 Hadamard变换引入过量运算,文献网提供的消除环状效应的算法,属于一种只需要在编码器做个别改动,便能改善局部图像主观质量衰退的措施.该方法根据图像中每个宏块分别含有锐利边缘的多少,来调节宏块量化精度.并计算每个宏块的边缘强度;如果宏块边缘强度在当前帧处于较高水平,把QP值减 1;如果处于较低水平,把QP值加 1;处于中间水平,QP值不变.理论上文献【3]的方法可以提高图像边缘和轮廓的清晰度,减轻图像边缘附近的光晕效果.但是在本文研究的实例中采用后却没有效果.原因是 QP值变动一两个单位 ,对编码结果和图像质量的影响不大,更不能有效减轻较高频率变换系数的量化失真;QP值变动过大,又会影响码率控制算法的作用,出现超码字和图像质量下降的后果.为了提高实时编码的重建图像质量,迫切需要研究一种能有效消除图像拖影和颗粒残留效果的简便易行的方法。

2 技术分析

帧内编码模式能够减轻这种较高频率变换系数的量化失真.在帧内编码模式(称为 Intra模式 )下,能量主要分布于直流和较低频端,较高频率的能量远低于在带有运动补偿帧间预测的帧间编码模式(称为Intra模式)下分布于相同频率的能量。Intra模式下直流和较低频变换系数失真较严重,会出现方块效应;而Inter模式下较高频率变换系数失真较严重,会出现环状效应和运动前景边缘的拖影.Inter模式在压缩比上对于 Intra模式具有无与伦比的优势.因此在图像帧一级和 16x16图像块(称为宏块)一级尽量采用Inter模式来获得高压缩比,就是 P帧和Inter宏块.仅在初始时刻(包括序列的绝对初始时刻和切入时刻)和需要纠正或应付传输差错时使用I帧 (图像帧一级的编码模式为Intra),在帧间块匹配失败时和需要局部图像失谐校正或刷新时使用 InCa宏块 (宏块一级的编码模式为In~a).把图像局部区域的编码模式从Inter改为Intra,可使能量分布发生变化,通过相同量化器形成的较高频率系数的量化失真得到减轻,主观图像质量得以改善.但该区域的率失真性能可能下降.在利用Intra刷新减轻较高频率系数量化失真的方法时关键点之一是检测出存在较严重的较高频率系数量化失真的地方.据现场观察,呈现拖影和颗粒残留的位置是先被运动前景覆盖而后又显露出来的静止背景区域.此处属于帧间块匹配失败的区域.即运动补偿帧间预测残差相对较大.所谓相对较大,就是这些区域的预测残差比相邻的帧间块匹配成功区域的预测残差大,但是在整帧图像中又小于含有更复杂运动和更复杂纹理的帧间块匹配失败区域的预测残差。这样的图像区域属于被遮挡的区域.文献[4]提供了遮挡的定义和相关图像检测的理论和技术,堪称该领域的教科书.它引人光流场和光流方程等一系列概念、数学模型来讨论图像检测问题."遮挡指的是一个表面的覆盖或显露问题.它是由于仅占有部分观察场的物体的三维旋转及平移所引起的"【4】.实质是光流方程无解、存在多个病态解的情况.这里,用实线表示的物体从时刻 t到 t'沿 X方向平移.时刻t的图像为k,时刻t'的图像为k+1.k帧图像中的虚线区域表示在 k+l帧图像中被覆盖的背景。这意味着在 k+l帧图像中找不到这些虚线区域内像素的对应位置.k+l帧图像中的虚线区域表明由于物体运动而显露出的背景,在k帧图像中没有这些虚线区域内像素的对应位置。以 H.261为基础的常规视频编码采用基于平移运动模型的块匹配方法.可以应用文献 的基于光流场和光流方程的图像检测理论进行以下的定性分析:

如果场景中对象无遮挡,那么像素在时域上存在一一对应的关系.一旦对象被遮挡 ,就会破坏像素在帧间的这种一一对应的关系.前景向右运动,当前帧的两个相邻的图像块 群1和 分别对应两个互相重叠的参考帧图像块,即当前时刻的两个不同像素对应过去时刻同一个像素.说明对于#2块,过去帧提供不了合适的图像块与之对应.#2块就是在过去帧被覆盖而在当前帧重新显露的区域.反之,与当前帧的两个相邻的图像块分别对应的两个参考帧图像块错开一块区域.当然这还不能充分反映问题.如果充分证实某一参考帧图像区域不能与任何当前帧图像区域对应,则该参考帧区域就是在过去帧显露而在当前帧被覆盖的区域。以上分析说明,与两个当前帧相邻块分别对应的两个参考帧图像块重叠,是曾被覆盖的背景显露出来的充要条件;这样的两个图像块错开,只是背景被覆盖的必要条件.比较当前帧相邻块运动矢量,就可以发现对应的参考帧图像块是否重叠或错开.运动矢量之差值越大,重叠或错开的程度越大,实际的或可能的遮挡区域也越大.因此为消除拖影而需要执行的显露背景比检测的覆盖背景更简单、方便。以上定性分析与解光流方程相比,原理相同,结果一致,但是更直观、更简便. 一 旦检测到先被运动前景覆盖而后又显露出来的图像块,就需要考虑强制Intra刷新而不必理会此处率失真性能最佳的编码模式是Inter还是Intra。Intra刷新的范围是减轻较高频率系数量化失真的另外一个关键点.H.264提供了多达 7种运动补偿方块一16 X 16,16×8,8×16,8 X 8,8×4,4×8,4×4,对提高检测显露背景的精度和可靠程度非常有利.另一方面,最后定稿的 H.264 版本只提供16×16宏块 Intra模式,没有小于 16 X 16块的 In一刷新模式(H.26L JM2以前的版本包括 8 X 8亚宏块 Intra模式),限制了通过 Intra刷新消除拖影的效果.这种限制是 :如果对小面积的显露背景进行 16 X 16的Intra刷新,会使码字开销过大;不刷新则出现拖影,表现为在纯色背景上呈现前景色颗粒.因此要求慎重使用 16×16宏块Intra刷新。

3 技术方案

本文作者在研究解决消除视频解码重建图像拖影的方法时,选用了与原来的 H.264 编码过程耦合较紧密、改动较少、检测精度和可靠程度较高、率失真性能和效果最优的实现方法.作者按照原来的从大块(16×16块)到较小块(暂时只有 16 X 8块和 8 X 16块)的顺序执行 Inter模式尝试和 Inter代价选择。其间在完成 16 X 8模式尝试时通过比较宏块内部两个 16 X 8块的运动矢量的垂直分量检测有无前景垂直运动引起的显露背景.接着执行 8×16模式尝试,完成后通过比较宏块内部两个 8×16块的运动矢量的水平分量检测有无前景水平运动引起的显露背景.如果发现面积较大的显露背景,也就是发现对应的参考帧图像块的重叠程度大于 一 个预先设定的经验值,就执行强制 Intra刷新。该实施例子的具体过程如下描述.假设左边8×l6块 存l的运动矢量丽 =(mvl ,mv1 ),右边8×l6块 #2的运动矢量丽 =(my2 ,my2 ).其中mvl 和 my2 是运动矢量的水平分量,mvl 和 my2是运动矢量的垂直分量.

3.1 检测前景向左运动引起的显露背景

如果 mv2<0且mvl=-mv2 ≥amv,出现足够大面积的前景向左运动引起显露背景,需要执行强制 Intra宏块刷新 ;否则,不需要执行强制 Intra宏块刷新。上面的Amy是衡量两个对应参考帧图像块重叠程度的经验值.

3.2 检测前景向右运动所引起的显露背景

3.3 如果 mvl >0且 mvl~mv2 ≥Amy,出现足够大面积的前景向右运动引起显露背景,需要执行强制 Intra宏块刷新;否则,不需要执行强制Intra宏块刷新。同理可以推导出检测前景作垂直运动引起的显露背景的过程.假设上边 16×8块 #l的运动矢量丽 =(mvl ,mv1 ),下边 16×8块 #2的运动矢量MV =(my2 ,my2 ).

3.4 检测前景向上运动所引起的显露背景

如果 mvl >0且 mvlr-mv2 ≥amv,出现足够大面积的前景向上运动而引起显露背景,需要执行强制 Intra宏块刷新 ;否则,不需要执行强制 Intra宏块刷新。

3.5 检测前景向下运动所引起的显露背景

如果 my2<0且 mvl~mv2 ≥Amy,出现足够大面积的前景向下运动而引起显露背景,需要执行强制 Intra宏块刷新;否则,不需要执行强制 Intra宏块刷新。在上述过程中Amv的设定是关键.设定时需要考虑到图像块大小、运动矢量精度、基于平移运动模型的块匹配运动估计算法所存在的局限与误差、宏块编码的率失真性能、消除拖影的效果.如果Amv偏小,就会出现对于很小面积的显露背景也进行 Intra宏块刷新 ,码字开销过大;如果Amy过小(接近于零),运动矢量本身的局限与误差会掩盖真实的显露背景,后果更为严重;如果Amv偏大,则拖影消除得不彻底.

4 结论

本文作者所采用的图像检测技术是著名的基于光流场和光流方程的图像检测方法,在块匹配情况下的实现,即通过比较相邻方块的运动矢量检查各自对应的参考帧方块是否重叠,从而检测出先被运动前景覆盖而后又显露出来的图像区域.注意到这样的区域属于帧间块匹配失败的区域,在此类区域内Intra模式经常成为以率失真性能最佳为准则的编码模式选择算法的输出结果,但是图像内容的复杂性与随机性造成编码模式选择算法把 Inter模式也作为最佳编码模式并且确实呈现出运动前景边缘的拖影和残留.本文作者结合以率失真性能最佳为准则的编码模式选择算法获得良好图像质量,尤其是彻底消除了运动前景边缘的拖影和残留。本文针对 H.264编码的实现方法具有与原来的H.264 编码过程耦合较紧密、改动较少、检测精度和可靠程度较高、率失真性能和效果最优、运算量最少的特点,圆满地解决了实际问题.

5.总结

平时在碰到技术问题,最好是能够从更深层次去理解,才能够更好的看清本质。希望能够帮到大家。欢迎关注,收藏,转发,分享。

后期关于项目知识,也会更新在微信公众号“记录世界 from antonio”,欢迎关注