一种用于vp9解码器运动矢量预测的方法和装置的制造方法

文档序号:9353179阅读:610来源:国知局
一种用于vp9解码器运动矢量预测的方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据通信技术领域,尤其涉及一种用于VP9解码器运动矢量预测的方法和装置。
【背景技术】
[0002]随着科技的发展和社会的进步,VP9也随之诞生。VP9是一个由Google开发的开放格式、无使用授权费的视频压缩标准。由于VP9在视频解码领域具有解码速度快的特点,因而VP9解码器得到了广泛应用。
[0003]VP9解码器采用了以64x64个像素为一个宏块的编解码架构,即一幅图像以64x64个像素为单位划分成多个宏块,并以宏块为单位对视频的码流数据进行解码。对于每一个64x64个像素的宏块而言,其又可继续往下拆分成64x32、32x64、32x32、32xl6、16x32、16xl6、16x8、8xl6、8x8个像素的子块。其中,子块的最小单位为8x8个像素。也就是说,8x8个像素的子块是区分帧内预测、帧间预测的最小单元。
[0004]对于每个8x8子块而言,采用68bit用于记录当前块的属性。其中,2bit用于标记当前块的前向参考帧类型;2bit用于标记当前块的后向参考帧类型;16bit用于标记当前块的前向参考运动矢量的X分量;16bit用于标记当前块的前向参考运动矢量的y分量;16bit用于标记当前块的后向参考运动矢量的X分量;16bit用于标记当前块的后向参考运动矢量的I分量。当子块为帧内预测块时,则说明该子块覆盖的所有8x8块都无运动矢量,即上述分量都为O。若子块为帧间预测块,则该块覆盖的所有8x8块都含有相同的运动矢量属性,既上述变量值都一样。
[0005]VP9解码器在解码过程中,是基于块进行解码的。在对下一个子块的运算矢量进行侦测时,需要应用到当前子块的运动矢量信息。这就导致需要对每一子块的运动矢量进行存储,这将消耗庞大的寄存器占用。而如果采用下一个子块的运动矢量信息的存储位置与当前子块的运动矢量信息的存储位置直接替换覆盖的方式,则会导致下一子块与当前子块之间映射关系复杂,导致硬件设计逻辑复杂,面积大,功耗高。
[0006]综上所述,如何解决VP9解码器在解码过程中,对运动矢量进行预测过程中寄存器消耗大、浪费资源、映射关系复杂等问题,是数据通信技术领域一个亟需解决的问题。

【发明内容】

