算术编码和解码的系统和方法

文档序号:6407072阅读:770来源:国知局
专利名称:算术编码和解码的系统和方法
技术领域
本申请涉及数据的处理,尤其涉及以减小的复杂性限度(complexity bound)的方式执行的数据序列的编码和解码。
背景技术
通常,对数据序列(即二进制或M进制信息)进行压缩,以便从第一位置发送到第二位置。例如,可以在第一位置产生代表电视电话会议的视频数据。通常,把数据转换为事件序列(即二进制事件)。为了把事件序列发送到第二位置,最好把事件序列压缩或编码为信息序列,以减少为把事件序列传输到第二位置所需的时间。典型地使用算术编码器来把事件序列(即二进制事件)压缩为信息片(informationpieces)(即信息的二进制位)的信息序列,以便发送到第二位置。信息序列的压缩或编码效率越高,信息序列到第二位置的传输率就越大。
通过为每个被编码的事件产生少于一个信息片,来实现压缩,其中事件与编码的信息片之比可以达到64∶1乃至128∶1,这取决于事件的概率分布。在第二位置使用算术解码器把信息序列解压缩为事件序列,从而允许代表电视电话会议的视频数据呈现给在第二位置处的个人。
数据压缩也用于其它用途。另一种这样的用途可能是在给定数量的存储事件序列的存储介质的情况下,提高视频质量。在该实例中,编码器可以用来把视频(即代表电影)存储在只读光盘存储器(CD-ROM)、数字视频光盘只读存储器(DVD-ROM)或包括光介质、磁介质等的其它任何存储介质上,以便以后重放。如上所述,事件与编码信息片之比可以达到64∶1或128∶1,这取决于事件的分布概率。以后,利用解码器来把信息序列解压缩为事件序列,由此允许使用相应的视频或其它数据。
然而,当编码器处的编码效率提高了,则在解码器处需要大量的处理(即解码操作),以便将指定长度的信息片的序列解码为事件序列。这种提高的处理要求将是不利的,尤其是在希望实时地提供事件序列的情况下。例如,在事件序列代表视频的情况下,实时意味着,对于代表一段时间(即1秒)视频的信息序列,解码器能够接收该信息序列,并且在该段时间内把该信息序列解码为相应的事件序列。有时,利用在常规编码器中使用的提高效率方案不可能进行这种实时处理。
本发明的目的是以一种新颖和简单的方式解决以上讨论的问题中的一个或多个。

发明内容
根据本发明,提供一种用于减小编码器和解码器中的复杂性限度的系统和方法。
根据本发明的一个方面,提供一种用于将包括多个事件的事件序列算术编码为包括至少一个信息片的信息序列的系统和方法,其包括用于接收事件序列的事件的至少一个输入端口,以及至少一个输出端口。序列发生器(sequencer)与该至少一个输入端口和至少一个输出端口相连,并且包括一个用于为至少一个收到的事件产生上下文信息的上下文发生器。概率估计器与序列发生器相连,用于从序列发生器接收事件序列的序列和相应的上下文信息,以及为具有特殊值的事件产生概率估计。核心引擎(core engine)与序列发生器和概率估计器相连,用于从序列发生器接收事件序列的事件以及从概率估计器接收概率估计,以及响应收到的事件和概率估计,在限定事件与信息片之比的同时产生信息序列的0或多个片,并将信息序列的0或多个信息片提供给序列发生器,其中产生的信息片作为信息序列被提供在所述至少一个输出端口。
根据本发明的又一实施例,事件序列的事件是二进制事件,并且信息序列的信息片是信息的二进制位。根据该方面的又一实施例,核心处理器限定事件与信息片之比包括,限定平均的事件与信息片之比。根据又一实施例,核心处理器包括计数寄存器,用于为每个信息片跟踪事件数目,并用于把平均的事件与信息片之比限定为预定比值。在又一实施例中,当事件与信息片之比超过预定比值时,核心处理器在信息序列中产生至少一个填充信息片(stuffing infromation piece)。
根据本发明的另一方面,提供一种用于将包括至少一个信息片的信息序列转换为包括多个事件的事件序列的算术解码器和方法,其包括用于接收信息序列的信息片的至少一个输入端口,以及至少一个输出端口。序列发生器与所述至少一个输入端口和至少一个输出端口相连,并包括一个用于为至少一个产生的事件产生上下文信息的上下文发生器。概率估计器与序列发生器相连,用于接收产生的事件序列的事件和相应的上下文信息,以及确定概率估计。核心引擎与序列发生器和概率估计器相连,用于响应概率估计对来自序列发生器的信息序列的0或多个信息片进行处理,以通过计及(accounting for)限定的事件与信息片之比来产生一个事件,其中产生的事件与来自序列发生器的相应上下文信息一起被提供给概率估计器,用于更新概率估计,以及产生的事件被提供给序列发生器,以便作为事件序列从所述至少一个输出端口被发送。
根据该方面的实施例,信息序列的至少一个信息片是二进制位,事件序列的事件是二进制事件。根据又一实施例,核心引擎通过计及限定的事件与信息片之比来产生至少一个事件包括,核心引擎通过计及平均的限定事件与信息片之比来产生至少一个事件。根据又一实施例,核心处理器包括计数寄存器,用于为信息片跟踪事件的数目,并用于将平均的限定事件与信息片之比计及为预定的平均比值。根据又一实施例,核心引擎利用计数寄存器,来确定信息序列中的填充信息片。
根据本发明的又一方面,提供一种用于将包括多个事件的事件序列转换为包括至少一个信息片的信息序列的核心引擎,其包括控制器,所述控制器用于接收事件序列的至少一个事件和该至少一个事件的概率估计,以及用于响应收到的事件和概率估计,通过限制事件与信息片之比来产生信息序列的0或多个片。
根据本发明的又一方面,提供一种用于将包括至少一个信息片的信息序列转换为包括多个事件的事件序列的核心引擎,其包括控制器,所述控制器用于接收信息序列的至少一个信息片和概率估计,以及响应至少一个信息片和概率序列,通过计及限定的事件与信息片之比来产生事件序列的0或多个事件。
根据本发明的又一方面,信息片的序列是由算术编码器从事件序列产生的,并且包括0或多个填充信息片,以致事件与信息片之比被限制为预定比。
根据本发明的又一方面,提供一种用于将至少一个事件序列转换为至少一个信息序列的熵编码器,其中每个事件序列都包括至少一个事件,并且每个信息序列都包括至少一个信息片,所述熵编码器包括算术编码器,所述算术编码器用于响应至少一个事件序列的至少一个事件,产生至少一个信息序列的0或多个信息片。所述熵编码器还包括控制器,其与算术编码器相连,用于将至少一个事件序列中的事件数目约束为所产生的至少一个信息序列中的信息片的数目的函数。根据该方面的实施例,该至少一个事件序列代表被分为多个段的输入数据,并且控制器通过将该至少一个事件序列中的最大事件数目约束为一个线性组合的函数,来将事件数目约束为信息片数目的函数,其中所述线性组合包括产生的至少一个信息序列中的信息片数目和段的数目。在又一实施例中,熵编码器与一个用于将输入数据转换为至少一个事件序列的处理器相连,其中熵编码器能够将与产生的至少一个信息序列中的信息片数目有关的信息发送给处理器。在又一实施例中,处理器能够响应从熵编码器收到的信息,减小所述至少一个事件序列的事件速率。
根据本发明的又一方面,信息片序列是由熵编码器从至少一个事件序列产生的,每个事件序列包括多个事件,其中利用信息序列信息片中的多个信息片,来将至少一个事件序列的最大事件数目约束为一个线性组合的函数,所述线性组合包括产生的至少一个信息序列中的信息片数目和段的数目。


