首页> 中国专利> 一种实现视频解码中图像错误掩盖的方法及视频解码器

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

摘要

本发明实施例公开了一种实现视频解码中图像错误掩盖的方法,该方法包括以下步骤:检测片层压缩数据信息是否出现解码错误;若检测到片层压缩数据信息解码出现错误,则统计所述片层压缩数据信息中出错的宏块总数;根据所述宏块总数生成对应的跳跃宏块编码流;对所述跳跃宏块编码流进行解码。本发明实施例还公开了一种视频解码器,通过本发明实施例提供的实现视频解码中图像错误掩盖的方法和视频解码器,在片层压缩数据信息(Slice Data)出错的情况下,通过编码器编一段全Skip码流,配置给Slice以下层解码,从而实现错误图像的修补功能。

著录项

  • 公开/公告号CN101227619A

    专利类型发明专利

  • 公开/公告日2008-07-23

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200810026125.6

  • 发明设计人 邱文轶;

    申请日2008-01-29

  • 分类号H04N7/64;H04N7/26;

  • 代理机构广州三环专利代理有限公司;

  • 代理人郝传鑫

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 20:28:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-06-15

    授权

    授权

  • 2008-09-17

    实质审查的生效

    实质审查的生效

  • 2008-07-23

    公开

    公开

说明书

技术领域

本发明涉及一种通信应用领域,尤其涉及一种实现视频解码中图像错误掩盖的方法及视频解码器。

背景技术

H.264是由国际电信标准化部门ITU-T和制定MPEG的国际标准化组织ISO/国际电工协会IEC共同制订的一种视频编码国际标准格式。H.264标准产生的初衷就是制定一个新的视频编码标准,以实现视频的高压缩比、高图像质量、良好的网络适应性。H.264同时又被称为MPEG-4AVC(“活动图像专家组-4的高级视频编码”)或称为MPEG-4Part10。

H.264是联合视频编码组(Joint Video Team,JVT)组织提出的视频压缩标准,H.264解码从上到下主要分为视频序列(Sequence)层、图像(Picture)层、片层头部信息(Slice Header)、片层压缩数据信息(Slice Data)几大部分,在视频解码过程中上层解码出错将导致片层(Slice)的下层不能正确解码。

现有技术中,当前图像某些宏块(MB)出错时,解码器直接找到前面解码的最近的图像,拷贝对应坐标的MB,但是仅仅是通过透明拷贝对应MB,而没有考虑到图像的运动趋势,在实现过程中需要修改原有设计,单独增加一个拷贝处理图像模块才能完成。

现有技术中还提出了一种基于相邻运动矢量(mv)估计的错误掩盖方法,当前图像某些MB出错时,提取该MB周边MB的mv信息,通过一定的运算规则得到当前MB的mv估计值,然后根据估计值去参考图像取像素插值,从而得到当前MB的修补图像。这种方法比直接拷贝更进了一步,因为符合图像运动趋势,错误掩盖的效果也更逼真,但是所述方法的实现需要修改原有Slice以下层设计,加上取周边mv来估计的功能,只能从空域上预测mv,不能从时域上预测mv。

发明内容

鉴于上述现有技术所存在的问题,本发明实施例提供了一种实现视频解码中图像错误掩盖的方法及视频解码器。在片层压缩数据信息(Slice Data)出错的情况下,通过编码器编一段全Skip码流,配置给Slice以下层解码,从而实现错误图像的修补功能。

为了解决上述技术问题,本发明实施例提出了一种实现视频解码中图像错误掩盖的方法,该方法包括:

检测片层压缩数据信息是否出现解码错误;

若检测到片层压缩数据信息解码出现错误,则统计所述片层压缩数据信息中出错的宏块总数;

根据所述宏块总数生成对应的跳跃宏块编码流;

对所述跳跃宏块编码流进行解码。

相应的,本发明实施例还提出了一种视频解码器,包括:

第一检测单元,用于检测片层压缩数据信息是否出现解码错误,若检测到片层压缩数据信息解码出现错误时,则将解码出现错误的消息发送给统计单元;

统计单元,用于在收到检测单元发送的解码出现错误的消息时,统计所述片层压缩数据信息中出错的宏块总数;

编码单元,用于根据统计单元统计的宏块总数生成所对应的跳跃宏块编码流;

解码单元,用于对所述跳跃宏块编码流进行解码。

实施本发明实施例,通过本发明实施例中实现视频解码中图像错误掩盖的方法及视频解码器,在正常解码架构下,因为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)编码模式有一种跳跃宏块编码(Skip编码),可以用一个熵编码(Exp-Golomb)码字表示一串连续的Skip MB,Skip MB不需要传宏块(MB)头信息和残差数据,解码时按一定规则自动预测参考索引和运动向量(motion vector,mv),然后对参考块插值得到当前MB像素。Skip MB是一种特殊的宏块编码方式,仅用于P帧或B帧的Slice,不需要传MB头信息和残差数据,它的特点是通过极少量的码流就可以表示一个MB。Skip MB解码过程如下:P帧的Skip解码是根据周边相邻块的运动信息,预测当前块的运动信息,然后对参考块插值得到当前MB像素;B帧的Skip解码是协议规定B Skip宏块按直接模式解码,空间直接模式根据周边相邻块的运动信息,预测当前块的运动信息;时间直接模式根据相邻帧对应块运动信息,预测当前块的运动信息;然后对参考块插值得到当前MB像素。

