一种实现视频解码中图像错误掩盖的方法及视频解码器的制作方法

文档序号:7684566阅读:115来源:国知局
专利名称:一种实现视频解码中图像错误掩盖的方法及视频解码器的制作方法
技术领域
本发明涉及一种通信应用领域,尤其涉及一种实现视频解码中图像错误掩 盖的方法及视频解码器。
背景技术
H.264是由国际电4言标准化部门ITU-T和制定MPEG的国际标准化组织 ISO/国际电工协会IEC共同制订的一种视频编码国际标准格式。H.264标准产生 的初衷就是制定一个新的视频编码标准,以实现视频的高压缩比、高图像质量、 良好的网络适应性。H.264同时又被称为MPEG-4 AVC ("活动图像专家组-4的 高级4见频编码")或称为MPEG-4Part10。H.264是联合视频编码组(Joint Video Team, JVT)组织提出的视频压缩标 准,H.264解码从上到下主要分为视频序列(Sequence)层、图像(Picture)层、 片层头部信息(Slice Header )、片层压缩数据信息(Slice Data)几大部分,在视 频解码过程中上层解码出错将导致片层(Slice)的下层不能正确解码。现有技术中,当前图像某些宏块(MB)出错时,解码器直接找到前面解码 的最近的图像,拷贝对应坐标的MB,但是仅仅是通过透明拷贝对应MB,而没 有考虑到图像的运动趋势,在实现过程中需要修改原有设计,单独增加一个拷 贝处理图傳j莫块才能完成。现有技术中还提出了一种基于相邻运动矢量(mv)估计的错误掩盖方法, 当前图像某些MB出错时,提取该MB周边MB的mv信息,通过一定的运算 规则得到当前MB的mv估计值,然后根据估计值去参考图像取像素插值,从而 得到当前MB的修补图像。这种方法比直接拷贝更进了一步,因为符合图像运 动趋势,错误掩盖的效果也更逼真,但是所述方法的实现需要^f务改原有Slice以 下层设计,加上取周边mv来估计的功能,只能从空域上预测mv,不能从时域 上预测mv。发明内容鉴于上述现有技术所存在的问题,本发明实施例提供了 一种实现视频解码中图像错误掩盖的方法及视频解码器。在片层压缩数据信息(Slice Data)出错的 情况下,通过编码器编一段全Skip码流,配置给Slice以下层解码,从而实现错 误图像的修补功能。为了解决上述技术问题,本发明实施例提出了一种实现视频解码中图像错 误掩盖的方法,该方法包括检测片层压缩数据信息是否出现解码错误;若检测到片层压缩数据信息解码出现错误,则统计所述片层压缩数据信息 中出错的宏块总数;根据所述宏块总数生成对应的跳跃宏块编码流;对所述跳跃宏块编码流进行解码。相应的,本发明实施例还提出了一种视频解码器,包括第一检测单元,用于检测片层压缩数据信息是否出现解码错误,若检测到 片层压缩数据信息解码出现错误时,则将解码出现错误的消息发送给统计单元;统计单元,用于在收到检测单元发送的解码出现错误的消息时,统计所述 片层压缩数据信息中出错的宏块总数;编码单元,用于根据统计单元统计的宏块总数生成所对应的跳跃宏块编码流;解码单元,用于对所述跳i 天宏块编码流进行解码。实施本发明实施例,通过本发明实施例中实现视频解码中图像错误掩盖的方法及视频解码器,在正常解码架构下,因为Skip码流解码属于协议支持的解 码模式,无需修改Slice以下层的解码,即可实现较好的错误掩盖效果,从而以 最小改动实现图像错误掩盖的方法。


