一种AVS视频解码器的容错方法、装置及芯片转让专利

申请号 : CN200810225159.8

文献号 : CN101394569B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张辉王西强郭洛玮吕义柱邓云庆王洪仁

申请人 : 北京创毅视讯科技有限公司

摘要 :

本发明提供了一种AVS视频解码器的容错方法,包括对解码后的参考帧进行边界像素值上下左右的边界填充,获得具有边界和有效边界的参考帧,其中只有所述有效边界之内的图像内容用于视频图像显示,所述向上下左右填充的行列数由运动矢量所能达到的范围确定;获取当前帧中待解码宏块对应的AVS解码后的运动矢量;依据所述运动矢量从所述参考帧中找到匹配的参考宏块;将所述参考宏块与当前帧中待解码宏块解码后的残差宏块相加,得到所述待解码宏块的重构宏块。本发明仅需在参考帧四周进行边界填充,保证在运动矢量出错的情况下也能在参考帧中找到参考宏块,重构当前帧,减少了视频解码器的运算量,节约内存资源,提高了解码效率。

权利要求 :

1.一种AVS视频解码器的容错方法,其特征在于,包括以下步骤:对解码后的参考帧进行边界像素值上下左右的边界填充,获得具有边界和有效边界的参考帧,只有所述有效边界之内的图像内容用于视频图像显示;所述上下左右的边界填充的行列数由运动矢量所能达到的范围确定;

获取当前帧中待解码宏块对应的AVS解码后的运动矢量;

依据所述AVS解码后的运动矢量从填充后的参考帧中找到匹配的参考宏块;

将所述参考宏块与当前帧中待解码宏块解码后的残差宏块相加,得到所述待解码宏块的重构宏块。

2.根据要求1所述的容错方法,其特征在于,所述上下左右的边界填充包括:上边界填充,将所述有效边界的最上面一行像素值对应的图像内容向上重复填充所需行数;

下边界填充,将所述有效边界的最下面一行像素值对应的图像内容向下重复填充所需行数;

左边界填充,将所述有效边界的最左边一列像素值对应的图像内容向左重复填充所需列数;

右边界填充,将所述有效边界的最右边一列像素值对应的图像内容向右重复填充所需列数。

3.根据权利要求1所述的容错方法,其特征在于,所述上下左右的边界填充的行列数为上下各32行、左右各32列。

4.根据权利要求1所述的容错方法,其特征在于,当所述容错方法用于中国移动多媒体视频广播时,所述上下左右的边界填充的行列数为上下各16行、左右各16列。

5.一种AVS视频解码器的容错装置,其特征在于,包括:

填充单元,用于在将解码后的参考帧写入存储器的过程中,对其进行边界像素值上下左右的边界填充;所述填充后的参考帧具有边界和有效边界,只有所述有效边界之内的图像内容用于视频图像显示;所述上下左右的边界填充的行列数由运动矢量所能达到的范围确定;

运动矢量获取单元,用于获取当前帧中待解码宏块对应的AVS解码后的运动矢量;

参考宏块查找单元,用于依据所述AVS解码后的运动矢量从填充后的参考帧中找到匹配的参考宏块;

重构宏块获取单元,用于将所述参考宏块与当前帧中待解码宏块解码后的残差宏块相加,得到所述待解码宏块的重构宏块。

6.根据权利要求5所述的容错装置,其特征在于,所述填充单元包括:上边界填充单元,用于将所述参考帧图像有效边界的最上面一行像素值对应的图像内容向上重复填充所需行数,构成所述边界的上边界;

下边界填充单元,用于将所述参考帧图像有效边界的最下面一行像素值对应的图像内容向下重复填充所需行数,构成所述边界的下边界;

左边界填充单元,用于将所述参考帧图像有效边界的最左边一列像素值对应的图像内容向左重复填充所需列数,构成所述边界的左边界;

右边界填充单元,用于将所述参考帧图像有效边界的最右边一列像素值对应的图像内容向右重复填充所需列数,构成所述边界的右边界。