本发明的目的是在Slice Data出错的情况下,编一段全Skip码流,配置给Slice以下层解码,从而实现错误图像的修补功能,不需要改动Slice以下层的设计。对于P帧的Slice,编全P Skip码流,修补效果和透明拷贝对应MB一样;对于B帧的Slice,编全B Skip码流,修补效果与Direct模式mv预测效果相同,能体现图像的运动趋势。

首先请参阅图1,图1示出了本发明实施例中的实现视频解码错误掩盖方法的流程图,实现步骤如下:

步骤S101:开始;

步骤S102:检测Slice Data解码是否正确,如果检测到Slice解码出现错误则进行步骤S103,否则转步骤S106;

步骤S103:统计所述Slice Data中解码出错的MB总数;

步骤S104:根据所述出错的MB总数编写相应的Skip码流;

步骤S105:启动Slice解码对所述Skip码流进行解码;

步骤S106:结束。

相应的,图2示出了本发明实施例中的视频解码器的结构示意图,该视频解码器包括第一检测单元201、统计单元202、编码单元203以及解码单元204,其中:第一检测单元201用于检测片层压缩数据信息是否出现解码错误,若检测到片层压缩数据信息解码出现错误时,则将解码出现错误的消息发送给统计单元202;统计单元202用于在收到检测单元发送的解码出现错误的消息时,统计所述片层压缩数据信息中出错的宏块总数;编码单元203用于根据统计单元统计的宏块总数生成所对应的跳跃宏块编码流;解码单元204用于对所述跳跃宏块编码流进行解码。

图3示出了本发明实施中的视频解码器的具体结构示意图,该视频解码器包括第一检测单元302、统计单元303、编码单元304以及解码单元306,其中:第一检测单元302用于检测片层压缩数据信息是否出现解码错误,若检测到片层压缩数据信息解码出现错误时,则将解码出现错误的消息发送给统计单元303;统计单元303用于在收到第一检测单元302发送的片层压缩数据信息解码出现错误的消息时,统计所述片层压缩数据信息中出错的宏块总数;编码单元304用于根据统计单元303统计的宏块总数生成所对应的跳跃宏块编码流;解码单元306用于对所述跳跃宏块编码流进行解码。所述视频解码器还包括了第二检测单元301和转换单元305,其中:第二检测单元301用于检测片层头部信息是否出现解码错误,若检测到片层头部信息解码出现错误时,则停止对所述片层的解码操作,通过相应的其他处理方式实现对该图像的解码错误进行修补,若所述片层头部信息解码正确时,则将检测的消息发送给第一检测单元302对片层压缩数据信息的解码过程进行检测;转换单元305用于将编码单元304生成的跳跃宏块编码流设置为基于上下文自适应可变长编码模式,并发送给解码单元306进行相应的片层解码。

图4示出了本发明实施例中的实现视频解码中图像错误掩盖方法的具体流程图,在解码过程中,Slice Header解码正确,如果Slice Header解码出错时,在修补过程中可以直接丢弃该Slice的解码,再用其他方法修补(例如透明拷贝),而当检测到Slice Data解码有错,Slice中的部分或全部MB解码出错时,则停止后面的解码,上报出错MB位置,具体实现过程如下:

步骤S401:开始;

步骤S402:对视频编解码协议中的S1ice进行解码;

步骤S403:检测Slice Header解码是否正确,如果解码正确则进行步骤S404,否则转步骤S409;

步骤S404:检测Slice Data解码是否正确,如果Slice Data解码正确,则不需要进行帧错误掩盖,则进行步骤S409,如果检测到S1ice Data解码出现错误时,则需要进行步骤S405;

Slice Data主要包含Slice中各个MB的宏块类型、预测模式、参考索引、运动向量、残差系数等,当解码某个宏块的数据出现错误时,即可记录该宏块的编号,供后续修复图像时使用。本发明实施例提供的错误掩盖方法,可以对P帧或B帧的S1ice Data解码进行错误掩盖。可以通过判断Slice Data语法元素的取值是否属于相应的协议规定的范围,如果不属于协议规定的范围,表示检测到语法错误,则上报Slice Data中当前解码出错的MB位置。

步骤S405:统计所述Slice Data中解码出错的MB总数;

根据当前Slice中当前解码出错的MB位置和下一个Slice的第一个MB在图像中的位置(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码流,连同当前S1ice Header信息,配置给Slice以下层解码模块,同时修改该Slice的first_mb_in_slice为当前Slice解码出错的MB位置。

步骤S408:将Skip码流设置为CAVLC模式,启动Slice解码;

步骤S409:结束。

通过上述方法的实现即可实现视频解码中解码出现错误后,实现图像修复,从而达到对P帧或B帧出现的错误进行掩盖。如果是P Slice在解码过程中出现错误时,因为P Slice Skip码流不会参考不同Slice的mv,所以错误掩盖效果等同于透明拷贝,图5示出了P Skip修补时的mv效果示意图;如果是B Slice在解码过程中出现错误时,则会按照直接模块(Direct)模式去解码,修补时会有比较准确的mv预测值,能体现图像的运动趋势,错误掩盖效果要好于透明拷贝,图6示出了B Skip修补时的mv效果示意图。如果Slice以上层是用软件实现的,只需要添加一段软件代码就可以实现图像的修补功能,这里的实现过程与流程图6中实现过程相同。

综上所述,通过本发明实施例中实现视频解码中图像错误掩盖的方法及视频解码器,在正常解码架构下,因为Skip码流解码属于协议支持的解码模式,无需修改Slice以下层的解码,即可实现较好的错误掩盖效果,从而以最小改动实现图像错误掩盖的方法,如果Slice以上层是用软件实现的,只需要添加一段软件代码就可以实现图像的修补功能。

以上所揭露的仅为本发明实施例中的一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号