基于级联ROM‑RAM表执行算术编译的方法和设备与流程

文档序号:12143620阅读:313来源:国知局
基于级联ROM‑RAM表执行算术编译的方法和设备与流程

本发明涉及用于处理视频信号的方法和设备,并且更具体地,涉及一种用于按级联ROM-RAM表执行算术编译的技术。



背景技术:

熵编译是用来最优地定义进入压缩数据序列的比特的数量的过程。因此,它是任何类型的数据和媒体压缩的基本组件,并且强烈地影响最终压缩效率和计算复杂性。算术编译是具有相对较高的复杂性但是最近已被广泛地采用的最优熵编译技术,并且是H.264/AVC、H.265/HEVC、VP8和VP9视频编译标准的一部分。然而,通过像UHD和高帧速率视频一样的应用对于甚高压缩数据吞吐量的增加需求需要新形式的更快的熵编译。



技术实现要素:

技术问题

存在问题在于二值化迫使要编译的所有数据的顺序分解,所以仅能够通过更高的时钟速度来使它变得更快。

存在问题在于窄寄存器(narrow register)需要尽可能快地提取独立数据比特以避免损失精度,这也是一种不可避免的串行化。存在问题在于复杂的乘积近似是以串行形式定义的,而快速乘法是相当便宜的。

存在当编译器使用二分搜索或另一形式的二进制树搜索时将解码过程顺序地分解成二进制判定的问题,并且存在问题在于编译系统不能够在二进制算术编译之上显著地改进。

存在问题在于在算术编译中,关于符号的信息不直接按比特定义,而是作为元素Dk与元素Lk之间的比值。

技术方案

本发明的实施例提供通过使用表查找来增加算术编译的吞吐量的方法。

此外,本发明的实施例提供具有级联ROM-RAM表查找的解码器。

此外,本发明的实施例提供用大且便宜的ROM表和较小的RAM表的级联替换基于RAM的表的方法。

此外,本发明的实施例提供将表查找用于除法近似的方法。

有益效果

根据本发明,能够通过使用表查找来增加算术编译的吞吐量(每秒处理的比特)。

此外,根据本发明,具有级联ROM-RAM表查找的解码器能够提高压缩效率和计算复杂性。

此外,根据本发明,具有级联ROM-RAM表查找的解码器将适用于任何形式的算术编译。

此外,根据本发明,具有级联ROM-RAM表查找的解码器实现显著更快的解码。

附图说明

图1和图2图示根据本发明被应用于的实施例的处理视频信号的编码器和解码器的示意框图。

图3是图示更新算术编译区间数据所需要的操作的集合的流程图。

图4和图5图示根据本发明被应用于的实施例的基于二进制算术编译来处理视频信号的编码器和解码器的示意框图。

图6和图7图示根据本发明被应用于的实施例的通过使用大数据字母表和长寄存器所设计的算术编译系统的编码器和解码器的示意框图。

图8示出根据本发明被应用于的实施例的具有在P位寄存器上的Dk和Lk的二进制表示的图。

图9示出具有级联ROM-RAM表的算术解码器的示意框图。

图10是图示根据本发明被应用于的实施例的对数据符号进行解码的方法的流程图。

图11是图示根据本发明被应用于的实施例的通过使用级联ROM-RAM表来执行算术解码的方法的流程图。

具体实施方式

根据本发明的一个方面,提供了针对数据符号执行算术解码的方法,包括:获得解码表索引;从ROM表中检索区间长度与指派给符号的区间内的点之间的比值的上界值和下界值;基于上界值和下界值从RAM表获得用于二分搜索的初始值;以及在区间中搜索序列的值,其中,区间是基于初始值而确定的。

在本发明的另一方面中,该方法还包括:确定区间长度的最高有效1比特的位置;通过从该位置加1比特开始在最高有效1比特之后提取区间长度的最高有效位;以及通过从该位置开始提取区间基的最高有效位。

在本发明的另一方面中,通过组合区间长度的最高有效位以及指派给符号的区间内的点的最高有效位来创建解码表索引。

在本发明的另一方面中,基于指派给符号的区间内的点的最小值与区间长度的最大值之间的比值而确定上界值。