7.根据权利要求5所述的容错装置,其特征在于,所述上下左右的边界填充的行列数为上下各32行、左右各32列。

8.根据权利要求5所述的容错装置,其特征在于,当所述容错装置用于中国移动多媒体视频广播时,所述上下左右的边界填充的行列数为上下各16行、左右各16列。

9.根据权利要求5所述的容错装置,其特征在于,所述容错装置用在手机电视或具有移动电视接收功能的卫星导航仪、摄像机、照相机、投影仪或个人数字助理中。

10.一种AVS视频解码芯片,其特征在于,包括反扫描模块、反量化/反变换模块、帧内预测模块、帧间预测模块、环路滤波处理模块以及用于将所解码后的YUV格式数据转换为RGB格式数据的RGB转换单元,其中,所述帧间预测模块包括:填充单元,用于在将解码后的参考帧写入存储器的过程中,对其进行边界像素值上下左右的边界填充;所述填充后的参考帧具有边界和有效边界,只有所述有效边界之内的图像内容用于视频图像显示;所述上下左右的边界填充的行列数由运动矢量所能达到的范围确定;

运动矢量获取单元,用于获取当前帧中待解码宏块对应的AVS解码后的运动矢量;

参考宏块查找单元,用于依据所述AVS解码后的运动矢量从填充后的参考帧中找到匹配的参考宏块;

重构宏块获取单元,用于将所述参考宏块与当前帧中待解码宏块解码后的残差宏块相加,得到所述待解码宏块的重构宏块。

11.根据权利要求10所述的视频解码芯片,其特征在于,所述填充单元包括:上边界填充单元,用于将所述参考帧图像有效边界的最上面一行像素值对应的图像内容向上重复填充所需行数,构成所述边界的上边界;

下边界填充单元,用于将所述参考帧图像有效边界的最下面一行像素值对应的图像内容向下重复填充所需行数,构成所述边界的下边界;

左边界填充单元,用于将所述参考帧图像有效边界的最左边一列像素值对应的图像内容向左重复填充所需列数,构成所述边界的左边界;

右边界填充单元,用于将所述参考帧图像有效边界的最右边一列像素值对应的图像内容向右重复填充所需列数,构成所述边界的右边界。

12.根据权利要求10所述的视频解码芯片,其特征在于,所述上下左右的边界填充的行列数为上下各32行、左右各32列。

13.根据权利要求10所述的视频解码芯片,其特征在于,当所述容错装置用于中国移动多媒体视频广播时,所述上下左右的边界填充的行列数为上下各16行、左右各16列。

14.根据权利要求10所述的视频解码芯片,其特征在于,所述解码芯片用在手机电视或具有移动电视接收功能的卫星导航仪、摄像机、照相机、投影仪或个人数字助理中。

说明书 :

一种AVS视频解码器的容错方法、装置及芯片

技术领域

[0001] 本发明涉及视频通信领域,特别涉及一种AVS视频解码器的容错方法、装置及芯片。

背景技术

