视频通信中基于后处理的误码掩盖技术
发布时间:2006-10-14 4:14:01   收集提供:gaoqian
南京邮电学院信息工程系 滕兆林 朱秀昌


  一、 引言

  现在广泛应用的图像视频压缩标准(如H.26x、MPEG-x等)非常有效地压缩了图像数据,节约了图像的传输带宽。压缩数据在实际信道中传输时不可避免地会遇到各种噪声和干扰,常常出现传输误码,由于在这些标准中对压缩图像使用了VLC编码,使得传输误码造成的误码扩散会进一步降低解码后重建图像的质量。为了消除和减小传输误码对重建图像质量的影响,往往可以采取多种技术手段来进行误码消除,如前向纠错编码(FEC)、误码控制编码(ECC)、遇错重传(ARQ)、误码掩盖等等。其中,基于图像后处理技术的误码掩盖是一种只利用解码端信息进行错误掩盖的技术。当解码器发现误码时,它利用图像序列中残存的各种空间的、时间的冗余特性尽可能“恢复”原图像,改善观察者的主观视觉效果。由于这种技术和编码端无关,不占用额外的传输带宽,可以和编码标准无关,因而它在实际中有很大的应用,尤其是应用在传输观赏图像的情况下。

  这里必须说明,在误码掩盖技术中,首先要确定误码的位置,即误码到底发生在码流(或图像)的何处,这就是误码定位问题,但本文介绍的误码掩盖技术都是在假设误码定位已经完成的条件下进行的。

二、 基于后处理的误码掩盖流程

  基于后处理的误码掩盖模块位于视频解码端,其主要工作流程见图

  1。在这种算法的流程中,解码端从信道上接收来的压缩视频码流首先送到码流语法分析单元,对其进行相应的码流语法分析。如果信道没有误码,则可以送交视频解码单元,正确解码后的图像数据再送到帧存储器,经过它的缓冲后再送到显示器去显示解码图像;如果信道有误码,则语法分析程序给出出错指示,并将带有误码的数据送到误码定位单元,得到和误码对应的位置信息,并将此位置信息送到误码掩盖单元。

  一旦语法分析单元给出出错指示,这时就开始了误码掩盖的过程。误码掩盖算法模块一方面接受受损的图像数据,这就是误码模块的输入数据。另一方面,按照误码定位单元给出的误码位置信息,误码掩盖算法在帧存储器的已解码的数据中(可能是本帧图像,也可能是前帧图像数据)寻找和丢失图像部分相似度最大的图像块、宏块或块组来替代因误码而失去的图像部分。这一过程持续到收到新的符合语法的码流为止。从以上误码掩盖的流程可以看出,其中最为关键的部分主要体现在图中的误码掩盖算法单元。

三、帧内误码掩盖

  对于图像因误码而丢失和损坏的部分,如果我们用来掩盖它们的类似数据来自同一帧的话,这就是帧内误码掩盖算法。它主要分为两类,一类是在空间域进行误码掩盖的算法,一类是在变换域进行误码掩盖的算法。

1. 空间域的方法

  多方向帧内内插的方法。这种方法在空间域先利用Sobel算子计算丢失块周围8个块内所有像素的梯度,把梯度的方向均匀量化到0°~180°中八个方向之一,然后根据每个方向上的像素个数决定沿1~3个方向上进行一维内插,这样就得到1~3个图像块,如得到不止一个图像块就把这些图像块融合成一个图像块。这种方法可以很好地恢复有多个方向的误码块。

  利用远端相关性的方法。为了充分利用图像帧内的相关性而不仅仅是和误码块相邻的几个块之间的相关性,还可以采用基于更大范围的相关性的误码掩盖方法。它首先提取一个包含误码块的任意形状的本地窗口,这个窗口的像素必须是相邻的,而远端窗口是图像中一定搜索范围内和本地窗口形状一样的窗口。利用匹配函数对本地窗口和远端窗口中不是误码的像素计算相似性,找到一个和本地窗口最相似的远端窗口,最后用这个窗口中和误码块对应的块代替误码块。

2. 变换域的方法

  利用图像平滑性的方法。它在正确接受了图像块的部分变换系数时,使恢复出的图像块内部像素之间和该块边缘像素与相邻的块外像素之间都最平滑。用每个像素和4个方向相邻像素的加权平方差最小作平滑条件,利用最优化方法解出误码的变换系数,是正确接受的变换系数和与误码块相邻的像素的线性组合。为了进一步改进平滑图像的质量,还可以用二次方差和拉普拉斯算子加权和最小作为平滑条件,来较好地恢复水平、垂直和对角线边缘。

  图像块的带宽是有限的,平滑区域图像块的各向带宽有限,有边缘图像块的边缘方向带宽有限。凸集投影法(POCS)就是利用这一特性的变换域误码掩盖方法。首先由误码块和8个相邻块形成一个组合块,用Sobel算子对组合块进行边缘检测,将其归为平滑块或者边缘块,边缘的方向被均匀量化为0°~180°中8个方向之一。然后定义两个算子,第一个算子是和边缘方向相关的带通滤波器,第二个算子是截断算子,使结果落在[0,255]中。将这两个投影算子反复作用到组合块上直到重建图像块稳定。