在本发明的另一方面中,基于指派给符号的区间内的点的最小值与区间长度的最大值之间的比值而确定下界值。

在本发明的另一方面中,基于与乘法近似相对应的比特移位而确定上界值和下界值。

在本发明的另一方面中,提供了针对数据符号执行算术解码的设备,包括:索引创建单元,索引创建单元被配置成创建解码表索引;级联ROM-RAM表单元,级联ROM-RAM表单元被配置成从ROM表获得区间长度与指派给符号的区间内的点之间的比值的上界值和下界值,并且基于上界值和下界值从RAM表获得用于二分搜索的初始值;以及二分搜索单元,二分搜索单元被配置成在区间中搜索序列的值,其中,区间是基于初始值而确定的。

在本发明的另一方面中,该设备还包括熵解码单元,熵解码单元被配置成确定区间长度的最高有效1比特的位置,通过从该位置加1比特开始在最高有效1比特之后提取区间长度的最高有效位,并且通过从该位置开始提取码值的最高有效位。

发明模式

在下文中,将参考附图描述根据本发明的实施例的示例性元素和操作。然而应当注意,参考附图所描述的本发明的元素和操作仅作为实施例被提供,并且本发明的技术精神以及核心配置和操作不限于此。

此外,本说明书中使用的术语是现在广泛地使用的常见术语,但是在特殊情况下,使用由本申请人随机地选择的术语。在这种情况下,在对应部分的详细描述中清楚地描述对应术语的含义。因此,应当注意,本发明不应该被解释为仅基于本说明书的对应描述中所使用的术语的名称并且本发明应该通过甚至检查对应术语的含义来解释。

此外,本说明书中使用的术语是被选择来描述本发明的常见术语,但是在存在具有类似含义的这些术语的情况下,可以为了更适当的分析用其它术语替换。例如,可以在每个编译过程中适当地替换并解释信号、数据、样本、图片、帧和块。

图1和图2图示根据本发明被应用于的实施例的处理视频信号的编码器和解码器的示意框图。

图1的编码器100包括变换单元110、量化单元120以及熵编码单元130。图2的解码器200包括熵解码单元210、去量化单元220以及逆变换单元230。

编码器100接收视频信号并且通过从该视频信号减去预测信号来生成预测误差。

所生成的预测误差被发送到变换单元110。变换单元110通过对预测误差应用变换方案来生成变换系数。

量化单元120对所生成的变换系数进行量化并且将经量化的系数发送到熵编码单元130。

熵编码单元130对经量化的信号执行熵编译并且输出熵编译的信号。在这种情况下,熵编译是用来最优地定义进入压缩数据序列的比特的数量的过程。作为最优熵编译技术之一的算术编译是通过单个实数来表示多个符号的方法。

本发明定义对用于通过使用表查找并且具体地用大且便宜的ROM表和更小的RAM表的级联替换基于RAM的表来增加算术编译技术的吞吐量(每秒处理的比特)的方法的改进。

在本发明的一个方面中,熵编码单元130可以使用乘法近似针对数据符号中的每一个来更新区间,并且在经更新的区间内使用比特移位和加法来计算乘积的乘法近似。

在计算过程中,熵编码单元130可以确定长度的最高有效1比特的位置,并且在该最高有效1比特之后提取长度的最高有效位中的一些,以获得近似长度。在这种情况下,区间基于近似长度以及乘积的结果得到的比特被更新。

图2的解码器200接收由图1的编码器100所输出的信号。

熵解码单元210对所接收到的信号执行熵解码。例如,熵解码单元210可以接收包括码值的位置信息的信号,检查与码值的位置信息相对应的符号,并且对经检查的符号进行解码。

在本发明的另一方面中,熵解码单元210可以通过组合区间长度的最高有效位以及码值的最高有效位来生成解码表索引。

在这种情况下,能够通过从所述位置加1比特开始在最高有效1比特之后提取区间长度的最高有效位,并且能够通过从区间长度的最高有效1比特的位置开始提取码值的最高有效位。

同时,去量化单元220基于关于量化步长的信息从经熵解码的信号获得变换系数。

逆变换单元230通过对变换系数执行逆变换来获得预测误差。通过将所获得的预测误差添加到预测信号生成重建信号。