[0002] 随着网络应用的发展,经由网络的视频通信已经广泛应用于即时通信、聊天室、手机移动电视等方面,在视频通信中,通常将视频中的图像帧编码为I帧、P帧和B帧进行传输,其中I帧是帧内编码帧,其不依赖其它帧而独立解码,编码较大;P帧和B帧是帧间编码,其依赖于它前面的I帧或P帧以及每个宏块的运动矢量信息才可解码,因为P帧和B帧参考了前一帧和后一帧,消除了图像冗余,所以码流较小。视频图像经过编码后的码流经过网络传输发送给视频接收端,视频接收端利用解码器将接收到的视频码流进行解码,得到视频图像。
[0003] 视频图像解码过程是视频编码的逆过程。图1示出了视频解码的帧间预测过程示意图,在视频解码过程中,当前帧102的解码需要上一帧101作为参考帧,当前待解码宏块112的参考宏块111的位置由运动矢量103决定。参考帧101是一帧已经解码的完整图像,当前帧102的待解码宏块的重构宏块112就根据接收到的码流中的运动矢量103决定。
[0004] 但是,压缩后的码流在实际网络(例如IP网络、无线网络等)传输过程中,特别是在无线信道上的传输,如果信道的信噪比较高,码流中很容易出现误码,出现不合理的运动矢量。参考图2,示出了运动矢量出现错误时的帧间预测过程示意图,由于运动矢量203在码流传输过程中出现了错误,致使当前待解码宏块212的参考宏块211的位置超出了参考帧101的范围,导致视频解码中断或者严重影响解码视频的画面质量。因此,为了实现良好的视频传输质量,必须结合实际应用信道的传输特性,采取一定的容错技术。
[0005] 现有技术中提供了一种视频解码器的容错方法,该方法具体为:从接收的代码中获取当前帧中待解码宏块的运动矢量;根据上述运动矢量判断所述待解码宏块是否超出参考帧的上下、左右边界;当参考宏块超出上述参考帧的边界时,在上述待解码宏块的代码中加入容错代码,保证其参考宏块在上述参考帧的合理范围之内;解码下一个待解码宏块的码流,执行上述同样的步骤。
[0006] 但是,采用该容错方法存在的缺点是,由于需要对每一个待解码宏块的参考宏块的位置进行判断,并且当判断超出合理范围时,需要在每一个待解码宏块的代码中加入容错代码,以保证其在参考帧的合理范围之内,这样就会需要在代码中加入大量容错代码,严重地耗费了存储资源;同时,由于每次解码一个上述待解码宏块时,都需要判断其参考宏块是否超出了上述参考帧的上下、左右边界,也就是说,对于每一个待解码宏块的参考宏块都要进行上下、左右四项判断,这样就大大增加了视频解码器的运算量,进而降低了解码效率。
[0007] 总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够提供一种容错方法,降低上述容错方法中的存储资源耗费,减少运算量,提高解码效率。

发明内容

