在传输中的误码可粗略地分为两类:随机误码和突发式误码[4]。随机误码是由于物理信道噪声、环境干扰等因素产生的。突发误码是由于网络的各种障碍或不正常引起的丢包造成的。
对出现的差错进行控制的技术可分为以下三类:
1、面向预防的方式,即抗误码编码ERC。这是一种编码端起主要作用的方式。在解码端不提供差错隐藏的情况下,其源端的编码算法和(或)传输控制机制可以使传输差错的影响最小化,在解码端提供差错隐藏的情况下,也可以使解码端更好地完成任务。例如FEC(前向纠错),联合信源和信道编码,分层编码。
2、面向补偿的方式,即差错隐藏EC。这是一种解码器完成错误隐藏的技术。通常,这类技术不依赖编码器的信息,而是利用已经接收到的信息通过估计和插值来恢复丢失的信息。例如空间和时间的平滑处理,插值和过滤等。
3、面向交互的方式,这是一种编解码器共同作用使传输差错减小的技术。例如ARQ和基于解码端反馈的信息的选择性预测编码。
本章主要研究的是第二种,即差错隐藏技术。
3.1 视频差错隐藏技术
差错隐藏指的是如何恢复视频流在传输中出现的错误[13]。既然是隐藏,它并不是重现出错前的状态,而是利用一定的方法将错误掩盖起来。在自然界中,通常图像或视频主要包含的是低频成分,即相邻像素的过渡是平滑的。利用这种特性,可以分时间域或空间域进行插值达到隐藏的目的。
3.1.1 空域差错隐藏
空域差错隐藏是一种最简单的恢复丢失数据的方法,它充分利用了视频信号在空间域上的平滑特性,利用单帧图像中的冗余来对丢失内容进行恢复。使用空域隐藏的前提是受损块周围的宏块没有或少有受损。
S. Aign[5]提出使用双线性内插法对丢失块进行恢复。即利用受损宏块与其四周邻近宏块(上、下、左、右)的边界像素进行插值。这种方法是基于图像平滑性的,在内容平滑,没有边缘的地方效果很好,但是在纹理复杂或边缘明显的地方,会有明显的边界效应。
为了解决这种边界效应,人们提出了基于边缘的内插算法[10]和方向性内插[15],[16]。这类算法是基于边界连续性假设的,即局部区域内边界方向的变化不大。如果错误块领域内存在边界,那么可以判断边界方向是否会延伸进错误块。基于边缘的内插算法,首先是进行边缘检测,利用一些分类器得到主要轮廓的方向。然后在这个方向上内插像素。这种方法对于线性边缘非常有效,但是对于非线性边缘又会有失真。
空间错误隐藏的另一种方法是凸集投影法(POCS)。这种方法是通过先验知识或者丢失块周围图像的信息,来推导出一些凸集。每个凸集都代表着受损块某一方面的属性。如果凸集的交集不为空,那么受损块肯定在某交集之中。Sun和kwok建议使用此方法恢复损坏的块变换编码图像块[6],使用两个凸集来进行投影。第一个投影算子,是对不同的边缘分类输出进行带宽有限性的约束。如果该块是一个单调块,那么采用各向同性的有限约束,由各向同性的低通滤波器完成。如果块分类的输出是八个方向之一,那么带通滤波器沿着这个方向滤波,在傅立叶变换域实现滤波操作。第二个投影算子实现了一系列约束和缩放,使第一个算子的范围在[0,255]之间。对于正确接收的边缘块的像素,其值均保持不变。这两个投影算子相互作用直到块在进一步投影下不再有任何改变。结果发现,初步估计较好时,五到十个迭代通常就可以了。然而,这项技术只是适用于帧内编码块或静止图像,因为使用的是重建过程中的空间信息。对于帧间编码块,要使时空信息得到利用则可以先使用前一帧的运动补偿块作为初始估计,然后使用凸集投影技术,进一步提高重建精度。 H.264差错隐藏技术研究及改进+文献综述(8):http://www.751com.cn/jisuanji/lunwen_3067.html