用于系数代码化的上下文推导的制作方法

文档序号:19735828发布日期:2020-01-18 04:27阅读:来源:国知局

技术特征:

1.一种对具有变换系数的变换块进行代码化的方法,所述方法包括:

基于用于代码化上下文的至少一个空间模板来定义寄存器阵列,所述寄存器阵列用于每个保存用于确定所述代码化上下文的一个或多个存储值,其中,所述寄存器阵列至少包括具有第一大小的第一寄存器阵列和具有与所述第一大小不同的第二大小的第二寄存器阵列;

通过将所述存储值设置为默认值来初始化所述寄存器阵列;以及

以反向扫描顺序对来自所述变换块的所述变换系数的、指示所述变换系数的幅度的值进行代码化,所述代码化针对一个或多个变换系数中的每一个包括:

使用来自所述寄存器阵列的所述存储值的至少一些来确定所述代码化上下文,

使用所述代码化上下文,对在扫描位置处的所述变换系数的值进行熵代码化,以及

在对所述变换系数的所述值进行熵代码化之后,更新所述寄存器阵列。

2.根据权利要求1所述的方法,其中:

所述寄存器阵列的基数等于一加上所述至少一个空间模板的行或列中的上下文邻居的最大数目;以及

所述寄存器阵列包括:

所述寄存器阵列中的单个寄存器阵列,所述单个寄存器阵列具有足以存储与最大可用变换大小的对角线中的值的数目对应的存储值的数目的阵列大小;以及

所述寄存器阵列中的剩余寄存器阵列,所述剩余寄存器阵列具有足以存储与所述最大可用变换大小的最大尺寸对应的存储值的数目的阵列大小。

3.根据权利要求2所述的方法,其中:

所述寄存器阵列的所述基数是5;

所述单个寄存器阵列具有至少存储63个值的阵列大小;以及

所述寄存器阵列中的所述剩余寄存器阵列每个具有存储32个值的阵列大小。

4.根据权利要求1至3中任一项所述的方法,所述方法还包括:

基于用于所述变换块的变换类型来选择所述代码化上下文的所述至少一个空间模板,其中,所述至少一个空间模板包括用于所述扫描位置处的第一值的第一空间模板和用于所述扫描位置处的第二值的第二空间模板,所述第一值指示所述变换块的当前变换系数的幅度,所述第二值指示所述当前变换系统的所述幅度,所述第一空间模板与所述第二空间模板不同,并且其中:

对所述变换系数的所述值进行熵代码化包括对所述第一值进行熵代码化和对所述第二值进行熵代码化,其中,对所述第一值进行熵代码化使用与对所述第二值进行熵代码化不同的代码化上下文。

5.根据权利要求4所述的方法,其中,所述第一值小于或等于所述幅度的第一最大值,且所述第二值小于或等于第二最大值,所述第一最大值小于所述第二最大值。

6.根据权利要求1至5中任一项所述的方法,其中,所述寄存器阵列与所述至少一个空间模板的几何布置对应,使得来自所述寄存器阵列的所述存储值每个与来自所述至少一个空间模板的相应位置对应。

7.根据权利要求1至6中任一项所述的方法,其中,所述寄存器阵列包括寄存器阵列集合,并且确定所述代码化上下文包括:使用所述组寄存器阵列来确定两个代码化上下文,所述两个代码化上下文中的每一个用于对所述扫描位置处的所述变换系数的相应值进行熵代码化。

8.根据权利要求1至7中任一项所述的方法,其中,更新所述寄存器阵列包括:将一个或多个存储值移位一个阵列位置。

9.根据权利要求8所述的方法,其中,将一个或多个存储值移位一个阵列位置包括:将所述一个或多个存储值在所述寄存器阵列中的单个寄存器阵列内移位一个阵列位置。

10.根据权利要求8所述的方法,其中,将一个或多个存储值移位一个阵列位置包括:将所述一个或多个存储值从第一寄存器阵列内的索引处的阵列位置移位至第二寄存器阵列内的公共索引处的阵列位置。