[0008] 本发明所要解决的技术问题是提供一种AVS视频解码器的容错方法,能够非常简单地实现解码器容错,节省内存资源,使用很少的内存耗费得到较高的解码效率和很好的解码效果。
[0009] 为了解决上述问题,本发明公开了一种AVS视频解码器的容错方法,包括以下步骤:
[0010] 对解码后的参考帧进行边界像素值上下左右的边界填充,获得具有边界和有效边界的参考帧,只有所述有效边界之内的图像内容用于视频图像显示;所述上下左右的边界填充的行列数由运动矢量所能达到的范围确定;
[0011] 获取当前帧中待解码宏块对应的AVS解码后的运动矢量;
[0012] 依据所述AVS解码后的运动矢量从填充后的参考帧中找到匹配的参考宏块;
[0013] 将所述参考宏块与当前帧中待解码宏块解码后的残差宏块相加,得到所述待解码宏块的重构宏块。
[0014] 优选的,所述上下左右的边界填充包括:
[0015] 上边界填充,将所述有效边界的最上面一行像素值对应的图像内容向上重复填充所需行数;
[0016] 下边界填充,将所述有效边界的最下面一行像素值对应的图像内容向下重复填充所需行数;
[0017] 左边界填充,将所述有效边界的最左边一列像素值对应的图像内容向左重复填充所需列数;
[0018] 右边界填充,将所述有效边界的最右边一列像素值对应的图像内容向右重复填充所需列数。
[0019] 优选的,所述上下左右的边界填充的行列数为上下各32行、左右各32列。
[0020] 优选的,当所述容错方法用于中国移动多媒体视频广播时,所述上下左右的边界填充的行列数为上下各16行、左右各16列。
[0021] 本发明还提供了一种AVS视频解码器的容错装置,包括:
[0022] 填充单元,用于在将解码后的参考帧写入存储器的过程中,对其进行边界像素值上下左右的边界填充;所述填充后的参考帧具有边界和有效边界,只有所述有效边界之内的图像内容用于视频图像显示;所述上下左右的边界填充的行列数由运动矢量所能达到的范围确定;
[0023] 运动矢量获取单元,用于获取当前帧中待解码宏块对应的AVS解码后的运动矢量;
[0024] 参考宏块查找单元,用于依据所述AVS解码后的运动矢量从填充后的参考帧中找到匹配的参考宏块;
[0025] 重构宏块获取单元,用于将所述参考宏块与当前帧中待解码宏块解码后的残差宏块相加,得到所述待解码宏块的重构宏块。
[0026] 优选的,所述填充单元包括:
[0027] 上边界填充单元,用于将所述参考帧图像有效边界的最上面一行像素值对应的图像内容向上重复填充所需行数,构成所述边界的上边界;
[0028] 下边界填充单元,用于将所述参考帧图像有效边界的最下面一行像素值对应的图像内容向下重复填充所需行数,构成所述边界的下边界;
[0029] 左边界填充单元,用于将所述参考帧图像有效边界的最左边一列像素值对应的图像内容向左重复填充所需列数,构成所述边界的左边界;
[0030] 右边界填充单元,用于将所述参考帧图像有效边界的最右边一列像素值对应的图像内容向右重复填充所需列数,构成所述边界的右边界。
[0031] 优选的,所述上下左右的边界填充的行列数为上下各32行、左右各32列。
[0032] 优选的,当所述容错装置用于中国移动多媒体视频广播时,所述上下左右的边界填充的行列数为上下各16行、左右各16列。
[0033] 优选的,所述容错装置用在手机电视或具有移动电视接收功能的卫星导航仪、摄像机、照相机、投影仪或个人数字助理中。
[0034] 本发明还提供了一种AVS视频解码芯片,包括反扫描模块、反量化/反变换模块、帧内预测模块、帧间预测模块、环路滤波处理模块以及用于将所解码后的YUV格式数据转换为RGB格式数据的RGB转换单元,其中,所述帧间预测模块包括:
[0035] 填充单元,用于在将解码后的参考帧写入存储器的过程中,对其进行边界像素值上下左右的边界填充;所述填充后的参考帧具有边界和有效边界,只有有效边界之内的图像内容用于视频图像显示;所述上下左右的边界填充的行列数由运动矢量所能达到的范围确定;
[0036] 运动矢量获取单元,用于获取当前帧中待解码宏块对应的AVS解码后的运动矢量;
[0037] 参考宏块查找单元,用于依据所述AVS解码后的运动矢量从填充后的参考帧中找到匹配的参考宏块;
[0038] 重构宏块获取单元,用于将所述参考宏块与当前帧中待解码宏块解码后的残差宏块相加,得到待解码宏块的重构宏块。
[0039] 优选的,所述填充单元包括:
[0040] 上边界填充单元,用于将所述参考帧图像有效边界的最上面一行像素值对应的图像内容向上重复填充所需行数,构成所述边界的上边界;
[0041] 下边界填充单元,用于将所述参考帧图像有效边界的最下面一行像素值对应的图像内容向下重复填充所需行数,构成所述边界的下边界;
[0042] 左边界填充单元,用于将所述参考帧图像有效边界的最左边一列像素值对应的图像内容向左重复填充所需列数,构成所述边界的左边界;
[0043] 右边界填充单元,用于将所述参考帧图像有效边界的最右边一列像素值对应的图像内容向右重复填充所需列数,构成所述边界的右边界。
[0044] 优选的,所述上下左右的边界填充的行列数为上下各32行、左右各32列。
[0045] 优选的,当所述容错装置用于中国移动多媒体视频广播时,所述上下左右的边界填充的行列数为上下各16行、左右各16列。
[0046] 优选的,所述解码芯片用在手机电视或具有移动电视接收功能的卫星导航仪、摄像机、照相机、投影仪或个人数字助理中。
[0047] 与现有技术相比,本发明具有以下优点:
[0048] 采用本发明提供的AVS视频解码器的容错方法,在解码后的参考帧写入存储器的过程中,对其进行边界像素值的上下左右边界填充,填充后的参考帧具有有效边界和边界,其中只有所述有效边界之内的图像数据用于视频图像的显示。这样就保证了当前帧中的待解码宏块对应的运动矢量即便在码流传输过程中出现了错误,也能够从参考帧中找到参考宏块,避免了视频解码过程中因宏块数据缺失而导致视频解码过程中断,使得视频解码器的解码过程具有很好的容错性。本发明提供的这种AVS视频解码器的容错方法与现有技术中提供的视频解码器的容错方法相比要简单很多,并且节省运算,减少内存耗费,有效提高了视频解码器的解码效率。
[0049] 本发明提供的AVS视频解码器的容错方法,根据运动矢量所能达到范围,进行最优化范围的填充,例如对于普通的AVS码流,采用32行、32列的边界填充;对于用于中国移动多媒体视频广播CMMB(China Mobile MultimediaBroadcasting)中的码流,由于其搜索范围较小,可采用16行、16列的边界填充。采用这种最优化的填充范围进行填充,既保证了所有的运动矢量都能查找到参考宏块,又保证内存资源的合理利用,使运算量增加得最少。
[0050] 此外,采用本发明提供的AVS视频解码器的容错方法,根据运动矢量所能达到的范围,分别采用有效边界的最上面一行的像素值、最下面一行的像素值、最左边一列的像素值和最右边一列的像素值作为边界填充的内容重复填充所需行、列数,作为参考帧新的边界,使得解码后的视频图像具有很好的连贯性,视频显示时也能够获得较好的视频效果。

