数据压缩的制作方法

文档序号:7512537阅读:217来源:国知局
专利名称:数据压缩的制作方法
技术领域
本专利申请涉及数据压缩。
背景技术
众所周知,用于存储或传输的有效的数据编码仍旧是其中寻求新 方法的领域。例如,如果数据可以诸如通过压缩而被更有效地编码, 则用来存储要被编码的数据的存储器的量可以减小。同样地,在通信 系统中,如果数据可以被有效地编码,则例如,对于给定带宽的通信 信道,在给定的时间单位内可以潜在地发送更多的信息。这些目标和 许多其它目标可以是用于有效的数据压缩的方法的目的。


主题在说明书的结论部分中被具体地指出,但请求不同保护。然 而,请求保护的主题,包括它的组织和操作方法以及它的目的、特征 和优点,如果结合附图阅读,可以通过参考以下的详细说明而被最好
地理解,其中
图l是图示用于数据编码的技术的一个实施例的示意图。
具体实施例方式
在以下的详细说明中,许多具体细节被阐述,以便提供对于请求 保护的主题的透彻的了解。然而,本领域技术人员将会看到,请求保 护的主题可被实践而不用这些具体细节。在其它事例中,熟知的方法、 过程、部件和/或电路没有进行详细描述,以免遮蔽请求保护的主题。
随后的详细说明的某些部分通过算法和/或对于数据比特的操作 的符号表示和/或被存储在计算系统内,诸如在计算机和/或计算系统存储器内的二进制数字信号被提供。这些算术描述和/或表示是由数据 处理领域技术人员使用来把他们的工作输送给本领域其它技术人员 的技术。算法在这里和通常被认为是自身一致的运算序列和/或导致想 要的结果的类似处理。运算和/或处理可包括物理量的物理操作。典型 地,虽然不一定必须,这些量可以取电信号和/或磁信号的形式,这些 信号能够被存储、传送、组合、比较和/或操控。把这些信号称为比特、
数据、数值、单元、符号、字符、术语、编号(number)、数字(numeral) 等等有时证明是方便的,特别是为了通常的用法。然而,应当看到, 所有的这些和类似的术语是与适当的物理量相关联的,以及仅仅是方 便的标签。除非专门阐述,正如从以下讨论看到的那样,将会意识到, 在本说明书讨论中,利用诸如"处理"、"计算"、"算出"、"确定"等等 的术语涉及到诸如计算机或类似的电子计算设备那样的计算平台的 动作和/或处理,在计算平台的处理器、存储器、寄存器和/或其它信 息存储装置、传输和/或显示设备内操控和/或变换被表示为物理的电 子的和/或磁的量和/或其它物理量的数据。
正如以前提到的那样,请求保护的主题的实施例的一个潜在的, 但不是排他的,应用可以属于低比特率音频和/或视频编码的领域。在 这个具体的领域中例如典型地希望相当有效地压缩数据。在这个和类 似的领域中,也希望,如以前提出的那样,在通信信道上,诸如在可 能受到对于可被发送的比特数目或对于比特传输速率的限制的信道 上发送信息。所以,相当有效的编码会导致例如每单位时间发送更多 的信息。另一个应用,也正如以前提出的那样,可以是在电子设备上 的数据压缩,诸如,例如用于数据存储。这例如可以减小所利用的存 储器的量,或作为另一个例子,例如通过减小附着到电子邮件的附件 的大小有助于实行数据传输。当然,请求保护的主题不限于这些简单 的例子。提供这些例子仅仅是为了说明。
Golomb编码是熟知的,它在Golomb,SW:"Run國length encoding", IEEE Trans. Inf. Theory, 1966, 7, (12), pp.399-401中被描述。Golomb 码仅仅是数据编码的一个例子。所以,虽然后面描述的许多例子通过
7Golomb编码被提供,但应当看到,请求保护的主题不打算把范围仅 仅限于Golomb码(GC)。可以利用编码数据的其它方法,并且提供满 意的结果。无论如何,继续把Golomb编码作为一个例子,GC常常 被使用于行程长度编码,但在原理上,它们是通用码,可被使用来编 码任何码元或码元序列,作为整数或整数的序列。在一个可能的实施 例中,独特的整数可被分配给码元,然后码元可以通过例如Golomb 编码相应的数而被编码。GC具有优点数字的范围不需要事先知道 或受到约束。
在一个具体的例子中,数字I,模K的Golomb码(其中K在本 例中是4基,)可通过(S,E,R)被如下定义
S-数字I的正负号,如果合适的话(如果这些数是全部正的或全 部负的,它可以省略)。
M=I的幅度
E-指数fix(logk(M)),其中fix()在这里表示截断运算,也就是, 舍入到下一个最低的整数。
R=M-KE,在这里被称为"剩余数(residual)"。
所以,I的幅度可以通过M-KE+R而得到。
然而,应当指出,logk(O)可以提供数学诡辩,原因在于K的任何 次方不应当给出零。可被利用来解决这一点的一个方法包括把l加到 所有的非负整数,这样,logk(O)应当不出现,虽然,当然,在这方面 不限制请求保护的主题的范围。
有时,为了方便起见,例如,K=2,这样Golomb码可以提供可 变长度的二进制浮点表示的形式,具有指数E和可变长度E比特的剩 余数R。这种情形例如显示于图1,虽然,当然,在这方面不限制请 求保护的主题的范围。
正如在由Monro在2006年6月5日提交的、标题为"Data Coding"的和转让给本请求保护的主题的受让人的、共同待决的美国 专利申请序別号No.11/422,316中描述的,在一个实施例中,^可,以利 用编码数据码元的方法,包括Golomb编码。然而,正如前面说明的,
8请求保护的主题在范围上不限于Golomb编码。在这样的实施例中, 码元可以通过指数值E和剩余数值R被Golomb编码,指数值基本上 按照可变长度码被编码,再次地,如下面更详细地描述的那样。
在这个具体的实施例中,例如,可变长度码(VLC)可被利用来替 换码元,其中短码可被使用于更经常出现的码元,以及较长的码用于 不太经常出现的码元。这样,码的平均长度可以减小。VLC的一个熟 知的例子包括Huffman编码,虽然还存在许多其它例子。例如, Fano/Shannon编码包括VLC,如Morse码那样,它用短码替代经常 出现的字母,如E(—个点),以及用较长的码替代其它字母,如X(短 划点点短划)。当然,请求保护的主题在范围上不限于这些例子。 提供这些仅仅是为了用于说明。
同样地,另一个实施例可包括一种用相应的正的非零数V编码 码元的方法。可以确定指数E的最大整数值,对于该指数E, bE不超 过V,其中b是整数模数值,以及E-fix(logb(V))。同样地,可以计算 剩余数R=V-bE。所以可以生成码元码,其包括指数的数值,被编码 为可变长度码,以及剩余数值。当然,请求保护的主题在范围上不限 于这个具体实施例。这仅仅是被包括在请求保护的主题的范围内的实 施例的一个例子。
各种修改是可能的,以及所有的修改打算被包括在请求保护的主 题的范围内。例如,在一个替换实施例中,码元可以任选地被包含在 码元字母表中,它按照预期的出现概率排名(rank)码元,V的数值表 示码元排名。
同样地,在一个实施例中,可变长度编码器(VLC),诸如,例如 Huffman编码器,可以编码诸如Golomb码的码的指数,例如用于有 效地编码和.压缩码元流。然而,VLC可以是自适应的或静态的,例如 取决于特定的实施例。
虽然在这方面不限制请求保护的主题的范围,但应当指出,这里 描述的编码过程的实施例有时可以在真实的应用中执行Huffman编, 码。同样地,虽然请求保护的主题在范围上不限于这方面,但实施例可以方便地应用到行程长度编和/或用于难对付的概率分布,虽然这些 仅仅是例子,以及在这方面不限制请求保护的主题的范围。
示例实施例,除了数据编码方法的实施例以外,可包括结合这样
的方法的计算机程序;和/或编码器,诸如以硬件、固件、软件或它们 的组合被实施。实施例还可包括体现这样的方法的视频和/或音频编码 译码器;视频和/或音频压缩系统,由此数据可以按照这样的方法被编 码,以及在其中这样的数据可以通过通信信道被传送,用于由在远端 的译码器重建。可替换地,编码的数据可被存储,而不是发送。这些 和许多其它实施例被包括在请求保护的主题的范围内。
图l例如显示4吏用正负号和幅度表示法的Golomb编码的N比特 固定点二进制数字的实施例。最前面的比特S(它在替换实施例中可以 省略)指示正负号。这后面跟随多个非重要的前面的零。笫一个有效位
(FSB)出现在位置E, FSB的位置由此指示指数值。剩余的比特由随 后的E个比特表示,这在本上下文中被称为"剩余数"R。在这个表示 法中,数的幅度M仅仅是由标号为0到N-l的N个比特表示的二进 制数的值。
这里,正负号=1或0,
同样地,幅度-M-S2nbn
其中bn是比特n的数值,O或l,以及进行从n-0到N的求和。
E-FSB的位置-fix(log2M), 对于M二l
R-剩余数-M-2E
它具有E个比特,对于E上1和M二2。
在给定图l的表示后,为了在通信信道上传送数据,在本实施例 中,可以发送S的数值(如果合适的话)并连同位置值E和剩余数R的 数值一起。典型地.,剩余数值不被编码,以及比特仅仅按照它们原来 的样子逐个地被发送。然而,当然,在某些实施例中可以利用剩余数 的熵编码。
在某些情形下,,I的数值可以是有希望发送的,原因在于要发送 E的比特数目典型地可以是可变的,其是发送剩余数的比特数目。实施Golomb编码器的通常的方法是不发送E的数值,而代之以E相对 于被发送的最后的数值的改变。例如,第一码元的发送可以指示E的 数值增加1,而第二码元的发送可以指示该数值减小1。第三码元的 发送可以指示E的数值保持为相同的。在E的接连的数值之间的差值, 实际上,可以作为接连的比特被发送,尽管在这方面不限制请求保护 的主题的范围。进一步的细节例如可以在Rice, RF: 'Some practical
universal noiseless coding techniques', Tech. Rep. JPL-79-22, Jet Propulsion Laboratory, Pasadena, CA, March 1979中4戈至lJ。 Huffman 编码也是熟知的编码数据的方法,其细节可以在Huffman, D.: 'A
method for the construction of minimum redundancy codes', Proc. Inst. Radio Eng., 1952, 9,(40),pp.l098-1101中找到。
在二进制情形下,如果可以出现的E的最大值是Max一E,则从 0到Max—E的所有数值的未编码的表示利用l+fix(log2Max—E)个比 特。由于Golomb代码的特征在于我们不一定必须知道数值的范围, 从而我们不一定必须知道Max一E的大小。然而, 一旦对于特定的数 值,E是已知的,那么就知道,R的数值利用E个比特。
Golomb编码,作为示例实施例,至少部分地纟艮行得通,因为R 的概率密度通常是相当平坦的,即使在M的概率密度是不均匀等或不 对称的情形下。在E的分布中主要表示分布的不对称性,虽然即使它 通常呈现很好的性能。在这个特定的实施例中,对于E有平滑影响, 因为E的大于1的任何数值覆盖2£个不同的M值。对R有变平坦的 影响,因为R数值的数目小于可能的M数值的数目。特定的实施例 的一个方面涉及认识到,编码器的有效的运行至少部分依赖于编码E 的"花费"。所以,这种花费的减小是希望的。例如,如果E的范围受 到约束,比如说,l<E<M.ax_E,则用l+fix(log2(Max—E-l))个比特的 二进制数E-1编码E是可接受的,在种情况下,我们规定仅仅用它的 比特作为原始码(Raw Code)来编码E的方法。而且,如果K和Max—E 都是2的幂,这可以产生良錄的結果,尽管,当然,在这方面不限制 请求保护的主题的范围。比较性的例子可用来表明,利用诸如原始Golomb码那样的原始 码,可以提供用于编码数据的合理的技术。假设我们希望发送一系列 数字,以及从1到8的所有数字是同样可能的,并且在接连的数字之 间没有相关性。实际上,这好像投掷一个8面的骰子的结果。编码和 发送这样的数据的一个方式是使用可变长度编码器(VLC),诸如 Huffman编码器。
正如熟知的那样,这个数字序列的编码的理论花费或熵,是 log28=3比特,以及仅仅以3比特发送该数值是最佳码。在理论上,很 好地构建的VLC,诸如Huffman编码器,将i人识到这一点,并且也 产生最佳代码。然而,实际上,这不会出现,诸如如果VLC是自适 应的,以及正在根据多半不具有平坦的观察到的出现直方图的真实数 字序列形成它的码。因此,例如有可能,VLC将分配码元具有不同的 概率,所以分配1比特码给编码器确定为最经常的那个数字,2比特 码分配给下一个数字等等。在这个例子中,我们可以假设从1到7的 数字具有1到7个比特,以及我们也可以用7个比特编码数值8。在 这种情形下,VLC将平均使用1/8 (l+2+3+4+5+6+7+7)个比特,这里 35/8 =4.375比特,比最佳值约大46%。通常没有意识到,Huffman 编码器有时性能如此地坏。
另 一方面,原始Golomb码在发送相同的数字序列方面做得较好, 虽然这仅仅是一个可能的例子。在这种情形下,E的范围是0-3,我 们可以用2比特进行通信。
我们可以列出8个可能的数字所利用的比特的数目