11.一种用于对具有变换系数的变换块进行代码化的设备,所述设备包括:

存储器;以及

处理器,所述处理器配置为执行存储在所述存储器中的指令,所述指令用于:

基于用于代码化上下文的至少一个空间模板来定义寄存器阵列,所述寄存器阵列用于每个保存用于确定所述代码化上下文的一个或多个存储值,其中,所述寄存器阵列至少包括具有第一大小的第一寄存器阵列和具有与所述第一大小不同的第二大小的第二寄存器阵列;

通过将所述存储值设置为默认值来初始化所述寄存器阵列;以及

以反向扫描顺序对来自所述变换块的所述变换系数的、指示所述变换系数的幅度的值进行代码化,其中,用于代码化的所述指令针对一个或多个变换系数中的每一个包括用于执行以下操作的指令:

使用来自所述寄存器阵列的所述存储值的至少一些来确定所述代码化上下文,

使用所述代码化上下文,对在扫描位置处的所述变换系数的值进行熵代码化,以及

在对所述变换系数的所述值进行熵代码化之后,更新所述寄存器阵列。

12.根据权利要求11所述的设备,其中,用于更新所述寄存器阵列的指令包括将所述寄存器阵列中的一个或多个存储值设置为等于所述变换系数的所述值。

13.根据权利要求11或12所述的设备,其中,用于对所述值进行熵代码化的所述指令包括用于执行以下操作的指令:

对指示所述变换系数的幅度的第一值进行熵代码化,所述第一值属于正整数集合{0,…,第一最大值},以及

对指示所述变换系数的所述幅度的第二值进行熵代码化,所述第二值属于正整数集合{0,…,第二最大值},并且所述第二最大值大于所述第一最大值,以及

其中,用于更新所述寄存器阵列中的所述存储值的至少一些的指令包括:

当所述第一值小于所述第一最大值时,将所述寄存器阵列中的一个或多个值设置为等于所述第一值,否则将所述寄存器阵列中的所述一个或多个值设置为等于所述第一值和所述第二值之和。

14.根据权利要求11至13中任一项所述的设备,其中,用于使用来自所述寄存器阵列的所述存储值的至少一些来确定所述代码化上下文的所述指令包括用于执行以下操作的指令:

基于用于所述变换块的变换类型,使用所述扫描位置的列和行中的至少一个来确定所述寄存器阵列中的每一个的相应索引;以及

使用所述寄存器阵列的相应索引,从所述寄存器阵列中的每一个选择存储值以确定所述代码化上下文。

15.根据权利要求14所述的设备,其中,用于使用来自所述寄存器阵列的所述存储值的至少一些来确定所述代码化上下文的所述指令包括用于执行以下操作的指令:

对从所述寄存器阵列中的每一个中选择的存储值进行求和,以生成第一幅度值,其中,在求和时将每个选择的存储值限制到第一最大值;

归一化所述第一幅度值;

使用所归一化的第一幅度值来确定用于对所述变换系数的第一值进行熵代码化的第一代码化上下文,所述第一值指示不大于所述第一最大值的所述变换系数的幅度;

对从少于所有所述寄存器阵列中选择的存储值进行求和,以生成第二幅度值;

归一化所述第二幅度值;以及

使用所归一化的第二幅度值来确定用于对所述变换系数的第二值进行熵代码化的第二代码化上下文,所述第二值指示达到第二最大值的所述变换系数的所述幅度。

16.一种用于对具有变换系数的变换块进行代码化的设备,所述设备包括:

存储器;以及

处理器,所述处理器配置为执行存储在所述存储器中的指令,所述指令用于:

基于用于代码化上下文的至少一个空间模板来定义寄存器阵列,所述寄存器阵列用于每个保存用于确定所述代码化上下文的一个或多个存储值;