图3是图示更新算术编译区间数据所需要的操作的集合的流程图。

本发明被应用于的算术编译器能够包括数据源单元(310)、数据建模单元(320)、第一延迟单元(330)以及第二延迟单元。

数据源单元(310)能够像以下等式1那样生成其中每个符号来自M个符号的字母表的N个随机符号的序列。

[等式1]

S={s1,s2,s3,...,sN},sk∈{0,1,2,...,M-1}

在这种情况下,本发明假定所有数据符号独立且同分布(i.i.d),具有如以下等式2的非零概率。

[等式2]

Prob{sk=n}=p(n)>0,k=1,2,...,N,n=0,1,...,M-1

另外,本发明能够如以下等式3定义累计概率分布。

[等式3]

在这种情况下,c(s)是严格单调的,并且c(0)=0以及c(M)=1。

即使那些条件可以似乎与在实际的复杂媒体信号中找到的条件大不相同,实际上所有熵编译工具基于从那些假定得到的技术,所以本发明也能够提供受这个更简单的模型约束的实施例。

算术编译主要由以形式[bk,bk+lk)更新实数线中的半开区间构成,其中bk表示区间基(interval base)并且lk表示其长度。可以根据每个数据符号sk并且从初始条件b1=0和l1=1开始更新区间,它们使用以下等式4和等式5来针对k=1、2、...、N被递归地更新。

[等式4]

lk+1=p(sk)lk

[等式5]

bk+1=bk+c(sk)lk

在这种情况下,区间可以如以下等式6被渐进地嵌套。

[等式6]

如上所述,参考图3,数据建模单元(320)能够接收N个随机符号Sk的序列,并且输出累计概率分布C(Sk)和符号概率p(Sk)。

能够通过从数据建模单元(320)输出的Sk以及从第一延迟单元(330)输出的lk的乘法运算来获得区间长度lk+1

另外,能够通过从第二延迟单元(340)输出的bk与C(Sk)和lk的乘法的加法运算来获得区间区间基bk+1

能够通过乘法和加法的算术运算来定义本发明被应用于的算术编译。在这种情况下,能够以无限精度表示bk和lk,但是完成这个首先在直观简单的版本中引入记数法。稍后本发明提供用于使用有限精度运算来近似地实现算术编译的方法。

在已经计算最终区间[bN+1,bN+1+lN+1)之后由码值来定义经算术编码的消息。可以证明存在能够使用至多1+log2(lN+1)个比特来表示的一个这样的值。

为了使用码值来对序列S进行解码,本发明再次从初始条件b1=0和l1=1开始,然后使用以下等式7至等式9来渐进地获得sk、lk和bk

[等式7]

[等式8]

lk+1=p(sk)lk

[等式9]

bk+1=bk+c(sk)lk

能够从所有区间被嵌套、并且假定解码器完美地再现由编码器所做的运算的特性推断出这个解码过程的正确性。

对于算术编译的实际实施方式,本发明可能认为所有加法是按无限精度来完成的,但是乘法以保存一些特性的方式使用有限精度来近似。本说明书将仅涵盖理解本发明所需的方面。例如,区间再归一化是实际方法的必要部分,但是它在本说明书中未被说明,因为它不影响本发明。

本发明能够使用符号Bk、Lk和Dk来分别表示bk、lk和的有限精度值(通常被换算为整数值)。编码的方面能够通过以下等式10和等式11来定义。

[等式10]

Lk+1=[[c(sk+1)Lk]]-[[c(sk)Lk]]

[等式11]

Bk+1=Bk+[[c(sk)Lk]]

在这种情况下,围绕乘积的双方括号表示乘法是有限精度近似。

等式10对应于等式4,因为p(s)=c(s+1)-c(s)(s=1,2,...,M)。

因此,能够通过以下等式12至等式14来定义解码过程。

[等式12]

Sk={s:[[c(s)Lk]]≤Dk<[[c(s+1)Lk]]}

[等式13]

Lk+1=[[c(sk+1)Lk]]-[[c(sk)Lk]]

[等式14]

Bk+1=Bk+[[c(sk)Lk]]