图1是根据本发明实施例的编码器的框图;图2所示流程图说明了根据本发明实施例的图1的编码器的初始化;图3所示流程图说明了根据本发明实施例的图1的编码器的核心引擎的操作;图4所示流程图说明了根据本发明实施例的图1的编码器的重新归一化过程;图5所示流程图说明了根据本发明实施例、一旦收到终止信号时图1的编码器的核心引擎所执行的操作;图6所示流程图说明了根据本发明实施例、由图1的核心引擎所执行的位相加跟随(Bit-Plus-Follow)例程;图7所示框图说明了根据本发明实施例的解码器;图8所示流程图说明了根据本发明实施例的图7的解码器的初始化;图9所示流程图说明了根据本发明实施例的图7的解码器的核心引擎的操作;图10所示流程图说明了根据本发明实施例的图7的解码器的核心引擎的重新归一化;以及图11是根据本发明另一个实施例的编码器的框图。
具体实施例方式
根据本发明的一个实施例,提供一种算术编码器,其用于将包括多个事件的事件序列转换为包括至少一个信息片的信息序列,且包括用于接收事件序列的事件的至少一个输入端口以及至少一个输出端口,在此一个序列发生器与该至少一个输入端口和至少一个输出端口相连,且该序列发生器包括一个用于为至少一个收到的事件产生上下文信息的上下文发生器。提供了概率估计器,其与序列发生器相连,并用于从序列发生器接收事件序列的事件和相应的上下文信息,以及为具有特殊值的事件产生概率估计。核心引擎与序列发生器和概率估计器相连,用于从序列发生器接收事件序列的事件以及从概率估计器接收概率估计,以及响应收到的事件和概率估计来产生信息序列的0或多个片。核心引擎可以限制事件与信息片之比,并将信息序列的0或多个信息片提供给序列发生器,其中产生的信息片作为信息序列被提供在所述至少一个输出端口。
根据本发明的另一实施例,还提供一种算术解码器,用于将包括至少一个信息片的信息序列转换为包括多个事件的事件序列,其包括至少一个输入端口,用于接收信息序列的信息片;至少一个输出端口;以及序列发生器,其与所述至少一个输入端口和至少一个输出端口相连,并包括一个用于为至少一个产生的事件产生上下文信息的上下文发生器。概率估计器与序列发生器相连,用于接收产生的事件序列的事件和相应的上下文信息,以及确定概率估计。核心引擎与序列发生器和概率估计器相连,用于响应概率估计对来自序列发生器的信息序列的0或多个信息片进行处理,以通过计及限定的事件与信息片之比来产生一个事件。产生的事件与来自序列发生器的相应上下文信息一起被提供给概率估计器,以更新概率估计,并且产生的事件被提供给序列发生器,以便作为事件序列从所述至少一个输出端口被发送。
具有这种通过限定事件与信息片之比来将事件序列编码为信息序列的算术编码器,将能够以一种允许实时使用事件序列的方式对数据序列(即二进制或M进制事件)进行压缩。进一步,通过限定事件与信息片之比来减小产生的信息序列的复杂性,这样允许具有有限处理能力的解码器(例如移动式解码器)将信息序列解码为其相应的事件序列,同时潜在地保持实时处理能力,或者至少是当这种解码器执行解码操作时,信息的使用者不需要等待很长时间。
类似,提供一种通过计及限定的每信息片的事件比来将信息序列解码为事件序列的解码器,将允许事件序列的这种实时使用,例如在电视电话会议期间的事件序列实时使用,或者允许从存储介质检索和处理信息,例如从DVD-ROM检索诸如电影的视频信息并处理视频数据以供使用。
根据本发明的另一实施例,提供一种用于将至少一个事件序列转换为至少一个信息序列的熵编码器,其中每个事件序列都包括多个事件,并且每个信息序列都包括至少一个信息片,所述熵编码器包括算术编码器,所述算术编码器用于响应至少一个事件序列的至少一个事件,产生至少一个信息序列的0或多个信息片。所述熵编码器还包括控制器,其与算术编码器相连,用于将至少一个事件序列中的事件数目约束为所产生的至少一个信息序列中的信息片数目的函数。该至少一个事件序列可以代表被分为多个段的输入数据,其中控制器通过将至少一个事件序列中的最大事件数目约束为一个线性组合的函数,来将事件数目约束为信息片数目的函数,其中所述线性组合包括产生的至少一个信息序列中信息片的数目和段数目。熵编码器可以与一个用于将输入数据转换为至少一个事件序列的处理器相连,其中熵编码器能够将与产生的至少一个信息序列中的信息片数目有关的信息发送给处理器。还有,处理器能够响应从熵编码器收到的信息,减小所述至少一个事件序列的事件速率。
与现有技术的编码器相比,对于能够将事件序列中的事件数目约束为所产生的信息序列中信息片的数目的函数的熵编码器,其在保持视频编码质量的同时计及每组段的最大信息片数目,从而允许一致地解码视频数据。此外,在编码器收到了关于将要超过复杂性阈值的指示的情况下,编码器可以为输入数据的下一段产生较少的事件,例如减小超过下一段的约束阈值的可能性。还有,因为在超过约束阈值的情况下,控制器能够触发填充位的添加,因此可以这样实施处理器,以至处理器不必计及或处理复杂性约束。编码器和解码器可以用于处理视频数据,例如由视频处理器(即视频编码解码器)产生的数据。在视频处理器例子中,视频图像被记录,并被分为数据的样本块,该数据样本块可以代表记录图像的16×16、8×8或4×4样本。然后,通过视频处理器对这些块进行变换(即利用离散余弦变换),并进行量化以产生代表样本块的整数值。通过视频处理器将该整数值转换为事件(即二进制事件)的序列,并将其发送给编码器以便编码。作为选择,视频处理器可以直接对单个样本操作,对其进行变换和量化,并将样本的具体量化整数值转换为事件序列。
虽然在此讨论的编码器和解码器的一个用途是用于视频数据的编码和解码,但是本领域技术人员应该理解,本文所述的编码器和解码器可以用于以下任何情形在编码器的情况下将事件序列压缩为信息序列,以及在解码器的情况下对这种信息序列进行解压缩。还有,虽然以下是在把包括多个二进制事件的事件序列处理为包括至少一个信息二进制位的信息序列的情况下来讨论编码器,以及在把包括至少一个信息二进制位的信息序列处理为包括多个二进制事件的事件序列的情况下来讨论解码器,但是本领域技术人员应该理解,利用本文所述的教程,编码器和解码器能够对由实质上为M进制(即每个M进制事件代表大于1位的数据)的事件组成的事件序列和信息序列进行操作。
图1所示框图显示了根据本发明实施例的算术编码器100。算术编码器100包括序列发生器105、概率估计器110和核心引擎115,这些部件相互连接。一个或多个输入数据线120提供了到编码器100的输入端口,用于接收事件序列125,在此为二进制事件的有序序列。序列125的二进制事件可以有“A”或“B”值。编码器100对事件序列进行处理,如下所述,以产生作为包括至少一个信息片(在此为二进制位)的有序序列的信息序列,其中信息序列中的信息片的数目少于事件序列中的事件数目。输出数据线130提供了用于从编码器100发送信息序列135的输出端口。信息序列的二进制位有序序列包括一个或多个具有“0”或“1”值的位。
一旦收到二进制事件的有序序列125,序列发生器105就分别通过事件传输线140和145把事件125顺序地发送到概率估计器110和核心引擎115。对于事件序列125的每一个二进制事件,序列发生器105还通过上下文传输线150把相对于二进制事件的上下文信息发送到概率估计器110。概率估计器110利用通过上下文传输线150收到的上下文信息产生概率估计P(A),然后通过概率传输线155把产生的概率估计P(A)发送给核心引擎115。然后概率估计器110根据通过二进制事件传输线140收到的二进制事件的值,更新其内部状态。核心引擎115利用通过事件传输线145收到的二进制事件和通过概率传输线155收到的相应概率估计P(A),产生0或多个信息位,同时限制(bounding)事件与信息位之比,如以下将更详细描述的。
一旦收到事件序列125的第一个二进制事件,序列发生器105就分别通过初始化线路185和190把初始化信号发送到概率发生器110和核心引擎115。
在产生要通过位传输线158传输的0或多个信息位的过程中,核心引擎115使用各种寄存器,包括范围寄存器165、低寄存器(lowerregister)170、位突出寄存器(bits outstanding register)175和计数寄存器180。以下将参考图2至图6所示的流程图说明编码器100的操作。
图2所示流程图说明了,一旦从序列发生器105收到初始化信号时核心引擎115所执行的操作。如图2中的流程图所示,核心引擎115将范围寄存器165初始化为例如十六进制(H)的值8000,如步骤205所示。核心引擎115还分别将低寄存器170、位突出寄存器175和计数寄存器180初始化为例如0值,分别如步骤210、215和220所示。
在初始化之后,并且一旦收到事件序列125的二进制事件,核心引擎115就进行操作,如根据本发明实施例的图3的流程图所说明的。
如图3的步骤305所示,核心引擎115利用范围寄存器165的当前值和通过概率传输线155收到的特殊事件值的概率估计,为该特殊事件值例如事件值“A”计算子范围值R(A)。在此,通过使范围寄存器值“R”与概率估计P(A)相乘,来计算子范围值R(A)。如步骤310所示,核心引擎115的比较器(未显示)把通过事件传输线145收到的二进制事件的值“X”与已经为其产生了概率P(A)的特殊事件值A进行比较。在收到的事件值X等于A的情况下,将范围寄存器165设置为子范围值R(A),如步骤315所示(即把R(A)的值存储在范围寄存器165中)。然而,如果在步骤310收到的事件值X不等于事件A,则从范围寄存器165的值R减去子范围值R(A),并将所得的结果值存储在范围寄存器165中,如步骤320所示。使低寄存器170的值L与子范围值R(A)相加,并将相加结果存储在低寄存器170中,如步骤325所示。一旦在步骤315重新计算范围寄存器165的值,或者在步骤325计算低寄存器170的值,核心引擎就调用重新归一化例程,如步骤330所示,以下将参考根据本发明实施例的图4流程图进一步讨论。
如图4所示,对于重新归一化,首先把范围寄存器165的值与预定的范围值(在此为4000H)进行比较,如步骤405所示。如果范围寄存器165的值R大于4000H,使计数寄存器180递增一个预定的增量值1,如步骤410所示。如果在步骤405在核心引擎115处判断值R小于或等于4000H,则使低寄存器170的值L与范围寄存器165的值R相加,并且与值8000H进行比较,如步骤415所示。如果相加总和小于或等于8000H,则调用其中参数B等于“0”的位相加跟随(Bit-Plus-FollowBPF)例程,如步骤420所示,以下将进一步讨论。然后使低寄存器170的值加倍,如步骤425所示,并且把计数寄存器180的值C与0进行比较,如步骤430所示。如果计数寄存器180的值C不小于0,则从计数寄存器180减去一个减量值,在此为4H,如步骤435所示,并且流程返回到步骤405,并且如上述那样进行操作。然而,如果在步骤430判定计数寄存器180的值C小于0,则通过使范围寄存器165的值加倍,来重新调节范围寄存器,如步骤440所示,然后程序流程继续到如上所讨论的步骤435。
如果在步骤415判断值L和R之和不小于或等于8000H,则将低寄存器170的值L与8000H进行比较,如步骤445所示。如果值L大于或等于8000H,则调用其参数B等于“1”的位相加跟随例程,如步骤450所示,以下进一步讨论。从低寄存器170减去值8000H,如步骤455所示,并且流程继续到如上讨论的步骤425。然而,如果在步骤445判定低寄存器170的值L不是大于或等于8000H,则使位突出寄存器175增1,如步骤460所示,并从低寄存器170减去值4000H,如步骤465所示。然后流程继续到如上所讨论的步骤425。
一旦收到事件序列125的最后事件,序列发生器105就通过终止传输线195把终止信号发送到核心引擎115。在根据本发明实施例的图5流程图中,显示了当核心引擎115收到终止信号时所执行的操作。
如图5所示,在步骤505调用位相加跟随例程,其参数B具有低寄存器170的最高有效位(MSB)的值。然后将低寄存器170的最低有效位(LSB)发送给序列发生器105,如步骤510所示。在根据本发明实施例的图6流程图中,更详细地显示了位相加跟随例程。
如图6所示,通过位传输线158将值B作为信息序列135的位发送给序列发生器105,如步骤605所示。在步骤610,把位突出寄存器175的值BO与0进行比较。如果位突出寄存器175的值BO不大于0,则流程返回到调用位相加跟随例程的那个程序段/例程(即图4中的方框420或450,或者图5中的方框505)。然而,如果在步骤610值BO大于0,则通过位传输线158把信息序列135中具有1-B值的位发送给序列发生器105,如步骤615所示。从位突出寄存器的值BO减1,如步骤620所示,并且流程返回到步骤610,并且如上所讨论的那样继续。
因此,提供具有带计数器180的核心引擎115的编码器110,将允许跟踪事件与信息片之比,由此允许限制这种比,以便减小由编码器提供的信息序列的复杂性限度。参考步骤410所讨论的计数器增量值、参考步骤435所讨论的计数器减量值和在步骤430再次与计数寄存器180进行比较的值,用于控制平均的事件与信息片之比。例如,利用以上参考图4讨论的值,在步骤435设置的减量值4将导致平均的事件与信息片之比被限制为4。改变减量值将改变平均的事件与信息片之比。因此,本领域技术人员应该理解,增量值、减量值和与计数寄存器进行比较的值仅仅是示例性的,这些值连同在图2的方框220已被初始化的计数寄存器180的值,不必是如上所述的值,而是可以为任何整数值,其中相应的值将被选择用以获得期望的限定的平均事件与信息片之比。
图7至图10说明了一种算术解码器及其操作,其能够通过计及限定的事件与信息序列中信息片之比,来将包括至少一个信息片的信息序列解码为包括多个事件的事件序列。图7是解码器的框图,图8至图10是说明该解码器的操作的流程图。
图7说明了根据本发明实施例的算术解码器700。解码器700包括序列发生器705、概率估计器710和核心引擎715,这些部件相互连接。一个或多个信息序列输入数据线720提供了到解码器700的输入端口,用于接收信息序列725,在此为二进制位的有序序列。序列725的二进制位可以具有“0”或“1”值。解码器通过计及限定的事件与信息序列中信息片之比,来处理信息序列,以产生事件序列。产生的事件序列是包括多个事件,在此为二进制事件,的有序事件序列,其中事件可以具有“A”或“B”值。事件序列被提供给输出事件序列数据线730,其提供从解码器700的至少一个输出端口。
一旦收到二进制位的有序序列725,序列发生器705就通过位传输线740将一个或多个位顺序地发送到核心引擎715。一旦收到该一个或多个位,核心引擎715就开始产生事件,在此为二进制事件,然后分别通过事件传输线745和750将产生的事件发送给序列发生器705和概率估计器710。如以下进一步讨论,概率估计器710将初始的概率估计发送给核心引擎715,以产生第一个二进制事件。此后,对于由核心引擎715产生的且被发送到序列发生器705的每一个二进制事件,序列发生器705都通过上下文传输线755将相应的上下文发送到概率估计器710。概率估计器710根据通过上下文传输线755收到的上下文值,产生相应的概率估计P(A),然后通过概率传输线760将产生的概率估计P(A)发送到核心引擎715,核心引擎715利用收到的概率估计P(A)产生进一步的事件。在发送概率估计P(A)之后,概率估计器710根据通过事件传输线750从核心引擎715收到的二进制事件的值,来更新其内部状态。核心引擎715为产生的每一个二进制事件消耗0或多个信息位。在产生事件序列735的事件的过程中,核心引擎715利用了各种寄存器,包括范围寄存器765、值寄存器770和计数寄存器775。初始化信号分别通过初始化传输线780和785被提供给核心引擎715和概率估计器710。终止信号通过终止信号线790被提供给核心引擎715。解码器700的操作如图8至图10中的流程图所示。
图8说明了根据本发明实施例、一旦通过初始化信号线780收到初始化信号时解码器700所执行的操作。如图8所示,核心引擎715将范围寄存器765的值初始化为8000H,如步骤800所示,并将值寄存器770的值初始化为由16位表示的特殊值(以下讨论),如步骤805所示。进一步,核心引擎715将计数寄存器775的值初始化为0,如步骤810所示。
在步骤805,通过将16位、例如信息序列的第一个16个信息片,收集到值寄存器770中,来对值寄存器770进行初始化,如在文献“Moffat et al.,Arithmetic Coding Revisited(再谈算术编码),ACMTransactions on Information Systems,Vol.16,NO.3,July 1998,pages256-294”中所描述的,其在此被引入作为参考,并且本领域技术人员都应该理解。
图9所示流程图说明了根据本发明实施例、在产生事件序列725过程中核心引擎715所执行的操作。如步骤900所示,核心引擎715为事件值“A”计算子范围值R(A)。根据范围寄存器765的值和通过概率估计传输线760从概率估计器710收到的确定的概率估计P(A),通过将范围寄存器765的值R与概率估计P(A)相乘,来计算子范围值R(A)。当第一次为特殊信息序列735计算子范围值R(A),概率估计器710确定概率估计P(A)为某一初始/预定的概率估计(即事先约定的)。此后,当核心引擎715发出事件时,概率估计器710利用发出的事件连同通过上下文传输线755收到的相应上下文信息,对通过概率估计传输线760提供的概率估计P(A)进行更新,如以下讨论。
然后,将子范围值R(A)与值寄存器770的值V进行比较,如步骤905所示。如果子范围值R(A)小于值寄存器765的值V,则将范围寄存器165设置为子范围值R(A),如步骤910所示,并通过事件传输线745将事件“A”发送给序列发生器705,如步骤915所示。然后,调用重新归一化程序,如步骤920所示,这将参考图10的流程图进行更详细地讨论。
如果在步骤905,子范围值R(A)不小于值寄存器770的值V,则从范围寄存器765的值减去子范围R(A),如步骤925所示。从值寄存器770的值V减去子范围值R(A),如步骤930所示,并且通过事件传输线745从核心引擎715将事件“B”发送给序列发生器705,如步骤935所示。流程继续到步骤920的重新归一化程序。
如上所讨论,一旦通过事件传输线745发出事件,序列发生器705就通过上下文传输线755将上下文发送到概率估计器710,其中概率估计器710根据由核心引擎715发出的二进制事件的值,更新其内部状态。
图10所示的流程图说明了根据本发明实施例、当执行以上参考步骤920讨论的重新归一化时核心引擎115所执行的操作。如步骤1000所示,将范围寄存器765的值R与预定的范围值,在此为4000H,进行比较。如果预定值R不小于或等于4000H,则使计数寄存器775递增一个预定的增量值,在此为1,如步骤1005所示,并且完成重新归一化。然而,如果范围寄存器765的值R小于或等于4000H,则将计数寄存器775的值C与0进行比较,如步骤1010所示。如果计数寄存器775的值C不小于0,则使寄存器770的值V加倍,并把该加倍值与核心引擎715通过位传输线740收到的最新位的值相加,其中所得的总和被存储在值寄存器770中,如步骤1015所示。如步骤1020所示,使计数寄存器775的值C递减一个预定的减量值,在此为4H,然后流程返回到步骤1000。如果在步骤1010,计数寄存器775的值C小于0,则通过使范围寄存器765的值R加倍来重新调节范围寄存器765,如步骤1025所示,并且流程继续到如上所述的步骤1015。
在信息序列725的最后一段信息被发送到核心引擎715且被核心引擎715处理之后,序列发生器705通过终止信号传输线790将终止信号发送给核心引擎715,以向核心引擎715指示信息序列725的解码完成了。响应该终止信号,核心引擎必须不进行操作。
对于具有减小的复杂性限度、能够通过限制事件与信息片之比来将事件序列编码为信息序列的编码器100,其优点在于,提供了可以被解码且用来支持实时信息提供的信息序列,而不显著影响信息序列的编码效率。另外,在用于解码信息序列的解码器拥有减小的处理能力(即在移动设备上)的情况下,这种具有减小复杂性的编码也是有益的,这是因为这种解码器能够对信息序列进行解码,而没有在等待解码完成的过程中出现过度的延迟。还有,对于能够通过计及限定的事件与信息序列中信息片之比来把信息序列解码为事件序列的解码器700,其优点还在于,允许对信息序列、例如供事件序列实时使用之用的信息序列,进行高效地解码。
图11说明了根据本发明另一实施例的编码器1100。如图11所示,编码器1100包括处理器1105,其与熵编码器1110相连。熵编码器1110包括算术编码器1115,其与控制器1120相连。输入数据1125被编码器1100接收,并且被编码为1130所示的一个或多个信息片序列。
输入数据1125可以是要被编码器1100编码的任何数据,包括例如视频数据。处理器1105接收输入数据,并将输入数据转换为一个或多个事件序列1135。处理器1105可以将输入数据分为一个或多个信息段(未显示)。例如,在输入数据1125为视频数据的情况下,处理器可以把视频数据分为数据块,例如代表相应视频图像的16×16样本的数据块。事件序列1135可以代表一个或多个段(视频块)。
熵编码器1110接收要被算术编码的事件序列1135,其中算术编码器1115为事件序列1135的每个事件产生信息序列1130的0或多个位。控制器1120能够通过将信息序列1130的信息片数目约束为事件序列135的事件数目的函数,来调节熵编码器1110,使得事件的数目不超过关于产生的信息片数目的阈值。如果超过了阈值,控制器1120可以控制熵编码器向信息序列1130增加一个或多个填充信息片,以达到阈值。
熵编码器可以以类似于以上相对于图1的算术编码器100所述的方式,对事件序列1135进行编码。例如,算术编码器1115可以适当地包括序列发生器和概率估计器,如以上相对于图1所述的。算术编码器1115还可以包括具有范围寄存器、低寄存器和位突出寄存器的核心引擎。控制器1120可以包括一个或多个计数器,用于跟踪被处理的事件序列1135的事件数目和产生的信息序列1130的信息片数目。作为选择,该一个或多个计数器可以被布置在熵编码器1110中,其中控制器1120能够监测该计数器,以确保基本上保持被处理的事件与产生的信息片之间的阈值。控制器1120可以约束信息片的数目,例如相对于编码的每一个事件序列来约束信息片的数目。例如,控制器可以确保(#产生的信息片)×(阈值)≥(#处理的事件)。例如,可以以类似于以上相对于图1至图6、尤其是图4所讨论的方式,来实现这一点,其中控制器为每个被处理的事件递增寄存器值,并且当对位进行处理时,从计数器减去一个代表阈值的数,例如“4”。然后,控制器可以将计数器的值与例如0值进行比较,并且如果计数器值大于0,则触发填充位的插入。这样,控制器能够确保,将算术编码器1115基本上约束为4∶1的被处理事件与产生的信息片之比。
此外,或者在替换例中,控制器可以将事件序列1135的事件数目约束为信息片序列中的信息片数目和以事件序列表示的输入数据1125的段数目的函数。例如,约束可以取线性组合的形式e≤αB+βS,其中e为以信息片序列表示的事件数目,B为信息片序列中的信息片数目,S为以事件序列表示的段数目,以及α和β代表计数器的减量值,其被控制器用来基本上保持事件序列的事件数目相对于产生的信息片数目的约束。
通常,将α和β的值提供给控制器1120,以下将讨论α和β值的推导。值α可以代表,例如一旦编码器产生信息片时计数器的减量值,在此β可以代表,例如一旦完成段的处理时计数器的减量值。在替换例中,可以在段处理的开始,或者在段处理期间的其它任何时间,使计数器值递减值β,这对于本领域技术人员来说是显而易见的。
速率控制线1140可以用于将事件序列1135的事件数目约束为信息片序列中的信息片数目和以事件序列表示的输入数据1125的段数目的函数。例如,速率控制线1140可以用于把与复杂性约束有关的信息(每秒最多事件数和/或峰值每秒最多事件数,见以下)从熵编码器1110传送到处理器1105。例如,熵编码器1110可以通过传送关于计数器值的信息,向处理器指示将要超过阈值或超过了阈值。从而,处理器1105可以减小事件速率(即减少每段/块的事件数目),以便,例如降低控制器1120触发信息序列1130的填充位插入的可能性。
在某些情况下,例如在信息片序列基本上不必受限于在特定通信媒介上的传输的情况下,在编码器1100处可能知道将被处理的输入数据1125的数据段的具体数目。在这些情况下,编码器1100产生的信息片序列可以代表从输入数据1125的已知数目的数据段产生的、用于传输的完整编码图像。在将被处理的输入数据的数据段的具体数目已知的情况下,控制器可以,例如将事件序列1135中的事件数目约束为e-βS≤αB,由于段的总数S和值β是已知的,因此可以在处理输入数据1125的一个或多个段的期间或之后,从事件序列1135的事件数目e减去乘积β×S。例如,在利用计数器来响应已产生的位的数目而约束事件数目的情况下,则最初可以使该计数器减去β×S值,并且对于产生的每个信息片使该计数器减去值α,而对于由熵编码器1110处理的事件序列1135的每个事件,使该计数器增“1”。β值可以是任何值,通常在1至100范围内,并且可以如以下进一步描述的那样确定。α值可以是任何值,通常在1至10范围内,并且可以如以下进一步描述的那样确定。
在某些情况下,事先不知道要处理的输入数据1125的段数目,例如,在通信媒介限制了在信息序列1130中可以提供的信息片数目的情况下。例如,在信息序列1130要作为网际协议(IP)分组通过因特网传输时,可能会发生这种情况,其中IP分组具有最大尺寸限制。在这些情况下,取决于特殊图像的复杂性,可能需要一个或多个信息片序列表示输入数据1125的单幅图像。然而,由于可能不知道在处理了多少段之后将达到信息片序列的最大尺寸,因此可能事先不知道用于产生信息片序列的段的数目。在事先不知道要处理的输入数据1125的段数目的情况下,当对代表特殊事件序列的一个或多个段进行编码时,控制器可以计及多个事件序列。例如,在利用计数器来响应已经产生的位的数目而约束事件数目的情况下,可以相对于每个被处理的段使计数器递减一个值β,以及相对于每个产生的信息片使计数器递减一个值α,而相对于被熵编码器1110处理的事件序列1135的每个事件使计数器递增“1”。
例如,可以通过计及由特殊标准(即管理视频编码的标准)强加的限制,以及/或关于要用来对编码器1100所编码的信息序列进行解码的解码器的限制,来确定α和β值。由特殊标准强加的这种限制可以包括,关于每秒最大位数(MBPS)、每秒最大段(块)数(MSPS)和峰值每秒最大位数(PMBPS)的信息。PMBPS可以表示,例如图像的最大位数除以要编码的两幅图像之间的时间间隔。
MBPS可以说明信道容量,例如,对于移动通信应用为大约64000位每秒,对于数字用户线(DSL)为500000位每秒,以及对于诸如电视(TV)的广播应用为4000000位每秒。MSPS可以说明视频格式标准,例如对于移动(蜂窝电话)应用为10或15帧176×144像素每秒,对于DSL应用为24帧320×240像素每秒,对于标准TV应用为30帧720×480像素每秒,以及对于高清晰TV为30帧1920×1088像素每秒。PMBPS可以为MBPS的任何倍,通常为几倍的MBPS,例如PMBPS≈10×MBPS。
取决于特殊的实现,当确定α和β值时,可以限制、也可以考虑解码器的资源(即处理能力和/或可用缓冲存储器)。这种限制可以包括,解码器可以处理的每秒最大事件数(MEPS)的实际值或假设值,和/或解码器可以处理的峰值每秒最大事件数(PMEPS)(即图像中的最大事件数目除以被解码的两幅图像之间的时间间隔)。
考虑解码器的一个或多个以上限制,在线性系统中可以将α和β表示为PMEPS=α*PMBPS+β*MSPS,以及MEPS=α*MBPS+β*MSPS。
给定例如由特殊标准设置的PMBSP和MSPS限制,和解码器的PMEPS和MEPS限制之一或两者,可以通过求解该α和β的线性系统,来确定α和β值。α和β值不必是整数值,而可以是充分满足该线性系统的任何值。
可以由编码器1100的系统设计员考虑上述的一个或多个限制,来预先确定α和β值,并将预定的α和β值提供给控制器1120。作为选择,或者另外,可以由控制器1120或者编码器1100的其它任何部件,根据上述的一个或多个限制来确定α和β值,或者作为编码器1100的默认值。如果控制器1120利用由特殊标准强加的限制或者由解码设备强加的标准两者之一或两者,来确定α和β值,则关于该一个或多个限制的信息可以被存储在控制器1120的存储器(未显示)中,并且被控制器1120用来确定α和β值。另外,或者在替换例中,例如可以通过诸如外存储器(即DVD)、DVD播放器的某些外部设备将关于限制的信息提供给控制器1120,或者可以由系统工程师,例如处理关于特殊输入数据1125编码的某些功能的工程师,将该信息提供给控制器1120。在后一种情况下,系统工程师可以通过控制台或其它输入设备(未显示)来输入、或者另外指定关于由编码设备和/或解码设备强加的限制的信息,本领域技术人员应该理解这一点。
在解码器限制PMEPS和MEPS之一未知或两者都未知的情况下,可以将PMEPS和MEPS的值假设为,例如解码器为了能够对编码器1100产生的信息序列1130进行解码而具有的最小操作要求。此外,当假设PMEPS和/或MEPS的值时,可以考虑以下因素例如,解码器对数据进行算术解码所花时间的百分数。例如,可以假设,解码器将能够花费其处理时间/能力的仅仅30%来对解码器收到的信息序列执行算术解码。
此外,即使可能利用上述的线性系统来确定α和β值,也可以调节这些值以达到期望的编码性能,其中调节的α和β值随后可以被编码器1100用来将输入数据1125编码为信息序列1130。例如,可以考虑由信息序列1130中填充的信息片引起的潜在的视频质量损失,来调节α和β值。最好是,例如使填充的信息片的数目减到最小,以便在限定解码复杂性的同时保持良好的视频质量(即几乎无失真或无失真的视频)。可以通过实验来确定解码复杂性与视频质量之间的这种折衷,并且可以考虑编码器1100使用的特殊视频编码算法。
另外,当确定α和β值时,可以考虑复杂性约束是否太紧,例如α和/或β值太小。信息片序列中的高填充信息片比例(即,填充段的数目大于信息序列的信息片的大约1%或2%)可能表示约束太紧。考虑到可能使用的特殊标准和/或解码器,本领域技术人员应该了解,其它的比例也可以表示高的填充信息片比例。
如果判定,例如α和β值太小,则可以增大α和β值以降低填充位增加的可能性(即减小编码信息序列中的质量恶化的可能性)。当增大α和β值时,可以考虑所得的复杂性限度(即MEPS和/或PMEPS)相对于将要用来对编码信息序列进行解码的解码器的影响。这种考虑可以包括用以实施解码器的成本。如果复杂性限度较高,则解码器需要更强的处理能力。所需处理能力的提高可能导致更高的实施成本。
作为选择,可以利用线性回归技术在实验上确定α和β值。在不施加任何复杂性约束的情况下,对多个事件序列进行编码,每个事件序列都都代表S段。对于每个事件序列z,已知事件数目e(z)和最终所得的产生的信息片的数目B(z)。利用线性回归,可以确定与数据对(e(z),B(z))逼近的直线e=c*B+d。α的初始值可以表示为c,β的初始值可以表示为d/S。然后,可以增大α和/或β值,以使位于直线e=c*B+β*S以上的数据对(e(z),B(z))的数目减到最少。还可能考虑所得的MEPS和/或PMEPS值来确定α和/或β值的增量,以便,例如控制解码器的实施成本。
利用通过上述各种技术中的一种或多种技术所确定的α和β值,编码器1100可以为每个产生的信息片计及α值(即,使计数器递减α值),以及一旦完成输入数据1125的段处理时计及β值(即,使计数器递减β值)。例如,如果α和β为整数值,这种计及(即一个或多个计数器的递减)可以直接完成。
如果,例如α和β之一或两者都为分数值,则可以确定一个公分母,以便提供非分数的α和β值。在这种情况下,一旦分别产生信息片和完成段处理,就可以通过例如使计数器分别递减α和β,来计及新的、非分数的α和β值,如上所述。一旦处理事件序列1135的各个事件,就可以通过例如将公分母的值加到计数器值上,来计及确定的公分母。例如,如果α和β值分别被确定为4/3和25,则确定公分母为3。从而,利用公分母,将非分数的α和β值分别确定为4和75。因此,如果利用计数器来计及α和β值,则对于每个产生的信息片可以使该计数器递减4,一旦完成每个段的处理时使该计数器递减75,以及对于每个被处理的事件使该计数器递增3。
与现有技术的编码器相比,对于能够为输入数据的一个或多个段约束信息片数目的编码器,其在保持视频编码质量的同时计及每组段的最大信息片数目,从而允许一致地解码视频数据。另外,如果编码器通过速率控制线收到复杂性阈值将要被超过的信号,则编码器可以从输入数据的下一段产生更少事件,例如β个或更少的事件,以避免超过该下一段/块的复杂性阈值。从而,不等于0的β值将有助于处理器1105调节视频质量。另外,当在约束阈值被超过的情况下,控制器典型地触发填充位添加时,可以以这样一种方式来实施处理器,以至处理器不必计及或处理复杂性约束。从而,如果处理器满足由特殊标准强加的限制,例如关于MSPS、MBPS和PMBPS之一或多个的限制,它也将满足复杂性限制MEPS和/或PMEPS(即,从如上所述的α和β得到)。
虽然,已经相对于编码器1100讨论了响应产生的信息片数目来约束事件数目,但是本领域技术人员应该了解,可以相对于以上参考图1讨论的编码器100,来考虑类似的、响应信息序列中的信息片数目而约束事件序列的事件数目。此外,虽然控制器1120已被描述为连接到算术编码器1115,但是本领域技术人员应该了解,连接可以是直接的,或者通过其它插入设备。这种连接允许控制器1120与算术编码器1115之间的直接和/或间接通信,从而控制器1120能够通过将信息序列1130的信息片数目约束为事件序列1135的事件数目的函数,来调节熵编码器1110。
在此所述的编码器100和1100以及解码器700可以完全由硬件组成,也可以作为在合适的微处理器上运行的软件,或者作为硬件或软件的组合。核心引擎115和715以及算术编码器1115、控制器1120和微处理器1105的功能性可以被实施为在合适的微处理器上运行的计算机程序,并且计数寄存器180和775可以是位于微处理器内部的寄存器,或者可以位于与微处理器通信的某些外部存储介质上,例如随机存储器(RAM)、电可擦除只读存储器(EEPROM)或任何可重写的磁、光介质或其它存储介质上,本领域技术人员应该了解这一点。如上所述,虽然编码器100和1100以及解码器700已经被描述为,在编码器情况下将二进制事件序列处理为二进制信息序列,以及在解码器情况下将二进制信息序列处理为二进制事件序列,但是本领域技术人员应该了解,利用在此所述的技术,可以处理和产生M进制的事件序列,同时仍然获得在此所述的优点。
此外,可以使计数寄存器180和775的正负号取反,同时仍然获得在此所述的优点,其中在步骤410和1005中所述的寄存器的增量将改变为减量,在步骤435和1020所述的寄存器的减量将改变为增量,以及在步骤430和1010所述的与计数寄存器的比较将改变为,判定各个计数寄存器的值是否大于0。
另外,可以使用两个计数器而不是一个。第一计数器C1可以对事件计数,以及第二计数器C2可以对位计数。在这种情况下,在判定是否充分地保持(或计及)预定的事件与位之比的过程中,两个计数器之间的比较可以为是否C1<4*C2。
另外,虽然编码器100和解码器700已经被描述为分开的硬件,但是本领域技术人员应该了解,可以将如在此所述的、由编码器100和解码器700执行的功能集成到单一单元中,例如在个人计算机(PC)用于电视会议的情况下这样做是有用的,其中PC的处理器和存储介质将用于实现在此所述的编码器和解码器的功能性。
在此所述的、由核心引擎实现的限制事件与信息片之比和计及限定的事件与信息片之比,可以在其它核心引擎结构上被实现,包括Q编码器、MQ编码器、Z编码器的核心引擎,以及在“低复杂性算术编码实现(Low Complexity Arithmetic Coding Implementation)”,Renevan der Vleuten,Document JVT-B033,JVT meeting in Geneva,Switzerland,January 2002,和“低复杂性算术编码引擎(Low ComplexityArithmetic Coding Engine)”,Winger,Dcoument JVT-B036,JVT meetingin Geneva,Switzerland,January 2002中所讨论的那些核心引擎,这两篇文献在此作为参考被引入。
因此,已经描述了一种具有减小的复杂性限制的编码器,其能够通过限制事件与信息片之比将事件序列编码为信息序列。这种编码器的优点在于,在不显著影响信息序列的编码效率的情况下,提供了可以被解码并用于支持实时信息提供的信息序列。另外,如果用于对信息序列解码的解码器具有减小的处理能力(即在移动设备上),这种具有减小复杂性的编码是有用的,因为这种解码器能够对信息解码,而没有等待解码完成的过度延迟。另外,已经描述了一种能够为输入数据的一个或多个段约束信息片数目的编码器,与现有技术的编码器相比,其在保持视频编码质量的同时计及每组段的最大信息片数,从而允许一致地解码视频数据。如果编码器通过速率控制线收到关于复杂性阈值将要被超过的信号,则编码器可以产生更少事件,以避免超过输入数据的该下一段的复杂性阈值。从而,不等于0的β值将有助于处理器1105调节视频质量。另外,当在约束阈值被超过的情况下,控制器典型地触发填充位的添加时,可以以这样一种方式来实施处理器,以至处理器不必计及或处理复杂性约束。此外,描述了一种解码器,其能够通过计及限定的事件与信息序列中信息片之比,来将信息序列解码为事件序列,由此允许信息序列的高效解码,以用于例如事件序列的实时使用。
虽然已经连同特殊实施例显示和描述了本发明,但是显然,由本发明的基本特征,可以作出除上述之外的某些改变和变更。另外,有许多不同类型的计算机软件和硬件可以用于实施本发明,并且本发明不限于上述的例子。因此,所述的实施例在各个方面都应该被认为是说明性的而非限制性的,因此本发明的范围是由附加的权利要求而非上述说明来限制。落入权利要求的范围或等效范围之内的所有变化都应该被包括在本发明的范围中。
权利要求
1.一种算术编码器,用于将包括多个事件的事件序列转换为包括至少一个信息片的信息序列,包括至少一个输入端口,用于接收事件序列的事件;至少一个输出端口;序列发生器,与所述至少一个输入端口和所述至少一个输出端口相连,并且包括一个用于为至少一个收到的事件产生上下文信息的上下文发生器;概率估计器,与所述序列发生器相连,用于从所述序列发生器接收事件序列的事件和相应的上下文信息,以及为具有特殊值的事件产生概率估计;以及核心引擎,与所述序列发生器和所述概率估计器相连,用于从所述序列发生器接收事件序列的事件以及从所述概率估计器接收概率估计,以及响应收到的事件和概率估计,通过限制事件与信息片之比来产生信息序列的0或多个片,并将产生的信息序列的0或多个信息片提供给序列发生器;其中产生的信息片作为信息序列被提供在所述至少一个输出端口。
2.根据权利要求1所述的算术编码器,其中事件序列的事件是二进制事件,并且信息序列的信息片是信息的二进制位。
3.根据权利要求1所述的算术编码器,其中核心处理器限制事件与信息片之比包括,限制平均的事件与信息片之比。
4.根据权利要求3所述的算术编码器,其中限定的平均事件与信息片之比是每信息片4个事件。
5.根据权利要求3所述的算术编码器,其中核心处理器包括计数寄存器,用于为每个信息片跟踪事件数目,并用于将平均的事件与信息片之比限制为预定的比值。
6.根据权利要求5所述的算术编码器,其中当事件与信息片之比超过预定比值时,核心处理器在信息序列中产生至少一个填充信息片。
7.根据权利要求5所述的算术编码器,其中对于每个被处理的事件,核心引擎使计数器递增一个预定的增量值。
8.根据权利要求7所述的算术编码器,其中预定增量值为1。
9.根据权利要求5所述的算术编码器,其中当产生信息片时,核心引擎通过从计数寄存器减去预定的比值,来利用计数寄存器限制平均的事件与信息片之比。
10.根据权利要求1所述的算术编码器,其中事件实质上是M进制的。
11.根据权利要求1所述的算术编码器,其中核心引擎包括第一计数寄存器,用于跟踪事件数目;以及第二计数寄存器,用于跟踪信息片数目,所述第一和第二寄存器用于将事件与信息片之比限定为预定比值。
12.根据权利要求11所述的算术编码器,其中所述核心引擎通过将第一计数器的值与第二计数器的值进行比较,来跟踪比值。
13.一种核心引擎,用于将包括多个事件的事件序列转换为包括至少一个信息片的信息序列,包括控制器,用于接收事件序列的至少一个事件和该至少一个事件的概率估计,以及用于响应收到的事件和概率估计,通过限制事件与信息片之比来产生信息序列的0或多个片。
14.根据权利要求13所述的核心引擎,还包括计数寄存器,与控制器相连,用于为每个信息片跟踪事件数目,以及用于限制事件与信息片之比。
15.根据权利要求14所述的核心引擎,其中当处理事件时,控制器使计数器递增一个预定增量值。
16.根据权利要求15所述的算术编码器,其中预定增量值为1。
17.根据权利要求14所述的核心引擎,其中当产生信息片时,核心引擎通过从计数寄存器减去预定的比值,来利用计数寄存器限制事件与信息片之比。
18.根据权利要求13所述的核心引擎,其中事件序列的事件是二进制事件,以及信息的信息片是信息的二进制位。
19.根据权利要求13所述的核心引擎,其中控制器限制事件与信息片之比包括,限制平均的事件与信息片之比。
20.根据权利要求19所述的核心引擎,其中限定的平均事件与信息片之比为每信息片4个事件。
21.根据权利要求19所述的核心引擎,其中当平均的事件与信息位之比超过预定比值时,核心处理器在信息序列中产生至少一个填充信息片。
22.根据权利要求13所述的核心引擎,还包括第一计数寄存器,与控制器相连,用于跟踪事件数目;以及第二计数器,与控制器相连,用于跟踪信息片数目;其中控制器利用所述第一和第二计数器来限制事件与信息片之比。
23.根据权利要求22所述的核心引擎,其中控制器限定比值包括,将第一计数器的值与第二计数器的值进行比较。
24.一种算术编码法方法,用于将包括多个事件的事件序列转换为包括至少一个信息片的信息序列,所述方法包括接收事件序列的至少一个事件;为所述至少一个事件产生上下文信息;响应上下文信息,为具有特殊值的事件产生概率估计;以及响应收到的事件和概率估计,通过限制事件与信息片之比来产生信息序列的0或多个信息片。
25.根据权利要求24所述的方法,其中所述接收事件序列的事件包括接收二进制事件,以及所述产生信息序列的0或多个信息片包括产生信息的0或多个二进制位。
26.根据权利要求24所述的方法,其中限制事件与信息片之比包括,限制平均的事件与信息片之比。
27.根据权利要求26所述的方法,其中限制事件与信息片之比包括,为每个产生的信息片跟踪事件数目。
28.根据权利要求27所述的方法,其中为每个产生的信息片跟踪事件数目包括,利用计数器为每个产生的信息片跟踪事件数目。
29.根据权利要求28所述的方法,其中利用计数器为每个产生的信息片跟踪事件数目包括,当处理事件时,通过使计数器递增一个预定增量值来跟踪事件数目。
30.根据权利要求29所述的方法,其中使计数器递增一个预定增量值包括,使计数器增1。
31.根据权利要求27所述的方法,其中为每个产生的信息片跟踪事件数目包括,当产生信息片时,从计数寄存器减去一个预定比值。
32.根据权利要求26所述的方法,其中限制平均的事件与信息片之比包括,将平均的事件与信息片之比的值限定为4。
33.根据权利要求26所述的方法,其中限制平均的事件与信息片之比还包括,当事件与信息片之比超过预定比值时,在信息序列中产生至少一个填充信息片。
34.根据权利要求24所述的方法,其中为每个信息片跟踪事件的数目包括,利用第一计数器跟踪事件数目以及利用第二计数器跟踪信息片数目。
35.根据权利要求34所述的方法,其中为每个产生的信息片跟踪事件数目还包括,将第一计数器的值与第二计数器的值进行比较。
36.一种算术编码方法,用于利用算术编码器将包括多个事件的事件序列转换为包括至少一个信息片的信息序列,所述方法包括接收事件序列的至少一个事件和相应的概率估计;以及响应收到的事件和相应概率估计,产生0或多个信息片,包括利用相应概率估计为特殊事件值计算子范围值,响应收到的事件和计算的子范围值,调节范围寄存器和低寄存器中的至少之一,以及通过以下方式来重新归一化算术编码器的一部分,包括限制平均的事件与信息片之比在处理事件时,使用于跟踪平均比的计数寄存器递增一个预定增量值,以及当产生信息片时,使计数寄存器递减一个预定减量值。
37.根据权利要求36所述的方法,其中使计数寄存器递减包括,判断计数寄存器的值是否小于0,以及当计数寄存器的值不小于0时,使计数寄存器递减预定的减量值,以及当计数寄存器的值小于0时,使范围寄存器的值加倍,并使计数寄存器的值递减预定的减量值。
38.根据权利要求36所述的方法,其中接收至少一个事件包括接收至少一个二进制事件,以及产生0或多个信息片包括产生0或多个二进制位。
39.一种算术解码器,用于将包括至少一个信息片的信息序列转换为包括多个事件的事件序列,包括至少一个输入端口,用于接收信息序列的信息片;至少一个输出端口;序列发生器,与所述至少一个输入端口和所述至少一个输出端口相连,并包括一个用于为至少一个产生的事件产生上下文信息的上下文发生器;概率估计器,与所述序列发生器相连,用于接收产生的事件序列的事件和相应的上下文信息,以及确定概率估计;以及核心引擎,与所述序列发生器和所述概率估计器相连,用于响应概率估计来处理来自所述序列发生器的信息序列的至少一个信息片,以通过计及限定的事件与信息片之比来产生至少一个事件;其中产生的事件与来自序列发生器的相应上下文信息一起被提供给概率估计器,用于更新概率估计,以及产生的事件被提供给序列发生器,以便作为事件序列从所述至少一个输出端口被发送。
40.根据权利要求39所述的算术解码器,其中信息序列的至少一个信息片是二进制位,以及事件序列的事件是二进制事件。
41.根据权利要求40所述的算术解码器,其中核心引擎通过计及限定的事件与信息片之比来产生至少一个事件包括,核心引擎通过计及平均的限定事件与信息片之比来产生至少一个事件。
42.根据权利要求41所述的算术解码器,其中核心引擎计及平均的限定事件与信息片之比包括,核心引擎利用每信息片4个事件的值来计及平均的限定比。
43.根据权利要求41所述的算术解码器,其中核心处理器包括计数寄存器,用于为信息片跟踪事件数目,并用于将平均的限定事件与信息片之比计及为预定的平均比值。
44.根据权利要求43所述的算术解码器,其中核心引擎利用计数寄存器来确定信息序列中的填充信息片。
45.根据权利要求44所述的算术解码器,其中核心引擎还包括范围寄存器,以及只有在范围寄存器被重新调节的情况下,才确定信息序列中的填充信息片。
46.根据权利要求43所述的算术编码器,其中当处理事件时,核心引擎使计数器递增一个预定增量值。
47.根据权利要求46所述的算术编码器,其中预定增量值为1。
48.根据权利要求43所述的算术编码器(,其中当处理信息片时,核心引擎通过从计数寄存器减去预定比值,来利用计数寄存器计及平均的限定事件与信息片之比。
49.根据权利要求39所述的算术解码器,其中产生的事件序列的事件实质上是M进制的。
50.根据权利要求39所述的算术解码器,其中核心引擎包括第一计数寄存器,用于跟踪信息片数目,以及第二计数寄存器,用于跟踪事件数目,其中第一和第二计数器用于计及限定的事件与信息片之比。
51.根据权利要求50所述的算术解码器,其中核心引擎通过比较第一计数器的值与第二计数器的值,来计及限定的比。
52.一种核心引擎,用于将包括至少一个信息片的信息序列转换为包括多个事件的事件序列,包括控制器,用于接收信息序列的至少一个信息片和概率估计,以及响应至少一个信息片和概率序列,通过计及限定的事件与信息片之比来产生事件序列的0或多个事件。
53.根据权利要求52所述的核心引擎,还包括计数寄存器,与控制器相连,用于为每个信息片跟踪事件数目,并用于计及限定的事件与信息片之比。
54.根据权利要求53所述的核心引擎,其中当处理事件时,控制器使计数器递增一个预定的增量值。
55.根据权利要求54所述的核心引擎,其中预定的增量值为1。
56.根据权利要求53所述的核心引擎,其中当处理信息片时,核心引擎通过从计数寄存器减去一个预定的比值,来利用计数寄存器计及平均的限定事件与信息片之比。
57.根据权利要求52所述的核心引擎,其中事件序列的事件是二进制事件,以及信息的信息片是信息的二进制位。
58.根据权利要求52所述的核心引擎,其中控制器计及限定的事件与信息片之比包括,计及平均的限定事件与信息片之比。
59.根据权利要求58所述的核心引擎,其中限定的平均事件与信息片之比为每信息片4个事件。
60.根据权利要求58所述的核心引擎,其中核心处理器利用平均的限定事件与信息片之比,来确定信息序列中的0或多个填充信息片。
61.根据权利要求52所述的核心引擎,还包括第一计数器,用于跟踪信息片数目,以及第二计数器,用于跟踪事件数目,其中第一和第二计数器用于计及限定的事件与信息片之比。
62.根据权利要求61所述的核心引擎,其中核心引擎通过比较第一计数器的值与第二计数器的值,来计及限定的比。
63.一种算术解码方法,用于将包括至少一个信息片的信息序列转换为包括多个事件的事件序列,所述方法包括接收信息序列的至少一个信息片;为至少一个事件产生上下文信息;响应上下文信息,产生概率估计;以及响应收到的至少一个信息片和概率估计,通过计及限定的事件与信息片之比来产生事件序列的0或多个事件。
64.根据权利要求63所述的方法,其中所述接收至少一个信息片包括,接收信息的至少一个二进制位,以及所述产生0或多个事件包括产生0或多个二进制事件。
65.根据权利要求63所述的方法,其中计及限定的事件与信息片之比包括,计及平均的限定事件与信息片之比。
66.根据权利要求65所述的方法,其中计及平均的限定事件与信息片之比包括,为每个信息片跟踪事件数目。
67.根据权利要求66所述的方法,其中为每个信息片跟踪事件数目包括,利用计数器为每个产生的信息片跟踪事件数目。
68.根据权利要求67所述的方法,其中利用计数器为每个产生的信息片跟踪事件数目包括,当处理事件时,通过使计数器递增一个预定的增量值来跟踪事件数目。
69.根据权利要求68所述的方法,其中使计数器递增一个预定增量值包括,使计数器增1。
70.根据权利要求67所述的方法,其中为每个信息片跟踪事件数目包括,当处理信息片时,从计数寄存器减去一个预定比值。
71.根据权利要求65所述的方法,其中限定平均的事件与信息片之比包括,将平均的事件与信息片之比的值限定为4。
72.根据权利要求65所述的方法,其中计及平均的限定事件与信息片之比还包括,利用平均的限定事件与信息片之比,来确定信息序列中的至少一个填充信息片。
73.根据权利要求63所述的方法,其中计及限定的事件与信息片之比包括利用第一计数器跟踪信息片数目,利用第二计数器跟踪事件数目,以及比较第一计数器的值与第二计数器的值。
74.一种算术解码方法,用于利用算术解码器将包括至少一个信息片的信息序列转换为包括多个事件的事件序列,所述方法包括接收信息序列的至少一个信息片和概率估计;以及响应收到的信息片和概率估计,产生0或多个事件,包括利用概率估计为特殊事件值计算子范围值,响应收到的至少一个信息片和计算的子范围值,调节范围寄存器和值寄存器中的至少之一,以及响应计算的子范围值与值寄存器之间的比较,发出事件,以及通过以下方式来重新归一化算术解码器的一部分,包括限定平均的事件与信息片之比在范围寄存器的值大于预定的范围值的情况下,使用于跟踪平均比的计数寄存器递增一个预定增量值,以及在范围寄存器的值小于或等于预定范围值的情况下,使计数寄存器递减一个预定减量值。
75.根据权利要求74所述的方法,其中所述使计数寄存器递减包括,判断计数寄存器的值是否小于0,以及当计数寄存器的值不小于0时,使值寄存器加倍,把发出的事件的值加到值寄存器上,以及使计数寄存器递减一个预定减量值,以及当计数寄存器的值小于0时,使范围寄存器加倍,使值寄存器加倍,把发出的事件的值加到值寄存器上,以及使计数寄存器递减一个预定减量值。
76.根据权利要求74所述的方法,其中所述接收至少一个事件包括接收至少一个二进制事件,以及所述产生0或多个信息片包括产生0或多个二进制位。
77.一种视频编码系统,用于将视频信号编码为包括至少一个信息片的信息序列,所述系统包括视频处理器,用于将视频信号转换为包括代表视频信号的多个事件的事件序列;以及编码器,与所述视频处理器通信,用于将事件序列转换为信息序列,所述编码器包括具有控制器的核心引擎,所述核心引擎用于接收事件序列的至少一个事件和所述至少一个事件的概率估计,并用于响应收到的事件和概率估计,通过限制事件与信息片之比来产生信息序列的0或多个片。
78.一种视频解码系统,用于将包括至少一个信息片的信息序列解码为视频信号,所述系统包括解码器,用于将信息序列转换为包括多个事件的事件序列,其具有控制器,所述控制器用于接收信息序列的至少一个信息片,以及响应至少一个信息片和概率序列,通过计及平均的限定事件与信息片之比来产生事件序列的0或多个事件;以及视频处理器,与解码器通信,用于将事件序列转换为视频信号。
79.根据权利要求78所述的视频解码系统,其中视频控制器信号计及限定的事件与信息片之比包括,利用计数器跟踪平均的事件与信息片之比,其中对于每个被处理的事件使所述计数器递增一个增量值。
80.根据权利要求78所述的视频解码系统,其中控制器计及限定的事件与信息片之比包括,通过利用第一计数器跟踪信息片数目、利用第二计数器跟踪事件数目、并比较第一计数器的值与第二计数器的值,来跟踪平均的事件与信息片之比。
81.根据权利要求78所述的视频解码系统,其中视频信号包括代表视频图像的多个样本,并且视频处理器将事件序列转换为视频信号包括,将事件序列转换为所述多个样本。
82.根据权利要求78所述的视频解码系统,其中视频信号包括代表视频图像的多个样本块,并且视频处理器将事件序列转换为视频信号包括,将事件序列转换为所述多个样本块。
83.根据权利要求82所述的视频解码系统,其中样本块包括16×16、8×8和4×4样本中的至少一个。
84.信息片序列,其由算术编码器从事件序列产生,且包括0或多个填充信息片,以致事件与信息片之比被限制为预定比。
85.根据权利要求84所述的信息片序列,其中预定的事件与信息片之比为4。
86.根据权利要求84所述的信息片序列,其中信息片序列是由算术编码器从二进制事件序列产生的位序列,并且包括0或多个填充位,以致二进制事件与序列中的位数之比被限制为预定比。
87.根据权利要求84所述的信息片序列,其中信息片和0或多个填充段实质上是M进制的。
88.一种熵编码器,用于将至少一个事件序列转换为至少一个信息序列,其中每个事件序列包括多个事件,并且每个信息序列包括至少一个信息片,所述熵编码器包括算术编码器,用于响应至少一个事件序列的至少一个事件,产生至少一个信息序列的0或多个信息片;以及控制器,与算术编码器相连,用于将至少一个事件序列中的事件数目约束为产生的至少一个信息序列中的信息片数目的函数。
89.根据权利要求88所述的熵编码器,其中至少一个事件序列代表被分为多个段的输入数据,并且控制器将事件数目约束为信息片数目的函数包括控制器将至少一个事件序列中的最大事件数目约束为一个线性组合的函数,所述线性组合包括产生的至少一个信息序列中的信息片数目,以及段数目。
90.根据权利要求89所述的熵编码器,其中控制器通过在至少一个信息序列中产生0或多个填充段,来将至少一个事件序列的事件数目约束为至少一个信息序列的信息片数目。
91.根据权利要求89所述的熵编码器,其中输入数据是视频数据。
92.根据权利要求91所述的熵编码器,其中每个段包括输入数据的16×16样本块。
93.根据权利要求88所述的熵编码器,其中控制器通过在至少一个信息序列中产生0或多个填充段,来将至少一个事件序列的事件数目约束为至少一个信息序列的信息片数目。
94.根据权利要求88所述的熵编码器,其中至少一个信息片和事件实质上是M进制的。
95.一种用于将至少一个事件序列转换为至少一个信息序列的方法,其中每个事件序列包括多个事件,并且每个信息序列包括至少一个信息片,所述方法包括响应至少一个事件序列的至少一个事件,产生至少一个信息序列的0或多个信息片;以及将至少一个事件序列中的事件数目约束为产生的至少一个信息序列中的信息片数目的函数。
96.根据权利要求95所述的方法,其中至少一个事件序列代表被分为多个段的输入数据,并且约束包括将至少一个事件序列中的最大事件数目约束为一个线性组合的函数,所述线性组合包括产生的至少一个信息序列中的信息片数目,以及段数目。
97.一种编码设备,用于将输入数据转换为至少一个信息序列,每个信息序列包括至少一个信息片,所述编码设备包括处理器,用于将输入数据转换为至少一个事件序列,每个事件序列包括多个事件;算术编码器,用于响应至少一个事件序列的至少一个事件,产生至少一个信息序列的0或多个信息片;以及控制器,其与算术编码器相连,用于将至少一个事件序列中的事件数目约束为产生的至少一个信息序列中的信息片数目的函数。
98.根据权利要求97所述的编码设备,其中控制器通过在至少一个信息序列中产生0或多个填充段,来将至少一个事件序列的事件数目约束为至少一个信息序列的信息片数目。
99.根据权利要求97所述的编码设备,其中处理器将输入数据分为多个段,并且控制器将事件数目约束为信息片数目的函数包括控制器将至少一个事件序列中的最大事件数目约束为一个线性组合的函数,所述线性组合包括产生的至少一个信息序列中的信息片数目,以及段数目。
100.根据权利要求99所述的编码设备,其中算术编码器和控制器包括熵编码器,所述熵编码器与处理器相连,并且能够将与产生的至少一个信息序列中的信息片数目有关的信息发送给处理器。
101.根据权利要求100所述的编码设备,其中处理器能够响应从熵编码器收到的信息,减小至少一个信息序列的事件速率。
102.根据权利要求99所述的编码设备,其中输入数据是视频数据。
103.根据权利要求102所述的编码设备,其中每个段包括16×16的样本块。
104.根据权利要求99所述的编码设备,其中控制器通过在至少一个信息序列中产生0或多个填充段,来将至少一个事件序列的事件数目约束为至少一个信息序列的信息片数目。
105.根据权利要求97所述的编码设备,其中至少一个信息片和事件实质上是M进制的。
106.信息片序列,其由熵编码器从至少一个事件序列产生,每个事件序列包括多个事件,其中利用信息片的序列中的多个信息片,来将至少一个事件序列的最大事件数目约束为一个线性组合的函数,所述线性组合包括产生的至少一个信息序列中的信息片数目和段数目。
107.根据权利要求106所述的信息片序列,其中信息片序列包括0或多个填充信息片,以至至少一个事件序列的最大事件数目的约束被满足。
108.根据权利要求106所述的信息片序列,其中至少一个信息片和事件实质上是M进制的。
全文摘要
一种算术编码器,用于将包括多个事件的事件序列转换为包括至少一个信息片的信息序列,所述算术编码器包括核心引擎,所述核心引擎用于接收事件序列的事件,以及从概率估计器接收概率估计,并且响应收到的事件和概率估计,通过限定事件与信息片之比来产生信息序列的0或多个片。提供一种算术编码器,其能够将至少一个事件序列中的事件数目约束为产生的至少一个信息序列中的信息片数目的函数。提供一种算术解码器,用于将包括至少一个信息片的信息序列转换为包括多个事件的事件序列,所述算术解码器包括核心引擎,所述核心引擎用于响应从概率估计器收到的概率估计,对来自序列发生器的信息序列的至少一个信息片进行处理,以通过计及限定的事件与信息序列中信息片之比,来产生至少一个事件。
文档编号G06K9/36GK1647099SQ03808944
公开日2005年7月27日 申请日期2003年4月23日 优先权日2002年4月23日
发明者弗兰克·简·博森 申请人:美国多科摩通讯研究所股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1