首页> 中国专利> 算术编码器、算术解码器、视频编码器、视频解码器、编码方法、解码方法和计算机程序

算术编码器、算术解码器、视频编码器、视频解码器、编码方法、解码方法和计算机程序

摘要

一种用于对具有符号值的多个符号进行编码的算术编码器,被配置为基于多个状态变量值来导出用于一个或多个要编码的符号值的算术编码的区间大小信息,所述多个状态变量值表示具有不同适应时间常数的多个先前编码的符号值的统计。所述算术编码器被配置为使用查找表来映射第一状态变量值或其缩放和/或舍入版本,并且使用所述查找表来映射第二状态变量值或其缩放和/或舍入版本,以便获得描述用于一个或多个要编码的符号的算术编码的区间大小的所述区间大小信息。也公开了基于相同概念和其他概念的另外的算术编码器、算术解码器、视频编码器、视频解码器、编码方法、解码方法和计算机程序。

著录项

说明书

技术领域

根据本发明的实施例创建了算术编码器。

根据本发明的另外实施例创建了算术解码器。

根据本发明的另外实施例创建了视频编码器。

根据本发明的另外实施例创建了视频解码器。

根据本发明的另外实施例创建了用于对多个符号进行编码的方法和用于对多个符号进行解码的方法。

根据本发明的另外实施例创建了对应的计算机程序。

一般而言,根据本发明的实施例使用有限状态机来创建上下文模型更新方法。

背景技术

算术编码和解码被证明为对音频和视频内容的编码和解码以及对其他类型的信息(比如,图片、神经网络系数等)的编码的宝贵工具。本发明的实施例可以用于所有的这些应用。例如,可以利用二进制值(例如,符号)在表示视频或音频内容(或者,其他类型的内容)的二进制序列中的已知出现概率来提高编码效率。具体地,算术编码可以以有效的方式处理“0”和“1”的变化概率,并且可以以微调的方式适应该概率的改变。

然而,为了使算术编码和解码带来最佳的编码效率,重要的是,要有关于“0”和“1”的概率的良好信息,该信息良好地反映实际出现频率。

为了适应于“0”和“1”的概率(或通常,适应于要编码的符号的概率),通常使用一种概念来调整值的总(当前)范围内的区间的边界,以获得区间细分(例如,使得值的整个范围被细分为与不同的二进制值或二进制值的组相关联的区间)。

换言之,关于不同符号(比如,“0”和“1”)的概率的信息用于导出区间大小信息(或等效地,区间大小值),该区间大小信息描述了与符号相关联的区间的宽度(其中,总区间宽度例如可以由于区间重新归一化而取决于编码或解码过程随时间而变化)。

因此,需要用于确定用于区间细分(例如,用于总编码区间的细分)的源统计值(例如,状态变量值)和/或范围值(比如,区间大小值)的概念,该概念在计算效率与可靠性之间提供良好平衡。

