用于视频通信的综合抗误码视频编码方法

文档序号:7663874阅读:178来源:国知局
专利名称:用于视频通信的综合抗误码视频编码方法
技术领域
本发明属于多々某体通信领域,具体地说是用 一种在发生传输错误时 能用利用反馈信息快速高效率的恢复图像的用于视频通信的综合抗误 码^L频编码方法,适用于支持宏块级多参考帧的^L频编码器。
背景技术
随着通信技术和网络技术的迅速发展,视频通信系统正在得到越来 越广泛的应用。例如视频会议、可视电话等。然而任何通信网络都不能 保证传输过程完全可靠,特别是近年来逐渐得到广泛应用的无线网络由 于受限于信号衰落、干扰和多径传输等的影响,具有较高的误码率,所 以在易错信道特别是无线信道上的视频通信对视频编码算法提出了较 高的要求。这就是视频码流应当具有一定的抗信道误码能力,在错误发 生后,具有较强的错误恢复能力。这也是摆在研究者面前的一个难题和 研究热点。
目前在视频通信系统中采用的各种视频编码算法都采用了传统的 基于时间预测的混合-见频编码方法。通过时间预测,-见频编码算法尽可 能的充分利用了运动图像相邻帧之间的相关性,减少了需要参加编码的 图像复杂度,从而获得了比静止图像编码算法高的多的压缩率。但是, 时间预测也使得视频码流对误码格外的敏感,误码导致的解码器和编码 器中的参考帧不匹配会累积和扩散,在下一个I帧到来之前,错误会沿 着时域向后传播,使后续图像发生错误,并且错误区域逐渐扩大。
在已经得到广泛应用的H. 263和最新的视频编码算法H. 264中吸取 了多种行之有效的抗误码编码方法,例如重同步,可逆变长编码,数
据分区,灵活宏块顺序,冗余条带等。这些方法能在一定程度上减少误 码对图像的破坏,使解码的图像质量更好。然而这些方法无法自适应信 道质量,并且的抗误码能力依然非常有限,无法终止错误传播。在信道 误码率很低时,它们降低了编码效率,在信道误码率提高时,它们的抗 误码效果又难以令人满意。
除了抗误码编码方法外,抗误码解码和交互式抗误码编码也是^L频
通信中常用的抗误码方法。抗误码解码一般指解码器的错误掩盖,它可 以在一定程度上恢复错误的图像,改善视觉效果,但是也不能终止错误 传播。交互式抗误码编码出现在具有反馈信道的系统中, 一般是指通过 解码器反馈的错误信息调整编码器的操作,使图像的错误能够尽快恢 复。这种方法对编码效率的影响较小,可以终止错误传播,但是存在延 迟问题。
尽上述三类方法都已经得到了广泛的研究,但是这些方法各自都有 缺点和不足,如何有效的把它们结合起来,在现有的视频编码算法的基 础上得到实用的效率更高的抗误码性能仍然是一个值得研究的问题。

