算术编码的方法和设备技术

技术编号:8802851 阅读:208 留言:0更新日期:2013-06-13 06:58
公开了一种执行算术编码和/或解码的方法和设备。在一个实施例中,编码数据的方法包括对事件序列中的多个事件进行编码以产生已编码数据,且利用已编码数据来产生比特流,包括将零个或更多个填充比特添加到比特流中已编码数据之后,其中所述零个或更多个填充比特操作用于实质上保持已编码事件量、正在编码的块数和比特流中的比特数之间的关系。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术通常涉及信息理论、视频压缩和算术编码。更具体地,本专利技术涉及用于算术编码的终结(termination)和字节填充、以及在算术编码期间创建和使用状态机的方法和设备。
技术介绍
数据压缩是一种用于存储和传送大量数据的极其有用的工具。例如,当使用压缩来减少重新创建图像所需的比特数时,极大地减小了传送例如文档的网络传输的图像所需的时间。在现有技术中存在许多不同的数据压缩技术。压缩技术可以划分为两个较宽的类别:有损编码和无损编码。有损编码涉及会导致信息损失的编码,由此,无法保证原始数据的理想重构。有损压缩的目的在于:按照使其无异议或可检测的方式进行对原始数据的改变。在无损压缩中,保留所有信息并按照允许进行理想重构的方式对该数据进行压缩。算术编码是一种公知的压缩技术,用于一些数据编码和压缩系统中以便减小传输所需的比特或符号的数量。算术编码器接收包括一系列事件(例如二进制事件)或符号的输入。算术编码器将输入序列编码为相应的比特或字节序列。在一些情况下,在编码器的输出处产生比编码器输入处接收到的数据比特更少的数据比特,导致了数据压缩。算术编码器可以接收或访问已编码数据。所述算术编码器读取已编码数据的序列且产生已解码数据,所述已解码数据应该与解码器处接收到的输入符号相匹配。通过在针对正在进行编码的事件的信息序列中产生较少的比特来实现压缩,其中正在进行编码的事件与信息比特的比率可以达到64:1或甚至128:1,取决于事件的概率分布。优选地,解码器操作与编码器操作相对称。如果编码器和解码器的操作对称,则在解码器处所读取的已编码数据比特的数量应该与由解码器所产生的已编码比特的数量相匹配。在一些算术解码器中,在启动解码器操作时,解码器提前读取一组比特。然而,由于解码器提前读取了一组比特,可能会出现不匹配或不对称。对该不对称进行补偿的一种传统方案在于:向编码器处的已编码数据添加额外比特。在另一传统方案中,不产生附加已编码比特,而是允许解码器提前在比特流中读取已编码数据,然后反向跟踪。这两种传统方案均会引入较低效率。需要一种更为有效的方案来减小编码和解码算法的复杂度、减小用于编码、传输和解码的数据、以及降低存储要求。
技术实现思路
公开了执行算术编码和/和解码的方法和设备。在一个实施例中,编码数据的方法包括对事件序列中的多个事件进行编码以产生已编码数据,且利用已编码数据来产生比特流,包括将零个或更多个填充比特添加到比特流中已编码数据之后。所述零个或更多个填充比特操作用于实质上保持已编码事件量、正在编码的块数和比特流中的比特数之间的关系。在一个实施例中,所述算术解码器包括序列发生器,用于产生针对事件序列的事件的环境标识符;概率估计器,用于确定针对LPS的值和针对LPS的概率估计;以及解码引擎,包括范围寄存器以便将数值分配给针对LPS的范围。如果环境标识符并不等于指标(index),则所述数值基于概率估计、范围寄存器中所存储的数值和针对LPS的范围的环境标识符,并且如果环境标识符等于所述指标,则该值并不基于范围寄存器中所存储的值。所述解码引擎还根据针对LPS的范围值和来自信息序列的比特,确定二进制事件的值。在另一个实施例中,创建用于概率估计的状态机的方法包括:将概率分配给查找表(LUT)中的状态,包括将这些状态的每一状态I的概率设置为LPS的最高概率乘以适配t匕(adaptation ratio)的i次幂,其中i是给定状态的数量,并且适配比小于I。所述方法还包括:当观察MPS和LPS时,针对LUT中要转移到的状态产生状态转移,其中如果当前状态并不是最高状态,当观察到MPS时状态机从当前状态转移到其的下一状态是高于当前状态的下一状态,如果当前状态是最高状态,则所述下一状态是当前状态。另外,当针对多个状态观察到LPS时状态机从当前状态转移到其的下一状态是以下计算结果的舍入版本:当前状态数+log (当前状态的概率*适配比+ (1-适配比))/当前状态的概率)/log (适配比)。附图说明从以下所给出的详细描述和本专利技术的各种实施例的附图中,本专利技术将得到更完整地理解,然而,其并非用于将本专利技术局限于特定的实施例,而是仅用于说明和理解。图1是编码和解码系统的方框图。图2是用于产生比特流的编码处理的流程图。图3示出了通过其在图1的系统中来传送已编码数据的典型数据格式。图4示出了算术编码器的一个实施例的方框图。图5是用于编码事件的一个实施例的流程图。图6是编码器重新归一化(renormalization)过程的一个实施例的流程图。图7示出了用于执行放置比特过程的实施例的处理的一个实施例。图8是在终结之前对事件进行解码的处理的一个实施例的流程图。图9示出了在终结处清除(flushing)的处理的一个实施例的流程图。图10是算术编码器的一个实施例的方框图。图11是算术解码器初始化处理的一个实施例的流程图。图12是用于解码二进制事件的一个实施例的流程图。图13是重新归一化过程的流程图。图14A和14B示出了以等概率对二进制事件进行解码的流程图。图15A和15B是用于解码片段标志和终结之前的其他二进制事件的实施例的流程图。图16A和16B示出了执行概率估计查询的典型表。图17是典型计算机系统的方框图。具体实施例方式公开了一种编码和解码信息特别是视频数据的方法和设备。在编码和解码期间,使用指示符(例如,片段的末尾)来信号通知正在被算术编码的事件的结尾。在一个实施例中,也是在信息编码期间,将填充信息的比特或字节添加到由编码器所产生的已编码数据的比特流中。作为将这些附加比特填充到已编码数据的比特流的中间的替代,将填充字节(或比特)附加到已编码数据的结尾。这样的填充可用于保持正在被编码的事件的数量、视频数据的块(例如宏块)的数量和正在产生的信息序列的大小之间的关系。在以下描述中,阐明了大量细节以提供对本专利技术的更透彻的解释。然而,对本领域的技术人员显而易见,没有这些特定细节也能够实施本专利技术。在其他示例中,以方框图的形式示出了公知的结构和设备,而非详细地,以便避免使本专利技术不清楚。以在计算机存储器内对数据比特的操作的算法和符号表示的形式展示了以下详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员所使用的手段以便更有效地向本领域的其他技术人员传达其工作内容。算法在这里通常被设想为一种导致所需结果的自给的步骤序列。这些步骤是需要对物理量进行物理操作的步骤。通常,尽管并非必须的,这些量采用了被存储、转移、组合、比较和其他操作的电或磁信号的形式。原理上,出于通用的理由,其通常是方便的,以查阅这些信号,作为比特、值、元素、符号、字符、术语、数量等。然而,应该记住,所有这些和类似术语要与适当的物理量相关联且仅作为应用于这些量的方便标签。如果没有另外声明,从以下讨论中显而易见,应该意识到,在整个描述中,利用诸如处理或计算或核算或确定或显示等涉及计算机系统或类似电子计算设备的动作和处理,所述计算机系统或类似电子计算设备将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和转换为计算机系统存储器或寄存器或其他这样的信息存储、传输或显示设备内、类似地表示为物理量的其他数据。本专利技术还涉及一种执行其中的操作的设备。可以针对所需的目的专门构造该设备,或所述设本文档来自技高网
...