2
3
4
5
6
7
8
E 0
2 2 2
2
3
迈比特R R比特全部比特 2-02
2 0 13
2 113
2 0 2 4
2 1 2 4
2 2 2 4
2 3 2. 4
2 0 0 2
这个代码将平均^f吏用26/8^fe特一比最佳值约大8。/。。如果我们说 我们事先不知道8是最大数值,则可以允许4比特剩余,如果出现8的话。然后,平均值是30/8比特,或比最佳值约大25%。无论如何, 这个例子表明,原始Golomb码在这里性能优于Huffman码。
这时,我们注意到,如果要被发送的数据例如包括一系列Golomb 码,则进一步的压缩可以通过作为整体考虑序列而实现,而不是如现 有的和现有技术系统或方法那样,逐个地发送各个代码。
正如在图l上示意地显示的那样,Golomb码典型地可包括形式 (S,E,R),其中S表示正负号,E表示指数,以及R表示剩余数。因此, 包括这样的Golomb码序列的数据流,在一个例子中,至少可以取以 下的形式
Si Ei Ri Sj Ea R2 S3R3 , Ss E豕Rg,
通过将这个8个(或无论如何可以有许多个)Golomb码的序列作 为单个串处理,可以实现附加压缩。在这个具体的例子中,这可以对 于Ei的不同数值而被实现,其中I表示整数,经由其上出现Ei的位 置i。对于压缩,数值Ei的序列可以具有特别的兴趣,因为Ri的数 值典型地易受到很大的进一步的压缩,所以可以作为普通的,即未压 缩的数值被发送。同样地,如果存在正负号Si,它们可以方便地合并 到码流中。当然,如果所有的数据具有相同的正负号,则正负号Si 可以省略。
在这里我们假设,Golomb码序列作为单个串被处理。结果,数 值可以以任何方便的次序被发送。 一旦特定的Ei的数值是已知的,它 规定在相关的Ri内比特的数目。所以,在某些实施例中,在Ei后面 跟随它的相应的Ri可能是方便的。然而,当然,许多其它的安排也 是可能的,诸如延迟某些或所有的R和S值,直至串结束为止。请求 保护的主题打算包括任何和所有的这样的可能的安排。
我们假设R数值(以及S数值,如果有的话)在串内的位置可以变 化,而对于压缩没有很大的恶化。结果,为了讨论的方便和说明目的, 我们考虑Ei数值的序列,而没有其它数值。也就是,为了说明起见, 我们假设在特定的串内各个Ei数值魄裔^—可以是如下
£i ^ Bfi E$ 14 2 13 2 4 4
13在这个特定的实施例中,如果想要的话,我们可以记录和同样地
发送Ei的可能的数值在串内的位置i。这样,在以上的例子中,数值 1可以在串内的位置1和4处找到,数值2在位置3和6处,数值3 在位置5处,以及数值4在位置2, 7和8处。这个信息可以以任何 方便的方式被编码,以及例如可被存储或发送。实现这一点的一个方 式——虽然这仅仅是一个简单的例子并且不打算用于限制请求保护 的主题的范围——是传送以下的码元
1 4 EOG 3 6 EOG 5 EOG 2 7 8 EOG
这里,EOG被使用来表示组的结束,这里,对于本例是编组的 E数值的序列的结束。
更一般地,编码器可以运行在E数值范围上,以及指示例如 Golomb码在包括E数值的序列中的位置。使用伪代码,这个方法的 一个潜在的表示如下,虽然这仅仅是例子
For E=E数值的范围 指示包含E的Golomb码的位置 指示组的结束(EOG) End
剩余数Ri和正负号Si——如果合适的话——可以如上所述地在 任何方便的位置——诸如,例如在位置码后或在EOG码元后被交织 ——上被传送。如果Ei数值被译码器重新构建,例如,译码器可以不 用接收附加数据,确定相关的Ri的长度,以及不用接收附加数据, 确定将跟随的Ri比特的预期数目,如上所述,对于E&l和M&2, 它是Ei比特,其中Mi=2E+Ri。
将会指出,在以上讨论的实施例中,译码器实际上不传送具体地 表示组内的E的数值的数据。而是,这样的信息是隐含的,它是从位 置信息——诸如,例如对于这个特定的实痴姊,在发送的码元列表内 组的位置——得到的。当然,还应当指出,许多其它不同的实施例被包括在请求保护的主题的范围内。例如,请求保护的主题在范围上不 限于关于在位置与被发送的具体的数据值之间的关联的具体惯例。许 多可能的安排或关联的任一项是可能的,以及被包括在请求保护的主 题的范围内。
同样地,如果Ei的可能的数值不存在于串内,作为一个例子, 可以发送一组零。例如,在一个具体的实施例中,这可以用额外的EOG 码元来指示,诸如用"EOG EOG",例如在空组中的适当的位置处的 额外的EOG码元。当然,这再次地仅4又是一个实施例,以及用来通 知数值不存在的许多其它方法可以在请求保护的主题的范围内被利 用。
应当指出,刚才描述的具体的实施例提供比传统的数据压缩方法 更高的效率;然而,附加的效率也可以如下面描述的那样实现,以及 这样的实施例打算被包括在请求保护的主题的范围内。例如,位置1 到8出现一次。典型地,所以,通过编码方法,每个码元3比特可净皮 利用来进行传送。然而,可以改进压缩的另一个方法代之以指明在位 置之间的间距,诸如,例如在行程长度编码中。在这种情形下,代替 发送1后面跟随4来指示E数值l的位置,可以发送O来指示在E第 一次出现之前没有跳过位置,后面跟随2,以指示跳过两个位置以从 位置1到位置4,等等
02EOG22BOG4EOG15 0EOG
从较少的码元看来,这里0,1,2,4,5和EOG是更有效的。 然而,在请求保护的主题的范围内的另一个实施例中,效率可以 进一步提高。在发送进行时,典型地,行程长度编码器的可得到的空 间变为更小,因为越来越多的数值变为已知的。这样,例如,在第一 E组被传送时,不仅仅E-1的位置变为已知的。另外,在作为用于以 后的E值的可能的位置进行处理期间,这些可以忽略。所以,行程长 度代码在处理期间可以"忽略"这些数值,以及信号未知的位置被跳 过,如下
0 2EOG 1 1 EOG 1 EOG0 0 0EOG
15这里,然后,码元的数目被有效地进一步减小到0,1,2和EOG。
至少部分取决于在目前可以得到的应用,也可以利用更复杂的编 码方案,诸如,例如使用在由Monro在2003年9月18日提交的和在 2005年3月24日公布的、标题为"Data Comp薦ion,,的PCT专利申 请WO 2005/027049以及由相同的发明人在2006年3月16日提交的 具有相同的标题的美国专利申请序列号No. 10/572121中描述的方法。 当然,请求保护的主题在范围上不限于在上述的PCT和美国专利申 请中描述的方法。这仅仅是在请求保护的主题的范围内潜在的实施例 的另一个例子。然而,在种情况下,在上述的PCT和美国专利申请 中描述的编码方法在这里纟皮称为"MERGE(合并)编码器,,。
如以上引述的,以上描述的许多实施例有效地行程长度编码数据 串。该串无论如何可以例如藉助于另外的Golomb编码而同样地受到 进一步压缩。因此,对于给定的E的数值,它在Golomb码流中的出 现本身可被Golomb编码。
一旦编码器到达要编码的最后的E值,它的大多数位置变为已知 的,而不净皮传送。在以前的例子中,如果已知有8个Golomb码,码 元流可以,皮缩短为
0 2EOG1 1EOG1EOG
然而,这里,假设可能的E值的范围是已知的或能够事先被确定。 在某些情形下,如果E的范围是未知的,和如果码元流的长度也 是未知的,可能希望有方法。这里,我们讨论在请求保护的主题的范 围内的、用于处理这样的情形的两个可能的实施例,虽然,再次地, 这些是例子,以及除了仅仅这两种情形以外的其它方法被包括在请求 保护的主题的范围。
让我们假设码元流的长度是已知的。如果是的话,这样的码元流 可以用Max_E的数值加前缀,例如,为
4 02BOG1 1EOG1BOG
在这种情形下,例如,E数值可以按递升或递降的次序^被取出。 有可能,Min—E数值更经常地出现,这样,通过利用递降的次序可以得到减小的码元数目的更多的潜在益处。还有可能,可以通知E的两 个潜在的数值,即,Min一E或Max一E。 一个方法可以在码元流的结 尾处加上后缀Max一E和/或Min一E。然而,来自译码器的、等待作为 后缀添加的数值的延时在某些情形下可能是缺点。
同样地,作为通知E的最后数值的替换例,可以有通知或表示"No More Groups (不再有组),,的引入的码元,诸如以下形式
0 2 EOG— 11 BOG 1 BOG NoMoreGroups
然而,指示E的范围,典型地可牵涉到已知的开始点,以及数值 可包括以已知的次序行进。然而,如果不是的话,或许也可以通知E 的开始值。
在一个实施例中,至少在过程开始后不久,在序列中的Golomb 码的数目不能由译码器确定。当接连的E值的位置被识别时,译码器 仍旧不能确定精确的码数目,虽然在E组的结尾处,译码器能够根据 可得到的数据确定下限。译码器可被构建成使用这一事实在达到最 后的E值后剩余的E值是相同的,但数值的数目通常仍旧是不确定的, 除非另外的方法也被利用来确定这一点。
确定码元流的长度的方法是可能的。没有这个方法,可以有未知 数目的、跟随在最后的已知码元后面的最后码元。这里假设E的范围 是已知的。在以上的例子中,例如,在串的结尾处出现E的两个数值, 其中数值是4。
一个潜在的方法可包括加上串或序列的长度作为前缀,由此,在 特定的串中Golomb码的总数目可以在E的位置的通知开始之前被指 示。在这种情形下,在到达最后的E值后,它的位置是已知的,诸如 以上的例子所表明的那样。因此,对于这样的实施例,可以作为完整 的消息发送
8 0 2 EOG1 1 BOG 1 EDO
同样地,另一个潜在的方法可以是,作为行程长度,包括被加到
码元流作为后缀的最后的码元的数目
0 2EOG1 1EOG1EOG2
17可以以任何组合使用用一系列E值和码元流的长度作为前缀或 后缀添加的这样的方法。如何组合这样的方法达到更好的结果,至少 部分地依赖于码元流的特定的统计。
诸如以前描述的那些实施例的实施例的有用性,从具体的实施方 式的讨论中,可以变得更清楚。当然,在这方面不限制请求保护的主 题的范围。这个描述仅仅用于说明的目的。如以前指示的那样,上述 的由Monro在2003年9月18日提交的和在2005年3月24日公布的、 标题为"Data Compression,,的PCT申请WO 2005/027049A1以及由相 同的发明人在2006年3月16日提交的且具有相同的标题的美国专利 申请序列号No. 10/572121公开了一种在这里被称为MERGE编码技 术的用于数据压缩的技术。
在前述的申请中数据被表征为一系列原子。所以,原子被相加在 一起,提供或产生最终得到的数据。在这个特征中,原子被描述为位 置、正负号、幅度、和基本函数的下标。幅度可被约束为具有固定数 目的比特的精度,在这里被称为PL(precision limit,精度限制)。在本 上下文中,涉及到,也被称为,在由相同的发明人和具有相同的标题 的美国专利申请序列号No.l0/333,480且在2004年7月1日^皮公布为 US 2004/0126018中4皮描述的内容。应当指出,上述的两个申请要求 在2000年8月3日在英国提交的申请的优先权。当然,请求保护的 主题在范围上不限于利用PL或PLQ。而是这些仅仅作为用于说明的 例子被提供。
在专利申请中的方法利用第一有效位(FSB)的位置,而另外的剩 余的PL-1比特描述幅度。在给定PL的精度限制后,可以利用如下过 禾呈,例:^:
For FSB from最大值to最小值
For RA (幅度剩余数)from 2PL" to 0 For.每-个所使用的基本函数K 通过行程长度编码来通知具有属性(FSB,Ra,K)的每个原子的位置 发送原子的正负号(1比特) 基本函数组结束 R (PLQ剩余数)组结束

