[发明专利]MPEG-4视频码流的错误恢复方法和装置有效
申请号: | 201010546749.8 | 申请日: | 2010-11-16 |
公开(公告)号: | CN102469315A | 公开(公告)日: | 2012-05-23 |
发明(设计)人: | 王宇泉 | 申请(专利权)人: | 联芯科技有限公司 |
主分类号: | H04N7/64 | 分类号: | H04N7/64;H04N7/26;H04N7/32 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 施浩 |
地址: | 201206 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | mpeg 视频 错误 恢复 方法 装置 | ||
技术领域
本发明涉及一种对由于信道误码严重需要进行错误恢复的方法和装置,尤其涉及针对MPEG-4视频码流出现误码时进行错误恢复的方法和装置。
背景技术
在目前的视频业务中,由于后续解码的容错性能不是很好,当信道误码比较严重时,在解码器解码失败的情况下会有很多花屏现象,严重影响视频质量。
目前对于视频错误恢复的技术主要集中在对压缩视频码流解码到像素域,然后在像素域通过各种算法来恢复。主要通过解码后像素域的图像错误块的左右上下宏块的空间相关性来恢复错误宏块的图像,通过解码后像素域的图像错误块对应位置的前一帧相邻宏块的信息来恢复当前宏块的运动矢量等信息。
这种方法的好处在于由于最后是在像素域进行错误恢复,所以错误恢复效果比较好。但是解码到像素域的错误恢复的方法有比较大的局限性,主要表现在其需要在解码器内部实现,对于第三方提供的解码器如果没有内部实现错误恢复,则后续错误恢复算法基本没有可能实现。同时,即使在像素域进行错误恢复,其计算复杂度也相当大。
发明内容
本发明的目的在于解决上述问题,提供了一种MPEG-4视频码流的错误恢复方法,能大大减少由于解码器不能正确解码而造成的主观质量下降的问题,并且与通常的像素域错误恢复相比计算复杂度低。
本发明的另一目的在于提供了一种MPEG-4视频码流的错误恢复装置。
本发明的技术方案为:本发明公开了一种MPEG-4视频码流的错误恢复方法,在像素域解码之前的压缩域进行错误恢复,该方法包括:
语法层纠错步骤:对当前的MPEG-4视频码流进行仅语法头的解码,对解码得到的语法头各个语法变量与MPEG-4标准比较,在当前语法变量不符合MPEG-4标准规定或者前后矛盾的情况下,按照MPEG-4标准生成更新的语法变量并进行编码重构,以提供符合后续解码器规范的视频码流;
宏块层纠错步骤:根据错误宏块所在的位置分别进行相应的处理,进行宏块层的错误恢复。
根据本发明的MPEG-4视频码流的错误恢复方法的一实施例,在语法层纠错步骤中,进一步包括:
依次对MPEG-4视频码流的VisualObjectSequence、VisualObject、VideoObjectLayer、VideoObjectPlane四个语法结构进行分析并纠错,按照MPEG-4标准的语义规范对该四个语法结构按照比特位逐次纠正,使MPEG-4视频码流符合后续解码器规范的要求。
根据本发明的MPEG-4视频码流的错误恢复方法的一实施例,宏块层纠错步骤进一步包括:
对于当前错误宏块在I帧内且前一帧为P帧的情况,通过相邻两帧之间的空间相关性进行错误恢复;
对于当前错误宏块在I帧之后的一个P帧内的情况,用下一个P帧替代当前错误宏块所在的P帧;
对于当前错误宏块在P帧之后的一个P帧内的情况,通过当前错误宏块所在帧的运动趋势的计算方法来预测当前错误宏块以及后续宏块的运动矢量,且不对当前错误宏块的残差像素值进行编码,而是用当前错误宏块所在帧的前一帧对应位置宏块的像素值进行错误恢复。
根据本发明的MPEG-4视频码流的错误恢复方法的一实施例,对于当前错误宏块在I帧内且前一帧为P帧的情况,细化的处理包括:
将当前帧的编码类型变为P帧,同时将从当前错误宏块开始到帧结束的宏块的编码类型改成SKIP模式,沿用前一个P帧的信息,使当前错误宏块之前的宏块的编码类型维持INTRA模式。
根据本发明的MPEG-4视频码流的错误恢复方法的一实施例,对于当前错误宏块在P帧之后的一个P帧内的情况,细化的处理包括:
以当前错误宏块所在帧的存在误码的行的上一行宏块与上一个帧与之对应的一行之间的运动矢量的差值的平均值作为运动趋势,计算公式为:
MV(trend)=(Pre_MV[0][n]-MV[0][n])/n 公式(1)
其中MV[0][n]为当前错误宏块所在帧的存在误码的行的上一行宏块的运动矢量,Pre_MV[0][n]为当前错误宏块所在帧的上一个帧与之对应的一行宏块的运动矢量,n为图像中一行宏块的数量值,MV(trend)为当前错误宏块的运动趋势;
计算当前错误宏块的残差运动矢量,计算公式为:
MV(det al)=MV(previous)-MV(media)+MV(trend) 公式(2)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联芯科技有限公司,未经联芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010546749.8/2.html,转载请声明来源钻瓜专利网。