通过将所述存储值设置为默认值来初始化所述寄存器阵列;以及

以反向扫描顺序对所述变换块的所述变换系数的、指示所述变换系数的幅度的值进行代码化,所述代码化包括用于执行以下操作的指令:

使用来自所述寄存器阵列的所述存储值的至少一些来确定第一代码化上下文,

使用所述第一代码化上下文对所述变换系数的第一值进行熵代码化,所述第一值指示所述变换系数的幅度,并且所述第一值属于正整数集合{0,…,第一最大值},

使用来自所述寄存器阵列的所述存储值的至少一些来确定第二代码化上下文,

使用所述第二代码化上下文对所述变换系数的第二值进行熵代码化,所述第二值指示所述变换系数的所述幅度,所述第二值属于正整数集合{0,…,第二最大值},并且所述第二最大值大于所述第一最大值,以及

在对所述第一值和所述第二值进行熵代码化之后,更新所述寄存器阵列。

17.根据权利要求16所述的设备,其中,用于确定所述第一代码化上下文的所述指令包括用于执行以下操作的指令:

对来自所述寄存器阵列中的每一个的相应存储值进行求和以生成第一幅度值,其中,在求和时将每个存储值限制到第一最大值;

归一化所述第一幅度值;以及

使用所归一化的第一幅度值来确定所述第一代码化上下文,并且其中,用于确定所述第一代码化上下文的所述指令包括用于执行以下操作的指令:

对来自少于所有所述寄存器阵列的相应存储值进行求和以生成第二幅度值;

归一化所述第二幅度值;以及

使用所归一化的第二幅度值来确定所述第二代码化上下文。

18.根据权利要求16或17所述的设备,其中:

所述寄存器阵列的基数等于一加上与所述至少一个空间模板的最大列数目或最大行数目中的较大数目对应的数目;

所述寄存器阵列包括:

所述寄存器阵列中的单个寄存器阵列,所述单个寄存器阵列具有足以存储与最大可用变换大小的对角线中的值的数目对应的存储值的数目的阵列大小;以及

所述寄存器阵列中的剩余寄存器阵列,所述剩余寄存器阵列具有足以存储与所述最大可用变换大小的最大尺寸对应的存储值的数目的阵列大小。

19.根据权利要求16至18中任一项所述的设备,其中,用于更新所述寄存器阵列的所述指令包括用于执行以下操作的指令:

将一个或多个存储值从第一寄存器阵列内的索引处的阵列位置移位至第二寄存器阵列内的公共索引处的阵列位置;以及

当所述第一值小于所述第一最大值时,将所述寄存器阵列中的一个或多个存储值设置为等于所述第一值,否则将所述寄存器阵列中的所述一个或多个存储值设置为等于所述第一值和所述第二值之和。

20.一种用于对具有变换系数的变换块进行代码化的方法,所述方法包括:

基于用于代码化上下文的至少一个空间模板来定义寄存器阵列,所述寄存器阵列用于每个保存用于确定所述代码化上下文的一个或多个存储值;

通过将所述存储值设置为默认值来初始化所述寄存器阵列;以及

以反向扫描顺序对所述变换块的所述变换系数的、指示所述变换系数的幅度的值进行代码化,所述代码化包括:

使用来自所述寄存器阵列的所述存储值的至少一些来确定第一代码化上下文;

使用所述第一代码化上下文对所述变换系数的第一值进行熵代码化,所述第一值指示所述变换系数的幅度,并且所述第一值属于正整数集合{0,…,第一最大值};

使用来自所述寄存器阵列的所述存储值的至少一些来确定第二代码化上下文;

使用所述第二代码化上下文对所述变换系数的第二值进行熵代码化,所述第二值指示所述变换系数的所述幅度,所述第二值属于正整数集合{0,…,第二最大值},并且所述第二最大值大于所述第一最大值,以及

在对所述第一值和所述第二值进行熵代码化之后,更新所述寄存器阵列。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1