CN101185083B - 用于视频压缩的混合可变长度编码的方法和设备 - Google Patents
用于视频压缩的混合可变长度编码的方法和设备 Download PDFInfo
- Publication number
- CN101185083B CN101185083B CN200580019457.6A CN200580019457A CN101185083B CN 101185083 B CN101185083 B CN 101185083B CN 200580019457 A CN200580019457 A CN 200580019457A CN 101185083 B CN101185083 B CN 101185083B
- Authority
- CN
- China
- Prior art keywords
- amplitude
- coefficient
- incident
- area
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Abstract
本发明提供了一种对数字信号(例如具有最可能出现的幅度(例如0)和至少一个其它幅度(例如1)的图像数据块的量化变换系数)的有序系列进行可变长度编码以形成一组码字的方法。该方法包括沿着排序确立断点(301)来限定第一邻接区域和第二邻接区域,使得具有不是最可能出现的值的连续信号的群集主要出现在第一邻接区域中。该方法包括利用适合对群集编码的第一区域编码方法(303)对第一区域中的信号进行编码;并且利用第二区域编码方法(305)对第二区域中的信号进行编码。第一区域和第二区域编码方法包括可变长度代码,使得形成相对较短的码字来表示出现可能性相对较大的序列。
Description
相关申请
本发明要求以下美国专利申请的优先权:
2004年6月15日提交的美国专利申请No.10/869,229,发明人为Chen等,发明名称为“A HYBRID VARIABLE LENGTH CODINGMETHOD FOR LOW BIT RATE VIDEO CODING”,代理号为No.CISCO-8783。这里所引入的上述专利申请中所公开的内容在这里被统称为“Basic Hybrid VLC Method(基本混合VLC方法)”。
2004年7月22日提交的美国专利申请No.10/898,654,发明人为Chen等,发明名称为“AN EXTENDED HYBRID VARIABLE LENGTHCODING METHOD FOR LOW BIT RATE VIDEO CODING”,代理号为No.CISCO-8795。这里所引入的上述专利申请中所公开的内容在这里被统称为“Extended Hybrid VLC Method(扩展混合VLC方法)”。
2004年8月3日提交的美国专利申请No.10/910,712,发明人为Chen等,发明名称为“VIDEO COMPRESSION USING MULTIPLE VARIABLELENGTH CODING PROCESSES FOR MULTIPLE CLASSES OFTRANSFORM COEFFICIENT BLOCKS”,代理号为No.CISCO-8819。这里所引入的上述专利申请中所公开的内容在这里被统称为“Multiple-ClassVLC Method(多类VLC方法)”。
2004年8月18日提交的美国专利申请No.10/922,508,发明人为Toebes等,发明名称为“TWO-DIMENSIONAL VARIABLE LENGTHCODING OF RUNS OF ZERO AND NON-ZERO TRANSFORMCOEFFICIENTS FOR IMAGE COMPRESSION”,代理号为No.CISCO-8985。这里所引入的上述专利申请中所公开的内容在这里被统称为“2-DNonzero/Zero Cluster VLC Method(2-D非零/零群集VLC方法)”。
2004年8月18日提交的美国专利申请No.10/922,507,发明人为 Chen等,发明名称为“VIDEO CODING USING MULTI-DIMENSIONALAMPLITUDE CODING AND 2-D NON-ZERO/ZERO CLUSTER POSITIONCODING”,代理号为No.CISCO-9180。这里所引入的上述专利申请中所公开的内容在这里被统称为“Basic Multi-Dimensional Amplitude VLCMethod(基本多维幅度VLC方法)”。
2005年2月28日提交的美国专利申请No.11/069,622,发明人为Chen等,发明名称为“AMPLITUDE CODING FOR CLUSTEREDTRANSFORM COEFFICIENTS”,代理号为No.CISCO-9741。这里所引入的上述专利申请中所公开的内容在这里被统称为“Multi-TableAmplitude VLC Method(多表格幅度VLC方法)”。
2005年2月28日提交的美国专利申请No.11/069,621,发明人为Chen等,发明名称为“JOINT AMPLITUDE AND POSITION CODINGFOR PHOTOGRAPHIC IMAGE AND VIDEO CODING”,代理号为No.CISCO-9748。这里所引入的上述专利申请中所公开的内容在这里被统称为“Joint Position and Amplitude VLC Method(联合位置和幅度VLC方法)”。
2005年2月28日提交的美国专利申请No.11/069,620,发明人为Wu等,发明名称为“ADAPTIVE BREAKPOINT FOR HYBRID VARIABLELENGTH CODING”,代理号为No.CISCO-9831。这里所引入的上述专利申请中所公开的内容在这里被统称为“Adaptive Breakpoint Method(自适应断点方法)”。
以上每个专利申请的内容都通过引用结合于此。
背景技术
二维可变长度编码(2D-VLC)包括收集或假设二维块变换系数事件的统计信息,其中每个事件是最可能出现的幅度(例如0)的游程(run)后面接着另一幅度。编码包括为每个事件分配可变长度代码(variablelength code),例如诸如哈夫曼码或算术码之类的最佳代码。在本说明书中,0被假设为最可能出现的幅度。收集或假设统计信息包括跟踪被量化 的非零值系数的幅度和非零幅度之前的零值系数的数目,即沿指定路径跟踪任何非零幅度之前的零的游程长度(runlength),所述指定路径例如是针对系数块(例如8×8或16×16的系数块)的Z字型扫描路径。下面的表格1通过示例示出了被制成二维表格的统计信息:
表格1:2D-VLC统计信息
在该表中,Sij是似然(likelihood),该似然例如被表示为出现在j个0的游程(j=0,1,2,…)之后的幅度i(i=1,2,…)出现的相对次数。
然后,例如最佳代码的可变长度代码被分配给具有以上Sij的每个事件,其中最可能出现的元素(对于在变换编码中对变换系数块编码的情况通常是S10)具有最少的位数,并且最少出现的事件使用最长的位数来编码。下面的表格2示出了2D-VLC表格的示例:
表格2:2D-VLC代码
其中,Cij是被用于对j个连续0值系数之后是幅度为i的一个非零系 数的组合的事件进行编码的码字,j=0,1,…且i=1,2,…。
2D-VLC被用在常见的变换编码方法中,例如JPEG、MPEG1、MPEG2、ITU-T-261等,如下所述。对于运动视频,图像被分成多个块,例如8×8或16×16的块。每个图像被标识为帧间或帧内图像。帧间图像通常要经过运动补偿。图像块被变换,并且变换系数被量化。然后,根据2D-VLC表格沿指定路径对量化后的变换系数进行编码。通常,帧间和帧内图像具有不同的2D-VLC表格。DC成分通常是被单独编码的。此外,2D-VLC表格可以被删简使得最不常出现的事件使用转义码后跟固定长度代码来表示。当所有余下的系数都为零时,使用专用的“EOB”码指示块的结束。
静止图像被类似地进行编码,例如,按照与运动视频的帧内图像相同的方式。
图1示出了如何使用表格查找来实现2D-VLC方案。在表格查找之前,任何非零幅度之前的零幅度的游程长度以及该非零幅度被确定。对于那些使用可变长度编码进行编码的可能出现的事件,表格查找使用2D表格。对于出现的可能性相对较小的组合,使用转义码结合固定长度代码。
2D-VLC的优点在于由游程长度指示的每个非零值系数的位置和被量化的幅度值都被作为一对来利用一个2D-VLC表格同时进行编码。这样可以得到较短的代码,即与对每个非零值系数和其幅度使用单独的VLC表格相比,该代码使用的位数较少。
由于图像编码的广泛使用,已经授权了关于VLC的不同形式的很多专利。例如1987年10月6日授权给Wen-hsiung Chen(本发明的发明人之一)的美国专利4,698,672描述了二维可变长度编码方法的一种形式。
已经公知了对普通2D-VLC方法的多种扩展和变体。例如,ITU H.263压缩标准定义了一个这种变体,该变体有时被称为三维VLC(3D-VLC)。参见1993年9月16日公布的发明名称为“PICTURE DATA ENCODINGMETHOD”的PCT专利公布WO 9318616,也可以参见ITU-T H.263标准。在3D-VLC中,每个符号(“事件”)都是三元组(LAST、RUN、LEVEL),其包括:LAST,指示当前的非零幅度值是否是块中最后一个 非零系数的二进制标记,RUN,在当前的非零幅度之前的零值系数的游程长度,即从上一个非零系数幅度开始的零的数目,以及LEVEL,即当前的非零系数的幅度值。因此,不需要单独的EOB码字;非零系数是否是最后一个系数被包含在事件中。
图2示出了如何使用表格查找来实现3D-VLC。
2D-VLC的一个缺点是每个非零值系数都需要附带游程长度代码来标识其位置,该游程长度代码采取在前零值系数的数目的形式。
在基于块的变换编码中,发明人注意到通常存在一个区域,例如沿着非零值系数大多趋向于形成群集的排序的低频区域,即,沿着预定路径的低频区域通常存在若干个连续的非零值系数。这种现象尤其可能出现在帧内编码和高比特率帧间编码中。若干个这样的连续非零值系数中的每一个系数都需要表示位置和幅度的相同数目的码字。就是说,2D-VLC对于连续非零系数中的每个系数需要单独的游程长度代码,例如C10、C20、C30…等。
因此,在本领域中,需要一种提供对连续非零系数值序列进行高效编码的方法。
2003年1月15日提交的发明人为Chen等的发明名称为“ANEXTENSION OF TWO-DIMENSIONAL VARIABLE LENGTH CODINGFOR IMAGE COMPRESSION”的美国专利申请No.10/342,537描述了一种在这里被称为“扩展2D-VLC方法”的方法,其包括对某些非零系数值的重复进行编码。扩展2D-VLC方法的一种变体为一组零值系数之后的连续系数的所有可能的幅度变化提供代码。这样有效地将所有情况的游程长度都减为1。这种方法的困难之处在于连续系数的幅度可能会生成非常多的模式。例如,在很多常见的视频编码标准中定义了32个量化级,这样由N个连续的系数所生成的模式就达到了32N的数量级。这样,在实际的实现过程中,只对有限数目的最可能出现的非零值(例如1和2)和有限数目的连续非零值的长度(例如3或4个连续值)进行重新归组以实现模式匹配。
此外,在编码中,发明人注意到虽然可能存在其中包括非零值系数群 集的区域,但是也可能存在其中可能分散着非零值系数的高频区域。
因此,实际中使用这种所谓的“扩展2D-VLC方法”仍然是效率很低。
因而,在本领域中需要一种包括对可能出现在图像块的变换系数系列中的非零值系数游程进行高效编码的方法。
描述一些现有的2D-VLC编码方法的一个或多个专利近来已经成为专利诉讼的主题。因而,在本领域中还需要可以代替已经成为这种诉讼的主题的普遍使用的2D-VLC方法的替代方法。
发明内容
本说明书就数字值的有序系列来描述,所述数字值是图像数据块的量化变换系数。统计地来说,这些量化系数具有最可能出现的幅度和其次最可能出现的幅度。本说明书的描述中,零值的量化系数是最可能出现的,值为±1的量化系数是其次最可能出现的值。总地来说,本发明可以应用于数字信号的有序系列,每个数字信号的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限的幅度集合。
在对图像数据块的量化变换系数的有序序列进行编码时,可能存在第一区域,例如其中包括非零值系数的群集的沿着排序的低频区域,也可能存在第二区域,例如其中非零值系数可能分散的高频区域。
本说明书和上面提到的2004年6月15日提交的发明人为Chen等,发明名称为“A HYBRID VARIABLE LENGTH CODING METHOD FORLOW BIT RATE VIDEO CODING”的美国专利申请No.10/869,229描述了一种编码方法、一种用于编码的设备、一种用于解码的方法、一种用于解码的设备以及一种承载代码以使处理器执行编码方法的承载介质。首先在美国专利申请No.10/869,229中描述的编码方法的各种实施例在这里被总地称为“Basic Hybrid VLC Method(基本混合VLC方法)”。
基本混合VLC方法利用了在低频和高频区域中变换系数的分布特性。例如,基本混合VLC方法考虑了所观察到的由于低频区域和高频区域中使用不同游程长度的编码方法而造成的在低频区域中非零值变换系数形成群集的特性和在高频区域中变换系数相对较分散的特性。基本混合VLC方法的一个实施例包括两种独立的编码方案来对沿着路径的第一和第二区域中的量化系数进行编码。沿着路径确立边界来限定两个区域,例如低频区域和高频区域。在一个版本中,根据一个或多个因素使边界与视频相适应,所述因素例如是帧内编码或帧间编码、标准清晰度电视(SDTV)或高清晰度电视(HDTV)、复杂场景或简单场景、高比特率编码或低比特率编码等。在一个实施例中,对低频区域中的量化系数的编码包括使用第一类型的游程长度编码方法和第二类型的游程长度编码方法对连续非零值系数的位置和连续零值系数的位置进行编码。该编码还包括对非零值系数的幅度值和符号进行编码。在高频区域中,在一个实施例中,对高频区域中的系数的编码包括使用第三类型的游程长度编码方法对没有连续零值系数或者一个或多个连续零值系数的游程的位置的编码。该编码还包括对非零值系数的幅度值和符号进行编码。
在第一区域中使用一个游程长度代码来对连续非零值系数游程位置进行编码。最多可以使用五个独立的编码表格:针对低频系数的两个游程长度表格和第一幅度表格,以及针对高频系数的一个游程长度表格和第二幅度表格。代码长度和代码表格可以比通常的2D-VLC表格短。
此外,当使用相对较小的断点值时,可以避免使用2D-VLC中常用的转义码。
应当注意使用五个独立的表格不需要开销比特。
通常,基本混合VLC方法的方法实施例用于处理数字信号的有序系列,每个数字信号的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限的幅度集合。这种处理是为了减少用于表示数字信号的数据量,并且形成这样的码字,即出现的可能性较大的数字信号值的序列用相对较短的码字来表示,而出现的可能性较小的数字信号值的序列用相对较长的码字来表示。
基本混合VLC方法的一般形式包括对于出现在沿着系列的排序由断点限定的第一连续区域中的值不是最可能出现的值的连续信号的每个游程,使用第一游程长度编码方法对连续信号的游程长度进行编码,并且形 成这样的码字,该码字使用第一游程长度编码方法对游程长度进行编码并且还对游程中的每个信号的幅度和符号进行编码,所述断点限定第一连续区域和第一连续区域之后的第二连续区域。
基本混合VLC方法的一般形式包括对于出现在由断点限定的第一区域中的具有最可能出现的值的连续信号的每个游程,使用第二游程长度编码方法对具有最可能出现的值的连续信号的游程长度进行编码。
基本混合VLC方法的一般形式还包括对出现在由断点限定的第二区域中的信号进行编码,该编码使用第二区域编码方法,所述第二区域编码方法包括:标识包括第二区域中的具有最可能出现的值的连续信号的游程的事件,以及使用第三编码方法对第二区域中的所述标识出的事件进行编码。
第一、第二和第三编码方法包括可变长度代码,以形成相对较短的码字来表示出现的可能性相对较大的值的序列,并且形成相对较长的码字来表示出现的可能性相对较小的值的序列。
在该方法的一个实施例中,数字信号系列是变换后的图像数据块的量化系数系列,该变换使得最可能出现的幅度为0。
用于第二区域(例如沿着排序的高频区域)的替代编码方法利用了在高频区域中幅度值很少的特点,尤其是例如对于低比特率编码和帧间编码。
考虑到这一点,本说明书和上面提到的2004年7月22日提交的发明人为Chen等,发明名称为“AN EXTENDED HYBRID VARIABLE LENGTH CODING METHOD FOR LOW BIT RATE VIDEO CODING”的美国专利申请No.10/869,654描述了一种编码方法、一种用于编码的设备、一种用于解码的方法、一种用于解码的设备以及一种承载代码以使处理器执行包括这种替代编码方法的编码方法的承载介质。首先在美国专利申请No.10/869,654中描述的编码方法的各种实施例在这里被总地称为“Extended Hybrid VLC Method(扩展混合VLC方法)”。
在扩展混合VLC方法的一个实施例中,用在第二区域中的编码方法考虑在高频区域中几乎所有的非零值系数都为±1。不需要幅度编码来对 结束于幅度为1的系数的连续零值的游程进行编码。包括例外(转义)码来对那些值不为±1的非常少的非零值系数进行编码。
通常,扩展混合VLC方法用于处理数字信号的有序系列,每个数字信号的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限的幅度集合。这种处理是为了减少用于表示数字信号的数据量,并且形成这样的码字,即出现的可能性较大的数字信号值的序列用相对较短的码字来表示,而出现的可能性较小的数字信号值的序列用相对较长的码字来表示。
扩展混合VLC方法的一般形式包括对于出现在沿着系列的排序的由断点限定的第一连续区域中的值不是最可能出现的值的连续信号的每个游程,使用第一游程长度编码方法对连续信号的游程长度进行编码,并且形成这样的码字,该码字使用第一游程长度编码方法对游程长度进行编码并且还对游程中的每个信号的幅度和符号进行编码,所述断点限定第一连续区域和第一连续区域之后的第二连续区域。
扩展混合VLC方法的一般形式包括对于出现在由断点限定的第一区域中的具有最可能出现的值的连续信号的每个游程,使用第二游程长度编码方法对具有最可能出现的值的连续信号的游程长度进行编码。
扩展混合VLC方法的一般形式还包括对出现在由断点限定的第二区域中的信号进行编码,该编码使用第二区域编码方法,所述第二区域编码方法包括:标识包括结束于不等于最可能出现的值的值的第二区域中具有最可能出现的值的连续信号的游程的事件,并且使用第三编码方法对第二区域中的所述标识出的事件进行编码。
第一、第二和第三编码方法包括可变长度代码,以形成相对较短的码字来表示出现的可能性相对较大的值的序列,并且形成相对较长的码字来表示出现的可能性相对较小的值的序列。
在该方法的一个实施例中,数字信号系列是变换后的图像数据块的量化系数系列,该变换使得最可能出现的幅度为0。
虽然基本混合VLC方法和扩展混合VLC方法相比对于块中所有的量化系数都使用一种2D-VLC技术而言可能提供了改进,但是这些方法没有考虑到最化块系数的动态特性可能不与预定的编码技术中所假设的模型精确匹配。动态特性是指随着不同的块和不同的图像而在一个或多个方面发生变化,所述方面包括区域中的系数形成群集还是分散,区域中有相当多的非零值系数的连续游程还是大部分都是分离的非零值系数,区域中系数的幅度主要是几个值还是甚至只有一个值等等。
考虑到这一点,提出了可以应用于量化系数的变体,其包括确定系数本身的特性和利用这种确定出的特性信息来选择编码方法。
本说明书和上面提到的2004年8月3日提交的发明人为Chen等,发明名称为“VIDEO COMPRESSION USING MULTIPLE VARIABLELENGTH CODING PROCESSES FOR MULTIPLE-CLASSES OFTRANSFORM COEFFICIENT BLOCKS”的美国专利申请No.10/910,712描述了一种编码方法、一种用于编码的设备、一种用于解码的方法、一种用于解码的设备以及一种承载代码以使处理器执行编码方法的承载介质。首先在美国专利申请No.10/910,712中描述的编码方法的各种实施例在这里被总地称为“Multiple-class VLC Method(多类VLC方法)”。
在一个实施例中,多类VLC方法用于对包括最可能出现的幅度和至少一个其它幅度的系列进行编码。多类VLC方法用于减少用于表示数字信号的数据量,并且形成这样的码字,即出现的可能性较大的数字信号值或值的序列用相对较短的码字来表示,而出现的可能性较小的数字信号值或值的序列用相对较长的码字来表示。
在大多数应用中,该系列是图像块的量化变换系数系列。最可能出现的值通常为0,并且最可能出现的非零幅度通常为1。
在一个实施例中,多类VLC方法包括根据数字信号的幅度分布将系列分类到多个类中的一个特定的类中,每个类具有形成针对系列的码字的相应的编码过程。对于特定类的系列,该方法包括应用与该类相对应的编码过程来形成系列的一组码字。该方法还包括为所形成的码字添加指示以指示特定类。
在一个实现方式中,变换后的图像数据块包括DC(直流)项,该DC项是被单独编码的,使得数字信号系列是变换后的图像数据块的一组非 DC量化系数。
在一个实施例中,分类使用系数系列。在一个特定版本中,分类是根据哪一类的相应的编码过程产生最大压缩的比特流来选择类的。
最初在基本混合VLC方法和扩展VLC方法中介绍的第一区域方法交替地使用两种独立的一维可变长度编码方法(例如使用两个独立的一维VLC表格)来对低频区域中的连续非零值系数和连续零值系数进行编码。因而,量化变换系数的位置和幅度是被分别编码的。
注意到通过将第一区域中的连续非零值系数和零值系数作为一对并且应用一个二维表格来对这一对进行编码可以实现编码效率的进一步提高。
本说明书和上面提到的2004年8月18日提交的发明人为Toebes等,发明名称为“TWO-DIMENSIONAL VARIABLE LENGTH CODING OF RUNS OF ZERO AND NON-ZERO TRANSFORM COEFFICIENTS FOR IMAGE COMPRESSION”的美国专利申请No.10/922,508描述了一种编码方法、一种用于编码的设备、一种用于解码的方法、一种用于解码的设备以及一种承载代码以使处理器执行编码方法的承载介质。首先在美国专利申请No.10/922,508中描述的编码方法的各种实施例在这里被总地称为“2-D Nonzero/zero Cluster VLC Method(2-D非零/零群集VLC方法)”。
2-D非零/零群集VLC方法的提出是为了提高编码效率,例如对于低频区域,而在其它实施例中不只是针对低频区域。在一个实施例中,2-D非零/零群集VLC方法包括在第一连续区域中标识每个包括一个或多个非零值系数的游程之前的零值系数游程的事件。该方法包括,对于每个这样的事件,用码字对前面的零值系数游程和后面的一个或多个非零值系数的游程的游程长度进行联合编码,使得至少对于某些事件,与出现可能性相对较小的游程长度相比,使用较短的码字对出现可能性相对较大的游程长度对进行编码。该方法还包括对连续非零值系数游程中的每个幅度进行编码,并且对这些系数的符号进行编码。在改进的变体中,每个事件包括非零值系数游程后面接着一个零值系数。
在2-D非零/零群集VLC方法、基本混合VLC方法和扩展混合VLC 方法中的每一种方法中,都提出了各种可变长度编码方法来对形成群集或没有形成群集的变换系数的相对位置进行编码。在每次进行了这种编码之后,都包括对每个非零值系数的量值的编码,就像对符号位(+或-)那样。
还注意到在对非零值系数群集的VLC编码中,对幅度的编码占据了代码中相当大的部分。注意到,至少在理论上,通过引入一个多维代码(如n维代码,n是大于1的整数)对n个连续的形成群集的非零系数进行编码而不是使用n个单独的一维代码,可以实现对幅度代码的改进。考虑到这一点,提出了另一种混合编码的变体。
本说明书和上面提到的2004年8月18日提交的发明人为Chen等,发明名称为“VIDEO CODING USING MULTI-DIMENSIONALAMPLITUDE CODING AND 2-D NON-ZERO/ZERO CLUSTER POSITIONCODING”的美国专利申请No.10/922,507描述了一种编码方法、一种用于编码的设备、一种用于解码的方法、一种用于解码的设备以及一种承载代码以使处理器执行编码方法的承载介质。首先在美国专利申请No.10/922,507中描述的编码方法的各种实施例在这里被总地称为“BasicMulti-Dimensional Amplitude VLC Method(基本多维幅度VLC方法)”。
基本多维幅度VLC方法的一个实施例包括,在第一区域中标识每个包括一个或多个非零值系数的游程的事件,并且对于每个这样的事件,利用码字对该事件进行编码,使得至少对于某些事件,与出现可能性相对较小的事件相比,使用较短的码字对出现可能性相对较大的事件进行编码,并且对于每个标识出的事件,对连续非零值系数游程中的多个连续值进行联合编码,该联合编码根据幅度编码方法进行。该方法使得形成相对较短的码字来表示出现可能性相对较大的值或值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值或值的序列。该方法可用于系列中可能有形成群集的非零值系数的区域。
虽然基本多维幅度VLC方法看起来提高了总的编码效率,但是注意到对于较大的“n”,用于对n个连续的非零幅度值进行联合编码的n维 表格的大小可能会变得非常大。因此,在实践中,为了实际的实现,n的大小必须被限制为较少数的连续非零幅度值,例如1、2和3。
考虑到这一点,提出了另一种变体。本说明书和上面提到的2005年2月28日提交的发明人为Chen等,发明名称为“AMPLITUDE CODINGFOR CLUSTERED TRANSFORM COEFFICIENTS”的美国专利申请No.11/069,622描述了一种编码方法、一种用于编码的设备、一种用于解码的方法、一种用于解码的设备以及一种承载代码以使处理器执行编码方法的承载介质。首先在美国专利申请No.11/069,622中描述的编码方法的各种实施例在这里被总地称为“Multi-Table Amplitude VLC Method(多表格幅度VLC方法)”。
不使用针对n个连续的非零值系数群集的一个多维编码表格,在多表格幅度VLC方法的一个实施例中,标识群集内每个包括连续的幅度为1的系数的游程后面接着一个幅度大于1的系数的事件。包括只有一个幅度大于1的系数和只有幅度1的游程的事件。对于每个事件,为在前的幅度为1的系数的游程的游程长度和结尾系数的幅度分配码字。二维编码表格被用于每个长度为n的群集,因此用多个逐渐增大的2-D编码表格替换了基本多维幅度VLC方法中的多维表格。n的值可以随断点的位置而增大。
多表格幅度VLC方法利用了如下特点,即在变换系数序列的低频区域中,在非零系数群集中主要是幅度为1的系数。
基本混合VLC方法和2-D非零/零群集VLC方法中所描述的发明提出了各种可变长度编码技术来考虑形成群集的或分散的变换系数的位置。基本多维幅度VLC方法和多表格幅度VLC方法中所描述的发明提出了对群集中的幅度进行编码的方法。
有了以上的方法,还需要一种变体,将对变换系数的位置和变换系数的幅度的编码组合在一起。
本说明书和上面提到的2005年2月28日提交的发明人为Chen等,发明名称为“JOINT AMPLITUDE AND POSITION CODING FORPHOTOGRAPHIC IMAGE AND VIDEO CODING”的美国专利申请No.11/069,621描述了一种编码方法、一种用于编码的设备、一种用于解码的方法、一种用于解码的设备以及一种承载代码以使处理器执行编码方法的承载介质。首先在美国专利申请No.11/069,621中描述的编码方法的各种实施例在这里被总地称为“Joint Position and Amplitude VLC Method(联合位置和幅度VLC方法)”。
在一个实施例中,联合位置和幅度VLC方法包括,对于系列中的第一连续区域,标识每个包括具有不等于最可能出现的幅度的任何幅度的一个或多个连续信号的群集,以及任何插在中间的具有最可能出现的值的连续系数游程。该方法还包括,对于每个标识出的具有不等于最可能出现的幅度的任何幅度的信号的群集,标识一个或多个位置事件来限定标识出的具有不等于最可能出现的幅度的任何幅度的信号的群集和任何插在中间的具有最可能出现的值的连续系数游程的相对位置和游程长度。该方法还包括对于每个标识出的具有不等于最可能出现的幅度的任何幅度的信号的群集,标识一个或多个幅度事件,这些幅度事件限定幅度不等于最可能出现的幅度的连续系数的幅度。该方法还包括对标识出的位置事件和标识出的幅度事件进行联合编码,以产生针对群集的码字,使得相对较短的码字被用于表示出现可能性较大的幅度群集,并且相对较长的码字被用于表示出现可能性相对较小的幅度群集。
在所描述的一个实施例中,数字信号的有序系列是变换后的图像数据块的量化系数序列。该变换使得最可能出现的幅度为0,其次最可能出现的幅度为1。
在量化系数中,联合位置和幅度VLC方法包括标识具有至少一个非零值系数的群集,并且对于每个这样的群集,标识至少一个位置事件来标识非零系数群集的相对位置和游程长度,并且标识至少一个幅度事件来限定非零系数群集中的非零幅度。该方法还包括对标识出的位置事件和标识出的幅度事件进行联合编码,使得形成相对较短的码字来表示出现可能性相对较大的值或值的序列,并且形成相对较长的码字来表示出现可能性相对较大的值或值的序列。该方法可以应用于对系列中可能存在非零值系数群集的区域进行编码。
这里所描述的某些实施例使用按照2-D非零/零群集VLC方法进行编码的位置事件。某些实施例还像基本多维幅度VLC方法中一样使用非零幅度作为幅度事件。其它一些实施例按照与多表格幅度VLC方法相同的方式标识幅度事件。而另外一些实施例对于某些群集长度使用基本多维幅度VLC方法中的幅度事件,对于其它群集长度使用多表格幅度VLC方法中的幅度事件。
在这些方法中的每一种方法中,断点被限定为低频和高频区域之间的边界。编码中所使用的变换的频谱内的最佳断点随不同的块和不同的图片而变化。通过进行实验收集关于一组典型的块系数的统计信息来预先确定典型的断点,从而可以利用预定的断点。通常,对于高分辨率或高质量静止图像编码和低分辨率或低质量静止图像编码;帧内编码和帧间编码;高比特率编码方法和低比特率编码方法;基于DCT的变换的编码方法和非DCT变换的编码方法等,要确定不同的断点。
虽然预先确定的断点可以提供令人满意的编码性能,但是决不是最佳的。各种实验的结果表明可以通过使用最佳断点来进一步提高混合编码器的性能。这种改进效果可能是使用预先确定的断点所获得的改进效果的25%。
因此,发明了一种方法,用于确定最佳断点或接近最佳的断点,以限定用于根据上面提到的这里所描述的混合编码方法中的某种方法进行混合编码的第一(低频)区域和第二(高频)区域,。
寻找最佳断点(这里用N表示)的一种方法是在所有可能的断点中进行穷举式搜索,例如对于8×8的块变换对图片进行63次编码,以尝试不同的断点,即尝试N=1,2,…,63。通过比较所得到的针对块的码字的长度,找到最佳的N和针对这个最佳的N的码字。这种方法非常耗时,因此不太可能实际应用。
因此,需要一种更高效的方法来确定最佳或接近最佳的断点。
考虑到这一点,提出了另一种变体。本说明书和上面提到的2005年2月28日提交的发明人为Wu等,发明名称为“ADAPTIVE BREAKPOINTFOR HYBRID VARIABLE LENGTH CODING”的美国专利申请No.11/069,620描述了一种编码方法、一种用于编码的设备、一种用于解码的方法、一种用于解码的设备以及一种承载代码以使处理器执行编码方法的承载介质。该方法包括确定最佳断点。首先在美国专利申请No.11/069,620中描述的编码方法的各种实施例在这里被总地称为“Adaptive Breakpoint Method(自适应断点方法)”。
自适应断点方法的一个实施例包括沿着系列的排序确立断点来限定第一连续区域和第二连续区域,使得其值不等于最可能出现的值的连续信号的群集大多出现在第一连续区域中,所述确立使用根据多个子集中的至少一个子集计算出的统计信息,该统计信息是其值不等于最可能出现的值的多个系列信号出现在其值不等于最可能出现的值的连续信号的群集中的沿着排序的位置。对于多个系列中的每个系列,使用第一区域编码方法对第一区域中的信号进行编码,并且使用第二区域编码方法对第二区域中的信号进行编码。第一区域和第二区域编码方法包括可变长度代码,使得形成相对较短的码字来表示出现的可能性相对较大的值的序列,并且形成相对较长的码字来表示出现的可能性相对较小的值的序列。
在本说明书中,每个数字信号系列是图像的变换后的图像数据块的量化系数系列,该变换使得最可能出现的幅度为0。
在一种版本中,系列被断点和针对包括第二区域的每个区域的额外断点分成两个以上区域,并且在这个版本中,利用不同于用在其它区域中使用的编码方法的相应的编码方法对出现在由相应的额外断点限定的每个额外区域中的信号进行编码。
在某些实施例中,确立断点包括对于沿着排序的每一点,对其中该点处的系数在群集中的系列的数目进行计数。
在一个实施例中,确立断点包括确定阈值点,使得群集中的大部分系数出现在该阈值点之前的点处,并且只在阈值点之前寻找接近最佳的断点。例如,阈值点是沿着排序的特定点,在该点处具有系数的系列的数目的计数值降到系列总数的预先选择的比例以下。
在一个版本中,确立接近最佳的断点包括确定针对从断点到阈值点的多个系列的编码数据的长度,并且选择产生最短编码数据的断点。
在另一版本中,确立断点包括沿着排序直到阈值点确定其中处于群集中的非零系数的数目的计数值的斜率为最大值的点。
根据具体实施方式和权利要求书,可以清楚的理解其它方面、特征和变体。
附图说明
图1示出了如何通过表格查找实现现有技术的2-D VLC方法。
图2示出了如何通过表格查找实现被称为3D-VLC的常见的现有技术的2-D VLC变体。
图3示出了混合编码方法的一个实施例的简化流程图。
图4示出了混合可变长度编码(VLC)方法的一个实施例的流程图,该方法包括在第一区域中对非零系数群集和零值系数群集的位置和长度进行编码,并且还包括对非零值系数群集中系数的幅度进行编码。
图5示出了对量化变换系数系列进行编码的设备的一个实施例的简化框图。
图6示出了根据本发明实施例的解码设备。
图7示出了对量化变换系数系列进行编码的设备的一个实施例的简化框图。
图8示出了根据本发明实施例的解码设备。
图9示出了根据本发明实施例的包括处理系统和存储器的编码设备。
图10示出了根据本发明实施例的包括处理系统和存储器的解码设备。
图11示出了本发明的方法实施例的流程图。
图12示出了方法实施例的流程图,该方法实施例包括分类、通过每个相应的编码过程对多个块进行编码并且比较结果以选择提供最佳压缩的方法。
图13示出了图12的实施例的一种实现方式的流程图,其中对系数系列顺序地应用相应的编码过程。
图14示出了图12的实施例的替代实现方式的流程图,其中对系数系列并行地应用相应的编码过程。
图15示出了根据现有技术的2-D VLC方法的事件统计信息的表格。
图16示出了根据现有技术的2-D VLC方法的编码事件的代码表格。
图17A-17D示出了分别示出根据本发明实施例的事件示例的表格。图中,“x”表示非零值。
图18示出了根据本发明的实施例针对零个或多个零值系数游程后面接着非零值系数游程的事件收集的统计信息的表格。
图19示出了根据本发明的实施例针对零个或多个零值系数游程后面接着非零值系数游程的事件的可变长度代码的表格。
图20A-20F示出了分别示出根据本发明的改进实施例的事件示例的表格,在所述改进实施例中,零值系数游程后面接着非零值系数游程的事件包括后面的零值系数。该事件被删简为覆盖不超过12个连续的系数。
图21示出了根据本发明实施例的针对零个或多个零值系数后面接着非零值系数的游程后面再接着一个零值系数的事件所收集或假设的统计信息的表格。
图22示出了根据本发明实施例的针对零个或多个零值系数后面接着非零值系数的游程后面再接着一个零值系数的事件的可变长度代码的表格。
图23示出了样本图象的第一区域的实际统计信息的表格,所述第一区域具有形成软边界的断点12。注意事件skip与事件R(12,0)相同。
图24示出了混合可变长度编码(VLC)方法的一个实施例的流程图,该实施例不包括对非零值系数游程中的多个幅度的多维幅度编码。
图25示出了混合可变长度编码(VLC)方法的一个实施例的流程图,该实施例包括对非零值系数游程中的多个幅度的联合多维编码。
图26A、26B和26C分别示出了根据本发明的一个方面,针对一个幅度的一维幅度代码表格、针对两个连续系数的幅度的二维幅度代码表格以及针对三个连续系数的幅度的三维幅度代码表格。
图26D示出了与图26C类似的三维幅度代码表格,图26D对每个2D表格使用了替代系数幅度布置。
图27示出了混合可变长度编码(VLC)方法的一个实施例的流程 图,该实施例包括根据本发明一个方面对非零值系数游程中的多个幅度的编码。
图28示出了在n个非零幅度系数的游程内1的游程出现的相对似然的表格。
图29示出了针对在n个连续非零幅度系数的连续游程中结束于大于1的幅度的1的游程的事件的代码表格。
图30示出了根据本发明一个方面针对在不同长度的连续非零值系数的群集中标识的事件的代码表格序列。
图31示出了混合可变长度编码(VLC)方法的一个实施例的流程图,该实施例包括对非零值系数的群集和零值系数的群集的位置和长度进行编码,对非零值系数游程中的幅度进行编码,并且根据本发明一个方面,利用位置代码和幅度代码的联合编码表格对位置和幅度进行编码。
图32示出了根据本发明的一个或多个方面确立接近最佳的断点的方法的一个实施例的流程图。
具体实施方式
这里所描述的是可变长度编码方法以及用于对出现在视频编码中的变换域系数进行编码的设备。预期该编码方法至少与传统的2D-VLC编码一样好。该方法有希望被用于代替现有的2D-VLC编码方法。这里还描述了一种针对可变长度编码方法的解码方法以及用于对出现在视频编码中的编码后的变换域系数进行解码的设备。
总地来说,本发明涉及对各自具有取自于有限的幅度值集合的幅度的数字信号的有序系列进行编码。每个信号也可以具有符号(即正或者负)。幅度值的集合包括一个最可能出现的幅度和至少一个其它幅度。这里所讨论的应用针对信号的有序系列,该信号的有序系列是在通过诸如DCT之类的变换或一些其它常见变换进行变换,再被量化成有限数目的值,然后沿着预定的路径(例如Z字型路径)排序之后得到的图像数据块的量化系数值的有序集合。系列的排序通常是按照空间频率递增的顺序。在大多数图像应用中,最可能出现的值(例如最经常出现的值)通常为 0。
我们注意到现有技术的可变长度编码方法中所忽略的额外的统计信息。沿着路径的非零值量化变换系数往往更多地在低频区域中形成群集,而在高频区域中更多地分散。就是说,与较高的空间频率相比,非零值游程更可能出现在较低的空间频率中。
本发明的一个方面在于沿着系列的排序使用断点来限定第一区域(例如断点之前的区域)和第二区域(例如断点之后的区域)。因此,例如对于8×8的块,断点可以设在21和22之间,使得有序系列中前面的21个系数在第一区域中,而有序系列中从第22个系数开始的后面43个系数在第二区域中。断点本身也可以处在区域中。因此,例如对于8×8的块,断点可以设在22处,使得有序系列中的前面21个系数在第一区域中,而有序系列中从第22个系数开始的后面43个系数在第二区域中。此外,断点可以限定形成区域的方式,但可能不与第一和第二区域之间的实际边界相对应。参见下文对通过相同的断点限定的软边界和硬边界的描述。
图3示出了混合编码方法300的简化流程图。在301中,提供断点来沿着系数的排序限定第一区域和第二区域。本发明的一个方面在于断点的选择。
本发明的另一方面在于如何对断点所限定的两个区域进行编码。在303中,利用第一区域编码方法对出现在第一区域中的数据进行编码,而在305中,利用另一方法(第二区域编码方法)对第二区域中的数据进行编码。
在一个版本中,断点限定第一和第二区域之间的硬边界,使得例如经过断点的连续的非零值系数序列被看作直到断点为止的第一序列和断点之后的第二序列。在另一版本中,断点限定软边界,使得开始于断点之前并且经过断点的任何连续值(例如连续的零值或连续的非零值)序列被看作出现在第一区域中的序列。对于这样的包括这种经过断点的序列的块,有效的边界开始于序列结束之后,使得由断点限定的有效边界可能随着序列的不同而变化。
基本混合VLC方法
第一区域中的非零值系数可能会形成群集。因而,可能会出现游程。根据基本混合VLC方法的第一区域编码方法的一个方面对每个非零值系数游程(一般是具有除最可能出现的值之外的其他值的系数的每个游程)进行编码。针对第一区域的基本混合VLC方法的一个方面使用第一游程长度编码方法对游程的游程长度进行编码,并且对游程中的幅度的序列进行编码,包括符号。每个零值系数游程(一般是具有最可能出现的值的系数的每个游程)被使用第二长度编码方法进行编码。因此,在第一区域中交替使用两类游程长度代码。
图4示出了混合可变长度编码(VLC)方法400的一个实施例的流程图,该方法包括在301中沿着系列的排序提供断点来限定第一区域,例如其中非零系数可能形成群集的低频区域,和第二区域,例如其中非零系数可能分散并且在所示出的版本中非零系数可能主要是幅度为1的系数的高频区域。
在403中,事件被识别,并且每个事件被标识,所述事件包括第一种事件,即连续非零值系数的游程(被称为“群集”),和第二种事件,即连续零值系数的游程。在一个实施例中,在405中,提供了不同的编码方法来对零值系数和非零值系数的位置进行编码。基本混合VLC方法为零值系数的游程长度和非零值系数群集的游程长度提供了单独的码字。这些代码包括利用假设的或实际的统计信息确定的可变长度代码。因此,步骤403标识了连续零值系数和非零值系数的游程长度,并且步骤405分别利用第一和第二游程长度编码方法对连续非零值和连续零值的游程长度进行编码。
在407中,使用第一幅度编码方法对第一区域中的非零游程中的每个非零幅度游程中的幅度进行编码。在基本混合VLC方法的实施例中,使用第一幅度编码方法,例如使用利用代码表格得到的可变长度代码,对每个幅度单独进行编码。
在第一区域中,用r(n)表示标识出的n个连续非零系数的游程,并且用r’(z)表示标识出的z个连续零值系数的游程,n,z=1,2,…。考虑用r(n)表示的一个事件,用m(1)、m(2)、…m(n)表示r(n)中的每个非零幅度。用 C(n)表示使用第一游程长度编码方法得到的事件r(n),n=1,2,…中的非零值系数的游程长度的可变长度码字,并且用C’(z)表示使用第二游程长度编码方法得到的事件r’(z),z=1,2,…中的零值系数的游程长度的可变长度码字。用A(m)表示对非零值系数游程r(n)中的幅度m,m=1,2,…的幅度编码;并且用S(1)、S(s)、…表示r(n)中的第一、第二、…第n个非零值系数的符号位。然后根据在基本混合VLC方法中所描述的实施例,对事件和相应的非零幅度的编码为:
C(n)+A(m(1))+S(1)+A(m(2))+S(2)+…+A(m(n))+S(n)+C′(z),
其中+表示串接(concatenation)。
基本混合VLC方法中的第一区域编码
更详细的说,在一个实施例中,在405中,第一区域中的连续系数游程的码字开始于第一编码方法的码字,并且在第一编码方法和第二编码方法之间交替。为了为所遇到的第一个游程为零的游程的情况作准备,第一编码方法的码字中的一个码字为特定的码字,以指示所遇到的第一游程确实是零的游程,使得第二方法的码字跟在第一方法的该特定码字之后。
下面的表格3和表格4分别示出了分别针对n个连续非零值系数的游程和连续零值系数的游程的两个游程长度代码表格,其中C(n)和C’(z)分别表示使用第一和第二编码方法得到的分别针对n个连续非零值系数的游程和z个连续零值系数的游程的代码,其中z是游程长度:z=1,2,…。
表格3
游程长度 | 1 | 2 | 3 | 4 | 5 | 6 | . |
代码 | C(1) | C(2) | C(3) | C(4) | C(5) | C(6) | . |
表格4
游程长度 | 1 | 2 | 3 | 4 | 5 | 6 | . |
代码 | C′(1) | C′(2) | C′(3) | C′(4) | C′(5) | C′(6) | . |
作为示例,假设在第一频率区域中沿着排序路径的量化系数的有序系列开始于:
232-1012001-1100…
为了确定游程长度,该系列可以被写为:
xxxx0xx00xxx00…
其中x表示任何非零值系数,0表示零值系数。
用r(n)表示n个连续非零系数的游程,并且用r’(z)表示z个连续零值系数的游程。则本示例的有序序列开始于:
r(4)r′(1)r(2)r′(2)r(3)r′(2)…
对游程长度而不对本模式的幅度进行编码得到的结果可以被写为:
C(4)C′(1)C(2)C′(2)C(3)C′(2)…
在407中,为了完成第一区域编码方法,与每个非零值系数游程的码字一起被包括的有针对游程中每个幅度的码字和针对系数可能为正也可能为负的变换(例如常用的DCT变换)的每个系数的符号的额外的位。在一个实施例中,使用可变长度代码对每个幅度进行编码,并且使用符号位对每个符号进行编码。用A(i),i=1,2,3,…分别表示针对幅度i=1,2,…的可变长度幅度代码,用S+和S-分别表示针对正系数和负系数的符号位代码,并且用+表示串接。则以上示例序列被编码为:
[C(4)+A(2)+S++A(3)+S++A(2)+S++A(1)+S-]+C′(1)+
[C(2)+A(1)+S++A(2)+S+]+C′(2)+
[C(3)+A(1)+S++A(1)+S-+A(1)+S+]+C′(2)…
在一个实施例中,假设系列开始于一个或多个非零值系数的游程。因此,第一码字总是根据第一游程长度编码方法得到的码字。当系列开始于一个或多个零值的游程时包括一个代码来指示所使用的第一代码为针对零的游程的代码。在这样的实施例中,DC成分被单独发送,使得第一区域中的第一个系数是沿着排序的第一个非DC系数。
因此,例如用RP表示在第一长度游程编码方法中指示第一区域开始于一个或多个零值系数的游程的码字,假设第一区域中的系数系列开始于:
0232-1012001-1100…
在一个实施例中,针对该第一区域的码字为:
RP+C′(1)+[C(4)+A(2)+S++A(3)+S++A(2)+S++A(1)+S-]
+C′(1)+[C(2)+A(1)+S++A(2)+S+]+C′(2)+
[C(3)+A(1)+S++A(1)+S-+A(1)+S+]+C′(2)…
在另一实施例中,在第一游程长度编码方法中包括指示系列中没有非零值的码字。在另一实施例中,这样的码字也被用于指示第一区域中所有余下的系数都为零。这个码字在这里被称为跳转到边界(skip-to-boundary)(SKP)。
基本混合VLC方法中的第二区域编码
在第二区域中,方法400中的步骤409和411描述了对余下的有序系数系列进行编码的编码方法。
在一个实施例中,在第二区域中,使用第二区域编码方法,其考虑了零值系数游程的出现。基本混合VLC方法中的第二区域编码方法的一个实施例包括在步骤409中标识包括具有最可能出现的值(例如第二区域中的零值系数)的连续信号的游程的事件,并且在步骤409中,使用第三编码方法对第二区域中标识的事件进行编码。具体地说,步骤409包括标识零值系数的游程,并且步骤411包括使用第三游程长度编码方法对每个零值系数游程的游程长度进行编码,所述第三游程长度编码为每个游程提供代码,例如通过下面的表格5中所示的游程长度表格表示的代码,其中C”(z),z=0,1,2,…表示用于对z个连续0的游程长度进行编码的游程长度代码,z=0,1,…
表格5
游程长度 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | . |
代码 | C″(0) | C″(1) | C″(2) | C″(3) | C″(4) | C″(5) | C″(6) | . |
本发明的一个方面在于使用结尾代码(这里用EOB表示)来表示第二区域中余下的系数全部为零。
此外,在409中,在被标识的零值游程事件之间的第二区域中的非零幅度系数被标识。在411中,使用第二幅度编码方法对每个这样的非零值系数的幅度进行编码,并且还对这样的非零值系数的符号进行编码。
作为示例,假设针对第二区域的沿着预定路径的量化系数的有序系列为:
0001001-100000100…0
该系列可以被写为:
000x00xx00000x00…0
其中x表示任何非零值系数,0表示零值系数。
用r”(z)表示第二区域中的z个连续零值系数的游程,z=0,1,2,…。在一个实施例中,假设第二区域的系列中的每个非零值系数的前面没有零值系数或者有一个或多个零值系数的游程,总的来说就是“零个或多个连续零值系数的游程”,从而使得两个连续的非零值系数中的第二个非零值系数之前是没有零值系数的游程(i=0)。上述第二区域中的示例性零游程有序序列可以被写为:
r”(3)r”(2)r”(0)r”(5)EOB
其中EOB被用于指示余下的系数都为0,并且其中可以理解在每个0的游程之间恰好有一个非零值系数。将表格5的代码用于游程长度,对第二区域的系列中的游程进行编码的结果为:
C”(3)C”(2)C”(0)C”(5)EOB
如果沿着第二区域中的指定路径的量化系数是大于或等于1的值,则在一个实施例中,编码过程在游程长度代码之后包括对非零值系数的幅度进行编码的可变长度幅度代码,以及针对零的游程之后的非零值系数包括符号代码。用A”(k),k=1,2,3,…分别表示针对幅度1,2,…的可变长度幅度代码,用S+和S-分别表示针对正系数和负系数的符号位代码,并且用+表示串接。则上述第二区域的示例序列被编码为:
[C″(3)+A″(1)+S+]+(C″(2)+A″(1)+S+)+[C″(0)+A″(1)+S-]
+[C″(5)+A″(1)+S+]+EOB
注意在一个实施例中,针对出现在第二区域中的量化系数幅度的第二幅度编码方法(值A”(k),k=1,2,…)不同于针对出现在第一区域中的量化系数幅度的第一幅度编码(值A(i),i=1,2,…)。例如,对于典型图像,预期第二区域(例如高频区域)中的幅度主要是比出现在第一区域(例如低频区域)中的幅度较低的值。
基本混合VLC方法中第二区域的替代代码
第二区域中所使用的编码方法包括标识包括零值系数游程的事件,并使用第三编码方法对事件进行编码。上面的一个实施例使用第三游程长度编码方法单独对第二区域中的系列中的零值系数游程进行编码,然后再对 幅度值进行编码。在替代实施例中,使用传统的2D-VLC来标识包括零值系数游程和一个非零值系数的事件,并且使用2D-VLC对这样的事件进行编码,例如使用2D编码表格,例如以上利用第二区域中的幅度和在前零的游程的统计信息(例如以表格1的形式)得到的表格2。在另一实施例中,2D-VLC表格被删简,使得零的游程之后的较长的游程和/或较大的幅度使用固定长度代码而不是可变长度代码。在这样的版本中,使用转义码后面接着针对在前的零值系数的游程长度的固定代码后面再接着针对幅度和符号的固定代码来代替完全的可变长度代码中的可变长度代码。
其它的变体也是可以的。例如,可以使用有时被称为三维VLC(3D-VLC)的变体。参见1993年9月16公布的名称为PICTURE DATAENCODING METHOD的PCT专利公布WO 9318616。在3D-VLC中,每个符号(“事件”)是三元组,包括指示当前的非零幅度值是否是块中最后一个非零系数的二进制输入标记。
基本混合VLC方法的样本代码表格:游程长度代码
针对游程长度的第一游程长度编码方法、第二游程长度编码方法和第三游程长度编码方法的游程长度代码可以是算术码或哈夫曼可变长度码。可以通过实验检查不同类型的图像,并针对这些图像收集关于要编码的不同游程长度的统计信息。然后可以基于这些统计信息分配代码。
下面的表格6示出了根据第一游程长度编码方法针对出现在静止图像和帧内图像的第一区域中的非零值系数游程的代码的一个实施例。该表格假设断点在11处(排除DC系数),因此只包括11个连续的非零值。注意该表格包括针对被称为RP的事件的特定代码,其指示表格开始于一个或多个零值系数的游程,而不是非零值系数。还要注意与很多表格一样,表格6假设系列的DC成分(第一项)被单独编码,这在很多VLC方法中是常见的。因此,意味着第一个元素是第一个非DC值。
表格6:针对第一区域中的非零游程的代码
群集模式 | 哈夫曼码 | 代码长度 |
x | 0 | 1 |
xx | 100 | 3 |
xxx | 1010 | 4 |
xxxx | 10111 | 5 |
xxxxx | 110111 | 6 |
xxxxxx | 1011001 | 7 |
xxxxxxx | 10110000 | 8 |
xxxxxxxx | 110101010 | 9 |
xxxxxxxxx | 10110001 | 8 |
xxxxxxxxxx | 1101010111 | 10 |
xxxxxxxxxxx | 1101010110 | 10 |
skip_MB | 1100 | 4(没有信息的块) |
RP | 111 | 3(从现在开始使用R’) |
在断点可以大于11,例如断点为22的表格中,并且对于针对断点为我们所称的“软”断点从而允许存在延伸超过断点的游程的情况的表格,在一个实施例中,第一编码方法使用这里被表示为ESC1的唯一的转义码,后面接着针对游程的长度的固定长度代码,例如用于适应最多达32个连续非零值的游程的5位代码,或者用于适应最多达64个连续非零值的游程的6代码。在对于ESC1代码使用6位的情况下,为了对代码的长度分别使用5位和6位代码,针对第一区域中的非零系数游程的长度的码字至多为11位或12位长。
下面的表格7示出了根据第二游程长度编码方法针对出现在静止图像和帧内图像的第一区域中的零的游程的代码的一个实施例。仍然假设断点为固定断点11。
正如与第一游程长度编码方法相对应的表格中那样,在断点可以大于11,例如断点为22的表格中,以及对于适应于“软”断点从而允许存在延伸超过断点的游程的表格,在一个实施例中,第二编码方法使用这里被表示为ESC2的唯一的转义码,后面接着针对游程的长度的固定长度代码,例如用于适应最多达32个连续零值的游程的5位代码,或者用于适应最多达64个连续非零值的游程的6位代码。
表格7:针对第一区域中的零的游程的代码
群集模式 | 哈夫曼码 | 代码长度 |
0 | 0 | 1 |
00 | 101 | 3 |
000 | 1001 | 4 |
0000 | 10001 | 5 |
00000 | 100001 | 6 |
000000 | 1000001 | 7 |
0000000 | 10000001 | 8 |
00000000 | 100000001 | 9 |
000000000 | 1000000001 | 10 |
0000000000 | 10000000001 | 11 |
00000000000 | 10000000000 | 11 |
EOB | 111 | 3 |
注意表格7包括EOB代码来指示系列的其余部分全部为零。
下面的表格8示出了可应用于出现在静止图像和帧内图像的第二区域中的零幅度系数游程的根据第三游程长度编码方法的代码表格的一个实施例。
表格8:针对第二区域中的零的游程的代码
游程长度 | 代码 | 代码长度 |
0 | 111 | 3 |
1 | 101 | 3 |
2 | 1001 | 4 |
3 | 1100 | 4 |
4 | 0101 | 4 |
5 | 0100 | 4 |
6 | 100011 | 6 |
7 | 1000101 | 7 |
8 | 10000010 | 8 |
9 | 100010010 | 9 |
10 | 10000000 | 8 |
11 | 10000001 | 8 |
12 | 1000100110 | 10 |
13 | 1000001100 | 10 |
14或更多 | ESC3+6位长度 | 12 |
EOB | 00 | 2 |
其中ESC3是转义码,其指示后面是针对长度大于13的游程的游程长度的6位代码。在一个实施例中,ESC3是6位代码,并且在ESC3代码之后使用6位来对零值的游程长度进行编码。因此,代码会超过12位。
基本混合VLC方法的样本代码表格:幅度代码
在一个实施例中,两种幅度代码A(i),i=1,2,…和A”(k),k=1,2,…分别是通过确定出现在第一和第二区域中的非零幅度的统计信息而通过实验为一组典型图像确定的代码。第一和第二区域的幅度表格中的每一个的一个实施例分别示为下面的表格9和表格10。这些表格中的每一个表格都是利用典型的静止图像确定的。每个表格包括幅度(作为符号)、该幅度的码字以及码字的长度。还示出了出现频率和对于典型的静止图像的总位数。
在表格9中,利用6位转义码加上针对幅度和符号的7位来对16或更高的幅度进行编码。替代实施例使用对符号和幅度同时进行编码的具有63个条目的编码表格。
在表格10中,在第二区域中几乎不可能出现大于16的幅度,因此对于这样的较高幅度不包括代码。在替代实施例中,对于可能出现在异常情 况下的大于16的幅度包括了相对较长的代码。
表格9:第一区域中的幅度代码
表格10:第二区域中的幅度代码
用于基本混合VLC方法的设备
基本混合VLC方法发明的另一方面在于用于对数字信号系列(例如变换后的图像数据块的量化系数的有序系列)进行编码的设备。
图5示出了用于根据上述的VLC表格进行编码的设备的一个实施例。一个实施例使用三个查找表格,例如存储在存储器506中的上述表格6、表格7和表格8。事件识别器502中的计数器508按着系列的顺序对系数数目进行计数,从而通过确定系数是在断点之前还是在断点之后来告知事件识别器502事件是在第一区域还是在第二区域,所述断点也被存储在存储器506中。事件识别器502确定连续零幅度系数的游程长度,在第一区域中时的连续零长度幅度的游程长度以及在第二区域中时的连续零幅度系数的游程长度。对于第一区域,零的游程长度(多个零或者没有零)与幅度(0或非零)一起被传递。在一个实施例中,还传递代码以指示何时值在第二区域中。事件识别器502的这些输出被输入到编码器504中,在 一个实施例中,编码器504包括查找设备以查找所使用的五个代码表格中合适的一个表格。
虽然图5中所示的实施例具有与查找设备相分离的存储查找表格的存储器506,但是在另一实施例中,查找设备包括用于存储代码表格的存储器。
图5的替代实施例在事件识别器502所生成的代码中包括关于系数是否是块中的最后一个系数的指示。这提供了一种类似于在上面提到的PCT专利公布WO 9318616中所描述的对传统3-D VLC的扩展。
基本混合VLC方法发明的另一方面在于一种用于对利用这里所述的任一种新方法编码的比特流进行解码的设备。图6示出了该设备的一个实施例。码字识别器602接收比特流中的每个位,并且识别各自代表一个事件的一组可能的码字中的码字。码字识别器确定码字来自五个编码表格中的哪个表格。解码器604被耦合到码字识别器602,并且确定针对被码字识别器识别的码字的数据,例如非零的游程长度、零的游程长度、符号等。在一个实施例中,解码器604包括查找设备,其查找存储在存储器606中的合适的解码表格。该表格为码字组中的至少一些码字提供事件。其它码字可以包括转义码,从而可以使用不同于表格查找法的方法进行解码。在一个实施例中,比特流被存储在缓冲器608中,并且缓冲器的输出被耦合到码字识别器。
虽然在图6中所示的实施例中,存储器被示为与查找设备相分离,但是本领域的技术人员应当理解在其它实施例中,查找设备包括表格存储器,并且这里包括这样的其它实施例。
注意在图5中,事件识别器和查找设备可以作为存储在存储器(例如存储器506)中的一组指令分别在计算机上实现,所述指令指示一个或多个处理器执行识别和查找操作。
还要注意在图6中,码字识别器和查找设备可以作为存储在存储器(例如存储器606)中的一组指令分别在计算机上实现,所述指令指示一个或多个处理器执行识别和查找操作。
基本混合VLC方法发明的另一方面在于一种存储编码数据结构的存 储器(例如图5中的存储器506),所述数据结构按照这里所述的任一种新的编码方法的描述为一个或多个系数的组提供码字。在一个实施例中,该数据结构采取一个或多个表格的形式。
基本混合VLC方法发明的另一方面在于一种存储解码数据结构的存储器(例如图6中的存储器606),所述数据结构提供针对在压缩图像数据的比特流中识别的任一组码字的数据。所述比特流被利用这里所述的任一种新的编码方法进行编码。在一个实施例中,该数据结构采取一个或多个表格的形式。
因此,已经描述了适合于对出现在常见的图像压缩方法中的图像块的量化变换系数进行编码的可变长度编码方法。
基本混合VLC方法的一个实施例使用五个独立的表格:用于第一和第二游程长度编码方法的两个游程长度代码表格,用在第一区域中的第一幅度代码表格,用于第三游程长度编码方法的另一游程长度代码表格以及用在第二区域中的第二幅度代码表格。
用于第二区域的扩展混合VLC方法
在扩展混合VLC方法中描述的本发明的一个方面在于,在第二区域中,使用第二区域编码方法,其考虑了结束于幅度为1的系数的零值系数游程的出现。更一般地说,这个方面考虑了系列中最可能出现的值的游程后面接着一个其次最可能出现的幅度的情况。扩展混合VLC方法的第二区域编码方法包括标识包括结束于其次最可能出现的幅度(例如1)的具有最可能出现的值的连续信号(例如第二区域中的零值系数)的游程的事件,并且使用第三编码方法对第二区域中标识出的事件进行编码。
扩展混合VLC方法的第二区域编码方法的一个实施例包括,从第二区域的开始处开始,标识结束于非零幅度系数的零值系数的游程,并且使用第三游程长度编码方法对每个结束于非零幅度的零值系数的游程的游程长度进行编码,所述第三游程长度编码方法为每个游程提供代码,例如由下面的表格11所示的游程长度表格表示的代码,其中C’”(i),i=0,1,2,…表示用于对结束于1的i个连续0的游程长度进行编码的游程长度代码。
表格11
游程长 度 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | … | Esc |
代码 | C′″(0) | C′″(1) | C′″(2) | C′″(3) | C′″(4) | C′″(5) | C′″(6) | … | ESC′″ |
表格11还包括了代码来指示结尾的非零幅度不是其次最可能出现的幅度的情况(例如其幅度大于1),即游程为结束于幅度不是其次最可能出现的幅度的系数(例如其幅度大于1)的具有最可能出现的幅度(例如0)的连续系数的情况。因为这种事件被认为是不太可能出现的,所以我们称之为“例外”。在表格11中,例外被表示为Exc。根据扩展混合VLC方法的一个方面,利用码字对这种例外进行编码,就好像结束于1的0的游程后面接着第二转义码(被表示为ESC’”)后面再接着对幅度的编码一样。
本发明的另一方面在于使用结尾代码(这里被表示为EOB)来指示第二区域中余下的系数全部为0。
作为示例,假设沿着第二区域的预定路径的量化系数的有序系列为:
0001002-100000100…0
用r’”(i)表示结束于幅度1的i个连续零值系数的游程,并且用r’”(i)+Exc表示结束于大于1的非零幅度的i个连续零值系数的游程,i=0,1,2,…。在一个实施例中,假设第二区域的系列中的每个非零值系数之前为零值系数的游程,因此两个连续的非零值系数中的第二个系数之前为非零值系数的游程(i=0)。则第二区域的系列的游程可以被写为:
r′″(3)(r′″(2)+Exc)r′″(0)r′″(5)EOB
其中EOB被用于指示余下的系数全部为0,并且其中可以理解在每个0的游程之间恰有一个非零值系数。如果沿着第二区域中的指定路径的量化系数为大于1的值,则在一个实施例中,编码过程在游程长度代码和例外码之后包括对非零值系数的幅度进行编码的可变长度幅度代码,以及针对0的游程之后的非零值系数的符号代码。用A’”(k),k=2,3,…分别表示针对幅度2,3,…的可变长度幅度代码,用S+和S-分别表示针对正系数和负系数的符号位代码,并且用+表示串接。
利用示出了根据扩展混合VLC方法的结束于1的第二区域中的游程长度的代码的表格11,则对第二区域的系列中的游程进行编码的结果为:
[C′″(3)+S+]+[C′″(2)+ESC′″+A′″(2)+S+]+[C′″(0)+S-]+[C′″(5)+S+]+EOB
其中EOB在这里也用来表示用于指示余下的系数为0值的码字,并且ESC’”是针对第二区域中的例外的转义码。
上述基本混合VLC方法已经包括了针对那些幅度为1的非零值系数的幅度代码。因此,只要第二区域中的非零量化系数值主要为±1,扩展混合VLC方法的这个实施例的这个性能就应当优于基本混合VLC方法的相应版本。
注意在一个实施例中,针对出现在第二区域中的量化系数幅度的幅度编码方法(值A’”(k),k=2,3,…)不同于针对出现在第一区域中的量化系数幅度的幅度编码(值A(i),i=1,2,…)。例如,对于常见的图像,预期第二区域(例如高频区域)中的幅度主要是比出现在第一区域(例如低频区域)中的幅度较低的值。
扩展混合VLC方法是对基本混合VLC方法的改进,并且对于低比特率运动补偿编码来说可能更为优秀。随着更先进的运动补偿技术的开发,它也可以用于较高比特率的帧间编码。
限定用于基本混合VLC方法和扩展混合VLC方法的两个区域的断点
一个版本在第一(例如低频)区域和第二(例如高频)区域之间使用固定断点。在一个实施例中,通过进行实验收集关于这种图像的一组典型样本的统计信息来针对每类图像和每类压缩方法预先确定固定的断点。通常,为下列情况确定不同的断点:
●帧内和静止图像编码vs.帧间编码;
●标准清晰度电视图像(SDTV)vs.HDTV图像;
●高比特率编码方法vs.低比特率编码方法;
●DCT vs.非DCT变换;
等等。
当使用固定的(例如预先选择的)断点时,指示已经被传递给解码器以指示图像的类型(例如是帧间还是帧内),或者编码的类型(高比特率还是低比特率)。因此,通常不需要再向断点的解码器发送指示。在一个实施例中,第一断点被用于针对第一种帧间编码的帧间数据,例如相对较 高比特率的帧间编码,而第二断点被用于针对第二种帧间编码的帧间数据,例如相对较低比特率的帧间编码。
发明人通过根据本发明的基本和扩展混合VLC方法实施例执行可变长度编码并对于使用DCT量化成127个非零幅度的8×8的块的情况针对不同断点值绘出压缩图像的大小,来对典型的静止图像进行了实验(该实验也可应用于动态编码中的帧内图像),并且观察到虽然某些图像适用大约为10的断点,但是断点22适用于大多数图像。因此,在用于进行DCT变换编码的帧内图像和静止图像的一个实施例中,使用预先选择的固定断点22。
在第一种变体中,断点是依赖于图像的,并且根据断点选择标准从有限集中选取。例如,根据上述实验,将使用第一断点22的压缩与使用第二断点10的压缩进行比较,并且使用实现较大压缩的断点。其它的断点选择标准也是可以的,例如通过观察零值系数和非零值系数的游程的统计信息。
当使用了这种依赖于图像的断点时,断点的指示也与每个系数组一起被发送。在一个实施例中,2位的指示被发送。这样使得每个块可以被利用4个预定断点中的一个断点进行编码。在替代实施例中,预定断点的指示作为可变长度代码被发送,使得利用较短的代码来对较常见的断点进行编码。
虽然通常可能断点的集合是系列中可能的位置中很小的子集,但是在另一种变体中,依赖于图像的断点可以选自于系列中的任何地方,或者在替代变体中,可以选自于沿着子范围的任何地方。
当断点限定了第一区域和第二区域之间的固定边界时,该边界在这里被称为“硬”边界。类似地,一组断点可以限定一组硬边界。利用硬边界,经过断点的连续非零值序列或连续零值系数序列被看作在一直到断点为止的第一区域中的第一序列,和在从断点往后的第二区域中的第二序列。
在替代实施例中,断点限定这里所称的“软”边界,因为开始于第一区域中的任何连续零值或非零值序列将在第一区域中进行编码,即使它经 过断点。因此,针对特定系数块的实际边界可能会超过断点。例如,考虑如下的系数的数字信号的有序系列:
232-1-1111-11012001-1100…
假设使用一直到7并且包括7的断点。
在一个实施例中,断点形成硬边界。在这种情况下,第一区域为:
232-1-111
第二区域为:
1-1012001-1100…
因此使用基本或扩展混合VLC方法对第一区域的编码为:
C(7)+A(2)+S++A(3)+S++A(2)+S++A(1)+S-+A(1)+S-+
A(1)+S++A(1)+S+
使用基本混合VLC方法对第二区域的编码为:
C″(0)+[A″(1)+S+]+C″(0)+[A″(1)+S]+C″(1)+[A″(1)+S+]+C″(0)+
[A″(2)+S+]+C″(2)+[A″(1)+S+]+C″(0)+[A″(1)+S-]+
C″(0)+[A″(1)+S+]+…
并且使用扩展混合VLC方法对第二区域的编码为:
[C′″(0)+S+]+[C′″(0)+S-]+[C′″(1)+S+]+[C′″(0)+ESC′″+A′″(2)+S+]
+[C′″(2)+S+]+[C′″(0)+S-]+[C′″(0)+S+]+…
在另一实施例中,断点限定了软边界。在这种情况下,对于该特定的块,第一区域为:
232-1-1111-1
第二区域为:
012001-1100…
因此使用基本或扩展混合VLC方法对第一区域的编码为:
C(9)+A(2)+S++A(3)+S++A(2)+S++A(1)+S-+A(1)+S-+
A(1)+S++A(1)+S++A(1)+S++A(1)+S-
使用基本混合VLC方法对第二区域的编码为:
C″(1)+[A″(1)+S+]+C″(0)+[A″(2)+S+]+C″(2)+[A″(1)+S+]+C″(0)+
[A″(1)+S-]+C″(0)+[A″(1)+S+]++C″(2)+…
并且使用扩展混合VLC方法对第二区域的编码为:
[C′″(1)+S+]+[C′″(0)+ESC′″+A′″(2)+S+]+[C′″(2)+S+]+
[C′″(0)+S-]+[C′″(0)+S+]+…
就是说对于第二实施例,对于该特定块,断点7对应的边界为9。
样本代码表格:游程长度代码和幅度代码
用于第一游程长度编码方法、第二游程长度编码方法和第三游程长度编码方法的游程长度代码可以是算术码或哈夫曼可变长度码。可以通过实验检查不同类型的图像,并针对这些图像收集关于要进行编码的不同游程长度的统计信息。然后可以基于这种统计信息分配代码。
类似地,根据第一和第二幅度编码方法的两种幅度代码(一种针对第一区域中的非零幅度,而另一种针对第二区域中大于1的幅度)例如被构造成算术码或哈夫曼可变长度码。
因而,有三种游程长度代码,并且可以用三个游程长度编码表格的形式来表示。还有两个幅度编码表格。因此,一个实施例使用五个表格。
多个断点以及两个以上区域
以上实施例采取排序中有一个断点和两个区域的形式。这个思想可以延伸到两个以上的区域,即多个断点。例如,一个实施例包括第一低频区域、第二中频区域和第三高频区域,在所述第一低频区域中,可能存在零值系数游程和值为1或更大的值的非零值系数游程,在所述第二中频区域中,可能存在零值系数游程和值为1的系数游程,但是不可能存在大于1的系数的游程,在所述第三高频区域中,可能存在零值系数游程,但是不可能存在很多非零值系数游程。因此,一种替代的游程长度编码方法包括使用两个断点来限定第一、第二和第三区域。在第一区域中,标识非零值系数游程和零值系数游程,并且使用第一游程长度编码方法和第二游程长度编码方法对非零幅度和零幅度系数的游程长度进行编码。在第二区域中,标识幅度为1的系数游程以及零值系数游程,并且分别使用第三游程长度编码方法和第四游程长度编码方法对幅度为1的系数和零幅度系数的游程长度进行编码。在第三区域中,标识零值系数游程,并且使用第五游程长度编码方法对这种零值游程的游程长度进行编码。
在一些区域中,也可以使用其它方案,例如2D-VLC和扩展的2D-VLC。
用于扩展混合VLC方法的设备
扩展混合VLC方法发明的另一方面是用于对数字信号系列(例如变换的图像数据块的量化系数的有序系列)进行编码的设备。
图7示出了用于根据这里所述的VLC表格进行编码的设备的一个实施例。一个实施例使用三个查找表格,例如针对第一区域中的非零的游程的代码的表格、针对第一区域中的零的游程的代码的表格以及针对第二区域中的结束于幅度1的零的游程的代码的表格。这些表格(例如针对第一区域的代码的表格和针对第二区域中的代码的表格)被存储在存储器706中。事件识别器702中的计数器708按系列的顺序对系数数目进行计数,并且通过确定系数是在断点之前还是在断点之后来告知事件识别器702事件是在第一区域还是在第二区域中,所述断点也被存储在存储器706中。事件识别器702确定连续零幅度系数的游程长度,在第一区域中的连续零长度幅度的游程长度以及在第二区域中结束于幅度1或其它幅度的连续零幅度系数的游程长度。对于第一区域,零的游程长度(多个零或者没行零)与幅度(0或非零)一起被传递。在一个实施例中,还传递代码以指示何时值在第二区域中。事件识别器702的这些输出被输入到编码器704中,在一个实施例中,编码器704包括查找设备来查找所使用的五个代码表格中合适的一个表格。
虽然图7中所示的实施例具有与查找设备相分离的存储查找表格的存储器706,但是在另一实施例中,查找设备包括用于存储代码表格的存储器。
图7的替代实施例在事件识别器702所生成的代码中包括关于系数是否是块中的最后一个系数的指示。这提供了一种类似于在上面提到的PCT专利公布WO 9318616中所描述的对传统3-D VLC的扩展。
扩展混合VLC方法发明的另一方面在于一种用于对利用这里所述的任一种新方法编码的比特流进行解码的设备。图8示出了该设备的一个实施例。码字识别器802接收比特流中的每个位,并且识别各自代表一个事 件的一组可能的码字中的码字。码字识别器确定码字来自五个代码表格中的哪个表格。解码器804被耦合到码字识别器802,并且确定针对被码字识别器识别的码字的数据,例如非零的游程长度、零的游程长度、符号等。在一个实施例中,解码器804包括查找设备,其查找存储在存储器806中的合适的解码表格。该表格提供针对码字组中的至少一些码字的事件。其它码字可以包括转义码,因此可以使用不同于表格查找法的方法进行解码。在一个实施例中,比特流被存储在缓冲器808中,并且缓冲器的输出被耦合到码字识别器。
虽然在图8中所示的实施例中,存储器被示为与查找设备相分离,但是本领域的技术人员应当理解在其它实施例中,查找设备包括表格存储器,并且这里包括这样的其它实施例。
注意在图7中,事件识别器和查找设备可以作为存储在存储器(例如存储器706)中的一组指令来分别在计算机上实现,所述指令指示一个或多个处理器执行识别和查找操作。
还要注意在图7中,码字识别器和查找设备可以作为存储在存储器(例如存储器706)中的一组指令来分别在计算机上实现,所述指令指示一个或多个处理器执行识别和查找操作。
实现扩展混合VLC方法的设备的另一设备实施例被显示为图9中的设备900,其包括处理系统902,处理系统902包括一个或多个处理器904和存储器906。图9中示出了一个处理器,但是本领域技术人员应当理解这可以代表若干个处理器。类似地,仅示出了一个存储器子系统906,但是本领域技术人员应当理解存储器子系统可以包括诸如RAM、ROM等的不同元件。另外,存储器子系统意图包括诸如磁或光存储组件之类的任何非易失性存储设备。计算机程序908被包括并且被载入存储器906中。注意本领域技术人员应当理解,任何时候,程序中的某些部分都可以在存储器子系统的不同部分中。程序908包括指令,指示处理器以不同的版本实现这里所述的不同的编码方法,例如扩展混合VLC方法。下面在题为“包括处理器的编码和解码设备”的部分会更详细地说明图9。
另一设备实施例被显示为图10中的解码设备1000,其包括处理系统 1002,处理系统1002包括一个或多个处理器1004和存储器1006。图10中示出了一个处理器,并且本领域技术人员应当理解其可以代表若干个处理器。类似地,仅示出了一个存储器子系统1006,但是本领域技术人员应当理解存储器子系统可以包括诸如RAM、ROM等的不同元件。另外,存储器子系统意图包括诸如磁或光存储组件之类的任何非易失性存储设备。计算机程序1008被包括并且被载入存储器1006中。注意本领域技术人员应当理解,任何时候,程序中的某些部分都可以在存储器子系统的不同部分中。程序1008包括指令,指示处理器以不同的版本实现这里所述的不同的编码方法,例如扩展混合VLC方法。下面在题为“包括处理器的编码和解码设备”的部分会更详细地说明图10。
本发明的另一方面在于一种存储编码数据结构的存储器(例如图7中的存储器706或图9中的存储器906),所述数据结构按照这里所述的任一种新的编码方法的描述为一个或多个系数的组提供码字。在一个实施例中,该数据结构采取一个或多个表格的形式。
本发明的另一方面在于一种存储解码数据结构的存储器(例如图8中的存储器806或图10中的存储器1006),所述数据结构提供针对压缩图像数据的比特流中识别的任一组码字的数据。所述比特流被利用这里所述的任一种新的编码方法进行编码。在一个实施例中,该数据结构采取一个或多个表格的形式。
扩展混合VLC方法发明的一个实施例使用五个独立的表格:用于第一和第二种编码方法的两个游程长度代码表格,用在第一区域中的第一幅度代码表格,用于第三种编码方法的另一游程长度代码表格以及用在第二区域中的第二幅度代码表格。
多类VLC方法
多类VLC方法的一个方面使用针对变换图像数据块的量化系数的有序系列的多种编码过程。编码过程表示编码方法或编码方法的组合。与基本混合VLC方法和扩展混合VLC方法中一样,通常通过沿着变换域上所选择的路径扫描量化变换系数来获得系列。量化系数系列根据系列中系数的分布形式被分成多个类。对于每一类,使用相应的一组一个或多个提供 的编码过程来对系列进行编码。因此,被应用于数据块的编码方法取决于所确定的量化变换系数的分布。
在多类VLC方法的一个实施例中,上述基本混合VLC方法和扩展混合VLC方法提供多类编码方法。
通过将量化系数系列分成四类来说明量化系数系列的分类。但是,本发明不局限于这种分类数目。
上述基本混合VLC方法和扩展混合VLC方法描述了系列怎样被分成多个区域。为了说明的目的,下面的描述主要就两个区域而言,所述两个区域可以被称为低频区域和高频区域。对于包括这样两个区域的类,沿着系数的排序的路径的断点被确立,以标识第一(例如低频)区域和第二(例如高频)区域。
采取量化变换系数的有序序列的形式的图像数据块在编码前先被扫描(“预扫描”),并被分成下面的四类,在这里被表示类1、类2、类3和类4。
类1(形成群集的大值区域):沿着系数的排序的很多非零值系数具有非零值,包括大量不为±1的非零值。非零值系数在整个排序中形成群集,使得沿着系数的排序的路径没有清晰的断点来标识其中非零值系数形成群集的第一区域(例如低频区域)和其中非零值系数分散的第二区域(例如高频区域)。
类2(形成群集的大值区域和分散的区域):沿着系数的排序的大量(例如4个以上)非零值系数具有非零值,包括大量(例如2个以上)不为±1的非零值。沿着系数的排序的路径存在断点来标识其中非零值系数基本上形成群集的第一(例如低频)区域和其中非零值系数分散的第二(例如高频)区域。
类3(形成群集的小值区域和分散的小值区域):沿着系数的排序的非零值系数实质上主要是系数±1。沿着系数的排序的路径存在断点来标识其中非零值系数基本上形成群集的第一(例如低频)区域和其中非零值系数分散的第二(例如高频)区域。
类4(分散的小值区域):沿着系数的排序的非零值系数实质上主要 是系数±1。非零值系数在整个排序中都是分散的,使得沿着系数的排序的路径没有清晰的断点来标识其中非零值系数形成群集的第一区域(例如低频区域)和其中非零值系数分散的第二区域(例如高频区域)。
对于每一类,使用相应的编码过程,该编码过程可以包括使用编码方法的组合。下面是所使用的编码方法。
示例性的形成群集的大值区域方法
在被称为“形成群集的大值区域方法”的组合中,以下编码方法的组合被用于这样的区域中,所述区域可以是整个块,其中非零值系数(一般来说是具有不是最可能出现的值的系数)包括幅度大于1的数(一般来说是幅度不是其次最可能出现的值),并且其中非零值系数(一般来说是具有不是最可能出现的值的系数)形成群集。该方法包括标识非零值系数的游程和零值系数的游程。使用第一游程长度编码方法对非零值系数游程的长度进行编码。使用第一幅度编码方法对非零值系数游程中的幅度进行编码。使用符号位对非零值系数的符号进行编码。使用第二游程长度编码方法对零值系数游程的长度进行编码。参见上述基本混合VLC方法对第一和第二游程长度编码方法以及第一幅度编码方法的更详细的描述。
在一个实施例中,使用游程长度编码表格分别实现第一和第二游程长度编码方法,从而例如使得使用第一游程长度编码方法的编码包括查找第一编码表格,使用第二游程长度编码方法的编码包括查找第二编码表格。
上面的表格3和表格4分别是用于对连续非零值系数的游程和连续零值系数的游程进行可变长度编码的示例性游程长度代码表格。C(n)和C’(z)分别表示针对n个连续非零值系数的游程和z个连续零值系数的游程的代码,其中n和z是游程长度,n,z=1,2,…。
作为示例,假设沿着第一频率区域中的排序路径的量化系数的有序系列开始于:
232-1012001-1100…
为了确定游程长度,该系列可以被写为:
xxxx0xx00xxx00…
其中x表示任一非零值系数,0表示零值系数。
用r(n)表示n个连续非零系数的游程,并且用r’(z)表示z个连续零值系数的游程。则本示例的有序序列开始于:
r(4)r’(1)r(2)r’(2)r(3)r’(2)…
对游程长度而不对本模式的幅度进行编码得到的结果可以被写为:
C(4)C’(1)C(2)C’(2)C(3)C’(2)…
为了完成该编码方法,与每个非零值系数游程的码字一起被包括的有针对游程中每个幅度的码字和针对系数可能为正也可能为负的变换(例如常用的DCT变换)的每个系数的符号的额外的位。在一个实施例中,使用可变长度代码对每个幅度进行编码,并且使用符号位对每个符号进行编码。用A(k),k=1,2,3,…分别表示根据第一幅度编码方法针对幅度i=1,2,…的幅度代码,用S+和S-分别表示正系数和负系数的符号位代码,并且用+表示串接。则以上示例序列被编码为:
[c(4)+A(2)+S++A(3)+S++A(2)+S++A(1)+S-]+c′(1)+
[c(2)+A(1)+S++A(2)+S+]+c′(2)+
[c(3)+A(1)+S++A(1)+S-+A(1)+S+]+c′(2)…
在一个实施例中,A(k),k=1,2,…是可变长度代码,使得最可能出现的非零幅度(通常是1)具有比其它出现可能性较小的幅度的码字更短的码字A(1)。
在一个实施例中,假设系列(如果该方法是针对系数系列的区域则为区域)开始于一个或多个非零值系数的游程。因此,第一码字始终是根据第一种游程长度编码方法得到的码字。针对系列(或区域)开始于一个或多个零的游程时的情况包括码字以指示所使用的第一代码是针对零的游程的代码。在其中使用形成群集的大值区域方法对系列的第一区域或者整个系列进行编码的一个实施例中,DC成分被单独发送,因此第一个系数是沿着排序的第一个非DC系数。
因此,例如用RP表示在第一种编码方法中指示开始于一个或多个零值系数的游程的码字,假设系数系列(子系列)开始于:
0232-1012001-1100…
在一个实施例中,针对该系列或子系列部分的码字为:
RP+C′(1)+[C(4)+A(2)+S++A(3)+S++A(2)+S++A(1)+S-]
+C′(1)+[C(2)+A(1)+S++A(2)+S+]+C′(2)+
[C(3)+A(1)+S++A(1)+S-+A(1)+S+]+C′(2)…
在另一实施例中,在编码方法中包括指示系列没有非零值的码字。在其中形成群集的大值区域方法被用于第一区域的另一实施例中,这样的码字也被用于指示第一区域中所有余下的系数都为0。这个码字在这里被称为跳转到边界(SKP)。注意如果下一区域中没有非零系数或者没有第二区域,则SKP代码就等同于块的结尾(EOB)代码。
示例性的分散区域方法
在被称为“分散区域方法”的组合中,以下方法的组合被用于这样的区域中,所述区域可以是整个块,其中非零值系数(一般来说是具有不是最可能出现的值的系数)包括大量大于1的幅度(一般来说幅度不是其次最可能出现的值),并且其中非零值系数大部分是分散的。该方法包括标识零个或多个零值系数的游程,一般来说是零个或多个具有最可能出现的值的系数的游程。使用第三游程长度编码方法对零值系数游程的长度进行编码。每个这样的零个或多个零值系数的游程结束于一个非零值系数。使用第二幅度编码方法对这些非零值系数的幅度进行编码。使用符号位对非零值系数的符号进行编码。参见下面的以及上述基本混合VLC方法中对第三游程长度编码方法和第二幅度编码方法的更详细的描述。
在一个实施例中,使用第三游程长度编码方法进行编码包括查找第三游程长度编码表格。
上面的表格5是用于对区域或系列中的零值系数游程进行可变长度编码的示例性编码表格,在所述区域或系列中,非零值分散并且可能包括-些幅度大于1的系数。表格5描述了为每个零值系数游程提供代码的第三游程长度编码方法。C”(z),z=0,1,2,…表示用于对z个连续0的游程长度进行编码的游程长度代码,其中z=0,1,2,…
在可应用于最后区域(当系列被分成多个区域时)或单个区域的本发明的一个变体中,使用这里被表示为EOB的结尾代码来指示最后区域或 系列中余下的系数全部为零。
作为示例,假设分散的区域是两个区域中的第二个,并且沿着分散区域的预定路径的量化系数的有序系列如下:
0001001-200000100…0
该系列可以被写为:
000x00xx00000x00…0
其中x表示任一非零值系数,并且0表示零值系数。
用r”(z)表示z个连续零值系数的游程,z=0,1,2,…。在一个实施例中,假设第二区域的系列中的每个非零值系数的前面为零值系数的游程,因此两个连续的非零值系数中的第二个非零值系数之前是没有零值系数的游程(z=0)。第二区域中的上述示例性零的游程的有序序列可以被写为:
r”(3)r”(2)r”(0)r”(5)EOB
其中EOB被用于指示余下的系数都为0,并且其中可以理解在每个零的游程之间恰有一个非零值系数。利用表格5的代码对游程长度进行编码,则对第二区域的系列中的游程进行编码的结果为:
C”(3)C”(2)C”(0)C”(5)EOB
如果沿着第二区域中的指定路径的量化系数是大于1的值,则在一个实施例中,编码过程在游程长度代码之后包括对非零值系数的幅度进行编码的可变长度幅度代码,以及针对0的游程之后的非零值系数的符号代码。用A”(k),k=1,2,3,…分别表示根据第二幅度编码方法针对幅度1,2,…的可变长度幅度代码,用S+和S-分别表示正系数和负系数的符号位代码,并且用+表示串接。则上述第二区域的示例序列被编码为:
[C″(3)+A″(1)+S]+[C″(2)+A″(1)+S+]+[C″(0)+A″(2)+S-]+
[C″(5)+A″(1)+S+]+EOB
在一个实施例中,A”(k),k=1,2,…是可变长度代码,使得最可能出现的非零幅度(通常是1)具有比其它出现可能性较小的幅度的码字更短的码字A”(1)。
注意在一个实施例中,用于出现在第二区域中的量化系数幅度的第二 幅度编码方法(值A”(k),k=1,2,…)不同于用于出现在形成群集的大值区域中的量化系数幅度的第一幅度编码方法(值A(k),k=1,2,…)。在替代实施例中,相同的幅度编码被分别用作第一和第二幅度代码A(k)和A”(k)。
在另一实施例中,传统的2D-VLC方法被用于其中非零值系数包括大量大于1的幅度,并且其中非零值系数大部分分散的区域。
示例性的分散的小值区域方法
在被称为“分散的小值区域方法”的组合中,以下方法的组合被用于这样的区域中,所述区域可以是整个块,其中非零值系数主要是幅度为1的系数,并且其中非零值系数大部分是分散的。该方法包括标识结束于一个非零值系数的零个或多个零值系数的游程。使用在上述扩展混合VLC方法中所描述的对高频区域进行编码的第四游程长度编码方法对结束于非零值系数的零值系数游程的长度进行编码。该编码假设结尾的非零值系数的幅度为1,并且对于这种事件不再包括幅度编码。幅度不为1的结尾系数被假设为例外。标识这种例外,并且使用例外码(也称为转义码)来指示这种例外。使用第三幅度编码方法对这些幅度大于1的非零值系数的幅度进行编码。使用符号位对非零值系数的符号进行编码。参见下面以及上述扩展混合VLC方法中高频区域的编码中对第四游程长度编码方法和第三幅度编码方法的详细描述。
根据第四游程长度编码方法的代码可以用表格来表示。上面的表格11示出了用于这种代码的表格。C’”(z),z=0,1,2,…表示用于对这种区域或整个系列中结束于非零值系数的z个连续0的游程长度进行编码的游程长度代码。表格11还包括用于指示结尾的非零幅度不是最常见的非零幅度(即幅度大于1)的情况的代码。因为这种事件被认为是不太可能的,所以我们称之为“例外”。在表格11中,例外被表示为Exc。根据本发明的一个方面,利用码字对这种例外进行编码,就好像结束于1的0的游程后面接着第二转义码(被表示为ESC’”)后面再接着根据第三幅度编码方法对幅度的编码一样。
本发明的另一方面在于使用这里被表示为EOB的结尾代码来指示第二区域中余下的系数全部为0。
作为示例,假设沿着分散的小值区域的预定路径的量化系数的有序系列为:
0001002-100000100…0
用r’”(z)表示结束于非零幅度1的z个连续零值系数的游程,并且用r’”(z)+Esc表示结束于大于1的非零幅度的i个连续零值系数的游程,其中z,i=0,1,2,…在一个实施例中,假设第二区域的系列中的每个非零值系数之前为零值系数游程,因此两个连续的非零值系数中的第二个非零值系数之前是没有零值系数的游程(z=0)。分散的小值区域中的系列的游程可以被写为:
r’”(3)[r’”(2)+Exc’”]r’”(0)r’”(5)EOB
其中EOB被用于指示余下的系数都为0,并且其中可以理解在每个0的游程之间恰有一个非零值系数。如果沿着分散的小值区域中的指定路径的量化系数的值大于1,则在一个实施例中,编码过程在游程长度代码和例外码之后包括使用第三幅度编码方法的对非零值系数的幅度进行编码的幅度代码,以及针对0的游程之后的非零值系数的符号代码。用A’”(k),k=2,3,…分别表示使用第三幅度编码方法的针对幅度2,3,…的幅度代码,用S+和S-分别表示正系数和负系数的符号位代码,并且用+表示串接。使用针对游程长度的表格11的代码,则对第二区域中的系列中的游程进行编码的结果为:
[C′″(3)+S+]+[C′″(2)+ESC′″+A′″(2)+S+]+[C′″(0)+S-]+
[C′″(5)+S+]+EOB
其中EOB在此也被用于表示指示余下的系数都为零的码字,并且ESC’”是针对第二区域中的例外的转义码。
在一个实施例中,针对量化系数幅度的第三幅度编码方法(值A’”(k),k=2,3,…)使用可变长度代码,因此假设幅度2比更大的幅度的出现可能性大,则幅度代码A’”(k)比针对大于2的幅度的代码短。
还要注意在一个实施例中,针对量化系数幅度的第三幅度编码方法(值A’”(k),k=1,2,…)不同于针对量化系数幅度的第二幅度编码方法(值A(k),k=1,2,…)和第二幅度编码方法(值A”(k),k=1,2,…)。
示例性的形成群集的小值区域方法
在被称为“形成群集的小值区域方法”的组合中,以下方法的组合被用于这样的区域中,所述区域可以是整个块,其中非零值系数主要是幅度为1的系数,并且其中非零值系数包括相当大的群集。该方法包括标识幅度为1的系数的游程和零值系数的游程。使用第五游程长度编码方法对幅度为1的系数的游程的长度进行编码,在一个实施例中,所述第五游程长度编码方法与在上面的说明书中以及上述基本和扩展混合VLC方法中所描述的用于对低频区域中的非零值系数进行编码的第一游程长度编码方法相同。在另一实施例中,第五游程长度编码方法不同于第一游程长度编码方法。使用符号位对幅度为1的系数的符号进行编码。该方法还包括标识每个幅度不为1的非零值系数。使用第四幅度编码方法对幅度大于1的这些非零值系数的幅度进行编码,在一个实施例中,所述第四幅度编码方法与用在分散的小值区域方法中的第三幅度编码方法相同,而在另一实施例中是一种不同的幅度编码方法。使用符号位对幅度不为1的非零值系数的符号进行编码。使用第六游程长度编码方法对零值系数游程的长度进行编码,在一个实施例中,所述第六游程长度编码方法与上述用于对低频区域中的零值系数游程进行编码的第二游程长度编码方法相同,该第二游程长度编码方法在上述基本和扩展混合VLC方法中也有所描述。在另一实施例中,第六游程长度编码方法不同于第二游程长度编码方法。
在形成群集的小值区域方法的替代实施例中,该方法包括标识非零值系数游程和零值系数游程。使用第五游程长度编码方法对非零值系数游程长度进行编码。该编码假设非零值系数的幅度为1,并且对于这种事件,不再包括幅度编码。使用符号位对非零值系数的符号进行编码。该方法还包括标识每个幅度不为1的非零值系数。假设这样系数很少(“例外”)。这种例外被标识,并且使用例外码(也被称为转义码)来指示这种例外。使用第四幅度编码方法对幅度大于1的这些非零值系数的幅度进行编码。使用第六游程长度编码方法对零值系数游程长度进行编码。
然后,上述方法或方法的组合被用于每一类块中的适当区域中,如下所述。
注意如何确定编码表格的代码是直接根据图像块中系数的统计分布的。在一个实施例中,从典型的图像中收集统计信息,并且根据统计信息构造游程长度代码表格。例如参见上述基本混合VLC方法和扩展混合VLC方法中更详细的描述。
对于第1类的块,相应的编码过程(方法或方法的组合)是形成群集的大值区域方法。
对于第2类的块,相应的编码方法或方法的组合包括沿着系数的排序的路径确立断点以标识第一(例如低频)区域和第二(例如高频)区域。对低频系数的编码使用形成群集的大值区域方法,并且对第二(例如高频)区域的编码包括使用分散区域方法。
对于第3类的块,相应的编码方法或方法的组合包括沿着系数的排序的路径确立断点以标识第一(例如低频)区域和第二(例如高频)区域。对低频系数的编码使用形成群集的小值区域方法,并且对第二(例如高频)区域的编码包括使用分散的小值区域方法。
对于第4类的块,相应的编码方法或方法的组合是分散的小值区域方法。
图11示出了本发明的方法实施例的流程图。对于图像数据块的量化变换系数的有序序列,步骤1101扫描该量化系数的有序系列以确定该系数块属于哪个类。根据所确定的类,接下来的步骤是步骤1105-1、1105-2、1105-3和1105-4中的一个,上述步骤分别执行对应于类1、类2、类3和类4的编码过程。得到的结果是针对块的系数的编码后的比特流。根据所确定的类,接下来的步骤是步骤1107-1、1107-2、1107-3和1107-4中的一个,这些步骤分别向与所确定的块的类相对应的所确定的比特流应用2位的前缀。
虽然在一个实施例中,使用固定的二位代码来指示类,但是在另一实施例中,在某个或某些类比其它类出现的可能性更大的情况下,使用平均长度小于2位的可变长度代码来标识类。还要注意添加类的指示可以在实际的编码过程之前、之后或者甚至作为该过程的一部分来执行。此外,如果彼此相接的块(例如对应于区域中的特定区域的块)可能具有相同的 类,则仅在块间添加指示来指示从一种块类到另一种的变化,而不是添加用于每个块的指示。
在替代实施例中,不是在块的每一组码字之前使用代码来表示类,而是使用差分码字来指示类的差异。这种差分编码可能需要较少的位,因为彼此相接的块可能是高度相关的。
此外,为了用在某些类型的编码数据流(例如MPEG)中,每个视频序列可以被归组。例如,在MPEG-1中,每个视频序列由一系列图片组(GOP)构成。GOP由图片(帧)序列构成。帧由一系列SLICE构成。SLICE由一系列宏块构成,而宏块由少量的块(例如4个块表示亮度,2个块表示色度)以及(可能)运动向量构成。对于这种实施例,可以在较高的级别上进行分类,例如宏块或者在SLICE的级别或者在GOP的级别上进行分类。这使得指示类的开销较少。
在另一实施例中,类代码被单独发送。为第一块选择第一类。针对直到下一个类变化要跳过的块的数目的游程长度代码与关于下一个代码的指示一起被发送。这一直持续到所有代码的类都被发送。
多类VLC方法中的分类
根据图像块的类型,在一个实施例中对量化系数系列的分类包括不同的分类方式。在这种实施例中,多个类取决于图像块是否是针对如下情况中的一种或多种:
●静止图像编码vs.运动图像编码;
●帧内图像编码vs.帧间编码;
●标准清晰度电视图像(SDTV)vs.高清晰度电视(HDTV)图像;
●高比特率编码方法vs.低比特率编码方法;
●DCT vs.非DCT变换;
等等。
因此,根据以上各种类型的图像块中的一个或多个图像块,存在不同的类组、分类方式以及相应的编码过程。
分类过程本身利用块中的系数系列的数据,使得同一图像帧中通常存在不同的分类。这种分类被称为依赖于数据的分类。
步骤1101中依赖于数据的分类过程的一个版本包括检查块中系数的统计分布。该分类过程使用下面的一组统计度量中的一个或多个:连续非零值系数的游程长度、连续零值系数的游程长度、非零值系数的幅度以及将系列分成两个邻接的子系列的可分离性,所述子系列为具有形成群集的系数的第一子系列和具有分散的非零值系数的第二子系列。
优选的方法通过计算应用对应于不同类的编码过程的结果来进行分类,并且比较应用相应的编码过程而得到的压缩效果。图12示出了方法实施例的流程图,该实施例包括,作为步骤1101的一部分,扫描量化系数的有序系列以确定系数块属于哪个类,以及选择类的步骤1103,以及利用每个相应的编码过程对块进行编码并且比较结果以选择提供最佳压缩(即用于编码块的位数最少)的方法的步骤(步骤1105-1,…,1105-4)。在步骤1206中,通过选择使编码数据中的位数最少的代码来选择针对块的最佳类。选择之后,因为已经执行了编码步骤,所以步骤1207应用指示,例如以前缀代码的形式。在一些实施例中,添加前缀代码可以较早执行。
图13示出了一个实施方式的流程图,其中对系数系列顺序地执行相应的编码过程。在利用相应过程的每个这样的处理之后,进行比较,并且保留产生最少编码位数的过程(即最佳压缩)的一组码字,以及关于所选择类的指示。当然,利用每个类的相应过程进行编码可以按照任何顺序,并且在图13中被示为先是类1的方法,之后是针对类2、3和4的方法。如图12中所示,在步骤1205-1,…,1205-4中,利用与四个不同的类相对应的四种编码过程中的每一种对量化系数系列进行编码,并且在步骤1307-1中保存第一结果,然后在步骤1307-2、1307-3和1307-4中,将之前保存的结果分别与步骤1205-2、1205-3和1205-4中新计算的结果进行比较,并且如果新的结果比之前保存的结果好,则保存更好的结果。因此,在步骤1205-4之后,最好的结果被保存。在步骤1309中,添加指示类的代码(例如2位代码),例如作为前缀。在另一实施例中,每当在步骤1307-1、1307-2、1307-3和1307-4中第一个结果或更好的结果被保存时,都添加前缀。在这样的实施例中,最后不执行步骤1309。
图14示出了另一实施方式的流程图,其中对系数系列并行地执行分别对应于每个相应类的编码过程1205-1、1205-2、1205-3和1205-4。在所应用的方法的最后,在步骤1407中,对结果进行比较,并且根据哪些相应的编码过程产生了最少的编码位数来选择类。在步骤1409中,添加指示类的代码(例如2位代码),例如作为前缀。
多类VLC方法中限定区域的断点
上述的某些类包括为量化变换系数系列限定第一(例如低频)区域和第二(例如高频)区域的断点。下面的讨论适用于这样的类和包括选择断点来限定区域的相应的编码过程。
对于这样的类,一个版本使用第一和第二区域之间的固定断点。如何预先选择这种区域在上面针对混合VLC方法和扩展混合VLC方法描述过。
上述对断点的讨论假设在针对那些包括两个区域的类的排序中有一个断点和两个区域。
可以使用更多或更少的类,并且某些类可以包括两个以上的区域,即多个断点。
作为另一示例,考虑包括分成如下两类的分类方式的方法:
类A:系数的有序系列包括具有较大的值的系数,虽然其中幅度1是最可能的非零幅度,幅度2是其次最可能的幅度,依此类推,可限定断点以将系列分成低频区域和高频区域,使得非零值系数在低频区域中形成群集,在高频区域中分散。
类B:系数的有序系列中的非零值系数主要是幅度为1的系数,其中可限定断点以将系列分成低频区域和高频区域,使得非零值系数在低频区域中形成群集,在高频区域中分散。
在包括类A和B的一个实施例中,以下的方法组合对应于每个类:
对于类A的块:相应的编码方法或方法的组合包括沿着系数的排序的路径确立断点以标识第一(例如低频)区域和第二(例如高频)区域。对低频系数的编码使用形成群集的大值区域方法,并且对第二(例如高频)区域的编码包括使用分散区域方法。
对于类B的块:相应的编码方法或方法的组合包括沿着系数的排序的路径确立断点以标识第一(例如低频)区域和第二(例如高频)区域。对低频系数的编码使用形成群集的小值区域方法,并且对第二(例如高频)区域的编码包括使用分散的小值区域方法。
另外,使用一个开销位作为每个块的类指示。在一个实施例中,一位指示被用作编码位之前的前缀。
作为另一实施例,在一个或多个类中可以限定两个以上的区域,一个类可以包括第一低频区域、第二中频区域和第三高频区域,在所述第一低频区域中,可能存在零值系数游程和值为1或更大的非零值系数游程,在所述第二中频区域中,可能存在零值系数游程和值为1的系数游程,但是不可能存在大于1的系数的游程,在所述第三高频区域中,可能存在零值系数游程,但是不可能存在很多非零值系数游程。用于这样的类的相应的编码过程(方法或方法的组合)包括使用两个断点来限定第一、第二和第三区域。在第一区域中,标识非零值系数游程和零值系数游程,并且使用第一游程长度编码方法和第二游程长度编码方法对非零幅度和零幅度系数的游程长度进行编码。在第二区域中,标识幅度为1的系数游程以及零值系数游程,并且分别使用第三游程长度编码方法和第四游程长度编码方法对幅度为1和零幅度系数的游程长度进行编码。在第三区域中,标识零值系数游程,并且使用第五游程长度编码方法对这种零值游程的游程长度进行编码。
本发明不局限于任何特定的一组分类或任何针对类的特定的相应的编码过程。仅描述了类和相应的编码过程的一些示例。预期将来可以发明其它新的编码过程,并且已经存在其它的编码过程,并且这些其它的编码过程可以用在本发明的不同实施例中。
联合位置和幅度VLC方法
在基本混合VLC方法和扩展混合VLC方法中,交替地使用两种独立的一维可变长度编码方法对低频区域中的连续非零值系数和连续零值系数进行编码。希望将连续的非零值系数和零值系数配对成一个事件,并且向该对应用一个可变长度。
本发明的一个方面使用可变长度代码对连续零值系数的游程后面接着连续非零值系数的游程后面再接着一个零值的事件进行编码。发明人相信这为系数系列或这种区域中其中非零值系数可能形成群集的区域提供了高效的代码。
考虑第一种传统的2D-VLC。图15给出了上面的表格1,作为示例,该表格给出了针对传统2D-VLC的事件的统计信息(被制成了二维的表格)。表格1的这个版本使用了与上面的表格1略微不同的记号。在图15的表格中,S2D(z,m)是似然,例如被表示为后面为幅度m(m=1,2,…)的i(z=0,1,2,…)个连续零值系数的游程出现的相对次数。
在2D-VLC中,诸如最佳代码之类的可变长度代码被分配给具有上述S2D(z,m)的事件中的每个事件或者至少一些事件,其中最可能出现的元素具有最少的位数,而使用最多的位数对最少发生的事件进行编码。图16示出了与上面作为示例给出了2D-VLC表格的表格2相同的表格,只是记号略微不同。在图16中,C2D(z,m)是用于对z个连续0值系数后面接着一个量值或幅度为m的非零系数的组合的事件进行编码,z=0,1,…且m=1,2,…。
假设量化变换系数系列为:
5100342000201030000000000000000000001000000000000010000000000000
用传统的2D-VLC将这个系列编码为:
C2D(0,5)+C2D(0,1)+C2D(2,3)+C2D(0,4)+C2D(0,2)+C2D(3,2)+C2D(1,1)+
C2D(1,3)+C2D(21,1)+C2D(13,1)+EOB
其中+表示串接,并且其中C2D(z,m)表示2D-VLC代码,z表示非零幅度值之前的零值系数的数目,并且m表示要被编码的幅度(忽略符号的情况下也称为量值)值,并且其中EOB表示指示块的结尾的代码,即所有余下的系数都为零值。注意以上不包括对系数的符号的编码。本领域技术人员应当理解系数可以是正数或负数,因此还要用符号位对每个非零系数值进行编码以指示符号,或者在替代实施例中,对包括符号的每个非零系数的整体进行编码。为了使发明内容清楚,在讨论中不包括符号。
通常使用单独的幅度代码对DC项(第一个变换系数)单独进行编 码。用DC(m)指示DC幅度的码字。在这种方法中,可以用传统的2D-VLC将上面的系数组编码为:
DC(5)+C2D(0,1)+C2D(2,3)+C2D(0,4)+C2D(0,2)+C2D(3,2)+C2D(1,1)+C2D(1,3)
+C2D(21,1)+C2D(13,1)+EOB
其中EOB是指示系列的剩余部分为零值系数游程的代码,+表示串接。在实践中,利用转义码后面接着固定长度码字来对一些出现可能性较小的事件进行编码。
基本混合和扩展混合VLC方法利用了如下特点,即对于很多量化变换系数系列,存在限定其中存在形成群集的非零值系数的第一区域和其中大部分非零值系数分散的第二(例如高频)区域的断点。在第一区域中,标识零值系数的游程和非零值系数的游程。第一可变长度代码被用于零值系数的游程,并且第二可变长度代码被用于非零值系数的游程。因此,两个一维游程长度代码被交替使用。DC被单独编码。假设系列开始于非零值系数的游程,并且特定的码字指示其为空游程,即系列开始于零值系数。
考虑上述系列(排除DC项):
100342000201030000000000000000000001000000000000010000000000000
首先考虑基本混合方法。为了简单,假设编码中不包括符号位。假设断点被设为15,限定了其中非零系数往往形成群集的一直到15的第一区域以及其中非零值系数往往分散的第二区域。在这种情况下,用x表示非零值系数,系列(没有DC项)的第一区域可以被写作:
x00xxx000x0x0x
而第二区域为:
00000000000000000000x0000000000000x0000000000000
在第一区域中,用r(n)表示n个连续非零系数的游程,并且用r’(z)表示z个连续零值系数的游程,n,z=1,2,…。则示例的有序序列开始于:
r(1)r′(2)r(3)r′(3)r(1)r′(1)r(1)r′(1)r(1)SKIP
对于第二区域,用r”(z),z=0,1,…表示连续零值系数的游程。则根据基本混合方法,第二区域具有如下事件:
r″(20)r″(13)End
其中,SKIP表示到断点的系数的余下部分为零,并且End表示系数的余下部分为零。
用c(n)表示根据第一可变长度编码方法用于对非零值系数的游程长度进行编码的可变长度代码。类似地,用c’(z)表示根据第二可变长度编码方法用于对第一区域中的零值系数的游程长度进行编码的可变长度代码。再用A(m)表示用于根据第一幅度编码方法对第一区域中的非零值系数的幅度m,m=1,2,…进行编码的码字,并且用A”(m)表示用于根据第二幅度编码方法对第二区域中的非零值系数的幅度m,m=1,2,…进行编码的码字。
不考虑符号位,则第一区域被编码为:
c(1)+A(1)+c′(2)+c(3)+A(3)+A4+A(2)+c′(3)+c(1)+A(2)+c′(1)+c(1)
+A(1)+c′(1)+c(1)+A(3)+Skip
并且第二区域被编码为:
c″(20)+A″(1)+r″(13)+A″(1)+EOB
其中SKIP和EOB代表指示系列的余下部分只有零值系数的码字,并且+表示串接。注意根据扩展混合VLC方法,系数幅度被假设为1,使得结束于一个幅度为1的系数的零值系数游程不再需要幅度编码。利用例外码后面接着针对大于1的幅度的幅度代码对大于1的幅度进行编码。因此,第二区域将不包括幅度代码,因为它们是针对幅度1的。
在传统2D-VLC的实际实现中,为了减小编码表格的大小,利用前面为所谓的转义码的固定长度码字对一些出现可能性较小的事件进行编码。
本发明的一个方面是避免使用转义码。
本发明的另一方面是一种方法,其包括对于系列的第一区域,标识每个包括零值系数游程后面接着非零值系数游程的一个或多个事件。该方法还包括利用一个可变长度代码(例如来自于一个表格)对每个这种标识出的事件进行编码。利用基本和扩展混合方法,根据第一和第二一维游程长度编码方法利用两个码字对这样的一对事件进行编码。
在一个实施例中,第一区域是整个量化变换系数系列。为了简单,首先考虑这种情况。
可以利用零值和非零值系数的游程长度限定每个标识出的事件。用R’(z,n)表示z个连续零值系数的游程后面接着n个非零值系数,z=0,1,2,…并且n=1,2,3,…,因此包括没有在前的零值系数的“游程”。
图17A-17D示出了分别示出事件的示例的表格12A-12D。在模式中,“x”指示非零值。
再次考虑系列:
5100342000201030000000000000000000001000000000000010000000000000
排除DC项(幅度5)并且不包括任何符号数据,该系列的事件为:
R′(0,1),R′(2,3),R′(3,1),R′(1,1),R′(1,1),R′(21,1),R′(13,1),End
其中End指示系列的余下部分由零值系数构成。
在一种实现方式中,对于每个事件,例如在诸如图18中所示的表格13之类的表格中收集或假设统计信息,其中S’(z,n)表示所假设或测出的针对事件R’(z,n)的相对似然,z=0,1,2,…并且n=1,2,…。图19中所示的表格14是基于表格13中所假设或收集的统计信息而形成的可变长度代码表格。在表格14中,C’(z,n)表示针对事件R’(z,n)的可变长度代码,z=0,1,2,…并且n=1,2,…。注意在一种实现方式中,这种表格只用于对一个区域进行编码,例如系数系列的第一低频区域。对于这种情况,还需要指示所有的系数都为零的代码,以跳到下一区域。
此外,利用幅度代码对任何非零值系数进行编码,在一个实施例中,这是利用根据所假设或收集的统计信息被表示为编码表格的可变长度代码来实现的。用A(m),m=1,2,…表示根据幅度编码表格的量化值m的代码。
因此,对于上面的系列,排除DC项和系数的符号,该系列被编码为:
C′(0,1)+A(1)+C′(2,3)+A(3)+A(4)+A(2)+C′(3,1)+A(2)+C′(1,1)+A(1)+C′(1,1)+A(3)+C′(21,1)+A(1)+C′(13,1)+A(1)+EOB
其中,EOB是针对指示所有余下的码字都为0的结尾的码字,并且其中+表示串接。
因为非零值系数游程后面接着至少一个零值系数,或者在改进的实现 方式中非零值系数游程作为系列的结束,所以利用该方法标识并编码的事件包括零值系数游程后面接着非零值系数游程后面再接着一个零值系数。利用这种事件,每个事件可以对更多的系数进行编码。预期该编码可以提供更大的压缩。
这种事件的数目可能会相当大,因此导致代码表格可能相当大。在传统的现有技术的2D-VLC中,通过为出现可能性较小的事件增加转义码后面接着固定长度代码来限制表格的大小。在本发明的一个实施例中,代码表格的大小也被限制,使得仅对至多为某个最大数目的系数的事件进行编码,并为最大长度的全零事件以及结束于非零系数的最大长度事件提供额外的代码。这些特殊的最大长度事件保证避免使用转义码。
因此,用R(z,n)表示z个连续零值系数后面接着n个非零值系数后面再接着一个零值系数的游程,z=0,1,2,…并且n=1,2,3,…。假设事件被删简为不超过12个系数。则对于那些长度小于12的事件,z+n=11。某些z+n=12的12个系数的事件为结束于非零值系数的事件,并且可以被认为是“被删简的”,因为如果后面接着的是开始于非零值系数的事件,则这种事件避免了使用转义码。一个全零事件R(12,0)也是被删简的事件。
作为示例,图20A-20F分别示出了表格15A-15F,每个表格示出了事件的示例。在模式中,“x”指示非零值。这些事件被删简为包括不超过12个连续的系数。在图20F中,z+n=12的长度为12的事件由“结尾没有零;避免转义”指示。而且,事件R(12,0)被示出并且被标记为“全为零”。
图21示出了表格16,其中包括所收集或假设的针对零个或多个零值系数的游程后面接着若干个非零值系数的游程后面再接着一个零值系数的事件的相对似然,只不过根据本发明实施例的一些长度为12的事件不是这样结束的。那些由于z+n=12而得以区分的长度为12的事件被显示为粗体,并且可以用于避免结尾或转义码。
图22示出了根据图21中的统计信息针对图21中所示事件的可变长度代码的表格17。根据本发明的实施例,这些代码针对零个或多个零值系数的游程后面接着非零值系数的游程再接着一个零值系数的事件。
根据幅度代码对幅度进行编码,在一个实施例中,幅度代码是由一维幅度表格描述的可变长度代码。用A(m)表示针对幅度m的代码,m=1,2,…。
再次考虑如下系列:
5 10 03420 0020 10 30 000000000000 0000000010 000000000000
10 000000000000
其中第一个值是DC值。排除DC项并且不包括任何符号数据,这种系列的事件为:
R(0,1),R(1,3),R(2,1),R(0,1),R(0,1),R(12,0),R(8,1),R(12,0),R(0,1),End,
其中End指示余下的系数全部为零值。利用图22的表格17将该系列编码为:
C(0,1)+A(1)+C(1,3)+A(3)+A4+A(2)+C(2,1)+A(2)+C(0,1)+A(1)+C(0,1)+A(3)+C(12,0)+C(8,1)+A(1)+C(12,0)+C(0,1)+A(1)+EOB,
其中EOB表示块的结尾,即系列的余下部分都是零值系数。再次说明以上假设了没有符号信息并且排除DC项。
2-D非零/零群集VLC方法中的区域
发明人注意到在实际的图像块的量化变换系数系列中,通常至少有一个断点,该断点至少限定两个区域,使得一个区域中非零系数形成群集,而在第二区域中非零系数往往是分散的。这就是基本和扩展混合VLC方法的基础。
两个区域和2-D非零/零群集VLC方法
这里所描述的可变长度编码方法适用于对整个区域或任何区域进行编码。例如,所述的可变长度编码方法可应用于其中非零值系数形成群集的任何区域。根据上述基本混合和扩展混合VLC方法,利用两个游程长度编码表格和一个幅度编码表格对事件R’(z,n)进行编码。利用2-D非零/零群集VLC方法中的一些方面,可以利用一个游程长度编码表格和一个幅度编码表格对这种事件进行编码。此外,可能存在其中针对这种事件的统计信息非常不同的区域。例如,发明人注意到在块的开始处,量化系数的第一群集相比后面的群集具有更大的幅度。
在第一实施例中,编码方法包括沿着系数的排序的路径确立断点,以标识第一(例如低频)区域和第二(例如高频)区域。对第一区域中的系数的编码包括标识如下的联合事件,该事件包括一个和多个连续零值系数的第一游程后面接着连续的零个或多个非零值系数的第二游程后面接着一个零值系数。利用第一游程中零值系数的数目和第二游程中零值系数的数目标识每个这样的事件。
在一个版本中,每个标识出的事件仅包括至多为预定数目的系数,这里被称为最大长度。在这种情况下,可能需要对连续零值系数后面接着非零系数游程的序列进行编码,其中两个游程长度大于最大长度。例如,如果最大长度为12,则需要对如下系列进行编码:
000xxxxxxxxxxxxx0
如果允许任何长度的事件,则这个事件对应于R(3,13)。但是,如果最大长度为12,则一个实施例就将这个事件分成第一事件:
000xxxxxxxxxx
和第二事件:
xxxx0。
因此,在其中限定了最大长度的一个实施例中,可能的事件包括具有最大长度并且结束于一个或多个非零值系数而没有结尾的零值系数的序列的序列。在区域中,通常遵循这种事件。这使得将具有大于预定数目的系数的事件作为至多具有最大长度的多个事件进行编码,而不使用转义码。共同限定小于最大长度的零值系数的游程后面接着任何长度的非零值系数游程的两个或多个事件在这里被称为“广义事件”,因为为了某些目的,它被看作一个事件,所述目的例如包括利用所谓的软边界确立第一和第二区域。参见下面更详细的描述。
此外,当限定了事件的最大长度id时,全部为零值系数的事件也被限定以实现对“广义事件”的编码,该事件包括大于最大长度的零值系数后面接着一个或多个非零值系数再接着一个零值系数。
如何确立断点已经在上面参考基本混合VLC方法和扩展混合VLC方法进行了描述。
图23示出了表格18,该表格是针对具有形成软边界的断点12的样本图像的第一区域中的事件的实际统计信息的表格。注意该表格包括“skip”代码来表示跳到断点,并且该表格对应于断点为12的事件R(12,0)。在一个替代实施例中,在距离边界不到12个系数的范围内的任何事件R(12,0)也是跳到第二区域的开始的跳转事件(skip event),这种情况可适用于硬边界,而在可适用于软边界的第二替代实施例中,这种事件被包括在下一区域中,边界被移到这个事件的开始处。
在上面的描述中,假设使用个体的符号位对每个事件中的非零值系数的符号进行编码。
也可以利用类似的方法对第二(例如高频)区域中的系数进行编码,但是要使用与所假设或测出的第二区域中的事件的似然相匹配的针对事件的不同的第二编码表格。例如,这个第二编码表格要考虑第二区域中的非零值系数比较分散的特性。对于相对较低比特率的帧间编码的图像,这个代码表格还要考虑非零值系数可能主要是幅度为1的。
在一个替代实施例中,传统的2D-VLC被用于第二区域。
在另一替代实施例中,利用在基本混合方法中描述的第二区域方法对第二区域中的系数进行编码。即标识在第二区域中的零个或多个零值系数的每个游程后面接着一个非零值系数,并且通过利用可变长度编码表格的游程长度代码对其进行编码,并且利用通常不同于用于第一区域中的系数的幅度编码方法的幅度编码方法对非零值系数的幅度进行编码。EOB代码被用于指示所有余下的系数都为零值。使用符号位对非零值系数的符号进行编码。
在另一替代实施例中,利用在扩展混合方法中描述的第二区域方法对第二区域中的系数进行编码,该方法假设非零值系数主要是幅度为1的系数,因此不对幅度为1的系数进行幅度编码,并且使用例外码和其后的码字对幅度不为1的系数进行编码。即标识在第二区域中的零个或多个零值系数的每个游程后面接着一个非零值系数,并且通过利用可变长度编码表格的游程长度代码对其进行编码。利用例外码识别任何幅度不为1的非零值系数,并且例如利用转义码对其进行编码,并且利用通常不同于用于第 一区域中的系数的幅度编码方法的幅度编码方法对这种幅度不为1的非零值系数的幅度进行编码。EOB代码被用于指示所有余下的系数都为零值。使用符号位对非零值系数的符号进行编码。
两个以上的区域和2-D非零/零群集VLC方法
替代实施例包括两个以上的区域,即多个的断点限定了两个以上的区域。例如,发明人注意到非零值系数的第一群集通常具有比非零值系数的后面的群集更大的幅度。因此,在一个实施例中,用第一事件限定第一区域,所述第一事件是零个或多个零值系数的游程后面接着连续非零值系数的游程后面再接着一个零值系数。利用第一可变长度代码(例如第一可变长度编码表格)对这样的事件进行编码。利用第一幅度编码方法(例如第一可变长度幅度代码)对非零值系数的幅度进行编码。再利用符号位对每个非零系数的符号进行编码。基于实际的或假设的针对系列(忽略DC项)中第一事件的统计信息构造第一可变长度事件代码和第一幅度编码方法。
选择断点来限定第二和第三区域。对第二区域的系数的编码包括标识如下事件,该事件包括一个或多个连续非零值系数的第一游程后面接着一个零值系数后面再接着连续的零个或多个零值系数的第二游程。利用第一游程中非零值系数的数目和第二游程中零值系数的数目标识每个这样的事件。每个标识出的事件仅包括至多为最大长度的系数。利用第二可变长度代码(例如使用第二可变长度编码表格)对每个标识出的事件进行编码。此外,利用第二幅度编码方法(例如第二可变长度幅度代码)对非零值系数的幅度进行编码。利用相应的符号位对非零值系数的符号进行编码。利用扩展混合方法中针对高频区域描述的方法对第三区域进行编码,所述扩展混合方法假设非零值系数主要是幅度为1的系数,因此不对幅度为1的系数进行幅度编码,并且使用例外码后面接着码字来对任何幅度不为1的系数进行编码。
包括两个以上区域的其它替代方法也被包括在本发明的范围内。一种编码方法包括利用两个断点来限定第一、第二和第三区域。在第一区域中,标识非零值系数游程和零值系数游程,并且使用第一游程长度编码方 法和第二游程长度编码方法对非零幅度和零幅度系数的游程长度进行编码。在第二区域中,标识幅度为1的系数游程以及零值系数游程,并且分别使用第三游程长度编码方法和第四游程长度编码方法对幅度为1的系数和零值系数的游程长度进行编码。在第三区域中,标识零值系数游程,并且使用第五游程长度编码方法对这种零值游程的游程长度进行编码。
如以上针对两区域方法所述,替代编码方法也可以被用于第三(例如高频)区域。例如,第三区域可以使用传统的2D-VLC,或者在另一实施例中,第三区域可以使用基本混合方法的高频编码方法,或者在其中可以假设第三区域中的非零值系数主要是幅度为1的系数的另一实施例中,第三区域可以使用扩展混合方法的高频编码方法。
作为示例,考虑如下的量化系数系列:
5 00003420 00000030 000000|000000000000 0010 000000000000 10
000000000000
假设该编码使得第一事件限定第一区域,并且沿着排序的断点限定第二和第三区域。再假设第一系数是DC值,并且设DC(a)为针对量化值a的DC幅度的码字。再假设使用上述对零值游程后面接着非零值游程的可变长度编码,并且为任何事件限定了最大长度。用C0(z,n)、C1(z,n)和C2(z,n),z=0,1,…,n=1,2,…分别表示针对第一区域的事件、第二区域中的事件和第三区域中的事件的可变长度码字,每个事件都是z个零值系数后面接着n个非零值系数后面再接着一个零值系数,除非z+n=最大长度。对于该示例,假设限定第二和第三区域的断点在22处,并且限定软边界。用A0(a)、A1(a)和A2(a)分别表示利用第一、第二和第三幅度编码方法确定的第一、第二和第三区域中的幅度的码字。在一个实施例中,这些幅度编码方法是不同的可变长度编码方法。例如,在第一区域中,相比第二区域更可能出现较大的幅度。这种相对较大的幅度在第三区域中出现的可能性甚至更小。
忽略幅度的符号,上述系列被编码为:
DC(5)+C0(4,3)+A0(3)+A0(4)+A0(2)+C1(6,1)+A1(3)+C1(12,0)+C2(8,1)+
A2(1)+C2(12,0)+C2(0,1)+A2(1)+EOB
其中EOB是指示表格结尾的码字,并且+表示串接。注意断点前的六个零值系数的游程到了下一区域中,因为软边界移到了这六个零值系数之前。
注意在这种实现方式中,C0(12,0)、C1(12,0)和C2(12,0)是针对12个零值系数的事件的码字,或者如果在断点的12个系数内,则在硬边界的情况下,C0(12,0)、C1(12,0)和C2(12,0)是指示跳到断点的码字,或者在软边界的情况下,软边界移到事件的零值系数的开始处。
在实际的实现过程中,每个幅度还具有符号,并且编码也要包括符号位。用S+和S-分别表示针对正幅度和负幅度的代码位。假设要进行编码的量化系数系列为:
5 0000+3-4-2+10 000000+30 000000|000000 000000 00-10
000000000000+10 000000000000
则在符号位的情况下,根据同一实施例,该系列被编码为:
DC(5)+C0(4,4)+A0(3)+S++A0(4)+S-+A0(2)+S- +A0(1)+S++C1(6,1)+A1(3)+S++C1(12,0)++C2(8,1)+A2(1)+S- +C2(12,0)+C2(0,1)+A2(1)+S++EOB
在另一版本中,对非零值的编码包括符号。
基本多维幅度VLC方法
在2-D非零/零群集VLC方法、基本混合VLC方法和扩展混合VLC方法中的每一种方法中,提出了各种可变长度编码方法来对形成群集或未形成群集的变换系数的相对位置进行编码。在每次进行了这种编码之后,包括对每个非零值系数的量值的编码,并且包括了符号位(+或-)。
发明人注意到在对非零值系数群集的VLC编码中,对幅度的编码占据了代码中相当大的部分。
因此,即使利用2-D非零/零群集VLC方法、基本混合VLC方法和扩展混合VLC方法,仍然需要提高对非零值系数群集的系数幅度的编码效率。
基本多维幅度VLC方法发明的一个方面提出了一种多维VLC,以在对图像数据变换的量化系数的有序系列进行编码的过程中对出现在非零值 系数游程(群集)中的多个连续的非零值系数进行编码,就像很多图像压缩方法中出现的那样。代替使用“m”个一维VLC表格来对“m”个连续的非零值系数的幅度进行编码,本发明利用一个“m”维表格来对全部的“m”个系数的幅度进行编码。
图24示出了混合可变长度编码(VLC)方法2400的一个实施例的流程图,该方法包括在2401中,沿着系列的排序提供断点来限定第一(例如低频)区域和第二(例如高频)区域,在所述第一区域中非零系数可能形成群集,在所述第二区域中,非零系数可能分散,并且在所示出的版本中,可能主要是幅度为1的系数。在2403中,标识在一个或多个非零值系数的游程之前的每个零值系数的游程。在根据2-D非零/零群集VLC方法进行第一区域编码的情况下,事件包括非零值系数游程后面接着零值系数,并且此外,还包括在非零系数之前没有非零值系数的事件。在2405中,利用针对在前的零值系数的游程长度和一个或多个非零值系数的游程长度的每个事件的联合编码对标识出的事件进行编码。在一个实施例中,2405包括利用二维的代码查找表格。在2407中,利用幅度代码对标识出的事件中的每个非零幅度游程中的各个幅度进行编码,在一个实施例中,所述幅度代码是利用代码表格获得的可变长度代码。
注意在一种变体中,用基本混合VLC方法和扩展混合VLC方法中所描述的第一区域编码方法替换2403和2405。
在所示出的版本中,按照扩展混合VLC方法中所述的方式对第二(例如高频)区域进行编码。在2409中,限定如下事件,每个事件为零个或多个零值系数的游程后面接着一个非零值系数。假设任何这样的非零系数的幅度都是24,因此不需要对这样的系数进行幅度编码。幅度不为1的非零系数被标记为例外。此外,块中的余下部分为零的情况也被标识。在2411中,对于第二区域中的每个标识出的事件,利用可变长度游程长度编码方法(例如实现为编码表格)对在一个非零值系数之前的零值系数的游程长度进行编码。利用符号位对结尾的非零值系数的符号进行编码,并且在非零值系数是幅度不为24的例外情况的情况下,包括例外码后面接着幅度代码。例如利用通常不同于用于对第一区域中的非零幅度进行编 码的幅度编码表格的幅度编码表格得到该幅度代码,因为第二区域的幅度更可能具有比第一区域的幅度低的值。
在一种变体中,建立码字表格的方式是在2-D非零/零群集VLC方法中描述的,并且包括假设或者获得针对系统图像块的典型系列的统计信息,或者在自适应系统中,通过测出事件和幅度出现的相对频率来建立码字表格,这取决于编码方法,例如代码表格。在另一变体中,建立代码的方式是在基本混合VLC方法和扩展混合VLC方法中所描述的。
图25示出了混合VLC方法2500的另一实施例的流程图,该方法包括基本多维幅度VLC方法的某些方面,尤其是包括代替框2407的框2507,框2507的方法为针对第一区域中每个识别出的事件,利用码字(例如使用联合编码表格)对非零值系数游程中的多个非零幅度进行联合编码。符号也被编码。
注意2503和2505分别对应于图24中的2403和2405,只不过使用了不同的标号来指示这些不需要相同的步骤。例如,图24可以包括按照基本混合VLC方法和扩展混合VLC方法中描述的变体的形式识别事件,而2503和2505可以按照2-D非零/零群集VLC方法中描述的方式。
作为示例,假设利用2-D非零/零群集VLC方法中描述的编码发明对后面接着一个非零值的“z”个连续零值系数和“n”个连续非零值系数的一对进行编码。用R(z,n)表示零值/非零值系数的位置,并且用m(1),m(2),…,m(n)表示每个幅度。用C(z,n)表示针对事件R(z,n)的可变长度码字,z=0,1,…,n=1,2,…;用A(a)表示R(z,n)中的非零值系数游程中的幅度a,a=1,2,…的幅度编码;用S(1),S(2),…表示针对R(z,n)中的第一、第二、…第n个非零值系数的符号位。则根据2-D非零/零群集VLC方法中描述的一个实施例,事件和相应的非零幅度的编码为:
C(z,n)+A(m(1))+S(1)+A(m(2))+S(2)+…+A(m(n))+S(n)
其中+表示串接。
类似地,考虑基本混合VLC方法和扩展混合VLC方法。在第一区域中,用r(n)表示n个连续非零系数的游程,并且用r’(z)表示z个连续零值系数的游程,n,z=1,2,…。考虑用r(n)表示的一个事件,用m(1)、 m(2)、…m(n)表示r(n)中的每个非零幅度。用C(n)表示事件r(n),n=1,2,…中的非零值系数的游程长度的可变长度码字,并且用C’(z)表示事件r’(z),z=1,2,…中的零值系数的游程长度的可变长度码字。用A(a)表示对非零值系数游程r(n)中的幅度a,a=1,2,…的幅度编码;并且用S(1)、S(s)、…表示r(n)中的第一、第二、…第n个非零值系数的符号位。然后根据在基本混合VLC方法和扩展混合VLC方法中所描述的实施例,对事件和相应的非零幅度的编码为:
C(n)+A(m(1))+S(1)+A(m(2))+S(2)+…+A(m(n))+S(n)+C’(z),
基本多维幅度VLC方法的一个方面在于使用利用多维幅度编码方法得到的一个码字对如下的幅度序列进行编码:
A(m(1)),A(m(2)),…,A(m(n))
用An(m(1),m(2),…,m(n))表示针对n个量化幅度m(1),m(2),…,m(n),n=1,2,…的序列的码字。根据基本多维幅度VLC方法的一个实施例,当使用2-D非零/零群集VLC方法时,事件R(z,n)和相关的幅度和符号为:
C(z,n)+An(m(1),m(2),…,m(n))+S(1)+S(2)+…+S(n)
并且在一个实施例中,当使用基本混合VLC方法和扩展混合VLC方法时,为:
C(n)+An(m(1),m(2),…,m(n))+S(1)+S(2)+…+S(n)
在一个实施例中,利用n维的代码表格得到针对n个幅度的序列的码字,在一个实施例中,所述n维的代码表格是n维可变长度代码表格。
在替代实施例中,符号被包括在多维幅度编码方法中,则该方法应当确切地称为多维量化系数编码方法。因此,符号位可以与量值集成来表示真实的幅度,也可以作为单独的比特进行编码,如本示例中所示。
为了使多维表格的大小从实际实现的角度考虑是可以被管理的,被联合编码的非零幅度的游程的最大长度被限制为相对较小的数,例如2或3。假设至多对三个系数进行联合编码,并且假设使用多维表格。一个实施例将一维幅度编码表格用于游程长度为一个非零系数的事件,将二维的幅度编码表格用于游程长度为二个非零系数的事件,将三维的幅度编码表格用于游程长度为三个非零系数的事件。
出现可能性较大的幅度组合使用可变长度代码。通过假设或测出组合的统计信息,并且根据所假设或测出的统计信息利用本领域公知的代码分配方法(例如哈夫曼码、非哈夫曼的算术码等)分配可变长度码字,从而得到这些代码。此外,在一个实施例中,出现可能性较小的一些幅度组合被分配以前面为转义码的固定长度代码。
当至多对三个连续的非零幅度进行联合编码时,在一个实施例中,对于更长的游程,利用如2-D非零/零群集VLC方法中所描述的一维表格对余下的第4、第5个非零系数等的幅度进行编码。
在替代实现方式中,对于这些后面的系数使用更多的多维表格。在一个版本中,后面的多维表格与最初使用的表格相同,并且在另一种实现方式中,对于后面的系数群组使用不同的表格,以考虑在系列的排序中,系数越靠后其幅度通常就越小的似然。
图26A、26B和26C分别示出了一维幅度代码表格2601、二维幅度代码表格2603和三维幅度代码表格2605。在一个实施例中,三维幅度代码表格2605存储为一组二维幅度代码表格2607-1、2607-2、2607-3、…2607-m,其中m表示第一、第二和第三系数中每一个的最大值。每个2D表格存储针对不同的第三系数幅度的表格,为第一和第二系数的不同幅度提供代码。当三维代码表格被存储为一组二维代码表格时,每个二维表格中的系数的幅度可以是不同的。图26D示出了使用不同组的替代表格2609:每个2D表格存储针对不同的第一系数幅度的表格,为第二和第三系数的不同幅度提供代码。在该表格中,每个系数的值被限制为m。
对于根据2-D非零/零群集VLC方法对标识出的事件进行的联合编码,在一个版本中,每个标识出的事件只包括至多为预定数目的系数(这里被称为最大长度),使得具有最大长度的一些事件包括一个或多个连续的非零值系数的第一游程后面接着零个或多个零值系数的第二游程,而不是后面接着一个零值系数。这使得能够将具有大于预定数目的系数的事件作为至多具有最大长度的多个事件进行编码,而不使用转义码。共同限定小于最大长度的零值系数的游程后面接着任何长度的非零值系数的游程的两个或多个事件在这里被称为“广义事件”,因为为了某些目的,它被看 作一个事件,所述目的例如包括利用所谓的软边界确立第一和第二区域。基本多维幅度VLC方法的示例
作为示例,考虑如下系列:
5 0000+3-4-20 000000+30 000000|000000 000000 00-10
000000000000+10 000000000000
假设断点在用“|”指示的点处,并且考虑利用2-D非零/零群集VLC方法的一个实施例对第一区域中的系数进行编码,其中为全零提供代码。第一区域为:
5 0000+3-4-20 000000+30 000000
用DC(m)表示针对DC幅度的码字,并且用C(z,n)表示针对事件R(z,n)的可变长度码字,z=0,1,…,n=1,2,…,事件R(z,n)为z个零值系数后面接着n个非零值系数后面再接着一个零值系数。用C(skip)表示针对“跳转到边界”的码字。考虑其中利用一组符号位单独对符号进行编码的实施例。用S+和S-分别表示针对正幅度和负幅度的代码位。再用An(m(1),m(2),…,m(n))表示针对n个量化幅度m(1),m(2),…,m(n)的序列的码字,n=1,2,…。
然后根据包括基本多维幅度VLC方法的本发明的实施例,针对第一区域的码字为:
DC(5)+C(4,3)+A3(3,4,2)+S++S-+S-+C(6,1)+A1(3)+S++C(skip)
其中+表示串接。
确立断点的方式是在上面基本混合VLC方法和扩展混合VLC方法的上下文中描述的。
本发明的另一方面是用于对数字信号系列(例如图像数据变换块的量化系数的有序系列)进行编码的设备,包括使用基本多维幅度VLC方法。参见图9,下面在题目为“包括处理器的编码和解码设备”的部分中对其进行了更详细的说明。
因此,在本领域中,仍然需要一种可适用于可变长度编码的对幅度群集进行编码的相对高效的方法。
多表格幅度VLC方法
虽然基本多维幅度VLC方法发明似乎提高了总的编码效率,但是注 意到对于较大的“n”,用于联合编码的n维表格的大小可能会变得相当大。结果,实际上,n的大小必须被限制为少量连续的非零幅度值,例如对于实际实现为1、2和3。
因此,即使利用基本多维幅度VLC方法,在本领域中,也还是需要一种可适用于可变长度编码的(尤其是可适用于混合可变长度编码的)对幅度群集进行编码的相对高效的方法。
多表格幅度VLC方法发明的一方面提出了一组VLC方法,以在对图像数据变换的量化系数的有序系列进行编码的过程中,对出现在非零值系数游程(“群集”)中的多个连续的非零系数进行编码,正如很多图像压缩方法中出现的那样。
图27示出了混合VLC方法2700的另一实施例的流程图,该方法包括本发明的一个方面,并且包括框2707,其代替上述示出了混合可变长度编码(VLC)方法2400的一个实施例的流程图的图24中的框2407,对于第一区域中的每个识别出的非零幅度游程,所述框2707确定每个游程内的事件(这些事件包括幅度为1的系数的游程),并且用码字对每个事件编码,例如使用针对非零幅度的特定游程长度的2-D编码表格。符号也被编码。
注意2703和2705分别对应于上述图24中的2403和2405,不过2703和2705使用了不同的标号以指示这些步骤不必是相同的。例如,图24可以包括按照基本混合VLC方法和扩展混合VLC方法中所描述的方式识别事件,而2703和2705可以按照2-D非零/零群集VLC方法中所描述的方式。
正如在基本多维幅度VLC方法中那样,发明人注意到对于二维块变换,沿着指定路径(例如Z字形扫描路径)的变换系数的统计分布类似于指数分布,其中最大幅度的系数位于最低频谱中,而最小幅度的系数位于最高频谱中。当系数被量化时,较大幅度的系数往往更多地在较低的频率处形成群集,而较小幅度的系数往往更多地分散在较高的频率中。将路径分成低频区域和高频区域时,发明人注意到沿着高频区域的大部分量化系数的幅度主要是0和1,并且沿着低频区域的大部分量化系数的幅度主要 是较小的值,例如0,1,2,3,…等,幅度1比幅度2出现的可能性更大,幅度2比幅度3出现的可能性更大,依此类推。应当注意对于相对较低比特率的帧间编码,幅度0出现的可能性比幅度1更大,而对于帧内编码和较高比特率的帧间编码,幅度0出现的可能性比幅度1要小。
参考图27,作为示例,假设利用2-D非零/零群集VLC方法中描述的编码发明后面接着一个非零值的“z”个连续零值系数和“n”个连续非零值系数的一对进行编码。用R(z,n)表示零值/非零值系数的位置,并且用m(1),m(2),…,m(n)表示每个幅度。用C(z,n)表示针对事件R(z,n)的可变长度码字,z=0,1,…,n=1,2,…;用A(a)表示R(z,n)中的非零值系数游程中的幅度a,a=1,2,…的幅度编码;用S(1),S(2),…表示针对R(z,n)中的第一、第二、…第n个非零值系数的符号位。则根据2-D非零/零群集VLC方法中描述的一个实施例,事件和相应的非零幅度的编码为:
C(z,n)+A(m(1))+S(1)+A(m(2))+S(2)+…+A(m(n))+S(n)
其中+表示串接。
类似地,根据基本混合VLC方法和扩展混合VLC方法中所描述的实施例,对事件和相应的非零幅度的编码为:
C(n)+A(m(1))+S(1)+A(m(2))+S(2)+…+A(m(n))+S(n)+C′(z)
基本多维幅度VLC方法的一个方面在于使用利用多维幅度编码方法得到的一个码字,利用针对n个量化幅度m(1),m(2),…,m(n),n=1,2,…的序列的码字An(m(1),m(2),…,m(n))对幅度序列A(m(1)),A(m(2)),…,A(m(n))进行编码。根据基本多维幅度VLC方法的一个实施例,当使用2-D非零/零群集VLC方法结合基本多维幅度VLC方法的一个实施例时,事件R(z,n)和相关的幅度和符号被编码为:
C(z,n)+An(m(1),m(2),…,m(n))+S(1)+S(2)+…+S(n)
并且在一个实施例中,当使用基本混合VLC方法或扩展混合VLC方法结合基本多维幅度VLC方法时,为:
C(n)+An(m(1),m(2),…,m(n))+S(1)+S(2)+…+S(n)+C′(z)
多表格幅度VLC方法的一个实施例使用对多维表格的一种替代方案来对第一区域中的n个非零幅度系数的群集进行编码。
发明人注意到当标识到连续的非零幅度系数的游程(即非零幅度的群集)时,系数幅度的直方图往往主要是值1,然后是2,…等等。考虑到这些观察结果,这里描述了一种高效的编码方法,以利用系数值主要为1的特点。
多表格幅度VLC方法的一个方面包括,在第一区域中,标识群集(即连续的非零幅度系数的游程),并且在每个这样的群集中,进一步标识各自包括结束于幅度大于1的系数的连续的幅度为1的系数的游程的一个或多个事件。
每个这样具有结束于大于1的值的幅度为1的系数的游程的事件具有出现的可能性(似然)。可以通过把出现的相对频率制成表格得到直方图来估计出现似然,或者根据典型的图像的直方图或其它方式假设出现似然。
图28示出了在n个非零幅度系数的游程内1的游程出现的相对似然的表格。在图28中,Pn(j,k)表示结束于幅度大于1(这样的幅度用k表示,k>1)的系数的j个幅度为1的系数的游程的相对似然,j=0,1,…n-1。
因为非零值的游程可能全都是幅度为1的值,所以这种事件被称为例外,被表示为“Exc”并且这种事件的相对似然用Pn(Exc)表示。
图28的表格用于在第一区域中的n个连续非零幅度系数的群集中标识出的幅度1的游程。对于各种长度的连续非零幅度系数的游程,都有这样的似然表格。因此,有n个这样的表格。
多表格幅度VLC方法发明的一个实施例包括为每个群集内的每个这样的标识出的事件提供码字。例如,在一个实施例中,根据相对似然Pn(j,k)和Pn(Exc)为每个标识出的事件分配最佳的可变长度代码,其中最可能出现的事件被分配具有最少比特的代码,出现可能性最小的事件被分配最长的码字。图29示出了针对在n个非零幅度系数的连续游程中标识出的事件的代码表格。在图29中,Cn(j,k)表示针对标识出的结束于具有大于1的幅度k的系数的j个幅度为1的系数的游程的码字,并且Cn(Exc)表示针对结束于幅度1的n个非零系数的群集中的事件的码字。
因此,出现可能性较大的事件使用可变长度代码。通过假设或测出组 合的统计信息,并且根据所假设或测出的统计信息,利用本领域中公知的代码分配方法(例如哈夫曼码、非哈夫曼的算术码等)分配可变长度码字,来获得这些代码。此外,在一个实施例中,一些出现可能性较小的幅度组合被分配以前面有转义码的固定长度代码。
根据本发明的一个方面,图30示出了针对在不同长度的连续非零值系数群集中标识出的事件的代码表格序列。因此,图30示出了针对1个非零值系数的群集的表格、针对2个非零值系数的群集的表格、…一直到针对n个非零值系数的群集的表格。每个表格包括至多为m的结尾幅度。在一个版本中,在每个这样的表格中,可以对那些出现可能性最小的事件使用固定长度代码。
作为示例,假设如下长度为10的群集(连续非零幅度的游程)被标识:
1-1 1 1 2 1-3-1 1-1
该群集内有三个事件:
1-1 1 1 2
1-3
-1 1-1
根据多表格幅度VLC方法发明的一个实施例,标识出的群集被编码为:
(C10(4,2)+S++S-+S++S++S+)+(C10(1,3)+S++S-)+(C10(Exc)+S-+S++S-)
其中+表示串接,并且S+和S-分别表示针对正符号和负符号的代码。
因此,与基本多维幅度VLC方法相比,经由用于对非零幅度序列进行编码的相当大的多维编码表格而获得的一个码字被分别利用简单的2-D编码表格获得的若干个码字所代替。
作为示例,考虑如下低频区域中的量化变换系数的有序序列,排除dc系数,软断点在N=18处:
3-1 1 1-2 1 1 0 0-1 2 1 1-1 0 0 0 1|0
断点用|指示。考虑利用2-D非零/零群集VLC方法或上面所提到的通过引用而包括的美国专利申请No.10/922,508中所提出的类似方法对第一 区域中的系数进行编码。
假设没有DC系数,后面接着一个零值系数的第一个标识出的群集在位置R(0,7)处,并且该群集为:
3-1 1 1-2 1 1 0
而且,该群集包括以下事件:
3
-1 1 1-2和
1 1
因此,该第一群集被编码为:
C(0,7)+C7(0,3)+S++C7(3,2)+S-+S++S++S-+C7(Exc)+S++S-
其中,C(0,7)是根据2-D非零/零群集VLC方法针对零值游程和非零群集的位置的码字。
下一个非零群集后面接着一个零值系数为:
-1 2 1 1-1 0
并且该群集在位置R(1,5)处。这个长度的非零群集包括如下事件:
-1 2和
1 1-1
因此该第二群集被编码为:
C(1,5)+C5(1,2)+S-+S++C5(Exc)+S++S++S-
第一区域中的下一个(也是最后一个)非零群集处于位置代码R(2,1)处,并且该群集为10。该群集被编码为:
C(2,1)+C1(Exc)+S+
因此,整个第一区域被编码为:
C(0,7)+C7(0,3)+S++C7(3,2)+S-+S++S++S-+C7(Exc)+S++S-+C(1,5)+C5(1,2)+S-+S++C5(Exc)+S++S++S-+C(2,1)+C1(Exc)+S+
对于根据2-D非零/零群集VLC方法对标识出的事件进行联合编码,在一个版本中,每个标识出的事件只包括至多为预定数目的系数(这里被称为最大长度),因此具有最大长度的一些事件包括一个或多个连续的非零值系数的第一游程后面接着零个或多个零值系数或一个或多个连续零值 系数的第二游程,而不是后面接着一个零值系数。这使得能够将具有大于预定数目的系数的事件作为至多具有最大长度的多个事件进行编码,而不使用转义码。共同限定小于最大长度的零值系数的游程后面接着任何长度的非零值系数游程的两个或多个事件在这里被称为“广义事件”,因为为了某些目的,它被看作一个事件,所述目的例如包括利用所谓的软边界确立第一和第二区域。
注意发明人已经注意到对于较短的群集,例如n=2或3,基本多维幅度VLC方法可以很好的工作,而对于较长的群集,例如n>3,则优选上述多表格VLC方法。因此,本发明的一个实施例根据非零值系数群集的长度使用基本多维幅度VLC方法以及多表格VLC方法。
例如,在对于长度n≤3的群集使用基本多维幅度VLC方法,对于长度n>3的群集使用多表格幅度VLC方法,并且使用2-D非零/零群集VLC方法对长度为n的非零值系数群集的相对位置进行编码的情况下,针对群集和其位置的代码可以表示为:
如果n≤3则C(z,n)+An(m(1),m(2),…,m(n))+S(1)+S(2)+…+S(n),
否则如果n>3则C(z,n)+∑i{Cn(ji,ki)+Si(1)+…+Si(ji+1)}
表示该编码函数的另一种方式为:
αVR(z,n),An{R(z,n),m(1),…,m(n)}+
(1-α)VR(z,n),Cn{R(z,n),(j1,k1),(j2,k2),…}
其中对于较短的非零值系数的群集(例如n=1、2或3的值),α=1,并且对于n>3,α=0。
使用2-D非零/零群集VLC方法的代码和针对较短群集的多维幅度VLC方法的代码或者针对较长群集的多表格VLC方法的代码对第一(低频)区域值的非零值系数进行编码包括标识后面接着一个零值系数的非零系数的游程(群集)前面的零值系数的游程。该方法还包括利用针对至多为三个非零系数的群集的多维代码对非零幅度进行编码,并且对于任何n>3个连续非零系数的游程,标识连续的幅度为1的系数的游程后面接着一个幅度大于1的系数的事件。
作为示例,考虑对如下低频区域中的量化变换系数的序列进行编码, 排除dc系数,并且假设断点N=19:
3-1 1 1-2 1 1 0 0-1 2 1 0 1-1 0 0 0 1|0
其中|表示断点。
用|将后面接着一个零的非零群集前面的这种零游程分隔开,假设为软边界,则低频区域由以下区域构成:
|3-1 1 1-2 1 1 0|0-1 2 1 0|1-1 0|0 0 1 0
使用上述组合方法的代码为:
C(0,7)+C7(0,3)+S++C7(3,2)+S-+S++S++S-+C7(Exc)+S++S++
C(1,3),A3(1,2,1)+S-+S++S++C(0,2)+A2(1,1)+S++S-+C(2,1)+A1(1)+S+
注意对于具有7个非零系数的第一群集,使用多表格VLC方法对非零值系数进行编码,而对于其它非零值系数群集,因为群集的游程长度小于或等于3,所以使用基本多维幅度VLC方法对群集中的幅度进行编码。
当单独或者结合基本多维幅度VLC方法使用多表格幅度VLC方法时,如何确立断点在上面参考基本混合VLC方法和扩展混合VLC方法进行了描述。
因此,根据多表格幅度VLC方法的一个方法实施例,使用一个2-D位置代码表格来表示结束于一个零值系数的形成群集的零和形成群集的非零值系数的游程,如2-D非零/零群集VLC方法中所述,并且若干个相对较短的2-D幅度代码表格(表格的数目用“n”表示,表格的长度从1到n变化)被用于对n个非零值系数的群集内结束于大于1的幅度的每个幅度为1的系数的游程的事件进行编码。
发明人发现使用这种方法提供了与在基本混合VLC方法和2-D非零/零群集VLC方法中所提出的方法同样好或者更好的性能。它也可与基本多维幅度VLC方法相比,并且具有容易实现的优点。
联合位置和幅度VLC方法
基本混合VLC方法和2-D非零/零群集VLC方法中所描述的发明提出了各种可变长度编码技术来仅考虑形成群集的或分散的变换系数的位置。基本多维幅度VLC方法和多表格幅度VLC方法中所描述的发明提出了对群集的幅度进行编码的方法。有了这些方法,还需要一种变体,来将对变 换系数的位置和变换系数的幅度的编码组合在一起。
联合位置和幅度VLC方法发明的一个方面将用于对出现在非零值系数游程(群集)中的连续非零值系数的位置进行编码的编码方法与用于对群集中的非零值系数的幅度进行编码的编码方法组合起来,以产生用于对系列的第一区域(低频区域)中的图像数据变换的量化系数的有序系列进行编码的组合代码。这样的系列出现在很多种图像压缩方法中。
与这里其它编码方法的描述一样,本部分也就数字值的有序系列进行描述,所述数字值为图像数据块的量化变换系数,其中零值量化系数是最可能出现的,而值为±1的量化系数是其次最可能出现的值,本发明总地来说适用于数字信号的有序系列,每个数字信号的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限幅度集。
图31示出了混合可变长度编码(VLC)方法的一个实施例3100的流程图,该方法包括对非零值系数群集和零值系数游程的相对位置和长度,以及非零值系数游程中的幅度进行联合编码。
在2401中,如图24中所示,提供断点以沿着量化变换系数系列的排序限定第一(低频)区域和第二(高频)区域。
在3103中,标识出第一区域中的位置事件。位置事件用于提供非零值系数群集和插在中间的零值系数游程的相对位置和游程长度。在一个版本中,标识这些位置事件包括按照基本混合VLC方法和扩展混合VLC方法中所述的方式识别事件。当使用2-D非零/零群集VLC方法的思想时,利用后面接着一个零值系数的非零值系数群集之前的连续零值系数的任何游程的游程长度和非零值系数群集的游程长度来限定这些事件。
在3105中,标识第一区域中的幅度事件。当联合编码包括基本多维幅度VLC方法的思想时,幅度事件为非零值系数群集中的幅度。一个实施例还包括群集中非零系数的符号。当联合编码包括多表格幅度VLC方法的思想时,事件在每个群集内为任何幅度大于1的系数之前的连续的幅度为1的系数的游程的游程长度和结尾幅度的值。在一个实施例中,幅度事件包括非零值系数群集中非零系数的符号。
在3107中,对针对第一区域中的非零值系数和中间的零值系数的每 个群集的标识出的位置事件和幅度事件进行联合编码。假设位置事件使用2-D非零/零群集VLC方法中所描述的思想,用R(z,n)表示每个识别出的位置事件,该位置事件表示n个连续非零值系数的群集的前面是z个零值系数的游程,后面接着是一个零值系数,z=0,1,…,n=1,2,…。此外,假设按照基本多维幅度VLC方法中的方式进行联合幅度编码,用m(1),…,m(n)表示群集中的n个非零幅度。则根据一个实施例,代替独立地对位置和幅度进行编码并将结果串接为C(z,n)+An(m(1),…,m(n)),其中C(z,n)是针对R(z,n)的位置代码,并且An(m(1),…,m(n))是针对非零幅度的联合幅度代码,联合位置和幅度VLC方法发明的一个方面在于步骤3109利用位置事件和幅度事件的联合集成编码函数执行编码。即,对于在位置R(z,n)处的群集,
VR(z,n),An{R(z,n),m(1),…,m(n)}
其中,VR(z,n),An{ }是针对R(z,n)和幅度m(1),…,m(n)的组合的代码。在一个实施例中,VR(z,n),Cn{.}也是被串接的用于对非零系数群集中的非零值系数的符号进行编码的代码位的函数。
因此,为了对该区域进行编码,非零幅度系数群集的前面是零值系数游程并且后面接着一个零值系数的位置事件R(z,n)按照2-D非零/零群集VLC方法中的方式被识别,并且群集的幅度事件按照基本多维幅度VLC方法中的方式被标识。得到的位置和幅度事件被用于利用多维编码表格VR(z,n),An{R(z,n),m(1),…,m(n)}查找码字。使用假设的统计信息或者在自适应方法中使用测出的统计信息建立表格VR(z,n),An。当然,表格的维度相当大:比使用基本多维幅度VLC方法的维度多两维。
在3107的另一实施例中,多表格幅度VLC方法的幅度事件和2-D非零/零群集VLC方法的位置事件被一起使用来对群集的位置和幅度进行联合编码。在这个实施例中步骤3107的集成代码可以表示为:
VR(z,n),Cn{R(z,n),(j1,k1),(j2,k2),…}
其中VR(z,n),Cn{.}是针对2-D非零/零群集VLC方法中所限定的位置事件R(z,n)的联合代码,每个(ji,ki)是群集中识别出的第i个幅度事件,i至少为1,该第i个事件具有一个非零幅度(被表示为ki,ki大于1),其前 面有ji个连续的幅度为1的系数的游程,ji≥0,如多表格幅度VLC方法中所限定。在一个实施例中,幅度事件{(ji,ki)}与针对每个这种事件的符号代码相组合,因此VR(z,n),Cn{.}也是用于对非零值系数群集中的幅度事件的非零值系数的符号进行编码的代码位的函数。
在另一实施例中,利用一个联合编码在步骤3107中集成位置和幅度事件被扩展到使用根据至少一种位置编码方法的位置事件来在联合编码中包括位置编码并且使用根据至少一种幅度编码方法的幅度事件来在联合编码中包括位置编码。
在一个实施例中,作为示例,按照2-D非零/零群集VLC方法中的方式标识非零系数群集的位置事件,对于某些群集长度,使用基本多维幅度VLC方法中所用的幅度事件,并且对于其它群集长度,使用多表格幅度VLC方法中所用的幅度事件。得到的针对群集的联合代码可以用关于非零值系数群集的位置事件和幅度事件的编码函数来限定:
如果n≤3则VR(z,n),An{R(z,n),m(1),…,m(n)}
否则如果n>3,则VR(z,n),Cn{R(z,n),(j1,k1),j2,k2},…}
表示该编码函数的另一种方式为:
αVR(z,n),An{R(z,n),m(1),…,m(n)}+
(1-α)VR(z,n),Cn{R(z,n),(j1,k1),j2,k2},…}
其中对于较短的非零值系数的群集,例如n=1、2或3的值,α=1,并且对于n>3,α=0。使用这种组合代码是基于发明人观察到的现象,即在较小的维度/群集(例如n=3)之后,使用基本多维幅度VLC方法的性能开始逐渐变差,并且对于较大的群集,多表格幅度VLC方法的性能会改善。
当然,这种对每个群集的相对位置、游程长度和幅度的联合编码可能会导致非常复杂和庞大的编码表格。在实践中,发明人已经发现因为相对较低的非零幅度值(例如1和2)出现的可能性比相对较高的幅度值(例如3,4,5等)出现的可能性要大得多。因此,在实际实现中,用在联合编码函数中的针对非零系数群集的幅度值被限制为相对较低的幅度值,例如1和2。利用单独的位置和幅度代码对包含较高值(例如3,4,5,…)的群 集进行编码,例如在2-D非零/零群集VLC方法和基本多维幅度VLC方法的组合,或2-D非零/零群集VLC方法和多表格幅度VLC方法的组合,或两种方法的组合中所描述的。因为非零幅度值1和2比较高的幅度出现的可能性大得多,所以这样限制利用联合编码函数进行编码的幅度应该不会过多地影响这些方法的实质性能。
应当注意,在各种情况下,联合编码函数对于各种游程长度的非零值系数是不同的。
对比这里所描述的各种VLC代码的示例
现在对比使用传统的2D-VLC、基本混合VLC方法、2-D非零/零群集VLC方法结合传统的幅度编码、2-D非零/零群集VLC方法结合多维幅度VLC方法、2-D非零/零群集VLC方法结合多表格幅度VLC方法以及联合位置的幅度VLC方法进行编码的情况。
假设低频区域中的量化变换系数序列如下,排除DC系数,并且假设断点N=19:
3-1 1 1-2 1 1 0 0-1 2 1 0 1-1 0 0 0 1|0
其中|表示断点。
使用传统的2D-VLC进行编码
使用传统的2D-VLC进行编码包括标识在前的零值系数游程后面接着一个非零系数的事件。使用|分隔这样的事件,低频区域的构成如下:
|3|-1|1|1|-2|1|1|0 0-1|2|1|0 1|-1|0 0 0 1|
(C03+S+)+(C01+S-)+(C01+S+)+(C01+S+)+(C02+S-)+(C01+S+)+(C01+S+)+(C21+S-)+(C02+S+)+(C01+S+)+(C11+S+)+(C01+S-)+(C31+S+)
其中Czj表示针对z个在前的零值系数的游程长度(z=0,1,…)后面接着一个幅度为j的非零系数的事件的2D-VLC代码,并且其中S+和S-分别表示用于对正符号和负符号进行编码的代码。
使用基本混合VLC方法进行编码
在第一(低频)区域中使用基本混合VLC方法进行编码包括标识零值系数游程和交替的非零系数游程(群集)的事件。使用|分隔这样的事件,低频区域的构成如下:
|3-1 1 1-2 1 1|0 0|-1 2 1|0|1-1|0 0 0|1|
|C(7)+(A(3)+S+)+(A(1)+S-)+(A(1)+S+)+(A(1)+S+)+
(A(2)+S-)+(A(1)+S+)+(A(1)+S+)|+|C′(2)|+|C(3)+(A(1)+S-)+(A(2)+S+)+
(A(1)+S+)|+|C′(1)|+|C(2)+(A(1)+S+)+(A(1)+S-)|+|C′(3)|+
|(C1)+(A(1)+S+)|
其中C(n)和C′(z)表示码字,例如分别针对被表示为n的非零系数群集的游程长度和被表示为z的连续零值系数的游程长度的游程长度代码,并且Ai表示非零幅度的大小。
使用2-D非零/零群集VLC方法结合传统幅度编码进行编码
使用2-D非零/零群集VLC方法结合对第一(低频)区域中的非零值系数单独进行幅度编码的编码包括标识后面接着一个零值系数的非零系数游程(群集)之前为零值系数游程的事件。使用|分隔这样的事件,低频区域的构成如下,假设为软边界:
|3-1 1 1-2 1 1 0|0-1 2 1 0|1-1 0|0 0 1 0|
代码为:
|C(0,7)+(A(3)+S+)+(A(1)+S-)+(A(1)+S+)+(A(1)+S+)+(A(2)+S-)+
(A(1)+S+)+(A(1)+S+)|+|C(1,3)+(A(1)+S-)+(A(2)+S+)+(A(1)+S+)|+
|C(0,2)+(A(1)+S+)+(A(1)+S-)|+|C(2,1)+(A(1)+S+)|
其中C(z,n)表示针对2D非零/零群集的位置代码。
使用2-D非零/零群集VLC方法结合多维幅度VLC方法进行编码
使用2-D非零/零群集VLC方法结合多维幅度VLC方法对第一(低频)区域中的非零值系数群集的位置和幅度进行编码包括标识后面接着一个零值系数的非零系数游程(群集)之前为零值系数游程的事件。使用|分隔这样的事件,低频区域的构成如下,假设为软边界,该序列可以写作:
|3-1 1 1-2 1 1 0|0-1 2 1 0|1-1 0|0 0 1 0|
代码为:
|C(0,7)+A7(3,1,1,1,2,1,1)+S++S-+S++S++S-+S++S+)|+|C(1,3)+A3(1,2,1)+S-+S++S+|+|C(0,2)+A2(1,1)+S++S-)|+|C(2,1)+A1(1)+S+)|
其中An(.)是群集中n个连续非零幅度的幅度的n维函数。注意在实践 中,不可能使用七维代码A7,这里给出这样的代码只是为了说明的目的。
使用2-D非零/零群集VLC方法结合多表格幅度VLC方法进行编码
使用2-D非零/零群集VLC方法结合多表格幅度VLC方法对第一(低频)区域中的非零值系数群集的位置和幅度进行编码包括标识后面接着一个零值系数的非零系数游程(群集)之前为零值系数游程的事件,然后在n个连续非零系数的群集内,标识连续的幅度为1的系数的游程后面接着一个幅度大于1的系数的事件。使用|分隔这种后面接着一个零的非零群集之前的零群集,低频区域的构成如下,假设为软边界,该区域为:
|3-1 1 1-2 1 1 0|0-1 2 1 0|1-1 0|0 0 1 0|
代码为:
|C(0,7)+C7(0,3)+S++C7(3,2)+S-+S++S++S-+C7(Exc)+S++S+)|+|C(1,3)+
C3(1,2)+S-+S++C3(Exc)+S+|+|C(0,2)+C2(Exc)+S++S-|+
|C(2,1)+C1(Exc)+S+)|
其中,用Cn(j,k)表示在n个非零值系数的群集内针对值为k>1的系数之前的j个幅度为1的系数的游程的可变长度码字,并且Cn(Esc)表示n个非零值系数的群集内针对后面没有幅度大于1的系数的只有幅度为1的系数的游程的码字。
使用2-D非零/零群集VLC方法的代码和针对较短群集的多维幅度VLC方法的代码或者针对较长群集的多表格幅度VLC方法的代码进行编码
使用2-D非零/零群集VLC方法的代码和针对较短群集的多维幅度VLC方法的代码,或者针对较长群集的多表格幅度VLC方法的代码对第一(低频)区域中的非零值系数进行编码包括标识后面接着一个零值系数的非零系数游程(群集)之前的零值系数游程。该方法还包括利用针对至多为三个非零系数的群集的多维代码对非零幅度进行编码,并且对于任何的n>3个连续非零系数的群集,标识连续的幅度为1的系数的游程后面接着一个幅度大于1的系数的事件。使用|分隔这种后面接着一个零的非零群集之前的零游程,低频区域的构成如下,假设为软边界,该区域为:
|3-1 1 1-2 1 1 0|0-1 2 1 0|1-1 0|0 0 1 0|
该代码为:
C(0,7)+C7(0,3)+S++C7(3,2)+S-+S++S++S-+C7(Exc)+S++S+)+
C(1,3),A3(1,2,1)+S-+S++S+}+C(0,2)+A2(1,1)+S++S-+C(2,1)+A1(1)+S+
注意对于7个非零系数的第一群集,使用多表格VLC方法对非零值系数进行编码,而对于其它非零值系数群集,因为群集的长度小于或等于3,所以使用基本多维幅度VLC方法对群集中的幅度进行编码。
使用将2-D非零/零群集VLC方法的代码和多维幅度VLC方法的代码组合在一起的组合代码进行编码
使用对2-D非零/零群集VLC方法的位置事件和多维幅度VLC方法的幅度事件进行联合编码的组合代码对第一(低频)区域中的非零值系数进行编码包括标识后面接着一个零值系数的非零系数流程(群集)之前的零值系数游程,然后例如利用多维代码对位置事件和非零幅度进行联合编码。使用|分隔这种后面接着一个零的非零群集之前的零游程,低频区域的构成如下,假设为软边界,该区域为:
|3-1 1 1-2 1 1 0|0-1 2 1 0|1-1 0|0 0 1 0|
该代码为:
VR(z,n),A7{R(0,7),3,1,1,1,2,1,1}+S++S-+S++S++S-+S++S++
VR(z,n),A3{R(1,3),1,2,1}+S-+S++S++
VR(z,n),A2{R(0,2),1,1}+S++S-+VR(z,n),A2{R(2,1),1}+S+
其中联合代码不包括每个系数的符号,因此符号代码被单独包括。注意在实践中,不可能对七维的群集进行这样的联合编码-游程长度非常长,并且这里给出这样的代码只是为了说明的目的。
使用将2-D非零/零群集VLC方法的代码和多表格幅度VLC方法的代码组合在一起的组合代码进行编码
使用将2-D非零/零群集VLC方法的位置事件和多表格幅度VLC方法的幅度事件组合在一起的组合代码对第一(低频)区域中的非零值系数群集的位置和幅度进行联合编码包括标识后面接着一个零值系数的非零系数游程(群集)之前的零值系数游程,然后在n个连续非零系数的群集内,标识连续的幅度为1的系数的游程后面接着一个幅度大于1的系数的事件。使用|分隔这种后面接着一个零的非零群集之前的零游程,低频区域的构成如下,假设为软边界,该区域为:
|3-1 1 1-2 1 1 0|0-1 2 1 0|1-1 0|0 0 1 0|
代码为:
VR(z,n),C7{R(0,7),(0,3),(3,2),Exc}+S++S-+S++S++S-+S++S++
VR(z,n),C3{R(1,3),(1,2),Exc}+S-+S++S++
VR(z,n),C2{R(0,2),Exc}+S++S-+VR(z,n),C1{R(2,1),Exc}+S+
其中符号还是被单独编码。
应当注意以上使用基本多维幅度VLC方法的示例只是为了说明的目的。在实践中,为了实际的实现,形成群集的幅度的维度数必须限制为较小的数,例如1、2和3。
使用将2-D非零/零群集VLC方法的代码与针对较短群集的多维幅度VLC方法的代码和针对较长群集的多表格幅度VLC方法的代码组合在一起的组合代码进行编码
使用将2-D非零/零群集VLC方法的位置事件标识与针对较短群集的多维幅度VLC方法的幅度事件,和针对较长群集的多表格幅度VLC方法的幅度事件组合在一起的组合代码对第一(低频)区域中的非零值系数群集的相对位置和非零幅度进行联合编码包括标识后面接着一个零值系数的非零系数游程(群集)之前的零值系数游程。该方法还包括利用针对具有最多不超过三个非零系数的群集的多维代码对相对位置和非零幅度进行编码,并且对于每个n>3个连续的非零系数的群集,标识连续的幅度为1的系数的游程后面接着一个幅度大于1的系数的事件,然后对位置事件和标识出的幅度事件进行联合编码。使用|分隔这种后面接着一个零的非零群集之前的零游程,低频区域的构成如下,假设为软边界,该区域为:
|3-1 1 1-2 1 1 0|0-1 2 1 0|1-1 0|0 0 1 0
该代码为:
VR(z,n),C7{R(0,7),(0,3),(3,2),Exc}+S++S-+S++S++S-+S++S++
VR(z,n),A3{R(1,3),1,2,1}+S-+S++S++
VR(z,n),A2{R(0,2),1,1}+S++S-+VR(z,n),A2{R(2,1),1}+S+
其中符号仍被单独编码。
注意对于7个非零系数的第一群集,使用多表格幅度VLC方法的幅度事件标识,然后使用关于位置事件和幅度事件的联合编码函数,而对于 其他非零值系数的群集,因为群集的游程长度小于或等于3,所以对群集使用基本多维幅度VLC方法的事件标识,并且使用关于位置和幅度事件的联合编码函数来获得完整的码字。
在实际实现中,发明人注意到可以对非零幅度的群集限定最大长度。这种对最大长度的利用在2-D非零/零群集VLC方法中进行了限定。
此外,在实践中,发明人发现因为相对较低的非零幅度值(例如1和2)比较高的幅度值(例如3、4和5等)出现的可能性大得多,并且因为当存在很多可能的幅度值时,联合编码表格会变得很复杂,所以实际的实现方式将用在联合编码函数中使用的非零系数群集的幅度值限制为相对较低的幅度值(例如1和2)。然后,利用单独的位置和幅度代码对较高的值(例如3,4,5,…)进行编码,例如在2-D非零/零群集VLC方法和基本多维幅度VLC方法的组合,或2-D非零/零群集VLC方法和多表格幅度VLC方法的组合中所描述的。因为非零幅度值1和2比较高的幅度出现的可能性大得多,所以这样限制利用联合编码函数进行编码的幅度应该不会过多地影响这些方法的实质性能。
如何确立断点在上面参考基本混合VLC方法和扩展混合VLC方法进行了描述。
用于混合可变长度编码的自适应断点方法
在上述每个混合编码方法中,在两个区域(例如低频区域和高频区域)的情况下,断点被限定为低频和高频区域之间的边界。编码中所使用的变换的频谱内的最佳断点根据不同的块和不同的图像而变化。如上所述,通过进行收集关于一组典型块系数的统计信息的实验来预先确定典型的断点,可以使用预定的断点。通常,对于高分辨率或高质量静止图像编码和低分辨率或低质量静止图像编码;帧内编码和帧间编码;高比特率编码方法和低比特率编码方法;基于DCT的变换编码方法和非DCT变换编码方法等,确定不同的断点。
虽然预先确定的断点可以提供令人满意的编码性能,但是它决不是最佳的。各种实验的结果表明可以通过使用最佳断点来进一步提高混合编码器的性能。这种改进效果可能是使用预先确定的断点所获得的改进效果的 25%。
因而,本领域中还需要一种确定最佳或接近最佳的断点的方法,来为根据上面提到的混合编码中的一种方法的混合编码限定第一(低频)区域和第二(高频)区域。
这里给出了一种方法、设备和承载介质,用以沿着图像数据块的量化系数的有序系列的排序的路径找到用N0表示的断点,来标识第一(例如低频)区域和第二(例如高频)区域。
参考图24中所示的混合方法2400的流程图,自适应断点方法发明处理确立断点的框2401。与描述这里所有方法的过程一样,在本部分的描述中,就变换系数来描述自适应断点方法,本发明总地涉及对数字信号的有序系列进行编码,所述每个数字信号的幅度取自于有限的幅度值集合。每个信号也可以具有符号,即可以是正或者负。幅度值集合包括一个最可能出现的幅度和至少一个其它幅度。这里所讨论的应用针对信号的有序系列,该有序系列是通过诸如DCT或某些其它常见变换的变换之后,再被量化成有限个值并且沿着预定路径(例如Z字形路径)排序之后得到的图像数据块的量化系数值的有序集合。该系列的排序通常是按照空间频率递增的顺序。最可能出现的值(例如最频繁出现的值)通常为0,并且在某些情况下为1。
这里将针对以下情况描述实施例:每个图像被分成8×8的块,然后每个块在经过运动补偿和帧间减法之后(对于经帧间运动补偿编码的情况)或者直接地(对于独立的帧或静止帧的情况)被通过DCT进行变换。这里所描述的方法、承载介质和设备不局限于这种大小的块或者DCT。也可以使用其它大小的块或其它变换。
这里所描述的方法描述确定依赖于图像的断点。当使用依赖于图像的断点时,如上所述,指示断点的代码与每一组编码后的系数或图像一起被发送到解码器。对于视频序列中的各个视频帧,可以使用相同的方法。
一种寻找最佳断点N0的方法是对于8×8的块变换对图像进行63次编码,以尝试不同的断点,即尝试N0=1,2,…,63。通过比较所得到的针对块的码字的长度来提供最佳的N0,以及针对这个最佳N0的码字。这种方法 可能是非常耗时的,因而可能不总是实用的。N0=63的情况意味着第二区域是空区域,因此只有一个非空区域(第一区域)要应用VLC编码方法,并且该编码方法为第一区域编码方法。类似地,N0=0的情况意味着第二区域是空区域,因此只有一个非空区域(第一区域)要应用VLC编码方法,并且该编码方法为第二区域编码方法。
自适应断点方法发明提供了一种更实用的方法,用于利用一组图像数据块系数的统计信息寻找接近最佳的断点。所述接近最佳的断点被用于混合编码方法。
在对作为断点N0和变换块内的群集系数的统计信息的函数的混合编码器的性能进行了彻底的检查之后,我们这里描述一种快速确定接近最佳的断点N0的方法。该快速方法包括首先找到限定形成群集的系数比孤立的分散系数多的区域的边界。一旦确定了这样的区域,该方法的下一部分包括确定所确定区域内的最佳断点N0。我们发现这样就确定了接近最佳的断点N0的值。
找到限定形成群集的区域的边界,然后将对最佳断点的搜索限制在这个区域中可以相当大程度地减少搜索接近最佳的断点的时间。对于被进行了有效的运动补偿的帧间视频图像或高度压缩的静止图像,形成群集的区域的这种边界可以低至0到2。在这种情况下,寻找接近最佳的断点可以被简化为针对相对较少量的可能情况来比较对3或4个系数的系列的编码,而不是针对大量的可能的N0值来对所有的63个系数进行编码。断点为0的情况意味着第一区域为空区域,并且有一个非空区域应用VLC编码方法,在这种情况下是“第二区域”编码方法。
一系列实验表明利用本发明的实施例确定的接近最佳的断点总能使混合编码器的性能保持在使用真正的最佳断点(通过穷举式搜索而得到)时的性能的误差0.2%以内。
图32示出了确定接近最佳的断点的一个方法实施例3200的流程图。3203开始于每个图像块(例如每个8×8图像块)的有序量化变换系数的系列,通过沿着预定的例如Z字形的路径穿越变换后的量化图像块来得到排序。例如,对于具有亮度成分和两种色彩成分的704×480象素的彩色 图像,存在64个有序的量化变换系数阵列的5280×3=15840个系列。忽略DC系数,每个系列具有63个系数。
对于所有63个系数的组,获得关于群集是否存在于特定频率的每个频率的统计信息。为此,在3205中,设置一组63个计数器,一个计数器针对一个频率,例如阵列长度为63,每个阵列位置(location)对应于特定频率处的计数值。例如,所述设置可以用C代码写作:int counter[63],其中counter[5]表示在Z字形路径的位置6处的群集数目的计数器,其中位置0为第一AC成分。
在3207中,对系数系列组中每个频率位置处的群集中的非零值系数的数目进行计数。为此,每个非零值系数被同样对待。对于每个位置,如果遇到群集中的非零系数,则该位置的计数值加1。在一个实施例中,根据其后面位置的系数是否非零来确定特定的非零系数位置是否在群集中。因而,其同一系数系列中的下一个系数是零值系数的一个非零系数不在群集中。假设例如对于特定的系数系列,位置4和5均包含非零系数,而位置6为零值。则位置4的系数被认为在群集中,并且对于这个位置4,位置4处的计数值加1,而位置5的系数不被看作是在群集中。又如,假设对于特定系列,位置4、5和6均包含非零系数,而位置7具有零值系数。则位置4的系数被认为在群集中,因为其后的系数是非零,并且针对这个位置4,位置4处的计数值加1。类似地,位置5的系数被确定为在群集中,并且位置5处的计数值加1。但是,位置6的非零值不被认为是在群集中,因为位置7处的下一个系数是零值系数。
按照这种方式,对于构成整个图像的整个系列组,重复执行步骤3207,例如对于具有亮度成分和两种色彩成分的704×480象素的彩色图像的15840个具有63个非DC量化变换系数的系列重复执行步骤3207。
步骤3209将阈值选择在具有低于最大计数值的预先选择的比例的第一计数值的位置处。在一个实施例中,预先选择的比例是1/频率数。对于8×8的块的实施例的特定版本,该比例为1/63。所以对于704×480的三种色彩成分的彩色图像,开始于低于15840/63的最低频率位置处的计数值的第一计数值,即小于或等于251的第一计数值的位置被用作断点的最大 值的阈值。
这就相当于将每个计数值除以系列的总数再乘以系列中非零频率的数目(例如对于8×8的块该数目为63),再与1进行比较。小于1的第一计数器的位置被设置为寻找接近最佳的断点的阈值。
在3211中,对于从2到3209中所确定的阈值的频率位置,具有最大的计数值斜率的位置被设置为接近最佳的断点。将计数器表示为counter[i],对于i=1到63,斜率被确定为:
slope[i]=-(counter[i]-counter[i-1])/counter[i],i=2,…,63
具有最大斜率幅度的位置i被设置为接近最佳的断点的值N0。
注意可以有变体。在一种变体中,阈值位置被确定,这个阈值是沿着系列的其中图像中具有处在群集中的系数的块的相对数目第一次小于总块数的预先选择的比例的位置。然后,在直到阈值的子集内执行对最佳断点的搜索。在一个版本中,通过比较用于对图像或图像的色彩进行编码的实际代码长度来进行搜索。在另一版本中,如上所述,其中具有最大系数的块的数目的斜率具有最大值的位置。在另一版本中,确定具有处在群集中的系数的块的相对数目出现最大幅度下降的位置。即接近最佳的断点被确定为位置i,使得确定(counter[i]-counter[i-1])/maxcount为最大值。
在另一变体中,执行搜索的范围达到非DC系数的最大数目的预先选择的比例。在一种这样的版本中,阈值被预先定义为max_location/3,其中max_location表示非DC系数的数目,例如对于8×8的块,该数目为63。在另一这样的版本中,阈值被预先限定为max_location/2。然后仅在直到阈值的范围内搜索接近最佳的断点。
在另一实施例中,在彩色帧的情况下,如果色彩信息与强度(亮度)信息被编码的分辨率不同,则为色彩信息和亮度信息确立不同的断点。例如,对于具有亮度成分的704×480象素的彩色图像,两种色彩成分可以作为352×480个象素的图像被编码。在这种情况下,对于8×8的块,存在5280个亮度块,并且基于这些块确立亮度图像的断点。基于2×2640=5280个色度块确立可能不同的色度图像断点来对每个色度图像进行编码。
还要注意虽然自适应断点方法的描述是按照断点限定了其中可能出现非零值群集的第一区域和其中非零系数可能分散的第二区域的形式,但是一旦确立了第一和第二区域,每个这样的区域可以再被分成多个区域,因此整体排序可能最终被分成了两个以上的区域。
解码
本发明的另一方面是一种对比特流进行解码以形成图像数据块的变换的量化系数系列的方法,所述变换使得0为最可能的系数幅度,并且1为其次最可能的系数幅度。该比特流被利用混合编码方法进行编码,所述混合编码方法例如包括上述版本中的任何一种。一种这样的编码方法例如包括,对于系列中的第一连续区域,标识每个包括一个或多个具有任何非零幅度的连续系数的游程。对于每个标识出的游程,编码方法包括对所述游程和任何插在中间的连续零值系数的相对位置进行编码,并且对于每个标识出的游程,标识至少一个连续系数的事件,标识出的事件包括结束于幅度大于1的系数的至少一个连续的幅度为1的系数的序列,或者只包括幅度大于1的系数,或者只包括连续的幅度为1的系数的序列。每个标识出的针对标识出的游程的游程长度的事件由至少一个连续的幅度为1的系数的序列的长度和结尾系数的幅度来限定。该编码方法还包括利用至少一个码字对每个标识出的事件进行编码,使得对于至少一些标识出的事件,相比出现可能性相对较小的事件,利用较短的码字对出现可能性相对较大的事件进行编码。
解码方法包括识别码字,确定识别出的码字所代表的事件;并且确定每个确定出的事件的系数子系列,直到系列中所有的系数都被确定为止。
本发明的另一方面是用于对利用这里所描述的任何方法编码的比特流进行解码的设备。作为示例,图8示出了用于对利用扩展混合VLC方法(如上所述,该方法利用了五个编码表格)编码的一组码字进行解码的设备的一个实施例。码字识别器802接收比特流中的比特,并且识别各自代表一个事件的一组可能的码字中的码字。码字识别器确定码字来自于五个编码表格中的哪一个。解码器804被耦合到码字识别器802,并且确定针对码字识别器所识别的码字的数据,例如非零的游程长度、零的游程长度、符号等。在一个实施例中,解码器804包括查找存储在存储器806中的合适的解码表格的查找设备。所述表格提供针对码字组中至少一些码字的事件。其它码字可以包括转义码,因此利用不同于表格查找方法的方法进行解码。在一个实施例中,比特流被存储在缓冲器808中,缓冲器808的输出被耦合到码字识别器。
虽然在图8中所示的实施例中,存储器被示为与查找设备相分离,但是本领域的技术人员应当理解在其它实施例中,查找设备可以包括存储表格的存储器,并且这里包括这种其它的实施例。
还要注意在图8中,码字识别器和查找设备可以作为存储在存储器(例如存储器806)中的一组指令来分别在计算机上实现,所述指令指示一个或多个处理器执行识别和查找操作。
本发明的另一方面在于一种存储解码数据结构的存储器(例如图8中的存储器806),所述数据结构提供针对在压缩图像数据的比特流中识别出的任何一组码字的数据。通过这里描述的新的编码方法中的任何一种来对比特流进行编码。在一个实施例中,该数据结构采取一个或多个表格的形式。
包括处理器的编码和解码设备
本发明的另一方面是一种用于利用包括处理系统的设备对数字信号系列进行编码的设备,所述数字信号系列例如是变换后的图像数据块的量化系数的有序系列。图9示出了包括处理系统902的设备900,处理系统902包括一个或多个处理器904和存储器906。图9中示出了一个处理器,本领域的技术人员应当理解这可以代表若干个处理器。类似地,示出了一个存储器子系统906,本领域的技术人员应当理解该存储器子系统可以包括不同的元件,例如RAM、ROM等。另外,存储器子系统意图包括任何非易失性存储设备,例如磁或光存储组件。计算机程序908被包括并载入存储器906中。注意在任何时候,程序的一些部分都可以位于存储器子系统的不同部分,本领域技术人员应当理解这一点。程序908包括指示处理器按照不同的版本实现不同的混合编码方法的指令,所述混合编码方法包括处理器接收作为数据的有序系数,沿着系数的排序确定断点来限定第一和第二区域,并且分别根据第一区域编码方法和第二区域编码方法确定和 生成针对第一和第二区域照的系数的码字。确定断点例如可以根据自适应断点方法发明的一个或多个方面。设备900还包括存储器子系统906中的编码数据结构910,其为这里所述的任何混合VLC方法中所描述的第一和第二区域编码方法中的任何一种方法中所描述的一个或多个系数的组提供码字。在一个实施例中,该数据结构采取一个或多个表格的形式,例如采取针对位置代码、幅度代码以及位置代码和幅度代码的联合编码函数的编码表格的形式。
本发明的另一方面在于一种存储编码数据结构的存储器(例如图9中的存储器906),所述数据结构按照这里所述的任何一种新的编码方法的描述为一个或多个系数的组提供码字。在一个实施例中,该数据结构是一个或多个表格的形式。
另一设备实施例被显示为图10中包括处理系统1002的解码设备1000,处理系统1002包括一个或多个处理器1004和存储器1006。图10中示出了一个处理器,本领域的技术人员应当理解这可以代表若干个处理器。类似地,示出了一个存储器子系统1006,本领域的技术人员应当理解该存储器子系统可以包括不同的元件,例如RAM、ROM等。另外,存储器子系统意图包括任何非易失性存储设备,例如磁或光存储组件。计算机程序1008被包括并载入存储器1006中。注意在任何时候,程序的一些部分都可以位于存储器子系统的不同部分,本领域技术人员应当理解这一点。程序1008包括指示处理器按照不同的版本实现上述不同的混合编码方法的指令。从而,处理器接收通过上述任何编码方法产生的码字作为数据,并且生成量化变换系数系列。设备1000还包括存储器子系统1006中的编码数据结构1010,其为这里所述的任何新的编码方法中所描述的不同码字提供一个或多个系数的事件。在一个实施例中,该数据结构采取一个或多个表格的形式。
注意图9和图10都没有示出可以被包括的诸如总线结构、I/O结构等之类的细节,因为本领域技术人员应当知道需要这样的结构并且包括上述细节只会模糊设备的独创性方面。此外,可以利用一个或多个通用的微处理器、包括若干存储器和其它元件的一个或多个微控制器、一个或多个 DSP设备或者任何其它的可编程处理器实现处理系统。此外,处理器可以是单机设备,或者可以实现为包括在ASIC、门阵列或其它设备中的“内核”。
本发明的另一方面在于一种存储编码数据结构的存储器(例如图7中的存储器706或图9中的存储器906),所述数据结构按照这里所述的任何一种新的编码方法的描述为一个或多个系数的组提供码字。在一个实施例中,该数据结构是一个或多个表格的形式。
本发明的另一方面在于一种存储解码数据结构的存储器(例如图8中的存储器806或图10中的存储器1006),所述数据结构为在压缩图像数据的比特流中识别出的任何一组码字提供数据。所述比特流被利用这里所述的任何一种新的编码方法进行编码。在一个实施例中,该数据结构是一个或多个表格的形式。
这样,已经描述了适合于对出现在常见的图像压缩方法中的图像块的量化变换系数进行编码的混合可变长度编码方法、实现这种编码的设备以及承载指示一个或多个处理器执行混合可变长度编码方法的指令的承载介质。不同的版本使用适合于不同区域的不同编码方法。
此外,描述了适合于对利用混合编码方法获得的码字进行解码的解码方法、实现这种解码的设备以及承载指示一个或多个处理器执行解码方法的指令的承载介质。
此外,描述了适合于确定断点以限定出现在常见的图像压缩方法中的图像块的量化变换系数的有序系列中的第一和第二区域以便可以利用第一区域编码方法对第一区域中的系数进行编码并且可以利用第二区域编码方法对第二区域中的系数进行编码的断点确定方法和确定断点的设备,以及承载指示一个或多个处理器执行所述方法的指令的承载介质。
基本混合VLC方法和扩展混合VLC方法的一个实施例使用五个独立的表格:用于第一和第二游程长度编码方法的两个游程长度代码表格,用在第一区域中的第一幅度编码表格,用于第三游程长度编码方法的另一游程长度代码表格以及用在第二区域中的第二幅度代码表格。
这里所描述的方法在一个实施例中是可以用处理系统(机器)实现 的,所述处理系统包括接收包含指令的代码段的一个或多个处理器。对于这里所述的任何方法,当所述机器执行指令时,该机器执行所述方法。包括能够执行指定所述机器要执行的动作的一组指令(顺序的或者其它形式)的任何机器。因此,一个典型的机器的示例为包括一个或多个处理器的典型的处理系统。每个处理器可以包括CPU、图形处理单元和可编程DSP单元中的一个或多个。处理系统还可以包括包含主RAM和/或静态RAM和/或ROM的存储器子系统。可以包括总线子系统用于组件之间的通信。如果处理系统需要显示器,还可以包括显示器,例如液晶显示器(LCD)或阴极射线管(CRT)显示器。如果需要手动数据输入,则处理系统还可以包括输入设备,例如一个或多个字母数字输入单元(例如键盘)、定点控制设备(例如鼠标)等。这里所使用的术语存储单元还包括诸如盘驱动单元之类的存储系统。某些配置中的处理系统可以包括声音输出设备和网络接口设备。存储器子系统从而包括承载机器可读的代码段(例如软件)的承载介质,所述代码段包括用于在由处理系统执行时实现这里所述的一种或多种方法的指令。软件可以置于硬盘中,或者也可以在计算机系统执行期间完全或至少部分地置于RAM和/或处理器内。因而,存储器和处理器也包括承载机器可读代码的承载介质。
在替代实施例中,机器可以作为单机设备工作或者可以被连接(例如联网)到其它机器,在联网布置中,机器可以充当服务器-客户端网络环境中的服务器或客户端机器,或者对等或分布式网络环境中的对等机器。该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、网络路由器、开关或网桥或者能够执行指定所述机器要执行的动作的一组指令(顺序的或者其它形式)的任何机器。
注意虽然某些图只示出了承载代码的一个处理器和一个存储器,但是本领域技术人员应当理解上述很多组件都可以被包括,但没有被明显的示出或描述是为了模糊本发明的主题。例如,虽然只示出了一个机器,但是术语“机器”应当被认为包括单独或联合执行一组(或多组)指令来实现这里所讨论的任何一种或多种方法的机器的集合。
这里所描述的各种方法的一个实施例采取在处理系统上执行的计算机程序的形式,所述处理系统在适当时例如是作为图像编码器或解码器的一部分的一个或多个处理器。因此,本领域技术人员应当理解,本发明的实施例可以被实现为一种方法、诸如专用设备之类的设备、诸如数据处理系统之类的设备或者承载介质(例如计算机程序产品)。承载介质承载用于控制(指示)处理系统实现方法的一个或多个计算机可读代码段。因此,本发明的方面可以采取方法、全部为硬件的实施例、全部为软件的实施例或者组合了软件和硬件方面的实施例的形式。此外,本发明可以采取承载包括在介质中的计算机可读程序代码段的承载介质(例如计算机可读存储介质上的计算机程序产品)的形式。可以使用的合适的计算机可读介质包括诸如磁盘或硬盘之类的磁存储设备,或者诸如CD-ROM之类的光存储设备。
软件还可以经由网络接口设备在网络上发送或接收。虽然在示例性实施例中承载介质被显示为一个承载介质,但是术语“承载介质”应当被认为包括存储一组或多组指令的一个介质或多个介质(例如集中式或分布式数据库,和/或相关的缓存和服务器)。术语“承载介质”还应当被认为包括能够存储、编码或承载一组由机器执行并且使机器实现本发明的一种或多种方法的指令的任何介质。承载介质可以采取多种形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘、磁盘和磁光盘。易失性介质包括动态存储器,例如主存储器。传输介质包括同轴电缆、铜线和光纤,包括包含总线子系统的线。传输介质还可以采取声波或光波的形式,例如那些在无线电波和红外数据通信中产生的介质。例如,术语“承载介质”应当相应地被认为包括但不限于固态存储器、光介质和磁介质,以及载波信号。
应当理解在一个实施例中利用执行存储在存储设备中的指令(代码段)的处理(即计算机)系统的合适的一个或多个处理器来实现所讨论的方法步骤。还应当理解本发明不局限于任何特定的实现方式或编程技术,并且可以利用用于实现这里所描述的功能的任何合适的技术来实现本发明。本发明不局限于任何特定的编程语言或操作系统。
在本说明书中提到“一个实施例”或“实施例”意味着结合实施例所描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在本说明书中各个地方出现“在一个实施例中”或“在实施例中”不一定全都指相同的实施例。此外,本领域的技术人员应当清楚,这些特定特征、结构或特性在一个或多个实施例中可以按照任何合适的方式进行组合。
类似地,应当理解在上面对本发明的示例性实施例的描述中,本发明的各种特征常常被归组在一个实施例、实施例的图及其描述中,以实现简化本发明的公开和帮助理解各个创造性方面的目的。但是,这种公开方式不能被解释为所要求保护的发明需要比每个权利要求中所清楚描述的特征更多的特征。相反,如所附的权利要求所示,创造性方面的特征可以少于单个前面公开的实施例中的所有特征。因而,附在本详细说明书之后的权利要求也清楚地包含在本详细说明书中,每个权利要求自身可以作为本发明的一个实施例。
此外,本领域技术人员应当理解,虽然这里所描述的一些实施例包括了包括在其它实施例中的一些相同的特征,但是不同实施例的特征的组合也在本发明的范围内,并且形成不同的实施例。例如,在所附的权利要求中,可以按照任何组合来使用任何要求保护的实施例。
此外,一些实施例在这里被描述为可以由计算机系统的处理器或执行功能的其他装置实现的一种方法或一种方法的要素的组合。因此,带有执行这样的方法或这样的方法的要素所必要的指令的处理器构成了用于执行所述方法或方法的要素的装置。此外,这里所描述的设备实施例的要素是用于执行用于实现本发明的要素所执行的功能的装置的示例。
还应当理解,虽然本发明是在对图像的变换编码的上下文中进行描述的,但是本发明不局限于这样的上下文,并且可以用在各种其他压缩应用和系统中。此外,本发明不局限于任何类型的结构或任何类型的变换编码。例如,上面提到的DCT是一种变换。可以使用其它变换,例如新的H.264/MEG-4 AVC视频编码标准/草案标准限定了4×4的块和类似DCT的4×4整数变换。本发明不依赖于任何特定类型的帧间编码(如果使用 的话),或者运动补偿(如果用于帧间编码的话),或者任何内估计(如果用于使用来自相邻块的信息估计块的像素的话)。
注意可变长度编码有时被称为熵编码或统计编码。
注意术语编码(coding)和编码(encoding)在这里可以互换着使用。
还要注意虽然以上实施例包括针对符号的单独的符号位,但是符号可以合并到任何幅度编码方法中。
注意在上面用于幅度编码的一些示例中,假设系数有63个或127个可能的非零值,但是本发明不局限于任何数目的可能的量化值。
还要注意术语幅度与符号无关。因此,例如值为+1和-1的系数的幅度都为1。
在上述的一些实施例中,不包括符号数据。大部分变换产生正系数和负系数,并且码字的形成包括对非零值系数的符号的指示。在一个版本中,任何区域中的任何非零幅度游程的符号信息被与每个幅度的信息加到一起。在替代实施例中,针对任何区域的任何非零幅度游程的符号信息可以按照不同的形式被包括,例如作为符号系列的代码。也可以利用其他替代实施例对符号进行编码。
在上述实施例中,码字的形成包括对非零值系数的符号的指示。在一个版本中,第一区域中的任何非零幅度游程的符号信息被与每个幅度的信息加在一起。在替代实施例中,针对第一区域的任何非零幅度游程的符号信息可以按照不同的形式被包括,例如作为符号系列的代码。也可以利用其他替代实施例对符号进行编码。
虽然这里所描述的一个实施例包括存储编码表格的存储器,但是其他实施例以不同于表格的数据结构(例如包括树的结构)的形式存储编码信息。也可以使用其他数据结构。类似地,虽然这里所描述的一个实施例包括存储包括存储解码表格的存储器,但是其他实施例以不同于用于解码的表格的数据结构的形式存储编码信息。
还要注意本发明不依赖于用于任何编码方法的任何特定类型的VLC,例如编码表格,并且例如利用哈夫曼编码和算术编码方法都能工作。此外,虽然描述了基于假设的或先验的事件(也被称为符号)的出现似然 (即事件出现似然不变)对事件使用固定编码的实施例,但是其他实施例使用了自适应编码,即编码可以根据诸如从实际系数中收集的直方图之类的统计数据进行变化。
这里引用的所有出版物、专利和专利申请都通过引用结合于此。
在下面的权利要求书和这里的说明书中,术语“包括(comprising)”或“包括(comprised of)”或“其包括(whichcomprises)”是“开放”术语,其意思是至少包括后面的要素/特征,但是不排除其他要素/特征。这里所用的术语“包括(including)”或“其包括(which includes)”或“其包括(that includes)”也是“开放”术语,其意思也是至少包括该术语后面的要素/特征,但是不排除其他要素/特征。因此,包括(including)与包括(comprising)同义。
因此,虽然描述了被认为是本发明的优选实施例的实施例,但是本领域技术人员应当明白在不脱离本发明的精神的情况下可以进行其他的修改,并且意图要求保护落在本发明的范围内的所有这样的改变和修改。例如,上面给出的式子仅代表可能用到的步骤。可以从框图中添加或删减一些功能,并且在功能块之间可以互换操作。在本发明的范围内,可以为所述的方法添加或删减步骤。
Claims (310)
1.一种用于处理数字信号的有序系列的方法,所述数字信号中每一个的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限的幅度集,所述处理用以减少用于表示所述数字信号的数据量并且形成码字,使得出现的可能性较大的数字信号值或数字信号值的序列由相对较短的码字表示,并且出现的可能性较小的数字信号值或数字信号值的序列由相对较长的码字表示,所述方法包括:
沿着所述系列的排序确立至少一个断点以将所述系列分成多个邻接区域,所述至少一个断点的确立是根据这多个邻接区域中的每个区域中所述数字信号的幅度分布来执行的,每个区域具有相应的编码过程,所述编码过程包括识别事件以及形成针对所述系列的码字,其中形成针对所述系列的码字包括形成针对识别出的事件的码字;并且对于所述系列的每个区域,应用与该区域相对应的编码过程来形成所述系列的一组码字,
使得形成相对较短的码字来表示出现可能性相对较大的值或值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值或值的序列,
其中确立至少一个断点的步骤沿着所述系列的排序确立一断点以限定第一区域和第二区域,使得具有不等于最可能出现的值的任何值的连续信号的群集大部分出现在所述第一区域中,其中所述第一区域和第二区域中的每一个是连续区域,并且
其中对于所述系列的每个区域应用与该区域相对应的编码过程的步骤包括:
利用包括识别事件和对识别出的事件进行编码的第一区域编码方法对所述第一区域中的信号进行编码,所述第一区域编码方法是针对对具有不等于最可能出现的值的任何值的连续信号的群集进行编码而选择的;并且
利用第二区域编码方法对所述第二区域中的信号进行编码,
其中所述第一区域编码方法和第二区域编码方法包括可变长度代码,使得形成相对较短的码字来表示出现可能性相对较大的值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值的序列。
2.如权利要求1所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1。
3.如权利要求1所述的方法,还包括:
将图像分成图像数据块;并且
对于每个图像数据块:
变换所述块以形成针对所述块的变换系数,所述变换形成变换后的图像数据块,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1;
量化所述块的变换系数;
沿着二维路径对所述块的量化系数排序以形成所述变换后的图像数据块的量化系数的有序系列,所述量化系数的有序系列为所述数字信号的有序系列;
执行所述确立至少一个断点的步骤,以及对于所述系列的每个区域应用与该区域相对应的编码过程以形成所述系列的一组码字的步骤。
4.如权利要求1中所述的方法,
其中,在所述第一区域编码方法中:
所述事件的识别包括识别第一种事件,每个所述第一种事件是出现在所述第一区域中的其值不等于最可能出现的值的连续信号的游程;
所述形成针对识别出的事件的码字包括形成针对所述第一种事件的码字,包括利用第一游程长度编码方法对所述连续信号的游程长度进行编码,并且形成利用所述第一游程长度编码方法对所述游程长度进行编码并且还对所述游程中的每个信号的幅度和符号进行编码的码字;
所述事件的识别还包括识别第二种事件,每个所述第二种事件是出现在所述第一区域中的具有最可能出现的值的连续信号的游程;以及
所述形成针对识别出的事件的码字包括形成针对所述第二种事件的码字,包括利用第二游程长度编码方法对具有最可能出现的值的连续信号的游程长度进行编码,
其中所述第二区域编码方法包括标识包括所述第二区域中具有最可能出现的值的连续信号的游程的第三种事件,并且利用第三编码方法对所述第二区域中的标识出的第三种事件进行编码,并且
其中所述第三编码方法包括可变长度代码,使得形成相对较短的码字来表示出现可能性相对较大的值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值的序列。
5.如权利要求4所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1。
6.如权利要求5中所述的方法,
其中所述第三编码方法包括利用第三可变长度游程长度编码方法对连续零值系数的游程长度进行编码,并且对所述第二区域中的非零值系数的幅度和符号进行编码。
7.如权利要求5所述的方法,
其中所述第三编码方法包括针对零值系数的游程长度的码字,以及指示两个非零值系数之间没有零值系数的码字,并且
其中还生成针对所述第二区域中的每个非零值系数的幅度和符号的码字。
8.如权利要求5中所述的方法,
其中所述第三编码方法包括二维可变长度编码方法,所述二维可变长度编码方法对由连续零值系数的游程后面接着一个非零值系数构成的事件进行编码。
9.如权利要求5所述的方法,
其中基于所假设的事件出现的先验似然,针对每个游程长度的码字的形成是固定的。
10.如权利要求5所述的方法,
其中根据从所述数字信号的有序系列中收集的实际统计数据,针对每个事件的码字的形成是可变的。
11.如权利要求1中所述的方法,
其中,在所述第一区域编码方法中:
所述事件的识别包括识别第一种事件,每个所述第一种事件是出现在所述第一区域中的其值不等于最可能出现的值的连续信号的游程;
所述形成针对识别出的事件的码字包括形成针对所述第一种事件的码字,包括利用第一游程长度编码方法对所述连续信号的游程长度进行编码,并且形成利用所述第一游程长度编码方法对所述游程长度进行编码的码字并且对所述游程中的每个信号的幅度和符号进行编码;
所述事件的识别还包括识别第二种事件,每个所述第二种事件是出现在所述第一区域中的具有最可能出现的值的连续信号的游程;以及
所述形成针对识别出的事件的码字包括形成针对所述第二种事件的码字,包括利用第二游程长度编码方法对具有最可能出现的值的所述连续信号的游程长度进行编码,
其中所述第二区域编码方法包括标识包括结束于其值不等于最可能出现的值的一个信号的所述第二区域中具有最可能出现的值的连续信号的游程的事件,并且利用第三编码方法对所述第二区域中的标识出的事件进行编码,所述编码包括指示结尾的一个信号的幅度不等于其次最可能出现的值和最可能出现的值,并且
其中所述第三编码方法包括可变长度代码,使得形成相对较短的码字来表示出现可能性相对较大的值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值的序列。
12.如权利要求11所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1。
13.如权利要求12中所述的方法,
其中所述第三编码方法包括利用第三可变长度游程长度编码方法对结束于幅度为1的系数的连续零值系数的游程长度进行编码,
所述方法还包括:
标识包括结束于幅度大于1的一个系数的所述第二区域中的连续零幅度系数的游程的事件;
再利用所述第三编码方法结合例外码对标识到的结束于幅度大于1的系数的事件进行编码;
对非零值系数的符号进行编码;
对所述第一区域中的非零值系数的幅度进行编码;并且
对所述第二区域中大于1的幅度进行编码。
14.如权利要求12中所述的方法,
其中还生成针对所述第二区域中幅度大于1的每个非零值系数的幅度和符号的码字。
15.如权利要求12中所述的方法,
其中提供了第一游程长度代码表格、第二游程长度代码表格和第一幅度代码表格用以对所述第一区域中的信息进行编码,
其中所述第一游程长度代码表格用于存储针对非零值系数的一组游程长度的多个码字,所述第一游程长度代码表格被组织为使得出现可能性较大的游程长度相比出现可能性较小的游程长度具有较短的码字,
其中所述第二游程长度代码表格用于存储针对零值系数的一组游程长度的多个码字,所述第二游程长度代码表格被组织为使得出现可能性较大的游程长度相比出现可能性较小的游程长度具有较短的码字,
其中所述第一幅度代码表格用于存储针对非零值系数的每个游程中的系数的幅度的多个码字,
其中所述形成针对所述第一种事件的码字的步骤包括查找所述第一游程长度代码表格,并且还包括查找所述第一幅度代码表格,并且
其中所述形成针对所述第二种事件的码字的步骤包括查找所述第二游程长度代码表格。
16.如权利要求15中所述的方法,
其中提供了第三游程长度代码表格和第二幅度代码表格用于对所述第二区域中的信息进行编码,
其中所述第三游程长度代码表格用于存储针对结束于幅度为1的系数并且出现在所述第二区域中的零值系数的一组游程长度的多个码字,所述第三游程长度代码表格被组织为使得所述出现可能性较大的游程长度相比所述出现可能性较小的游程长度具有较短的码字,
其中所述第二幅度代码表格用于存储针对出现在所述第二区域中的非零值系数的大于1的幅度的多个码字,并且
其中所述对所述第二区域中的标识出的事件进行编码的步骤包括查找所述第三游程长度代码表格和所述第二幅度代码表格。
17.如权利要求5所述的方法,
其中所述系列被所述断点和针对包括所述第二区域的每个区域的额外断点分成两个以上的区域,所述方法还包括:
对出现在由相应的额外断点限定的每个额外区域中的信号进行编码,所述编码使用不同于在其它区域中所使用的编码方法的编码方法。
18.如权利要求5所述的方法,
其中所述第一区域编码方法包括针对非零值系数的游程长度的码字,以及针对每个游程中的所述非零值系数的幅度和符号的一组码字。
19.如权利要求5所述的方法,
其中针对所述第一区域中的系数的码字开始于所述第一游程长度编码方法的码字并且在所述第一游程长度编码方法和所述第二游程长度编码方法之间交替,并且其中所述第一游程长度编码方法的码字中的一个码字是指示所遇到的第一游程是零游程的特定码字,使得所述第二游程长度编码方法的码字跟在所述第一游程长度编码方法的特定码字之后。
20.如权利要求5所述的方法,
其中提供了第一游程长度代码表格、第二游程长度代码表格和第一幅度代码表格用以对所述第一区域中的信息进行编码,
其中所述第一游程长度代码表格用于存储针对非零值系数的一组游程长度的多个码字,所述第一游程长度代码表格被组织为使得出现可能性较大的游程长度相比出现可能性较小的游程长度具有较短的码字,
其中所述第二游程长度代码表格用于存储针对零值系数的一组游程长度的多个码字,所述第二游程长度代码表格被组织为使得出现可能性较大的游程长度相比出现可能性较小的游程长度具有较短的码字,
其中所述第一幅度代码表格用于存储针对非零值系数的每个游程中的系数的幅度的多个码字,
其中所述形成针对所述第一种事件的码字的步骤包括查找所述第一游程长度代码表格,并且还包括查找所述第一幅度代码表格,并且
其中所述形成针对所述第二种事件的码字的步骤包括查找所述第二游程长度代码表格。
21.如权利要求20中所述的方法,
其中提供了第三游程长度代码表格和第二幅度代码表格用于对所述第二区域中的信息进行编码,
其中所述第三游程长度代码表格用于存储针对出现在所述第二区域中的零值系数的一组游程长度的多个码字,所述第三游程长度代码表格被组织为使得出现可能性较大的游程长度相比出现可能性较小的游程长度具有较短的码字,
其中所述第二幅度代码表格用于存储针对出现在所述第二区域中的非零系数的幅度的多个码字,并且
其中对所述第二区域中的标识出的第三种事件进行编码的步骤包括查找所述第三游程长度代码表格。
22.一种对比特流进行解码以形成数字信号的有序系列的解码方法,每个所述的数字信号的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限幅度集合,所述比特流是利用如权利要求1所述的方法来编码的,
所述解码方法包括:
识别码字;
确定由识别出的码字表示的事件;并且
确定每个确定出的事件的系数,
直到所述系列中的所有系数都被确定为止。
23.如权利要求4、11或22所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
其中所述断点的值是预先选择的。
24.如权利要求4、11或22所述的方法,
其中所述方法能够应用于帧间图像数据块,并且其中第一预先选择的断点值被用于针对第一种帧间编码的帧间图像数据,并且第二预先选择的断点值被用于针对第二种帧间编码的帧间图像数据。
25.如权利要求24中所述的方法,其中所述第一种帧间编码相比所述第二种帧间编码具有较高的比特率。
26.如权利要求4、11或22所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
其中根据依赖于图像的标准从预定断点值的有限集选择所述断点的值。
27.如权利要求26中所述的方法,其中根据所述预定断点值的有限集中哪一个断点产生的比特数最少从所述预定断点值的有限集中选择所述断点的值。
28.如权利要求1或22中所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
其中所述变换后的图像数据块包括DC项,并且其中所述DC项是被单独编码的,使得所述数字信号的有序系列为变换后的图像数据块的一组非DC量化系数。
29.如权利要求1或22中所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
其中所述断点限定了所述第一和第二区域之间的硬边界。
30.如权利要求4、11或22所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
其中所述断点限定了所述第一和第二区域之间的软边界,使得对于开始于所述断点之前并且经过所述断点的事件,所述第一和第二区域之间的边界在该事件的结尾,以使得整个该事件处于所述第一区域中。
31.如权利要求1或22中所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
这里所述方法还包括以下步骤:
形成针对至少一些识别出的事件的固定长度的码字。
32.如权利要求31中所述的方法,其中所述第一区域编码方法包括形成针对所述第一区域中的至少一些识别出的事件的固定长度的码字。
33.如权利要求31中所述的方法,其中所述第二区域编码方法包括形成针对所述第二区域中的至少一些识别出的事件的固定长度的码字。
34.如权利要求31中所述的方法,其中为其形成所述固定长度码字的识别出的事件比为其使用可变长度码字的识别出的事件出现的可能性较小,并且其中所述固定长度的码字至少与任一可变长度码字一样长。
35.如权利要求31中所述的方法,其中每个固定长度码字包括转义码。
36.如权利要求5中所述的方法,还包括:
形成对何时所述系列的第二区域中所有余下的数字信号的幅度都为零的指示。
37.如权利要求1所述的方法,还包括:
根据所述数字信号的幅度分布将所述系列分类到多个类的特定类中,所述多个类中的每个类具有形成针对所述系列的码字的相应的编码过程;
对于所述特定类的系列,应用与所述特定类相对应的编码过程来形成所述系列的一组码字;并且
为所形成的码字添加指示来指示所述特定类,
使得形成相对较短的码字来表示出现可能性相对较大的值或值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值或值的序列。
38.如权利要求37中所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1。
39.如权利要求38中所述的方法,
其中对于任何类型的图像存在两个类。
40.如权利要求38中所述的方法,
其中对于任何类型的图像存在至少四个类。
41.如权利要求40中所述的方法,其中所述类包括:
第一类的系列,其中沿着所述系数的排序的非零值系数具有非零值,包括不为±1的系数,并且其中所述非零值系数在整个所述排序上形成群集,使得沿着所述系数的排序的路径没有清晰的断点来标识其中非零值系数形成群集的第一区域和其中非零值系数分散的第二区域;
第二类的系列,其中沿着所述系数的排序的非零值系数具有非零值,包括不为±1的系数,并且其中沿着所述系数的排序的路径存在断点以标识其中非零值系数基本上形成群集的第一区域和其中所述非零值系数分散的第二区域;
第三类的系列,其中沿着所述系数的排序的非零值系数实质上大部分是值为±1的系数,并且其中沿着所述系数的排序的路径存在断点来标识其中这些非零值系数基本上形成群集的第一区域和其中这些非零值系数分散的第二区域;以及
第四类的系列,其中沿着所述系数的排序的非零值系数实质上大部分是值为±1的系数,并且其中所述非零值系数在整个所述排序上是分散的,使得沿着所述系数的排序的路径没有清晰的断点来标识其中非零值系数形成群集的第一区域和其中这些非零值系数分散的第二区域。
42.如权利要求38中所述的方法,
其中所述多个类取决于由以下各项构成的组中的至少一项:
所述图像块是帧内/静止图像块,还是帧间图像块;
所述图像块是标准清晰度电视图像块还是HDTV图像块;
所述方法是针对高比特率编码还是针对相对较低比特率的编码;
以及
所述变换是DCT还是非DCT变换。
43.如权利要求38中所述的方法,
其中所述分类使用所述系数系列。
44.如权利要求43中所述的方法,其中所述分类包括根据由以下各项构成的统计标准组中的至少一项确定所述系数的统计信息:
是否存在限定其中非零值系数形成群集的第一区域和其中所述非零值系数大部分分散的第二区域的断点;
所述非零值系数是大部分形成群集还是大部分分散;以及
区域中或所述整个块中的非零值系数的幅度是否基本上全部为1。
45.如权利要求43中所述的方法,其中所述分类根据哪个类的相应的方法产生最大压缩的比特流来选择所述类。
46.如权利要求45中所述的方法,其中所述分类包括顺序地应用所述相应的编码过程中的每一种,并且根据与所述特定类相对应的编码过程所产生的压缩选择所述特定类。
47.如权利要求45中所述的方法,其中所述分类包括并行地应用所述相应的编码过程中的每一种,并且根据与所述特定类相对应的编码过程所产生的压缩选择所述特定类。
48.如权利要求38中所述的方法,
其中所述类中的一类具有相应的方法,该相应的方法包括:
标识非零值系数游程和零值系数游程;
利用为至少一些所述游程长度提供可变长度代码的第一游程长度编码方法对所述非零值系数游程的长度进行编码;
利用第一幅度编码方法对所述非零值系数游程中的幅度进行编码;并且
利用为至少一些所述游程长度提供可变长度代码的第二游程长度编码方法对所述非零值系数游程的长度进行编码。
49.如权利要求48中所述的方法,其中所述相应的方法还包括:
对所述非零值系数的符号进行编码。
50.如权利要求48中所述的方法,其中所述利用所述第一游程长度编码方法进行编码包括查找第一编码表格,并且其中所述利用所述第二游程长度编码方法进行编码包括查找第二编码表格。
51.如权利要求48中所述的方法,其中所述系数的码字开始于所述第一游程长度编码方法的码字并且在所述第一游程长度编码方法和所述第二游程长度编码方法之间交替,并且其中所述第一游程长度编码方法的码字中的一个码字是指示所遇到的第一游程是零游程的特定码字,使得所述第二游程长度编码方法的码字跟在所述第一游程长度编码方法的特定码字之后。
52.如权利要求48中所述的方法,其中所述类中的第二类具有第二相应的方法,该第二相应的方法包括:
提供断点来沿着所述系列的排序限定第一区域及其后面接着的第二区域,其中第一区域和第二区域中的每一个是连续区域;
利用第一区域编码方法对所述第一区域的系数进行编码;并且
利用第二区域编码方法对所述第二区域中的系数进行编码,
其中所述第一区域编码方法和所述第二区域编码方法使得对所述第一区域中的至少一些系数的编码不同于对所述第二区域中的至少一些系数的编码。
53.如权利要求52中所述的方法,其中所述第二相应的方法包括:
提供至少一个额外断点,使得所述系列被所述断点和针对包括所述第二区域的每个区域的一个额外断点分成两个以上的区域;并且
对由相应的额外断点限定的每个额外区域中的系数进行编码,区域中相应的编码使用不同于在其它区域中所使用的编码方法的区域编码方法。
54.如权利要求52中所述的方法,其中所述断点的值是预先选择的。
55.如权利要求52中所述的方法,其中根据依赖于图像的标准从预定断点值的有限集选择所述断点的值。
56.如权利要求52中所述的方法,其中所述第二相应的方法能够应用于帧内图像数据和帧间图像数据块,并且其中第一预先选择的断点值被用于帧内图像数据,并且第二预先选择的断点值被用于帧间图像数据。
57.如权利要求52中所述的方法,其中所述断点限定了所述第一和第二区域之间的硬边界。
58.如权利要求52中所述的方法,其中所述断点限定了所述第一和第二区域之间的软边界,使得对于具有经过所述断点的连续非零值或连续零值序列的块,所述第一和第二区域之间的边界在该序列的结尾,使得整个该序列都在所述第一区域中。
59.如权利要求52中所述的方法,其中所述第一区域编码方法包括:
标识所述第一区域中的非零值系数游程和所述第一区域中的零值系数游程;
利用为至少一些所述游程长度提供可变长度代码的第三游程长度编码方法对所述第一区域中的非零值系数游程的长度进行编码;
利用第二幅度编码方法对所述第一区域中的非零值系数游程中的幅度进行编码;并且
利用为至少一些所述游程长度提供可变长度代码的第四游程长度编码方法对所述第一区域中的非零值系数游程的长度进行编码。
60.如权利要求59中所述的方法,其中所述第一区域编码方法还包括:
对所述第一区域中的非零值系数的符号进行编码。
61.如权利要求59中所述的方法,其中所述利用所述第三游程长度编码方法进行编码包括查找第一编码表格,并且其中所述利用所述第二游程长度编码方法进行编码包括查找第二编码表格。
62.如权利要求59中所述的方法,
其中所述第二区域编码方法包括:
标识在所述第二区域中的非零值系数之前的所述第二区域中的连续零值系数游程,包括在非零值系数之前没有零值系数的游程;
利用第五可变长度游程长度编码方法对标识出的零值系数游程的游程长度进行编码;
对在所述第二区域中每个标识出的零值系数游程之后的非零值系数的幅度进行编码;并且
对在所述第二区域中每个标识出的零值系数游程之后的非零值系数的符号进行编码。
63.如权利要求62中所述的方法,其中所述第五编码方法包括为所述第二区域中的至少一些游程长度形成固定长度的码字。
64.如权利要求62中所述的方法,其中所述第二区域编码方法包括:
标识所述第二区域中的连续零值系数游程后面接着所述第二区域中的一个非零值系数的事件,包括没有零值系数的游程后面接着一个非零值系数的事件,所述标识包括标识其中结尾的非零值系数的幅度不为1的事件;
对于标识出的其中接在所述零值系数游程之后的非零值系数的幅度为1的事件,利用第五可变长度游程长度编码方法对所述事件进行编码;
对于标识出的其中接在所述零值系数游程之后的非零值系数的幅度不为1的事件,利用第五可变长度游程长度编码方法和将所述事件标识为例外的例外码对每个事件进行编码,并且再对所述幅度不为1的系数的幅度进行编码;并且
对作为所述第二区域中的每个标识出的事件的结束的非零值系数的符号进行编码。
65.如权利要求64中所述的方法,其中所述第五编码方法包括为所述第二区域中的至少一些游程长度形成固定长度的码字。
66.如权利要求38中所述的方法,
其中所述类中的一类具有相应的方法,该相应的方法包括:
标识幅度为1的系数的游程和零值系数游程;
利用为至少一些所述游程长度提供可变长度代码的第一游程长度编码方法对所述幅度为1的系数的游程的长度进行编码;
对所述幅度为1的系数的符号进行编码;
标识任一幅度不为1的非零系数,并且利用幅度编码方法对幅度不为1的非零值系数的幅度进行编码;
对所述幅度不为1的非零值系数的符号进行编码;并且
利用为至少一些所述游程长度提供可变长度代码的第二游程长度编码方法对非零值系数的游程的长度进行编码。
67.如权利要求66中所述的方法,其中所述利用所述第一游程长度编码方法进行编码包括查找第一编码表格,并且其中所述利用所述第二游程长度编码方法进行编码包括查找第二编码表格。
68.如权利要求38中所述的方法,
其中所述类中的一类具有相应的方法,该相应的方法包括:
标识非零值系数游程和零值系数游程,包括标识任何幅度不为1的非零值系数;
利用为至少一些所述游程长度提供可变长度代码的第一游程长度编码方法对所述非零值系数游程的长度进行编码;
对所述非零值系数的符号进行编码;
利用例外码对任一非零值系数游程中存在任一幅度不为1的非零值系数进行编码,并且再利用幅度编码方法对幅度不为1的非零值系数的幅度进行编码;
对所述幅度不为1的非零值系数的符号进行编码;并且
利用为至少一些所述游程长度提供可变长度代码的第二游程长度编码方法对所述非零值系数游程的长度进行编码。
69.如权利要求68中所述的方法,其中所述利用所述第一游程长度编码方法进行编码包括查找第一编码表格,并且其中所述利用所述第二游程长度编码方法进行编码包括查找第二编码表格。
70.如权利要求38中所述的方法,
其中所述类中的一类具有相应的方法,该相应的方法包括:
标识结束于非零系数的零值系数游程,包括没有零值系数的游程后面接着一个非零值系数;
利用为至少一些所述游程长度提供可变长度代码的游程长度编码方法对所述零值系数游程的长度进行编码;并且
对于每个标识出的游程,根据幅度编码方法对所述非零值系数的幅度进行编码。
71.如权利要求70中所述的方法,其中所述相应的方法还包括:
对所述非零值系数的符号进行编码。
72.如权利要求70中所述的方法,其中所述利用所述游程长度编码方法进行编码包括查找编码表格。
73.如权利要求38中所述的方法,
其中所述类中的一类具有相应的方法,该相应的方法包括:
标识连续的零值系数游程后面接着一个非零值系数的事件,包括没有零值系数的游程后面接着一个非零值系数的事件,所述标识包括标识其中结尾非零值系数的幅度不为1的事件;
对于标识出的其中跟在所述零值系数游程之后的所述非零值系数的幅度为1的事件,利用为至少一些所述事件提供可变长度代码的可变长度游程长度编码方法对所述事件进行编码;并且
对于标识出的其中跟在所述零值系数游程之后的所述非零值系数的幅度为1的事件,利用所述可变长度游程长度编码方法和将所述事件标识为例外的例外码对每个事件进行编码,并且再利用幅度编码方法对所述幅度不为1的幅度进行编码。
74.如权利要求73中所述的方法,其中所述相应的方法还包括:
对所述非零值系数的符号进行编码。
75.如权利要求73中所述的方法,其中所述利用所述游程长度编码方法进行编码包括查找编码表格。
76.如权利要求38中所述的方法,
其中所述类中特定的一类具有相应的方法,该相应的方法包括:
提供断点来沿着所述系列的排序限定第一区域及其后面接着的第二区域,其中第一区域和第二区域中的每一个是连续区域;
利用第一区域编码方法对所述第一区域的系数进行编码;并且
利用第二区域编码方法对所述第二区域中的系数进行编码,
其中所述第一区域编码方法和所述第二区域编码方法使得对所述第一区域中的至少一些系数的编码不同于对所述第二区域中的至少一些系数的编码。
77.如权利要求76中所述的方法,其中所述特定类的相应的方法包括:
提供至少一个额外断点,使得所述系列被所述断点和针对包括所述第二区域的每个区域的一个额外断点分成两个以上的区域;并且
对由相应的额外断点限定的每个额外区域中的系数进行编码,区域中相应的编码使用不同于在其它区域中所使用的编码方法的区域编码方法。
78.如权利要求76中所述的方法,其中所述断点的值是预先选择的。
79.如权利要求76中所述的方法,其中根据依赖于图像的标准从预定断点值的有限集选择所述断点的值。
80.如权利要求76中所述的方法,其中与所述特定类相对应的编码过程能够应用于帧内图像数据和帧间图像数据块,并且其中第一预先选择的断点值被用于帧内图像数据,第二预先选择的断点值被用于帧间图像数据。
81.如权利要求76中所述的方法,其中所述断点限定了所述第一和第二区域之间的硬边界。
82.如权利要求76中所述的方法,其中所述断点限定了所述第一和第二区域之间的软边界,使得对于具有经过所述断点的连续非零值或连续零值序列的块,所述第一和第二区域之间的边界在该序列的结尾,使得整个该序列都在所述第一区域中。
83.如权利要求76中所述的方法,其中所述第一区域编码方法包括:
标识所述第一区域中的非零值系数游程和所述第一区域中的零值系数游程;
利用为至少一些所述游程长度提供可变长度代码的第一游程长度编码方法对所述第一区域中的非零值系数游程的长度进行编码;
利用第一幅度编码方法对所述第一区域中的非零值系数游程中的幅度进行编码;并且
利用为至少一些所述游程长度提供可变长度代码的第二游程长度编码方法对所述第一区域中的非零值系数游程的长度进行编码。
84.如权利要求83中所述的方法,其中所述第一区域编码方法还包括:
对所述第一区域中的非零值系数的符号进行编码。
85.如权利要求83中所述的方法,其中所述利用所述第一游程长度编码方法进行编码包括查找第一编码表格,并且其中所述利用所述第二游程长度编码方法进行编码包括查找第二编码表格。
86.如权利要求83中所述的方法,
其中所述第二区域编码方法包括:
标识在所述第二区域中的非零值系数之前的所述第二区域中的连续零值系数游程,包括在非零值系数之前没有零值系数的游程;
利用第三可变长度游程长度编码方法对标识出的零值系数游程的游程长度进行编码;
对在所述第二区域中每个标识出的零值系数游程之后的非零值系数的幅度进行编码;并且
对在所述第二区域中每个标识出的零值系数游程之后的非零值系数的符号进行编码。
87.如权利要求86中所述的方法,其中所述第三编码方法包括为所述第二区域中的至少一些游程长度形成固定长度的码字。
88.如权利要求86中所述的方法,其中所述第二区域编码方法包括:
标识所述第二区域中的连续零值系数游程后面接着所述第二区域中的一个非零值系数的事件,包括没有零值系数的游程后面接着一个非零值系数的事件,所述标识包括标识其中结尾的非零值系数的幅度不为1的事件;
对于标识出的其中接在所述零值系数游程之后的非零值系数的幅度为1的事件,利用第三可变长度游程长度编码方法对所述事件进行编码;
对于标识出的其中接在所述零值系数游程之后的非零值系数的幅度不为1的事件,利用第三可变长度游程长度编码方法和将所述事件标识为例外的例外码对每个事件进行编码,并且再利用第二幅度编码方法对所述幅度不为1的系数的幅度进行编码;并且
对作为所述第二区域中的每个标识出的事件的结束的非零值系数的符号进行编码。
89.如权利要求88中所述的方法,其中所述第三编码方法包括为所述第二区域中的至少一些游程长度形成固定长度的码字。
90.一种用于处理数字信号的有序系列的方法,所述数字信号中每一个的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限的幅度集,所述处理用以减少用于表示所述数字信号的数据量并且形成码字,使得出现的可能性较大的数字信号值或数字信号值的序列由相对较短的码字表示,并且出现的可能性较小的数字信号值或数字信号值的序列由相对较长的码字表示,所述方法包括:
对于系列中的为一连续区域的第一区域:
标识每个包括在其值不等于最可能出现的幅度的一个或多个连续信号的游程之前的具有最可能出现的幅度的连续系数的游程的事件,包括在其值不等于最可能出现的幅度的一个或多个连续信号的游程之前没有具有最可能出现的幅度的系数的事件;
对于每个标识出的事件,利用码字对在前的最可能出现的幅度的游程和之后不是最可能出现的幅度的游程的游程长度进行联合编码,使得对于至少一些事件,与出现的可能性相对较小的游程长度相比,利用较短的码字来对出现的可能性相对较大的游程长度对进行编码;
对于每个标识出的事件,对幅度不是所述最可能出现的幅度的连续信号的游程中的每个幅度进行编码,所述编码根据幅度编码方法,
使得形成相对较短的码字来表示出现可能性相对较大的值或值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值或值的序列。
91.如权利要求90中所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,使得所述标识事件的步骤标识每个包括零值系数游程在一个或多个非零值系数游程之前的事件,包括在非零值系数游程之前没有零值系数的事件。
92.如权利要求91中所述的方法,其中所述变换后的图像数据块包括DC项,并且其中所述DC项是被单独编码的,使得所述数字信号的有序系列为变换后的图像数据块的一组非DC量化系数。
93.如权利要求91中所述的方法,还包括在第一区域中:
对于每个标识出的事件,对所述非零值系数游程中的所述非零值系数的符号进行编码。
94.如权利要求91中所述的方法,还包括:
提供沿着所述系列的排序限定所述第一区域及其后面接着的第二区域的断点,其中所述第二区域是连续区域;使得利用第一区域编码方法对所述第一区域的系数进行编码,所述第一区域编码方法包括所述对事件进行标识,所述对所述事件的游程长度进行联合编码,以及所述对所述事件的非零值系数的幅度进行编码;以及
利用第二区域编码方法对所述第二区域中的系数进行编码,并且
其中第一区域编码方法和第二区域编码方法使得对所述第一区域中的至少一些系数或系数的游程的编码不同于对所述第二区域中的至少一些系数或系数的游程的编码。
95.如权利要求94中所述的方法,还包括:
提供至少一个额外断点使得所述系列被所述断点和针对包括所述第二区域的每个区域的所述一个额外断点分成两个以上的区域;并且
对由相应的额外断点限定的每个额外区域中的系数进行编码,区域中相应的编码使用不同于用在其它区域中的编码方法的区域编码方法。
96.如权利要求94中所述的方法,其中所述断点的值是预先选择的。
97.如权利要求94中所述的方法,其中根据依赖于图像的标准从预定断点值的有限集选择所述断点的值。
98.如权利要求94中所述的方法,能够应用于帧内图像数据和帧间图像数据块,并且其中第一预先选择的断点值被用于帧内图像数据,第二预先选择的断点值被用于帧间图像数据。
99.如权利要求94中所述的方法,其中所述断点限定了所述第一和第二区域之间的硬边界。
100.如权利要求94中所述的方法,其中所述断点限定了所述第一和第二区域之间的软边界,使得对于具有经过所述断点的连续非零值序列的第一区域块中标识出的事件,所述第一和第二区域之间的边界在该事件的结尾,使得整个该事件都在所述第一区域中。
101.如权利要求91中所述的方法,其中所述对关于事件的游程长度的联合编码使用多维编码表格。
102.如权利要求91中所述的方法,其中被标识并且其游程长度被编码的事件的数目被限制,使得只有至多具有最大总数个系数的事件被标识,并且其中所述标识还标识具有最大总数个系数的全零事件以及结束于非零系数的具有最大总数个系数的事件,因此在对所述第一区域的系数的编码中能够避免转义码。
103.如权利要求102中所述的方法,其中所述第一区域包括第一标识出的事件;其中对所述第一区域中的事件的游程长度进行联合编码使用第一可变长度编码方法,并且其中对所述第一区域中的事件的非零幅度的幅度进行编码使用第一幅度编码方法,所述方法还包括:
提供沿着所述系列的排序限定所述第一区域之后的第二区域和所述第二区域之后的第三区域的断点,其中第二区域和第三区域中的每一个是连续区域;使得利用第二区域编码方法对所述第二区域中的系数进行编码,所述第二区域编码方法包括:
标识每个包括零值系数游程在一个或多个非零值系数游程之前的事件,包括在一个或多个非零值系数的游程之前没有零值系数的事件;
对于所述第二区域中的每个标识出的事件,利用码字对在前的最可能出现的幅度的游程和之后不是最可能出现的幅度的游程的游程长度进行联合编码,使得对于至少一些事件,与出现的可能性相对较小的游程长度相比,利用较短的码字来对出现的可能性相对较大的游程长度对进行编码,所述对所述第二区域中的事件的游程长度的联合编码使用第二编码方法;
对于所述第二区域中的每个标识出的事件,对幅度不是所述最可能出现的幅度的连续信号的游程中的每个幅度进行编码,所述编码根据第二幅度编码方法;并且
利用第三区域编码方法对所述第三区域中的系数进行编码。
104.如权利要求1中所述的方法,
其中,在所述第一区域编码方法中:
所述事件的识别包括识别第一种事件,每个所述第一种事件是出现在所述第一区域中的其值不等于最可能出现的值的连续信号的游程;
所述形成针对识别出的事件的码字包括形成针对所述第一种事件的码字,包括利用第一游程长度编码方法对所述连续信号的游程长度进行编码,并且形成利用所述第一游程长度编码方法对所述游程长度进行编码的码字;
所述事件的识别还包括识别第二种事件,每个所述第二种事件是出现在所述第一区域中的具有最可能出现的值的连续信号的游程;
所述形成针对识别出的事件的码字包括形成针对所述第一种事件的码字,包括利用第一游程长度编码方法对所述连续信号的游程长度进行编码,并且形成利用所述第一游程长度编码方法对所述游程长度进行编码的码字;并且
所述形成针对所述第一种识别出的事件的码字还包括针对所述第一种的每个标识出的事件,对幅度不是最可能出现的幅度的连续信号的游程中的多个连续值进行联合编码,所述联合编码根据幅度编码方法。
105.如权利要求104中所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,使得所述标识事件标识每个包括一个或多个非零值系数的游程的事件。
106.如权利要求105中所述的方法,其中所述变换后的图像数据块包括DC项,并且其中所述DC项是被单独编码的,使得所述数字信号的有序系列为变换后的图像数据块的一组非DC量化系数。
107.如权利要求105中所述的方法,其中所述对多个连续值的联合编码对多个幅度进行联合编码,并且对所述幅度的符号进行单独编码。
108.如权利要求105中所述的方法,其中所述对多个连续值的联合编码对包括幅度的符号的多个幅度进行联合编码,因此对于所述被联合编码的连续值,不使用单独的符号编码。
109.如权利要求105中所述的方法,其中所述对多个连续值的联合编码使用多维编码表格。
110.如权利要求105中所述的方法,
其中所述标识事件包括标识每个包括连续零值系数游程在一个或多个连续非零值系数的游程之前的事件,包括在一个或多个连续非零值系数的游程之前没有零值系数的事件;并且
其中所述联合编码包括对在前的零值系数游程和之后的非零值系数游程的游程长度进行联合编码,使得对于至少一些事件,与出现的可能性相对较小的游程长度相比,利用较短的码字来对出现的可能性相对较大的游程长度对进行编码。
111.如权利要求105中所述的方法,
其中所述标识事件包括标识一个或多个零值系数的游程长度和标识跟在零值系数游程之后的一个或多个非零值系数的游程长度;并且
其中对所述事件的编码包括利用第一游程长度编码方法对标识出的非零值系数游程的游程长度进行编码,以及利用第二游程长度编码方法对标识出的零值系数游程的游程长度进行编码,
使得对于至少一些事件,与出现可能性相对较小的游程长度相比,利用较短的码字对出现可能性相对较大的游程长度对进行编码。
112.如权利要求110中所述的方法,
其中所述第一区域编码方法包括所述对事件进行标识,所述对所述事件的游程长度进行联合编码,以及所述对所述事件的非零值系数的幅度进行编码,并且
其中所述第一区域编码方法和所述第二区域编码方法使得对所述第一区域中的至少一些系数或系数的游程的编码不同于对所述第二区域中的至少一些系数或系数的游程的编码。
113.如权利要求112中所述的方法,其中所述断点的值是预先选择的。
114.如权利要求112中所述的方法,其中根据依赖于图像的标准从预定断点值的有限集选择所述断点的值。
115.如权利要求112中所述的方法,能够应用于帧内图像数据和帧间图像数据块,并且其中第一预先选择的断点值被用于帧内图像数据,并且第二预先选择的断点值被用于帧间图像数据。
116.如权利要求112中所述的方法,其中所述断点限定了所述第一和第二区域之间的硬边界。
117.如权利要求112中所述的方法,其中所述断点限定了所述第一和第二区域之间的软边界,使得对于包括经过所述断点的连续非零值序列的第一区域的块中标识出的事件,所述第一和第二区域之间的边界在该事件的结尾,使得整个该事件都在所述第一区域中。
118.如权利要求110中所述的方法,其中所述对关于事件的游程长度的联合编码使用多维编码表格。
119.如权利要求110中所述的方法,其中被标识并且其游程长度被编码的事件的数目被限制,使得只有至多具有最大总数个系数的事件被标识,并且其中所述标识还标识具有最大总数个系数的全零事件以及结束于非零系数的具有最大总数个系数的事件,因此在对所述第一区域的系数的编码中能够避免转义码。
120.如权利要求1中所述的方法,
其中,在所述第一区域编码方法中:
所述对事件的识别包括识别第一种事件,每个所述第一种事件是其值不等于最可能出现的幅度的连续信号的游程;
所述形成针对识别出的事件的码字包括形成针对所述第一种事件的码字,包括针对至少一些标识出的具有不等于最可能出现的幅度的任何幅度的连续信号的游程,对于所述第一种标识出的事件中的每个游程,
对所述游程和任何具有最可能出现的幅度的中间的连续系数的相对位置和游程长度进行编码;
标识至少一个连续信号的幅度事件,标识出的幅度事件包括结束于幅度不等于其次最可能出现的幅度的信号的具有所述其次最可能出现的幅度的至少一个连续信号的序列,或者确定所述幅度事件只具有幅度不等于所述其次最可能出现的幅度的信号,或者确定所述幅度事件只具有幅度为所述其次最可能出现的幅度的连续信号的序列,针对标识出的游程的游程长度的每个标识出的事件由具有所述其次最可能出现的幅度的至少一个连续信号的序列的长度和结尾信号的幅度来限定;并且
利用至少一个码字对每个标识出的幅度事件进行编码,使得对于至少一些标识出的幅度事件,与出现可能性相对较小的幅度事件相比,利用较短的码字对出现可能性相对较大的幅度事件进行编码。
121.如权利要求120中所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,使得标识游程标识每个包括一个或多个非零值系数的游程,并且使得标识出的游程中的每个标识出的幅度事件包括结束于大于1的幅度的至少一个幅度为1的连续系数的序列,或者一个幅度大于1的系数,或者只有幅度为1的连续系数的序列。
122.如权利要求121中所述的方法,其中所述对幅度事件的标识针对所述系列中的每个标识出的非零系数游程。
123.如权利要求121中所述的方法,所述对幅度事件的标识针对所述系列中那些标识出的游程长度小于或等于预先选择的长度的非零系数游程,所述方法还包括:
针对标识出的游程长度大于所述预先选择的长度的连续非零系数的游程,对于每个标识出的具有较大游程长度的游程:
对标识出的游程以及具有最可能出现的幅度的任何插在中间的连续系数的相对位置和游程长度进行编码;
利用关于所述幅度的多维编码函数对所述非零幅度的非零幅度进行联合编码,以产生如下的码字,使得对于至少一些非零幅度的游程,相比出现可能性相对较小的幅度,利用较短的码字对出现可能性相对较大的幅度游程进行编码。
124.如权利要求121中所述的方法,其中所述变换后的图像数据块包括DC项,并且其中所述DC项是被单独编码的,使得所述数字信号的有序系列为变换后的图像数据块的一组非DC量化系数。
125.如权利要求121中所述的方法,其中所述对标识出的幅度事件的编码包括单独对所述幅度的符号进行编码。
126.如权利要求121中所述的方法,其中所述对所述标识出的幅度事件的编码,使用提供针对在前的幅度为1的系数的序列的游程长度和幅度大于1的结尾系数的幅度的每一对的码字的编码表格,因此针对标识出的非零系数游程的每个游程长度,能够使用不同的编码表格。
127.如权利要求126中所述的方法,其中所述编码表格通过根据所测出或假设的幅度事件的统计信息分配可变长度代码而构成。
128.如权利要求121中所述的方法,
其中所述标识游程是如下过程的一部分,所述过程包括标识后面接着一个零值系数的一个或多个连续非零值系数的游程之前的连续零值系数的游程,或者标识后面接着一个零值系统的一个或多个连续非零值系数的游程之前没有零值系数;并且
其中所述对所述相对位置的编码包括对在前的零值系数游程和在后的非零值系数游程的游程长度进行联合编码,使得对于至少一些幅度事件,相比出现可能性相对较小的游程长度,利用较短的码字对出现可能性相对较大的游程长度对进行编码。
129.如权利要求121中所述的方法,
其中所述标识每个包括幅度不为0的一个或多个连续信号的游程被包括在标识所述后面为一个零值系数的一个或多个非零值系数的游程长度以及标识在所述一个或多个非零值系数的游程之前的一个或多个零值系数的游程长度中;并且
其中所述对所述相对位置的编码包括:
利用第一游程长度编码方法对标识出的非零值系数游程的游程长度进行编码,并且利用第二游程长度编码方法对标识出的零值系数游程的游程长度进行编码,
使得对于至少一些幅度事件,相比出现可能性相对较小的游程长度,利用较短的码字对出现可能性相对较大的游程长度对进行编码。
130.如权利要求128中所述的方法,
其中所述第一区域编码方法包括所述对游程进行标识,所述对所述相对位置和游程长度进行编码,所述对幅度事件的标识,以及所述对标识出的幅度事件进行编码,并且
其中所述第一区域编码方法和所述第二区域编码方法使得对所述第一区域中的至少一些系数或系数的游程的编码不同于对所述第二区域中的至少一些系数或系数的游程的编码。
131.如权利要求128中所述的方法,其中所述对所述游程长度的联合编码使用二维编码表格。
132.如权利要求1中所述的方法,
其中,在所述第一区域编码方法中:
所述事件的识别包括标识每个包括具有不等于最可能出现的幅度的任何幅度的一个或多个连续信号的群集,以及任何插在中间的具有最可能出现的值的连续系数的游程,并且
其中所述第一区域编码方法还包括:
标识至少一个位置事件来限定标识出的具有不等于最可能出现的幅度的任何幅度的信号的群集,以及任何插在中间的具有最可能出现的值的连续系数的游程的相对位置和游程长度;
标识至少一个幅度事件,标识出的事件限定幅度不等于最可能出现的幅度的连续信号的群集中所述信号的幅度;并且
对标识出的位置事件和标识出的幅度事件进行联合编码,来对所述幅度不等于最可能出现的幅度的连续信号的相对位置和幅度进行联合编码,所述联合编码根据关于所述位置事件和所述幅度事件的多维编码函数,所述联合编码被布置为利用相对较短的码字来表示出现可能性较大的群集的相对位置和幅度,并且利用相对较长的码字来表示出现可能性较小的群集的相对位置和幅度。
133.如权利要求132中所述的方法,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,使得标识群集标识每个包括至少一个连续非零值系数的群集。
134.如权利要求133中所述的方法,其中所述变换后的图像数据块包括DC项,并且其中所述DC项是被单独编码的,使得所述数字信号的有序系列为变换后的图像数据块的一组非DC量化系数。
135.如权利要求133中所述的方法,
其中所述标识位置事件标识后面接着一个零值系数的一个或多个连续非零值系数的游程之前的连续零值系数的游程,或者标识后面接着一个零值系统的一个或多个连续非零值系数的游程之前没有零值系数;并且
其中所述联合编码对在前的零值系数游程的游程长度、在后的非零值系数游程的游程长度以及所述幅度事件进行联合编码,使得对于至少一些游程长度和幅度事件的组合,相比出现可能性相对较小的组合,利用较短的码字对出现可能性相对较大的组合对进行编码。
136.如权利要求133中所述的方法,其中所述联合编码包括单独对所述群集中的幅度的符号进行编码,并且对所述位置事件和所述幅度事件进行联合编码。
137.如权利要求133中所述的方法,其中所述联合编码包括单独对所述群集中的幅度的符号进行编码,并且对所述位置事件和所述幅度事件进行联合编码。
138.如权利要求133中所述的方法,其中标识出的针对每个群集的幅度事件是所述非零幅度群集中的系数的非零幅度集,因此所述联合编码对所述位置事件和所述连续非零值系数群集中的多个连续非零幅度进行联合编码。
139.如权利要求133中所述的方法,其中所述标识幅度事件包括:
在每个标识出的群集中,标识包括结束于幅度大于1的系数的至少一个幅度为1的连续系数的序列的至少一个连续系数的幅度事件,或者确定所述事件只具有大于1的幅度,或者确定所述事件只具有幅度为1的连续系数的序列,每个标识出的针对标识出的群集的游程长度的事件由所述至少一个幅度为1的连续系数的序列的长度和结尾系数的幅度来限定。
140.如权利要求139中所述的方法,其中所述对标识出的位置和幅度事件进行联合编码使用多维编码表格,该表格提供针对所述位置代码和在前的幅度为1的系数序列的游程长度对,以及幅度大于1的结尾系数的幅度的组合的码字。
141.如权利要求133中所述的方法,其中所述标识幅度事件包括:
对于每个标识出的长度小于或等于预先选择的长度的群集,标识所述连续非零值系数群集中的连续非零幅度,使得根据对所述位置事件和所述非零幅度进行联合编码的多维编码方法进行所述联合编码;以及
对于每个标识出的长度大于所述预先选择的长度的群集:
标识包括结束于幅度大于1的系数的至少一个幅度为1的连续系数的序列的至少一个连续系数的幅度事件,或者确定所述事件只具有大于1的幅度,或者确定所述事件只具有幅度为1的连续系数的序列,每个标识出的针对标识出的群集的游程长度的事件由所述至少一个幅度为1的连续系数的序列的长度和结尾系数的幅度来限定;并且
根据对所述位置事件和所述幅度事件进行联合编码的多维编码方法对标识出的位置事件和幅度事件进行联合编码。
142.如权利要求135中所述的方法,
其中所述第一区域编码方法包括所述对群集进行标识,所述对所述相对位置和游程长度进行编码,所述对所述连续系数的幅度进行编码,以及所述联合编码,并且
其中所述第一区域编码方法和所述第二区域编码方法使得对所述第一区域中的至少一些系数或系数的游程的编码不同于对所述第二区域中的至少一些系数或系数的游程的编码。
143.如权利要求1中所述的方法,
其中所述方法被应用于多个数字信号的有序系列,并且其中所述沿着所述排序确立断点利用从所述多个系列的至少一个子集中计算得到的统计信息,所述统计信息是关于沿着所述多个系列的排序具有不是最可能出现的值的信号出现在具有不是最可能出现的值的连续信号的群集中的位置的信息。
144.如权利要求143中所述的方法,
其中每个数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1。
145.如权利要求143中所述的方法,其中在所述被确立的断点使得所述第二区域为空区域的情况下,利用所述第一区域编码方法对所有量化系数进行编码,并且在所述被确立的断点使得所述第一区域为空区域的情况下,利用所述第二区域编码方法对所有量化系数进行编码。
146.如权利要求144中所述的方法,其中所述系列被所述断点和针对包括所述第二区域的每个区域的额外断点分成两个以上的区域,所述方法还包括:
对出现在由相应的额外断点限定的每个额外区域中的信号进行编码,所述编码使用不同于在其它区域中所使用的编码方法的编码方法。
147.如权利要求144中所述的方法,
其中所述确立所述断点包括对于沿着所述排序的每个点,对其中所述点处的系数在群集中的系列的数目进行计数。
148.如权利要求147中所述的方法,
其中所述确立断点包括确定阈值点,使得群集中的大部分系数出现在所述阈值点之前的点处,并且仅在一直到所述阈值点的范围内搜索接近最佳的断点。
149.如权利要求148中所述的方法,
其中所述确立所述接近最佳的断点包括确定针对一直到所述阈值点的断点的所述多个系列的编码数据的长度,并且选择产生最短编码数据的断点。
150.如权利要求148中所述的方法,
其中所述阈值点是沿着所述排序的特定点,在该特定点处具有系数的系列的数目的计数值降到系列总数的预先选择的比例以下。
151.如权利要求150中所述的方法,
其中所述预先选择的比例为1/(每个系列中的非DC系数的数目)。
152.如权利要求148中所述的方法,
其中所述断点的确立包括沿着所述排序一直到所述阈值点确定其中所述在群集中的非零系数的数目的计数值的斜率为最大值的点。
153.如权利要求147中所述的方法,
其中所述断点的确立包括沿着所述排序确定其中所述在群集中的非零系数的数目的计数值的斜率为最大值的点。
154.一种包括处理系统的设备,所述设备用于接收数字信号的有序系列,每个所述的数字信号的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限幅度集合,所述设备用于执行针对对数字信号的有序系列进行编码的方法的权利要求1、37或90中所述的编码方法。
155.一种包括处理系统的设备,所述设备用于接收比特流并对其进行解码,以形成数字信号的有序系列,每个所述的数字信号的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限幅度集合,所述比特流是利用描述了对数字信号的有序系列进行编码的方法的权利要求1、37或90中所述的方法进行编码的,所述处理系统被布置为实现解码方法,
所述解码方法包括:
识别码字;
确定由识别出的码字表示的事件;并且
确定每个确定出的事件的系数,
直到所述系列中的全部系数的值都被确定为止。
156.一种对比特流进行解码以形成数字信号的有序系列的解码方法,每个所述的数字信号的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限幅度集合,所述比特流是利用描述了对数字信号的有序系列进行编码的方法的权利要求37中所述的方法进行编码的,
所述解码方法包括:
识别码字;
确定由识别出的码字表示的事件;并且
确定每个确定出的事件的系数,
直到所述系列中的全部系数的值都被确定为止。
157.一种对比特流进行解码以形成数字信号的有序系列的解码方法,每个所述的数字信号的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限幅度集合,所述比特流是利用描述了对数字信号的有序系列进行编码的方法的权利要求90中所述的方法进行编码的,
所述解码方法包括:
识别码字;
确定由识别出的码字表示的事件;并且
确定每个确定出的事件的系数,
直到所述系列中的全部系数的值都被确定为止。
158.一种用于处理数字信号的有序系列的设备,所述数字信号中每一个的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限的幅度集,所述处理用以减少用于表示所述数字信号的数据量并且形成码字,使得出现的可能性较大的数字信号值或数字信号值的序列由相对较短的码字表示,并且出现的可能性较小的数字信号值或数字信号值的序列由相对较长的码字表示,所述设备包括:
用于沿着所述系列的排序确立至少一个断点以将所述系列分成多个邻接区域的装置,所述至少一个断点的确立是根据这多个邻接区域中的每个区域中所述数字信号的幅度分布来执行的,每个区域具有相应的编码过程,所述编码过程包括识别事件以及形成针对所述系列的码字,其中形成针对所述系列的码字包括形成针对识别出的事件的码字;以及
用于对于所述系列的每个区域,应用与该区域相对应的编码过程来形成所述系列的一组码字的装置,
使得形成相对较短的码字来表示出现可能性相对较大的值或值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值或值的序列,其中
所述用于确立至少一个断点的装置沿着所述系列的排序确立一断点以限定第一区域和第二区域,使得具有不等于最可能出现的值的任何值的连续信号的群集大部分出现在所述第一区域中,其中所述第一区域和第二区域中的每一个是连续区域,并且
其中用于对于所述系列的每个区域应用与该区域相对应的编码过程的装置包括:
用于利用包括识别事件和对识别出的事件进行编码的第一区域编码方法对所述第一区域中的信号进行编码的装置,所述第一区域编码方法是针对对具有不等于最可能出现的值的任何值的连续信号的群集进行编码而选择的;以及
用于利用第二区域编码方法对所述第二区域中的信号进行编码的装置,
其中所述第一区域编码方法和第二区域编码方法包括可变长度代码,使得形成相对较短的码字来表示出现可能性相对较大的值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值的序列。
159.如权利要求158所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1。
160.如权利要求158所述的设备,还包括:
用于将图像分成图像数据块的装置;以及
用于变换每个图像数据块以形成针对所述块的变换系数的装置,所述变换形成变换后的图像数据块,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1;
用于针对每个变换后的图像数据块,量化所述块的变换系数的装置;
用于针对每个变换后的图像数据块的量化系数,沿着二维路径对所述块的量化系数排序以形成所述变换后的图像数据块的量化系数的有序系列的装置,所述量化系数的有序系列为所述数字信号的有序系列;
用于执行确立至少一个断点的操作的装置;以及
用于对于所述系列的每个区域应用与该区域相对应的编码过程的装置。
161.如权利要求158中所述的设备,
其中,在所述第一区域编码方法中:
所述事件的识别包括识别第一种事件,每个所述第一种事件是出现在所述第一区域中的其值不等于最可能出现的值的连续信号的游程;
所述形成针对识别出的事件的码字包括形成针对所述第一种事件的码字,包括利用第一游程长度编码方法对所述连续信号的游程长度进行编码,并且形成利用所述第一游程长度编码方法对所述游程长度进行编码并且还对所述游程中的每个信号的幅度和符号进行编码的码字;
所述事件的识别还包括识别第二种事件,每个所述第二种事件是出现在所述第一区域中的具有最可能出现的值的连续信号的游程;以及
所述形成针对识别出的事件的码字包括形成针对所述第二种事件的码字,包括利用第二游程长度编码方法对具有最可能出现的值的所述连续信号的游程长度进行编码,
其中所述第二区域编码方法包括标识包括所述第二区域中具有最可能出现的值的连续信号的游程的第三种事件,并且利用第三编码方法对所述第二区域中的标识出的第三种事件进行编码,并且
其中所述第三编码方法包括可变长度代码,使得形成相对较短的码字来表示出现可能性相对较大的值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值的序列。
162.如权利要求161中所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1。
163.如权利要求162中所述的设备,
其中所述第三编码方法包括利用第三可变长度游程长度编码方法对连续零值系数的游程长度进行编码,并且对所述第二区域中的非零值系数的幅度和符号进行编码。
164.如权利要求162中所述的设备,
其中所述第三编码方法包括针对零值系数的游程长度的码字,以及指示两个非零值系数之间没有零值系数的码字,并且
其中还生成针对所述第二区域中的每个非零值系数的幅度和符号的码字。
165.如权利要求162中所述的设备,
其中所述第三编码方法包括二维可变长度编码方法,所述二维可变长度编码方法对由连续零值系数的游程后面接着一个非零值系数构成的事件进行编码。
166.如权利要求162中所述的设备,
其中基于所假设的事件出现的先验似然,针对每个游程长度的码字的形成是固定的。
167.如权利要求162中所述的设备,
其中根据从所述数字信号的有序系列中收集的实际统计数据,针对每个事件的码字形成是可变的。
168.如权利要求158中所述的设备,
其中,在所述第一区域编码方法中:
所述事件的识别包括识别第一种事件,每个所述第一种事件是出现在所述第一区域中的其值不等于最可能出现的值的连续信号的游程;
所述形成针对识别出的事件的码字包括形成针对所述第一种事件的码字,包括利用第一游程长度编码方法对所述连续信号的游程长度进行编码,并且形成利用所述第一游程长度编码方法对所述游程长度进行编码的码字并且对所述游程中的每个信号的幅度和符号进行编码;
所述事件的识别还包括识别第二种事件,每个所述第二种事件是出现在所述第一区域中的具有最可能出现的值的连续信号的游程;以及
所述形成针对识别出的事件的码字包括形成针对所述第二种事件的码字,包括利用第二游程长度编码方法对具有最可能出现的值的所述连续信号的游程长度进行编码,
其中所述第二区域编码方法包括标识包括结束于其值不等于最可能出现的值的一个信号的所述第二区域中具有最可能出现的值的连续信号的游程的事件,并且利用第三编码方法对所述第二区域中的标识出的事件进行编码,所述编码包括指示结尾的一个信号的幅度不等于其次最可能出现的值和最可能出现的值,并且
其中所述第三编码方法包括可变长度代码,使得形成相对较短的码字来表示出现可能性相对较大的值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值的序列。
169.如权利要求168所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,
170.如权利要求169中所述的设备,
其中所述第三编码方法包括利用第三可变长度游程长度编码方法对结束于幅度为1的系数的连续零值系数的游程长度进行编码,
所述设备还包括:
用于标识包括结束于一个幅度大于1的系数的所述第二区域中的连续零幅度系数的游程的事件的装置;
用于进而利用所述第三编码方法结合例外码对标识到的结束于幅度大于1的系数的事件进行编码的装置;
用于对非零值系数的符号进行编码的装置;
用于对所述第一区域中的非零值系数的幅度进行编码的装置;以及
用于对所述第二区域中大于1的幅度进行编码的装置。
171.如权利要求169中所述的设备,
其中还生成针对所述第二区域中幅度大于1的每个非零值系数的幅度和符号的码字。
172.如权利要求169中所述的设备,
其中提供了第一游程长度代码表格、第二游程长度代码表格和第一幅度代码表格用以对所述第一区域中的信息进行编码,
其中所述第一游程长度代码表格用于存储针对非零值系数的一组游程长度的多个码字,所述第一游程长度代码表格被组织为使得出现可能性较大的游程长度相比出现可能性较小的游程长度具有较短的码字,
其中所述第二游程长度代码表格用于存储针对零值系数的一组游程长度的多个码字,所述第二游程长度代码表格被组织为使得出现可能性较大的游程长度相比出现可能性较小的游程长度具有较短的码字,
其中所述第一幅度代码表格用于存储针对非零值系数的每个游程中的系数的幅度的多个码字,
其中所述形成针对所述第一种事件的码字包括查找所述第一游程长度代码表格,并且还包括查找所述第一幅度代码表格,并且
其中所述形成针对所述第二种事件的码字包括查找所述第二游程长度代码表格。
173.如权利要求172中所述的设备,
其中提供了第三游程长度代码表格和第二幅度代码表格用于对所述第二区域中的信息进行编码,
其中所述第三游程长度代码表格用于存储针对结束于幅度为1的系数并且出现在所述第二区域中的零值系数的一组游程长度的多个码字,所述第三游程长度代码表格被组织为使得所述出现可能性较大的游程长度相比所述出现可能性较小的游程长度具有较短的码字,
其中所述第二幅度代码表格用于存储针对出现在所述第二区域中的非零值系数的大于1的幅度的多个码字,并且
其中所述对所述第二区域中的标识出的事件进行编码包括查找所述第三游程长度代码表格和所述第二幅度代码表格。
174.如权利要求162所述的设备,
其中所述系列被所述断点和针对包括所述第二区域的每个区域的额外断点分成两个以上的区域,所述设备还包括:
用于对出现在由相应的额外断点限定的每个额外区域中的信号进行编码的装置,所述编码使用不同于在其它区域中所使用的编码方法的编码方法。
175.如权利要求162中所述的设备,
其中所述第一区域编码方法包括针对非零值系数的游程长度的码字,以及针对每个游程中的所述非零值系数的幅度和符号的一组码字。
176.如权利要求162所述的设备,
其中针对所述第一区域中的系数的码字开始于所述第一游程长度编码方法的码字并且在所述第一游程长度编码方法和所述第二游程长度编码方法之间交替,并且其中所述第一游程长度编码方法的码字中的一个码字是指示所遇到的第一游程是零游程的特定码字,使得所述第二游程长度编码方法的码字跟在所述第一游程长度编码方法的特定码字之后。
177.如权利要求162所述的设备,
其中提供了第一游程长度代码表格、第二游程长度代码表格和第一幅度代码表格用以对所述第一区域中的信息进行编码,
其中所述第一游程长度代码表格用于存储针对非零值系数的一组游程长度的多个码字,所述第一游程长度代码表格被组织为使得出现可能性较大的游程长度相比出现可能性较小的游程长度具有较短的码字,
其中所述第二游程长度代码表格用于存储针对零值系数的一组游程长度的多个码字,所述第二游程长度代码表格被组织为使得出现可能性较大的游程长度相比出现可能性较小的游程长度具有较短的码字,
其中所述第一幅度代码表格用于存储针对非零值系数的每个游程中的系数的幅度的多个码字,
其中所述形成所述第一种事件的码字包括查找所述第一游程长度代码表格,并且还包括查找所述第一幅度代码表格,并且
其中所述形成针对所述第二种事件的码字包括查找所述第二游程长度代码表格。
178.如权利要求177中所述的设备,
其中提供了第三游程长度代码表格和第二幅度代码表格用于对所述第二区域中的信息进行编码,
其中所述第三游程长度代码表格用于存储针对出现在所述第二区域中的零值系数的一组游程长度的多个码字,所述第三游程长度代码表格被组织为使得所述出现可能性较大的游程长度相比所述出现可能性较小的游程长度具有较短的码字,
其中所述第二幅度代码表格用于存储针对出现在所述第二区域中的非零系数的幅度的多个码字,并且
其中对所述第二区域中的标识出的第三种事件包括查找所述第三游程长度代码表格。
179.一种对比特流进行解码以形成数字信号的有序系列的解码设备,每个所述的数字信号的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限幅度集合,所述比特流是利用权利要求1所述的方法进行编码的,
所述解码设备包括:
用于识别码字的装置;
用于确定由识别出的码字表示的事件的装置;以及
用于确定每个确定出的事件的系数直到所述系列中的所有系数都被确定为止的装置。
180.如权利要求161、168或179所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
其中所述断点的值是预先选择的。
181.如权利要求161、168或179所述的设备,
其中所述设备能够应用于帧间图像数据块,并且其中第一预先选择的断点值被用于针对第一种帧间编码的帧间图像数据,并且第二预先选择的断点值被用于针对第二种帧间编码的帧间图像数据。
182.如权利要求181中所述的设备,其中所述第一种帧间编码相比所述第二种帧间编码具有较高的比特率。
183.如权利要求161、168或179所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
其中根据依赖于图像的标准从预定断点值的有限集选择所述断点的值。
184.如权利要求183中所述的设备,其中根据所述预定断点值的有限集中哪一个断点产生的比特数最少从所述预定断点值的有限集中选择所述断点的值。
185.如权利要求158或179所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
其中所述变换后的图像数据块包括DC项,并且其中所述DC项是被单独编码的,使得所述数字信号的有序系列为变换后的图像数据块的一组非DC量化系数。
186.如权利要求158或179所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
其中所述断点限定了所述第一和第二区域之间的硬边界。
187.如权利要求161、168或179所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
其中所述断点限定了所述第一和第二区域之间的软边界,使得对于开始于所述断点之前并且经过所述断点的事件,所述第一和第二区域之间的边界在该事件的结尾,以使得整个该事件处于所述第一区域中。
188.如权利要求158或179所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,并且
这里所述设备还包括:
用于为至少一些识别出的事件形成固定长度的码字的装置。
189.如权利要求188中所述的设备,其中所述第一区域编码方法包括为所述第一区域中的至少一些识别出的事件形成固定长度的码字。
190.如权利要求188中所述的设备,其中所述第二区域编码方法包括为所述第二区域中的至少一些识别出的事件形成固定长度的码字。
191.如权利要求188中所述的设备,其中为其形成所述固定长度码的识别出的事件相比为其使用可变长度码字的识别出的事件出现的可能性较小,并且其中所述固定长度的码字至少与任一可变长度码字一样长。
192.如权利要求188中所述的设备,其中每个固定长度的码字包括转义码。
193.如权利要求162中所述的设备,还包括:
用于形成对何时所述系列的第二区域中所有余下的数字信号的幅度都为零的指示的装置。
194.如权利要求158中所述的设备,还包括:
用于根据所述数字信号的幅度分布将所述系列分类到多个类的特定类中的装置,所述多个类中的每个类具有形成针对所述系列的码字的相应的编码过程;
用于对于所述特定类的系列,应用与所述特定类相对应的编码过程来形成所述系列的一组码字的装置;以及
用于为所形成的码字添加指示来指示所述特定类的装置,
使得形成相对较短的码字来表示出现可能性相对较大的值或值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值或值的序列。
195.如权利要求194中所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1。
196.如权利要求195中所述的设备,
其中对于任何类型的图像存在两个类。
197.如权利要求195中所述的设备,
其中对于任何类型的图像存在至少四个类。
198.如权利要求197中所述的设备,其中所述类包括:
第一类的系列,其中沿着所述系数的排序的非零值系数具有非零值,包括不为±1的系数,并且其中所述非零值系数在整个所述排序上形成群集,使得沿着所述系数的排序的路径没有清晰的断点来标识其中非零值系数形成群集的第一区域和其中非零值系数分散的第二区域;
第二类的系列,其中沿着所述系数的排序的非零值系数具有非零值,包括不为±1的系数,并且其中沿着所述系数的排序的路径存在断点以标识其中非零值系数基本上形成群集的第一区域和其中所述非零值系数分散的第二区域;
第三类的系列,其中沿着所述系数的排序的非零值系数实质上大部分是值为±1的系数,并且其中沿着所述系数的排序的路径存在断点来标识其中这些非零值系数基本上形成群集的第一区域和其中这些非零值系数分散的第二区域;以及
第四类的系列,其中沿着所述系数的排序的非零值系数实质上大部分是值为±1的系数,并且其中所述非零值系数在整个所述排序上是分散的,使得沿着所述系数的排序的路径没有清晰的断点来标识其中非零值系数形成群集的第一区域和其中非零值系数分散的第二区域。
199.如权利要求195中所述的设备,
其中所述多个类取决于由以下各项构成的组中的至少一项:
所述图像块是帧内/静止图像块,还是帧间图像块;
所述图像块是标准清晰度电视图像块还是HDTV图像块;
所述设备是用于高比特率编码还是用于相对较低比特率的编码;以及
所述变换是DCT还是非DCT变换。
200.如权利要求195中所述的设备,
其中所述用于分类的装置使用所述系数系列。
201.如权利要求200中所述的设备,其中所述用于分类的装置包括用于根据由以下各项构成的统计标准组中的至少一项确定所述系数的统计信息的装置:
是否存在限定其中非零值系数形成群集的第一区域和其中所述非零值系数大部分分散的第二区域的断点;
所述非零值系数是大部分形成群集还是大部分分散;以及
区域中或所述整个块中的非零值系数的幅度是否基本上全部为1。
202.如权利要求200中所述的设备,其中所述用于分类的装置根据哪个类的相应的方法产生最大压缩的比特流来选择所述类。
203.如权利要求202中所述的设备,其中所述用于分类的装置包括顺序地应用所述相应的编码过程中的每一种,并且根据与所述特定类相对应的编码过程所产生的压缩选择所述特定类。
204.如权利要求202中所述的设备,其中所述用于分类的装置包括并行地应用所述相应的编码过程中的每一种,并且根据与所述特定类相对应的编码过程所产生的压缩选择所述特定类。
205.如权利要求195中所述的设备,
其中所述类中的一类具有相应的方法,该相应的方法包括:
标识非零值系数游程和零值系数游程;
利用为至少一些所述游程长度提供可变长度代码的第一游程长度编码方法对所述非零值系数游程的长度进行编码;
利用第一幅度编码方法对所述非零值系数游程中的幅度进行编码;并且
利用为至少一些所述游程长度提供可变长度代码的第二游程长度编码方法对所述非零值系数游程的长度进行编码。
206.如权利要求205中所述的设备,其中所述相应的方法还包括:
对所述非零值系数的符号进行编码。
207.如权利要求205中所述的设备,其中所述利用所述第一游程长度编码方法进行编码包括查找第一编码表格,并且其中所述利用所述第二游程长度编码方法进行编码包括查找第二编码表格。
208.如权利要求205中所述的设备,其中所述系数的码字开始于所述第一游程长度编码方法的码字并且在所述第一游程长度编码方法和所述第二游程长度编码方法之间交替,并且其中所述第一游程长度编码方法的码字中的一个码字是指示所遇到的第一游程是零游程的特定码字,使得所述第二游程长度编码方法的码字跟在所述第一游程长度编码方法的特定码字之后。
209.如权利要求205中所述的设备,其中所述类中的第二类具有第二相应的方法,该第二相应的方法包括:
提供断点来沿着所述系列的排序限定第一区域及其后面接着第二区域,其中第一区域和第二区域中的每一个是连续区域;
利用第一区域编码方法对所述第一区域的系数进行编码;并且
利用第二区域编码方法对所述第二区域中的系数进行编码,
其中所述第一区域编码方法和所述第二区域编码方法使得对所述第一区域中的至少一些系数的编码不同于对所述第二区域中的至少一些系数的编码。
210.如权利要求209中所述的设备,其中所述第二相应的方法包括:
提供至少一个额外断点,使得所述系列被所述断点和针对包括所述第二区域的每个区域的一个额外断点分成两个以上的区域;并且
对由相应的额外断点限定的每个额外区域中的系数进行编码,区域中相应的编码使用不同于在其它区域中所使用的编码方法的区域编码方法。
211.如权利要求209中所述的设备,其中所述断点的值是预先选择的。
212.如权利要求209中所述的设备,其中根据依赖于图像的标准从预定断点值的有限集选择所述断点的值。
213.如权利要求209中所述的设备,其中所述第二相应的方法能够应用于帧内图像数据和帧间图像数据块,并且其中第一预先选择的断点值被用于帧内图像数据,并且第二预先选择的断点值被用于帧间图像数据。
214.如权利要求209中所述的设备,其中所述断点限定了所述第一和第二区域之间的硬边界。
215.如权利要求209中所述的设备,其中所述断点限定了所述第一和第二区域之间的软边界,使得对于具有经过所述断点的连续非零值或连续零值序列的块,所述第一和第二区域之间的边界在该序列的结尾,使得整个该序列都在所述第一区域中。
216.如权利要求209中所述的设备,其中所述第一区域编码方法包括:
标识所述第一区域中的非零值系数游程和所述第一区域中的零值系数游程;
利用为至少一些所述游程长度提供可变长度代码的第三游程长度编码方法对所述第一区域中的非零值系数游程的长度进行编码;
利用第二幅度编码方法对所述第一区域中的非零值系数游程中的幅度进行编码;并且
利用为至少一些所述游程长度提供可变长度代码的第四游程长度编码方法对所述第一区域中的非零值系数游程的长度进行编码。
217.如权利要求216中所述的设备,其中所述第一区域编码方法还包括:
对所述第一区域中的非零值系数的符号进行编码。
218.如权利要求216中所述的设备,其中所述利用所述第三游程长度编码方法进行编码包括查找第一编码表格,并且其中所述利用所述第四游程长度编码方法进行编码包括查找第二编码表格。
219.如权利要求216中所述的设备,
其中所述第二区域编码方法包括:
标识在所述第二区域中的非零值系数之前的所述第二区域中的连续零值系数游程,包括在非零值系数之前没有零值系数的游程;
利用第五可变长度游程长度编码方法对标识出的零值系数游程的游程长度进行编码;
对在所述第二区域中每个标识出的零值系数游程之后的非零值系数的幅度进行编码;并且
对在所述第二区域中每个标识出的零值系数游程之后的非零值系数的符号进行编码。
220.如权利要求219中所述的设备,其中所述第五编码方法包括为所述第二区域中的至少一些游程长度形成固定长度的码字。
221.如权利要求219中所述的设备,其中所述第二区域编码方法包括:
标识所述第二区域中的连续零值系数游程后面接着所述第二区域中的一个非零值系数的事件,包括没有零值系数的游程后面接着一个非零值系数的事件,所述标识包括标识其中结尾的非零值系数的幅度不为1的事件;
对于标识出的其中接在所述零值系数游程之后的非零值系数的幅度为1的事件,利用第五可变长度游程长度编码方法对所述事件进行编码;
对于标识出的其中接在所述零值系数游程之后的非零值系数的幅度不为1的事件,利用第五可变长度游程长度编码方法和将所述事件标识为例外的例外码对每个事件进行编码,并且再对所述幅度不为1的系数的幅度进行编码;并且
对作为所述第二区域中的每个标识出的事件的结束的非零值系数的符号进行编码。
222.如权利要求221中所述的设备,其中所述第五编码方法包括为所述第二区域中的至少一些游程长度形成固定长度的码字。
223.如权利要求195中所述的设备,
其中所述类中的一类具有相应的方法,该相应的方法包括:
标识幅度为1的系数的游程和零值系数游程;
利用为至少一些所述游程长度提供可变长度代码的第一游程长度编码方法对所述幅度为1的系数的游程的长度进行编码;
对所述幅度为1的系数的符号进行编码;
标识任一幅度不为1的非零系数,并且利用幅度编码方法对幅度不为1的非零值系数的幅度进行编码;
对所述幅度不为1的非零值系数的符号进行编码;并且
利用为至少一些所述游程长度提供可变长度代码的第二游程长度编码方法对非零值系数的游程的长度进行编码。
224.如权利要求223中所述的设备,其中所述利用所述第一游程长度编码方法进行编码包括查找第一编码表格,并且其中所述利用所述第二游程长度编码方法进行编码包括查找第二编码表格。
225.如权利要求195中所述的设备,
其中所述类中的一类具有相应的方法,该相应的方法包括:
标识非零值系数游程和零值系数游程,包括标识任何幅度不为1的非零值系数;
利用为至少一些所述游程长度提供可变长度代码的第一游程长度编码方法对所述非零值系数游程的长度进行编码;
对所述非零值系数的符号进行编码;
利用例外码对任一非零值系数游程中存在任一幅度不为1的非零值系数进行编码,并且再利用幅度编码方法对幅度不为1的非零值系数的幅度进行编码;
对所述幅度不为1的非零值系数的符号进行编码;并且
利用为至少一些所述游程长度提供可变长度代码的第二游程长度编码方法对所述非零值系数游程的长度进行编码。
226.如权利要求225中所述的设备,其中所述利用所述第一游程长度编码方法进行编码包括查找第一编码表格,并且其中所述利用所述第二游程长度编码方法进行编码包括查找第二编码表格。
227.如权利要求195中所述的设备,
其中所述类中的一类具有相应的方法,该相应的方法包括:
标识结束于非零系数的零值系数游程,包括没有零值系数的游程后面接着一个非零值系数;
利用为至少一些所述游程长度提供可变长度代码的游程长度编码方法对所述零值系数游程的长度进行编码;并且
对于每个标识出的游程,根据幅度编码方法对所述非零值系数的幅度进行编码。
228.如权利要求227中所述的设备,其中所述相应的方法还包括:
对所述非零值系数的符号进行编码。
229.如权利要求227中所述的设备,其中所述利用所述游程长度编码方法进行编码包括查找编码表格。
230.如权利要求195中所述的设备,
其中所述类中的一类具有相应的方法,该相应的方法包括:
标识连续的零值系数游程后面接着一个非零值系数的事件,包括没有零值系数的游程后面接着一个非零值系数的事件,所述标识包括标识其中结尾非零值系数的幅度不为1的事件;
对于标识出的其中跟在所述零值系数游程之后的所述非零值系数的幅度为1的事件,利用为至少一些所述事件提供可变长度代码的可变长度游程长度编码方法对所述事件进行编码;并且
对于标识出的其中跟在所述零值系数游程之后的所述非零值系数的幅度为1的事件,利用所述可变长度游程长度编码方法和将所述事件标识为例外的例外码对每个事件进行编码,并且再利用幅度编码方法对所述幅度不为1的幅度进行编码。
231.如权利要求230中所述的设备,其中所述相应的方法还包括:
对所述非零值系数的符号进行编码。
232.如权利要求230中所述的设备,其中所述利用所述游程长度编码方法进行编码包括查找编码表格。
233.如权利要求195中所述的设备,
其中所述类中特定的一类具有相应的方法,该相应的方法包括:
提供断点来沿着所述系列的排序限定第一区域及其后面接着的第二区域,其中第一区域和第二区域中的每一个是连续区域;
利用第一区域编码方法对所述第一区域的系数进行编码;并且
利用第二区域编码方法对所述第二区域中的系数进行编码,
其中所述第一区域编码方法和所述第二区域编码方法使得对所述第一区域中的至少一些系数的编码不同于对所述第二区域中的至少一些系数的编码。
234.如权利要求233中所述的设备,其中所述特定类的相应的方法包括:
提供至少一个额外断点,使得所述系列被所述断点和针对包括所述第二区域的每个区域的一个额外断点分成两个以上的区域;并且
对由相应的额外断点限定的每个额外区域中的系数进行编码,区域中相应的编码使用不同于在其它区域中所使用的编码方法的区域编码方法。
235.如权利要求233中所述的设备,其中所述断点的值是预先选择的。
236.如权利要求233中所述的设备,其中根据依赖于图像的标准从预定断点值的有限集选择所述断点的值。
237.如权利要求233中所述的设备,其中与所述特定类相对应的编码过程能够应用于帧内图像数据和帧间图像数据块,并且其中第一预先选择的断点值被用于帧内图像数据,第二预先选择的断点值被用于帧间图像数据。
238.如权利要求233中所述的设备,其中所述断点限定了所述第一和第二区域之间的硬边界。
239.如权利要求233中所述的设备,其中所述断点限定了所述第一和第二区域之间的软边界,使得对于具有经过所述断点的连续非零值或连续零值序列的块,所述第一和第二区域之间的边界在该序列的结尾,使得整个该序列都在所述第一区域中。
240.如权利要求233中所述的设备,其中所述第一区域编码方法包括:
标识所述第一区域中的非零值系数游程和所述第一区域中的零值系数游程;
利用为至少一些所述游程长度提供可变长度代码的第一游程长度编码方法对所述第一区域中的非零值系数游程的长度进行编码;
利用第一幅度编码方法对所述第一区域中的非零值系数游程中的幅度进行编码;并且
利用为至少一些所述游程长度提供可变长度代码的第二游程长度编码方法对所述第一区域中的非零值系数游程的长度进行编码。
241.如权利要求240中所述的设备,其中所述第一区域编码方法还包括:
对所述第一区域中的非零值系数的符号进行编码。
242.如权利要求240中所述的设备,其中所述利用所述第一游程长度编码方法进行编码包括查找第一编码表格,并且其中所述利用所述第二游程长度编码方法进行编码包括查找第二编码表格。
243.如权利要求240中所述的设备,
其中所述第二区域编码方法包括:
标识在所述第二区域中的非零值系数之前的所述第二区域中的连续零值系数游程,包括在非零值系数之前没有零值系数的游程;
利用第三可变长度游程长度编码方法对标识出的零值系数游程的游程长度进行编码;
对在所述第二区域中每个标识出的零值系数游程之后的非零值系数的幅度进行编码;并且
对在所述第二区域中每个标识出的零值系数游程之后的非零值系数的符号进行编码。
244.如权利要求243中所述的设备,其中所述第三编码方法包括为所述第二区域中的至少一些游程长度形成固定长度的码字。
245.如权利要求243中所述的设备,其中所述第二区域编码方法包括:
标识所述第二区域中的连续零值系数游程后面接着所述第二区域中的一个非零值系数的事件,包括没有零值系数的游程后面接着一个非零值系数的事件,所述标识包括标识其中结尾的非零值系数的幅度不为1的事件;
对于标识出的其中接在所述零值系数游程之后的非零值系数的幅度为1的事件,利用第三可变长度游程长度编码方法对所述事件进行编码;
对于标识出的其中接在所述零值系数游程之后的非零值系数的幅度不为1的事件,利用第三可变长度游程长度编码方法和将所述事件标识为例外的例外码对每个事件进行编码,并且再利用第二幅度编码方法对所述幅度不为1的系数的幅度进行编码;并且
对作为所述第二区域中的每个标识出的事件的结束的非零值系数的符号进行编码。
246.如权利要求245中所述的设备,其中所述第三编码方法包括为所述第二区域中的至少一些游程长度形成固定长度的码字。
247.一种用于处理数字信号的有序系列的设备,所述数字信号中每一个的幅度取自于由最可能出现的幅度和至少一个其它幅度构成的有限的幅度集,所述处理用以减少用于表示所述数字信号的数据量并且形成码字,使得出现的可能性较大的数字信号值或数字信号值的序列由相对较短的码字表示,并且出现的可能性较小的数字信号值或数字信号值的序列由相对较长的码字表示,所述设备包括:
用于对于系列中的为一连续区域的第一区域执行以下操作的装置:
标识每个包括在其值不等于最可能出现的幅度的一个或多个连续信号的游程之前的具有最可能出现的幅度的连续系数的游程的事件,包括在其值不等于最可能出现的幅度的一个或多个连续信号的游程之前没有具有最可能出现的幅度的系数的事件;
对于每个标识出的事件,利用码字对在前的最可能出现的幅度的游程和之后不是最可能出现的幅度的游程的游程长度进行联合编码,使得对于至少一些事件,与出现的可能性相对较小的游程长度相比,利用较短的码字来对出现的可能性相对较大的游程长度对进行编码;
对于每个标识出的事件,对幅度不是所述最可能出现的幅度的连续信号的游程中的每个幅度进行编码,所述编码根据幅度编码方法,
使得形成相对较短的码字来表示出现可能性相对较大的值或值的序列,并且形成相对较长的码字来表示出现可能性相对较小的值或值的序列。
248.如权利要求247中所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,使得所述标识事件标识每个包括零值系数游程在一个或多个非零值系数游程之前的事件,包括在非零值系数游程之前没有零值系数的事件。
249.如权利要求248中所述的设备,其中所述变换后的图像数据块包括DC项,并且其中所述DC项是被单独编码的,使得所述数字信号的有序系列为变换后的图像数据块的一组非DC量化系数。
250.如权利要求248中所述的设备,还包括用于在第一区域中执行以下操作的装置:
对于每个标识出的事件,对所述非零值系数游程中的所述非零值系数的符号进行编码。
251.如权利要求248中所述的设备,还包括:
用于提供沿着所述系列的排序限定第一区域及其后面接着的第二区域的断点的装置,其中所述第二区域是连续区域;使得利用第一区域编码方法对所述第一区域的系数进行编码,所述第一区域编码方法包括所述对事件进行标识,所述对所述事件的游程长度进行联合编码,以及所述对所述事件的非零值系数的幅度进行编码;以及
用于利用第二区域编码方法对所述第二区域中的系数进行编码的装置,并且
其中第一区域编码方法和第二区域编码方法使得对所述第一区域中的至少一些系数或系数的游程的编码不同于对所述第二区域中的至少一些系数或系数的游程的编码。
252.如权利要求251中所述的设备,还包括:
用于提供至少一个额外断点使得所述系列被所述断点和针对包括所述第二区域的每个区域的所述一个额外断点分成两个以上的区域的装置;以及
用于对由相应的额外断点限定的每个额外区域中的系数进行编码的装置,区域中相应的编码使用不同于用在其它区域中的编码方法的区域编码方法。
253.如权利要求251中所述的设备,其中所述断点的值是预先选择的。
254.如权利要求251中所述的设备,其中根据依赖于图像的标准从预定断点值的有限集选择所述断点的值。
255.如权利要求251中所述的设备,能够应用于帧内图像数据和帧间图像数据块,并且其中第一预先选择的断点值被用于帧内图像数据,第二预先选择的断点值被用于帧间图像数据。
256.如权利要求251中所述的设备,其中所述断点限定了所述第一和第二区域之间的硬边界。
257.如权利要求251中所述的设备,其中所述断点限定了所述第一和第二区域之间的软边界,使得对于具有经过所述断点的连续非零值序列的第一区域块中标识出的事件,所述第一和第二区域之间的边界在该事件的结尾,使得整个该事件都在所述第一区域中。
258.如权利要求248中所述的设备,其中所述对关于事件的游程长度的联合编码使用多维编码表格。
259.如权利要求248中所述的设备,其中所述被标识并且其游程长度被编码的事件的数目被限制,使得只有至多具有最大总数个系数的事件被标识,并且其中所述标识还标识具有最大总数个系数的全零事件以及结束于非零系数的具有最大总数个系数的事件,因此在对所述第一区域的系数的编码中能够避免转义码。
260.如权利要求259中所述的设备,其中所述第一区域包括第一标识出的事件;其中对所述第一区域中的事件的游程长度进行联合编码使用第一可变长度编码方法,并且其中对所述第一区域中的事件的非零幅度的幅度进行编码使用第一幅度编码方法,所述设备还包括:
用于提供沿着所述系列的排序限定所述第一区域之后的第二区域和所述第二区域之后的第三区域的断点的装置,其中第二区域和第三区域中的每一个是连续区域;使得利用第二区域编码方法对所述第二区域中的系数进行编码,所述第二区域编码方法包括:
标识每个包括零值系数游程在一个或多个非零值系数游程之前的事件,包括在一个或多个非零值系数的游程之前没有零值系数的事件;
对于所述第二区域中的每个标识出的事件,利用码字对在前的最可能出现的幅度的游程和之后不是最可能出现的幅度的游程的游程长度进行联合编码,使得对于至少一些事件,与出现的可能性相对较小的游程长度相比,利用较短的码字来对出现的可能性相对较大的游程长度对进行编码,所述对所述第二区域中的事件的游程长度的联合编码使用第二编码方法;
对于所述第二区域中的每个标识出的事件,对幅度不是所述最可能出现的幅度的连续信号的游程中的每个幅度进行编码,所述编码根据第二幅度编码方法;以及
用于利用第三区域编码方法对所述第三区域中的系数进行编码的装置。
261.如权利要求158中所述的设备,
其中,在所述第一区域编码方法中:
所述事件的识别包括识别第一种事件,每个所述第一种事件是出现在所述第一区域中的其值不等于最可能出现的值的连续信号的游程;
所述形成针对识别出的事件的码字包括形成针对所述第一种事件的码字,包括利用第一游程长度编码方法对所述连续信号的游程长度进行编码,并且形成利用所述第一游程长度编码方法对所述游程长度进行编码的码字;
所述事件的识别还包括识别第二种事件,每个所述第二种事件是出现在所述第一区域中的具有最可能出现的值的连续信号的游程;
所述形成针对识别出的事件的码字包括形成针对所述第一种事件的码字,包括利用第一游程长度编码方法对所述连续信号的游程长度进行编码,并且形成利用所述第一游程长度编码方法对所述游程长度进行编码的码字;并且
所述形成针对所述第一种识别出的事件的码字还包括针对所述第一种的每个标识出的事件,对幅度不是最可能出现的幅度的连续信号的游程中的多个连续值进行联合编码,所述联合编码根据幅度编码方法。
262.如权利要求261中所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,使得所述标识事件标识每个包括一个或多个非零值系数的游程的事件。
263.如权利要求262中所述的设备,其中所述变换后的图像数据块包括DC项,并且其中所述DC项是被单独编码的,使得所述数字信号的有序系列为变换后的图像数据块的一组非DC量化系数。
264.如权利要求262中所述的设备,其中所述对多个连续值的联合编码对多个幅度进行联合编码,并且对所述幅度的符号进行单独编码。
265.如权利要求262中所述的设备,其中所述对多个连续值的联合编码对包括幅度的符号的多个幅度进行联合编码,因此对于所述被联合编码的连续值,不使用单独的符号编码。
266.如权利要求262中所述的设备,其中所述对多个连续值的联合编码使用多维编码表格。
267.如权利要求262中所述的设备,
其中所述标识事件包括标识每个包括连续零值系数游程在一个或多个连续非零值系数的游程之前的事件,包括在一个或多个连续非零值系数的游程之前没有零值系数的事件;并且
其中所述联合编码包括对在前的零值系数游程和之后的非零值系数游程的游程长度进行联合编码,使得对于至少一些事件,与出现的可能性相对较小的游程长度相比,利用较短的码字来对出现的可能性相对较大的游程长度对进行编码。
268.如权利要求262中所述的设备,
其中所述标识事件包括标识一个或多个零值系数的游程长度和标识跟在零值系数游程之后的一个或多个非零值系数的游程长度;并且
其中对所述事件的编码包括利用第一游程长度编码方法对标识出的非零值系数游程的游程长度进行编码,以及利用第二游程长度编码方法对标识出的零值系数游程的游程长度进行编码,
使得对于至少一些事件,与出现可能性相对较小的游程长度相比,利用较短的码字对出现可能性相对较大的游程长度对进行编码。
269.如权利要求267中所述的设备,
其中所述第一区域编码方法包括所述对事件进行标识,所述对所述事件的游程长度进行联合编码,以及所述对所述事件的非零值系数的幅度进行编码,并且
其中所述第一区域编码方法和所述第二区域编码方法使得对所述第一区域中的至少一些系数或系数的游程的编码不同于对所述第二区域中的至少一些系数或系数的游程的编码。
270.如权利要求269中所述的设备,其中所述断点的值是预先选择的。
271.如权利要求269中所述的设备,其中根据依赖于图像的标准从预定断点值的有限集选择所述断点的值。
272.如权利要求269中所述的设备,能够应用于帧内图像数据和帧间图像数据块,并且其中第一预先选择的断点值被用于帧内图像数据,并且第二预先选择的断点值被用于帧间图像数据。
273.如权利要求269中所述的设备,其中所述断点限定了所述第一和第二区域之间的硬边界。
274.如权利要求269中所述的设备,其中所述断点限定了所述第一和第二区域之间的软边界,使得对于包括经过所述断点的连续非零值序列的第一区域的块中标识出的事件,所述第一和第二区域之间的边界在该事件的结尾,使得整个该事件都在所述第一区域中。
275.如权利要求267中所述的设备,其中所述对关于事件的游程长度的联合编码使用多维编码表格。
276.如权利要求267中所述的设备,其中所述被标识并且其游程长度被编码的事件的数目被限制,使得只有至多具有最大总数个系数的事件被标识,并且其中所述标识还标识具有最大总数个系数的全零事件以及结束于非零系数的具有最大总数个系数的事件,因此在对所述第一区域的系数的编码中能够避免转义码。
277.如权利要求158中所述的设备,
其中,在所述第一区域编码方法中:
所述对事件的识别包括识别第一种事件,每个所述第一种事件是其值不等于最可能出现的幅度的连续信号的游程;
所述形成针对识别出的事件的码字包括形成针对所述第一种事件的码字,包括针对至少一些识别出的具有不等于最可能出现的幅度的任何幅度的连续信号的游程,对于所述第一种标识出的事件中的每个游程,
对所述游程和任何具有最可能出现的幅度的中间的连续系数的相对位置和游程长度进行编码;
标识至少一个连续信号的幅度事件,标识出的幅度事件包括结束于幅度不等于其次最可能出现的幅度的信号的具有所述其次最可能出现的幅度的至少一个连续信号的序列,或者确定所述幅度事件只具有幅度不等于所述其次最可能出现的幅度的信号,或者确定所述幅度事件只具有幅度为所述其次最可能出现的幅度的连续信号的序列,针对标识出的游程的游程长度的每个标识出的事件由具有所述其次最可能出现的幅度的至少一个连续信号的序列的长度和结尾信号的幅度来限定;并且
利用至少一个码字对每个标识出的幅度事件进行编码,使得对于至少一些标识出的幅度事件,与出现可能性相对较小的幅度事件相比,利用较短的码字对出现可能性相对较大的幅度事件进行编码。
278.如权利要求277中所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,使得标识游程标识每个包括一个或多个非零值系数的游程,并且使得标识出的游程中的每个标识出的幅度事件包括结束于大于1的幅度的至少一个幅度为1的连续系数的序列,或者一个幅度大于1的系数,或者只有幅度为1的连续系数的序列。
279.如权利要求278中所述的设备,其中所述对幅度事件的标识针对所述系列中的每个标识出的非零系数游程。
280.如权利要求278中所述的设备,所述对幅度事件的标识针对所述系列中那些标识出的游程长度小于或等于预先选择的长度的非零系数游程,所述设备还包括:
用于针对标识出的游程长度大于所述预先选择的长度的连续非零系数的游程,对于每个标识出的具有较大游程长度的游程,执行以下操作的装置:
对标识出的游程以及具有最可能出现的幅度的任何插在中间的连续系数的相对位置和游程长度进行编码;
利用关于所述幅度的多维编码函数对所述非零幅度的非零幅度进行联合编码,以产生如下的码字,使得对于至少一些非零幅度的游程,相比出现可能性相对较小的幅度,利用较短的码字对出现可能性相对较大的幅度游程进行编码。
281.如权利要求278中所述的设备,其中所述变换后的图像数据块包括DC项,并且其中所述DC项是被单独编码的,使得所述数字信号的有序系列为变换后的图像数据块的一组非DC量化系数。
282.如权利要求278中所述的设备,其中所述对标识出的幅度事件的编码包括单独对所述幅度的符号进行编码。
283.如权利要求278中所述的设备,其中所述对标识出的幅度事件的编码,使用提供针对在前的幅度为1的系数的序列的游程长度和幅度大于1的结尾系数的幅度的每一对的码字的编码表格,因此针对标识出的非零系数游程的每个游程长度,能够使用不同的编码表格。
284.如权利要求283中所述的设备,其中所述编码表格通过根据所测出或假设的幅度事件的统计信息分配可变长度代码而构成。
285.如权利要求278中所述的设备,
其中所述标识游程是如下过程的一部分,所述过程包括标识后面接着一个零值系数的一个或多个连续非零值系数的游程之前的连续零值系数的游程,或者标识后面接着一个零值系统的一个或多个连续非零值系数的游程之前没有零值系数;并且
其中所述对所述相对位置的编码包括对在前的零值系数游程和在后的非零值系数游程的游程长度进行联合编码,使得对于至少一些幅度事件,相比出现可能性相对较小的游程长度,利用较短的码字对出现可能性相对较大的游程长度对进行编码。
286.如权利要求278中所述的设备,
其中所述标识每个包括幅度不为0的一个或多个连续信号的游程被包括在标识所述后面为一个零值系数的一个或多个非零值系数的游程长度以及标识在所述一个或多个非零值系数的游程之前的一个或多个零值系数的游程长度中;并且
其中所述对所述相对位置的编码包括:
利用第一游程长度编码方法对标识出的非零值系数游程的游程长度进行编码,并且利用第二游程长度编码方法对标识出的零值系数游程的游程长度进行编码,
使得对于至少一些幅度事件,相比出现可能性相对较小的游程长度,利用较短的码字对出现可能性相对较大的游程长度对进行编码。
287.如权利要求285中所述的设备:
其中所述第一区域编码方法包括所述对游程进行标识,所述对所述相对位置和游程长度进行编码,所述对幅度事件的标识,以及所述对标识出的幅度事件进行编码,并且
其中所述第一区域编码方法和所述第二区域编码方法使得对所述第一区域中的至少一些系数或系数的游程的编码不同于对所述第二区域中的至少一些系数或系数的游程的编码。
288.如权利要求285中所述的设备,其中所述对所述游程长度的联合编码使用二维编码表格。
289.如权利要求158中所述的设备,
其中,在所述第一区域编码方法中:
所述事件的识别包括标识每个包括具有不等于最可能出现的幅度的任何幅度的一个或多个连续信号的群集,以及任何插在中间的具有最可能出现的值的连续系数的游程,并且
其中所述第一区域编码方法还包括:
标识至少一个位置事件来限定标识出的具有不等于最可能出现的幅度的任何幅度的信号的群集,以及任何插在中间的具有最可能出现的值的连续系数的游程的相对位置和游程长度;
标识至少一个幅度事件,标识出的事件限定幅度不等于最可能出现的幅度的连续信号的群集中所述信号的幅度;并且
对标识出的位置事件和标识出的幅度事件进行联合编码,来对所述幅度不等于最可能出现的幅度的连续信号的相对位置和幅度进行联合编码,所述联合编码根据关于所述位置事件和所述幅度事件的多维编码函数,所述联合编码被布置为利用相对较短的码字来表示出现可能性较大的群集的相对位置和幅度,并且利用相对较长的码字来表示出现可能性较小的群集的相对位置和幅度。
290.如权利要求289中所述的设备,
其中所述数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1,使得标识群集标识每个包括至少一个连续非零值系数的群集。
291.如权利要求290中所述的设备,其中所述变换后的图像数据块包括DC项,并且其中所述DC项是被单独编码的,使得所述数字信号的有序系列为变换后的图像数据块的一组非DC量化系数。
292.如权利要求290中所述的设备,
其中所述标识位置事件标识后面接着一个零值系数的一个或多个连续非零值系数的游程之前的连续零值系数的游程,或者标识后面接着一个零值系统的一个或多个连续非零值系数的游程之前没有零值系数;并且
其中所述联合编码对在前的零值系数游程的游程长度、在后的非零值系数游程的游程长度以及所述幅度事件进行联合编码,使得对于至少一些游程长度和幅度事件的组合,相比出现可能性相对较小的组合,利用较短的码字对出现可能性相对较大的组合对进行编码。
293.如权利要求290中所述的设备,其中所述联合编码包括单独对所述群集中的幅度的符号进行编码,并且对所述位置事件和所述幅度事件进行联合编码。
294.如权利要求290中所述的设备,其中所述联合编码包括单独对所述群集中的幅度的符号进行编码,并且对所述位置事件和所述幅度事件进行联合编码。
295.如权利要求290中所述的设备,其中标识出的针对每个群集的幅度事件是所述非零幅度群集中的系数的非零幅度集,因此所述联合编码对所述位置事件和所述连续非零值系数群集中的多个连续非零幅度进行联合编码。
296.如权利要求290中所述的设备,其中所述标识幅度事件包括:
在每个标识出的群集中,标识包括结束于幅度大于1的系数的至少一个幅度为1的连续系数的序列的至少一个连续系数的幅度事件,或者确定所述事件只具有大于1的幅度,或者确定所述事件只具有幅度为1的连续系数的序列,每个标识出的针对标识出的群集的游程长度的事件由所述至少一个幅度为1的连续系数的序列的长度和结尾系数的幅度来限定。
297.如权利要求296中所述的设备,其中所述对标识出的位置和幅度事件进行联合编码使用多维编码表格,该表格提供针对所述位置代码和在前的幅度为1的系数序列的游程长度对,以及幅度大于1的结尾系数的幅度的组合的码字。
298.如权利要求290中所述的设备,其中所述标识幅度事件包括:
对于每个标识出的长度小于或等于预先选择的长度的群集,标识所述连续非零值系数群集中的连续非零幅度,使得根据对所述位置事件和所述非零幅度进行联合编码的多维编码方法进行所述联合编码;以及
对于每个标识出的长度大于所述预先选择的长度的群集:
标识包括结束于幅度大于1的系数的至少一个幅度为1的连续系数的序列的至少一个连续系数的幅度事件,或者确定所述事件只具有大于1的幅度,或者确定所述事件只具有幅度为1的连续系数的序列,每个标识出的针对标识出的群集的游程长度的事件由所述至少一个幅度为1的连续系数的序列的长度和结尾系数的幅度来限定;并且
根据对所述位置事件和所述幅度事件进行联合编码的多维编码方法对标识出的位置事件和幅度事件进行联合编码。
299.如权利要求292中所述的设备,
其中所述第一区域编码方法包括所述对群集进行标识,所述对所述相对位置和游程长度进行编码,所述对所述连续系数的幅度进行编码,以及所述联合编码,并且
其中所述第一区域编码方法和所述第二区域编码方法使得对所述第一区域中的至少一些系数或系数的游程的编码不同于对所述第二区域中的至少一些系数或系数的游程的编码。
300.如权利要求158中所述的设备,
其中所述设备被应用于多个数字信号的有序系列,并且其中所述沿着所述排序确立断点利用从所述多个系列的至少一个子集中计算得到的统计信息,所述统计信息是关于沿着所述多个系列的排序具有不是最可能出现的值的信号出现在具有不是最可能出现的值的连续信号的群集中的位置的信息。
301.如权利要求300中所述的设备,
其中每个数字信号的有序系列是通过对经由划分图像而得到的图像数据块进行变换以获得变换系数并对变换系数进行量化和排序而形成的变换后的图像数据块的量化系数系列,所述变换使得最可能出现的幅度为0,并且其次最可能出现的幅度为1。
302.如权利要求300中所述的设备,其中在所述被确立的断点使得所述第二区域为空区域的情况下,利用所述第一区域编码方法对所有量化系数进行编码,并且在所述被确立的断点使得所述第一区域为空区域的情况下,利用所述第二区域编码方法对所有量化系数进行编码。
303.如权利要求301中所述的设备,其中所述系列被所述断点和针对包括所述第二区域的每个区域的额外断点分成两个以上的区域,所述设备还包括:
用于对出现在由相应的额外断点限定的每个额外区域中的信号进行编码的装置,所述编码使用不同于在其它区域中所使用的编码方法的编码方法。
304.如权利要求301中所述的设备,
其中所述确立所述断点包括对于沿着所述排序的每个点,对其中所述点处的系数在群集中的系列的数目进行计数。
305.如权利要求304中所述的设备,
其中所述确立断点包括确定阈值点,使得群集中的大部分系数出现在所述阈值点之前的点处,并且仅在一直到所述阈值点的范围内搜索接近最佳的断点。
306.如权利要求305中所述的设备,
其中所述确立所述接近最佳的断点包括确定针对一直到所述阈值点的断点的所述多个系列的编码数据的长度,并且选择产生最短编码数据的断点。
307.如权利要求305中所述的设备,
其中所述阈值点是沿着所述排序的特定点,在该特定点处具有系数的系列的数目的计数值降到系列总数的预先选择的比例以下。
308.如权利要求307中所述的设备,
其中所述预先选择的比例为1/(每个系列中的非DC系数的数目)。
309.如权利要求305中所述的设备,
其中所述断点的确立包括沿着所述排序一直到所述阈值点确定其中所述在群集中的非零系数的数目的计数值的斜率为最大值的点。
310.如权利要求304中所述的设备,
其中所述断点的确立包括沿着所述排序确定其中所述在群集中的非零系数的数目的计数值的斜率为最大值的点。
Applications Claiming Priority (17)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/869,229 US7454076B2 (en) | 2004-06-15 | 2004-06-15 | Hybrid variable length coding method for low bit rate video coding |
US10/869,229 | 2004-06-15 | ||
US10/898,654 US7483584B2 (en) | 2004-06-15 | 2004-07-22 | Extended hybrid variable length coding of transform coefficients for video compression |
US10/898,654 | 2004-07-22 | ||
US10/910,712 US7454073B2 (en) | 2004-06-15 | 2004-08-03 | Video compression using multiple variable length coding processes for multiple classes of transform coefficient blocks |
US10/910,712 | 2004-08-03 | ||
US10/922,507 | 2004-08-18 | ||
US10/922,507 US7492956B2 (en) | 2004-08-18 | 2004-08-18 | Video coding using multi-dimensional amplitude coding and 2-D non-zero/zero cluster position coding |
US10/922,508 | 2004-08-18 | ||
US10/922,508 US7471840B2 (en) | 2004-08-18 | 2004-08-18 | Two-dimensional variable length coding of runs of zero and non-zero transform coefficients for image compression |
US11/069,622 US7499596B2 (en) | 2004-08-18 | 2005-02-28 | Amplitude coding for clustered transform coefficients |
US11/069,620 | 2005-02-28 | ||
US11/069,620 US7471841B2 (en) | 2004-06-15 | 2005-02-28 | Adaptive breakpoint for hybrid variable length coding |
US11/069,621 US7499595B2 (en) | 2004-08-18 | 2005-02-28 | Joint amplitude and position coding for photographic image and video coding |
US11/069,622 | 2005-02-28 | ||
US11/069,621 | 2005-02-28 | ||
PCT/US2005/020110 WO2006001994A2 (en) | 2004-06-15 | 2005-06-08 | Hybrid variable length coding for video compression |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210244557.0A Division CN102790880B (zh) | 2004-06-15 | 2005-06-08 | 用于视频压缩的混合可变长度编码的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101185083A CN101185083A (zh) | 2008-05-21 |
CN101185083B true CN101185083B (zh) | 2012-08-29 |
Family
ID=35460589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580019457.6A Expired - Fee Related CN101185083B (zh) | 2004-06-15 | 2005-06-08 | 用于视频压缩的混合可变长度编码的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7454076B2 (zh) |
CN (1) | CN101185083B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11786596B2 (en) | 2012-01-20 | 2023-10-17 | Velos Media, Llc | Multiple sign bit hiding within a transform unit |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DK1400954T3 (da) | 2002-09-04 | 2008-03-31 | Microsoft Corp | Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde/niveau-moduser |
US7680349B2 (en) * | 2004-08-18 | 2010-03-16 | Cisco Technology, Inc. | Variable length coding for clustered transform coefficients in video compression |
US7242328B1 (en) * | 2006-02-03 | 2007-07-10 | Cisco Technology, Inc. | Variable length coding for sparse coefficients |
US8135071B2 (en) | 2007-01-16 | 2012-03-13 | Cisco Technology, Inc. | Breakpoint determining for hybrid variable length coding using relationship to neighboring blocks |
US7796825B2 (en) | 2007-02-16 | 2010-09-14 | Cisco Technology, Inc. | Losslessly improving compression of compressed image data |
US8265162B2 (en) | 2007-10-01 | 2012-09-11 | Cisco Technology, Inc. | Context adaptive position and amplitude coding of coefficients for video compression |
US8041131B2 (en) * | 2007-10-02 | 2011-10-18 | Cisco Technology, Inc. | Variable length coding of coefficient clusters for image and video compression |
US8204327B2 (en) * | 2007-10-01 | 2012-06-19 | Cisco Technology, Inc. | Context adaptive hybrid variable length coding |
US8036471B2 (en) * | 2007-10-02 | 2011-10-11 | Cisco Technology, Inc. | Joint amplitude and position coding of coefficients for video compression |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
US8325796B2 (en) | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video coding using adaptive segmentation |
KR101196792B1 (ko) | 2008-12-03 | 2012-11-05 | 노키아 코포레이션 | Dct 계수 부호화 모드들 간의 전환 |
EP2214315A1 (en) * | 2009-01-30 | 2010-08-04 | Thomson Licensing | Method and device for encoding a bit sequence |
US9628794B2 (en) | 2009-06-18 | 2017-04-18 | Kabushiki Kaisha Toshiba | Video encoding apparatus and a video decoding apparatus |
EP2765779B1 (en) | 2009-06-18 | 2018-10-10 | Kabushiki Kaisha Toshiba | Video encoding apparatus |
CN103826132B (zh) * | 2009-06-18 | 2017-03-01 | 株式会社东芝 | 运动图像解码装置和运动图像解码方法 |
CN102131081A (zh) * | 2010-01-13 | 2011-07-20 | 华为技术有限公司 | 混合维度编解码方法和装置 |
US8934540B2 (en) | 2010-07-20 | 2015-01-13 | Cisco Technology, Inc. | Video compression using multiple variable length coding methods for multiple types of transform coefficient blocks |
JP5842357B2 (ja) * | 2011-03-25 | 2016-01-13 | 富士ゼロックス株式会社 | 画像処理装置及び画像処理プログラム |
US9154799B2 (en) | 2011-04-07 | 2015-10-06 | Google Inc. | Encoding and decoding motion via image segmentation |
US20130003859A1 (en) * | 2011-06-30 | 2013-01-03 | Qualcomm Incorporated | Transition between run and level coding modes |
US8737464B1 (en) | 2011-07-21 | 2014-05-27 | Cisco Technology, Inc. | Adaptive quantization for perceptual video coding |
CN103002275B (zh) * | 2011-09-13 | 2016-05-04 | 富士通株式会社 | 用于cavlc编码的双系数扫描方法 |
EP2618572B1 (en) * | 2012-01-20 | 2016-08-24 | BlackBerry Limited | Multiple sign bit hiding within a transform unit |
US9262670B2 (en) | 2012-02-10 | 2016-02-16 | Google Inc. | Adaptive region of interest |
US20140133574A1 (en) * | 2012-11-13 | 2014-05-15 | Mediatek Inc. | Method and Apparatus for Sign Data Hiding of Video and Image Data |
CN103731155A (zh) * | 2013-12-31 | 2014-04-16 | 成都华日通讯技术有限公司 | 无线电频谱信号的时域压缩方法 |
US9392272B1 (en) | 2014-06-02 | 2016-07-12 | Google Inc. | Video coding using adaptive source variance based partitioning |
US9578324B1 (en) | 2014-06-27 | 2017-02-21 | Google Inc. | Video coding using statistical-based spatially differentiated partitioning |
GB2557737B (en) | 2015-07-28 | 2021-05-12 | Halliburton Energy Services Inc | Sensor data compression for downhole telemetry applications |
CN116582134B (zh) * | 2023-07-11 | 2023-10-13 | 江苏盖亚环境科技股份有限公司 | 一种钻测一体化装备数据处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1097088A (zh) * | 1993-01-13 | 1995-01-04 | 汤姆森消费电子有限公司 | 一种自适应可变长度编码器/解码器 |
US5640420A (en) * | 1995-03-28 | 1997-06-17 | Daewoo Electronics Co., Ltd. | Variable length coder using two VLC tables |
US5751232A (en) * | 1993-07-30 | 1998-05-12 | Mitsubishi Denki Kabushiki Kaisha | High-efficiency encoding apparatus and high-efficiency decoding apparatus |
CN1473438A (zh) * | 2001-07-19 | 2004-02-04 | �ʼҷ����ֵ�������˾ | 压缩媒体信号处理 |
Family Cites Families (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4420771A (en) * | 1981-02-09 | 1983-12-13 | Bell Telephone Laboratories, Incorporated | Technique for encoding multi-level signals |
JPS61107818A (ja) | 1984-10-30 | 1986-05-26 | Nec Corp | エントロピ−符号化方式とその装置 |
US4698672A (en) | 1986-10-27 | 1987-10-06 | Compression Labs, Inc. | Coding system for reducing redundancy |
IT1197948B (it) | 1986-11-04 | 1988-12-21 | Telettra Lab Telefon | Codice a lunghezza variabile e dispositivi per trasmissione ad alta frequenza |
US4920426A (en) | 1986-11-10 | 1990-04-24 | Kokusai Denshin Denwa Co., Ltd. | Image coding system coding digital image signals by forming a histogram of a coefficient signal sequence to estimate an amount of information |
SE454734B (sv) | 1987-02-20 | 1988-05-24 | Harald Brusewitz | Forfarande och anordning for sendning och mottagning vid variabel lengdkodning |
JP2508439B2 (ja) | 1987-05-29 | 1996-06-19 | ソニー株式会社 | 高能率符号化装置 |
US5371811A (en) | 1987-07-09 | 1994-12-06 | British Telecommunications Public Limited Company | Data encoding |
GB8717124D0 (en) | 1987-07-20 | 1987-08-26 | British Telecomm | P c m signal coding |
GB8722394D0 (en) | 1987-09-23 | 1987-10-28 | British Telecomm | Video coder |
US4813056A (en) | 1987-12-08 | 1989-03-14 | General Electric Company | Modified statistical coding of digital signals |
US4858017A (en) | 1988-01-22 | 1989-08-15 | The Trustees Of Columbia University In The City Of New York | System and method for hierarchal image encoding and decoding |
US4985700A (en) | 1988-03-01 | 1991-01-15 | Canon Kabushiki Kaisha | Variable-length coding/decoding device |
US4821119A (en) | 1988-05-04 | 1989-04-11 | Bell Communications Research, Inc. | Method and apparatus for low bit-rate interframe video coding |
US5128758A (en) | 1989-06-02 | 1992-07-07 | North American Philips Corporation | Method and apparatus for digitally processing a high definition television augmentation signal |
US5179442A (en) | 1989-06-02 | 1993-01-12 | North American Philips Corporation | Method and apparatus for digitally processing a high definition television augmentation signal |
EP0406508B1 (en) | 1989-07-04 | 1993-09-29 | Rai Radiotelevisione Italiana | Device for reducing the redundancy in blocks of digital video data in dct encoding |
US5086488A (en) | 1989-08-19 | 1992-02-04 | Mitsubishi Denki Kabushiki Kaisha | Transform coding apparatus |
JPH0832039B2 (ja) | 1989-08-19 | 1996-03-27 | 日本ビクター株式会社 | 可変長符号化方法及びその装置 |
JPH0379182A (ja) | 1989-08-23 | 1991-04-04 | Fujitsu Ltd | 画像符号化制御方式 |
JPH03129987A (ja) | 1989-10-14 | 1991-06-03 | Sony Corp | 映像信号符号化装置及び映像信号符号化方法 |
DE69032177T2 (de) | 1989-12-25 | 1998-11-12 | Mitsubishi Electric Corp | Kodierungsgerät |
JP3013381B2 (ja) | 1990-03-28 | 2000-02-28 | ソニー株式会社 | 可変長データの復号装置 |
US5291282A (en) | 1990-04-19 | 1994-03-01 | Olympus Optical Co., Ltd. | Image data coding apparatus and method capable of controlling amount of codes |
DE69130275T2 (de) | 1990-07-31 | 1999-04-08 | Canon Kk | Verfahren und Gerät zur Bildverarbeitung |
DE69125329T2 (de) | 1990-09-10 | 1997-10-09 | Mitsubishi Electric Corp | Kodiervorrichtung für digitale Bilddaten |
JPH04185119A (ja) | 1990-11-20 | 1992-07-02 | Matsushita Electric Ind Co Ltd | 可変長符号化装置 |
USRE35093E (en) | 1990-12-03 | 1995-11-21 | The Trustees Of Columbia University In The City Of New York | Systems and methods for coding even fields of interlaced video sequences |
US5253053A (en) | 1990-12-31 | 1993-10-12 | Apple Computer, Inc. | Variable length decoding using lookup tables |
DE69225621T2 (de) | 1991-01-17 | 1998-11-12 | Mitsubishi Electric Corp | Vorrichtung zur Kodierung eines Videosignals |
EP0497545B1 (en) | 1991-01-29 | 1997-01-08 | Canon Kabushiki Kaisha | Image signal coding device |
WO1992019074A1 (en) | 1991-04-10 | 1992-10-29 | Mitsubishi Denki Kabushiki Kaisha | Encoder and decoder |
JPH0541862A (ja) | 1991-08-03 | 1993-02-19 | Sony Corp | 動きベクトルの可変長符号化方式 |
JPH0568243A (ja) | 1991-09-09 | 1993-03-19 | Hitachi Ltd | 可変長符号化制御方式 |
US5475501A (en) | 1991-09-30 | 1995-12-12 | Sony Corporation | Picture encoding and/or decoding method and apparatus |
NO175080B (no) | 1992-03-11 | 1994-05-16 | Teledirektoratets Forskningsav | Fremgangsmåte for koding av bildedata |
KR0160610B1 (ko) | 1992-04-07 | 1999-01-15 | 강진구 | 가변장부호화에 의한 영상압축방법과 신장방법 및 그 장치 |
JP2697479B2 (ja) | 1992-04-17 | 1998-01-14 | 国際電信電話株式会社 | 可逆可変長符号化方式 |
JPH05344490A (ja) | 1992-06-10 | 1993-12-24 | Canon Inc | 符号化方法および符号化装置 |
US5226082A (en) | 1992-07-02 | 1993-07-06 | At&T Bell Laboratories | Variable length decoder |
US5253055A (en) | 1992-07-02 | 1993-10-12 | At&T Bell Laboratories | Efficient frequency scalable video encoding with coefficient selection |
US5363097A (en) | 1992-09-14 | 1994-11-08 | Industrial Technology Research Institute | Direct sequential-bit variable length decoder |
US5982437A (en) | 1992-10-26 | 1999-11-09 | Sony Corporation | Coding method and system, and decoding method and system |
KR0129558B1 (ko) | 1992-10-26 | 1998-04-10 | 배순훈 | 적응적 가변길이 부호화 방법 및 장치 |
US5717394A (en) | 1993-02-10 | 1998-02-10 | Ricoh Company Ltd. | Method and apparatus for encoding and decoding data |
JP3446237B2 (ja) | 1993-04-16 | 2003-09-16 | ソニー株式会社 | 可変長符号テーブル生成方法及び装置 |
US5479527A (en) | 1993-12-08 | 1995-12-26 | Industrial Technology Research Inst. | Variable length coding system |
KR0155784B1 (ko) | 1993-12-16 | 1998-12-15 | 김광호 | 영상데이타의 적응형 가변장 부호화/복호화방법 |
KR970009408B1 (ko) | 1994-01-18 | 1997-06-13 | 대우전자 주식회사 | 인터/인트라 테이블 선택 회로 |
US5675501A (en) * | 1994-03-15 | 1997-10-07 | Kabushiki Kaisha Toshiba | Method of designing semiconductor integrated circuit apparatus having no dead space |
US5491480A (en) | 1994-05-25 | 1996-02-13 | Industrial Technology Research Institute | Variable length decoder using serial and parallel processing |
JP3220598B2 (ja) | 1994-08-31 | 2001-10-22 | 三菱電機株式会社 | 可変長符号テーブルおよび可変長符号化装置 |
JPH08102943A (ja) | 1994-09-30 | 1996-04-16 | Fuji Xerox Co Ltd | 画像符号化装置 |
KR100209877B1 (ko) | 1994-11-26 | 1999-07-15 | 윤종용 | 복수개의 허프만부호테이블을 이용한 가변장부호화장치 및 복호화장치 |
KR0139161B1 (ko) | 1994-11-26 | 1998-05-15 | 김광호 | 가변장부호테이블의 심볼-부호어 재배정을 이용한 가변장 부호화/복호화 장치 |
KR0139164B1 (ko) | 1994-12-19 | 1998-06-01 | 김광호 | 적응적 직교변환부호화 장치 |
US6104754A (en) | 1995-03-15 | 2000-08-15 | Kabushiki Kaisha Toshiba | Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system |
EP1802136A3 (en) | 1995-03-15 | 2008-11-12 | Kabushiki Kaisha Toshiba | Moving picture coding and/or decoding systems |
US5648774A (en) | 1995-05-08 | 1997-07-15 | Industrial Technology Research Institute | Variable length coding with three-field codes |
JP3226439B2 (ja) | 1995-06-02 | 2001-11-05 | 松下電器産業株式会社 | 画像符号化方法および画像復号方法 |
JP3992303B2 (ja) | 1995-06-22 | 2007-10-17 | ソニー株式会社 | 信号圧縮装置と信号伸長装置および信号圧縮方法と信号伸長方法 |
US5740283A (en) | 1995-07-06 | 1998-04-14 | Rubin, Bednarek & Associates, Inc. | Digital video compression utilizing mixed vector and scalar outputs |
KR100188934B1 (ko) | 1995-08-28 | 1999-06-01 | 윤종용 | 영상 신호 부호화 장치 및 방법 |
JP3355888B2 (ja) | 1995-09-19 | 2002-12-09 | 松下電器産業株式会社 | 画像符号化記録再生装置 |
KR100304660B1 (ko) | 1995-09-22 | 2001-11-22 | 윤종용 | 누적에러처리를통한비디오신호부호화방법및부호화기 |
JP3267142B2 (ja) | 1996-02-23 | 2002-03-18 | ケイディーディーアイ株式会社 | 可変長符号生成装置 |
US5818877A (en) | 1996-03-14 | 1998-10-06 | The Regents Of The University Of California | Method for reducing storage requirements for grouped data values |
DE69735680T2 (de) | 1996-11-06 | 2006-11-23 | Matsushita Electric Industrial Co., Ltd., Kadoma | Verfahren zur Bilddecodierung |
JP2870515B2 (ja) | 1996-12-27 | 1999-03-17 | 日本電気株式会社 | 可変長符号化装置 |
SE512613C2 (sv) | 1996-12-30 | 2000-04-10 | Ericsson Telefon Ab L M | Metod och organ för informationshantering |
ES2195965T3 (es) | 1997-02-08 | 2003-12-16 | Matsushita Electric Ind Co Ltd | Matriz de cuantificacion para el decodificado de imagenes fijas y en movimiento. |
US6304607B1 (en) | 1997-03-18 | 2001-10-16 | Texas Instruments Incorporated | Error resilient video coding using reversible variable length codes (RVLCS) |
JP3410629B2 (ja) | 1997-05-21 | 2003-05-26 | シャープ株式会社 | 可変長符号化回路及び可変長符号化方法 |
US6118822A (en) | 1997-12-01 | 2000-09-12 | Conexant Systems, Inc. | Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes |
US6111914A (en) | 1997-12-01 | 2000-08-29 | Conexant Systems, Inc. | Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes |
US7263127B1 (en) | 1998-04-02 | 2007-08-28 | Intel Corporation | Method and apparatus for simplifying frame-based motion estimation |
JP2000059234A (ja) | 1998-08-10 | 2000-02-25 | Mitsubishi Electric Corp | 可変長符号処理装置 |
KR100335138B1 (ko) | 1998-12-30 | 2002-11-27 | 엘지정보통신주식회사 | 비디오코더의가변부호화기및이를이용한코딩방법 |
US6477280B1 (en) | 1999-03-26 | 2002-11-05 | Microsoft Corporation | Lossless adaptive encoding of finite alphabet data |
TW425776B (en) | 1999-08-11 | 2001-03-11 | Cyberlink Corp | Method for generating symmetric reversible variable length code |
US6445314B1 (en) | 2000-03-01 | 2002-09-03 | Cisco Technology Inc. | System and method for the decoding of variable length codes |
US6771828B1 (en) | 2000-03-03 | 2004-08-03 | Microsoft Corporation | System and method for progessively transform coding digital data |
JP4109404B2 (ja) | 2000-04-26 | 2008-07-02 | 松下電器産業株式会社 | 符号化装置および符号化方法 |
US6918069B2 (en) | 2002-04-16 | 2005-07-12 | Cisco Technology, Inc. | Optimum threshold for FEC transponders |
US7194137B2 (en) | 2003-05-16 | 2007-03-20 | Cisco Technology, Inc. | Variable length coding method and apparatus for video compression |
US7519229B2 (en) * | 2004-03-30 | 2009-04-14 | Apple, Inc. | Video coding system providing separate coding chains for dynamically selected small-size or full-size playback |
-
2004
- 2004-06-15 US US10/869,229 patent/US7454076B2/en not_active Expired - Fee Related
- 2004-07-22 US US10/898,654 patent/US7483584B2/en not_active Expired - Fee Related
-
2005
- 2005-06-08 CN CN200580019457.6A patent/CN101185083B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1097088A (zh) * | 1993-01-13 | 1995-01-04 | 汤姆森消费电子有限公司 | 一种自适应可变长度编码器/解码器 |
US5751232A (en) * | 1993-07-30 | 1998-05-12 | Mitsubishi Denki Kabushiki Kaisha | High-efficiency encoding apparatus and high-efficiency decoding apparatus |
US5640420A (en) * | 1995-03-28 | 1997-06-17 | Daewoo Electronics Co., Ltd. | Variable length coder using two VLC tables |
CN1473438A (zh) * | 2001-07-19 | 2004-02-04 | �ʼҷ����ֵ�������˾ | 压缩媒体信号处理 |
Non-Patent Citations (2)
Title |
---|
CN 1097088 A,全文. |
同上. |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11786596B2 (en) | 2012-01-20 | 2023-10-17 | Velos Media, Llc | Multiple sign bit hiding within a transform unit |
Also Published As
Publication number | Publication date |
---|---|
US20050276497A1 (en) | 2005-12-15 |
US7454076B2 (en) | 2008-11-18 |
US20050276487A1 (en) | 2005-12-15 |
US7483584B2 (en) | 2009-01-27 |
CN101185083A (zh) | 2008-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101185083B (zh) | 用于视频压缩的混合可变长度编码的方法和设备 | |
CN103004195B (zh) | 将多种可变长度编码方法用于多种类型的变换系数块的视频压缩 | |
JP6140850B2 (ja) | ビデオ復号化方法及びビデオ復号化装置 | |
US8121427B2 (en) | Breakpoint determining for hybrid variable length coding and encoding the determined breakpoint | |
TWI556632B (zh) | 視訊之算術編碼方法及其裝置、以及視訊之算術解碼方法及其裝置 | |
CN102640498B (zh) | 通过纹理图案自适应分区块变换进行图像编解码的方法和设备 | |
CN1547724A (zh) | 使用golomb-rice的无损失帧内编码 | |
US7471841B2 (en) | Adaptive breakpoint for hybrid variable length coding | |
US20080219578A1 (en) | Method and apparatus for context adaptive binary arithmetic coding and decoding | |
CN1951120A (zh) | 为动态选择的小尺寸或全尺寸播放提供独立编码链的视频编码系统 | |
CN1684495A (zh) | 图像和视频的预测无损编码 | |
CN1593064A (zh) | 可配置的图形优化器 | |
CN1238100A (zh) | 矢量量化代码本产生方法 | |
CN1310913A (zh) | 图像压缩 | |
CN1497503A (zh) | 图象的编码方法及装置、译码方法及装置、编码及译码程序 | |
US7499596B2 (en) | Amplitude coding for clustered transform coefficients | |
Tabus et al. | Context coding of depth map images under the piecewise-constant image model representation | |
CN1665303A (zh) | 图像/视频编码中变换系数的熵编码方法 | |
Ding et al. | Enable efficient compound image compression in H. 264/AVC intra coding | |
CN110996127B (zh) | 图像编解码方法、设备及系统 | |
US7471840B2 (en) | Two-dimensional variable length coding of runs of zero and non-zero transform coefficients for image compression | |
CN106604032B (zh) | 图像中文字块的压缩方法和装置及图像压缩方法和装置 | |
CA2579718C (en) | Hybrid variable length coding for video compression | |
CN102790880A (zh) | 用于视频压缩的混合可变长度编码的方法和设备 | |
US7492956B2 (en) | Video coding using multi-dimensional amplitude coding and 2-D non-zero/zero cluster position coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120829 Termination date: 20210608 |