发明内容

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行编码的算术编码器,其中,该算术编码器被配置为基于多个状态变量值(s

根据本发明的该实施例基于如下思想:如果基于查找表的映射被应用于与不同适应时间常数相关联的状态变量值,则可以在尤其良好的可靠性下获得区间大小信息。换言之,通过将同一查找表应用于描述对不同时间尺度的统计(例如,符号概率)的两个状态变量值,可以以有效方式(因为仅需要一个查找表)但在良好可靠性的情况下(因为在确定区间大小信息时考虑随不同时间尺度的统计)获得区间大小信息。使用查找表的状态变量值的映射可以被视为基于状态变量值来导出区间大小信息的重要且直接的步骤。可选地,一个或多个附加映射和/或映射结果的组合可以在导出区间大小信息时遵循第一状态变量值和第二状态变量值的基于查找表的映射。可选地,可以使用第一状态变量值和第二状态变量值的基于查找表的映射来获得概率值作为中间量。此外,用于从第一状态变量值的基于查找表的映射的结果和从第二状态变量值的基于查找表的映射的结果导出区间大小信息的不同概念是可能的。

总之,根据本发明的该实施例提供基于使用(至少)两个基于查找表的映射的第一状态变量值和第二状态变量值来导出区间大小信息。因此,可以单独地映射与不同适应时间常数相关联的状态变量值,但是使用同一映射规则(由查找表定义),这使得用于确定区间大小信息的资源需求相当地小但仍允许考虑(例如,加权考虑)通过不同适应时间常数或统计计算时间常数获得的多个先前处理(例如,编码或解码)的符号的统计(或者,关于其的统计信息)。

在优选实施例中,该算术编码器被配置为使用查找表将第一状态变量值或其缩放和/或舍入版本

使用这样的概念,可以基于第一状态变量值并基于第二状态变量值较容易地导出描述符号概率(例如,符号“1”的概率或符号“0”的概率)的组合概率值。例如,在具有第一灵活性的先前处理(例如,编码或解码)的符号之后的第一状态变量值可以映射到第一概率值上,并且在具有第二灵活性的先前处理(例如,编码或解码)的符号之后的第二状态变量值可以有效地映射到第二概率值上。因此,可以考虑在不同时间尺度上出现的先前处理的符号的趋势,并且仍可以以极有效方式导出组合概率值。第一状态变量值和第二状态变量值允许追踪具有不同适应时间常数的先前处理的符号的趋势,并且可以使用上述概念以资源极高效的方式进行状态变量值到对组合概率值有贡献的“部分”概率值(第一概率值和第二概率值)上的映射。

在优选实施例中,该算术编码器被配置为如果要编码的符号取第一值(例如,“1”),则将该状态变量值改变为第一方向(例如,变得更加正向),并且如果要编码的符号取与第一值不同的第二值(例如,“0”),则将该状态变量值改变为第二方向(例如,变得更加负向)(例如,使得该状态变量值可以取正值和负值),其中,该算术编码器被配置为依据各个状态变量值的绝对值(如果s

通过使用例如可以取负值和正值的状态变量值(例如,取决于先前处理的符号的历史,并且例如,以针对相反的先前处理的符号的对称方式),并且通过依据各个状态变量值的绝对值而选择查找表的条目,从而甚至可以改善概念的效率。例如,不再有必要具有用于状态变量值的每个可能值(或者,量化值)的查找表的专用条目。相反,可以将查找表的条目双重用于正状态变量值和用于对应的负状态变量值(即,用于具有相等绝对值但相反符号的“反向”状态变量值)二者。因此,查找表的条目的数量可以保持较小,并且可以利用关于相反的先前处理的符号的区间大小信息的确定的“对称性”。

在优选实施例中,该算术编码器被配置为如果第一状态变量值取第一符号(例如,正号),则将第一概率值(p

使用这样的机制,查找表的条目的数量可以保持较小(例如,因为仅基于各个状态变量值的绝对值来选择查找表的条目),同时仍可以获得用于各个状态变量值的相反符号的“互补”概率值。因此,针对确定概率值实现较高程度的资源效率和低计算复杂度。

在优选实施例中,该算术编码器被配置为根据下式来确定两个或更多个概率值p

其中,LUT1是包含概率值的查找表;其中,

已发现,这样的计算在计算上有效且使资源需求保持相当地小。

在优选实施例中,该算术编码器被配置为根据下式来确定两个或更多个概率值p

其中,LUT1是包含概率值的查找表;其中,

已发现,取决于实际数字表示,这样的计算在一些状况下是有利的。具体地,向下舍入算子被应用于相同运算数,而不管状态变量值的符号。具体地,没有必要去除向下舍入算子的运算数的符号,这会省去一些计算复杂度。相反,取负(negation)仅应用于向下舍入算子的结果,这通常是整数值。因此,应用取负算子的复杂性尤其小。换言之,如本文中所描述的概念也带来尤其低的复杂性。

在优选实施例中,该算术编码器被配置为根据下式来基于多个概率值p

其中,N为所考虑的概率值的数量(并且可以等于所考虑的状态变量值的数量);以及其中,b

通过将不同加权应用于基于不同状态变量值而获得的概率值,可以考虑短期统计和长期统计对组合概率值的不同影响,并且可以获得尤其有意义的组合概率值。

在优选实施例中,该算术编码器被配置为使用二维查找表将第一状态变量值或其缩放和/或舍入版本

通过使用这样的反映多个不同概率值与多个不同区间大小值的乘法的二维查找表,可以降低计算复杂度,这是由于可以省去乘法运算。例如,两个索引(行索引和列索引)中的标示二维查找表的条目的一个索引是由各个状态变量值(或者,其缩放和/或舍入版本)定义,并且第二索引由当前(总)编码区间大小确定。因此,基于第一索引和第二索引,可以唯一地识别二维查找表的元素(条目),并且识别的元素通常反映与各个状态变量值相关联的概率值和与第二表索引相关联的编码区间大小的乘积。因此,通过为二维查找表花费一些存储器(这些存储器在一些情况下可以是只读存储器),可以省去执行乘法运算,这就计算资源而言并就能量消耗而言可以是有利的。

在该算术编码器的优选实施例中,二维查找表可表示为如下二者之间的二元乘积:第一一维向量(形成一维查找表)和第二一维向量(Qr

通过使用这样的三维查找表,可以由该表反映不同对的概率值与编码区间大小之间的乘法运算。因此,通过选择二维查找表的适当元素,可以省去执行乘法运算。此外,可以使用这样的方法以极简单方式获得二维查找表的条目。

在该算术编码器的优选实施例中,二维查找表(RangTabLPS)的元素是基于基本查找表(Base TabLPS)而定义的,其中,二维查找表的第一组元素(或者,块;例如,“上半部分”)与基本查找表的元素相同或是基本查找表的元素的舍入版本,并且其中,二维查找表的第二组元素(或者,块;例如,“下半部分”)是基本查找表的元素的缩放和舍入版本。

通过使用这样的方法,可以获得二维查找表的元素的近似索引增加或衰减。例如,通过定义二维查找表的元素,使得二维查找表的第二组元素实质上(例如,除了由舍入引起的偏差以外)是二维查找表的第一组元素的元素的缩放版本,可以获得高度一致的二维查找表。并且,应注意的是,可以容易地使用这样的方法来获得二维查找表的元素。

在该算术编码器的优选实施例中,二维查找表的第二组元素是基本查找表的元素的右移版本。

通过使用这样的方法,二维查找表的元素可以以尤其有效方式获得,这是由于可以极容易地执行右移运算。而且,右移运算引起适当缩放且也可以以极有效方式执行舍入运算。

在该算术编码器的优选实施例中,概率索引(Qp2(p

通过使用这样的概念,可以取决于概率索引来区分应使用第一组元素的元素还是第二组元素的元素,该概率索引例如可以基于各个状态变量值。例如,概率索引(例如可以由最小可能的符号的概率或由整数索引值定义)例如可以使用映射来基于各个状态变量值导出。例如,使用第一状态变量值的映射而获得的第一概率值或使用第二状态变量值的映射而获得的第二概率值可以用于确定应评估二维查找表的哪个元素(并且具体地,确定是评估二维查找表的第一组元素的元素还是二维查找表的第二组元素的元素)。

并且,使用该概念,可以基于基本查找表“在操作中”来确定二维查找表的各个元素,该基本查找表的元素的数量小于表元素的数量,该表元素可以通过概率索引和编码区间大小索引来寻址。

在该算术编码器的优选实施例中,概率索引(i)与第一大小值(例如,μ;其中,该大小值例如描述基本查找表在第一方向上的扩展)之间的除法的除法残差(i%μ)和区间大小索引(例如可以例如使用量化运算Qr2(.)(例如,j)来基于区间大小信息R获得;)确定基本查找表的哪个元素用于获得二维查找表的元素。

通过使用该概念,可以选择基本查找表的适当元素,尽管基本查找表在第一方向上的扩展小于可能的概率索引值的数量。通过评估概率索引与第一大小值(可以描述基本查找表在第一方向上的扩展)之间的除法的除法残差,基本查找表的元素可以重复用于两个或更多个不同概率索引值(例如可以相差第一大小值)。因此,例如在使用不同缩放的情况下,基本查找表的条目可以用于相差第一大小值的两个概率索引值两次。因此,可以利用二维查找表来通常描述概率索引值的演进,其中,在与概率索引值的第一范围内的演进相比时,概率索引值的第二范围内的演进是缩放版本(例如,接受舍入作用)。

在优选实施例中,该算术编码器被配置为根据下式来获得二维查找表(RangTabLPS)的元素:

其中,BaseTabLPS是尺寸为μ×λ的基本查找表;其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息(例如,描述当前编码区间大小)相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,Scal(x,y)是缩放函数(例如,被定义为

通过使用这样的方法,可以尤其是存储器有效的方式获得可以由缩放函数或缩放运算的结果定义的区间大小信息。例如,“BaseTabLPS”查找表可以尤其小,这是由于其第一尺寸μ通常小于与概率信息相关联的表索引i的值的范围,并且由于其第二尺寸λ可以等于由区间大小信息描述的可能的不同区间大小的数量。此外,缩放函数可以以尤其有效方式实现,这是由于由i和μ的商的向下舍入运算定义的不同缩放因子的数量相对较小。例如,如果i与μ之间的除法的范围在0与小于2的最大值之间,则可以仅执行两个不同缩放运算。例如,可以仅存在两个、三个或四个不同缩放选项(取决于i与μ之间的商),并且可以使用具有仅若干预定值的乘法或甚至仅仅使用移位运算有效地实现这些缩放选项。

在该算术编码器的优选实施例中,基于概率表(probTabLPS)来定义二维查找表(RangTabLPS)的元素,其中,概率表描述用于一组多个概率值(例如,由索引i表示)和用于给定(参考)编码区间大小的区间大小,并且其中,使用缩放来从该概率表中导出用于不在该组多个概率值中的概率值和/或用于与该给定编码区间大小不同的编码区间大小的二维查找表的元素。

使用这样的方法,可以利用不同区间大小经常通过缩放而彼此相关,这取决于相关联概率值之间的差和/或取决于相关联编码区间大小之间的差。换言之,如果二维查找表不包括拟合当前所考虑的概率值和/或当前所考虑的编码区间大小的元素,则仍可以获得适当区间大小,其中,相应地缩放二维查找表的另一元素(例如,取决于当前所考虑的概率值和/或取决于当前所考虑的编码区间大小)。

在该算术编码器的优选实施例中,使用取决于编码区间大小(R)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放和使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在该组概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的第一缩放的结果的第二缩放来获得二维查找表的元素。

因此,可以“在操作中”使用概率表的适当条目并使用适当缩放来获得二维查找表的元素,其中,评估的“概率表”通常明显小于二维查找表。换言之,基于寻址二维查找表的元素的两个索引,选择概率表的适当元素并对其进行缩放。然而,在许多情形下,这样的概念在存储器需求与计算复杂度之间提供了改进的平衡。

在该算术编码器的优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差(i%μ)确定在第一缩放中对概率表的哪个元素进行缩放;和/或概率索引(i)与第一大小值之间的除法的整数除法结果

使用这样的概念,可以使用仅表示概率索引和编码区间大小索引的二维栅格的(相对较小)部分中的区间大小的小概率表,这可以节省存储器空间。接着可以通过概率表的元素的上述选择并还通过概率表的所选元素的上述二次缩放来获得适当区间大小信息。

在优选实施例中,该算术编码器被配置为根据下式来获得二维查找表的元素RangeTabLPS[i][j]:

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,I的值的范围通常大于μ);其中,R是区间大小(或者,当前编码区间大小);其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

通过使用用于获得二维查找表的适当元素的这样的概念,可以获得存储器要求与计算复杂度之间的极好平衡,该适当元素可以表示区间大小信息或其可以等于区间大小信息。表“probTabLPS”例如可以是一维表,其中,所述表的元素的数量可以小于表索引i的不同可能值的数量。然而,通过对概率表probTabLPS的所选元素和取决于区间大小R的缩放因子Qr2(R)的乘积进行缩放,可以达成良好准确度且可以使得可能的舍入误差相当地小。此外,由于对通过“向下舍入”算子而获得的整数值进行缩放,因此可以使用有效缩放概念,该有效缩放概念可以例如通过整数乘法或整数除法或比特移位运算来定义。因此,计算负荷非常小。

在优选实施例中,该算术编码器被配置为根据下式来获得二维查找表的元素RangeTabLPS[i][j]:

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,I的值的范围通常大于μ);其中,R是区间大小(或者,当前编码区间大小);其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

用于获得区间大小信息的该方法也尤其有效,并且已发现会带来用于区间大小信息的高质量结果(作为第一缩放和第二缩放的结果而获得)。

在该算术编码器的优选实施例中,其中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差

通过取决于上述除法残差而选择概率表(可以是一维概率表)的元素,可以利用除了缩放以外,区间大小在概率索引的不同范围内实质上相似的事实。因此,概率表仅反映概率索引的单一范围内的值,并且使用第一缩放来获得用于概率索引的其他范围的区间大小值。第二缩放使得由概率表表示的值或使用第一缩放基于概率表获得的值适应于编码区间大小,以便进而获得适当区间大小信息。

因此,可以获得存储器消耗、计算复杂度与准确度之间的良好平衡,其中,例如如果适当地选择第一大小值(例如,为二的效能),则可以以在计算上极简单的方式获得除法残差和整数除法结果。

在优选实施例中,该算术编码器被配置为根据下式来获得二维查找表的元素RangeTabLPS[i][j]:

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中/是除法运算(例如,提供整数结果);其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,I的值的范围通常大于μ);其中,R是区间大小;其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

该计算规则以极有效方式实现之前所提及的概念。

在该算术编码器的优选实施例中,二维查找表可表示为如下二者之间的二元乘积:第一一维向量(形成一维查找表)以及第二一维向量(Qr

这样的二维查找表可很好地用于基于状态变量值和基于编码区间大小信息来有效导出区间大小信息。二维查找表内的查找对应于状态变量值到概率值上的映射并也对应于所获得的概率值与编码区间大小的乘法。因此,可以容易地获得可以等于二维查找表的所选条目的区间大小信息,其中,可以取决于各个状态变量值并取决于编码区间大小信息而选择二维查找表的各个元素(其中,各个状态变量值可以确定二维查找表的元素的第一索引,并且其中,编码区间大小信息可以确定第二索引)。

在优选实施例中,该算术编码器被配置为:根据第一状态变量值和第二状态变量值或其缩放和/或舍入版本

已发现,在某一状况下使用这样的方法也极有效。通过仅基于第一状态值(而不考虑第二状态值)来导出第一子区间宽度值并通过仅基于第二状态变量值(而不考虑第一状态变量值)来计算第二子区间宽度值,使用不同适应时间常数而获得的状态变量值的实质上的单独处理是通过大部分处理来维持的。仅在最后阶段,组合第一子区间宽度值和第二子区间宽度值,以获得带来高精确度且避免降级的组合的子区间宽度值,在一些状况下,如果第一状态变量值和第二状态变量值过早地组合,则会出现降级。

在优选实施例中,该算术编码器被配置为通过将逻辑右移应用于编码区间大小信息来执行对编码区间大小信息进行量化。

该概念尤其易于实现,这是由于逻辑右移仅需要最少的计算资源。

在优选实施例中,该算术编码器被配置为通过

已发现,也可以极易于实现这样的量化。具体地,如果参数u,v和u,v and W被选择为整数值(或者,大于1的整数值),则计算工作极少。

在该算术编码器的优选实施例中,所述一维查找表的所述条目随着所述第一状态变量值和所述第二状态变量值或其所述缩放和/或舍入版本

使用一维查找表的单调减少的条目已示出带来了用于区间大小信息的良好结果。

在该算术解码器的优选实施例中,其中,用于第一状态变量值和第二状态变量值或其所述缩放和/或舍入版本

使用值区间的这样的相等大小设计允许简单量化。此外,值区间的相等大小设计允许在操作中以中等工作量确定查找表的元素。

在该算术编码器的优选实施例中,其中,用于第一状态变量值和第二状态变量值或其缩放和/或取舍版本

使用一维查找表的条目的这样的单调减少,可以以良好准确度表示指数衰减。

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行编码的算术编码器,其中,该算术编码器被配置为基于多个状态变量值(s

根据本发明的该实施例基于如下思想:如果在使用查找表来执行映射之前确定组合状态变量值,则获得确定区间大小信息的高效率。因此,不再有必要使用两个(或者,更多个)状态变量值来执行单独的查找表查找。相反,单一表查找可以足以确定区间大小信息。具体地,已发现,在执行查找表查找之前的第一状态变量值和第二状态变量值的组合在许多状况下严重地降低了区间大小信息的质量。

在优选实施例中,该算术编码器被配置为确定状态变量值的加权和,以便获得组合状态变量值。

已发现,计算状态变量值的加权和是确定组合状态变量值的有效方式,并且也很好地适合于考虑两个状态变量值的不同相关性,该不同相关性是由在导出状态变量值时所使用的不同适应时间常数引起的。

在优选实施例中,该算术编码器被配置为确定舍入值

已发现,在执行求和之前执行缩放值的舍入带来了尤其有意义的结果。状态变量值之一的可忽略的贡献通过舍入来消除且不影响组合状态变量值。因此,可以获得高度可靠的结果,并且组合状态变量值通常舍入数值,该整数值很好地适合于充当用于选择查找表的元素的索引。

在优选实施例中,该算术编码器被配置为根据下式来确定组合状态变量值s

其中,s

其中

用于导出组合状态变量值的该概念带来了极有意义的组合状态变量值,如之前所解释的。

在优选实施例中,该算术编码器被配置为如果要编码的符号取第一值(例如,“1”),则将该状态变量值改变为第一方向(例如,变得更加正向),并且如果要编码的符号取与第一值不同的第二值(例如,“0”),则将该状态变量值改变为第二方向(例如,变得更加负向)(例如,使得该状态变量值可以取正值和负值),并且其中,该算术编码器被配置为依据组合状态变量值的绝对值(如果s

用于确定状态变量值(例如,用于确定第一状态变量值和用于确定第二状态变量值)的该概念如使用第一状态变量值和第二状态变量值的单独映射的情况下一样,会带来相同优点。

在优选实施例中,该算术编码器被配置为如果组合状态变量值取第一符号(例如,正号),则将概率值(p

用于将组合状态变量值映射到概率值上的该概念是有效的,这是由于可以缩减查找表的大小。具体地,可以缩减查找表的元素的数量,这是由于查找表的同一元素是与给定正组合状态变量值和给定(正)组合状态变量值的负版本相关联。换言之,在给定概念中,组合状态变量值的绝对值确定评估查找表的哪个元素以提供概率值。

然而,通过取决于符号而将概率值设置为由查找表提供的值或为通过从预定值中减去由查找表提供的值而获得的值仍以适当且有效的方式考虑组合状态变量值的符号。因此,可以基于组合状态值以低计算复杂度获得有意义的概率值。

在优选实施例中,该算术编码器被配置为根据下式来确定组合概率值p

其中,LUT2是包含概率值的查找表;其中,

基于组合状态变量值s

在优选实施例中,该算术编码器被配置为根据下式来确定组合概率值p

其中,LUT2是包含概率值的查找表;其中,

在该概念中,不存在缩放的组合状态变量值s

在优选实施例中,该算术编码器被配置为使用二维查找表将组合状态变量值或其缩放和/或舍入版本

使用该概念,组合状态变量值到组合概率值上的映射和组合概率值与编码区间大小的乘法可以组合为单一查找表查找运算。因此,需要二维查找表,但是省去了乘法运算。可以预计算二维查找表的条目,从而使运行时间的组合负载保持极低。相反,第一表索引可以基于组合状态变量值或其缩放和/或舍入版本来确定,并且第二表索引可以基于编码区间大小信息(例如,使用舍入或量化)来确定。第一步骤索引和第二状态索引可以唯一地标示二维查找表的元素,并且二维查找表的标示元素可以用作子区间宽度值(或者,用作区间大小信息)。因此,获得极有效概念,从而在用于查找表的充足存储器可用的情况下省去计算复杂度。

在该算术编码器的优选实施例中,二维查找表可表示为如下二者之间的二元乘积:第一一维向量(LUT4[...];形成一维查找表)以及第二一维向量(Qr

这样的二维查找表带来极好的结果。具体地,该二维查找表的所有元素表示与组合状态变量值相关联的各个概率值和编码区间大小的乘法。因此,本文中所描述的二维查找表消除了对乘法的需求,这可以被视为极具资源效率。

在该算术编码器的优选实施例中,二维查找表(RangTabLPS)的元素是基于基本查找表(Base TabLPS)定义的,其中,二维查找表的第一组元素(或者,块;例如,“上半部分”)与基本查找表的元素相同或是基本查找表的元素的舍入版本,并且其中,二维查找表的第二组元素(或者,块;例如,“下半部分”)是基本查找表的元素的缩放和舍入版本。

通过基于基本查找表来定义二维查找表的元素,可以以极简单方式生成二维查找表。此外,由于二维查找表的第二组元素是基本查找表的元素的缩放和舍入版本(同时二维查找表的第一组元素的元素与基本查找表的元素相同或是基本查找表的元素的舍入版本),因此很好地反映了二维查找表的行或列中的元素的指数演进。通过使用二维查找表的元素的第二块实质上是(除了舍入作用以外)二维查找表的元素的第一块的缩放版本的概念,可以反映用于将组合状态变量值映射到区间大小信息上的适当特性。

在该算术编码器的优选实施例中,二维查找表的第二组元素是基本查找表的元素的右移版本。

这允许二维查找表的条目(元素)的简单生成。

已发现,基本查找表的右移元素是组合缩放和舍入运算的极有效概念。

在该算术编码器的优选实施例中,概率索引(Qp2(p

通过使用概率索引,可以极有效地选择二维查找表的元素,该概率索引可以根据组合状态变量值直接导出(在不使用概率值作为中间量的情况下)或可以使用基于组合状态变量值的组合概率值而导出。而且,概率索引用于在使用第一组元素的元素与第二组元素的元素之间切换,这允许在操作中有效确定二维查找表的元素。

在该算术编码器的优选实施例中,概率索引(i)与第一大小值(例如,μ;其中,该大小值例如描述基本查找表在第一方向上的扩展)之间的除法的除法残差(i%μ)和区间大小索引(例如,可以例如使用量化运算Qr2(.)(例如,j)来基于区间大小信息R获得;)确定基本查找表的哪个元素用于获得二维查找表的元素。

在优选实施例中,该算术编码器被配置为根据下式来获得二维查找表(RangTabLPS)的元素:

其中,BaseTabLPS是尺寸为μ×λ的基本查找表;其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息(例如,描述当前编码区间大小)相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,Scal(x,y)是缩放函数(例如,被定义为

通过评估除法残差以确定基本查找表的哪个元素用于获得二维查找表的元素,可以在极高效率的情况下在运作中确定二维查找表的元素。具体地,可以通过使用除法残差来反映二维查找表包括基于基本查找表的相同元素的元素的两个或更多个组的事实,该除法残差用于确定基本查找表的哪个元素用于获得二维查找表的元素。换言之,通过考虑所述除法残差很好地反映二维查找表的元素与基本查找表的元素之间的周期性关系,这是由于除法残差随着概率索引增加也是周期性的。

在该算术编码器的优选实施例中,基于概率表(probTabLPS)来定义二维查找表(RangTabLPS)的元素,其中,概率表描述用于一组多个概率值(例如,由索引i表示)和用于给定(参考)编码区间大小的区间大小,并且其中,使用缩放来从该概率表中导出用于不在该组多个概率值中的概率值和/或用于与该给定编码区间大小不同的编码区间大小的二维查找表的元素。

该概念基于与针对状态变量值的单独映射的情况下所描述的对应的概念相同的考虑。

在该算术编码器的优选实施例中,基于概率表(probTabLPS)来定义二维查找表(RangTabLPS)的元素,其中,概率表描述用于一组多个概率值(例如,由索引i表示)和用于给定(参考)编码区间大小的区间大小,并且其中,使用缩放来从该概率表中导出用于不在该组多个概率值中的概率值和/或用于与该给定编码区间大小不同的编码区间大小的二维查找表的元素。

已发现,二维查找表的元素的在这样的运作中确定包括尤其高的资源效率。此外,应注意的是,上文关于在第一状态变量值和第二状态变量值的单独映射的上下文内使用的对应的算法进行的评述也适用。通过使用通常小于(例如,包括较少元素)二维查找表的概率表作为用于确定二维查找表的元素的基础,可获得极高效率。例如,概率表可以表示不同概率值和不同(量化)编码区间大小在显著范围内的映射,并且可以因此帮助避免除了简单缩放以外的乘法(其中“简单”缩放例如可以使用移位运算来实现)。

使用缩放来从概率表中导出用于不在该组多个概率值的一个或多个概率值和用于与给定编码区间大小不同的一个或多个编码区间大小的二维查找表的元素。因此,有极小概率表已经足够了,该极小概率表例如可以仅包括一个行或一个列。所以,概率表的元素的数量甚至可以小于不同的可能概率值的数量(即,小于二维查找表的不同的可能概率索引的数量)。此外,应注意的是,所述缩放取决于概率值和/或取决于编码区间大小。所述缩放例如可以使用极简单机制来执行,如果适当地选择概率表的大小,则如使用比特移位运算那样来执行。当与具有任意变量运算数(例如与二的效能不同)的“常用”乘法时,基于比特移位运算的这样的“简单”缩放运算需要明显较少的计算资源。

在该算术编码器的优选实施例中,使用取决于编码区间大小(R)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放和使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在该组概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的第一缩放的结果的第二缩放来获得二维查找表的元素。

已发现,二维查找表的元素的这种计算尤其有效。此外,也参考了上文对在第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能性的讨论。

在该算术编码器的优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差(i%μ)确定在第一缩放中对概率表的哪个元素进行缩放;和/或其中,概率索引(i)与第一大小值之间的除法的整数除法结果

关于该功能性,也参考了上文对在第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能性的讨论。

在优选实施例中,该算术编码器被配置为根据下式来获得二维查找表的元素RangeTabLPS[i][j]:

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,I的值的范围通常大于μ);其中,R是区间大小(或者,当前编码区间大小);其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

关于该功能性,也参考了上文对在第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能性的讨论。

在该算术编码器的优选实施例中,使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在该组概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放并使用取决于编码区间大小(R)的第一缩放的结果的第二缩放来获得二维查找表的元素。

关于该功能性,也参考了上文对在第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能性的讨论。

在该算术编码器的优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差

关于该功能性,也参考了上文对第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能性的讨论,其中,使用组合状态变量值或组合概率值代替各个单独状态变量值或各个单独概率值。

在优选实施例中,该算术编码器被配置为根据下式来获得二维查找表的元素RangeTabLPS[i][j]:

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中/是除法运算(例如,提供整数结果);其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,I的值的范围通常大于μ);其中,R是区间大小;其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

关于该功能性,也参考了上文对第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能的讨论,其中,组合状态变量值代替各个状态变量值,并且其中,组合概率值代替各个概率值。

在优选实施例中,该算术编码器被配置为:根据组合状态变量值或其缩放和/或舍入版本

关于该功能性,也参考了上文对第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能的讨论,其中,组合状态变量值代替各个状态变量值,并且其中,组合概率值代替各个概率值。

在优选实施例中,该算术编码器被配置为通过将逻辑右移应用于编码区间大小信息来执行对编码区间大小信息进行量化。

关于该功能性,也参考了上文对在第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能性的讨论。

在优选实施例中,该算术编码器被配置为通过

关于该功能性,也参考了上文对在第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能性的讨论。

在该算术编码器的优选实施例中,一维查找表的条目随着组合状态变量值或其缩放和/或舍入版本

关于该功能性,也参考了上文对在第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能性的讨论。

在该算术编码器的优选实施例中,其中,用于组合状态变量值或其缩放和/或舍入版本

关于该功能性,也参考了上文对在第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能性的讨论。

在该算术编码器的优选实施例中,一维查找表的条目随着组合状态变量值或其缩放和/或舍入版本

关于该功能性,也参考了上文对在第一状态变量值和第二状态变量值的单独映射的上下文中提供的对应的功能性的讨论。

在该算术编码器的优选实施例中,查找表定义了(例如,在+/-10%或+/-20%的公差内的)指数衰减(例如,从0.5下降)。

已发现,指数衰减很好地反映了基于状态变量值来导出区间大小信息的适当关系。而且,可以使用查找表极有效地表示指数衰减,其中,即使在操作中确定查找表的元素在较少工作量下也是可能的。

在优选实施例中,该算术编码器被配置为根据下式来更新多个变量状态值

其中,z是预定(常数)偏移值;其中,

已发现,可以以较高计算效率进行状态变量的这样的更新,其中,可以预计算映射表。例如,可以实现状态变量值

在优选实施例中,该算术编码器被配置为通过表查找或以计算方式导出

因此,不同概念可以导出更新状态变量值。

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行编码的算术编码器,其中,该算术编码器被配置为确定一个或多个状态变量值(s1k,s2k),该一个或多个状态变量值表示多个先前编码的符号值(例如,二进制值0和1的序列)的统计(例如,在多个状态变量值的情况下,为具有不同适应时间常数的统计),并且其中,该算术编码器被配置为基于一个或多个状态变量值(s

根据本发明的该实施例基于如下发现:可以使用查找表以尤其良好的结果来执行用于导出用于算术编码(例如,编码或解码)的区间大小信息的状态变量值的更新,这是因为使用查找表允许状态变量值的更新,状态变量值的更新尤其很好地适应于要编码或要解码的信号的特性。例如,可以容易地使用查找表来表示“旧”状态变量值与更新状态变量值之间的微调关系,同时不需要执行详尽的计算(如例如,对三角函数或指数函数或对数函数等的评估)。因此,使用查找表来实现状态变量值的更新有助于使计算复杂度保持相当小。理想地,除了查找表查找之外,仅使用乘法(或者,简单乘法,例如,比特移位运算)、舍入运算和加法以便基于“旧”状态变量值来获得更新状态变量值。例如,当前处理的符号(例如,要编码的符号或解码的符号)决定对例如基于查找表的映射规则的哪个部分进行评估,以便获得更新状态变量值。

总之,已发现,使用查找表来提供更新状态变量值提供了高灵活性和低计算复杂度二者。

在优选实施例中,该算术编码器被配置为取决于要编码的符号并使用所述查找表(A)(例如,在对要编码的符号进行编码之后)来更新第二状态变量值(s

已发现,使用相同查找表来更新第二状态变量是有利的,该第二状态变量值用于更新第一状态变量值。例如,例如可以使用一个或多个缩放因子来考虑关于第一状态变量值和第二状态变量值的适应时间常数的可能差异,该一个或多个缩放因子例如可以应用于选择查找表的元素和/或用于查找表的所选元素的缩放。总之,即使仅单个查找表用于导出两个或更多个状态变量值,但是两个或更多个状态变量值可以适应于表示处理符号值(即,先前编码的符号值或解码的符号值)的不同统计特性。

在优选实施例中,该算术编码器被配置为使用不同适应时间常数来更新第一状态变量值和第二状态变量值。

通过使用不同适应时间常数来更新第一状态变量值和第二状态变量值,先前处理的符号的不同统计特性可以由状态变量值反映。已发现,表示具有不同适应时间常数的处理符号的统计的状态变量值的可用性非常有助于用于符号的算术编码(编码/解码)的区间大小的准确调整。而且,已发现,状态变量值的基于查找表的更新提供极高可靠性和低计算复杂度。

在优选实施例中,该算术编码器被配置为取决于要编码的符号是取第一值还是与第一值不同的第二值选择性地使先前状态变量值增大或减小使用查找表而确定的值。

通过使用这样的方法,可以以递归方式来适应状态变量值,其中,处理符号(例如,要编码的符号或先前编码的符号或先前解码的符号)确定状态变量值的改变的方向(增加或减少)。另一方面,通过所选的查找表条目来确定适应(即,增加或减少)的大小,其中,可以应用缩放。因此,存在用于更新状态变量值的有效机制,提供了较高程度的灵活性且仍资源极高效。

在优选实施例中,该算术编码器被配置为当与先前状态变量值在要编码的符号取第一值的情况下为正相比,在先前状态变量值为负的情况下将先前状态变量值增加相对较大的值;以及其中,所述算术编码器被配置为当与所述先前状态变量值在要编码的符号取与第一值不同的第二值的情况下为负相比,在所述先前状态变量值为正的情况下将所述先前状态变量值减小相对较大的值(这是例如通过查找表的适当选择来获得的)。

使用这样的方法,可以获得状态变量值以指数方式朝向最大正值发展,并且以指数方式朝向最小值发展。朝向(正)最大值和朝向(负)最小值的该近似可以以近似渐进的方式。换言之,当前状态变量值离(正)最大值越远,则朝向(正)最大值的(增加)步长越大,并且当前状态变量值离(负)最小值越远,则朝向(负)最小值的(减小)步长越大。因此,可以使用该概念来近似指数渐进行为。然而,已发现,该概念非常好地适合于状态变量值的更新。具体地,已发现,这样的方法很好地适合于用于确定状态变量值的“无限冲激响应”方法。

在优选实施例中,该算术编码器被配置为如果要编码的符号取第一值,则取决于预定(例如,固定)偏移值(z)与先前计算的第一状态变量值

使用这样的方法,考虑到当前处理的符号,可以以中等工作量选择查找表的适当条目。先前计算的状态变量值和处理的(编码的或解码的)符号二者确定查找表的条目的选择,并且可以因此确定在与先前计算的状态变量值比较时更新状态变量值增加或减少了多少。例如,偏移值可以确保偏移值与缩放(并且有可能取反,取决于处理符号)的先前计算的状态变量值的总和产生有效的查找表索引,这是由于有效的查找表索引通常是非负的。使用该概念,可以容易地选择适当查找表索引并有效地提供更新状态变量值。

在优选实施例中,该算术编码器被配置为如果要编码的符号取第一值,则取决于预定(例如,固定)偏移值(z)与先前计算的第二状态变量值

用于更新第二状态变量值的该概念与用于更新第一状态变量值的概念实质上相同,其中例如,相同查找表可以被评估为节省存储器资源,并且其中例如,可以使用在与更新第一状态变量值相比时的不同的缩放值,以从而获得修改的状态变量值更新特性。例如,可以通过使用用于确定更新第一状态变量值和更新第二状态变量值的不同的缩放值来获得用于第一状态变量值和用于状态变量值的不同适应时间常数。

在优选实施例中,该算术编码器被配置为在确定当更新第一状态变量值时评估的查找表的条目的索引时应用第一缩放值(m

通过在确定当更新第一状态变量值时评估的查找表的条目的索引时和在确定当更新第二状态变量值时评估的查找表的条目的索引时使用不同的缩放值,可以有效地实现不同适应时间常数,其中,基本状态变量值更新算法和所使用的查找表可以是相同的,并且其中,唯一的显著差异可以是缩放值的选择。这允许实现很大程度上的节省资源。

在优选实施例中,该算术编码器被配置为在更新第一状态变量值时使用第一缩放值(例如,n

通过查找表(例如,所选查找表条目)的评估而返回的值的所描述的不同缩放允许在更新第一状态变量值和第二状态变量值时有效地实现不同适应时间常数。此外,这样的缩放允许使用相同查找表以进行更新第状态变量值和进行更新第二状态变量值,这有助于节省存储器资源。

在优选实施例中,该算术编码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

已发现,用于状态变量值的这样的更新机制可以以高计算效率实现并提供可靠结果。

在优选实施例中,该算术编码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

已发现,用于更新状态变量值的这样的机制可以在一些情形下也是非常有利的。具体地,没有必要使用这样的方法对浮点值进行取反,这在一些实现中在计算上可以是无效的。因此,本发明概念在一些状况下可以带来极佳的资源效率。

在优选实施例中,该算术编码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

已发现,该概念在一些实现环境中也带来了尤其高的计算效率和良好准确度。

在优选实施例中,该算术编码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

已发现,在一些状况下,该概念还带来了计算效率和可靠性方面的优势。

在该算术编码器的优选实施例中,A的条目随着查找表索引增加而单调地减少。

使用这样的方法,可以达成状态变量值朝向最大值或最小值的近似是单调和/或连续和/或渐近的。例如,可以达成远离各个最大值或最小值的状态变量相对快速地朝向最大值或朝向最小值修改,而较接近于各个最大值或最小值的状态变量值相对较慢地朝向最大值或最小值改变。因此,查找表的条目的上述选择允许最大值或最小值的平稳近似,已发现这非常有助于基于一个或多个状态变量值来导出区间大小信息。

在该算术编码器的优选实施例中,A是

已发现,查找表A的这样的选择带来了状态变量值的尤其有利的行为,该状态变量值是使用所述查找表A来更新的。

在该算术编码器的优选实施例中,查找表的最后一个条目(在第一状态变量值实现延伸到最大可允许值的预定值范围时或第一状态变量值超过预定阈值时)等于零。

通过使用查找表的等于0的最后一个条目,可以容易地避免更新状态变量值超过最大值和/或最小值。

在优选实施例中,该算术编码器被配置为将限幅运算应用于更新状态变量值,以使更新且限幅的状态变量值保持在预定值范围内。

使用这样的机制,可以容易地防止状态变量值超过最小值与最大值之间的预定范围。因此,可以确保状态变量值取“合理的”值。

在优选实施例中,该算术编码器被配置为根据下式将限幅运算应用于更新状态变量值

,其中,

已发现,这样的限幅运算可以以高效方式实现并避免了无效的状态变量值。

在优选实施例中,该算术编码器被配置为应用用于不同的上下文模型的不同的缩放值(例如,使得两个不同的上下文模型之间的缩放值中的至少一个不同)。

使用用于不同的上下文模型的不同的缩放值,可以考虑不同的上下文模型的不同统计特性(可以与不同类型的信息和/或不同类型的比特流语法元素相关联)。通过使用用于不同的上下文模型的不同的缩放值,用于状态变量值的更新程序可以容易地适应于不同的上下文模型而不会根本上改变根本算法。因此,可以以非常有效的方式获得适当缩放值。

在优选实施例中,该算术编码器被配置为获得如在以上实施例之一中定义的区间大小信息。

已发现,用于更新状态变量值的概念可以结合用于导出区间大小信息的上述概念很好地使用。

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行编码的算术编码器,其中,该算术编码器被配置为基于一个或多个状态变量值(s

根据本发明的该实施例基于如下思想:该算术编码器中的区间大小值的确定可以使用“基本查找表”来执行通过重新使用所述基本查找表的元素(一次不使用缩放且一次使用缩放),该基本查找表的尺寸小于与给定的当前编码区间大小相关联的不同区间大小值的数量。因此,可以利用用于算术编码(编码/解码)的与状态变量值的不同范围相关联的区间大小值通过缩放(例如,除了一些舍入作用以外)而实质上不同。因此,可以使用相对较小的“基本查找表”,该基本查找表的条目多次用于不同概率索引(其中,该概率索引可以是基于各个状态变量值而导出的)。

总之,在此描述的概念允许基于一个或多个状态变量值高效地确定区间大小值。

在优选实施例中,该算术编码器被配置为确定区间大小值,使得如果概率索引在第二范围内,则确定的区间大小值(R

该概念基于如下思想:右移运算在计算上非常有效,并且如果概率索引在第二范围内,则也提供可靠的区间大小值(同时优选地,如果概率索引在第一范围内,则不将移位运算应用于基本查找表的元素)。因此,针对在第一范围内和在第二范围内的“对应的”概率索引提供的区间大小值主要通过比特移位(除了可能的舍入以外)而不同。这通常对于概率索引值的范围或甚至对于完整的“第一范围”(通常包括多于两个不同值)是成立的。此外,应注意的是,右移运算通常对应于通过2的效能的除法。

在优选实施例中,概率索引(Qp2(p

由于概率索引(或者更具体地,概率索引在第一范围内还是在第二范围内的问题)决定是否应用缩放(并且可选地,舍入)以基于查找表(基本查找表)的元素获得区间大小值,因此算法可以保持非常简单。例如,可以通过概率索引除以预定值或通过概率索引与一个或多个阈值比较很容易地执行概率索引是位于第一范围内还是位于第二范围内的检查。因此,可以基于概率索引容易地决定是否应执行缩放(并且可以选地,舍入)。因此,用于导出区间大小值的概念非常高效。

在该算术编码器的优选实施例中,概率索引(i)与第一大小值(例如,μ;其中,该大小值例如描述基本查找表在第一方向上的扩展)之间的除法的除法残差(i%μ)和区间大小索引(例如,可以例如使用量化运算Qr2(.)来基于区间大小信息或总区间大小信息R获得)确定基本查找表的哪个元素用于获得区间大小值。

通过取决于除法残差并且也取决于区间大小索引而选择基本查找表的条目,可以较容易地评估二维基本查找表,其中,二维基本查找表的元素可以包含与区间大小值的乘法(可以由区间大小索引表示)。因此,可以通过具有二维基本查找表来省去与区间大小值的乘法(其中,除法残差可以用作第一表索引,并且其中,区间大小索引可以充当第二表索引)。此外,使用除法残差作为第一表索引很好地适应于如下事实:基本查找表的元素随着概率索引增加而被循环地选择(因为概率索引的后续范围选择基本查找表的共同范围)。总之,上述实现允许非常简单地存取基本查找表的元素且由于基本查找表的二维性质而有助于避免与区间大小值的乘法。

在优选实施例中,该算术编码器被配置为根据下式来获得所述区间大小值R

其中,BaseTabLPS是尺寸为μ×λ的基本查找表;其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息(例如,总区间大小信息R)相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,Scal(x,y)是缩放函数(例如,被定义为

已发现,用于确定构成区间大小信息的区间大小值的这样的概念在计算上高度有效并允许使用相对较小的基本查找表。具体地,可以避免乘法运算。此外,除法残差运算和除法运算也可以以在计算上非常有效的方式实现,例如,在尺寸μ是2的效能的情况下。因此,用于导出区间大小值的所描述的概念允许在计算上的非常高效的实施。

在优选实施例中,该算术编码器被配置为基于一个或多个状态变量值(s

该概念基于如下思想:与概率值(或者,概率索引)的不同(非重叠)范围相关联的区间大小值实质上通过缩放运算(除了可能的舍入作用以外)相关。也应注意的是,如果适当地选择查找表(概率表)的大小,则缩放运算例如可以以在计算上有效的方式(例如,使用比特移位运算)来实现。因此,可以以较小的计算工作量且也仅使用节省存储器的大小较小的查找表来导出用于算术编码(编码或解码)的区间大小值。

在优选实施例中,该算术编码器被配置为使用取决于(当前)编码区间大小(R)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放和使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在该组多个概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的第一缩放的结果的第二缩放来获得区间大小值。

通过使用二步乘法或缩放,为了获得区间大小信息,允许使用小概率表。例如,概率表可以仅“直接”覆盖单一编码区间大小和概率值的给定的相对较小范围(可以由“该组多个概率值”表示)。因此,对于任何其他的编码区间大小且对于不包括在“直接”被概率表覆盖的该组多个概率值中的任何概率值,执行缩放,使得获得有意义的且可靠的区间大小值。

在该算术编码器的优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差(i%μ)确定在第一缩放中对概率表的哪个元素进行缩放;和/或其中,概率索引(i)与第一大小值之间的除法的整数除法结果

使用除法残差来确定对概率的哪个元素进行缩放有助于利用概率表的条目随着概率索引增加而重复使用(例如,以循环方式)的事实。使用除法残差表现该事实。而且,在一些状况下可以以极高计算效率计算除法残差,尤其在通过2的效能进行除法的情况下。

此外,通过基于整数除法结果来确定缩放因子允许容易地将缩放因子分配给概率索引值的不同(邻近)范围。此外,在一些状况下可以以在计算上高效的方式计算整数除法结果,尤其在通过2的效能(potency)进行除法的情况下。

此外,取决于编码区间大小而确定乘法缩放因子反映了区间大小值随着编码区间大小而缩放的事实。因此,可以以高效率和高准确度获得区间大小值。

在优选实施例中,该算术编码器被配置为根据下式来获得所述区间大小值R

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,i的值的范围通常大于μ);其中,R是区间大小(例如,当前编码区间大小);其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

用于确定区间大小值的这样的算法已被发现在计算上是有效的并提供良好质量的结果。概率表可以相对较小,并且缩放函数可以以在计算上有效的方式例如使用一个或多个比特移位运算来实现。

在优选实施例中,该算术编码器被配置为使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放并使用取决于编码区间大小(R)的第一缩放的结果的第二缩放来获得区间大小信息。

在该概念中,在与上述概念相比时,颠倒了第一缩放和第二缩放的处理顺序。然而,基本考虑保持相同。

在优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差(i%μ)确定在第一缩放中对概率表的哪个元素进行缩放;和/或其中,概率索引(i)与第一大小值之间的除法的整数除法结果

在该概念中,在与上述概念相比时,颠倒了第一缩放和第二缩放的顺序。然而,基本考虑保持不变。

在优选实施例中,该算术编码器被配置为根据下式来获得所述区间大小值R

其中,i是与概率信息相关联的表索引;其中,j是与(当前)区间大小信息相关联的表索引;其中,%是除法残差运算;其中/是除法运算(例如,提供整数结果);其中,probTabLPS[]是所述概率表;其中,μ是概率表中的多个元素(其中,i的取值的范围通常大于μ);其中,R是区间大小(例如,当前编码区间大小);其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

在该概念中,在与上述实现相比时,颠倒了第一缩放和第二缩放的缩放顺序。然而,基本的根本思想保持不变。

以下,将描述与算术解码有关的多个实施例。然而,与算术解码有关的这些思想背后的思想、考虑和细节与用于算术编码的概念背后的思想、考虑和细节实质上相同。因此,以上解释也以类似的方式适用。然而,要编码的符号值对应于要解码的符号值或先前解码的符号,并且先前编码的符号值对应于先前解码的符号值。此外,对于本领域技术人员而言,编码特征与解码特征之间的对应性是显而易见的,并且从权利要求措辞的比较中也是显而易见的。

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的算术解码器,其中,该算术解码器被配置为基于一个或多个状态变量值(s

在优选实施例中,该算术解码器被配置为确定区间大小值,使得如果概率索引在第二范围内,则确定的区间大小值(R

在该算术解码器的优选实施例中,概率索引(Qp2(p

在该算术解码器的优选实施例中,概率索引(i)与第一大小值(例如,μ;其中,该大小值例如描述基本查找表在第一方向上的扩展)之间的除法的除法残差(i%μ)和区间大小索引(例如,可以例如使用量化运算Qr2(.)来基于区间大小信息或总区间大小信息R获得)确定基本查找表的哪个元素用于获得区间大小值。

在优选实施例中,该算术解码器被配置为根据下式来获得所述区间大小值R

其中,BaseTabLPS是尺寸为μ×λ的基本查找表;其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息(例如,总区间大小信息R)相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,Scal(x,y)是缩放函数(例如,被定义为

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的算术解码器,其中,该算术解码器被配置为基于一个或多个状态变量值(s

在优选实施例中,该算术解码器被配置为使用取决于(当前)编码区间大小(R)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放和使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在该组多个概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的第一缩放的结果的第二缩放来获得区间大小值。

在该算术解码器的优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差(i%μ)确定在第一缩放中对概率表的哪个元素进行缩放;和/或其中,概率索引(i)与第一大小值之间的除法的整数除法结果

在优选实施例中,该算术解码器被配置为根据下式来获得所述区间大小值R

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,i的值的范围通常大于μ);其中,R是区间大小(例如,当前编码区间大小);其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

在优选实施例中,该算术解码器被配置为使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放并使用取决于编码区间大小(R)的第一缩放的结果的第二缩放来获得区间大小信息。

在该算术解码器的优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差(i%μ)确定在第一缩放中对概率表的哪个元素进行缩放;和/或其中,概率索引(i)与第一大小值之间的除法的整数除法结果

在优选实施例中,该算术解码器被配置为根据下式来获得所述区间大小值R

其中,i是与概率信息相关联的表索引;其中,j是与(当前)区间大小信息相关联的表索引;其中,%是除法残差运算;

其中/是除法运算(例如,提供整数结果);其中,probTabLPS[]是所述概率表;其中,μ是概率表中的多个元素(其中,i的取值的范围通常大于μ);其中,R是区间大小(例如,当前编码区间大小);其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

以下,将讨论与算术编码有关的一些另外的实施例。

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行编码的算术编码器,其中,该算术编码器被配置为确定一个状态变量值(s

该实施例基于非常简单的一维查找表可以用于基于组合状态变量值来确定子区间宽度值的发现。通过量化的编码区间大小信息并通过确定概率值与量化值(或者,量化等级)之间的乘积来考虑编码区间大小。因此,可以在中等工作量的情况下获得可靠结果。

在优选实施例中,该算术编码器被配置为基于多个状态变量值(s

已发现,使用组合状态变量值作为一个状态变量值带来了尤其良好的结果。对不同适应时间常数的考虑允许考虑短时间统计和长时间统计二者,从而使得子区间宽度值尤其可靠。

在优选实施例中,该算术编码器被配置为确定状态变量值的加权和,以便获得组合状态变量值。

组合状态变量值的这样的计算允许考虑短期统计和长期统计对组合状态变量值的不同影响,同时使计算工作量保持相当地少。

在优选实施例中,该算术编码器被配置为确定舍入值

在求和之前应用舍入运算会缩减计算工作量并消除了状态变量值与相关联的加权值的极小乘积的影响。因此,增加了可靠性。

在优选实施例中,该算术编码器被配置为根据下式来确定组合状态变量值s

其中,s

已发现,组合状态变量值的这样的导出是尤其有利的。也参考了上文对用于确定组合状态变量值的对应的概念的解释。

在优选实施例中,该算术编码器被配置为根据下式来确定所述组合状态变量值

其中,z是预定(常数)偏移值;其中,

已发现,状态变量值的这样的更新是尤其有利的。也参考了上文对关于用于更新状态变量的该概念的解释。

在优选实施例中,该算术编码器被配置为通过表查找或以计算方式导出

关于该概念,参考了以上解释。

在优选实施例中,该算术编码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

关于用于更新一个或多个状态变量值的该概念的优点,参考了以上解释。

在优选实施例中,该算术编码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

关于用于更新一个或多个状态变量值的该概念的优点,参考了以上解释。

在优选实施例中,该算术编码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

关于用于更新一个或多个状态变量值的该概念的优点,参考了以上解释。

在优选实施例中,该算术编码器被配置为通过将逻辑右移应用于编码区间大小信息来执行对编码区间大小信息进行量化。

编码区间大小信息的逻辑右移在计算上是高效的。

在优选实施例中,该算术编码器被配置为通过

关于编码区间大小信息的该量化的优点,参考了以上讨论。

在该算术编码器的优选实施例中,一维查找表的条目随着一个状态变量值或其缩放和/或舍入版本

关于一维查找表的该结构的优点,参考了以上论述。

在该算术编码器的优选实施例中,其中,用于一个状态变量值或其缩放和/或舍入版本

关于该概念的优点,参考了以上论述。

在该算术编码器的优选实施例中,一维查找表的条目随着一个状态变量值或其缩放和/或舍入版本

关于该概念的优点,参考了以上论述。

在下文中,将描述用于算术解码的概念,这对应于上述用于算术编码的概念。因此,相同解释也适用,并且可选地使用上文所描述的相同细节。然而,应注意的是,算术编码器对应于算术解码器。此外,先前编码的符号值通常对应于先前解码的符号值,并且要编码的符号值可以通常对应于先前解码的符号值(或者,对应于要解码的符号值)。然而,关于特征的对应性,也参考了关于定义相关(或者,对应的)概念的对应的权利要求的比较。

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的算术解码器,根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的算术解码器,其中,该算术解码器被配置为基于多个状态变量值(s

在优选实施例中,该算术解码器被配置为使用查找表将第一状态变量值或其缩放和/或舍入版本

在优选实施例中,该算术解码器被配置为如果解码的符号取第一值(例如,“1”),则将该状态变量值改变为第一方向(例如,变得更加正向),并且如果解码的符号取与第一值不同的第二值(例如,“0”),则将该状态变量值改变为第二方向(例如,变得更加负向)(例如,使得该状态变量值可以取正值和负值),其中,该算术解码器被配置为取决于各个状态变量值的绝对值(如果s

在优选实施例中,该算术解码器被配置为如果第一状态变量值取第一符号(例如,正号),则将第一概率值(p

在优选实施例中,该算术解码器被配置为根据下式来确定两个或更多个概率值p

其中,LUT1是包含概率值的查找表;其中,

在优选实施例中,该算术解码器被配置为根据下式来确定两个或更多个概率值p

其中,LUT1是包含概率值的查找表;其中,

在优选实施例中,该算术解码器被配置为根据下式来基于多个概率值p

其中,N为所考虑的概率值的数量(并且可以等于所考虑的状态变量值的数量);以及其中,b

在优选实施例中,该算术解码器被配置为使用二维查找表将第一状态变量值或其缩放和/或舍入版本

其中,该算术解码器被配置为使用二维查找表将第二状态变量值或其缩放和/或舍入版本

在该算术解码器的优选实施例中,二维查找表可表示为如下二者之间的二元乘积:第一一维向量(形成一维查找表)和第二一维向量(Qr

在该算术解码器的优选实施例中,二维查找表(RangTabLPS)的元素是基于基本查找表(Base TabLPS)而定义的,其中,二维查找表的第一组元素(或者,块;例如,“上半部分”)与基本查找表的元素相同或是基本查找表的元素的舍入版本,并且其中,二维查找表的第二组元素(或者,块;例如,“下半部分”)是基本查找表的元素的缩放和舍入版本。

在该算术解码器的优选实施例中,二维查找表的第二组元素是基本查找表的元素的右移版本。

在该算术解码器的优选实施例中,概率索引(Qp2(P

在该算术解码器的优选实施例中,概率索引(i)与第一大小值(例如,μ;其中,该大小值例如描述基本查找表在第一方向上的扩展)之间的除法的除法残差(i%μ)和区间大小索引(例如,可以例如使用量化运算Qr2(.)(例如,j)来基于区间大小信息R获得;)确定基本查找表的哪个元素用于获得二维查找表的元素。

在优选实施例中,该算术解码器被配置为根据下式来获得二维查找表(RangTabLPS)的元素:

其中,BaseTabLPS是尺寸为μ×λ的基本查找表;其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息(例如,描述当前编码区间大小)相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,Scal(x,y)是缩放函数(例如,被定义为

在该算术解码器的优选实施例中,基于概率表(probTabLPS)来定义二维查找表(RangTabLPS)的元素,其中,概率表描述用于一组多个概率值(例如,由索引i表示)和用于给定(参考)编码区间大小的区间大小,并且其中,使用缩放来从该概率表中导出用于不在该组多个概率值中的概率值和/或用于与该给定编码区间大小不同的编码区间大小的二维查找表的元素。

在该算术解码器的优选实施例中,使用取决于编码区间大小(R)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放和使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在该组概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的第一缩放的结果的第二缩放来获得二维查找表的元素。

在该算术解码器的优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差(i%μ)确定在第一缩放中对概率表的哪个元素进行缩放;和/或其中,概率索引(i)与第一大小值之间的除法的整数除法结果

在优选实施例中,该算术解码器被配置为根据下式来获得二维查找表的元素RangeTabLPS[i][j]:

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,I的值的范围通常大于μ);其中,R是区间大小(或者,当前编码区间大小);其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

在该算术解码器的优选实施例中,使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在该组概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放并使用取决于编码区间大小(R)的第一缩放的结果的第二缩放来获得二维查找表的元素。

在该算术解码器的优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差

在优选实施例中,该算术解码器被配置为根据下式来获得二维查找表的元素RangeTabLPS[i][j]:

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中/是除法运算(例如,提供整数结果);其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,I的值的范围通常大于μ);其中,R是区间大小;其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

在优选实施例中,该算术解码器被配置为:根据第一状态变量值和第二状态变量值或其缩放和/或舍入版本

在优选实施例中,该算术解码器被配置为通过将逻辑右移应用于编码区间大小信息来执行对编码区间大小信息进行量化。

在优选实施例中,该算术解码器被配置为通过

在该算术解码器的优选实施例中,一维查找表的条目随着第一状态变量值和第二状态变量值或其缩放和/或舍入版本

在该算术解码器的优选实施例中,用于第一状态变量值和第二状态变量值或其所述缩放和/或取舍版本

在该算术解码器的优选实施例中,一维查找表的条目随着第一状态变量值和第二状态变量值或其缩放和/或舍入版本

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的算术解码器,其中,该算术解码器被配置为基于多个状态变量值(s

在优选实施例中,该算术解码器被配置为确定状态变量值的加权和,以便获得组合状态变量值。

在优选实施例中,该算术解码器被配置为确定舍入值

在优选实施例中,该算术解码器被配置为根据下式来确定组合状态变量值s

其中,s

在优选实施例中,该算术解码器被配置为如果解码的符号取第一值(例如,“1”),则将该状态变量值改变为第一方向(例如,变得更加正向),并且如果解码的符号取与第一值不同的第二值(例如,“0”),则将该状态变量值改变为第二方向(例如,变得更加负向)(例如,使得该状态变量值可以取正值和负值),并且其中,该算术解码器被配置为依据组合状态变量值的绝对值(如果s

在优选实施例中,该算术解码器被配置为如果组合状态变量值取第一符号(例如,正号),则将概率值(p

在优选实施例中,该算术解码器被配置为根据下式来确定组合概率值p

其中,LUT2是包含概率值的查找表;其中,

在优选实施例中,该算术解码器被配置为根据下式来确定组合概率值p

其中,LUT2是包含概率值的查找表;其中,

在优选实施例中,该算术解码器被配置为使用二维查找表将组合状态变量值或其缩放和/或舍入版本

在该算术解码器的优选实施例中,二维查找表可表示为如下二者之间的二元乘积:第一一维向量(LUT4[...];形成一维查找表)和第二一维向量(Qr

在该算术解码器的优选实施例中,二维查找表(RangTabLPS)的元素是基于基本查找表(Base TabLPS)而定义的,其中,二维查找表的第一组元素(或者,块;例如,“上半部分”)与基本查找表的元素相同或是基本查找表的元素的舍入版本,并且其中,二维查找表的第二组元素(或者,块;例如,“下半部分”)是基本查找表的元素的缩放和舍入版本。

在该算术解码器的优选实施例中,二维查找表的第二组元素是基本查找表的元素的右移版本。

在该算术解码器的优选实施例中,概率索引(Qp

在该算术解码器的优选实施例中,概率索引(i)与第一大小值(例如,μ;其中,该大小值例如描述基本查找表在第一方向上的扩展)之间的除法的除法残差(i%μ)和区间大小索引(例如,可以例如使用量化运算Qr2(.)(例如,j)来基于区间大小信息R获得;)确定基本查找表的哪个元素用于获得二维查找表的元素。

在优选实施例中,该算术解码器被配置为根据下式来获得二维查找表(RangTabLPS)的元素:

其中,BaseTabLPS是尺寸为μ×λ的基本查找表;其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息(例如,描述当前编码区间大小)相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,Scal(x,y)是缩放函数(例如,被定义为

在该算术解码器的优选实施例中,基于概率表(probTabLPS)来定义二维查找表(RangTabLPS)的元素,其中,概率表描述用于一组多个概率值(例如,由索引i表示)和用于给定(参考)编码区间大小的区间大小,并且其中,使用缩放来从该概率表中导出用于不在该组多个概率值中的概率值和/或用于与该给定编码区间大小不同的编码区间大小的二维查找表的元素。

在该算术解码器的优选实施例中,使用取决于编码区间大小(R)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放和使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在该组概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的第一缩放的结果的第二缩放来获得二维查找表的元素。

在该算术解码器的优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差(i%μ)确定在第一缩放中对概率表的哪个元素进行缩放;和/或其中,概率索引(i)与第一大小值之间的除法的整数除法结果

在优选实施例中,该算术解码器被配置为根据下式来获得二维查找表的元素RangeTabLPS[i][j]:

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中,/是除法运算;其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,I的值的范围通常大于μ);其中,R是区间大小(或者,当前编码区间大小);其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

在该算术解码器的优选实施例中,使用取决于与当前概率值(由索引i标示)相关联的元素是否包括在该组概率值中(例如,取决于当前概率值是否位于由概率表覆盖的概率值的范围内)的概率表的所选元素(probTabLPS[i%μ])的(乘法)第一缩放并使用取决于编码区间大小(R)的第一缩放的结果的第二缩放来获得二维查找表的元素。

在该算术解码器的优选实施例中,概率索引(例如,i;例如,表示当前概率值)与第一大小值(例如,μ;其中,该大小值例如描述概率表的扩展)之间的除法的除法残差

在优选实施例中,该算术解码器被配置为根据下式来获得二维查找表的元素RangeTabLPS[i][j]:

其中,i是与概率信息相关联的表索引;其中,j是与区间大小信息相关联的表索引;其中,%是除法残差运算;其中/是除法运算(例如,提供整数结果);其中,probTabLPS[]是所述概率表;其中,μ是概率表的元素的数量(其中,I的值的范围通常大于μ);其中,R是区间大小;其中,Qr2(R)是取决于R的缩放因子;其中,Scal(x,y)是缩放函数(例如,被定义为

在优选实施例中,该算术解码器被配置为:根据组合变量值或其缩放和/或舍入版本

在优选实施例中,该算术解码器被配置为通过将逻辑右移应用于编码区间大小信息来执行对编码区间大小信息进行量化。

在优选实施例中,该算术解码器被配置为通过

在该算术解码器的优选实施例中,一维查找表的条目随着组合状态变量值或其缩放和/或舍入版本

在该算术解码器的优选实施例中,其中,用于组合状态变量值或其缩放和/或舍入版本

在该算术解码器的优选实施例中,一维查找表的条目随着组合状态变量值或其缩放和/或舍入版本

在该算术解码器的优选实施例中,查找表定义了(例如,在+/-10%或+/-20%的公差内的)指数衰减(例如,从0.5下降)。

在优选实施例中,该算术解码器被配置为根据下式来更新多个变量状态值

其中,z是预定(常数)偏移值;其中,

在优选实施例中,该算术解码器被配置为通过表查找或以计算方式导出

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的算术解码器,其中,该算术解码器被配置为确定一个或多个状态变量值(s1k,s2k),该一个或多个状态变量值表示多个先前解码的符号值(例如,二进制值0和1的序列)的统计(例如,一个或多个要解码的符号包括某些符号值的概率的估计)(例如,在多个状态变量值被确定的情况下,为具有不同适应时间常数的统计),并且其中,该算术解码器被配置为基于一个或多个状态变量值(s

在优选实施例中,该算术解码器被配置为取决于解码的符号并使用所述查找表(A)(例如,在对解码的符号进行解码之后)来更新第二状态变量值(s

在优选实施例中,该算术解码器被配置为使用不同适应时间常数来更新第一状态变量值和第二状态变量值。

在优选实施例中,该算术解码器被配置为取决于解码的符号是取第一值还是与第一值不同的第二值将先前状态变量值选择性地增大或减小使用查找表而确定的值。

在优选实施例中,该算术解码器被配置为当与先前状态变量值在解码的符号取第一值的情况下为正相比,在先前状态变量值为负的情况下将先前状态变量值增加相对较大的值;以及其中,该算术解码器被配置为当与先前状态变量值在解码的符号取与第一值不同的第二值的情况下为负相比,在先前状态变量值为正的情况下将先前状态变量值减小相对较大的值(这是例如通过查找表的适当选择来获得的)。

在优选实施例中,该算术解码器被配置为如果解码的符号取第一值,则取决于预定(例如,固定)偏移值(z)与先前计算的第一状态变量值

在优选实施例中,该算术解码器被配置为如果解码的符号取第一值,则取决于预定(例如,固定)偏移值(z)与先前计算的第二状态变量值

在优选实施例中,该算术解码器被配置为在确定当更新第一状态变量值时评估的查找表的条目的索引时应用第一缩放值(m

在优选实施例中,该算术解码器被配置为在更新所述第一状态变量值时使用第一缩放值(例如,n

其中,该算术解码器被配置为在更新第二状态变量值时使用第二缩放值(例如,n

在优选实施例中,该算术解码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

在优选实施例中,该算术解码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

在优选实施例中,该算术解码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

在优选实施例中,该算术解码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

在该算术解码器的优选实施例中,A的条目随着查找表索引增加而单调地减少。

在该算术解码器的优选实施例中,A是

在该算术解码器的优选实施例中,查找表的最后一个条目(在第一状态变量值实现延伸到最大可允许值的预定值范围时或第一状态变量值超过预定阈值时)等于零。

在优选实施例中,该算术解码器被配置为将限幅运算应用于更新状态变量值,以使更新且限幅的状态变量值保持在预定值范围内。

在优选实施例中,该算术解码器被配置为根据下式将限幅运算应用于更新状态变量值

其中,

在优选实施例中,该算术解码器被配置为应用用于不同的上下文模型的不同的缩放值(例如,使得两个不同的上下文模型之间的缩放值中的至少一个不同)。

在优选实施例中,该算术解码器被配置为获得如在以上实施例之一中定义的区间大小信息。

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的算术解码器,其中,该算术解码器被配置为确定一个状态变量值(s

在优选实施例中,该算术解码器被配置为基于多个状态变量值(s

在优选实施例中,该算术解码器被配置为确定状态变量值的加权和,以便获得组合状态变量值。

在优选实施例中,该算术解码器被配置为确定舍入值

在优选实施例中,该算术解码器被配置为根据下式来确定组合状态变量值s

其中,s

在优选实施例中,该算术解码器被配置为根据下式来确定所述组合状态变量值

其中,z是预定(常数)偏移值;其中,

在优选实施例中,该算术解码器被配置为通过表查找或以计算方式导出

在优选实施例中,该算术解码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

在优选实施例中,该算术解码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

在优选实施例中,该算术解码器被配置为根据下式来确定一个或多个更新状态变量值

其中A是查找表(例如,包括整数值),其中,z是预定(常数)偏移值;其中,

在优选实施例中,该算术解码器被配置为通过将逻辑右移应用于编码区间大小信息来执行对编码区间大小信息进行量化。

在优选实施例中,该算术解码器被配置为通过

在该算术解码器的优选实施例中,一维查找表的条目随着一个状态变量值或其缩放和/或舍入版本

在该算术解码器的优选实施例中,其中,用于一个状态变量值或其缩放和/或舍入版本

在该算术解码器的优选实施例中,一维查找表的条目随着一个状态变量值或其缩放和/或舍入版本

根据本发明的实施例创建了一种视频编码器,其中,该视频编码器被配置为对多个视频帧进行编码,其中,该视频编码器包括根据以上实施例之一的算术编码器,该算术编码器基于表示视频内容的二进制值的序列来提供编码的二进制序列。

应注意的是,本文中所论述的算术编码器很好地适用于视频编码器内。在该情况下,要编码的符号和/或先前编码的符号可以是视频比特流的符号。例如,要编码的符号和/或先前编码的符号可以表示辅助信息或控制信息的比特和/或表示视频内容的编码的变换系数的比特。换言之,要编码的符号和/或先前编码的符号可以表示信息中的任一者,该信息包括到用于表示视频内容的比特流中。然而,应注意的是,可以针对不同“上下文”(即,针对不同类型的信息)单独地确定状态变量值。例如,仅与给定类型的信息(例如,具体类型的辅助信息)相关联的比特可以促成用于获得给定组合状态变量值的给定状态变量值或状态变量值的给定集合。因此,也可以针对不同上下文(即,针对与不同类型的信息(例如,辅助信息)相关联的符号值的编码)单独地导出区间大小信息。

根据本发明的实施例创建了一种视频解码器,其中,该视频解码器被配置为对多个视频帧进行解码,其中,该视频解码器包括根据以上实施例之一的算术解码器(120;220),该算术解码器用于(例如,基于解码的符号值)基于二进制序列的编码的表示(211)来提供解码的二进制序列。

视频解码器基于与视频编码器相同的考虑。因此,以上解释也适用,其中,编码的符号或要编码的符号对应于解码的符号。

此外,应注意的是,根据本发明的另外的实施例创建了相应的方法和计算机程序。

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行编码的方法,其中,该方法包括基于多个状态变量值(s

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行编码的方法,其中,该方法包括基于多个状态变量值(s

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行编码的方法,其中,该方法包括确定一个或多个状态变量值(s

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的方法,其中,该方法包括基于多个状态变量值(s

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的方法,其中,该方法包括基于多个状态变量值(s

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的方法,其中,该方法包括确定一个或多个状态变量值(s

根据本发明的实施例创建了一种由根据以上实施例之一的编码器和解码器执行的方法。

根据本发明的实施例创建了一种当计算机程序在计算机上运行时执行根据以上实施例之一的方法的计算机程序。

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行编码的方法,其中,该方法包括基于一个或多个状态变量值(s

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行编码的方法,其中,该方法包括基于一个或多个状态变量值(s

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的方法,其中,该方法包括基于一个或多个状态变量值(s

根据本发明的实施例创建了一种用于对具有符号值(例如,二进制值)的多个符号进行解码的方法,其中,该方法包括基于一个或多个状态变量值(s

根据本发明的实施例创建了一种当计算机程序在计算机上运行时执行根据以上实施例之一的方法的计算机程序。

上述方法基于与上述装置相同的考虑。然而,应注意的是,该方法可以可选地由本文中所描述的(也关于装置的)任何特征、功能和细节补充。该方法可以可选地由所述特征、功能和细节单独或组合地补充。对于计算机程序也是如此。

附图说明

随后将参考附图来描述根据本发明的实施例,在附图中:

图1示出了根据本发明的实施例的用于对数据流中的图片进行预测性编码的装置的示意性框图;

图2示出了根据本发明的实施例的解码器的示意性框图;

图3示出了重构信号与预测残差和预测信号的组合之间的关系的示意性表示;

图4示出了根据本发明的实施例的算术编码器的示意性框图;

图5示出了根据本发明的实施例的算术解码器的示意性框图;

图6示出了根据本发明的实施例的用于确定区间大小信息的概念的示意性表示;

图7示出了根据本发明的实施例的用于确定区间大小信息的概念的示意性表示;

图8示出了根据本发明的实施例的用于确定区间大小信息的概念的示意性表示;

图9示出了根据本发明的实施例的用于确定区间大小信息的概念的示意性表示;

图10a和图10b示出了根据本发明的实施例的用于确定区间大小信息的概念的示意性表示;

图11示出了根据本发明的实施例的用于确定区间大小信息的概念的示意性表示;

图12示出了根据本发明的实施例的用于确定一个或多个更新状态变量的概念的示意性表示;

图13示出了根据本发明的实施例的用于确定区间大小值的概念的示意性表示;

图14示出了根据本发明的实施例的用于确定区间大小值的概念的示意性表示;

图14示出了根据本发明的实施例的用于确定区间大小值的概念的示意性表示;

图15示出了根据本发明的实施例的用于确定区间大小值的概念的示意性表示;

图16示出了根据本发明的实施例的视频解码器的示意性表示;以及

图17示出了根据本发明的实施例的视频解码器的示意性表示。

具体实施方式

对附图的以下描述以呈现对基于块的预测性编解码器的编码器(图1)和解码器(图2)的描述开始,该基于块的预测性编解码器用于对视频的图片进行编码以便形成其中可以构建本发明的实施例的编码帧架的示例。关于图1至图3描述了各个编码器和解码器。在下文中,呈现了对本发明的概念的实施例的描述以及关于如何可以将这样的概念分别构建到图1和图2的编码器和解码器中的描述,尽管通过后续图4和之后描述的实施例也可以用于形成并不根据图1和图2的编码器和解码器下层的编码帧架来操作的编码器和解码器。

根据本发明的实施例可以包括如关于图1和图2所描述的视频编码器和视频解码器。而且,本文中所公开的概念中的任一者例如可以在如参考图1和图2所描述的熵编码器34或熵解码器50中使用。

图1示出了用于示例性地使用基于变换的残差编码将图片12预测性编码到数据流14中的装置。使用附图标记10来指示装置或编码器。图2示出了对应的解码器20,即,被配置为也使用基于变换的残差解码对来自数据流14的图片12′进行预测性解码的装置20,其中,撇号已被用于指示通过解码器20重构的图片12′就通过预测残差信号的量化而引入的编码损失而言从最初通过装置10编码的图片12偏离。图1和图2示例性地使用基于变换的预测残差编码,尽管本申请的实施例不限于此类预测残差编码。对于关于图1和图2所描述的其他细节也是如此,如将在下文中所概述的。

编码器10被配置为使预测残差信号经过空间至频谱变换并将由此获得的预测残差信号编码到数据流14中。同样地,解码器20被配置为对来自数据流14的预测残差信号进行解码并使由此获得的预测残差信号经过频谱至空间变换。

内部地,编码器10可以包括生成预测残差24的预测残差信号形成器22,以便测量预测信号26与初始信号(即,与图片12)的偏差。预测残差信号形成器22例如可以是从初始信号中(即,从图片12中)减去预测信号的减法器。编码器10接着进一步包括变换器28,该变换器使预测残差信号24经过空间至频谱变换以获得谱域预测残差信号24′,该谱域预测残差信号接着通过也由编码器10包括的量化器32而经过量化。将由此量化的预测残差信号24″编码到比特流14中。为此,编码器10可以可选地包括熵编码器34,该熵编码器将经过变换和量化的预测残差信号熵编码到数据流14中。预测信号26由编码器10的预测级36基于编码到数据流14中且可从数据流14中解码的预测残差信号24″生成。为此,如图1中所示,预测级36可以内部地包括:解量化器38,对预测残差信号24″进行解量化,以便获得频谱域预测残差信号24″′,该谱域预测残差信号除了量化损失以外对应于信号24′;解量化器之后的逆变换器40,使后一预测残差信号24″′经过反变换,即,频谱至空间变换,以获得除了量化损失以外对应于原始预测残差信号24的预测残差信号24″″。预测级36的组合器42接着诸如通过相加来重组合预测信号26与预测残差信号24″″,以便获得重构信号46,即,原始信号12的重构。重构信号46可以对应于信号12′。预测级36的预测模块44接着通过使用例如空间预测(即,帧内图片预测)和/或时间预测(即,帧间图片预测)来基于信号46生成预测信号26。

同样,如图2中所示,解码器20可以内部地由与预测级36相对应并以与预测级36相对应的方式互连的组件组成。具体地,解码器20的熵解码器50可以对来自数据流的量化频谱域预测残差信号24″进行熵解码,在此之后以上文关于预测级36的模块描述的方式互连和操作的解量化器52、逆变换器54、组合器56和预测模块58基于预测残差信号24″来恢复重构信号,使得如图2中所示,组合器56的输出产生重构信号,即,图片12′。

尽管上文并未具体描述,但是容易明白的是,编码器10可以诸如根据一些优化方案(例如,以最优化一些速率和失真相关准则(即,编码成本)的方式)设定一些编码参数,包括例如预测模式、运动参数等。例如,编码器10和解码器20和对应模块44、58可以分别支持不同预测模式,诸如帧内编码模式和帧间编码模式。编码器和解码器在这些预测模式类型之间切换的粒度可以对应于图片12和12′分别划分为编码片段或编码块的细分。在这些编码片段的单元中,例如,图片可以被细分为帧内编码块和帧间编码块。帧内编码块是基于如下文更详细地概述的各个块的空间已编码/解码邻域来预测的。可以存在包括方向性或角度帧内编码模式在内的若干种帧内编码模式,并为各个帧内编码的片段选择帧内编码模式,根据该帧内编码模式,通过沿着特定于各个方向性帧内编码模式的某个方向,将邻域的样本值外插到相应的帧内编码的片段中来填充各个片段。帧内编码模式可以例如还包括一种或多种其他模式,例如DC编码模式和/或平面帧内编码模式,根据DC编码模式,对各个帧内编码的块的预测将DC值分配给各个帧内编码的片段内的所有样本,根据平面帧内编码模式,各个块的预测被近似或确定为由二维线性函数描述的在各个帧内编码块的样本位置上的样本值的空间分布,其中基于相邻样本来驱动由二维线性函数定义的平面的斜率和偏移。与其比较,例如可以在时间上预测帧间编码块。对于帧间编码块,运动向量可以在数据流内被用信号通知,运动向量指示图片12所属的视频的先前编码图片的部分的空间位移,先前编码/解码图片在数据流处被取样以便获得用于各个帧间编码块的预测信号。这意味着,除了通过数据流14包括的残差信号编码(诸如,表示量化频谱域预测残差信号24′’的熵编码变换系数水平)之外,数据流14可以已将其编码在用于将编码模式指派到各种块的编码模式参数、用于一些块的预测参数(诸如,用于帧间编码片段的运动参数),并且可选地,另外的参数(诸如,用于控制和发信号通知图片12和12′分别划分为片段的细分的参数)。解码器20使用这些参数以与编码器相同的方式细分图片,以将相同预测模式指派给片段,并且以执行相同预测以产生相同预测信号。

图3说明了一方面的重构信号(即,重构图片12′)与另一方面的在数据流14中用信号通知的预测残差信号24””和预测信号26的组合之间的关系。如上所述,该组合可以是相加。预测信号26在图3中被说明为图片区域划分为使用阴影线示例性指示的帧内编码块和非阴影示例性指示的帧间编码块的细分。所述细分可以是任何细分,诸如图片区域划分为正方形块或非正方形块的行和列的常规细分,或者来自树根块的图片12划分为多个具有不同大小的叶块的多分树细分,诸如四分树细分等,其中,图3中说明了其混合,在图3中,图片区域首先被细分为树根块的行和列,接着根据递归多分树细分而另外被细分为一个或多个叶块。

再次,数据流14可以具有其中对于帧内编码块80编码的帧内编码模式,其指派若干所支持的帧内编码模式之一给相应的帧内编码块80。对于帧间编码块82,数据流14可以具有在其中编码的一个或多个运动参数。一般而言,帧间编码块82并不受限于在时间上编码。备选地,帧间编码块82可以是超出当前图片12(诸如,图片12所属的视频的先前编码的图片,或者在编码器和解码器分别是可调式编码器和解码器的情况下,另一视图的图片或分层式下层)自身的根据先前编码的部分预测的任何块。

图3中的预测残差信号24””也被说明为图片区域划分为块84的细分。这些块可以被称作变换块,以便将其与编码块80和82区分开。实际上,图3示出了编码器10和解码器20可以使用图片12和图片12′分别划分为块的两种不同的细分,即,划分为编码块80和82的一个细分和划分为变换块84的另一个细分。两种细分可能是相同的,即每个编码块80和82可以同时形成变换块84,但是图3示出了如下情况,其中例如到变换块84的细分形成到编码块80、82的细分的扩展,以便块80和82的两个块之间的任何边界都覆盖两个块84之间的边界,或者换句话说,每个块80、82与变换块84之一重合,或者与变换块84的集群重合。然而,也可以独立于彼此确定或选择细分,使得变换块84备选地跨越块80、82之间的块边界。就细分为变换块84而言,相似陈述因此如同关于细分为块80、82所提出的陈述而成立,即,块84可以是图片区域划分为块(具有或不具有为行和列的配置)的常规细分的结果、图片区域的递归多分树细分的结果,或者其组合或任何其他类别的分块。顺便指出,要注意,块80、82和84不限于正方形、矩形或任何其他的形状。

图3进一步说明了预测信号26与预测残差信号24””的组合直接产生重构信号12′。然而,应注意的是,多于一个预测信号26可以根据备选实施例与预测残差信号24””组合以产生图片12′。

在图3中,变换块84应具有以下重要性。变换器28和逆变换器54以这些变换块84为单位执行其变换。例如,许多编解码器将某种DST或DCT用于所有变换块84。一些编解码器允许跳过变换,使得对于变换块84中的一些变换块84,直接在空间域中对预测残差信号进行编码。然而,根据下述实施例,编码器10和解码器20被以其支持若干变换的方式来配置。例如,由编码器10和解码器20支持的变换可以包括:

οDCT-II(或者,DCT-III),其中,DCT代表离散余弦变换

οDST-IV,其中,DST代表离散正弦变换

οDCT-IV

οDST-VII

ο恒等变换(IT)

自然地,虽然变换器28将支持这些变换的所有正向变换版本,但是解码器20或逆变换器54将支持其对应的后向或逆版本:

ο逆DCT-II(或者,逆DCT-III)

ο逆DST-IV

ο逆DCT-IV

ο逆DST-VII

ο恒等变换(IT)

后续描述提供了关于可以由编码器10和解码器20支持的变换的更多细节。在任何情况下,应注意的是,所支持变换的集合可以仅包括一种变换,诸如一种频谱至空间或空间至频谱变换。

如上所述,已呈现了图1至图3作为示例,在该示例中,可以实现下文进一步描述的本发明概念,以便形成根据本申请的编码器和解码器的特定示例。就此而言,图1和图2的编码器和解码器可以分别表示下文所描述的视频编码器和解码器的可能实现。然而,图1和图2仅仅是示例。根据本申请的实施例的编码器可以使用下文更详细地概述的概念来执行图片12的基于块的编码,并且与诸如图1的编码器的不同之处例如在于根据本申请的实施例的编码器并非视频编码器,而是静止图片编码器,在于根据本申请的实施例的编码器不支持帧间预测,或者在于细分为块80以不同于图3中的所例示的方式执行。同样地,根据本申请的实施例的解码器可以使用下文进一步概述的编码概念对来自数据流14的图片12′执行基于块的解码,但是与例如图2的解码器20的不同之处可以在于根据本申请的实施例的解码器并非视频解码器,而是静止图片解码器,在于根据本申请的实施例的解码器不支持帧内预测,或者在于根据本申请的实施例的解码器以不同于关于图3所描述的方式将图片12′细分为块,和/或在于根据本申请的实施例的解码器不从变换域中而从例如空间域中的数据流14中导出预测残差。

图4示出了根据本发明的实施例的算术编码器的示意性框图。

根据图4的算术编码器400例如可以在视频编码器中使用。然而,可选地,算术编码器400也可以在音频编码器、图像编码器、用于对神经网络的系数进行编码的编码器等中使用。

算术编码器400被配置为接收要编码的符号410,其中,要编码的符号410可以由符号值表示。此外,编码器400通常也接收上下文信息412,该上下文信息例如可以描述哪种类型的信息由要编码的符号410表示。例如,上下文信息412可以由上下文索引k表示,该上下文索引例如描述要编码的符号410描述哪种类型的辅助信息或符号410对哪种类型的变换系数进行编码。

此外,算术编码器400被配置为提供比特流420,该比特流表示要编码的符号410或表示要编码的符号410的序列。

算术编码器400包括算术编码核或算术编码器核430,该算术编码核或算术编码器核430接收要编码的符号410并基于要编码的符号来提供比特流420。算术编码核或算术编码器核430通常接收区间大小信息,该区间大小信息例如可以表示符号(例如,可能最小符号)映射到的子区间(来自总编码区间)的大小。此外,算术编码核或算术编码器核也提供编码区间大小信息434,该编码区间大小描述了当前编码区间大小(例如,编码区间的总大小)。应注意的是,编码区间大小434可以取决于编码的符号410(或者较精确而言,取决于编码的符号410的序列)随时间而变化。

编码区间大小例如可以由于在算术编码过程中执行的重新缩放运算而改变。例如,算术编码核例如可以执行如高效视频编码(HEVC)标准(H.265)中所描述的功能性。

算术编码器400也包括编码区间大小确定或编码区间大小确定器440。编码区间大小确定440接收要编码的符号410,或者至少接收一个或多个先前编码的符号,并且优选地(而非必须)也接收上下文信息412。此外,区间大小确定440接收编码区间大小信息434。区间大小确定440基于编码区间大小信息、要编码的符号410(或者,至少一个或多个先前编码的符号)和可选的上下文信息412来提供供算术编码核430使用的区间大小信息432。

关于根据图4的概念的功能性,应注意的是,区间大小确定440用于(连续地,例如针对每个新的要编码的符号)更新区间大小信息432。在该更新中,考虑先前编码的符号的统计。此外,也考虑由算术编码430提供的编码区间大小信息434,这是由于区间大小信息432应优选地被提供为与编码区间大小信息434处于适当关系。在该上下文,编码区间大小信息434例如可以表示(总)编码区间(可以由不定期发生的编码区间的重新归一化引起)的当前大小,而区间大小信息432例如可以描述与特定符号(例如,与最小可能的符号)相关联的整个(总)编码区间内的部分的大小。因此,区间大小信息通常小于编码区间大小信息434,这是由于编码区间大小信息434表示编码区间的总大小,而区间大小信息434表示与特定符号相关联的编码区间的部分的大小。因此,区间大小信息432通常随着编码区间大小信息434缩放(其中,所述缩放可以可选地包括某种程度上的非线性行为,以避免编码将非常低效的情形)。

进一步地来说,通过确定适当区间大小信息432,考虑到编码区间(由编码区间大小信息434表示)的总大小和先前编码的符号的统计(以及上下文),可以有效的方式执行算术编码,其中,考虑先前编码的符号的统计有助于改进编码效率。

然而,应注意的是,根据图4的算术编码器400可以在如本文中所公开的任何信号编码器中(例如,在视频编码器中)使用。此外,应注意的是,根据图4的算术编码器400可以可选地由本文中所描述的特征、功能性和细节中的任意一种补充。具体地,区间大小确定440可以单独地以及以组合方式两者使用本文中所公开的概念中的任何概念。

总之,根据图4的算术编码器400可以可选地由本文中所公开的特征、功能性和细节中的任意一种单独地以及以组合方式补充。

图5示出了根据本发明的实施例的算术解码器500的示意性框图。算术解码器500被配置为接收比特流510(可以对应于比特流420)并基于该比特流提供解码的符号520(或者,在解码的符号520的序列中)。通常,解码的符号520可以对应于要编码的符号410。通常,算术编码器400和算术解码器500可以当结合在一起时执行无损编码和解码,使得由算术编码器400编码的符号410提供比特流420,该比特流当通过算术解码器500解码时允许“完美的”重构,使得解码的符号520对应于编码的符号410。

算术解码器500包括算术解码核或算术解码器核530,该算术解码核或算术解码器核530接收比特流并基于该比特流来提供解码的符号520。算术解码核530通常提供可以实质上对应于编码区间大小信息434的编码区间大小信息532,并且接收可以对应于区间大小信息432的区间大小信息534。算术解码器500也包括编码区间大小确定或编码区间大小确定器540,该编码区间大小确定或编码区间大小确定器540被配置为基于编码区间大小信息532并且也基于一个或多个解码的符号520来提供由算术解码核530使用的区间大小信息534。此外,编码区间大小确定540可以可选地使用上下文信息550,该上下文信息可以描述哪种类型的信息由当前考虑的解码的符号520表示。因此,编码区间大小确定540可以针对多个不同的“上下文”(即,针对多个不同类型的解码信息(或者,不同类型的要解码的信息))确定区间大小信息534。

算术解码核530例如可以确定由比特流510表示的值处于总编码区间(其大小由编码区间大小信息描述)当中的哪个子区间,并且因此决定哪个符号由比特流表示。例如,由区间大小信息534描述总编码区间的子区间的大小。例如,区间大小信息534可以描述与特定符号(例如,最小可能的符号)相关联的总编码区间的子区间的大小。此外,应注意的是,编码区间大小(例如,总编码区间的大小)可以由于重新归一化而不定期(或者,甚至对于每个解码的符号)改变。

总之,算术解码500用于基于比特流510来提供解码的符号520,其中,先前解码的符号的历史(或者更精确地,先前解码的符号的统计)用于(动态地)调整与要解码的符号相关联的区间大小(其中,调整后的区间大小由区间大小信息534描述)。此外,应注意的是,区间大小确定540例如可以与区间大小确定440实质上相同。并且,应注意的是,区间大小确定540可以包括本文中所公开的功能性中的任何功能性。因此,用于确定区间大小的概念中的任何概念可以用于区间大小确定540。

应注意的是,本文中所描述的算术解码器500可以在本文中所描述的解码器中的任何解码器(例如,音频解码器或视频解码器)中使用。然而,算术解码器500也可以用于对神经网络的图像或系数进行解码。

一般而言,本文中所描述的算术解码器500可以可选地由本文中所公开的特征、功能性和细节中的任何一种单独地并且以组合方式补充。

图6示出了用于确定区间大小信息的概念的示意性表示,该区间大小信息例如可以在根据图4的算术编码器400或根据图5的算术解码器500中使用。可以以区间大小确定的形式或以区间大小确定器的形式实现的概念600例如可以用于实现区间大小确定或区间大小确定器440,和/或可以用于实现区间大小确定或区间大小确定器540。

区间大小确定600例如可以接收一个或多个符号值610,该一个或多个符号值可以对应于要编码的符号410或可以对应于先前编码的符号,或者可以对应于一个或多个先前解码的符号520。此外,区间大小确定600可以可选地接收上下文信息612,该上下文信息例如可以采用上下文模型索引k的形式。此外,区间大小确定600可以提供区间大小信息620,该区间大小信息例如可以对应于区间大小信息432或其可以对应于区间大小信息534。

考虑符号值610并可选地考虑上下文信息612,区间大小确定包括状态变量更新640,该状态变量更新基于一个或多个先前确定的状态变量644来提供一个或多个更新状态变量642。状态变量更新640也可以考虑一个或多个其他参数,该一个或多个其他参数例如可以是静态的或其例如可以取决于上下文信息而适应于各个上下文。例如,状态变量更新640可以考虑一个或多个加权因子,即,

此外,区间大小确定600包括区间大小确定核,该区间大小确定核基于更新状态变量(或者,状态变量值)620来确定区间大小信息620。此外,区间大小确定核650例如可以考虑编码区间大小信息652,其例如可以对应于编码区间大小信息432或对应于编码区间大小信息532。

因此,区间大小确定核650可以基于描述编码区间的总大小的编码区间大小信息652并基于关于先前编码的或先前解码的符号的统计的信息来提供区间大小信息,该区间大小信息描述了与特定符号相关联的子区间的大小,该先前编码或先前解码的符号的统计的信息由一个或多个更新状态变量642表示。

然而,应注意的是,区间大小确定600可以在本文中所描述的算术编码器和算术解码器中使用。此外,区间大小确定600可以由本文中所公开的特征、功能性和细节中的任何一种补充。具体地,状态变量更新可以使用本文中所公开的概念中的任何概念。此外,区间大小确定核也可以使用本文中所公开的概念中的任何概念。

应注意的是,用于状态变量更新的本文中所描述的概念中的任何概念可以可选地与用于本文中所公开的区间大小确定核的概念中的任何概念组合。本文中所公开的特征、功能性和细节中的任何一种可以可选方式单独地以及以组合方式被引入到概念600中。应注意的是,关于基于一个或多个更新状态变量642来确定区间大小信息620而公开的特征、功能性和细节中的任何一种可以独立于关于状态变量更新所描述的特征、功能性和细节中的任何一种来使用。

图7示出了区间大小确定概念700的示意性表示。具体地,图7示出了可以采用“区间大小确定核”的功能性的概念。换言之,根据图7的概念700适合于基于更新状态变量以及也基于编码区间大小信息来提供区间大小信息。然而,根据图7的概念700可以以区间大小确定或区间大小确定器实现。

可以被视为“区间大小确定核”的区间大小确定700接收更新状态变量710,该更新状态变量例如可以对应于更新状态变量642。此外,区间大小确定700接收编码区间大小信息712,该区间大小信息例如可以对应于编码区间大小信息652。可选地,区间大小确定700也使用上下文信息,这是由于区间大小确定700的功能性可以取决于上下文来调整。例如,上下文信息可以采取上下文模型索引k的形式。因此,在区间大小确定700中使用的具体功能性或参数可以取决于如由上下文模型索引k表示的实际上下文而变化。

区间大小确定700提供区间大小信息720,该区间大小信息可以对应于区间大小信息620。

因此,区间大小确定700例如可以代替图6中所描述的区间大小确定核650。

在下文中,将描述区间大小确定核700的一些细节。

应注意的是,区间大小确定核700包括可以被视为备选方案的第一处理路径730和第二处理路径750。第一处理路径730包括(可选的)缩放/舍入732,其中,第一更新状态变量(例如,

例如,基于第一查找表的映射736可以使用二维查找表,其中,第一查找表索引可以通过缩放和/或舍入的第一更新状态变量733来确定,并且其中,第二查找表索引可以通过量化的编码区间大小信息762来确定。例如,第一缩放和/或舍入的更新状态变量733可以取某一范围(例如,从0到最大值,或者从1到最大值,或者在作为第一表索引的可接受范围内)内的整数值。相似地,量化的区间大小信息762可以采用整数值的形式,该整数值可以充当第二表索引。例如,量化的编码区间大小信息762可以采用在0与最大值之间或在1与最大值之间的范围内(或者,在可充当第二表索引的任何值的范围内)的整数值的形式。换言之,第一缩放和/或舍入的更新状态变量733和量化的编码区间大小信息762两者均用作表索引以选择在基于查找表的映射736中使用的查找表的元素。因此,提供所使用的查找表的条目作为第一区间大小贡献737。

然而,可以相同方式执行基于第二查找表的映射738,其中,缩放和/或舍入的第二更新状态变量735和量化的编码区间大小信息762用作两个索引(例如,i和j)以用于选择在基于第二查找表的映射738中使用的查找表的条目。因此,获得了第二区间大小贡献739。

第一区间大小贡献737和第二区间大小贡献739可以在组合740中组合,从而获得组合区间大小贡献742。组合区间大小贡献742可以直接充当区间大小信息720,或者可以使用后处理(例如,固定缩放或舍入等)从组合区间大小贡献742中导出区间大小信息720。

总之,在使用第一处理路径730时,可以通过组合两个或更多个基于查找表的映射736、738的结果来获得区间大小信息720,其中,基于各个更新状态变量并基于编码区间大小信息来确定要使用的查找表的各个条目。因此,可以以非常有效的方式获得区间大小信息720。

然而,备选地,可以执行如第二信号处理路径750中所示出的处理。由第二信号处理路径执行的处理在计算上更为有效,其代价为略微降低了准确度。例如,第二信号处理路径750包括组合751,其中,将第一更新状态变量与第二更新状态变量(和可选的附加更新状态变量)组合,从而获得组合的更新状态变量751a。第二处理路径750也包括可选的缩放/舍入752,该缩放/舍入例如可以对应于缩放/舍入732、734。因此,缩放/舍入750提供了缩放和/或舍入的组合的更新状态变量733,该缩放和/或舍入的组合的更新状态变量用于选择基于查找表的映射756中的元素。基于查找表的映射756优选地是二维映射,其中,通过组合的更新状态变量751a或其缩放和/或舍入版本753来确定查找表的第一索引,并且其中,通过量化的编码区间大小信息762来确定二维查找表的第二索引。因此,基于查找表的映射756提供了区间大小贡献757,该区间大小贡献可以用作区间大小信息752,或者从该区间大小贡献可以通过可选的后处理(例如,缩放)来导出区间大小信息720。

总之,区间大小确定核700被配置为基于更新状态变量710并考虑编码区间大小信息712来获得区间大小信息720。在第一信号处理路径720中使用基于查找表的映射以确定两个或更多个区间大小贡献737、739,该两个或更多个区间大小贡献用于导出区间大小信息720。在备选的第二信号处理路径750中使用基于查找表的映射756以确定区间大小贡献757或区间大小信息720。通过使用考虑更新状态变量和编码区间大小信息712二者的基于查找表的映射以确定查找表的索引,可以实现尤其有效的计算,其中,可以省去乘法运算。

应注意的是,根据图7的区间大小确定核700可以在本文中所描述的算术编码器和算术解码器中的任何一种中使用。此外,区间大小确定核700可以可选地由本文中所公开的特征、功能性和细节中的任何一种单独地以及以组合方式补充。

图8示出了根据本发明的实施例的区间大小确定核800的示意性框图。根据图8的区间大小确定核800可以在本文中所公开的音频编码器和音频解码器中的任何一种中使用。

区间大小确定核800接收更新状态变量810以及也接收编码区间大小信息812。更新状态变量810例如可以对应于更新状态变量710或对应于更新状态变量642。编码区间大小信息812例如可以对应于编码区间大小信息712或编码区间大小信息652或编码区间大小信息532或编码区间大小信息434。此外,区间大小确定核800提供了区间大小信息820,该区间大小信息可以对应于区间大小信息720或区间大小信息620或区间大小信息534或区间大小信息432。

区间大小确定核800例如可以包括概率值832的确定830。概率值832例如可以基于一个或多个更新状态变量810来获得,并且例如可以描述要编码的符号(例如“0”或“1”)的概率。区间大小确定核830还包括较不可能符号(或者,最小可能的符号)的概率的确定840,该确定可以提供描述较不可能符号或最小可能的符号的概率的概率值842。区间大小确定核800也包括量化850,该量化对概率值842进行量化以获得量化的概率值852。此外,区间大小确定核800也包括量化860,该量化对编码的区间大小信息进行量化以获得量化的编码区间大小信息862。区间大小确定核800也包括映射870,该映射接收量化的概率值852和量化的编码区间大小信息862并将量化的概率值852和量化的编码区间大小信息862二者映射到区间大小信息820上。

在下文中,将描述关于区间大小确定核800的功能性的一些细节。

概率值832的确定830例如可以包括第一信号处理路径880或第二信号处理路径890。应注意的是,信号处理路径880、890可以被视为备选方案。第一信号处理路径880包括第一映射882,该第一映射例如使用查找表将第一更新状态变量810映射到第一概率值883上。第一信号处理路径880也包括第二映射884,该第二映射例如使用查找表将第二更新状态变量810映射到第二概率值885上。第一信号处理路径880也包括组合886,该组合例如可以被配置为例如使用线性组合将第一概率值883与第二概率值885组合,在该线性组合中不同缩放可以应用于第一概率值883和第二概率值885(并且其中,可选地,可以使用量化)。因此,组合886提供了概率值832。

备选地,可以使用第二信号处理路径890。第二信号处理路径890包括组合892,该第二信号路径接收两个或更多个更新状态变量810,并且其基于两个或更多个更新状态变量来提供组合的更新状态变量893(例如,使用线性组合)。此外,第二信号处理路径890包括映射894,该映射例如使用查找表将组合的更新状态变量893映射到概率值832上。

因此,可以使用第一信号处理路径880或使用第二信号处理路径890来获得概率值832,该第一信号处理路径和第二信号处理路径可以被视为两个不同备选方案。第一信号处理路径会带来稍微增加的复杂性,这是由于存在两个映射882、884,并且也带来稍微增加的准确度。相比之下,第二信号处理路径890仅包括单一映射并因此稍微较不复杂,其代价是准确度稍微降低。

在较不可能的符号的概率的确定850中,例如可以通过从概率值832和该概率值的补充(1减去概率值)当中选择较小值来确定较不可能的符号的概率。因此,获得了描述较不可能的符号的概率的概率值842。该概率值842例如使用量化函数Q

编码区间大小信息812的量化860例如可以提供量化的编码区间大小值862或量化的编码区间大小索引j。然而,在一些情况下,可以获得量化的编码区间大小值Q

换言之,可以存在许多不同的映射,这些映射可以用于基于量化的概率值或概率索引852并且基于量化的编码区间大小862和/或编码区间大小索引j来导出区间大小信息820。

作为补充说明,应注意的是,量化850例如可以将概率值842(或者备选地,如果省去确定840,则是概率值832)映射到整数值上。备选地,量化850可以将值842(或者备选地,如果可选地省去确定840,则是值832)映射到数值分辨率比概率值832或概率值842低的值上。然而,优选地,量化的概率值852采用概率索引(例如,i)的形式,即,整数表示的形式,其可以用作指代查找表(例如,RangeTabLPS)的条目的表索引。

量化860可以带来不同结果。编码区间大小信息812例如可以量化到量化的编码区间大小信息862中,该量化的编码区间大小信息包括比编码区间大小信息812低的分辨率。换言之,编码区间大小信息812的值的区间可以被映射到量化的编码区间大小信息862的各个量化值上,其中,该量化例如可以是线性或非线性的。备选或另外地,编码区间大小信息可以被映射到编码区间大小索引j上,即,被映射到连续的整数值范围上,该编码区间大小索引可以直接用作用于选择查找表的条目的表索引。然而,应注意,在一些情况下,可以使用被量化为不同值的量化的编码区间大小信息以及被量化为不同索引j(即,量化为整数值)的量化的编码区间大小信息二者。

如上所述,可以使用本文中所描述的不同概念来进行映射870。

总之,区间大小确定核800可以在本文中所描述的算术编码器和算术解码器中的任何一种中使用。此外,区间大小确定核800可以可选地由本文中所公开的特征、功能性和细节中的任何一种中单独地并且以组合方式补充。

图9示出了区间大小确定核900的示意性框图,该区间大小确定核可在本文中所公开的算术编码器和算术解码器中的任何一种中使用。

区间大小确定核900被配置为接收状态变量值910并提供区间大小信息920。一般而言,区间大小确定核900被配置为基于多个状态变量值910针对一个或多个要编码的符号值的算术编码(或者,针对一个或多个要解码的符号值的算术解码)来导出区间大小信息920,该多个状态变量值表示具有不同调整时间常数的多个先前编码的符号值的统计。区间大小确定核900包括可选的第一缩放和/或舍入930,其中,第一状态变量(可以是更新状态变量)被缩放和/或舍入。区间大小确定核900也包括可选的第二缩放和/或舍入934,其中,第二状态变量被缩放和/或舍入。因此,可选的第一缩放和/或舍入提供了第一缩放和/或舍入的状态变量932,并且可选的第二缩放和/或舍入934提供了第二缩放和/或舍入的状态变量934。

区间大小确定核900也包括使用查找表的第一映射940。第一映射940使用查找表(例如,查找表LUT1或定义用于多个不同值R的R.LUT1的二维查找表)来映射第一状态变量或第一状态变量的缩放和/或舍入版本932。因此,通过第一映射940获得了第一概率值942。区间大小确定核900也包括使用查找表(例如,使用查找表LUT1或定义用于多个不同值R的R.LUT1的二维查找表)映射第二状态变量或其缩放和/或舍入版本934的第二映射950。因此,通过第二映射950基于第二状态变量值或基于其缩放和/或舍入版本934获得了第二概率值952。

最终,基于第一概率值942以及基于第二概率值952获得了区间大小信息920。

然而,应注意的是,第一概率值942和第二概率值952的确定应仅被视为可以使用第一映射940和第二映射950来获得这些量的示例。相比之下,可以也使用第一映射940和第二映射950来导出其他量,如例如,对区间大小信息920的贡献。

然而,应注意的是,图9中所描述的区间大小确定核900可以在本文中所公开的算术编码器或算术解码器中的任何一种中使用。此外,应注意的是,区间大小确定核900可以可选地由本文中所描述的特征、功能性和细节中的任一者单独地并以组合方式补充。

图10a示出了用于确定区间大小信息的概念的示意性表示,该区间大小信息可以在例如区间大小确定核中使用。

正如所看出的,图10a的概念接收多个状态变量值1010a、1010b,该多个状态变量值可以对应于状态变量值910并且其可以是更新状态变量值。此外,概念1000提供了区间大小信息1020,该区间大小信息可以对应于区间大小信息920。概念1000包括第一映射1040,该第一映射将第一状态变量值1010a(或者,其缩放和/或舍入版本)映射到可以对应于第一概率值942的第一概率值1042上。此外,概念1000包括第二映射1050,该第二映射将第二状态变量值1010b(或者,其缩放和/或舍入版本)映射到第二概率值1052上。此外,概念1000包括第一概率值1042与第二概率值1052的组合,其中,例如可以使用等式(7)来执行该组合。因此,组合1060提供了组合概率值1062。此外,概念1000包括组合概率值1062的乘法1070,其中,可以通过编码区间大小值R来进行该乘法。因此,基于组合概率值1062a与编码区间大小值R之间的乘法1070获得了区间大小信息1020。区间大小信息1020例如可以描述与较不可能符号相关联或与最小可能的符号相关联的编码区间的大小(或者备选地,与较可能符号相关联或与最可能符号相关联的编码区间的大小)。可选地,概念1000可以包括用于导出较不可能符号或最小可能的符号的概率的机制(例如,在组合1060与乘法1070之间),或者可以包括基于乘法1070的结果来导出与较不可能符号相关联或与最小可能的符号相关联的区间大小信息的机制。

因此,根据图10a的概念1000可以实现如关于图9所描述的功能性。

应注意的是,概念1000可以在本文中所公开的算术编码器或算术解码器中的任何中使用。

而且,概念1000可以可选地由本文中所公开的特征、功能性和细节中的任一者单独地并以组合方式补充。

图10b示出了基于第一状态变量值1082a和第二状态变量值1082b来提供区间大小信息1084的概念1080的示意性框图。概念1080包括将第一状态变量值1082a或其缩放和/或量化版本映射1085a到第一区间大小贡献1086a上。此外,概念1080包括第二映射1085b,该第二映射将第二状态变量值1082b或其缩放和/或量化版本映射到第二区间大小贡献1086b上。

第一映射1085a和第二映射1085b例如可以使用二维查找表来执行所述映射。二维查找表例如可以定义编码区间大小信息R的量化值与用于多个不同值R的一维查找表(例如LUT1)之间的乘积。换言之,在映射1085a中使用的二维查找表的各行或各列可以定义如本文中所描述的查找表LUT1和与所述行或列相关联的各个编码区间大小值之间的乘积。在第二映射1085b中使用的二维查找表也可如此,其中,所述查找表可以与在第一映射1085a中使用的查找表相同或可以与该查找表不同。此外,应注意的是,编码区间大小信息可以在第一映射1085a和第二映射1085b中使用,以选择二维查找表的适当元素(其中,例如,第一查找表索引可以基于各个状态变量值,并且其中,第二查找表索引可以基于其编码区间大小值(或者量化版本Qr(R))。

因此,可以以极低计算复杂度获得区间大小信息1084。此外,应注意的是,适当处理可以插入在映射1085a、1085b与其中组合了区间大小贡献1086a、1086b的组合1088之间,以确定对与较不可能符号或最小可能的符号相关联的区间的区间大小的贡献。然而,备选地,后处理可以可选地在组合1088之后插入,以基于区间大小贡献1086a、1086b的组合1088的结果来确定用于最小可能的符号或用于较不可能符号的区间大小。

总之,根据图10b的概念1080可以用于基于状态变量值1082a、1082b并也取决于编码区间大小信息或编码区间大小值来导出区间大小信息1086。

此外,应注意的是,概念1080可以在本文中所公开的算术编码器或算术解码器中的任一者中使用。

此外,应注意的是,图10b的概念1080可以可选地由本文中所公开的特征、功能性和细节中的任一者单独地并以组合方式补充。

图11示出了根据本发明的实施例的区间大小确定核1100的示意性框图。

区间大小确定核接收多个(通常是,更新的)状态变量值1110并基于该多个状态变量值来提供区间大小信息1120。一般而言,区间大小确定核1100被配置为基于多个状态变量值1110来导出用于一个或多个要编码的符号的算术编码(或者,用于一个或多个要解码的符号值的算术解码)的区间大小信息,该多个状态变量值表示具有不同调整时间常数的多个先前编码的(或者,先前解码的)符号值的统计。区间大小确定核1100包括组合/组合器1130,该组合/组合器被配置为基于多个状态变量值1110来导出组合状态变量值1132。可选地,区间大小确定核1100包括缩放和/或舍入1140,该缩放和/或舍入对组合状态变量值1132进行缩放和/或舍入以获得缩放和/或舍入的组合状态变量值1142。此外,区间大小确定核1100包括基于查找表的映射1150,该映射被配置为使用查找表来映射组合状态变量值1132或其缩放和/或舍入版本1142,以便获得描述区间大小(例如,与具体符号相关联的区间的大小,例如,如较低有效符号或较高有效符号)的区间大小信息以进行算术编码/解码。然而,可选地,后处理1160可以用于基于基于查找表的映射1150的结果1152来导出区间大小信息1120。

应注意的是,区间大小确定核1100可以在本文中所公开的算术编码器和算术解码器中的任一者中使用。此外,应注意的是,区间大小确定核11可以可选地由本文中所公开的特征、功能性和细节中的任一者补充。

图12示出了根据本发明的实施例的状态变量更新的示意性框图。状态变量更新1200(也可以被视为状态变量更新器)被配置为接收符号值1210,该符号值可以是要编码的符号的符号值或先前解码的符号的符号值(或者,先前编码的符号的符号值)。此外,状态变量更新1200可被配置为接收一个或多个先前确定的状态变量值1212并提供一个或多个更新状态变量值1220。具体地,状态变量更新1200可以被配置为取决于符号值(例如,表示要编码的符号或先前编码的符号或先前解码的符号)并使用查找表来更新第一状态变量值。换言之,状态变量更新1210可以包括基于查找表的状态变量更新或基于查找表的状态变量更新器1230。因此,可以基于对应的先前确定的状态变量值并考虑符号值来提供更新状态变量值,该符号值基于要编码的符号或基于先前编码的符号或基于先前解码的符号。

因此,状态变量更新1200可以提供一个或多个更新状态变量值。如果要确定多个更新状态变量值,则可以针对每个状态变量值单独地执行基于查找表的状态变量更新(然而,其中,可以使用可能具有不同缩放参数和/或量化功能性的相同机制和/或相同查找表)。

然而,在此描述的状态变量更新1200可以在本文中所公开的算术编码器和算术解码器中的任一者中使用。然而,应注意的是,状态变量更新1200可以可选地由本文中所公开的特征、功能性和细节中的任一者单独地并以组合方式补充。

图13示出了根据本发明的实施例的区间大小确定核1300的示意性框图。

区间大小确定核接收一个或多个状态变量值1310,该一个或多个状态变量值例如可以是更新状态变量值。此外,区间大小确定核基于一个或多个状态变量值1310来提供区间大小值1320。

区间大小确定核包括查找表评估机制1330,该查找表评估机制接收概率索引1332,其可以基于一个或多个状态变量值1310,并且其提供区间大小值1320。

例如,可以使用概率索引推导1340(可以包括缩放和/或舍入和/或量化)来根据一个或多个(更新)状态变量值导出概率索引1332。

例如,可以在如本文中所公开的算术编码器或算术解码器中确定一个或多个更新状态变量值1310,并且可以表示多个先前编码的符号值的统计。

一般而言,区间大小确定核1300被配置为使用基本查找表1350来确定区间大小值1320。查找表评估机制可以被配置为确定区间大小值1320,使得如果基于一个或多个状态变量值而获得的概率索引1332是在第一范围内,则确定的区间大小值与基本查找表1350的元素或基本查找表1350的元素的舍入版本相同,并且使得如果概率索引1332是在第二范围内,则使用基本查找表1350的元素的缩放1360(并且可选的,舍入)来获得确定的区间大小值。因此,区间大小值1320可以用于执行一个或多个符号的算术编码或算术解码。

换言之,可以根据例如如图8中所示的一个或多个(更新)状态变量值(第一信号处理路径880或第二信号处理路径890,结合可选的确定840和量化850)来导出的概率索引1332可以用于决定是“按原样”还是通过缩放1360(其可通过概率索引1332确定)来使用基本查找表的条目。

换言之,概率索引1332可以决定选择基本查找表1350的哪个元素(如以示意性方式在附图标记1370处所指示的),并且决定是否执行基本查找表1350的该所选条目的缩放(如在附图标记1380处象征性地示出的)。例如,可以通过概率索引1332的一个或多个最低有效比特来确定基本查找表的条目的选择1370,并且可以基于概率索引1332的一个或多个最高有效比特来进行是否执行缩放1360的决策。然而,而非评估比特组,可以通过概率索引1332除以预定值的除法的除法残差来确定基本查找表1350的条目的选择,并且可以取决于当前所考虑的概率索引值位于多个范围当中的哪个范围的确定来进行是否执行缩放1360的决策。

此外,应注意的是,可选地,可以在选择基本查找表1350的条目(例如,如果基本查找表是二维表)时考虑编码区间大小信息(例如,R)。在另一可选的备选方案中,编码区间大小信息(例如,R)可以用于确定是否应执行取决于编码区间大小信息的额外缩放(例如,应用于基本查找表的所选条目),以便获得区间大小值1320。

然而,应注意的是,在此描述的区间大小确定核1300可以在本文中所公开的算术编码器和算术解码器中的任一者中使用以导出区间大小值。

此外,应注意的是,区间大小确定核1300可以可选地由本文中所公开的特征、功能性和细节中的任一者补充。

图14示出了根据本发明的实施例的区间大小确定核1400的示意性框图。

区间大小确定核1400接收一个或多个状态变量值1410,该一个或多个状态变量值例如可以是更新状态变量值。此外,区间大小确定核1400基于一个或多个状态变量值1410来提供区间大小值1420。

区间大小确定核1400包括查找表评估机制1430,该查找表评估机制接收概率索引1432,其可以基于一个或多个状态变量值1410,并且其提供区间大小信息或区间大小值1420。

例如,可以使用概率索引推导1440来根据一个或多个(更新)状态变量值导出概率索引1432。

例如,可以在如本文中所公开的算术编码器或算术解码器中确定该一个或多个更新状态变量值1410,并且可以表示多个先前编码的符号值和/或多个先前解码的符号值的统计。

一般而言,区间大小确定核1400被配置为基于根据一个或多个状态变量值1410而导出的概率值(例如,概率索引1432)并基于编码区间大小(例如,由编码区间大小信息1412描述)来使用概率表(例如,ProbTabLPS)确定区间大小值1420。例如,概率表1450描述用于一组多个不同概率值(或者,概率索引1432)和用于给定编码区间大小(例如,用于单一给定参考编码区间大小)的区间大小。如图14中可见,概率索引1432例如可以用于选择概率表中的哪个元素应用作提供区间大小值1420的基础。换言之,概率索引1432确定概率表的元素的选择以用于进一步处理。此外,确定概率索引1432,通过该值在缩放1460中对概率表的所选条目进行缩放。一般而言,区间大小确定核可以被配置为在当前概率值并非一组多个概率值的情况下和/或在当前编码区间大小与给定(参考)编码区间大小不同的情况下,对概率表的元素或条目(例如,取决于当前概率值或概率索引1432而选择的元素)进行缩放。换言之,可以使用缩放1460从概率表1450的所选条目中导出区间大小值1420,其中,该缩放可以取决于概率值或概率索引1432以及编码区间大小信息1412二者。

例如,概率表1450的条目可以与单一编码区间大小以及与概率值或概率索引的给定范围相关联(其中,该范围通常可以覆盖三个或甚至更多个不同概率值或概率索引,其中,概率表的条目的数量优选地可以是二的效能效应(potency),以便利计算操作)。如果编码区间大小1412不同于与概率表1450的条目相关联的参考编码区间大小,则缩放1460例如可以对概率表1460的所选条目进行缩放。换言之,如果实际编码区间大小1412与参考编码区间大小(例如,与概率表1450的条目相关联的编码区间大小)不同,则缩放1460可以考虑该偏差(至少在参考编码区间大小与实际编码区间大小1410之间的偏差超过用于量化编码区间大小的量化区间的大小的情况下)。此外,缩放1460也可考虑概率值或概率索引1432是否位于与概率表1450的条目相关联的概率值或概率索引的范围的外部。例如,如果概率表1450的条目与概率索引的第一范围相关联但实际概率索引1432位于不与概率索引的第一范围重叠的索引的第二范围内,则缩放1460可以考虑该发现并应用附加缩放(除了基于实际编码区间大小与参考编码区间大小的偏差的缩放之外)。

总之,如果概率值或概率索引1432位于提供概率表条目所针对的该组多个概率值内,并且如果实际编码区间大小1412等于参考编码区间大小(或者,被量化为等于参考编码区间大小的值),则区间大小确定核1400可以提供概率表1450的所选条目作为区间大小值1420。另一方面,如果概率值或概率索引1432位于提供概率表条目所针对的“该组多个概率值”外部,和/或如果实际编码区间大小1412与参考编码区间大小偏离(例如,偏离了使得实际编码区间大小被量化为不同值),则缩放1460对概率表1450的所选条目进行缩放,以便获得区间大小值1420。

因此,可以使用相对较小的查找表1450来获得区间大小值1420,该查找表例如可以是一维概率表,该一维概率表的条目的数量小于不同的可能概率值或概率索引值的数量(例如,至少是2的因子)。

然而,应注意的是,区间大小确定核1400可以可选地由本文中所描述的特征、功能性和细节中的任一者补充。此外,应注意的是,区间大小确定核1400可以可选地在本文中所公开的算术编码器或算术解码器中的任一者中使用,并且也在本文中所公开的视频编码器或视频解码器中的任一者中使用。

图15示出了根据本发明的实施例的区间大小确定核1500的示意性框图。

区间大小确定核1500被配置为接收一个或多个状态变量值,该一个或多个状态变量值例如可以是更新状态变量值。例如,一个或多个状态变量值1510可以包括组合状态变量值。此外,区间大小确定核1500被配置为提供区间大小值1520,该区间大小值例如可以是子区间宽度值,例如,R

区间大小确定核1500包括可选的映射和/或舍入,该映射和/或舍入用于确定一个状态变量值,该状态变量值表示多个先前处理的(例如,先前编码的或先前解码的)符号值的统计。一般而言,算术编码器被配置为根据组合状态变量值(例如,根据一个更新的组合状态变量值1510)或根据其缩放和/或舍入版本来计算子区间宽度值(例如,区间大小值1520)来对要编码或要解码的符号值进行算术编码或算术解码。区间大小确定核1500包括例如一维查找表1550,该一维查找表用于将一个状态变量值(例如,组合状态变量值)或其缩放和/或舍入版本映射到概率值上。例如,一维查找表1550的条目包括用于组合状态变量值的值域的不同值区间的概率值。此外,区间大小确定核包含量化1560,该量化被配置为将描述(例如,在要编码的符号值的算术编码之前,或在要解码的符号值的算术解码之前)的算术编码或算术解码的编码区间的大小的编码区间大小信息1512量化到量化等级上。因此,提供了量化的编码区间大小信息1562。此外,存在缩放/乘法1570,该缩放/乘法确定概率值与量化等级(或者更精确而言,量化的编码区间大小信息1562)之间的乘积(例如,使用预计算乘积的查找,或者使用乘法)。例如,通过取决于状态变量值或其缩放和/或舍入版本选择一维查找表1550的条目来提供概率值。该概率值1552接着可以取决于(量化)编码区间大小信息1562(即,取决于“量化等级”)缩放,其中,该缩放可以对应于概率值与量化等级之间的乘积的确定。因此,以有效方式提供了区间大小值1520,其中,使用一维查找表是足够的。

然而,应注意的是,在此描述的区间大小确定核1500可以可选地由本文中所描述的特征、功能性和细节中的任一者单独地并以组合方式补充。此外,应注意的是,区间大小确定核1500现在可以在本文中所描述的算术编码器和算术解码器中的任一者中使用,也可以在本文中所描述的视频编码器及视频解码器中的任一者中使用。

图16示出了根据本发明的实施例的视频解码器1600的示意性框图。

视频解码器1600被配置为接收编码的视频信息,并且基于该编码的视频信息来提供解码的视频信息(或者,解码的视频内容)。

编码的视频信息1610(可以被视为视频比特流)例如可以包括切片类型信息,并且也可以包括二进制序列的编码表示。可选地,编码的视频信息1610可以包括附加信息,然而,附加信息对于本发明并非是必要的。

一般而言,视频解码器被配置为对多个视频帧(例如,视频帧序列)进行解码,并且视频解码器例如可以被配置为对被细分为一组一个或多个切片(优选地,被细分为多个切片)的视频帧进行解码。该视频解码器例如可以被配置为评估切片类型信息,以选择用于解码切片的操作模式(例如可以由“视频重构”块1680执行),其中该切片类型信息包括在编码的视频信息1610中,且其指示使用独立编码模式还是使用单预测性模式还是使用双预测性模式来对切片进行编码,在独立编码模式中,不存在基于先前帧的视频内容对当前帧的视频内容的预测,在单预测性模式中,存在基于先前帧的像素的一个块对像素块的预测,在双预测性模式中,存在基于一个或多个先前帧的像素的两个或更多个块对像素块的预测。

视频解码器1600包括算术解码器1620,该算术编码器例如被配置为基于二进制序列的编码表示来提供解码的二进制序列1622(以供“视频重构”块使用),该编码表示包括在编码的视频信息1610中。该算术解码器优选地包括第一源静态值确定1630和第二源统计值确定1640。因此,算术解码器1620被配置为:使用第一窗大小(或者,使用第一时间常数)来确定第一源统计值1632(例如,第一状态变量值)(其中例如,可以使用如本文中所描述的状态变量更新);并且使用第二窗大小(或者,使用第二时间常数)来确定第二源统计值1642(例如,第二状态变量值)(其中例如,可以使用如本文中所描述的状态变量更新)。该算术解码器可选地也包括组合器1650。因此,该算术解码器可被配置为基于第一源静态值并基于第二源统计值来确定组合的源统计值1652(例如,组合状态变量值)。

此外,算术解码器1620优选地包括范围值确定1660(例如可以包括本文中所描述的区间大小确定核或如本文中所描述的区间大小确定中的任一者)。因此,该算术解码器可以被配置为基于组合的源统计值1652(或者,基于第一统计值和第二源统计值)来确定用于区间细分的一个或多个范围值(或者,如本文中所描述的区间大小信息),该区间细分用于将二进制序列的编码表示(包括在编码的视频信息1610中)映射到解码的二进制序列1622(由视频重构块1680使用)上。

优选地,算术解码器1620也包括算术解码核1670(例如可以是块或单元),该算术解码核从范围值确定1660接收一个或多个范围值1662,并且其使用这些范围值从包括在编码的视频信息1610中的编码的二进制序列中导出解码的二进制序列1622。

此外,该视频解码器例如可以包括视频重构块(或者,单元)1680,该视频重构块(或者,单元)接收解码的二进制序列1622并基于解码的二进制序列1622来提供解码的视频内容1612(可能考虑如切片类型信息的附加控制信息)。

总之,算术解码器1600接收编码的视频信息1610并执行二进制序列的编码表示的算术解码,以导出解码的二进制序列1622。该算术解码利用关于解码的二进制序列1622中的二进制值的概率的知识。算术解码核1670通过依赖于定义区间细分的范围值1662来考虑关于解码的二进制序列1622内的二进制值的概率(或者,估计的概率)的该知识。简言之,算术解码核可以使用范围值1662来定义不同区间(例如,在0与1之间,或者在一系列整数值的范围内)。例如,算术解码核可以将二进制序列的编码表示解译为位于使用范围值定义的区间中的一个区间中的数的表示。通过识别由二进制序列的编码表示所表示的数位于区间中的哪一个中,算术解码核1670可以推断已使用二进制序列的编码表示对哪个比特或哪个比特序列进行了编码。

然而,应注意的是,算术解码核1670的该解释仅应被视为非常简短且一般的解释。关于算术解码核的细节例如可以见于标准H.264和H.265中。然而,也可以从该文献中看出不同概念(用于算术解码核的操作),并且算术解码核的细节与本发明并非特别相关。

然而,为了获得合适的范围值(允许高比特率效率),算术解码器1620(或者一般而言,视频解码器)使用不同窗大小来确定两个源统计值1632、1642(其中,“窗大小”定义解码的二进制序列1622的多个解码的二进制值上的平滑化的程度)。此外,为了增加提供给算术解码核1670的范围值的可靠性,第一源统计值1632和第二源统计值1642在一些实施例中被组合为组合的源统计值1652。

因此,可以说视频解码器1600提供了高效率,因为由算术解码核1670使用的范围值良好地适应于比特值(例如,解码的二进制序列1622内的比特值“0”和“1”)的实际概率。

作为附加备注,应注意的是,也可以修改视频解码器1600。在备选实现中,第二源统计值确定1640可以由提供的固定值(可以独立于解码的二进制序列,但是可以取决于一个或多个参数)替换。在该情况下,算术解码器可选地被配置为将第一源统计值1632与固定的非零值组合以便获得组合的源统计值1652。已发现,这样的简化在一些情况下会带来良好的结果,并且例如可以避免组合的源统计值的不适当的强烈变化。换言之,通过将固定的贡献引入到组合的源统计值的确定中,可以实现组合的源统计值可以不再很大程度地偏离该固定值。因此,如果偶然地在解码的二进制序列1622内存在相同的比特值的较长序列,则对解码的二进制序列的统计内的一些“后见之明”可以用于避免编码效率的强降级。

作为附加备注,应注意的是,算术解码器(和算术解码器的各个块)的功能性可以通常也被视为全部视频解码器的功能性。换言之,在本文中被描述为算术解码器的功能性的功能性也可以由视频解码器的其他块执行。

此外,应注意的是,根据图1的视频解码器1600可以由本文中所描述的特征、功能性和细节中的任一者单独地并以组合方式补充。

图17示出了根据本发明的实施例的视频解码器1700的示意性框图。

视频解码器1700被配置为接收编码的视频信息1710(例如,视频比特流),并且基于该编码的视频信息来提供解码的视频内容1712(例如,视频帧序列)。编码的视频信息1710例如可以包括切片类型信息,如本文中所描述的那样。编码的视频信息1710可以还包括配置信息,该配置信息也可以被视为控制信息。此外,编码的视频信息1710可以包括二进制序列的编码表示。

在图17中,示出了视频解码器1700的两个主要块,即,算术解码器1720和视频重构1780。然而,应注意的是,视频解码器的功能性的分布不受固定块结构约束,但是也可以在广泛范围内进行修改。而且,应注意的是,视频解码器的实际实现可以具有本领域技术人员熟知的附加块和/或功能性。

算术解码器1720接收二进制序列的编码表示1711。然而,算术解码器(或者,可以在算术解码器外部的控制块)可以可选地接收切片类型信息和配置信息(或者,控制信息)。具体地,可选地考虑了切片类型信息和配置信息或控制信息中的一些或全部,算术解码器1720基于二进制序列的编码表示1711将解码的二进制序列1722提供给视频重构1780。

在下文,将更详细地描述算术解码器1720的功能性。算术解码器包括算术解码核1770,该算术解码核接收二进制序列的编码表示1711并提供解码的二进制序列1722。算术解码核确定二进制序列的编码表示1711表示解码的二进制序列1722的哪些比特值。出于该目的,算术解码核1770检查由二进制序列的编码表示1711表示的数位于多个数的范围的哪个区间中。取决于由二进制序列的编码表示1711所表示的数位于多个(至少两个)区间中的哪个区间的决策,而识别解码的二进制序列1722的某一比特值或比特值的组或符号。

出于导出解码的二进制序列1722的目的,算术解码核接收关于区间的信息,该关于区间的信息通常对应于比特值的概率的一些程度。在当前情况下,算术解码核1770接收用于区间细分的“范围值”或“区间大小信息”1762(即,用于定义要由算术解码核1770使用的数范围的区间的范围值1762)。具体地,应注意的是,算术解码核1770例如可以与在根据标准H.264的视频编码器/解码器中使用或在根据标准H.265的视频编码器/解码器中使用的算术解码核相似或相同。然而,应注意的是,也可以使用用于实现算术解码核1770的不同方法。

鉴于以上论述,显而易见的是,算术解码器1720的一项重要的功能性是提供定义用于算术解码核1770的区间细分的范围值或区间大小信息1762。一般而言,可选地,考虑定义例如初始化值、“窗大小”、“窗大小调整”等的参数的一些控制信息,算术解码器1720根据解码的二进制序列1722的先前解码的二进制值来导出这些范围值1762。

在算术解码器1700中,使用了两个源统计值确定块(或者,单元)1730、1740(例如可以对应于本文中所描述的状态变量更新)。例如,第一源统计值确定块1730接收解码的二进制序列1722的一个或多个先前解码的二进制值(或者,符号值)(也以x

例如,第一源统计值确定块1730的功能性与具有某一个窗大小的滑动平均值的形成相似,除了使用引入一些“无限冲激响应”特性的递归算法的事实以外。因此,第一源统计值1732没有精确表示滑动窗求和运算或滑动窗平均运算的结果,而相反,应被视为“虚拟滑动窗”运算,这是由于结果非常相似。

此外,第二源静态值确定块1740在与第一源静态值确定块1730相比时执行相似操作。然而,第二源统计值确定块1740通常使用不同参数(例如,不同窗长度n

应注意的是,源统计值确定块1730、1740例如可以执行如针对本文中的状态变量更新解释的功能性。此外,应注意的是,在一些实施例中,不同计算规则也可以用于源统计值确定块1730、1740中。

算术解码器1720可选地还包括组合的源统计值确定块(或者,单元)250,该组合的源统计值确定块(或者,单元)被配置为接收第一源统计值1732和第二源统计值1742。源统计值组合块1750基于第一源统计值和第二源统计值来提供组合的源统计值1752。例如,源统计值组合块1750可以形成第一源统计值1732的总和或平均值和第二源统计值1742的总和或平均值,从而获得组合的源统计值1752。

然而,在导出组合的源统计值1752时,源统计值组合块1750也可以将不同加权应用于第一源统计值1732和第二源统计值1742,其中,不同加权甚至可以在切片内或在不同切片之间变化。

例如,源统计值组合块1750可以执行组合751或组合892的功能性。然而,该功能性的变化也是可能的。

例如,在一个(备选)实施例中,源统计值组合块1750将第一统计值中的仅一个与固定值组合,从而获得组合的源统计值或组合状态变量值1752。这样的概念可以是有利的,以避免组合的源统计值1752与解码的二进制序列1722内的二进制值的预期概率偏离过多。

算术解码器1720被配置为基于组合的源统计值或组合状态变量值1752或备选地基于两个或更多个状态变量值来导出用于区间细分的范围值1762(将被提供给算术解码核1770)。

该处理步骤例如可以被视为“范围值确定”。例如,范围值确定可以包括可选的值处理1766,该值处理接收组合的源统计值1752并基于该组合的源统计值来提供概率值或状态索引值。例如,值处理1766可以将组合的源统计值1752的值的范围映射到0与1之间的范围上,或者到0与0.5之间的范围上,或者到整数索引值上。

可选地,值处理1766可以提供信息1767,该信息可以是指示下一解码值(例如,解码的二进制序列1722的解码值)更可能取值“1”还是更可能取值“0”的二进制信息。可选地,算术解码器(或者,范围值确定)可以包括映射表1769。例如,映射表1769可以接收标示表条目的索引值(例如,pStateIdx)。因此,映射表1769可以提供与由索引值(例如,pStateIdx)标示的所述表项目对应的一个或多个范围值1762。因此,通过导出“状态索引值”(例如,pStateIdx)并通过基于状态索引值来评估映射表,可以基于组合的源静态值1752来提供用于区间细分的一个或多个范围值。

映射表1769例如可以具有与在标准H.264或标准H.265中描述的映射表相同的结构。然而,可选地,映射表的内容可以适应于视频解码器的具体细节。具体地,映射表的条目可以适于在具体视频解码器中预期的统计性质。

然而,应注意的是,例如可以使用参考图4至图15中的任何附图描述的区间大小确定或使用区间大小确定核或使用状态变量更新来根据本文中所公开的任何概念执行基于一个或多个状态变量值或基于组合状态变量值来导出区间大小信息。

并且,应注意的是,在此所述的算术解码核可以对应于本文中所公开的任何算术解码核。

算术解码器(或者一般而言,视频解码器)也包括控制块1790,该控制块可以接收控制信息或配置信息,并且其可以基于该控制信息或配置信息来调整用于提供范围值的参数(并且可能也有其他参数,例如,由算术解码核1770使用的附加参数)。例如,控制块1790可以接收可以包括在编码的视频信息1710中的切片类型信息、“cabac init flag”、“ws_flag”和“ctu_ws_flag”中的一个或多个。

此外,控制1790例如可以取决于控制信息而调整窗大小参数n

关于控制单元1790的功能性,应注意的是,控制单元例如可以根据下文所述的机制来确定参数n

现在参考视频重构块1780,应注意的是,视频重构块1780通常接收解码的二进制序列1722以及也接收配置信息的至少一些元素。例如,视频重构1780可以基于解码的二进制序列1722来重构整数参数和/或浮点参数和/或图像数据。例如,可以存在定义解码的二进制序列的某一比特或部分应如何映射到整数参数上或映射到浮点参数上或映射到图像数据(例如,变换系数等)上的映射规则。因此,视频重构块1780重构用于根据已解码的二进制序列1722来重构视频帧的信息。接着,视频重构块可以基于重构信息(根据已解码的二进制序列1722而导出)来生成图像信息。

例如,视频重构1780可以包括与在标准H.264或标准H.265中描述的相同的功能性。然而,其他方法也可以用于视频重构,该等方法适应于基于解码的二进制序列(并且有可能基于附加配置信息或控制信息)来提供解码的视频内容。因此,视频重构1780提供了解码的视频内容1712,该解码的视频内容可以采用视频帧序列的形式。

总之,已提供根据本发明的实施例的视频解码器的概述。然而,应注意的是,存在用于功能块(例如,用于源统计值确定块1730、1740,用于源统计值组合块1750,用于值处理块1766,用于映射表1769,以及用于算术解码核1770)的不同实现。而且,对于视频重构块1780和控制块1790,不同实施是可能的。

然而,也应注意,本文中所描述的功能块可以由在本申请中全部公开的特征、功能性和细节中的任一者补充。并且,应注意的是,本申请内公开的特征、功能性和细节可以单独地或以组合方式引入,从而扩展视频解码器1700的功能性。

在下文中,将描述根据本发明的另外的实施例。

除了其他特征、功能性和细节之外,将描述使用有限状态机的上下文模型更新方法,该上下文模型更新方法可以单独地或与本文中所公开的所有特征、功能性和细节组合地使用。

在下文中,将在例如章节“根据状态变量来导出概率估计”和“更新状态变量”和“优选实施例”中描述不同的本发明的实施例和方面。

然而,在任何其他的章节中描述的特征、功能性和细节也可以可选地被引入到根据本发明的实施例中。

并且,在上文提及的章节中描述的实施例可以单独地使用,并且也可以由另一章节中的特征、功能性和细节中的任一者补充。

而且,应注意的是,本文中所描述的个别方面可以单独地或组合地使用。因此,可以将细节添加到所述各个方面中的每一方面,而不将细节添加到所述方面中的另一者。

具体地,在权利要求中也描述了实施例。权利要求中所描述的实施例可以可选地由如本文中所描述的特征、功能性和细节中的任一者单独地和组合地补充。

也应注意,本公开内容明确地或隐含地描述了可在视频编码器(用于提供输入视频信号的编码表示的装置)中使用并可以在视频解码器(基于视频信号的编码表示来提供视频信号的解码表示的装置)中使用的特征。因此,本文中所描述的特征中的任一者可以用于视频编码器的上下文和视频解码器的上下文。

此外,本文中所公开的与方法相关的特征和功能性也可以在装置(被配置为执行这样的功能性)中使用。此外,本文中关于装置所公开的任何特征和功能性也可以用于对应的方法中。换言之,可以通过关于装置所描述的特征和功能性中的任一者来补充本文中所公开的方法。

并且,本文中所描述的特征和功能性中的任一者可以在硬件或软件中实现,或者使用硬件与软件的组合来实现,如将在章节“实现备方案”中描述的那样。

上下文模型更新是通过提供使编码引擎适应于基础源统计的可能性的有效二进制算术熵编码器的关键特征。

在本发明中,每个上下文模型配备有例如独立概率估计级,该独立概率估计级为符号序列的每个符号提供用于熵编码或解码的概率估计。该上下文模型更新方法的基本概念在于维护每个上下文模型的一个或多个状态变量,该一个或多个状态变量共同地表示当前概率估计。为了适应于符号序列的统计,频繁地更新上下文模型的状态变量(例如,在状态变量更新中)。例如,在每个符号的编码之后。

除了其他方面之外,本发明包括两个关键方面。第一方面解决了根据状态变量来导出概率估计(或者,区间大小信息)的方式。第二方面解决了在出现符号之后更新状态变量的方式。这些方面可以可选地组合地使用。

本发明可以可选地与二进制算术编码引擎组合,并且也与任何其他熵编码引擎组合,该任何其他熵编码引擎需要用于要编码或解码的二进制符号的各个概率估计。例如,本发明也可以与PIPE编码概念组合。

将熵编码或解码应用视为例如采用一个或多个上下文模型c

对于每个上下文模型c

状态变量优选地应但不必须具有以下性质:

1.如果

2.用于

3.

因此,负的状态变量可以对应于

本发明允许在许多情形中非常有效地使用比特移位运算。当x是整数且y是2的幂时,可以通过简单比特移位运算来实现表达式

可以在无进一步通知的情况下以固定或浮点算术来实现储存非整数数字(例如,概率值、加权因子、查找表元素等)的任何变量。这引入了对于本发明的每个特定实现可以不同的舍入运算。

存在使状态变量与概率值相关联的许多适用方式,即,实现P(·)的方式。例如,可以通过下式来实现与HEVC的概率估计器相当的状态表示:

α是参数,其中0<α<1。

为了实现与HEVC相当的配置,设定了α≈0.949217,并且对于所有i和所有k,

该示例性配置应给出关于可以如何定义状态变量的一些见解。一般而言,不必定义P(·),因为其不直接使用,如将见于下文中。反而,其经常是由于本发明的各个部分的实际实现而产生的。

在通过上下文模型对第一符号进行编码或解码之前,可选地通过可以针对压缩应用优化的合理值来初始化所有状态变量。

对于对符号进行编码或解码,概率估计是根据上下文模型的状态变量而导出的。在下文中呈现了两个备选方法。方法1比方法2产生更准确的结果,但是也具有更高的计算复杂度。

方法1

该方法由两个步骤组成。首先,上下文模型的每个状态变量

步骤1:

采用查找表LUT1用于例如根据等式(1)将状态变量

LUT1是包含概率值的查找表;

例如可以通过块882和884来执行该步骤。

步骤2:

例如根据下式来根据概率值

例如可以通过块886来执行该步骤。

方法2

在下文中呈现了用于根据状态变量来导出概率估计的备选方法。该备选方法产生了较不准确的结果且具有较低的计算复杂度。首先,例如根据下式来导出状态变量的加权和s

例如可以通过块892来执行该步骤。

其次,例如根据下式来从状态变量s

LUT2是包含概率估计的查找表。

a

例如可以通过块894来执行该步骤。

对方法1和方法2的可选修改

对于软件实现,其可以在尽可能多的运算可移位到查找表中的情况下增加产出率。这在等式(1)通过下式替换的情况下对于方法1变得更简单:

对于方法2,等式(2)通过下式替换:

对于两个等式,该修改使得可以将情况差异整合到查找表中,这仅需要如前所述的元素的数量的二倍。然而,为了实现高产出率,缩减运算的数量同时增加的查找表大小的相关性可以较低这样可能有所帮助。

在本发明中,在无进一步通知的情况下,用于方法1和方法2的可选修改可以可选地应用于方法1和方法2的所有应用。

与CABAC的二进制算术编码引擎(M编码器)的组合(可选的)

CABAC的M编码器采用2D查找表以替换编码区间的区间细分所需的乘法。使R是在二进制符号的算术编码之前的编码区间。R应例如在区间[256,510]中。要编码的符号与上下文模型c

要注意的是,R

概率较低的符号p

p

例如,查找表RangeTabLPS可以具有8×32或8×16个元素,用于R的所允许的值被量化到8个单元且p

R

Qp(·)和Qr(·)分别是用于p

备选方案1

备选地,查找表probTabLPS可以具有32或16个元素,用于R的所允许的值被量化到8或16个单元且p

Qp

通常期望的是,可以容易地实现两个量化函数。只要适当地选择RangeTabLPS的元素,即可以使用任意量化函数。

这可以用于本发明。

回顾一下,有必要采用查找表LUT1或LUT2以导出用于上下文模型的概率估计。这些查找表可以并入于RangeTabLPS中(或者一般而言,并入于与M编码器的查找表不同的2维查找表中)。

代替方法1和方法2中的计算概率估计,例如,针对

对于方法1,在等式(1)和等式(7)的二边乘以R,从而产生

接下来,用包含用于不同量化值Qr(R)的期望数的预计算乘积R·LUT1的2D查找表来替换R·LUT1。(实施例的实际实现的示例)

所得2D查找表例如可以在块736和738中使用。

对于方法2,在等式(2)二边乘以R,从而产生

接下来,用包含用于不同量化值Qr(R)的期望数的预计算乘积R·LUT2的2D查找表来替换R·LUT2(实施例的实际实现的示例)。在LUT3是这样的2D查找表的情况下,等式(8)变为

如可从等式(9)看出的那样,LUT3将例如RangeTabLPS和LUT2并入在一个单一查找表中。

LUT3或等式(9)例如可以在块756中使用。

备选地,LUT3可以由LUT4(1D)和根据被呈现为备选方案1的方案的乘法运算替换。

函数Qr

其中u、v和w取决于压缩应用。

例如,u=5,v=1以及w=3。

与上下文模型c

相同论证适用于方法1。

在下文中,呈现了有效地实现RangeTabLPS(或者,用于导出区间大小信息)的另外的(可选的、备选的)方式。代替储存整个查找表,根据需要在操作中计算元素。出于该目的,应定义新的查找表BaseTabLPS。其包含可以用于通过采用简单运算来导出RangeTabLPS的每个元素的值。

一般而言,例如,可以在块870中评估RangeTabLPS[i][j],其中,例如可以使用BaseTabLPS和对应的缩放函数Scal(x,y)(使用BaseTabLPS的实施例)或使用ProbTabLPS和对应的缩放函数Scal(x,y)(使用ProbTabLPS的实施例)(预先或在操作中(on-the-fly))来获得RangeTabLPS的条目。

在优选实施例(例如,使用BaseTabLPS的实施例)中,BaseTabLPS应具有大小μ·λ且大小μ′·λ的RangeTabLPS应根据BaseTabLPS来如下生成:

Scal(x,y)是缩放函数。例如,μ=16,λ=8,μ′=32,

BaseTabLPS[16][8]={

{125,140,156,171,187,203,218,234,},

{108,121,135,148,162,175,189,202,},

{94,105,117,129,141,152,164,176,},

{81,91,101,111,121,131,141,151,},

{71,79,88,97,106,115,124,133,},

{61,68,76,83,91,99,106,114,},

{53,59,66,72,79,86,92,99,},

{46,51,57,63,69,74,80,86,},

{40,45,50,55,60,65,70,75,},

{35,39,43,48,52,56,61,65,},

{31,34,38,42,46,50,54,58,},

{27,30,33,37,40,43,47,50,},

{24,27,30,33,36,39,42,45,},

{21,23,26,28,31,34,36,39,},

{18,20,22,24,27,29,31,33,},

{16,18,20,22,24,26,28,30,},

}。(示例)

换言之,例如,RangeTabLPS的上半部分由BaseTabLPS的值组成(或者,包含这些值),其中,向下舍入运算被应用于每个元素。例如,RangeTabLPS的下半部分由BaseTabLPS的值组成(或者,包含这些值),其中,每个元素被除以8(或者,被除以另一数字),(可选地)接着是向下舍入运算,其对应于例如右移位3。

该方法仅需要储存小于RangeTabLPS的BaseTabLPS,并且该方法利用RangeTabLPS的行中的值例如随着行增加而指数地衰减的事实。指数衰减取决于参数α。

在另一示例(例如,使用BaseTabLPS的另一实施例)中,μ=4,λ=8,μ′=32,

BaseTabLPS[4][8]={

{121,136,151,166,181,196,211,226,},

{100,112,125,137,150,162,175,187,},

{83,93,103,114,124,134,145,155,},

{70,78,87,96,105,113,122,131,}

}。(示例)

如果选择α,则可以使用该配置,使得RangeTabLPS的行的值每四行减半。要注意的是,BaseTabLPS中的值例如可以仅从相关联的RangeTabLPS中提取。

该方法涉及BaseTabLPS可以(可选地)与在等式(11)和相关联的优选实施例中定义的备选方案1组合。备选方案1可以被看作用于根据一个常数和计算运算(用于各行)来导出RangeTabLPS的行的方法。由于BaseTabLPS包含例如RangeTabLPS的缩放行(忽略舍入),所以可以应用备选方案1以导出BaseTabLPS。

在优选实施例中(例如,在另一实施例中,例如,在使用ProbTabLPS的实施例中),定义了大小为μ的probTabLPS。大小为μ·λ的BaseTabLPS应例如根据probTabLPS来生成,如下:

例如,μ=16,λ=8,μ′=32,

probTabLPS[16]={

125,

108,

94,

81,

71,

61,

53,

46,

40,

35,

31,

27,

24,

21,

18,

16,

}。(示例)

接着,在先前方法之后,可以根据BaseTabLPS来计算RangeTabLPS。要注意的是,例如可以通过计算BaseTabLPS的相关联值并接着应用缩放函数Scal(x,y)来在操作中计算RangeTabLPS的每个值:

该方法仅需要储存小于BaseTabLPS且因此小于RangeTabLPS的probTabLPS。

在相同论证之后,BaseTabLPS的一个列例如可以用于通过仅忽略BaseTabLPS和RangeTabLPS的所有其他的列来仅导出RangeTabLPS的一列。RangeTabLPS的所导出的列接着例如可以用于通过采用根据等式(11)的备选方案1来导出RangeTabLPS的其余列。

在优选实施例中,定义了大小为μ的probTabLPS。大小为μ′·λ的RangeTabLPS应根据probTabLPS来生成,如下:

要注意的是,

在符号的编码或解码之后,可以更新上下文模型的一个或多个状态变量,以便追踪符号序列的统计行为。这例如可以在块640中进行。

该更新例如如下地进行:

A是储存整数值的查找表。

z是偏移量,该偏移量确保仅使用非负值来存取查找表A。

如下文将讨论的那样,查找表中的值可以被选择为使得

备选地,可以引入在等式(3)的每次执行之后进行的限幅运算,例如,如下:

为了相对于压缩应用优化查找表A,也可以用计算运算来替换由查找表A的值近似的所假设的函数。例如,

其中

要注意的是,创建查找表A的该方式不包含如上所述的限幅运算。现在,可以通过评估等式7中的

特定编码器或解码器应用具有使用计算运算还是使用等效表(包含通过计算运算导出的值)的选择。

在用于优化用于视频压缩上下文的查找表A中,使用了可能配置的以下范围:

offset={2

对等式(3)的可选修改

两个可选修改可以应用于等式(3),以便在优化的软件实现中实现较高产出率。

对于第一可选修改,等式(3)用下式替换:

对于第二可选修改,等式(3)用下式替换:

对于第一可选修改和第二可选修改,等式(3)用下式替换:

通过采用第一可选修改和第二可选修改的组合,将情况差异整合到查找表A中成为可能,这仅需要如前所述的元素的数量的两倍。然而,为了实现高产出率,缩减运算的数量同时增加的查找表大小的相关性可以较低可能有所帮助。

在本发明中,在无进一步通知之情况下,两个可选修改(单独地或组合地)可以应用于等式3的所有应用。

在优选实施例中,使用了以下配置:

上下文模型M的数量取决于压缩应用。

方法2用于根据状态变量来导出概率估计。

等式(3)用于更新状态变量。

不使用根据等式(6)的可选的限幅。

N=2

LUT2={0.5000,0.4087,0.3568,0.3116,0.2721,0.2375,0.2074,0.1811,0.1581,0.1381,0.1206,0.1053,0.0919,0.0803,0.0701,0.0612,0.0534,0.0466,0.0407,0.0356,0.0310,0.0271,0.0237,0.0207,0.0180,0.0158,0.0138,0.0120,0.0105,0.0092,0.0080,0.0070}

a

A={165,146,128,110,94,79,66,54,43,34,26,20,15,11,8,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0}

z=16

在对符号进行编码之前,

对于该配置,等式(3)可以被写为:

因此,

两个等式均在对1进行编码之后增加状态变量(增加到至多某一最大值)且在对0进行编码之后减小状态变量(减小到至少某一最小值)。然而,与等式(5)增加或减小

在另一优选实施例中,使用与先前的优选实施例相同的配置,但是第一可选修改和第二可选修改被应用于等式(3),从而产生:

要注意的是,查找表LUT2和A通常针对特定压缩应用而被优化。

当查找表A被优化时,以下配置与等式(7)一起使用:

offset=2

这导致A={161,147,133,119,105,91,77,63,49,35,29,23,17,13,9,5,

4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0}。

要注意的是,A已经被限幅,因此最后一个值等于0而不是4。

在另一优选实施例中,除了以下方面之外,该配置与先前的优选实施例相同:

在等式(3)的每次执行之后,利用以下参数使用根据等式(6)的限幅:

查找表A包含以下值:

A={165,146,128,110,94,79,66,54,43,34,26,20,15,11,8,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}

要注意的是,仅改变查找表A的最后一个元素,并且现在,A的第二半中的所有值具有值4,这样可以有效地实现。

设想,查找表在第一个4之后被截断,并且用于该表的存取索引被限幅为最后一个表元素(实施例的可选修改)。

该技巧可以可选地被采用为用于查找表A的不同版本,只要该表末尾处的元素的数字具有相同值即可。

在另一优选实施例中,除了以下方面之外,该配置与先前的优选实施例相同:

使用具有大小为32的备选方案1

LUT4={114,100,87,75,66,58,51,45,40,35,31,27,24,21,18,16,14,13,11,10,9,8,7,7,5,5,4,4,3,3,2,2}

在另一优选实施例中,该配置与先前的优选实施例相同。

LUT4={114,100,87,75,66,58,51,45,40,35,31,27,24,21,18,16,14,13,11,10,9,8,7,7,5,5,4,4,3,3,2,2}

在另一优选实施例中,除了以下方面之外,该配置与先前的优选实施例相同:

使用具有大小为16的备选方案1

LUT4={107,82,63,48,38,29,22,17,13,11,8,7,5,4,3,2}

在另一优选实施例中,该配置与先前的优选实施例相同。

LUT4={107,82,63,48,38,29,22,17,13,11,8,7,5,4,3,2}

在另一优选实施例中,使用了以下配置:

上下文模型M的数量取决于压缩应用。

方法2用于根据状态变量来导出概率估计。

等式(3)用于更新状态变量。

不使用根据等式(6)的可选的限幅。

N=1

LUT2={0.5000,0.4280,0.3855,0.3472,0.3127,0.2817,0.2537,0.2285,0.2058,0.1854,0.1670,0.1504,0.1355,0.1220,0.1099,0.0990,0.0892,0.0803,0.0723,0.0651,0.0587,0.0529,0.0476,0.0429,0.0386,0.0348,0.0313,0.0282,0.0254,0.0229,0.0206,0.0186}

a

A={26,23,20,18,15,13,11,9,7,6,5,4,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}

z=16

在对符号进行编码之前,

在另一优选实施例中,使用方法2且针对不同的上下文模型不同地设置参数

在另一优选实施例中,使用方法1且针对不同的上下文模型不同地设置参数

当查找表A被优化时,以下配置与等式(7)一起使用:

offset=2

这导致A={225,203,181,159,137,115,93,71,49,35,29,23,17,13,9,5,

4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,}.

要注意的是,A已经被限幅,因此最后一个值等于0而不是4。

在另一优选实施例中,当使用方法1或方法2时,N=2且针对不同的上下文模型不同地设置参数

当查找表A被优化时,以下配置与等式(7)一起使用:

offset=2

这导致A={165,151,137,123,109,95,81,67,53,39,29,23,17,13,9,5,

4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,}.

备选地,在该实施例中

4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0}。要注意的是,A已经被限幅,因此最后一个值等于0而不是4。

尽管在装置的上下文中描述了一些方面,但是显而易见的是,这些方面也表示对应方法的描述,其中,块或设备对应于方法步骤或方法步骤的特征。类似地,方法步骤的上下文所描述的方面也表示对应设备的对应块或项目或特征的描述。可以由(或者,使用)硬件装置(比如,微处理器、可编程计算机或电子电路)执行方法步骤中的一些或全部。在一些实施例中,可以由这样的装置执行最重要的方法步骤中的一个或多个。

取决于某些实现要求,可以在硬件中或在软件中实现本发明的实施例。可以使用其上已存储有电子可读控制信号的数字存储介质(例如,软盘、DVD、蓝光、CD、ROM、PROM、EPROM、EEPROM或闪存)来执行所述实现,该电子可读控制信号与可编程计算机系统协作(或者,能够与之协作),使得相应方法得以执行。因此,数字存储介质可以是计算机可读的。

根据本发明的一些实施例包括具有电子可读控制信号的数据载体,该电子可读控制信号能够与可编程计算机系统协作,使得本文中所述的方法之一得以执行。

通常,本发明的实施例可以被实现为具有程序代码的计算机程序产品,当该计算机程序产品在计算机上运行时,程序代码可操作地用于执行方法之一。程序代码例如可以存储在机器可读载体上。

其他实施例包括存储在机器可读载体上的计算机程序,该计算机程序用于执行本文所述的方法之一。

换言之,本发明方法的实施例因此是具有程序代码的计算机程序,该程序代码用于在计算机程序在计算机上运行时执行本文所述的方法之一。

因此,本发明方法的另一实施例是包括记录在其上的计算机程序的数据载体(或者数字存储介质或计算机可读介质),该计算机程序用于执行本文所述的方法之一。数据载体、数字存储介质或记录介质通常是有形的和/或非瞬时性的。

因此,本发明方法的另一实施例是表示计算机程序的数据流或信号序列,所述计算机程序用于执行本文所述的方法之一。数据流或信号序列可以例如被配置为通过数据通信连接(例如,通过互联网)进行传送。

另一实施例包括处理装置,例如,计算机或可编程逻辑器件,所述处理装置被配置为或适于执行本文所述的方法之一。

另一实施例包括其上安装有计算机程序的计算机,该计算机程序用于执行本文所述的方法之一。

根据本发明的另一实施例包括被配置为向接收机(例如,以电子方式或以光学方式)传送计算机程序的装置或系统,该计算机程序用于执行本文所述的方法之一。接收器可以是例如计算机、移动设备、存储设备等。装置或系统可以例如包括用于向接收器传送计算机程序的文件服务器。

在一些实施例中,可编程逻辑器件(例如,现场可编程门阵列)可以用于执行本文中所描述的方法的功能中的一些或全部。在一些实施例中,现场可编程门阵列可以与微处理器协作以执行本文中所描述的方法中之一。通常,方法优选地由任意硬件装置来执行。

本文中所描述的装置可以使用硬件装置、或者使用计算机、或者使用硬件装置和计算机的组合来实现。

本文中所描述的装置或本文描述的装置的任何组件可以至少部分地在硬件和/或软件中实现。

本文中所描述的方法可以使用硬件装置、或者使用计算机、或者使用硬件装置和计算机的组合来执行。

本文中所描述的方法或本文描述的装置的任何组件可以至少部分地由硬件和/或由软件执行。

本文中所描述的实施例对于本发明的原理仅是说明性的。应当理解的是,本文中所描述的布置和细节的修改和变形对于本领域其他技术人员将是显而易见的。因此,旨在仅由所附专利权利要求的范围来限制而不是由借助对本文的实施例的描述和解释所给出的具体细节来限制。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号