要的或中心的"MERGE"循环。然而,这可以至少部分地根据以前描 述的实施例的各方面械 修改,以l更通过^f亍程长度编码对Golomb码序 列进行操作。在这里应用这样的方法提供以下过程
For FSB from最大值to最小值
For RA (幅度剩余数)from 2PL_1 to 0 For每一个所4吏用的基本函数K 做出将行程长度编码具有 属性(FSB,Ra,K)的每个原子的位置的 Golomb码(E,RA)的列表 For每个出现的E
行程长度编码E值的位置 发送相应的Re数但(E比特) 发送相应的原子正负号S (1比特) E组结束 基本函数组结束 R (PLQ剩余数)组结束
可以把这样的看作为在编码器内的编码器,正如以前引述的。这 里,至少部分基于Golomb码的指数E的内部编码器被利用于原子的 组。对于以上的说明,下标被使用来区分原子的幅度的剩余数RA和 行程长度的E值的剩余数RE。
正如以上的实施方式可能提出的那样,有可能进一步行程长度编
19码E位置本身为Golomb码。所以,编码的附加层由此可以在附加的 级别或甚至在几个附加的级别上嵌套。关于位置的统计可以至少部分 地影响深度,在这个深度上嵌套这样的编码可以是有利的。在最深的 级别或在其它级别上也可以使用编码E值的某些其它方法。请求保护 的主题打算包括所有这样的潜在变化。
同样地,在某些实施例中,最终得到的流或串可以,在特定的应 用中想要的地方,包括各种各样的、关于被编码的数据码元的附加的 或"次要,,的信息。例如,如果数据码元表示文本字符,这样的次要信 息可以包括属性,诸如彩色、字体、类型-面等等。这样的信息可以在 序列的开始或结尾处,或在更方便的地方作为特定的组的一部分被发 送。信息还可以与编码的位置值一起被发送。类似的方法也可以应用 于剩佘数值,虽然这样的方法的想要程度可以至少部分地依赖于特定 的应用。
按照请求保护的主题的实施例可被应用到所有类型的数据的编 码,包括非数字数据,诸如,例如符号数据,通过在施加编码之前的 任何方便的映射而被转换成数字形式。正如指出的那样,实施例通过 应用行程长度编码执行得很好,虽然,当然将会看到,请求保护的主 题不一定必须这样限制。同样地,打算使请求保护的主题的实施例可 被应用到多种不同类型的数据编码的任一种。所以,不打算在它可以 应用到的数据类型方面限制请求保护的主题。
当然,将会看到,虽然已描述了特定的实施例,但请求保护的主 题在范围上不限于具体的实施例或实施方式。例如, 一个实施例可以 是以硬件实施,诸如被实施为在设备上或在设备的组合上运行,而例 如,另一个实施例可以是以软件实施。同样地,实施例可以以固件, 或例如作为硬件、软件和/或固件的组合被实施。同样地,虽然在这方 面不限制请求保护的主题的范围,但一个实施例可包括一个或多个物 品,诸如存储介质或存储^某体。这个存储介质,诸如,例如一个或多 个CD-ROM和/或盘,可以在其上存储指令,该指令在被诸如计算机 系统、计算平台或其它系统那样的系统执行时,可以导致按照请求保
20护的主题的方法的实施例——诸如以前描述的实施例之一——被执 行。作为一个潜在的例子,计算平台可包括一个或多个处理单元或处 理器、 一个或多个输入/输出设备,诸如显示器、键盘和/或鼠标、和/ 或一个或多个存储器,诸如静态随机存取存储器、动态随机存取存储 器、快闪存储器和/或硬盘驱动。
在前述的说明中,已经描述了请求保护的主题的各个方面。为了 说明,特定的数目、系统和/或配置被阐述,以便提供对请求保护的主 题的透彻了解。然而,从本公开内容获益的本领域技术人员应当看到, 请求保护的主题可以不用具体的细节被实践。在其它情况下,熟知的 特征被省略和/或被简化,以免遮蔽请求保护的主题。虽然某些特征在 这里被说明和/或被描述,现在对于本领域技术人员而言可以发生许多 修改、替换、改变和/或等价物。所以,应当看到,所附权利要求打算 覆盖属于请求保护的主题的真实的精神的所有这样的修改和/或改变。
权利要求
1. 一种编码数据码元序列的方法,包括(a)形成码序列,其中码包括指数值Ei和剩余数值Ri,i是整数;以及(b)对于在码内出现的Ei的数值,生成在所述码序列内的表示所述Ei的数值的位置值。
2. 权利要求1的方法,其中i包括与所述位置值相关联的整数。
3. 权利要求2的方法,其中一个或多个剩余数值在所述序列内 被编组在一起,以便放置在一个或多个位置值的后面和/或前面。
4. 权利要求2的方法,还包括发送或存储所述位置值和所述 剩余数值作为串。
5. 权利要求5的方法,其中所述串用组结尾码元终结。
6. 权利要求5的方法,其中表示所述串的长度的信息作为所述 串的前缀添加。
7. 权利要求5的方法,其中表示指数值的数的信息作为所述串 的前缀添加。
8. 权利要求5的方法,其中在所述串内的最后的位置值后面跟 随有不再有组码元。
9. 权利要求5的方法,其中所述剩余数值是在所述串内与它的 相应的位置值特定地相关联的。
10. 权利要求2的方法,其中所述码序列包括Golomb码序列, 以及所述码包括Golomb码。
11. 权利要求10的方法,其中所述Golomb码和所述位置值包 括二进制格式的表示。
12. 权利要求2的方法,其中 一个或多个位置值被行程长度编码。
13. 权利要求2的方法,其中将所述位置值作为另 一个序列对待, 以及将所述位置值进一步编码。
14. 权利要求13的方法,其中所述另一个序列-陂编码为Golomb码。
15. 权利要求1的方法,其中所述数据码元表示音频流或视频流。
16. 权利要求1的方法,其中对于在码内出现的E的所选数值, 在所述码内的表示所述E的数值的所述位置值包括i。
17. —种编码数据码元序列的方法,码元由数字Vj以数字形式表 示,所述编码方法包括(i) 对于数据码元(a) 确定指数Ei的最大整数值,对于该Ei, bEi不超过Vi,其 中b是固定模值;以及(b) 计算剩余数R产Vj-bEi;(ii) 取所述指数Ei作为码序列,以及对于出现的Ej的数值,生成 在所述码序列内的表示所述Ej的数值的位置值;以及(iii) 把所述剩余数Rj与所述Ej的数值相关联。
18. 权利要求17的方法,其中在码内的所述位置值包括与i的数 值相关联的数值。
19. 权利要求18的方法,其中一个或多个位置值被行程长度编码。
20. 权利要求17的方法,其中所述数据码元表示音频流或视频流。
21. —种物品,包括其上存储有指令的存储介质,所述指令如 果被执行,还导致如下的编码数据码元序列的方法的执行(a) 形成码序列,其中码包括指数值Ei和剩余数值Ri, i是整数;以及(b) 对于在码内出现的Ei的数值,生成在所述码序列内的表示所 述Ei的数值的位置值。
22. 权利要求21的物品,其中所述指令如果被执行,还导致i 包括与所述位置值相关联的整数。
23. 权利要求22的物品,其中所述指令如果被执行,还导致 一个或多个剩余数值在所述序列内被编组在一起,以便放置在一个或多个位置值的后面和/或前面。
24. 权利要求22的物品,其中所述指令如果被执行,还导致 发送或存储所述位置值和所述剩余数值作为串。
25. 权利要求21的物品,其中所述指令如果被执行,还导致 对于在码内出现的E的所选数值,在所述码内的表示所述E的数值的 所述位置值包括i。
26. —种设备,包括用于形成码序列的装置,其中码包括指数值Ej和剩余数值Ri, i 是整数;以及对于在码内出现的Ei的数值,用于生成在所述码序列内的表示 所述Ei的数值的位置值的装置。
27. 权利要求26的设备,还包括用于将一个或多个剩余数值 在所述序列内编組在一起,以便;改置在一个或多个位置值的后面和/ 或前面的装置。
28. 权利要求26的设备,其中所述指令如果被执行,还导致 发送或存储所述位置值和所述剩佘数值作为串。
29. —种设备,包括计算平台;所述计算平台适于形成码序 列,其中码包括指数值Ei和剩余数值Ri, i是整数;以及对于在码内 出现的Ej的数值,生成在所述码序列内的表示所述Ei的数值的位置 值。
30. 权利要求29的设备,其中所述计算平台还适于把整数i与所 述位置值相关联。
31. 权利要求30的设备,其中所述平台还适于将一个或多个剩 余数值在所述序列内编组在一起,以便放置在一个或多个位置值的后 面和/或前面。
32. 权利要求30的设备,其中所述计算平台还适于发送或存储 所述位置值和所述剩余数值作为串。
33. 权利要求21的设备,其中所述计算平台还适于,对于在码 内出现的E的所选数值,分配在所述码内的表示所述E的数值的所述位置值作为i。
34. —种物品,包括其上存储有指令的存储介质,所述指令如 果被执行,还导致编码数据码元序列的方法的如下执行,码元由数字 Vj以数字形式表示(i)对于数据码元(a) 确定指数Ei的最大整数值,对于该Ei, t)Ei不超过Vi,其 中b是固定模值;以及(b) 计算剩余数R产Vi-bEi;(iv) 取所述指数Ei作为码序列,以及对于出现的Ei的数值,生成 在所述码序列内的表示所述Ej的数值的位置值;以及(v) 把所述剩余数Ri与所述Ej的数值相关联。
35. 权利要求34的物品,其中所述指令如果被执行,还导致 在码内的所述位置值包括与i的数值相关联的数值。
36. 权利要求35的物品,其中所述指令如果被执行,还导致 一个或多个位置值被行程长度编码。
37. 权利要求35的物品,其中所述指令如果被执行,还导致 所述数据码元表示音频流或视频流。
38. —种设备,包括计算平台;所述计算平台适于对于数据码元,确定指数Ei的最大整数值,对于该Ej, 1)"不超过Vi,其中b是固定模值,以及计算剩余数RrVi-bEi;取所述指数Ei作为码序列,以及对于出现的Ei的数值,生成在 所述码序列内的表示所述Ej的数值的位置值;以及把所述剩余数Rj与所述Ej的数值相关联。
39. 权利要求38的设备,其中所述计算平台适于把与i的数值相 关联的数值分配给在码内的所述位置值。
40. 权利要求35的设备,其中所述计算平台适于行程长度编码 一个或多个位置值。
全文摘要
概略地,按照一个实施例,公开了用于数据压缩的方法。
文档编号H03M7/40GK101485095SQ200780023083
公开日2009年7月15日 申请日期2007年6月18日 优先权日2006年6月19日
发明者D·M·门罗 申请人:埃塞克斯Pa有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1