图1是本发明实施例中的实现视频解码中图像错误掩盖方法的流程图;图2是本发明实施例中的视频解码器的结构示意3是本发明实施例中的视频解码器的另一结构示意图;图4是本发明实施例中的实现视频解码中图像错误掩盖方法的另一流程图;图5是本发明实施例中的P Skip修补时的mv效果示意图; 图6是本发明实施例中的B Skip修补时的mv效果示意图。
具体实施方式
本发明实施例提供了 一种实现视频解码中图像错误掩盖的方法及视频解码 器。在片层压缩数据信息(Slice Data)出错的情况下,通过编码器编一段全Skip (跳跃宏块)码流,配置给Slice以下层解码,从而实现错误图像的修补功能。视频编解码中需要解码的压缩数据类型包括P帧和B帧,其中P帧为视 频编解码中的前向参考帧,B帧为视频编解码中的双向参考帧即包括后向的参考 帧,P帧或B帧中包含多个Slice。H.264中基于上下文自适应可变长编码(CAVLC)编码^t式有一种跳跃宏 块编码(Skip编码),可以用一个熵编码(Exp-Golomb)码字表示一串连续的 Skip MB, SkipMB不需要传宏块(MB)头信息和残差数据,解码时按一定规 则自动预测参考索引和运动向量(motionvector, mv),然后对参考块插值得到 当前MB像素。Skip MB是一种特殊的宏块编码方式,仅用于P帧或B帧的Slice, 不需妻传MB头信息和残差数据,它的特点是通过极少量的码流就可以表示一 个MB。 Skip MB解码过程如下P帧的Skip解码是#4居周边相邻块的运动信息, 预测当前块的运动信息,然后对参考块插值得到当前MB像素;B帧的Skip解 码是协议规定B Skip宏块按直接模式解码,空间直接模式根据周边相邻块的运 动信息,预测当前块的运动信息;时间直接模式根据相邻帧对应块运动信息, 预测当前块的运动信息;然后对参考块插值得到当前MB像素。本发明的目的是在SliceData出错的情况下,编一段全Skip码流,配置给Slice 以下层解码,从而实现错误图像的修补功能,不需要改动Slice以下层的设计。 对于P帧的Slice,编全PSkip码流,修补效果和透明拷贝对应MB—样;对于B帧 的Slice,编全BSkip码流,修补效果与Direct模式mv预测效果相同,能体现图像 的运动趋势。首先请参阅图1,图l示出了本发明实施例中的实现视频解码错误掩盖方法 的流程图,实现步骤如下 步骤S101:开始;步骤S102:检测Slice Data解码是否正确,如果检测到Slice解码出现错误则进行步骤S103,否则转步骤S106;步骤S103:统计所述Slice Data中解码出4晉的MB总数; 步骤S104:根据所述出错的MB总数编写相应的Skip码流; 步骤S105:启动Slice解码对所述Skip码流进行解码; 步骤S106:结束。相应的,图2示出了本发明实施例中的视频解码器的结构示意图,该视频 解码器包括第一才全测单元201、统计单元202、编码单元203以及解码单元204, 其中第一检测单元201用于检测片层压缩数据信息是否出现解码错误,若检 测到片层压缩数据信息解码出现错误时,则将解码出现错误的消息发送给统计 单元202;统计单元202用于在收到检测单元发送的解码出现错误的消息时,统 计所述片层压缩数据信息中出错的宏块总数;编码单元203用于根据统计单元 统计的宏块总数生成所对应的跳跃宏块编码流;解码单元204用于对所述跳跃 宏块编码流进行解码。图3示出了本发明实施中的视频解码器的具体结构示意图,该视频解码器 包括第一4全测单元302、统计单元303、编码单元304以及解码单元306,其中 第一检测单元302用于检测片层压缩数据信息是否出现解码错误,若检测到片 层压缩数据信息解码出现错误时,则将解码出现错误的消息发送给统计单元 303;统计单元303用于在收到第一检测单元302发送的片层压缩数据信息解码 出现错误的消息时,统计所述片层压缩数据信息中出错的宏块总数;编码单元 304用于根据统计单元303统计的宏块总数生成所对应的跳跃宏块编码流;解码 单元306用于对所述跳跃宏块编码流进行解码。所述视频解码器还包括了第二 ;险测单元301和转换单元305,其中第二才全测单元301用于^r测片层头部信息 是否出现解码错误,若检测到片层头部信息解码出现错误时,则停止对所述片 层的解码操作,通过相应的其他处理方式实现对该图像的解码错误进行修补, 若所述片层头部信息解码正确时,则将检测的消息发送给第一检测单元302对 片层压缩数据信息的解码过程进行;险测;转换单元305用于将编码单元304生 成的跳跃宏块编码流设置为基于上下文自适应可变长编码模式,并发送给解码 单元306进行相应的片层解码。图4示出了本发明实施例中的实现视频解码中图像错误掩盖方法的具体流 程图,在解码过程中,Slice Header解码正确,如果Slice Header解码出错时,在修补过程中可以直接丢弃该Slice的解码,再用其他方法修补(例如透明拷贝), 而当检测到Slice Data解码有错,Slice中的部分或全部MB解码出错时,则停 止后面的解码,上报出错MB位置,具体实现过程如下 步骤S401:开始;步骤S402:对视频编解码协议中的Slice进行解码;步骤S403:检测Slice Header解码是否正确,如果解码正确则进行步骤S404, 否则转步骤S409;步骤S404:检测Slice Data解码是否正确,如果Slice Data解码正确,则不 需要进行帧错误掩盖,则进行步骤S409,如果检测到Slice Data解码出现错误 时,则需要进行步骤S405;Slice Data主要包含Slice中各个MB的宏块类型、预测模式、参考索引、 运动向量、残差系数等,当解码某个宏块的数据出现错误时,即可记录该宏块 的编号,供后续修复图像时使用。本发明实施例提供的错误掩盖方法,可以对P 帧或B帧的Slice Data解码进行错误掩盖。可以通过判断Slice Data语法元素的 取值是否属于相应的协议规定的范围,如果不属于协议规定的范围,表示检测 到语法错误,则上报Slice Data中当前解码出错的MB位置。步骤S405:统计所述Slice Data中解码出错的MB总数;根据当前Slice中当前解码出错的MB位置和下一个Slice的第一个MB在 图^f象中的位置(first_mb—in_slice),可以统计出所述Slice中解码出错的MB总 数。步骤S406:用Exp-Golomb编一个码字表示出错的MB总数;H.264中的CAVLC编码模式中的Skip编码可以用 一个Exp-Golomb码字表示一串连续的Skip MB, Skip MB不需要传MB头信息和残差数据,解码时按照一定规则自动预测参考索引和mv,然后对参考块插值得到当前MB像素。 步骤S407:才艮据所述码字和当前Slice Header信息编相应的Skip码流; 将这个码字作为一段Skip码流,连同当前Slice Header信息,配置给Slice以下层解码模块,同时修改该Slice的first—mb—in—slice为当前Slice解码出错的MB位置。步骤S408:将Skip码流设置为CAVLC模式,启动Slice解码; 步骤S409:结束。通过上述方法的实现即可实现视频解码中解码出现错误后,实现图像修复,从而达到对P帧或B帧出现的错误进行掩盖。如果是P Slice在解码过程中出现 错误时,因为P Slice Skip码流不会参考不同Slice的mv,所以错误掩盖效果等 同于透明拷贝,图5示出了 PSkip修补时的mv效果示意图;如果是BSlice在 解码过程中出现错误时,则会按照直接模块(Direct)模式去解码,修补时会有 比较准确的mv预测值,能体现图像的运动趋势,错误掩盖效果要好于透明拷贝, 图6示出了 BSkip修补时的mv效果示意图。如果Slice以上层是用软件实现的, 只需要添加一段软件代码就可以实现图像的修补功能,这里的实现过程与流程 图6中实现过程相同。综上所述,通过本发明实施例中实现视频解码中图像错误掩盖的方法及视 频解码器,在正常解码架构下,因为Skip码流解码属于协议支持的解码模式, 无需修改Slice以下层的解码,即可实现较好的错误掩盖效果,从而以最小改动 实现图像错误掩盖的方法,如果Slice以上层是用软件实现的,只需要添加一段 软件代码就可以实现图像的修补功能。以上所揭露的仅为本发明实施例中的一种较佳实施例而已,当然不能以此 来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发 明所涵盖的范围。
权利要求
1、一种实现视频解码中图像错误掩盖的方法,其特征在于,该方法包括检测片层压缩数据信息是否出现解码错误;若检测到片层压缩数据信息解码出现错误,则统计所述片层压缩数据信息中出错的宏块总数;根据所述宏块总数生成对应的跳跃宏块编码流;对所述跳跃宏块编码流进行解码。
2、 如权利要求1所述的实现视频解码中图像错误掩盖的方法,其特征在于, 所述检测片层压缩数据信息是否出现解码错误具体包括检测片层压缩数据信息语法元素的取值是否属于相应的协议规定的范围, 如检测到语法元素的取值范围不属于协议规定的范围,表示检测到语法错误, 则上报当前出错的宏块位置。
3、 如权利要求2所述的实现视频解码中图像错误掩盖的方法,其特征在于, 进一步包括若检测到片层压缩数据信息解码出现错误时,停止对所述片层压缩数据信 息的解码。
4、 如权利要求3所述的实现视频解码中图像错误掩盖的方法,其特征在于, 所述统计所述片层压缩数据信息中出错的宏块总数具体包括根据所述片层压缩数据信息中出错的宏块位置和下一个片层中第一个宏块 的位置统计出出错宏块的总数。
5、 如权利要求4所述的实现视频解码中图像错误掩盖的方法,其特征在于, 所述根据所述宏块总数生成所对应的跳跃宏块编码流具体包括根据所述宏块总数通过熵编码编一个码字表示出错宏块总数; 将所述码字与所述解码出^!晉的片层头信息编成对应的跳i 夭宏块编码流,并 将所述解码出错的片层第 一个宏块位置修改为所述片层压缩数据信息中第 一个出错宏块的位置。
6、 如权利要求5所述的实现视频解码中图像错误掩盖的方法,其特征在于, 所述对所述跳跃宏块编码流进行解码包括将跳跃宏块编码流设置为基于上下 文自适应可变长编码模式,并在该模式下对所述跳跃宏块编码流进行解码。
7、 如权利要求1至6任一项所述的实现视频解码中图像错误掩盖的方法, 其特征在于,所述片层压缩数据信息的帧类型为P帧或B帧。
8、 如权利要求7所述的实现视频解码中图像错误掩盖的方法,其特征在于, 所述方法的实现是在检测到所述片层的片层头部信息解码正确的状态下进行 的。
9、 一种视频解码器,其特征在于,包括第一检测单元,用于检测片层压缩数据信息是否出现解码错误,若检测到 片层压缩数据信息解码出现错误时,则将解码出现错误的消息发送给统计单元;统计单元,用于在收到检测单元发送的解码出现错误的消息时,统计所述 片层压缩数据信息中出错的宏块总数;编码单元,用于根据统计单元统计的宏块总数生成所对应的跳跃宏块编码流;解码单元,用于对所述跳跃宏块编码流进行解码。
10、 如权利要求9所述的视频解码器,其特征在于,所述视频解码器还包 括一转换单元,用于将编码单元生成的跳跃宏块编码流设置为基于上下文自适 应可变长编码模式,并发送给解码单元进行解码。
11、 如权利要求IO所述的视频解码器,其特征在于,所述一见频解码器还包 括一第二检测单元,用于检测片层头部信息是否出现解码错误,若检测到片层 头部信息解码出现错误时,则停止对所述片层的解码才喿作;若所述片层头部信 息解码正确时,则将检测的消息发送给第 一检测单元对片层压缩数据信息的解码过程进行检测。
全文摘要
本发明实施例公开了一种实现视频解码中图像错误掩盖的方法,该方法包括以下步骤检测片层压缩数据信息是否出现解码错误;若检测到片层压缩数据信息解码出现错误,则统计所述片层压缩数据信息中出错的宏块总数;根据所述宏块总数生成对应的跳跃宏块编码流;对所述跳跃宏块编码流进行解码。本发明实施例还公开了一种视频解码器,通过本发明实施例提供的实现视频解码中图像错误掩盖的方法和视频解码器,在片层压缩数据信息(Slice Data)出错的情况下,通过编码器编一段全Skip码流,配置给Slice以下层解码,从而实现错误图像的修补功能。
文档编号H04N7/64GK101227619SQ20081002612
公开日2008年7月23日 申请日期2008年1月29日 优先权日2008年1月29日
发明者邱文轶 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1