[0007]为此,需要提供一种基于用于VP9解码器运动矢量预测的技术方案,用以解决对VP9解码器运动矢量进行预测过程中寄存器消耗大、浪费资源、映射关系复杂、硬件设计逻辑复杂、硬件面积大、功耗高等问题。
[0008]为实现上述目的,发明人提供了一种用于VP9解码器运动矢量预测的方法,所述方法包括如下步骤:
[0009]将待预测的宏块划分为多个子块,对宏块中某一行或某一列的子块进行解码,并将该行或该列的解码数据存储到第一存储位置;
[0010]对下一行或下一列的子块进行解码时,判断下一行或一下列的子块大小是否大于预设子块的大小,若是则将下一行或下一列的子块的解码数据存储到第一存储位置;若不是则将下一行或下一列的子块的解码数据存储到第二存储位置中。
[0011]进一步地,所述宏块的大小为64x64,则所述子块大小包括:64x32、32x64、32x32、32x16、16x32、16x16、16x8、8xl6、8x8 中的一种或多种。
[0012]进一步地,所述预设子块的大小为64x32、32x64、32x32中的一种或多种。
[0013]进一步地,所述“对宏块中某一行或某一列的子块进行解码”包括步骤:
[0014]按照Z字型的顺序对某一行或某一列的子块进行解码。
[0015]进一步地,所述方法还包括步骤:
[0016]将某一行或某一列的子块与其下一行或下一列的子块交界处对应的解码数据存储于第二存储位置。
[0017]以及发明人还提供了一种用于VP9解码器运动矢量预测的装置,所述装置包括如下步骤解码模块,判断模块和存储模块,所述存储模块包括第一存储模块和第二存储模块;
[0018]所述解码模块用于将待预测的宏块划分为多个子块,对宏块中某一行或某一列的子块进行解码;所述第一存储模块用于将该行或该列的解码数据存储到第一存储位置;
[0019]所述解码模块还用于对下一行或下一列的子块进行解码时,所述判断模块用于判断下一行或一下列的子块大小是否大于预设子块的大小,若是则第一存储模块用于将下一行或下一列的子块的解码数据存储到第一存储位置;若不是则第二存储模块用于将下一行或下一列的子块的解码数据存储到第二存储位置中。
[0020]进一步地,所述宏块的大小为64x64,则所述子块大小包括:64x32、32x64、32x32、32x16、16x32、16x16、16x8、8xl6、8x8 中的一种或多种。
[0021]进一步地,所述预设子块的大小为64x32、32x64、32x32中的一种或多种。
[0022]进一步地,所述解码模块“对宏块中某一行或某一列的子块进行解码”是按照Z字型的顺序对某一行或某一列的子块进行解码。
[0023]进一步地,所述第二存储模块还用于将某一行或某一列的子块与其下一行或下一列的子块交界处对应的解码数据存储于第二存储位置。
[0024]区别于现有技术,上述技术方案所述的用于VP9解码器运动矢量预测的方法和装置,所述方法首先将待预测的宏块划分为多个子块,对宏块中某一行或某一列的子块进行解码,并将该行或该列的解码数据存储到第一存储位置;当对下一行或下一列的子块进行解码时,判断下一行或一下列的子块大小是否大于预设子块的大小,若是则将下一行或下一列的子块的解码数据存储到第一存储位置;若不是则将下一行或下一列的子块的解码数据存储到第二存储位置中。通过将下一行或下一列的子块的解码数据存储到第一存储位置,从而大大提高了寄存器的复用性,节省了对寄存器的占用,避免了资源的浪费。此外,所述方法还可以对不同大小的子块作相应的处理,将小于预设子块的待解码的子块的解码数据存储于第二存储位置,从而减少了子块与第一存储位置之间的映射关系,减少了算法复杂度,减少了硬件设计的逻辑复杂度,减少了硬件的面积,因而在数据通信领域具有广阔的市场前景。
【附图说明】
[0025]图1为本发明一实施例所述的用于VP9解码器运动矢量预测的方法的流程图;
[0026]图2为本发明一实施例所述的用于VP9解码器运动矢量预测的装置的示意图;
[0027]图3为本发明一实施例所述的宏块的结构示意图;
[0028]图4为本发明一实施例所述的用于VP9解码器运动矢量预测的方法的示意图;
[0029]图5为本发明另一实施例所述的用于VP9解码器运动矢量预测的方法的示意图;
[0030]图6为本发明另一实施例所述的用于VP9解码器运动矢量预测的方法的示意图;
[0031]图7为本发明另一实施例所述的用于VP9解码器运动矢量预测的方法的示意图;
[0032]图8为本发明另一实施例所述的用于VP9解码器运动矢量预测的方法的示意图;
[0033]图9为本发明另一实施例所述的用于VP9解码器运动矢量预测的方法的示意图;
[0034]图10为本发明另一实施例所述的用于VP9解码器运动矢量预测的方法的示意图;
[0035]图11为本发明另一实施例所述的用于VP9解码器运动矢量预测的方法的示意图;
[0036]图12为本发明另一实施例所述的用于VP9解码器运动矢量预测的方法的示意图;
[0037]附图标记说明:
[0038]101、解码模块;
[0039]102、判断模块;
[0040]103、存储模块;113、第一存储位置;114、第二存储位置。
【具体实施方式】
[0041]为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0042]请参阅图1,为本发明一实施例所述的用于VP9解码器运动矢量预测的方法的流程图。所述方法可以用于VP9解码器运动矢量预测,可以有效地提高VP9解码器在进行运动矢量预测时所需的寄存器的复用性,提高资源利用率,并减少子块的映射关系,减少算法复杂度,具体包括如下步骤:
[0043]首先进入步骤SlOl将待预测的宏块划分为多个子块,对宏块
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1