一种视频解码的时域错误隐蔽方法

文档序号:7971719阅读:277来源:国知局
专利名称:一种视频解码的时域错误隐蔽方法
技术领域
本发明属于图像信息处理领域,具体涉及一种视频解码的时域错误隐蔽 方法。
背景技术
随着有线宽带网络和无线网络的发展和用户需求的驱动,多媒体技术和 相关的应用得到了越来越多的关注,被认为是未来高速网络的主流应用之
一。多媒体应用尤其是视频应用,相对于Internet的传统应用如WWW、E-mail 等,其对实时性要求更严,对带宽的需求更大。由于视频应用中大多采用了 高压缩率的编码技术,其对传输误码的要求尤为苛刻,但是有线或者无线网 络不提供传输的QoS (Quality of Serverices)保证,因此提高视频应用对传 输误码的抗干扰和恢复能力 一直是多媒体通信领域的研究热点。
常用的错误隐蔽方法包括在编码器和信道编码中引入冗余,使编码流 对传输错误具有更强的抗干扰能力;通过编码器、传输信道和解码器之间进 行交互,编码器根据检测到的错误信息调整自身的操作,在解码器端根据错 误检测的结果对错误进行隐蔽。此两种方法在编码器与解码器之间皆存在一 定的交互性,这样的编码器得到的视频流缺乏通用性,因此,解码器根据错 误检测的结果对错误进行隐蔽的方法得到了广泛的应用。
传统的解码器端根据错误检测结果进行错误隐蔽方法有两类,基于运动 补偿的时域错误隐蔽和基于空域或频域上的错误隐蔽。其中基于运动补偿的 时域错误隐蔽方法的一个简单的方法来利用视频信号的时域相关特性,即用 错误宏块所在帧的前一帧中与错误宏块空间位置相同的宏块,来代替当前帧 中的错误宏块。但是当视频中存在较剧烈的运动时,这种方法的视觉效果并 不理想。因此,近年来部分研究者通过运动补偿来寻找相应的宏块时,对隐 蔽效果有很大提高。例如中国专利申请号为200410018508.0的"一种隐 藏错误的视频译码方法"(公开号CN1581972,
公开日2005.02.16),该专 利方法通过搜索匹配块的方法对发生错误的宏块进行补偿,其计算复杂度较 高,对实时视频的解码不太适用;美国专利号为6,480,546的"Error concealment method in a motion video decompression system" , it专利方法利 用丢失宏块的上、下宏块的运动矢量对丢失宏块的运动矢量进行估计,当丢 失宏块的相邻宏块不存在时,将不能得到满意的错误隐蔽效果。综上所述, 现有的基于运动补偿的时域错误隐蔽方法存在着两个缺点1)必须利用丢 失宏块的相邻宏块信息,如相邻宏块不能正确解码,则不能有效地进行丢失 宏块的运动矢量估计;2)搜索比配块虽然能够得到较好的效果,但是计算 复杂度太大,不适合实时应用。