算术解码的一个重要方面是,除在一些不重要的(trivial)情况之外,不存在用于在等式(7)中查找sk的直接方法,并且需要某种类型的搜索。例如,因为c(s)是严格单调的,所以本发明能够使用二分搜索并且利用O(log2M)个测试查找sk。也能够通过使用利用符号概率的分布的搜索技术来改进平均搜索性能。

图4和图5图示根据本发明被应用于的实施例的基于二进制算术编译来处理视频信号的编码器和解码器的示意框图。

本发明已被应用于的算术编译的实现器能够处理以下因素。

首先,像乘法一样的算术运算是相对非常昂贵的,所以它们被用甚至粗糙的近似和表查找方法替换。

其次,即使在消除乘积的情况下,本发明也需要处理器寄存器保持中间结果和加法。对于更简单的硬件实施方式存在被开发来以仅8或16位的寄存器工作的技术。

第三,解码器可能比编码器慢得多,因为它必须实现等式(12)的搜索,并且这个复杂性随着字母表大小M而增加。

首先解决了所有这些问题的编译的一种形式是被应用于仅二进制输入字母表(即,M=2)的二进制算术编译。这个不是基本实际约束,因为来自任何字母表的数据符号能够被转换为二进制符号的序列(二值化)。图4和图5分别示出实现这种类型的编译的编码器和解码器。

编码器(400)包括二值化单元(410)、延迟单元(420)、概率估计单元(430)以及熵编码单元(440)。另外,解码器(500)包括熵解码单元(510)、延迟单元(520)、概率估计单元(530)以及聚合单元(540)。

二值化单元(410)能够接收数据符号的序列并且通过执行二值化来输出由二值化值0或1构成的二进制串(bin string)。所输出的二进制串通过延迟单元(420)被发送到概率估计单元(430)。概率估计单元(430)针对熵编码执行概率估计。

熵解码单元(440)对所输出的二进制串进行熵编码并且输出压缩数据比特。

解码器(500)能够相反地执行以上编码过程。

然而,图4和图5的编译系统可能具有以下问题。

首先,二值化强迫要编译的所有数据的顺序分解,所以仅能够通过更高的时钟速度来使它变得更快。另外,窄寄存器需要尽可能快地提取独立数据比特以避免损失精度,这也是一种不可避免的串行化。

问题是使用等式12来查找sk的复杂性。如果编译系统使用二分搜索或另一形式的二进制树搜索,则编译系统可能具有将解码过程顺序地分解成二进制判定的相同问题,并且不能够在二进制算术编译的速度之上显著地改进。

因此,所提出的解决方案将适用于任何形式的算术编译,但是主要是为图6和图7的系统而设计的。

图6和图7图示根据本发明被应用于的实施例的通过使用大数据字母表和长寄存器所设计的算术编译系统的编码器和解码器的示意框图。

参考图6和图7,编码器(600)包括延迟单元(620)、概率估计单元(630)以及熵编码单元(640)。另外,解码器(700)包括熵解码单元(710)、延迟单元(720)以及概率估计单元(730)。在这种情况下,熵编码单元(640)能够直接接收大数据字母表,并且基于大数据字母表和长寄存器用二进制字生成压缩数据。

对于针对数据符号的算术编译,首先,熵编码单元(640)能够为数据符号中的每一个创建一个区间。在这种情况下,区间是基于区间的起始点和长度而表示的。

熵编码单元(640)能够使用乘法近似针对数据符号中的每一个来更新区间。在这种情况下,能够通过使用包括负数的因子的优化来执行乘积的乘法近似。此外,能够使用寄存器比特的数量缩放乘积的乘法近似。

然后,熵编码单元(640)能够在经更新的区间内使用比特移位和加法来计算乘积的乘法近似。在这种情况下,编码器能够确定长度的最高有效1比特的位置,并且能够在最高有效1比特之后提取长度的最高有效位中的一些,以获得近似长度。能够基于近似长度以及乘积的结果得到的比特来更新区间。

通过以上过程,能够通过使用更大的数据字母表和长寄存器用于计算来增加算术编译的每秒处理的比特。

此外,图4和图5的说明能够被类似地应用于编码器(600)和解码器(700)的以上功能单元。

图8示出根据本发明被应用于的实施例的在P位寄存器上具有Dk和Lk的二进制表示的图。