发明内容
本发明的目的在于提出一种有效的把抗误码解码和交互式抗误码 编码综合到现有的一见频编码算法中,在基本不降低编码效率的前提下快 速高效率的终止错误传播的用于视频通信的综合抗误码视频编码方法。
为了实现上述目的,本发明包含以下步骤 在编码器方
第一步骤、在编码每帧图像前,如果接收到解码器的错误反馈消息, 编码器将对参考帧队列中所有受到误码影响的参考帧进行精确错误区 域跟踪和同步错误掩盖。使编码器和解码器的参考帧队列恢复同步;
第二步骤、在编码每个宏块前,用新的编码模式和多参考帧选择算 法确定宏块类型和编码参数;
第三步骤、在图像编码完毕后,保存所有宏块的编码模式,运动矢
量、编码残差和4晉误掩码; 在解码器方
第四步骤、对视频码流按照视频解码器的流程进行解码,并记录所 有错误宏块的序号和错误掩盖方法;
第五步骤、在一帧图像解码完毕后,如果有误码,则发送错误反馈 消息,包括帧序号,所有错误宏块的序号和错误掩盖方法到编码器。
上述第一步骤的精确错误区域跟踪和同步错误掩盖实际上是结合 在一起进行。
上述第 一 步骤的精确错误区域跟踪和同步错误掩盖包括如下步骤 第一步确定对应解码器出错的参考帧;
第二步对出错参考帧的所有错误宏块,用解码器反馈的错误掩盖 方法进4于4昔i吴掩盖;
第三步将经过第二步的错误掩盖后所有发生改变的像素的错误掩 码置T,标记这些像素已经被"污染"了;
第四步对于后续参考帧依次按如下方式进行处理
对于每一帧的所有宏块按照编码顺序,根据其编码模式和运动矢量 更新每个像素点的错误掩码
如果一个像素点只有一个参考点,直接拷贝参考点的错误掩码;
如果一个像素点有多个参考点,对多个参考点的错误掩码取逻辑 "或"的结果作为该像素点的错误掩码。
第五步用第四步得到的每个像素的新错误掩码判断该像素是否需
要重建,如果错误掩码为T,在重建的参考帧中用预先保存的该像素 的编码残差和重新获得的参考像素相加,得到该像素的重建值。
上述第二步骤的编码模式和多参考帧选择算法包括如下步骤 在编码每一个宏块前,首先计算I宏块编码的代价函数,对于
H. 264,则是先选4奪最优INTRA预测模式并得到最优I宏块编码的代价
函数;
做运动估计首先在最近的参考帧上进行,如果参考区域所有像素 的错误掩码全为'0,,则运动估计结束,否则在参考帧队列中向前依次 取参考帧进行运动估计,直至参考区域所有像素的错误掩码全为'0, 或者参考帧耗尽,保存每一次运动估计的运动矢量和代价函数;
I宏块编码的代价函数和所有运动估计的代价函数一起取最小值, 确定宏块的编码模式,如果是P宏块编码,这一步还确定了参考帧和运 动矢量。
上述第三步骤的保存所有宏块的错误掩码均为全'0,。 本发明的基本设计思想是在出现误码时,解码器将无法正常解码 的所有宏块序号以及错误掩盖方法通知编码器,编码器根据反馈信息在 对应参考帧的相应宏块进行同样的错误掩盖,并且标记由于错误掩盖而 变化的像素的错误掩码为T,即被"污染"了。由于运动补偿,被"污 染,,的像素可能被后续帧参考使"污染"在后续图像中传播并且扩散。 对后续图像中因运动补偿而"污染"的像素,用预先保存的该像素的编 码残差和已经完成了同步错误掩盖的参考^f象素相加,得到该像素新的重 建值,完成后续帧的同步错误掩盖。在完成同步错误掩盖后,编码器和 解码器的参考帧队列恢复同步,错误传播完全停止了。为了进一步提高 编码效率,在每个宏块编码时进行新的编码模式和多参考帧选择,用新
7
的方法尽量避开对误差较大的"污染"区域的参考。通过这些方法,本 发明尽可能穷尽了在存在反馈信道的条件下的视频编码器的错误恢复 能力,无论是^"误恢复时间和图〗象峰值信噪比都优于目前已有的方法。