【技术保护点】
一种算术解码器,包括:序列发生器,用于产生针对事件序列的事件的环境标识符;以及概率估计器,用于确定针对LPS的值和针对LPS的概率估计;以及解码引擎,包括范围寄存器,用于将数值分配给针对LPS的范围,其中如果环境标识符并不等于指标,则所述数值基于概率估计、范围寄存器中所存储的数值和LPS的范围的环境标识符,并且如果环境标识符等于所述指标,则该值并不基于范围寄存器中所存储的值,并且解码引擎还根据针对LPS的范围值和来自信息序列的比特,确定二进制事件的值。

【技术特征摘要】
2002.09.20 US 60/412,245;2002.10.04 US 60/415,9991.一种算术解码器,包括: 序列发生器,用于产生针对事件序列的事件的环境标识符;以及 概率估计器,用于确定针对LPS的值和针对LPS的概率估计;以及 解码引擎,包括范围寄存器,用于将数值分配给针对LPS的范围,其中如果环境标识符并不等于指标,则所述数值基于概率估计、范围寄存器中所存储的数值和LPS的范围的环境标识符,并且如果环境标识符等于所述指标,则该值并不基于范围寄存器中所存储的值,并且解码引擎还根据针对LPS的范围值和来自信息序列的比特,确定二进制事件的值。2.根据权利要求1所述的算术解码器,其特征在于当环境标识符等于指标且对LPS进行解码时,所述解码引擎停止解码。3.根据权利要求2所述的算术解码器,其特征在于在信息序列中非算术编码数据跟随在算术编码数据之后。4.根据权利要求2所述的算术解码器,其特征在于所述指标表示片段指示符的结尾。5.根据权利要求1所述的算术解码器,其特征在于所述解码引擎包括数值寄存器,并且当环境标识符等于指标时,如果数值寄存器中的数值小于分配给LPS范围的数量,则通过产生第一状态的事件,根据数值寄存器中的值对事件进行解码,而如果数值寄存器中的值大于或等于所述数量,则通过产生第二状态的事件,根据数值寄存器中的值对事件进行解码。6.根据权利要求5所述的算术解码器,其特征在于仅当数值寄存器中的值大于或等于所述数量时,解码引擎响应对事件的解码来执行重新归一化。7.根据权利要求1所述的算术解码器,其特征在于所述解码引擎包括数值寄存器,并且当环境标识符等于所述指标时,通过首先从范围寄存器中减去分配给LPS范围的数值来对事件进行解码,其中如果数值寄存器中的数值大于或等于范围寄存器中的数值,则在第一状态下产生事件,而如果数值寄存器中的数值小于范围寄存器中的数值,则在第二状态下产生事件。8.根据权利要求7所述的算术解码器,其特征在于仅当数值寄存器中的数值大于或等于范围寄存器中的数值时,响应解码事件,所述解码引擎执行重新归一化。9.根据权利要求7所述的算术解码器,其特征在于如果环境标识符等于所述指标,则分配给LPS的范围的数值是2。10.根据权利要求8所述的算术解码器,其特征在于如果环境标识符等于所述指标,则分配给LPS的范围的数值是lOOHex。11.根据权利要求7所述的算术解码器,其特征在于如果环境标识符等于所述指标,则分配给LPS的范围的数值为2,并且在包含正在被所述解码引擎解码的二进制事件的比特流中的读取的最后一个比特等于I。12.—种解码方法,包括: 产生事件序列的二进制事件的环境标识符; 确定针对LPS的值和针对LPS的概率估计; 将数值分配给针对LPS的范围,其中如果环境标识符并不等于指标,则所述数值基于概率估计、范围寄存器中所存储的值和LPS的范围的环境标识符,并且如果环境标识符等于所述指标,则所述数值并不基于范围寄存器中所存储的数值;以及根据针对LPS的范围值和来自信息序列的比特,确定二进制事件的值。13.根据权利要求12所述的方法,其特征在于还包括:当环境标识符等于所述指标且对LPS进行解码时,停止解码。14.根据权利要求12所述的方法,其特征在于在信息序列中非算术编码数据跟随在算术编码数据之后。15.根据权利要求12所述的方法,其特征在于所述指标表示片段指示符的结尾。16.根据权利要求12所述的方法,其特征在于根据针对LPS的范围值和来自信息序列的比特来确定二进制事件的数值包括:当环境标识符等于所述指标时,如果数值寄存器中的数值小于分配给LPS范围的数值,则通过产生第一状态的事件根据数值寄存器中的值对事件进行解码,而如果数值寄存器中的值大于或等于所述数量,则通过产生第二状态的事件,根据数值寄存器中的值对事件进行解码。17.根据权利要求16所述的方法,其特征在于还包括:仅当数值寄存器中的值大于或等于所述数量时,响应对事件的解码来执行重新归一化。18.根据权利要求12所述的方法,其特征在于根据针对LPS的范围值和来自信息序列的比特来确定二进制事件的值包括:当环境标识符等于所述指标时,通过首先从范围寄存器中减去分配给LPS范围的数值来对事件进行解码,其中如果数值寄存器中的数值大于或等于范围寄存器中的数值,则在第一状态下产生事件,而如果数值寄存器中的数值小于范围寄存器中的数值,则在第二状态下产生事件。19.根据权利要求18所述的方法,其特征在于还包括:仅当数值寄存器中的数值大于或等于范围寄存器中的数值时,响应解码事件,执行重新归一化。20.根据权 利要求18所述的方法,其特征在于如果环境标识符等于所述指标,则分配给LPS的范围的数值是2。21.根据权利要求19所述的方法,其特征在于如果环境标识符等于所述指标,则分配给LPS的范围的数值是lOOHex。22.根据权利要求19所述的算术解码器,其特征在于如果环境标识符等于所述指标,则分配给LPS的范围的数值为2,其中在包含正在由解码引擎解码的二进制事件的比特流中读取的最后一个比特等于I。23.一种算术编码器,包括: 概率估计器,用于产生事件序列的每一个事件具有特定值的概率估计,其中概率估计器响应针对所述每一个事件的相应环境信息,产生所述概率估计;以及 与概率估计器相连的编码引擎,用于响应每一个事件及其相应概率估计,产生信息序列的零个或更多个比特,其中编码引擎在对片段信号的结尾进行编码之前,利用与范围寄存器的数值无关的子范围区间的常数,对事件进行编码,以信号通知信息序列中的算术编码数据的结尾。24.根据权利要求23所述的编码器,其特征在于:利用常数对事件进行编码以信号通知事件序列中的事件结尾的编码引擎能够将低寄存器的任何剩余内容包括在信息序列中。25.根据权利要求24所述的编码器,其特征在于:所述编码引擎对低寄存器的任何剩余内容进行清除,并将在清除期间写入的最后一个比特设置为等于I。26.—种编码数据的方法,所述方法包括:编码事件序列中的事件以产生编码数据;以及 利用编码数据来产生比特流,包括对解码时使用的指示符进行编码以表示比特流中的算术编码数据的结尾。27.根据权利要求26所述的方法,其特征在于:在比特流中非算术编码数据跟随在算术编码数据之后。28.根据权利要求26所述的方法,其特征在于:编码所述指示符包括对事件进行编码以信号通知片段的结尾。29.根据权利要求28所述的方法,其特征在于:编码事件以信号通知片段的结尾包括: 在对片段信号的结尾进行编码之前,利用与范围寄存器的数值无关的子范围区间的常数。30.根据权利要求29所述的方法,其特征在于:利用常数来编码事件以信号通知片段的结尾能够将低寄存器的任何剩余内容清除到信息序列中。31.根据权利要求30所述的方法,其特征在于:清除低寄存器的任何剩余内容包括: 将在清除期间写入的最后一个比特设置为等于I。32.—种编码数据的方法,包括: 编码事件序列中的事件以产生编码数据;以及 利用编码数据来产生比特流,包括在对片段信号的结尾进行编码之前,利用与范围寄存器的数值无关的子范围区间的常数,对事件进行编码以信号通知比特流中的算术编码数据的结尾。33.根据权利要求32所述的方法,还包括: 清除低寄存器的内容,包括将在清除期间所写入的最后一个比特设置为等于I。34.一种编码数据的设备,所述设备包括: 用于编码数据块以产生编码数据的装置;以及 用于利用所述编码数据来产生比特流的装置,包括用于其中在对片段信号的结尾进行编码之前,利用与范围寄存器的数值无关的子范围区间的常数,所述编码引擎对事件进行编码以信号通知比特流中的算术编码数据的结尾的装置。35.一种创建用于概率估计的状态机的方法,所述方法包括: ...

【专利技术属性】
技术研发人员:弗兰克·简·博森
申请(专利权)人:株式会社NTT都科摩
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1