首页 / 数据压缩

数据压缩失效专利 发明

技术内容

本发明涉及用于数据压缩的方法和设备,尤其是但并非专指地涉及压 缩静止或视频图像、和/或音频数据的方法和设备。 已知有许多压缩图像和音频数据的方法。例子包括著名的用于静止图 像编码和解码的联合图像专家组(JPEG)算法,和用于编码和解码视频数据 的运动图像专家组(MPEG)算法。这些和许多其它编码和解码系统一起使 用诸如离散余弦变换(DCT)的空间变换以把原始的图像数据转变为压缩格 式。其它算法使用替换的变换诸如小波变换。 通常,从所选变换的输出是一系列变换系数,它们整体地定义原始数 据的编码压缩格式。当需要跨越通信媒介诸如因特网或低带宽的无线连接 传递数据时,这些系数转变为二进制形式(位),其随后能根据任何优选 的通信协议传输,或者以任何适合方便的形式(例如,磁盘或存储器上) 存储。 在“嵌入式”系统(使用一种“嵌入式量化器”)中,变换系数按顺序 地进入有效层(位平面),一般首先传输的是最高有效位。用这种“嵌入 式”编码方案,接收者最初收到低分辨率的图像,随着传输进行它逐渐改 进成高分辨率的图像。这给了接收者一旦已经收到的图像有足够分辨率满 足其的需要时在任何时候终止传输可能性。 大多数嵌入式系统使用有效转换(switching)的概念,换言之它们提供 一些机制,以告知解码器每个系数最高有效位的位置。如果没有有效转换, 相当数量的可用带宽将会在第一个有效位还没有到达的情况下由重复地 发送系数的非有效位而浪费。对正的系数,这意味着在第一个有效位(即, a1)还没有到达时重复地发送零。一些系统诸如Shapiro的系统由一次扫 描一个位平面而完成这个:参见Shapiro,IEEE Transactions on Signal Processing,41(12);3445-3462,十二月,1993(进一步描述于US-A-5321776 和US-A-5315670)。其它系统通过明确地发送最高有效位而告知解码器它 的位置。几种系统,诸如描述于文档WO-A-99/08449和WO-A-98/37700 的系统,使用掩蔽技术以改善位传输效率。 有不同的记法系统以表示数字系统中负数,其中最重要的是“符号和 大小记法(sign and magnitude notation)”和“二次补码记法(twos complement notation)”。尽管信息通常以二次补码记法存储在计算机里, 然而为了描述压缩算法,通常使用符号和大小记法。根据符号和大小记法 给出这个发明的描述,其中正数的第一有效位(FSB)和其负版本在数据 字中在同一位置上。 对以上所有技术,首先发送每个单独系数的第一有效位,然后是相继 地较低有效位,一个位平面接着一个位平面。当到达一特定的截止(cut-off) 位平面时,系统可能认为,不值得对系数进行进一步精化,因此不发送可 存在于低于截止位平面的进一步的位。 近来提议的是,在FSB之后已经发送了一定数量的位之后,发送更 多的可能是不值得的(参见Monro等人的Proceedings of the IEEE International Conference on Image Processing 2000,Vancouver,进一步描述 于WO 02/13538)。这意味着,FSB之后的位模式的数量是有限的。例如, 如果已知在一特定系数的FSB之后将要定义另外两个位,那么该模式能 够采用仅四个可能的组合-11、10、01或00(以下降的数量级列出)。 所有这些技术以及其它类似它们的技术的目的是通过使用尽可能少 的位,来传输或存储变换系数的值以及它们在变换数据集里的位置,而达 到有效的压缩。为了最小化发送数据所需位的理论数量(熵),在进行设 计用于传输机制的系数的排序和打包中已引入了大的创造性。标准方法的 目的是,以最少量的位表示位置信息,从而允许尽量多的可用带宽专用于 定义数据的值的位中。 在本发明中,完全丢弃了这种方法,并通过更多地集中在数据的位置 方面而不是它的值的方面而改善熵。尤其是,本发明预期完全地通过位置 信息来描述数据集,并根本不发送值信息。 根据本发明的第一方面,提供了一种数据压缩方法,包括对数据施加 变换,以得到多个变换系数;把系数分为多个组;以及将所述组作为压缩 数据顺序地存储或传送。所述这些组优选地是不等概率的。 本发明进一步延伸为一种实现这种方法的计算机程序,和载有这种计 算机程序的一种机器可读数据载体(如CD),以及代表这种计算机程序 的一种位流(如,通过因特网下载)。本发明进一步延伸为一种实现这种 方法的编码器(coder),以及包括这种编码器的编解码器(codec)。 通过根据系数值的特征(或根据一些辅助信息)对系数完全或部分地 分组,并着重于确切发送位置信息而不是与值相关的信息,申请人已经发 现可进一步提高效率。即使在组的数量大(例如与系数的数量相同)的情 况下也惊讶地适用。在数据值比可能的组少的情况下,一些组将是空的, 然后通过对传送的组进行游程编码而进一步提高效率。 通过分组而减少熵可起因于几种原因,并与数据的不平稳性有关。例 如,系数值或码本条目(codebook entry)可具有稍微不同的发生频率,并也 可依赖于位置。通过把系数分成组,可以显现各组的统计学差异,其将比 这些组的组合导致较低的总熵。 即使每组的值平均数小于1,如果编码器布置为告知解码器存在空组 的运转,那么所描述的方法仍然提供了有效的增加,。 本发明可以以多种方式付诸实施,现在通过示例并参考附图来描述一 些特定实施例,其中: 图1表示4×4图像的2-尺度小波变换的例子; 图2表示把图1的系数分成位平面; 图3表示根据本发明的一个实施例的第一次系数分组; 图4表示第二次分组。 首先参照图1,其表示一种类型的小波变换的输出,从而我们期望按 位编码以存储或跨过通信介质向前传输。在这个例子中,图1所示的输出 表示4×4图像的2-尺度小波变换,但在实际的实施方式中,系数值和图像 尺寸的范围通常较大,小波尺度的数量也可较大。将按位编码的数据集不 必是小波变换(尽管是优选的)的系数,而且本发明同等地适用于由任何 其它类型的变换系数组成的输出集,其它类型的变换包括FFT、DCT、重 叠正交变换等等。以上描述的方法也能用于有效的按位压缩的其它数据 集,即为不必代表图像或音频的数据集。描述的方法将同样地适用于例如 电子制表数据(spread sheet data)或文字处理数据的有效的按位压缩。相 关的任何特征诸如颜色、字体、语言或甚至气味也能形成系数分组的基础。 此方法通常通过把系数值转换为二进制位并一个一个单独地考虑位 平面而开始,如图2所示。为了简化,图2只显示了两个系数1、2。其 中第一个在位平面17具有第一有效位(FSB)21,而第二个在位平面16 具有FSB 22。在该附图中,实的方块代表1,空的方块代表0。 图2中考虑的数据集25可以是图1所示数据集的整体,或者可以仅 是其一部分。在正压缩的数据集包括小波变换的系数的情况下,图2的数 据集25可以表示图1所示的各子带11之一。 在一种类型的传统“嵌入式”系统中,诸如Shapiro系统中,变换系 数的位通常是逐层地发送的,首先传输最高有效位。因此在这样的系统中, 通常首先传输位21,然后按顺序传输位平面16、15和14的有效位。在 这个系统里不会发送低于预定的阈值位平面(这个例子中的14)的位。 对发送的每个位也必须识别出唯一的位置,以使解码器能够做出该位在该 位平面上的那一位置。这可以用多种方式完成,其中之一是沿着适当位平 面上的Z字形扫描路径27确定位的位置。已知许多其它扫描方案。 相反,在本发明中,系数的位不是粗略地位平面接着位平面地发送, 而是在发送或存储前分组。这可以用多种方式完成。在优选的实施例中, 系数首先以它们的第一有效位分组,如图3所示。这里,我们假定总共有 8个系数要被发送,其被分成2组:第一组的FSB在位平面17上,第二 组的FSB在位平面16上。系数1和2对应于图2中已经表示的系数;为 了清楚起系数3至8没有在图2中示出。 在把系数分成2组之后,我们进一步子划分,如图4所示。在这个例 子中,系数进一步根据位值划分。总共有4个位值(V1、V2、V3、V4), 与两个可能的FSB值组合,一共8个组,其中3个是空的。然后逐个地 发送(或存储)这些组,由一个位平面接一个位平面地发送每个单个组中 的系数。因此在这个例子里,首先发送系数1;然后一个位平面接一个位 平面地发送系数3和5;然后是系数4;然后一个位平面接一个位平面地 发送系数2和7;最后一个位平面接一个位平面地发送系数6和8。 “位值”我们是指位的顺序,所以例如,如果系数已经以FSB划分, 并且已经确定将只发送2个另外的位,那么8个可能的系数或者数据值 101xxx,即101000、101001、101010等的任何之一将放置在同一组中, 这是因为对每种情况FSB之后的位的顺序都是01。由于数字数据仅采用 许多离散的值,所以组的数量将受到限制,尽管如果要发送大数量的位时 组的数量可是大的。 甚至即使位值是同等概率的,通过以位值分组,我们仍然改进了数据 的嵌入。在这个例子中,能够发生4种可能的位值,11、10、01和00(以 下降的数量级)。以这个次序发送组促进了嵌入,因为给所解码的图像或 信号增加最大作用的位值首先发送。 将要使用可变深度编码(variable-depth encoding)也是可能的,换言 之,对不同系数将发送不同数量的位。如果我们仅发送位置信息,那么解 码器不需要知道一些系数需要比其它系数以较高的精度发送,这是因为它 需要的所有信息都完全由分组描述。将以很高精确度发送的几个系数可能 具有独特的位值,并因此将在其自己的组中终止,然而将要以很低精确度 发送的系数可能具有非独特的位值,并从而在同一组中全部终止。 另一种可能性(其可能单独使用,或者与一种或多种以上讨论的方法 一起使用)是一个位平面接一个位平面地发送系数,但在每种情况中根据 下一个未发送的位的值分组。因此,例如,系数可以分为2组,其下一个 位是1,和下一个位是0。然后发送(或存储)第一组,接着是第二组。 因此,有效地,仅发送组内的每个系数的位置,而不是系数本身的值。甚 至当存在大量要发送的位时,这种方法也起作用。这种技术能被看作为将 此处描述的本发明应用在这样的情况:由正在扫描的位平面中的FSB的 位置来表示FSB,并且仅另外的一位将被定义。然而,它能用于改进的标 准位平面扫描技术,这是因为首先,如果在0位之前发了1位信号那么它 改善了嵌入,并且第二,使用者注意到,在精化中的0和1位不以同样的 概率发生。 在进一步的实施例(未示出)中可以使用替换的分组。例如,当系数 定义一码本数或原子(atom)时,或除了FSB以外或代替FSB,可基于它分 组。通常,各分组是由以下之一单独地或以任何组合组成:FSB、幅度、 位值、原子/码本、或任意其它与系数相关的信息(“辅助信息”)。以 符号分组也是可能的,但是在许多情况中不是尤其有帮助的,这是因为+ 符号组与-符号组通常是相等概率。 不排除其它的分组参数,并根据将要压缩的数据集的性质,除了这里 描述的参数以外的参数是合适的。例如,在已经使用变换诸如小波变换来 把数据分成依赖频率的子带的情况下,这些子带本身会形成一次或二次分 组的基础。当本方法与一种常规算法组合使用时,这样一种方法是适合的, 常规算法诸如Shapiro的Zerotree Wavelet Algorithm(EZW),描述于以上提 到的他的论文“Embedded Image Coding Using Zerotrees of Wavelet Coefficients”。相关的任何特征诸如颜色、字体、语言或甚至气味也能形 成系数分组的基础。 根据手头上的本申请,分组的顺序可以用任何适合的方式规定。因此, 尽管首先以FSB分组再以原子分组通常是适合的,这将提供好的嵌入, 然而如果需要的话先以原子分组再以FSB分组也是同样可能的。 在一些实施例中,可选择分组,这样一个组结束于一独特的系数或数 据项,其所有特征由它的组定义。在这种情况下,一特定系数的所有特征 独特地由它的组定义的,这意味着无论什么不再需要发送任何的系数信 息。而,系统仅必须发送数据集内的系数的位置信息。尽管完全不发送任 何明确的系数大小似乎是违反直觉的,然而信息实际上是不再需要的,这 是因为解码器需要重建数据集的一切都包含在位置信息内并(几乎整个地 由分组本身包含。通常,这样一种方法将需要以符号及其它特征分组。 这些组本身可以用任何合适的方式编码以传输。当然应该理解的是, 在实际上,游程编码、Huffman、算术编码技术或其它无损压缩算法可以 应用于正发送的系数的序列,以进一步降低熵。与标准方法一起,每个系 数的值通常将一个位接一个位地发送,以FSB开始,在某一预定的截止 点结束。这可是一固定的位平面(如平面14)或者是到低于每个系数的 FSB的一些预定的深度(如,如图2字母P所示,在每种情况下低于msp 的3个位)。 通过这种方式对数据分组,解码器(知道编码器使用的算法)能够仅 从所收到的数据流中的FSB的位置来确定FSB的位平面,而FSB的值不 必要单独地传输。 当然,解码器需要能够知道它在所收到的数据串中的位置。这可以通 过发送在每个组的末端的组末端(EOG)记号而达到,或者替换地通过在 传输每组之前发将跟随多少值的信号而达到。在一些情况下编码者也可方 便的传输一掩码,其告诉编码器增加了哪些组。替换地,这些组本身可游 程编码,这样不发送长行程的同样组(尤其是空组)。 在优选的实施例中,我们游程编码了组的位置,同时发送任何其它不 用于分组的特征。替换地,在发送由游程编码的组的位置的信号之后,其 它特征能够在扫描组时发送。 在这种技术的目前实施例中,分组的级别由使用者可选的转换定义, 如下: 0.只以FSB分组 1.以FSB和位值分组 2.(对合适的数据集)以FSB、位值、原子/码本数、以及可能的符 号分组。 下述是4种伪码列表,表示了各种传送可能性。在每种情况,需要假 定的是数据已经分成需要的许多组了。 列表1: *对每个组 *发送组的位置信息和任何未分组的数据。 *发组的末端的信号。 列表2: *对每个组 *发有多少值的信号 *发送组的位置信息和任何未分组的数据 列表3:(如果存在许多空组) *重复 *发有多少空组先于下一个非=空组的信号。 *对每个非=空组    *发送组的位置信息和任何未分组的数据   *发组的末端的信号 *直到扫描了所有组 列表4:(如果存在许多空组) *重复   *发有多少空组先于下一个非空组的信号   *对每个非空组      *发有多少值的信号      *发送组的位置信息和任何未分组的数据 *直到扫描了所有组。 如果系数是相关的,那么所描述的方法在可适用的情况下可与预计算 法(用于预计系数的位置)一起使用。这可以更进一步降低熵。 尽管图1至图4表示使用本方法来压缩一种2维数据集,然而应该理 解的是,本方法同等地适用于1维数据集诸如变换的音频信号的压缩。所 描述的方法将同等地适用于文本信息包括例如文字处理和电子制表文件 以及宽范围的其它数据的压缩。事实上,所描述的方法能够用于压缩任何 (可压缩的)数据,无论是否应用了变换。

唐纳德·马丁·蒙罗发明人的其他相关专利技术