附图说明

[0051] 图1是视频解码的帧间预测过程示意图;
[0052] 图2是运动矢量出现错误时的帧间预测过程示意图;
[0053] 图3是本发明AVS视频解码器的容错方法的流程图;
[0054] 图4是本发明进行边界填充后的参考帧的结构示意图;
[0055] 图5是每帧图像的内存存储结构示意图;
[0056] 图6是本发明边界填充后每帧图像的内存存储结构示意图;
[0057] 图7是本发明参考帧边界填充后的帧间预测过程示意图;
[0058] 图8是本发明AVS视频解码装置的结构示意图。

具体实施方式

[0059] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0060] 本发明的核心思想在于:本发明将视频解码过程中的参考帧利用边界像素值进行上下左右边界填充后存储于存储器中,使得在当前帧中的待解码宏块对应的运动矢量出现错误的情况下,也能够保证当前待解码宏块的参考宏块不超出参考帧的边界范围。保证解码器能够解码出当前帧,实现视频解码器的容错解码。
[0061] 参照图3,示出了本发明AVS视频解码器的容错方法,主要用于AVS视频解码器的帧间预测过程,包括:
[0062] 步骤301、对解码后的参考帧进行边界像素值上下左右的边界填充,获得具有边界和有效边界的参考帧;
[0063] 其中,只有所述有效边界之内的图像内容用于视频图像显示。有效边界和边界之间的填充图像内容,仅用于帧间预测时获得参考帧,这样就不会增加视频解码器的运算量,也保证了解码后视频画面的连贯性。上述对参考帧进行上下左右填充的行列数由运动矢量所能达到的范围确定。
[0064] 对于一般的视频格式图像,所述上下左右填充32行、32列即可,这样就能够保证参考宏块不会超出参考帧的范围。虽然,所述填充范围取大于32行、32列也可以,但是会浪费存储器的存储资源,增加视频解码器的运算量。所以,最优化的选择是进行32行、32列的边界填充。
[0065] 当所述AVS视频解码器的容错方法用于中国移动多媒体视频广播CMMB时,由于运动矢量的搜索范围较小,所述上下左右填充的范围最优可以缩小到16行、16列,这样就能够保证参考宏块不会超出参考帧的范围。
[0066] 步骤302、获取当前帧中待解码宏块对应的AVS解码后的运动矢量;
[0067] 上述步骤302具体为首先从码流中获取当前待解码宏块对应的AVS编码压缩后的运动矢量,然后对其进行AVS解码;
[0068] 步骤303、依据所述AVS解码后的运动矢量从所述参考帧中找到匹配的参考宏块;
[0069] 步骤304、将所述参考宏块与当前帧中待解码宏块解码后的残差宏块相加,得到所述待解码宏块的重构宏块。在本步骤中,待解码宏块是通过运动补偿的获得的,即在接收码流的同时,对当前帧中的每个待解码宏块对应的AVS编码压缩后的残差宏块和运动矢量依次进行解码。并在解码后与该待解码宏块在参考帧中对应的参考宏块相加,得到该待解码宏块的重构宏块。当前帧中每个待解码宏块的重构宏块重构当前帧。
[0070] 完成上述所有步骤之后,将重构的当前帧依据上述容错方法进行同样的边界填充,然后存储于存储器中,作为下一个输入帧的参考帧。
[0071] 作为本发明实施例的一种优选实施方式,上述步骤301中的边界填充还可以具体包括:
[0072] S1、上边界填充,利用所述有效边界的最上面一行像素值对应的图像内容向上重复填充所需行数;
[0073] S2、下边界填充,利用所述有效边界的最下面一行像素值对应的图像内容向下重复填充所需行数;
[0074] S3、左边界填充,利用所述有效边界的最左边一列像素值对应的图像内容向左重复填充所需列数;
[0075] S4、右边界填充,利用所述有效边界的最右边一列像素值对应的图像内容向右重复填充所需列数。
[0076] 上述所需行列数由运动矢量在参考帧中所能达到的最大范围确定,对于普通的AVS码流解码后的视频图像帧,优选填充32行、32列;对于用于CMMB中的码流解码后的视频图像帧,由于运动矢量的搜索范围较小,优选填充16行、16列。
[0077] 以用于CMMB中的码流为例,解码后得到分辨率为320×240像素的视频图像帧,当此视频图像帧作为下一帧待解码图像的参考帧时,对该参考帧执行以下操作:
[0078] 上边界填充,利用所述图像有效边界的最上面一行的320个像素值对应的图像内容向上重复填充16行;
[0079] 下边界填充,利用所述有效边界的最下面一行的320个像素值对应的图像内容向下重复填充16行;
[0080] 左边界填充,利用所述有效边界的最左边一列的240个像素值对应的图像内容向左重复填充16列;
[0081] 右边界填充,利用所述有效边界的最右边一列的240个像素值对应的图像内容向右重复填充16列。
[0082] 边界填充后的参考帧的结构如图4所示,包括边界401,有效边界402,所述边界401和有效边界402之间的填充图像内容403以及所述有效边界402之内的图像内容404。
其中,只有所述有效边界402之内的图像内容404用于视频显示。
[0083] 众所周知,AVS视频图像在存储器中一般存储为YUV格式的数据。AVS压缩编码是以宏块为单位进行视频帧的压缩的,所谓宏块,是指视频帧内的16×16像素采样区域的数据,所述像素采样区域的大小也可取16×8或8×16。根据数据类型(亮度、色度)的不同,每一帧可以分为Y宏块、U宏块和V宏块(亦称Y宏块、Cb宏块、Cr宏块),其中,Y代表亮度,UV代表色度,色度定义了颜色的两个方面即饱和度与色调。以16×16大小的像素采样区域为例,AVS压缩编码时,每一帧被转换成了YUV颜色空间,然后被划分成了16×16的一些小块,这些小块即宏块。一般而言,亮度数据Y被完全表达(16×16被分成了4个8×8的小块进行表达),而U和V则使用1/4的分辨率进行表达,也就是每个16×16的块仅仅使用8×8的子块来表达。即一共具有6个8×8的小块(Y宏块四个,U、V各一个)。
[0084] 相应地,AVS解码后得到的每一帧图像也是以YUV数据格式存储于存储器中的。参照图5,示出了每一帧图像的内存存储结构,包括Y数据结构501、U数据结构502和V数据结构503,其中所述Y数据结构501所占的内存大小是U数据结构502或V数据结构503所占内存大小的4倍。所述U数据结构502所占内存的大小与所述V数据结构503所占的内存大小一样。
[0085] 参照图6,示出了边界填充后每帧图像的内存存储结构,同样也是图4所示的图像对应的内存存储结构。采用上述方法进行边界填充以后,每一帧图像的内存存储结构也包括Y数据结构601、U数据结构602和V数据结构603,其中,所述Y数据结构601所占的内存大小仍然是U数据结构602或V数据结构603所占内存大小的4倍。所述U数据结构602所占内存的大小与所述V数据结构603所占的内存大小一样。其中,虚线框内的数据为边界填充前Y、U、V数据结构所占内存的大小,在边界填充后,也只有这部分数据用于图像显示。
[0086] 结合上述填充过程和上述帧结构示意图,图7示出了本发明参考帧边界填充后的帧间预测过程。由于当前帧中的待解码宏块对应的AVS编码后的运动矢量在码流传输过程中出现了错误,依据AVS解码后的运动矢量703在参考帧71获取的参考宏块已经超出了参考帧71的有效边界范围。采用本发明提供的AVS视频解码器的容错方法对参考帧71进行边界填充后得到具有新的边界701和有效边界702的参考帧。依据所述AVS解码后的运动矢量在填充后的参考帧中查找到参考宏块711。将待解码宏块对应的解码后的残差宏块加上所述参考宏块711之后得到待解码宏块的重构宏块712。同理,对所述当前帧中的待解码宏块进行重构,完成所述待解码帧中所有的待解码宏块的重构之后,获得重构帧72。之后再利用相同的容错方法,对重构帧72进行边界像素值填充,构成新的具有有效边界705和新边界704的图像帧,作为下一个待解码帧的参考帧。
[0087] 本发明还提供了一种AVS视频解码装置,参照图8,示出了本发明AVS视频解码装置的结构,包括:
[0088] 填充单元801,用于在将解码后的参考帧写入存储器的过程中,对其进行边界像素值上下左右的边界填充;其中,所述填充后的参考帧具有边界和有效边界,只有所述有效边界之内的图像内容用于视频图像显示;另外,所述向上下左右填充的行列数由运动矢量所能达到的范围确定;
[0089] 运动矢量获取单元802,用于获取当前帧中待解码宏块对应的AVS解码后的运动矢量;
[0090] 上述运动矢量获取单元802,可以具体包括:
[0091] 运动矢量的AVS编码获取单元,用于从码流中获取当前待解码宏块对应的AVS编码压缩后的运动矢量;
[0092] 运动矢量解码单元,用于对接收到的所述AVS编码压缩后的运动矢量进行AVS解码。
[0093] 参考宏块查找单元803,用于依据所述AVS解码后的运动矢量从所述参考帧中找到匹配的参考宏块;
[0094] 重构宏块获取单元804,用于将所述参考宏块与当前帧中待解码宏块解码后的残差宏块相加,得到所述待解码宏块的重构宏块。
[0095] 其中,上述填充单元801还可以具体包括:
[0096] 上边界填充单元,用于将所述参考帧图像有效边界的最上面一行像素值对应的图像内容向上重复填充所需行数,构成所述边界的上边界;
[0097] 下边界填充单元,用于将所述参考帧图像有效边界的最下面一行像素值对应的图像内容向下重复填充所需行数,构成所述边界的下边界;
[0098] 左边界填充单元,用于将所述参考帧图像有效边界的最左边一列像素值对应的图像内容向左重复填充所需列数,构成所述边界的左边界;
[0099] 右边界填充单元,用于将所述参考帧图像有效边界的最右边一列像素值对应的图像内容向右重复填充所需列数,构成所述边界的右边界。
[0100] 上述对参考帧向上下左右填充的所需行列数由运动矢量所能达到的范围确定。对于普通的AVS码流解码后的视频图像帧,所述上下左右填充32行、32列即可,这样就能够保证参考宏块不会超出参考帧的范围。当然所述填充范围取大于32行、32列也可以,但是会浪费存储器的存储资源,增加解码器的运算量。所以,最优化的选择是进行32行、32列的填充。
[0101] 当所述AVS视频解码装置用于中国移动多媒体视频广播CMMB时,由于用于CMMB的码流的运动矢量的搜索范围较小,所述上下左右填充范围最优可以缩小到16行、16列,这样就能够保证参考宏块不会超出参考帧的范围。
[0102] 本发明提供的AVS容错装置由于其容错方法简单,所占内存少,节省运算等优点可以被广泛应用在手机电视或具有移动电视接收功能的卫星导航仪、摄像机、照相机、投影仪或个人数字助理中,具有广泛的用途。
[0103] 另外,本发明还提供了一种AVS视频解码芯片,包括反扫描模块、反量化/反变换模块、帧内预测模块、帧间预测模块、环路滤波处理模块以及用于将所解码后的YUV格式数据转换为RGB格式数据的RGB转换单元,其中,所述帧间预测模块包括:
[0104] 填充单元,用于在将解码后的参考帧写入存储器的过程中,对其进行边界像素值上下左右的边界填充;所述填充后的参考帧具有边界和有效边界,只有所述有效边界之内的图像内容用于视频图像显示;所述向上下左右填充的行列数由运动矢量所能达到的范围确定;
[0105] 运动矢量获取单元,用于获取当前帧中待解码宏块对应的AVS解码后的运动矢量;
[0106] 参考宏块查找单元,用于依据所述运动矢量从所述参考帧中找到匹配的参考宏块;
[0107] 重构宏块获取单元,用于将所述参考宏块与当前帧中待解码宏块解码后的残差宏块相加,得到所述待解码宏块的重构宏块。
[0108] 在本发明AVS视频解码芯片的一实施例中,优选的是,所述填充单元还可以包括:
[0109] 上边界填充单元,用于将所述参考帧图像有效边界的最上面一行像素值对应的图像内容向上重复填充所需行数,构成所述边界的上边界;
[0110] 下边界填充单元,用于将所述参考帧图像有效边界的最下面一行像素值对应的图像内容向下重复填充所需行数,构成所述边界的下边界;
[0111] 左边界填充单元,用于将所述参考帧图像有效边界的最左边一列像素值对应的图像内容向左重复填充所需列数,构成所述边界的左边界;
[0112] 右边界填充单元,用于将所述参考帧图像有效边界的最右边一列像素值对应的图像内容向右重复填充所需列数,构成所述边界的右边界。
[0113] 在本发明AVS视频解码芯片的另外一实施例中,所述边界填充所需行列数可以是大于或等于32行、32列,为了减少内存消耗,减少运算量,最优选择为32行、32列。
[0114] 当所述AVS视频解码芯片用于CMMB的接收终端时,所述边界填充的所需行列数可以是大于或等于16行、16列,同样是为了减少内存消耗,减少运算量,最优选择为16行、16列。边界填充采用16行、16列的填充方式,已经足够满足其解码过程中的容错需求。
[0115] 本发明提供的所述AVS视频解码芯片其应用的容错方法简单,所占内存少,节省运算等优点可以被广泛应用在手机电视或具有移动电视接收功能的卫星导航仪、摄像机、照相机、投影仪或个人数字助理中,具有广泛的用途。
[0116] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0117] 以上对本发明所提供的一种AVS视频解码器的容错方法和装置,以及一种AVS视频解码芯片,进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。