已被用来大大地使霍夫曼(Huffman)码的解码加速的一个方法是使用表查找,即,不是一次读取一个比特并且移动到新码树节点,而是读取若干比特被并用来创建到预计算的表的索引,其指示经解码的符号、要丢弃多少比特或者是否需要读取更多的比特以确定经解码的符号。这可以容易地完成,因为霍夫曼码每编译的符号生成整数数量的比特,所以总是易于定义要读取的下一比特集合。然而,那些条件不适合于算术编译。

在算术编译中,关于符号的信息可以不直接按比特定义,而是作为元素Dk与元素Lk之间的比值。

本发明可以通过使用除法来使Dk归一化来处理这个问题。

[等式15]

[等式16]

在等式15中,E是小数Dk/Lk的量化版本。根据E,本发明能够查找用于等式16的二分搜索的初始值,其能够被存储在具有Kt个元素的表中,从而使得能实现显著更快的解码。表条目可以通过下面的等式来确定。

[等式17]

[等式18]

因为所以一个表可能足够用于正确的解码。“一个表”能够被称作为RAM表,因为它应该被存储在要周期性地更新的RAM中。每当模型被更新时计算表的开销可能是小的,因为表查找仅用于初始化二分搜索。

针对表查找解码的一个约束是即使对于32位寄存器来说在低复杂性硬件平台上除法也可能是过分昂贵的。

因此,在本发明的一个方面中,将说明基于表的解码方法,并且本发明提供用于将表查找用于除法近似的方法。本发明可以定义要从Dk和Lk两者中提取以创建表索引的比特的特殊子集,并且不直接地但是作为最坏情况使表元素通知需要被进一步搜索的符号的范围。

在下文中,将通过描述如何创建表索引和条目来说明这个方法如何工作。

本发明能够使用以下等式19来检查Dk与Lk之间的比值多半通过它们的表示的最高有效非零比特来定义。

[等式19]

参考图8,示出了作为P位整数存储的Dk和Lk的二进制表示。本发明能够使用快速处理器操作来标识Lk的最高有效1比特的位置Q。由此,如图8中所示,本发明可以从Lk中提取T个比特u1u2···uT,并且从Dk中提取T+1个比特v0v1v2···vT。使用将被用作具有22T+1个条目的解码表的索引的二进制表示u1u2···uT v0v1v2···vT,那些比特可以被用来创建整数Z。

给出比特位置Q,可以如等式20定义除法(Dk/Lk)的上界值和下界值。

[等式20]

在这种情况下,Emin意指除法(Dk/Lk)的上界值并且意指除法(Dk/Lk)的下界值。例如,Emin能够被定义为[Dmin/Lmax],并且Emax能够被定义为[Dmax/Lmin]。因此,能够如等式21和等式22表示Emin和Emax

[等式21]

[等式22]

在这种情况下,“a”表示与乘法近似相对应的比特移位。利用那些值作为RAM表的索引,可以如等式23和等式24检索用于二分搜索的初始值。

[等式23]

[等式24]

因此,本发明能够提供符号解码过程,如下。

解码器能够确定Lk的最高有效1比特的比特位置Q,并且从比特位置Q+1开始,提取Lk的T个最高有效位。另外,从比特位置Q开始,解码器能够提取Dk的T+1个最高有效位。

然后,解码器能够组合2T+1个比特以形成表索引Z。解码器可以从表中检索Emin和Emax,并且仅在区间[smin(Z),smax(Z)]中搜索满足以下等式25的s的值。

[等式25]

[[c(s)Lk]]≤Dk<[[c(s+1)Lk]]

图9示出具有级联ROM-RAM表的算术解码器的示意框图。

本发明被应用于的解码器包括索引创建单元910、级联ROM-RAM表单元920、二分搜索单元930以及数据模型单元940。级联ROM-RAM表单元920包括ROM表921和RAM表922。

索引创建单元910可以接收Dk和LK并且从Dk和LK中提取特定比特集合。另外,索引创建单元910可以基于该特定比特集合为解码表创建索引Z。在这种情况下,可以基于LK的T个最高有效位以及Dk的最高T+1个最高有效位来形成索引Z。