发明内容
本发明所要解决的技术问题是提供一种视频解码的时域错误隐蔽方法, 克服现有技术中的缺点,错误隐蔽效果好、计算复杂度低,在满足实时性要 求的同时具有较强的鲁棒性。
为了解决上述技术问题,本发明提供了 一种视频解码的时域错误隐蔽方 法,包括以下步骤
(a) 预先为每一帧中的每一宏块设置一正确解码标志;
(b) 根据码流语法,顺序解析帧的显示序号,判断连续解码的两帧之 间序号不连续且不存在B类型帧时,此两帧之间存在丢失帧,执行步骤(d), 否则^l行下一步;
(c) 读取、解析宏块,判断宏块是否被正确解码,如果是,则标记该 宏块的正确解码标志,否则,继续本步骤,直到本帧解码结束;
(d) 如果判断当前帧中存在受损宏块,则继续解析下一帧获取其宏块 信息,转到步骤(e),否则进行正常解码流程,执行步骤(j);
(e) 搜索本帧中受损宏块,判断该受损宏块邻近宏块解码是否均正确, 如果是,利用邻近宏块的运动矢量估算该受损宏块的运动矢量,否则,执行 下一步;
(f) 判断该受损宏块的空间相邻宏块中;l否存在部分以INTER才莫式编
码的正确宏块,如杲是,则利用这部分宏块的运动矢量估算该受损宏块的运 动矢量,否则,执行下一步;
(g) 利用该受损宏块在其前、后帧对应宏块的运动矢量估算该受损宏
块的运动矢量;
(h) 根据估算结杲在前一帧中寻找对应位置的块,用该对应宏块来替 换受损宏块;
(i) 判断本帧中受损宏块是否处理完毕,如果是,执行下一步,否则 返回步骤(e);
(j)将经过正常解码及错误隐蔽的图像数据送入显示緩存。
进一步地,上述方法还可具有以下特点在所述步骤(d)中,采用步 骤(a) - (c)的方法解析下一帧码流,标记受损宏块。
进一步地,上述方法还可具有以下特点在所述步骤(e)中,所述利 用邻近宏块的运动矢量估算该受损宏块的运动矢量,采用以下公式计算
MF = Mea"(MFa,AfF&,MFb),其中,为该受损宏块的运动矢量,M「a ~ AfFc 为邻近宏块中相应块的运动矢量。
进一步地,上述方法还可具有以下特点在所述步骤(f)中,所述利
用部分宏块的运动矢量估算该受损宏块的运动矢量,采用如下公式如果左
边宏块、上边宏块均为以INTER模式编码的正确宏块,则受损宏块的运动
矢量MP^Meaw(iW7a,W&,MFc);如果左边宏块为以INTER才莫式编码的正确
宏块,则受损宏块的运动矢量MJ^M&;如果上边宏块为以INTER模式编
码的正确宏块,则受损宏块的运动矢量MF-ii^"(Mr&,MK);其中,~ 为邻近宏块中相应块的运动矢量。
进一步地,上述方法还可具有以下特点在所述步骤(g)中,进一步 包括以下步骤采用前、后两帧对应宏块的运动矢量的均值作为该受损宏块 的运动矢量;如果该受损宏块后帧的对应宏块以INTRA模式进行编码或者 同样为受损宏块,则采用前帧对应宏块的运动矢量作为该受损宏块的运动矢
量;如果该受损宏块前帧的对应宏块以INTRA 4莫式进行编码,则采用后帧 对应宏块的运动矢量作为该受损宏块的运动矢量。
进一步地,上迷方法还可具有以下特点'.估算出所述受损宏块的运动矢 量后,若该运动矢量值小于预先给定的阈值,则对该受损宏块的运动矢量值 进行修正,采用以下步骤
(A) 计算前帧宏块在t时刻的投射运动矢量M^、膨f其中f表
示第i个子块的位置,f=l'-Mf表示新的子块位置,当匀速运动时,k=l,
s = 0;
(B) 根据与受损子块叠加的投射运动矢量计算受损子块的运动矢量, 采用如下公式
<formula>formula see original document page 8</formula>
其中,MF/表示受损宏块的运动矢量,W,A化,…,^^为iV个投射运动矢
量,K,…,『w为权值,正比于各个投射于受损子块的前帧子块在受损宏块中
所占的比例, +1为当前子块中没有被投射运动矢量覆盖的像素区域在受损
子块中所占的比例,且<formula>formula see original document page 8</formula>
本发明克服了现有技术中复杂度较高的缺点,尽可能掩盖由于数据丟失 而引起的图像损伤,本发明方法可以应用于ATM、无线环境,而且也可用 于Internet视频通信,在给定传输速率和一定丟包率、误码情况下,可使图 像主观评价达到较优,并且满足实时性的需求,具有较强的实用价值。