图1为本发明的原理框图。
图2 a为本发明以H. 263为例的精确的错误跟踪(黑色部分是"污 染"区域)出错参考帧。
图2 (b)为本发明以H. 263为例的精确的错误跟踪后续参考帧。 图3为本发明多参考帧选择示意图。 图4为本发明编码器的流程图。 图5为本发明解码器的流程图。
图中r。到r^是参考帧队列,m。到m^保存每个参考帧的错误掩码, mv。到mvh保存每个参考帧所有宏块的编码模式和运动矢量,E。到Eh 保存每一帧的编码残差。
具体实施例方式
下面结合附图及实施例对本发明作进一步的详细描述。 本发明提出的用于视频通信的综合抗误码编码方法主要包括精确 错误区域跟踪、同步错误掩盖、编码模式和多参考帧选择三部分。这三 部分密切相连,是一个不可分割的整体。其中精确错误区域跟踪在像素 级准确的指示了编码器参考帧队列中每一帧的每个像素点是否和解码 器对应参考帧的同 一个像素点失去同步。同步错误掩盖重建所有失去同 步的像素点,Y吏编码器和解码器的参考帧队列恢复同步。编码模式和多 参考帧选择帮助编码器在发生同步错误掩盖时为每个宏块快速准确的 选择最佳的编码模式和参数。在图1中,虚线框外是一个标准的支持宏块级多参考帧的视频编码
器,虚线框内是本方法对视频编码器的补充。在H. 26x家族中,H. 263++ 和H. 264包含了对宏块级多参考帧的支持。图中R。到RN—i是参考帧队列, M。到Mw保存每个参考帧的错误掩码,MV。到MVN—J呆存每个参考帧所有宏 块的编码才莫式和运动矢量,E。到E^保存每一帧的编码残差。其中错误
掩码是一个和参考帧等大小的虚拟图像,每个像素点是一个布尔值,表 示对应参考帧相同位置的点是否被信道错误"污染"了。下标0到N-1 表示参考帧到当前编码帧的时间间隔。
1、精确错误区域跟踪视频编码器保存最近N个参考帧和它们的 错误掩码,编码模式和运动矢量以及编码残差。在最初没有接收到错误 反馈消息时,编码器将每个参考帧的错误掩码全部清'0,,表明画面未 被"污染"。解码器通过反馈信道发送错误反馈消息通知编码器错误帧 的序号、所有出错宏块的位置和对每个出错宏块采用的错误掩盖方法。 在编码每帧图像前,如果接收到来自解码器的错误反馈消息,编码器用 执行如下三个步骤,否则跳过步骤1和步骤2:
步骤l:对于出错的参考帧,编码器对所有错误宏块先进行同步错 误掩盖步骤l,将错误掩盖后发生改变的像素的错误掩码全部置T, 标记这些像素已经被"污染"了。
步骤2:由于信道存在往返延迟,当错误反馈消息到达编码器时, 解码器的参考帧队列中已经有若干帧图像被错误传播"污染"了。所以 编码器不但需要标记出错参考帧的"污染"部分,还需要对所有后续的
参考帧标记"污染"的部分。对于后续参考帧根据它们的编码顺序依次 进行错误跟踪。方法是对于每一帧的所有宏块按照编码顺序,根据其编 码模式和运动矢量更新每个像素点的错误掩码。
如果一个像素点只有一个参考点,例如P宏块的整像素运动矢量或
者H. 264的I宏块在垂直和水平预测时,直接拷贝参考点的错误掩码; 如果一个像素点有多个参考点(或者说参考点为参考帧中多个像素点的 线性组合),例如P宏块的半像素运动矢量或者H. 264的I宏块在对角 线方向预测时,对多个参考点的错误掩码取逻辑"或"的结果作为该像 素点的错误掩码。
图2以H. 263为例,假设运动矢量都是整数,误码导致解码器无法 解码第4个块组最后6个宏块,同步错误掩盖后所有像素均发生了变化, 故编码器标记该帧这6个宏块对应的错误掩码为全T,如图2(a)。 在下一帧的l、 2、 3宏块中,宏块2是INTRA模式,由于H. 263的I宏 块不参考其它像素,故宏块数据和错误掩码均保持不变;宏块1、 3由 于是P宏块,并且参考区域包含了错误掩码非'0,的数据,故编码器 分别复制参考区域的错误掩码到宏块l、 3。这个过程反复进行,直到所 有后续参考帧都完成了错误跟踪和重建。
步骤3:在编码器每编码新的一帧图像时,由于编码器和解码器的 参考帧队列已经恢复同步,故所有错误掩码均为'0,。
通过这几个步骤,编码器可以在接收到错误反馈消息后精确的建立 参考帧队列中每一帧所有被"污染"的像素的精确位置。
精确错误区域跟踪的特点在于
a、 对于出错的参考帧,编码器用和解码器相同的错误掩盖方法做 同步错误掩盖,将发生改变的像素的错误掩码标记为T,精确的得到 了这一帧所有受误码影响的像素点;
b、 根据运动矢量可以精确的判断后续参考帧中所有受误码影响的 像素点,为后续参考帧的同步错误掩盖提供了依据。
10
C 、精确错误区域建立的参考帧错误掩码为编码器更好的选择编码 模式和参考帧(第三节)的选择提供了依据。
2、 同步错误掩盖同步错误掩盖是指对被误码"污染"的参考帧, 编码器用和解码器相同的^l昔误掩盖方法重建所有净皮"污染"的宏块,并 且使编码器和解码器的参考帧队列保持相同。分为两个步骤
步骤l:在接收到解码器的错误反馈消息后,为了使编码器的对应 参考帧和解码器保持一致,首先在出错参考帧中反馈消息报告的所有出
错宏块用反馈消息中通知的错误掩盖方法进行和解码器同样的错误掩 盖。然后进行精确错误区域跟踪。
步骤2:在精确错误区域跟踪完成后,解码器参考帧队列中所有受 误码影响被"污染"的像素点均已确定。为了使编码器和解码器的参考 帧队列保持同步,需要对后续参考帧依次进行同步错误掩盖。
该方法是对于后续参考帧,根据每个像素的错误掩码判断该像素是 否需要被重建。如果该像素的错误掩码为T,用预先保存的该像素的 编码残差和重新获得的参考像素相加,得到该像素的重建值。
同步错误掩盖的特点在于
在同步错误掩盖完成后编码器和解码器的参考帧队列恢复同步,错 误传播被完全停止。
3、 编码模式和多参考帧选择根据视频图像的时间相关性, 一般P 宏块的参考帧在时间上越接近当前帧,预测误差越小。考虑到错误掩码 为T的像素由于误差较大,为了提高预测精度,每个宏块的运动估 计首先在最近的参考帧上进行,如果参考区域所有像素的错误掩码都是
'0,,则运动估计结束,否则在参考帧队列中向前依次取参考帧进行运 动估计,直至在某一帧的参考区域的错误掩码都是'0,或者参考帧耗
尽(图3 )。
编码器的对每个宏块的模式和参考帧选择的步骤如下
步骤1:计算I宏块编码的代价函数,对于H. 264,则是先选择最 优INTRA预测模式并得到最优I宏块编码的代价函数;
步骤2:取最近的重建帧作为参考帧,进行运动估计,并且计算代 价函数;
步骤3:如果参考区域没有被"污染"(所有像素的错误掩码都是 '0,)或者参考帧耗尽,则运动估计结束,否则再向前取一个重建帧作 为参考帧进行运动估计,并且计算代价函数,重复步骤3;
I宏块编码的代价函数和所有运动估计的代价函数一起取最小值, 确定宏块的编码模式,如果是P宏块编码,这一步还确定了参考帧和运 动矢量。
编码模式和多参考帧选择方法的特点在于
a、 为了减少运动估计的计算量,本方法尽量减少参加运动估计的 参考帧数;
b、 为了减少预测误差,尽量回避P宏块对"污染"区域的参考;
c、 如果对"污染,,区域的参考的确是代价函数最小的,仍然允许P 宏块参考"污染"区域。
如上所述,本发明提出的结合精确错误区域跟踪、同步错误掩盖和 多参考帧选择的综合抗误码视频编码方法在每次接收到错误反馈消息 时通过错误区域跟踪精确得到参考帧队列中所有受错误传播影响的区 域,并且通过同步错误掩盖重建所有受到影响的像素,使编码器和解码 器的参考帧队列恢复同步,完全终止错误传播。通过编码模式和多参考 帧选择方法,本发明可以做到在编码器接受到错误反馈消息后几帧时间
12内将图1象质量恢复到无误码情况下的水平。本发明可以应用于H. 263++、 H. 264等所有支持宏块级参考帧选择的视频编码算法,是一种通用的抗 误码纟见频编码方法。
本发明实际上是一种编码器和解码器协同抗误码的方法,解码器方 的错误反馈和编码器方的精确错误区域跟踪、同步错误掩盖、编码模式 和多参考帧选择有机的结合成为一个整体,能够在基本不降低编码效率
的前提下快速终止错误传播。
本发明的实现过程分别在解码器和编码器中的流程图(图4和图 5)。本发明的综合抗误码处理过程主要包括如下步骤
在编码器中
第一步骤(S11):编码器确定对应解码器出错的参考帧后,对解码 器第二步骤反馈的所有错误宏块序号,做同步错误掩盖步骤l,即将这
些宏块用解码器反馈的错误掩盖方法进行和解码器同样的错误掩盖。再 做精确错误区域跟踪步骤1,将错误掩盖后发生改变的像素的错误掩码 全部置T,标记这些像素已经被"污染"了。
第二步骤(S12):由于信道存在往返延迟,当反馈消息到达编码器 时,解码器的参考帧队列中已经有若干帧图像被错误传播"污染"了。 所以编码器不但需要标记出错的参考帧,还需要对所有后续重建的参考 帧标记"污染,,的部分。对于后续参考帧根据它们的编码顺序依次进行 精确错误区域跟踪步骤2。该方法是对于每一帧的所有宏块根据其编码 模式和运动矢量更新每个像素点的错误掩码。如果一个像素点只有一个 参考点,例如P宏块的整像素运动矢量或者H. 264的I宏块在垂直和水 平预测时,直接拷贝参考点的错误掩码;如果一个像素点有多个参考点, 例如P宏块的半像素运动矢量或者H. 264的I宏块在对角线方向预测时,
对多个参考点的错误掩码取逻辑"或,,的结果作为该像素点的错误掩码。
在完成精确错误区域跟踪后,进行同步错误掩盖步骤2,依次对后续参 考帧根据每个像素的错误掩码判断该像素是否需要被重建。如果该像素 的错误掩码为T,用预先保存的该像素的编码残差和已经完成了同步 错误掩盖的参考像素相加,得到该像素的重建值,完成同步错误掩盖。 使编码器和解码器对应的参考帧恢复一致。
第三步骤(S13):每个宏块首先计算I宏块编码的代价函数,对于 H. 264,则是先选择最优INTRA预测模式并得到最优I宏块编码的代价 函数,然后进行运动估计。运动估计首先在最近的参考帧上进行,如果 参考区域所有像素的错误掩码全为'O,,则运动估计结束,否则在参考 帧队列中向前依次取参考帧进行运动估计,直至参考区域所有像素的错 误掩码全为'0,或者参考帧耗尽,然后对不同参考帧运动估计的代价 函数和I宏块编码的代价函数一起取最小值,确定宏块的编码模式,如 果是P宏块编码,这一步还确定了参考帧和运动矢量。
第四步骤(S14):当第三步骤选择了 I模式宏块编码时,对当前宏 块用指定视频编码算法进行I宏块编码。
第五步骤(S15):当第三步骤选择了 P模式宏块编码时,对当前宏 块用指定视频编码算法根据第三步骤选择的参数进行P宏块编码。
第六步骤(S16):编码结束后的重建图像进入参考帧队列,它的所 有宏块的编码模式、运动矢量、编码残差和错误掩码需要保存起来存入 类似的队列(图1)。
由于在同步错误掩盖后编码器和解码器的参考帧队列恢复同步,错 误传播被完全停止。故步骤S16保存的图像错误掩码为全'0,。
在解码器中
第一步(S21 ):对由于误码而无法正常解码的宏块通常的做法是丢
弃错误的数据,用错误掩盖方法近似恢复宏块的内容,例如一种常用的 方法就是直接拷贝上一帧相同位置的宏块。解码器可以根据错误宏块的 特点选择不同的错误掩盖方法,所以解码器不但要记录记录误码宏块的 序号,还要记录这个宏块使用的错误掩盖方法。
第二步(S22):在图像解码完毕后,将图象序号,所有错误宏块序 号和它们使用的错误掩盖方法通过反馈信道发送到编码器。根据这些信 息,编码器将能够重建对应的参考帧并且和解码器的输出完全相同。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的 现有技术。
权利要求
1、一种用于视频通信的综合抗误码视频编码方法,包含以下步骤在编码器方第一步骤、在编码每帧图像前,如果接收到解码器的错误反馈消息,编码器将对参考帧队列中所有受到误码影响的参考帧进行精确错误区域跟踪和同步错误掩盖。使编码器和解码器的参考帧队列恢复同步;第二步骤、在编码每个宏块前,用新的编码模式和多参考帧选择算法确定宏块类型和编码参数;第三步骤、在图像编码完毕后,保存所有宏块的编码模式,运动矢量、编码残差和错误掩码;在解码器方第四步骤、对视频码流按照视频解码器的流程进行解码,并记录所有错误宏块的序号和错误掩盖方法;第五步骤、在一帧图像解码完毕后,如果有误码,则发送错误反馈消息,包括帧序号,所有错误宏块的序号和错误掩盖方法到编码器。
2、 如权利要求1所述的用于视频通信的综合抗误码视频编码方法, 其特征在于第一步骤的精确错误区域跟踪和同步错误掩盖实际上是结合在一起进行。
3、 如权利要求1或2所述的用于视频通信的综合抗误码视频编码方法,其特征在于第一步骤的精确错误区域跟踪和同步错误掩盖包括 如下步骤第一步确定对应解码器出错的参考帧;第二步对出错参考帧的所有错误宏块,用解码器反馈的错误掩盖 方法进行错误掩盖;第三步将经过第二步的错误掩盖后所有发生改变的像素的错误掩 码置T,标记这些像素已经被"污染"了;第四步对于后续参考帧依次按如下方式进行处理 对于每一帧的所有宏块按照编码顺序,根据其编码模式和运动矢量更新每个像素点的错误掩码如果一个像素点只有一个参考点,直接拷贝参考点的错误掩码; 如果一个像素点有多个参考点,对多个参考点的错误掩码取逻辑 "或"的结果作为该像素点的错误掩码。第五步用第四步得到的每个像素的新错误掩码判断该像素是否需要重建,如果错误掩码为T,在重建的参考帧中用预先保存的该像素的编码残差和重新获得的参考像素相加,得到该像素的重建值。
4、 如权利要求1所述的用于视频通信的综合抗误码视频编码方法, 其特征在于第二步骤的编码模式和多参考帧选择算法包括如下步骤在编码每一个宏块前,首先计算I宏块编码的代价函数,对于 H. 264,则是先选择最优INTRA预测模式并得到最优I宏块编码的代价函数;做运动估计首先在最近的参考帧上进行,如果参考区域所有像素 的错误掩码全为'0',则运动估计结束,否则在参考帧队列中向前依次 取参考帧进行运动估计,直至参考区域所有像素的错误掩码全为'0', 或者参考帧耗尽,保存每一次运动估计的运动矢量和代价函数;I宏块编码的代价函数和所有运动估计的代价函数一起取最小值, 确定宏块的编码模式,如果是P宏块编码,这一步还确定了参考帧和运 动矢量。
5、 如权利要求1所述的用于视频通信的综合抗误码视频编码方法, 其特征在于第三步骤的保存所有宏块的错误掩码均为全'0'。
全文摘要
本发明涉及一种用于视频通信的综合抗误码视频编码方法,包含以下步骤在编码器方1.在编码每帧图像前,如果接收到解码器的错误反馈消息,编码器将对参考帧队列中所有受到误码影响的参考帧进行精确错误区域跟踪和同步错误掩盖。使编码器和解码器的参考帧队列恢复同步;2.在编码每个宏块前,用新的编码模式和多参考帧选择算法确定宏块类型和编码参数;3.在图像编码完毕后,保存所有宏块的编码模式,运动矢量、编码残差和错误掩码;在解码器方1.对视频码流按照视频解码器的流程进行解码,并记录所有错误宏块的序号和错误掩盖方法;2.在一帧图像解码完毕后,如果有误码,则发送错误反馈消息,包括帧序号,所有错误宏块的序号和错误掩盖方法到编码器。
文档编号H04N7/64GK101207823SQ200710168410
公开日2008年6月25日 申请日期2007年11月22日 优先权日2007年11月22日
发明者徐正全, 李茂全 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1