能够将所创建的索引Z发送到级联ROM-RAM表单元920。能够将所发送的索引Z存储在级联ROM-RAM表单元920的ROM表921中。可以从ROM表921中检索除法(Dk/Lk)的上界Emax和下界Emin,并且将其发送到RAM表922。例如,可以基于等式21和等式22获得Emax和Emin

RAM表922可以从ROM表921接收Emax和Emin,并且输出用于二分搜索的初始值。利用那些值作为RAM表的索引,可以检索到用于二分搜索的初始值Smax和Smin。在这种情况下,能够使用等式23和24。

二分搜索单元930可以仅在所对应的区间[Smin(Emin),Smax(Emax)]中搜索s的值,并且输出s的值。在这种情况下,s的值满足等式25。

清楚地,更大的表将允许更好的近似,并且对于足够大的表我们将具有Emin=Emax,意味着它们能够缩减搜索范围使得和实际的除法值一样有效。

级联ROM-RAM表能够被称作为ROM表,因为它不需要更新并且能够被存储在ROM中。此外,如果RAM表中的条目的数量是已知的,则仅需要存储Emin和Emax的所对应的最高有效位。例如,如果RAM表中的条目的数量是256,则存储Emin和Emax的8个最高有效位是足够的。

图10是图示根据本发明被应用于的实施例的对数据符号进行解码的方法的流程图。

本发明被应用于的解码器能够接收包括码值的位置信息的比特流(S1010)。

例如,位置信息可以包括初始范围和区间信息中的至少一个。

另外,解码器能够检查与码值的位置信息相对应的符号(S1020),并且对经检查的符号进行解码(S1030)。

这时,能够根据符号中的每一个的概率来划分范围,并且解码器可以通过检查哪一个符号被包括在所划分的范围内来对符号进行解码。

图11是图示根据本发明被应用于的实施例的通过使用级联ROM-RAM表来执行算术解码的方法的流程图。

本发明被应用于的解码器可以确定区间长度的最高有效1比特的位置(S1110)。

另外,解码器可以通过从所述位置加1比特开始在最高有效1比特之后提取区间长度的最高有效位(S1120),并且通过从所述位置开始提取码值的最高有效位(S1130)。

然后,解码器可以通过组合区间长度的最高有效位以及码值的最高有效位来生成解码表索引(S1140)。

解码器可以从ROM表获得用于除法的上界值和下界值(S1150),并且基于上界值和下界值从RAM表获得用于二分搜索的初始值(S1160)。在这种情况下,可以在S1150和S1160过程中使用级联ROM-RAM表。

然后,解码器可以在对应的区间中搜索序列的值(S1170)。

如上所述,可以在处理器、微处理器、控制器或芯片上实现和执行本发明中所说明的实施例。例如,可以在计算机、处理器、微处理器、控制器或芯片上实现和执行图1至图7和图9中所说明的功能单元。

此外,本发明被应用于的解码器和编码器可以被包括在多媒体广播传输/接收设备、移动通信终端、家庭影院视频设备、数码影院视频设备、监视相机、视频聊天设备、实时通信设备(诸如视频通信)、移动流设备、存储介质、录像机、VoD服务提供设备、互联网流服务提供设备、三维(3D)视频设备、电话会议视频设备以及医疗视频设备中,并且可以被用来处理视频信号和数据信号。

此外,可以以程序的形式产生本发明被应用于的处理方法,所述程序将由计算机执行并且可以被存储在计算机可读记录介质中。具有根据本发明的数据结构的多媒体数据也可以被存储在计算机可读记录介质中。计算机可读记录介质包括可由计算机系统读取的数据被存储在其中的所有类型的存储装置。例如,计算机可读记录介质可以包括BD、USB、ROM、RAM、CD-ROM、磁带、软盘以及光学数据存储装置。此外,计算机可读记录介质包括以载波(例如,通过互联网的传输)的形式实现的媒体。此外,通过编码方法所生成的比特流可以被存储在计算机可读记录介质中或者可以通过有线/无线通信网络来发送。

工业适用性

已经出于说明性目的公开了本发明的示例性实施例,并且,本领域的技术人员可以在所附权利要求中所公开的本发明的技术精神和范围内改进、改变、替换或者添加各种其它实施例。

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