图l是本发明所述的基于运动补偿的通用的时域错误隐蔽方法流程图2-1是本发明所述的受损宏块运动矢量预测示意图1;
图2-2是本发明所述的受损宏块运动矢量预测示意图2;
图3是本发明所述的基于运动补偿的增强的时域错误隐蔽方法流程图4是本发明所述的投射运动矢量加权计算示意图。
具体实施例方式
下面结合附图和具体实施方式
对本发明做进一步详细的描述。 本发明所述的时域错误隐蔽方法可具体分为受损宏块定位、对受损宏块
根据其特性进行错误隐蔽两部分,包括以下步骤(如图l所示)
步骤IIO,读取、解析码流,并检测码流中图像帧是否有错误发生,标 记受损宏块;
若当前帧处理完成,则进入下一帧图像的处理。
码流的错误可以包括整帧丢失、包丢失、码流错误等情况。具体的码流 错误检测方法不在本发明讨论范围之内, 一种可行的错误检测方法如下所 述
(1) 预先为每一帧中的每一宏块设置一正确解码标志,在对一帧进行 解码之前,将各宏块的正确解码标志清零;
如,对帧中的任意宏块,令^ffi^"^V"gt']-0"'-ltoiV,其中7V为一帧的 最大宏块数;
(2) 根据码流的语法,顺序解析帧的显示序号,判断连续解码的两帧 之间序号是否连续,如果不连续,并且不存在B类型帧时,则判定这两帧 之间存在丟失帧,转到步骤120,如果连续,执行下一步;
例如图像序列帧为P3、 B4、 P5,由于B4需要在P3和P5正确接收到 后才能解码,因此实际传输过程接收顺序是P3、 P5、 B4,必须先传送P3 和P5,再传送B4,因此在不存在B帧时,才能根据接收的帧序号判断是否 存在丟失帧。
此时该丟失帧的所有宏块的正确解码标志均为零,即满足
步骤(1) - (2)用于判断是否发生帧丢失,若判定有丢失帧后,立即 转到步骤120对其进行处理。
(3)读取、解析宏块;
(4) 判断宏块是否^皮正确解码,如果是,4丸行下一步,否则,4丸行步
骤(6);
(5) 置位该宏块的正确解码标志,即令A^^^V"gW-l;
步骤(3) - (5)用于判断是否存在宏块错误,在步骤(3) - (5)中, 当一个宏块被正确解码,就更改正确解码标记。若一帧图像解码完成,发现 还有宏块的解码标记没有更改,则表示对应的宏块有错,需要进行错误隐蔽 算法处理。 一般来说, 一个数据包含有多个宏块,因此包丢失会产生多个宏 块丟失。
(6) 若本帧解码未结束,则返回步骤(3);
当一帧解码结束时,该帧中满足Affl^"cF/"gW= 0的宏块即为受损宏块。
步骤120,判断本帧中是否存在受损宏块,即判断本帧中是否存在正确 解码标志为零的宏块,如果是,执行步骤130,否则,执行步骤140;
步骤130,当一帧中存在受损宏块时,继续进行下一帧的码流的读取、 解析以获取该帧各宏块的运动矢量、宏块编码类型等信息,并采用与步骤 110类似的方法检测、标记受损宏块,转到步骤150;
步骤140,如果该帧不存在受损宏块,则进行正常解码流程,执行步骤
160;
步骤150,对于当前帧中未进行正确解码标志的受损宏块,利用估算的 运动矢量MV在前一帧中寻找对应位置的块,用该对应的块来替换受损块;
估算运动矢量MV的具体步骤如下
(1) 搜索本帧中的受损宏块,即正确解码标志为零的宏块;
(2) 判断该宏块的邻近宏块解码是否均正确,即邻近宏块的正确解码 标志是否均为1,如果是,执行步骤(3),否则,执行步骤(4);
(3 )如果该受损宏块空间邻i或存在8个以INTER才莫式编码的正确宏块, 则充分利用所有正确解码宏块的运动矢量的信息对该宏块中各块的运动矢 量信息进行估算,具体方法多重多样, 一种简单的方法如下所示
MF2 =他—M&2,M^2, Wc2); ,3 = 膽3,麟3,纖3); MM = Af,(,a4,Mm,MFb4>,
其中MF1 MM为该宏块中4个子块的运动矢量,例如子块可以取8x8 象素大小;M&1 MR4为邻近宏块中相应块的运动矢量,其块的划分如图 2-1所示。
当相邻的块不编码时,其运动矢量被设置为o,如在边界位置的图像, 没有编码块,其运动矢量设置为o。
(4)判断该宏块的空间相邻宏块中是否存在部分宏块为以INTER模式 编码的正确宏块,如果是,执行步骤(5)否则,执行步骤(6);
(5 )如果该宏块的空间相邻宏块中的部分为以INTER模式编码的正确 宏块时,采用这些宏块中相应块的运动矢量对该宏块的运动矢量进行估算;
对于邻近宏块及邻近宏块相应块的选择、运动矢量的估算方法由实验确 定,可根据实验效果进行调整,实用中并不局限于此。
例如可以采用以下的简单估算方法
当左边宏块、上边宏块中存在正确的以INTER模式编码的宏块时,
如果左边宏块、上边宏块均为以INTER模式编码的正确宏块, 令MF = Mea"(MFa,MFfc,Mrc);
否则,如果左边宏块为以INTER模式编码的正确宏块,
否则,如果上边宏块为以INTER模式编码的正确宏块, 令Mr = (MW + MKc)/ 2 ,即Mm<MFZ>,MKc」
其中似r为当前宏块中各块的运动矢量,M& MFc为邻近宏块中相应 块的运动矢量,其块的划分如图2-2所示;也可以采用步骤(3)中的方法, 以8 x 8块为单位对受损宏块的运动矢量进行估算。
(6)当步骤(2) 、 (4)的条件皆不满足时,利用该受损宏块中各块 在其前、后帧对应块的运动矢量对该宏块的运动矢量进行估算,具体实施如 下
采用前、后帧对应宏块(空间对应位置的宏块)中各子块的运动矢量的 均值作为该受损宏块各对应子块的运动矢量;
如果其后帧的对应宏块以INTRA模式(运动矢量为零)进行编码、或 者同样为受损宏块,则采用前帧对应宏块中各子块的运动矢量(或经过错误 隐蔽补偿后的运动矢量)作为该受损宏块各对应子块的运动矢量;
如果其前帧的对应宏块以INTRA模式进行编码,则釆用后帧对应宏块 中各子块的运动矢量作为该受损宏块各对应子块的运动矢量;
(7 )根据估算结果采用前一帧中的对应该运动矢量的宏块的像素值来 代替该受损宏块的像素值;
(8)判断正确解码标志为零的宏块是否处理完毕,如果否,返回步骤 (1)继续处理;
步骤160,将经过正常解码及错误隐蔽的图像数据送入显示緩存,本帧 解码操作结束。
仅对受损宏块进行处理也可达到错误屏蔽的效果,但若将受损宏块分为 若干子块,则错误屏蔽效果更佳。
一帧图像的所有宏块都是能够正确解码,或者是进行了错误隐蔽(可以当作 正确解码对待),因此用相邻帧对应宏块的运动矢量估算是可行的。
以上介绍的基于运动补偿的时域错误隐蔽方法是一种适合普遍意义的 方法(以下简称通用的时域错误隐蔽方法),利用运动信息在空间相邻和时 间相邻的相关性,估算出丟失位置的运动矢量。无论空间相邻的宏块是否全 部或者部分正确解码,该错误隐蔽方法都能尽可能的对丟失宏块位置的运动 矢量进行估算。但是该方法估算的运动矢量与实际的真实运动矢量可能仍然 存在较大的误差,由此方法解码生成的恢复图像可能与真实图像相差较大。 因此本发明还提出了 一种增强的时域错误隐蔽方法。
增强的时域错误隐蔽方法如图3所示,基本步骤与通用的时域错误隐蔽 方法相同,只是在原有通用的时域错误隐蔽方法的基础上,在步骤150估算 出受损宏块的运动矢量后,增加了一个运动矢量修正过程,其余步骤均与通 用的时域错误隐蔽方法的步骤相同。下面对运动矢量的修正过程进行详细介 绍
对受损宏块的每个子块的运动矢量进行修正,例如子块大小可以取4x 4象素(也可以是8x8,子块大小根据需要调整)。按照特定的运动模型假 设,将前帧(t - 1 )对应位置的运动矢量投射到当前丢失帧(t)的每个像素 位置,然后对每个子块内的投射运动矢量进行加权均值运算,得到估算的子 块运动矢量,所述投射运动矢量不是前帧对应空间位置的运动矢量,而是指 按照特定运动模型(如匀速或非匀速)投射过来的运动矢量,先将所有前帧 宏块在t时刻的投射运动矢量计算出来,然后再根据叠加的投射运动矢量计 算受损宏块的运动矢量。以匀速运动假设来详细说明
对受损宏块的每个子块的运动矢量进行修正,首先对步骤150估算出的 M^进行判断,若^「<77/^ (其中,7^w为预先给定的阈值),不进行运
动矢量修正,否则进行如下操作
(1) 计算前帧宏块在t时刻的投射运动矢量;
记前帧的运动矢量为M犷1,其中!'表示第!'个子块的位置,卜l表示时刻, 按照勻速运动假设条件,对^时刻的运动矢量进行插值,将卜i时刻的运动矢 量扩展到纟时刻,即根据卜l时刻的每个子块(如图4中M/V MP2、 M尸w), 都可以预测一个^时刻的投射运动矢量M印^'卜M^'—'(如图4中各实线框围 绕的阴影部分),其中,'"^-M^T1,表示一个新的子块位置;
(2) 纟艮据与受损子块叠加的"&射运动矢量计算受损子块的运动矢量;
^时刻的一个受损的子块的运动矢量是由多个投射运动矢量的叠加得 到,如图4所示,其中实线框区域MF;表示受损的子块八虚线框标示出可 能的w个叠加块,每个叠加块的投射运动矢量记为M《,A巧,…,^^,第J'块的 卜1时刻运动矢量MG—',为图中受损子块j的实线框区域去掉所有叠加块后 -彈到的区Jt成,则
,,_ *Mg +『2 *MP2 + +『w+『屈*MF广)
其中,巧,…,『w表示权值,正比于各个投射于受损子块的前帧子块在第y
块中所占的比例,是当前子块中没有被投射运动矢量覆盖的像素区域在
受损子块中所占的比例,而且^+『2+环W+尸1。如图4中所示的第2
个子块在第块所占的区域用j""(a巧)表示,第7块的实际大小用a^(mf;)
表示,则『2 =爿rea(M尸2) /爿wa(A/^')
如果是非匀速运动,运动矢量的修正过程与上述步骤(1 )和(2)相同, 只是在步骤(1)中的公式^^X'-M^改为M^、,"w,其中&和s 是非匀速运动模型参数,根据用户经验确定。
错误隐蔽控制方法是视频压缩中的一个重要技术,会直接影响图像的主 观质量。本发明提出了一种新的应用于视频解码端的时域错误隐蔽方法,第 一,对空间邻近宏块中包含正确解码宏块的错误宏块,按照邻近宏块的运动 矢量特性进行自适应运动矢量恢复;第二,对于邻近宏块中不包含正确解码 宏块的错误宏块,则利用其在前后帧对应宏块的运动矢量或前帧图像的运动
趋势估算出该错误宏块的运动矢量;第三,在增强的时域错误隐蔽方法中,
按照特定的运动模型对估算的运动矢量进行修正,提高对运动矢量的估算精
度。本发明的处理方法可广泛应用于无Qos保证的IP网上的视频通信,方 法计算复杂度较低,并且在一定的丢包率和传输速率下可以获得实时高质的 图像效果,具有较高的实用价值。
权利要求
1、一种视频解码的时域错误隐蔽方法,包括以下步骤(a)预先为每一帧中的每一宏块设置一正确解码标志;(b)根据码流语法,顺序解析帧的显示序号,判断连续解码的两帧之间序号不连续且不存在B类型帧时,此两帧之间存在丢失帧,执行步骤(d),否则执行下一步;(c)读取、解析宏块,判断宏块是否被正确解码,如果是,则标记该宏块的正确解码标志,否则,继续本步骤,直到本帧解码结束;(d)如果判断当前帧中存在受损宏块,则继续解析下一帧获取其宏块信息,转到步骤(e),否则进行正常解码流程,执行步骤(j);(e)搜索本帧中受损宏块,判断该受损宏块邻近宏块解码是否均正确,如果是,利用邻近宏块的运动矢量估算该受损宏块的运动矢量,否则,执行下一步;(f)判断该受损宏块的空间相邻宏块中是否存在部分以INTER模式编码的正确宏块,如果是,则利用这部分宏块的运动矢量估算该受损宏块的运动矢量,否则,执行下一步;(g)利用该受损宏块在其前、后帧对应宏块的运动矢量估算该受损宏块的运动矢量;(h)根据估算结果在前一帧中寻找对应位置的块,用该对应宏块来替换受损宏块;(i)判断本帧中受损宏块是否处理完毕,如果是,执行下一步,否则返回步骤(e);(j)将经过正常解码及错误隐蔽的图像数据送入显示缓存。
2、 如权利要求1所述的方法,在所述步骤(d)中,采用步骤(a)曙 (c)的方法解析下一帧码流,标记受损宏块。
3、 如权利要求l所述的方法,在所述步骤(e)中,所述利用邻近宏块 的运动矢量估算该受损宏块的运动矢量,采用以下公式计算JWF = Mea"(MFa,MFfo,MFc)其中,MF为该受损宏块的运动矢量, M^为邻近宏块中相应块 的运动矢量。
4、 如权利要求l所述的方法,在所述步骤(f)中,所述利用部分宏块 的运动矢量估算该受损宏块的运动矢量,采用如下公式如果左边宏块、上边宏块均为以INTER模式编码的正确宏块,则受损 宏块的运动矢量,=Mea"(M&, MF&, MFc);如果左边宏块为以INTER模式编码的正确宏块,则受损宏块的运动矢 量MF ;如果上边宏块为以INTER模式编码的正确宏块,则受损宏块的运动矢其中,M^r ~ M^为邻近宏块中相应块的运动矢量。
5、 如权利要求l所述的方法,在所述步骤(g)中,进一步包括以下步骤采用前、后两帧对应宏块的运动矢量的均值作为该受损宏块的运动矢量;如果该受损宏块后帧的对应宏块以INTRA模式进行编码或者同样为受 损宏块,则采用前帧对应宏块的运动矢量作为该受损宏块的运动矢量;如果该受损宏块前帧的对应宏块以INTRA模式进行编码,则采用后帧 对应宏块的运动矢量作为该受损宏块的运动矢量。
6、 如权利要求l所述的方法,估算出所述受损宏块的运动矢量后,若 该运动矢量值小于预先给定的阈值,则对该受损宏块的运动矢量值进行修 正,采用以下步骤(A) 计算前帧宏块在t时刻的投射运动矢量<formula>formula see original document page 3</formula>其中f表 示第z'个子块的位置,<formula>formula see original document page 3</formula>表示新的子块位置,当匀速运动时,k=l,s = 0;(B) 根据与受损子块叠加的投射运动矢量计算受损子块的运动矢量,采用如下公式<formula>formula see original document page 4</formula>其中,MF/表示受损宏块的运动矢量,MP1, MP2, ..., MPN为N个投射运动矢量,Wl,…,WN为权值,正比于各个投射于受损子块的前帧子块在受损宏块中所占的比例,WN+1为当前子块中没有被投射运动矢量覆盖的像素区域在受损子块中所占的比例,且W1+W2+...WN+WN+1=1.
全文摘要
本发明公开了一种视频解码的时域错误隐蔽方法,错误隐蔽效果好、计算复杂度低,包括以下步骤(a)读取、解析码流,并检测码流中图像帧是否有错误发生,标记受损宏块;(b)如果判断当前帧中存在受损宏块,则继续解析下一帧获取其宏块信息,转到步骤(c),否则进行正常解码流程,执行步骤(d);(c)对于当前帧中的受损宏块,利用本帧或前后帧相应宏块估算其运动矢量,根据估算结果在前一帧中寻找对应位置的块,用该对应宏块来替换受损宏块;(d)将经过正常解码及错误隐蔽的图像数据送入显示缓存。本发明克服了现有技术中复杂度较高的缺点,尽可能掩盖由于数据丢失而引起的图像损伤。
文档编号H04N7/64GK101193313SQ20061014975
公开日2008年6月4日 申请日期2006年11月20日 优先权日2006年11月20日
发明者宁 王, 睿 陈, 黄晓红 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1