3. 其他

  基于模糊推理的块匹配方法。这种方法在空间域是用插值的方法恢复低频信息,在频域用模糊推理的方法得到高频复杂纹理信息。空间域的插值首先用边缘方向算子根据周围8个块估计丢失块边缘方向,然后沿着该方向根据周围8个块的4×4子块,用三次样条函数内插计算丢失块的4×4子块,最后在边缘方向用有理外插函数进一步估计块的值,得到误码块的全部像素值。而频域的模糊逻辑推理的方法先提取误码块周围8个块的频域特征,再利用模糊区间算子和适当的模糊推理规则得到误码块的高频信息。最后在边界约束条件下用滑动窗迭代(SWI)的方法合成前面的两部分结果。

  如果把图像看成是一个马尔可夫随机场,那么图像的边缘可以用最大后验概率(MAP)算法来恢复。为了控制马尔可夫随机场模型的阶数,需要根据受损图像块周围块的统计特征选择模型参数。这种方法不仅能很好地恢复低频系数,而且能较好地恢复高频系数。

四、 帧间误码掩盖

  帧间误码掩盖主要利用视频的时间相关性,对于视频中的预测帧(P帧和B帧)来说这是误码掩盖的主要方法。这种方法利用参考帧的信息来恢复误码块,当误码块的运动矢量被正确接受时,就用运动矢量指定的参考块直接替代误码块。实际上由于误码扩散的原因,运动矢量一般也是误码的,所以采用帧间误码掩盖就要先考虑运动矢量恢复。

  运动矢量的恢复方法主要有:直接将误码块的运动矢量置零;用参考帧同一位置图像块的运动矢量代替;使用空间相邻图像块的运动矢量的平均值(或者中值)代替。

  结合图像帧内的平滑性,将周围块的运动矢量、它们的均值和中值、零矢量和参考帧同一位置图像块的运动矢量等作为候选运动矢量,每一个运动矢量对应参考帧中的一个图像块。采用边界匹配算法(BMA)将选择边界像素和误码块周围相邻的像素差值最小的块来替代误码块。进一步的改进就是将候选运动矢量某一分量的范围扩展为BMA中候选运动矢量该分量最大值和最小值之间的所有值,这样将减少由于丢失块的运动方向和周围块运动方向有不同时边界匹配算法将产生严重的方块效应。

  前向运动跟踪(FMT)把前一帧中和丢失块相同位置宏块的周围宏块用其运动矢量投影到当前帧中,可以认为和丢失块有重叠的宏块的运动矢量加权和就是丢失块的运动矢量。类似地有后向运动跟踪(BMT)和双向运动跟踪(BMT)算法。

  以块为单位的运动矢量恢复如果恢复出的运动矢量和原来的运动矢量不同很可能会造成方块效应,而以像素为单位的运动矢量恢复避免了这个缺陷。运动场内插(MFI)方法是使用几个控制点的运动矢量通过内插得到场内每个像素点的运动矢量。例如用误码块左上、左下、右上、右下4个块的运动矢量作为控制点矢量,通过双线性内插得到误码块内每个像素的运动矢量。运动场内插可以适用于很多运动方式(例如旋转、拉伸等)的场合。

五、其他方法

  除了上述的帧内、帧间误码掩盖方法之外,还有一些其他方法,这些方法或者是针对一些图像特征对原有方法改进,或者是降低原方法的运算复杂度,或者是已有几种方法的结合。

  例如,先把误码块分割,在不同的分割部分分别内插,降低了MFI的运算复杂度;或者将MFI和BMA相结合,或者把MFI扩展到多参考帧;或者将受损块分割为几个子块,对每个子块使用BMA方法。还可以先恢复受损块内的边缘,在对块内被边缘分割开的各个部分用不同的参考像素进行内插。

  另外,针对不同编码技术又有特定的误码掩盖方法。例如有针对MPEG-4中的形状编码进行的误码掩盖,针对JPEG2000中的离散小波变换提出了感兴趣方向集(IDS)方法对子带进行误码掩盖等。

六、方法的选择和实际效果

  误码掩盖方法的选择是误码掩盖技术的一个重要内容。如上所述,在误码掩盖单元中既可采用帧内的方法,也可采用帧间的方法。一般情况下,对于帧内编码帧(I帧)采用帧内的方法,而对帧间编码帧(P帧和B帧)采用帧间的方法。但是这也不是绝对的,因为误码掩盖主要利用的是图像的相关性,有些情况下I帧受损块的帧间相关性可能大于其帧内相关性,而P帧和B帧受损块的帧内相关性也可能大于其帧间相关性。同时,不同的误码掩盖方法对内容不同的受损块的效果也是不同的。因此为了达到最好的误码掩盖效果,在实际应用中需要选择合适的误码掩盖方法。可以根据梯度边界匹配选择帧内、帧间或者结合帧内帧间误码掩盖方法。也可以根据图像编码类型(I帧、P帧或者B帧)和图像内宏块的类型(Intra或者Inter)确定当前有误码的图像是突发场景切换图像还是场景缓慢变化图像,对突发场景切换的图像采用帧内误码掩盖方法,而对场景缓慢变化的图像采用帧内误码掩盖方法。

  各种误码掩盖方法都可以有效提高解码图像的主观质量和PSNR。这里仅给出一例,如图2所示,在块损失率为10%时,帧内误码掩盖方法中可将Barb图像的PSNR由原来的16.43dB提高到37.08dB。

七、 结束语

  本文介绍了一些重要的基于后处理的误码掩盖方法,这些方法利用图像的各种相关特性比较好地恢复了误码图像块,提高了误码图像的信噪比,改善了重建图像的主观质量。今后,基于后处理的误码掩盖方法还将继续充分挖掘图像的冗余信息,利用图像的先验知识,结合多种图像处理技术(如边缘检测,图像建模),采用不同的掩盖算法(如模糊集方法、小波变换方法等)来提高误码掩盖的效果。另一方面还需要研究误码掩盖的快速算法,进一步降低运算复杂度,使其在实际视频通信应用中发挥重要作用。


摘自 中国多媒体视讯
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50