CN1044183C - 调色图象的压缩及其m阵符号集的比特状态编码的二进制化 - Google Patents

调色图象的压缩及其m阵符号集的比特状态编码的二进制化 Download PDF

Info

Publication number
CN1044183C
CN1044183C CN95102737A CN95102737A CN1044183C CN 1044183 C CN1044183 C CN 1044183C CN 95102737 A CN95102737 A CN 95102737A CN 95102737 A CN95102737 A CN 95102737A CN 1044183 C CN1044183 C CN 1044183C
Authority
CN
China
Prior art keywords
bit
symbol
context
binarization
pixel
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
Application number
CN95102737A
Other languages
English (en)
Other versions
CN1117222A (zh
Inventor
A·曾迪
D·G·施托克
J·艾伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of CN1117222A publication Critical patent/CN1117222A/zh
Application granted granted Critical
Publication of CN1044183C publication Critical patent/CN1044183C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • H04N11/042Codec means
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/644Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor using a reduced set of representative colours, e.g. each representing a particular range in a colour space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供一种用于调色图象压缩的改进方法和设备。在M阵符号集中的输入符号根据输入数据的前后关系模式被二进制化,其中二进制化被选择,由二进制编码器提供良好的压缩。具体的二进制化是由映射每个输入符号为多个二进制值的一个变换表确定的。该映射是由要被压缩的图象确定的,和一般作为附加信息随被压缩的图象传送。该映射是二进制化量的比特状态熵的局部最小值。

Description

调色图象的压缩及其M阵符号集的比特状态编码的二进制化
本份专利文件的一部分公开含有受版权保护的内容。版权的持有者不反对任何人对此专利商标局的专利文件或记录的精确形式出现的专利文件或专利公开进行静态复印,然而在其他方面却保留所有的版权。
受让给本专利申请的受让人的、名称为“并行数据解码和编码的方法和设备”的美国专利NO._____(美国专利申请号NO.08/016,035;1993年二月十四提交的)被援引在这里以便供所有目的而做为参考,并且在下文被称之为“ABS编码器”基准。
本发明涉及图象压缩领域。尤其涉及利用熵编码并行熵编码器的调色图象(palettized image)的压缩。
一般来说,图象压缩是以数字化图象来操作的。为了实现图象的数字化,在该图象上的许多点上对该图象进行取样,这些被取样的图象通常称为象素。每个象素具有在该图象中的位置和象素的颜色。举例来说,图象可由1024乘768个象素的二维矩阵来表示,其中每个象素具有一个24个比特的值。每个象素值可以表示一个不同的颜色,因此允许该图象将制用224,即16777216个可能的颜色来表示。
在许多应用中,每个象素值是与该图象被数字化的当时的某一具体颜色相关的。利用这种设计,一个给定象素的颜色可以由该象素的值来确定。在另外一些应用中,数字图象是已调色的图象。在调色图象中,每个象素值对于颜色而言不是固定的,而是指向一个颜色调色表的指示字。当一个调色化的图象要被显示时,象素的颜色是利用作为调色表的一个指数的象素值确定的,该调色表确定每个象素值和分配给该象素值的颜色之间的关系。
调色化(palettization)是从一组所有可能的颜色中选出几种颜色,例如16777216(224)种颜色中的256(28)种颜色,和由从所选出的几种颜色中的一种代替任意一种颜色的方法。结果,一个调色化图象可以有效地作为代码薄表被存储(继续上面的例子),对于256个变址的每个而言,所选颜色的全部24比特的颜色描述,接着在该图象中每个象素的8比特变址。因此发现通过仅一次全面描述所选择的颜色和涉及每个象素仅输入一个变址到代码薄可以节约存储空间。
由于对于表示一个图象所需数据数量的缘故,在许多图象应用场合中,图象的压缩都是重要的。在上述的例子中,表示一个单一的未压缩的图象需要24×1024×768、或18×874×368比特(2,359,296字节),或者在调色化图象的情况下,需要8×1024×768比特(6,291,456比特)。对于运动图象压缩甚至更为重要了,这种图象要求诸如每秒30幅图象的高帧速率图象的连续码流。压缩不仅仅节约图象存储的存储器,压缩还允许通过有限带宽的信道使图象有效地传送。当然,对于诸如运动图象的应用,图象中须能够被足以使它们以帧速率显示地快速解压缩。当进行预先压缩的时候,常常这种应用要求实时解压缩。在一些进行预先压缩的实施例中,到解压缩器的输入是压缩的数据的数据块,该数据块可以被存储在一个存储器中和在压缩以后的任何时间被解压缩。
压缩操作进行多少程度的一个度量是压缩比。压缩比是未压缩数据对已压缩数据量值的比。压缩质量的另外一个度量是数据能够以多快起的速度被压缩和被解压缩。在许多应用中,压缩的速度不象解压缩的速度那么重要,因为压缩不需要实时地进行。
经常由于许多数据特征是已知的,使压缩比得以改善。一般,通常数字图象是波形量化的结果,因此它们保存许多原有信号的特征,诸如象素颜色值的相对连续性的存在。对于调色化图象而言,通常不存在这种连续性,和不能直接被用于改善压缩比。
对于调色化图象,两个象素值之间的颜色差不能必然地从这些象素值中推导出来,因为象素值不代表象素的颜色。而它们仅代表颜色值的代码表的变址,或调色表的变址。压缩调色图象的问题可以归结为压缩一个输符号序列的问题,其中每个输入符号是在M-ary符号集中的一个符号。
Y.Chin等人在出版物ICASSP-93,第5卷,第325-328页中的文章“调色图象的露希压缩”描述了调色化图象的露希压缩的一个例子。在通常露希压缩获得较好的压缩比的同时,许多应用不能容许由露希压缩产生的失真,和因此要求较小损耗的压缩。对于较小损耗压缩而言,一个信号被压缩为一个已压缩信号,该信号可以被从已压缩的信号中精确地恢复原来的信号,因此不引入失真。
从上面的描述看出,需要一种用于压缩和解压缩调色图象的改进的方法和设备。
利用本发明的优点,提供了改进的调色图象压缩,这种改进的压缩允许图象被有效地压缩和快速的去解压缩。
在本发明的一个实施例中,输入的符号是在M-ary符号集中的符号和根据输入数据的前后关系模型被二进制化,这里选择二进制化是利用二进制编码器提供良好的压缩。编码器变换输入符号为码字,而解码器变换码字为输入符号。具体的二进制化是由一符号变换表确定的,该表将每个输入符号映射为一个二进制值数。这种映射是由要被压缩的图象确定的,和一般作为附加信息与被压缩的图象一起被传送。
用于产生变换表的映射的一种方法是每次分配给一个输入符号一个变址。该分配给输入符号的变址是该变址比特、输入符号的分布、输入符号的前后关系、和已经被分配的符号与变址的函数。对于一个具体的输入符号而言,从剩余未分配的各变址中分配一个变址,对于已知已经分配的变址而言,提供最小部分比特状态熵和对于各输入符号分配各变址。然而这种方法对于已知的一组符号分布和上下文而言可能不会达到可能的整体的最小比特状态熵,对于一个可行的计算量来说,仅提供良好的“局部”最小值。
然后,被变换的输入数据通过一个前后关系模块、概率估算模块、和一个比特发生器,其输出是被压缩的数据。相反的过程用于去压缩该数据。如果必要,该变换表作为附加数据被从压缩器传送到解压缩器。在变换表预先固定的情况下,不需要传送该表。
在本发明的另一个方面,在利用少量存储器的前后关系模块的情况下,而利用一个前后关系模块对调色图象提供良好的压缩效果。
在本发明的另一个方面,压缩和解压缩是以并行执行的,和到压缩器的输入被缓冲的被重新排序,置于一个正在被编码的比特与确定前后关系的各比特之间的空间,和对该正在被编码的比特进行编码。一个比特与其前后关系的各比特之间的空间被安排得有足够的延时,以便当该比将到达解压缩器时候比特的解码取决于该各前后关系比特的情况下该前后关系比特能被全面地解码。解压缩器包括一个用于执行相反重新排序的装置,以便解压缩器的输出是和压缩器的输入一样。在一些实施例中,并行压缩器的输出带有在多个并行解压缩器端分离各个信道所需的非常少量的附加信息来通过一个单一的通信信道。
在一些具体的实施例中,输入符号是从256个符号的符号集中选出的,由一个适当的数字计算机执行该变换过程,压缩过程是以非实时执行的,而解压缩过程是以实时执行的。利用256个输入符号,变换表产生256个字节。在一个具体实例中,变换表是根据整个某些组图象或图象部分输入符号的概率分布的,和对于每组图象或图象部分新的变换表被从压缩器传送到解压缩器。
通过参照本说明书的其余部分和所附加图的实现对于本发明的特点与优点的进一步理解。
图1是一个数据压缩系统的框图,示出了一个压缩器和一个解压缩器;
图2是表示在图1中的压缩的框图;
图3是表示在图1中的解压缩器的框图;
图4是一个存储前后关系箱概率表的存储器的详图;
图5是包括一个根据变换表变换M-ary符号的变换器的数据压缩系统的框图;
图6是一个变址优化器的框图,该优化器根据要被压缩的数据块的数据前后关系产生变换表;
图7是由一个变址优化器确定适合的变换表所执行的过程的流程图;
图8是说明由图2和图3的前后关系模块实现的各种前后关系模块;
图9是一种并行压缩系统的框图;
图10是利用一条单一信道的并行压缩系统的框图;
图11是说明重新排序缓冲器的操做的框图;
图12是表示一种前后关系状态的记录逻辑图;和
图13(a)和(b)是管道编码器(pipeline coder)的时间图,该编码器同时能够处理多个输入符号。
下面的描述分别几个部分。第一部分描述熵编码。第二部分描述当利用熵编码时,利用变换改善压缩。第三部分描述如何前后关系模块化能够通过更精确地估算符号概率而改善熵编码性能。前后关系模块化可以被用于或不被用于变换。第四部分描述如何并行压缩和解压缩被用于改善数据速率。最后,第五部分描述如何缓冲被用于简化并行实现和仍然保持允许数据被并行压缩的原因。
熵编码器在数据压缩技术领域是公知的。编码输入符号为输出码字的熵编码器是一种损耗较小的过程,即原来输入符号可以仅从输出码字中提取。熵编码器被如此命名是由它试图实现由各输入符号的熵确定的接近理论上限的压缩比。通常编码器和解码器被设计为解码器是编码器的反变换。术语“编码器”(coder)是指一种装置,该装置或者是一个编码器,或者是一个解码器,或者是二者兼有。
这里不描述熵编码器的全部细节,而仅描述与本发明相关的某些细节。在熵编码器中,从输入端读入一些输入符号和一个或多个输入符号产生一个码字的输出。特定的输入符号(或多个符号)与输出码字的组合是由所利用的码确定的。在一个优化系统中,所用的码是根据各输入符号的概率分布选择的。在一种自适应熵编码器中,所利用的码可以随概率分布改变。如果概率分布估算的好,或精确地已知,并且利用了对于那种概率分布的优化码,则将产生良好的压缩。
如果输入符号是各个比特(即,一个符号是0或是1),则该编码器是二进制熵编码器。二进制熵编码器优于其他的熵编码器,这其中硬件的简化是重要的。ABS编码器是一种二进制编码器。在二进制熵编码器中,输入的各符号被送到一个比特发生器,该发生器在其输入端接收一个或多个比特和为所接收的这些输入比特输出一个码字。如果该比特发生器在输入码流中设置“0”和”1“的概率分布指示,则它可以利用该信息选择适当的码字的利用。另一方面,该比特发生也可能按照由概率估算模块确的仅仅被指令利用哪一种码。这些码可能按照比特发生器确定平均输出码字对于实际输入符号的概率分布而言太长或太短而改变。对于更为详细的细节,参考ABS编码器参考资料。
“0”和“1”的概率分布对于良好的估算是重要的。如果利用二进制熵编码器,要被压缩的图象的象素值首先需要被二进制化,这些象素值是来自一个M-ary符号集,其中M大于2。在某些情况下,正如所证明的那样,具体的二进制化的选择影响输入到二进制熵编码器的比特码流的熵,和正如上面所解释的那样,该熵设置一个多少比特发生器能够压缩输入比特码流的限制。这里的区别不是清楚的,即“象素输入符号”或“象素符号”用于表示输入到一个压缩器的被二进制化之前要被压缩的数据单元1和“二进制输入符号”用于表示一个输入到二进制熵编码器的比特发生器的一个输入符号。
对于非调色化图象数据,象素符号可以按照意味着该象素值的色信息被二进制化。例如,假设一个象素值取256个值之一,和该所取的值表示该象素的颜色。在这种情况下,如果类似的颜色由类似的8比特值代表,则可以可靠地假设,00001100与00001101在颜色上对00001100与11111111更近似。在多个本文中讨论过的例子中,M是256,和在M-ary符号集中的符号是由k比特二进制代表示的,其中k=8。应当理解为,M和K的其他值也是可能的,包括不是2的偶数幂的M值,唯一的限制是k≥log2M。
再回到这个例子,因为在通常的图象中,相邻的象素常常是类似的颜色,表示每个象素所要求的多个比特通过的该象素与一个相邻象素之间象素颜色值的差表示每个象素可以被减少。这种数据的预处理一般导至较好的压缩,因为代表各个值所需的比特数与该一组值的熵有关。但是,在调色图象的情况下,两个颜色之间的一种特定的关系不意味着来自那种另比特表示的比特之间的相关性。例如,在调色图象中,00001100与00001101可能是非常不同的颜色和00001100与1111111可能是近乎相同的颜色。全取决于调色。
因此,通过精确地估算比特码流的概率分布,和通过选择输入象素符号的二进制化,该二进制化对比特发生器提供一种低熵比特码流,调色化图象的压缩能够被改善。前述问题的解决方案讨论在下面题目为“前后关系的模式”部分和后面问题的解决方案讨论在下面题目“变换”的部分。
解压缩
对于一个正确解码来自输出码字的输入符号的解压缩器而言,解压缩器需要知道哪种码被用于哪种码字,除非编码器不是一种自适应编码器和利用一种固定码。因为指示该码的发送数据的附加信息将会减少压缩的有用程度,解压缩器应能够从码字中提取出该码的指示。如果用于一个已知二进制符号的码是由概率估算确定的,这是可能的,因为该估算仅取决于已经被编码为码字的各比特。如果这是事实,利用反馈环和存储关于输入符号被恢复的信息的方式,解压缩器可以确定什么码被用已被解码的数据。
上下文模式
更精确地概率估算,更优化的所用码是被压缩的数据。一种改善概率估算的方法是保持对多个前后关系进行概率估算。在本文中所用的一个输入象素的前后关系与该输入象素有确定关系的一个象素或多个象素。例如,在一种前后关系模式中,一个输入象素的前后关系是由上面的输入象素的象素确定的。当进行确定一个比特发生器的输入的比特码流的一个比特的前后关系时,其前后关系是由与该输入比特有确定关系的一些象素和或一些比特提供的。这种关系是由前后关系模式确定的。
图8是五种前后关系模式的说明图。在各种模式中,指针P表示上下文应用的输入到当前输入符号的比特发生器的当前输入比特的比特位置。在所有示出的前后关系中,前后关系是从一些当前输入符号的比特子集、由P指示的比特位置得到的,和在该图象中对于当前输入符号的象素上面的象素的符号比特称为“上面”符号。应当理解为,其他象素,诸如当前象素左右的象素,或其他未示出的前后关系模式可能同样很好的地工作。
每个前后关系模式规范了该前后关系如何被确定的,和能够被容易计算的可能的前后关系数目。每于每种前后关系模式而言,去保留概率估算,和当一个符号具有那种前后关系出现时利用那种概率估算。术语“前后关系箱(context bin)”常常用于表示一个符号落入哪个前后关系。参照图8,前后关系模式(a)是一处比特位置前后关系模式。利用这种模式,该前后关系仅仅是比特位置,该前后关系要求k前后关系箱。其中k=8,这是一种前后关系箱的合理数。
前后关系模式(b)是一种比特平面前后关系模式,这样命名是由于对于每个比特平面有一组M个前后关系。因此,有M×K(2048个,在M=256,K=8的情况下)前后关系。
一个值得注意的特点是,在模式(a)和(b)中当前象素的前后关系用于表示当前象素的各比特是独立的。
前后关系模式(c)是一种取决于比特状态的前后关系模式,其中如果当前比特和前面各比特在当前符号中,前后关系由该比特位置确定。在这种模式中,存在2k-1个前后关系(当P在第一个比特时,为1前后关系,对于P在一个比特时,为2前后关系,如此类推)。对于K=8时,这种模式提供255个前后关系。注意,一个比特的前后关系并不依靠其值,对于这些比特也不需要编码,以便解码器不需要这些未解码的比特去确定如何解码一个比特(图8假设一种顶对底和左对右处理序列)。
前后关系模式(d)是一种良好的前后关系模式,该模式计入前面象素的所有比特和在当前比特之前的输入象素的各个比特。这种前后关系模式组合了模式(b)和(c)的信息,和从而提供了M×(2K-1)个前后关系。在这种前后关系模式可能提供细微的前后关系区分的同时,对于存储各前后关系的值的所需存储器的压缩器或解压缩器的硬件实现来说可能会价格过高。对于M=256和K=8,这种模式要求65280个前后关系。如果每个内容要求8比特存储量,这种前后关系模式仅为此目的将要求14k存储器。然而,这种前后关系模式优于模式(a)和(b)的是利用这种模式的压缩器的性能是良好的,而无论所用的二进制化怎样,因为当前象素的以前比特被用于确定前后关系。
前后关系模式(e)是一种混合前后关系模式,该模式已可看出是一种在存储器要求与前后关系模式质量之间的良好折中。在这种模式中,前后关系是当前输入符号的P-1以前的比特和前面符号的K-(P-1)的后比特。这要求每个比特位置2K前后关系(对于K=8,为2048前后关系)。
一般情况下,压缩器与解压缩器之间前后关系模式是固定的,而防止压缩器和解压缩器转换前后关系模式是毫无必要的,只要它们确定在任何给定时间利用哪一个前后关系模式就可以了。如果可变的上下文模式是允许的,必须有保证那些前后关系模式是相同的机制,例如通信信道附加信息指示当前的前后关系模式。
作为解释如各图所示的数据压缩系统的基础,提供了上面熵编码与前后关系模式的讨论,现在将要描述这些系统。参照图1,示出了按照本发明用于压缩由M-ary符号集组成的各符号的数据的一个数据压缩系统100的实施例,该系统包括压缩器102、信道104和解压缩器106。到压缩器102的输入信号是每个代表在一个图象中的象素值的输入象素符号的码流,不过其他类型的数据也可以利用。由压缩器102将输入象素符号变换为已压缩的码字,通过信道104转移到解压缩器106。仅从接收的各码字,和可能的压缩器102操作的知识和一个变换表(如果使用的话),解压缩器106接收原来的输入符号或其等效信号。在某些情况下,原来的输入符号被从一种表示翻译为变换表示和该数据压缩系统处理被解压缩的符号,并不执行逆变换。
表发明的一个好处是对于调色图象的象素值的输入符号增加了压缩比。因此,无论信道104是否具有有限的带宽,由本发明提供的压缩是都有用。信道104的例子包括诸如存在于图象存储器与显示装置,或存储装置与用业存储图象的装置之间的通信信道。信道104还可以表示在具有存储器装置形式中被压缩的数据的转移,诸如游戏存储部件(game cartridge),数据在一个位置上被压缩。在后者的情况下,信道104的带宽限制表现为用于存储的装置中的可用存储器的数量限制。
参照图2,压缩器102包括前后关系模块108(1)、概率估算模块(PEM)110(1)、比特发生器112(1)、前后关系存储器114(1),和前后关系箱概率存储器116(1)。括号中的号码用于区分出现在压缩器102和在压缩器106两者中相同编号的部件。通常可用于压缩器102或者解压缩器106的部件的标号是不用括号的号码表示的。虽然本发明是结合示于图2的一个具体压缩器102描述的,其他压缩器同样也能很好地工作。例如,不是所有的压缩器要求所示的在PEM UO和比特发生器112之间进行连接,和PEM 110可能依靠并非由比特发生器112提供的数据去更新其概率估算。
前后关系模块108(1)连接到压缩器102的输入端和由此接收输入象素符号。如果使用变换器,到压缩器102的输入信号是被变换的输入象素码流。前后关系模块108(1)包括两个输出,前后关系箱识别输出和判决输出,这两个输出都到PEM 110(1)。假设输入是对K比特符号二进制化的,则前后关系模块108(1)对每个输入象素符号输出k个二进制的“判决”。对于每个判决,前后关系模块108(1)还输出一个上下文箱识别符。
前后关系模块108(1)还连接到存储器114(1)去寻址其中的数据单元和相对于在输入码流中出现的符号向该单元读/写数据,接照需要确定出现在其输入端上的输入象素码流的前后关系。在存储器114(1)中具体的数据单元布局取决于前后关系的模式。
PEM 110(1)接收来自前后关系模块108(1)的两个输入和具有到比特发生器112(1)的两个输出:一个概率级别(Pclass)输出,和一个结果输出。PEM 110(1)也连接到存储器116(1),去寻址其中的数据单元和读出和修改这些数据单元的值,和连接到比特发生器112(1),接收一个表更新信号。对于每个到PEM 110(1)的判决输入,PEM110(1)输出一个结果比特和一个Pclass。结果比特取决于判决输入比特和与该判决输入比特相关的前后关系箱的最可能的比特符号(MPS)。结果比特指示是否该判决输入比特是或不是MPS。MPS的反是最低可能性符号(LPS)(该MPS是0或1,因为比特发生器编码二进制符号)。
比特发生器112(1)接收结果比特码流和其相关的Pclass。因此,比特发生器112(1)接收对于每个输入到前后关系模块108(1)的象素符号的K个结果比特和相关的Pclass。从这两个输入码流中,比特发生器112(1)产生压缩的码字的码流,正如在ABS编码器基准中所解释的那样。利用适当设计的比特发生器,可以从输出的码字恢复结果比特码流,和该码字包括1,于输入比特码流的比特。Plass值用于选择一种码,用于编码该比特码流。另一方面,PEM 110(1)可能为每个前后关系存储MPS和LPS的概率分布和提供概率给比特发生器。
正如ABS编码器基准所教导的,在输入码流中一些二进制码可以被优化为特定的符号(“0”或“1”)的概率。例如,在比特发生器的输入端如果“0”和“1”近似相等,则优化码是未压缩的码,即对于每个比特输入一比特输出。一个码的优化是利用多么接近输入比特的理论熵的平均码字长度确定的。
因为压缩由102每次按一个象素符号操作的和PEM 110和比特发生器112每次按该象素的一个比特操作的,所以“当前”象素和“当前”比特的概念具有含义,和被用于下面解释压缩器102和解压缩器106的操作的描述中。然而,应当理解为,在一个复杂的压缩器中,各符号可能不按每次一个操作,但是“当前”符号的概念仍然是可用的。还应当理解为,单元可以工作在一种管道方式,以致于对于一级的当前符号可能不同于另一级的当前符号。
在压缩操作中,压缩器102按次序接收每个输入象素符号和输出码字的码流,虽然不需要对固定数目的输入符号输出一个码字。在进行处理一个象素符号中,该符号被二进制化和该二进制化输出到前后关系模块108(1)。前后关系模块108(1)以比特状态为基础估算该二进制化量,在该模块的判决输出与识别该比特的前后关系的前后关系箱识别符一起输出每个比特。例如,如果所用前后关系模式是比特位置前后关系模式,则该前后关系箱识别符仅指示在该输入象素符号的二进制化量中的该比特的位置。对于比特位置前后关系而言,仅仅指向当前比特的指示符需要存储,但对于其他前后关系模式影响其他象素上下文的每个象素要被存储在存储器114中。如果前后关系模式包括上面当前象素的象素,则应当在存储器114中足够存储一行象素。
在构成一个图象的两维象素矩阵中输出符号代表象素颜色的情况,扫描的次序不像对于正文的数据块那样重要,其中前后关系通常是由一个接正当前字母的字母提供的。然而仅仅作为一个例子,这种讨论是假设该两维矩阵是以一种预定次序扫描进入压缩器102的,例如从顶行到底行,和在每行中从左向右。利用这种扫描次序,上面当前的象素可被用作前后关系,因为上面象素到需要为当前象素提供上下文时将已然被解码,和因为,在典型的图象中,当前象素直接上面的象素常常是其颜色与该当前象素相类似。
对于前后关系象素是上面当前象素的象素是无关紧要的,和在许多前后关系模式都是可能的情况下,从刚刚被压缩的数据流中成功的低耗损解压缩要求当前比特的前后关系模式不包括在该当前比将要被解码时尚未被解码的比特和符号。几个例子将会清楚地说明这一点。
如果前后关系模式是一个“比特位置”前后关系,当前比特的前后关系是在当前输入象素中的比特位置,和对于该前后关系的前后关系识别符将代表该当前前后关系,在K比特二进制化的符号的情况下,提供K个上下文。然而,如果该当前比特的前后关系确定所用的码去解码该比特,则该比特能够被正确解码之前就需要知道该前后关系。因此,处理的次序应当保证该比特被解码之前就要知道当前比特的前后关系。
对于由前后关系模块在其判决输出中的每个比特输出,PEM110(1)接收该判决和对于该判决的前后关系箱识别符。基于这种判决,对于该判决的前后关系箱的MPS,PEM 110(1)输出一个结果比特和一个相关的Pclass。下面讨论MPS和Pclass是如何被确定的。
Pclass是由前后关系模块108(1)在判决信号线上对在比特码流输出中如何类似于MPS的估算。而通过扫描所有输入数据,在输入数据中的MPS和LPS的概率分布是可能确定的,压缩将不取决于整个概率分布,因为在对码字解码之前该分布对于解压缩器是允用的。因此,仅取决于以前被编码的比特的估算被利用。正如在ABS编码器参考资料所解释的那样,比特发生器112(1)利用Pclass确定哪种码用于编码结果比特码流。因为一个码在整个概率分布范围内是优化的,Pclass确定一个概率值的范围,并因此确定相应概率级别。这些概率级别每一前后关系的一个被存储在存储器116中。存储器116还为每个前后关系存储MPS。图4表示存储器116的布局。开始,每个前后关系的Pclass是指示50%MPS的概率的Pclass(且是LPS 50%的Pclass);而且MPS可以从0和1中任选。
正如ABS编码器基准教导的那样,在熵编码器中的一种压缩数据的方法是种用一种将MPS的游程长度减至表示该游程长度的一个码字。原来的码流通过由该码字指示的多个MPS比特的输出,接着LPS予以重建,除了MPS比特的游程长于被断开为多于一个码字的最大游程。
在一个码字输出之后,比特发生器112(1)通知PEM 110(1)是否发生MPS比特的最大游程。这种指示是在表更新信号线上提供的。如果遇到最大游程长度,比特发生器112(1)通知PEM 110(1)更新Pclass表,指示该MPS比的估算的更近似。如果未遇到最大游程,Pclass被改变,指示该MPS不如以前估算的近似。
解压缩恰恰是压缩的逆过程:各码字被解码为结果比特码流,输出比特码流被变换为判决比特码流,和被装配为象素符号,而后输出。参照图3,解压缩器106包括前后关系模块108(2)、PEM110(2)、比特发生器112(2)、存储器114(2)和存储器116(2)。在解压缩器106(2)中各模块的互联对于比特码流而言是压缩器102相反的,但是对于关于比特流的信息来说是相同的方向,因此形成两个反馈环。
一个反馈环确定用于编码一个码字的码。知道所用的码使比特发生器112(2)解码该比特流。所用的码是由PEM 110(2)提供的Pclass确定的。如同PEM 110(1)一样,Pclass是由前后关系和在表更新线上的信号确定的。前后关系是由关于以前比特的信息和存储在存储器114(2)中的象素确定的。反馈环具有可以由若干比特来度量的某些延迟。该延迟可以取决于接收的码字而改变,和对于多数实施例,该延迟可以被限制在一个最大值。如果该延迟最大值是X比特,则当前比特的前后关系将不取决于该X比特,该X比特在判决比特流中领先于该当前比特。这保证当前比特能够被已经由解压缩器106处理过的信息解码。这种要求存在一些具体问题,这些问题为本发明所解决,其中数据需要的并行方式被压缩。
变换
如上所述,二进制熵编码器能压缩数据高达理论上的限制。任何二进制化的调色数据能够与其他形式图象一样容易地被用于显示,然而,结果是一些二进制量对于一些前后关系模式提供了比其他的低的熵。这种优点可以通过在压缩口102的前端附加一个变换器提供的,其中该变换器选择一种二进制量,为要被压缩的数据提供低的熵。变换器的相反物,即解变换器可以被置于解压缩器106的输出端,或由于变换造成符号集空间的变化可以改善颜色调色的清晰度。在一些实施例中,变换表甚至可能是在压缩之前被固定和存储在压缩器和解压缩器中。
图5表示一个变换的数据压缩系统158,该系统包括连接到压缩器102的输入端的变换器160,为2XM表的变换表162,和可选择的去变换器1640信号线166表示指示变换表到解压缩器106的转移,如果变换不是固定的话。因为变换表162仅为2XM,随着被压缩的数据传送它不会引入过多的附加信息。
变换器160和去变换器164的操作直接给出一个具体的变换表162。变换器160利用来自其输入端的象素符号检索表162,和读出相应的变换值。该值作为输入前后关系压缩器102的二进制化符号被输出。在表162中的变换值是如此可逆操作的,即,在变换表162的一个入口精确地保持任何已知的变换值。因此,当解压缩器106的输出被施加到去变换器164,该输出带有该压缩系统的延迟是与压缩器的输入一样的,如果利用变换,则去变换器164执行相反的变换和输出会有原有M矩阵象素符号的变址。如上所述,如果实际上不需要原来的M-阵象素符号,可以利用知道的二进制化的量,则不需要解变换器164。
图6是变换表发生器200的框图,该发生器用于从输入数据块中生成在表162中的各变换值。发生器200可以由专用硬件实现,或者由适当编程的数字计算机实现。利用通用数字计算机常常是低成本的,特别对于非实时压缩,虽然比专用硬件显得慢一些。幸运地是,多数应用允许压缩在先进行,并非实时的。
到发生器200输入是象素符号的数据块。这具数据块可以是要压缩的整个图象或一些图象取样的子集,或甚至图象的一部分。然而,其中的压缩可以用非实时方式进行,一般对于利用整个数据集作为到发生器200的输入来说是不成问题的。在一些实施例中,图象数据是分组为16或256个图象的数据块,和对于每个图象数据块产生变换表。
再参照图6,发生器200包括一个次序固定模块204、有条件概率分布累加器206用于保持对于(i:o到M-1和c:o到N-1)的Pc(Si)值的有条件概率表208,Pc(Si)是在前后关系Cc中出现的输入符号Si的概率,用于保持对于(c:o到N-1)的pc(Cc)值的前后关系概率表209,Pc(Cc)是出现在输入数据块中前后关系Cc的概率,连接输出到变换表162的期望熵趋于最小装置,用于保持对于(c:O到N-1)的PCP(c)值的部分有条件概率表212(“PCP表”)PCP(c)是正如下在解释的前后关系Cc的部分有条件概率,用于保持对于(k:l到k和c:o到N-1)的PPCP(kc)值的部分位置概率表212(“PPCP”表)PPCP(c)正如下面解释的那样是前后关系Cc和比特位置k的部分位置有条件概率和正如下面解释的那样用于保持对于(j:1到M-1)的PBE(j)值的部分比特状态熵表216。在伴随图7的流程图阅读描述以后各种表的使用将变得更为明显。
发生器200按以下方式操作,次序固定模块204变换来自数据块202的每个符号为一个排序符号Si,(其中i:o到M-1)。因为变换表162的作用是重新排序各符号,特定的所用次序对于系统的其余操作而言是不重要的。在一种可能的实施例中,在数据块202中的各符号已经作为k比特二进制值(k≥log2M)被存储,在这种情况下模块204是不需要的。在另外的实施中,So分配给数据块202中最繁频的象素符号,S1分配给次最频繁的符号,以此类推,SM-1给最不频繁的符号。存在有时称为第零序的、或无前后关系的符号频度分布。
如果利用模块204,从数据块202中读出象素符号和传送排序的符号的二进制表示到累加器206,累加器累加到表208和209的概率。熵最小装置210而后读出表208和209的内容,从中读出各值和写这些值到表212、214和216中,以便产生其主输出,该输出变换为表162的内容。在一些实施例中,趋于最小装置210保持表162的变址分配的内部表,和在其他实施例中,趋于最小装置210确定哪些变址是查表162指定的。
变换表发生器200的操作最好结合图6参照如图7所示流程图来理解。流程图示出方框300、302、304、306、308、310、312、314、316、318、320、322、324、326和328。方框300表示从一个数据块产生一个变换表过程的开始。在方框302和306中的步骤一般是由累加器206执行的,在方框304中的步骤是由模块204执行的,而其余一般是由熵趋于最小装置210执行的。流程是从方框302到方框328按方框序号进行的,以方框328按所指示或者终结或者环路返回方框316。
在方框302中,累加器206清除表208和209。在方框304中,如果利用模块204的话,排序输入符号为So-SM-1,而在方框304中,累加器206填充表208和209。表填充以后,表208含有对于每个前后关系和一个输入符号组合的入口,其中表208的入口(c.i)表示给定前后关系Cc出现的符号Si的概率。当被填充时,表209含有对于每个前后关系的一个入口,其中表209的入口c表示与符号无关的出现前后关系Cc的概率。对于i有M个可能的值,和前后关系是{Co、……CN-1},给出N个可能的前后关系。因此,表208会M×N个入口和表209含有M个入口。
在一个实施例中,在N=M的情况下,前后关系是对于被取为Si的上面象素的象素的符号。在另外一些实施例中,前后关系是对于左边(N=M)象素的符号,或该前后关系是两个符号(N=M2)。然而,利用两个符号的前后关系将对每个输入符号要求M2个前后关系,和因此,表208和209对于M的最大值将是非常大的。在还有一些其他的实施例中,存在少于M个前后关系。例如,如果所有可能的符号被分组为小于M的值,和对于一个前后关系象素的前后关系是含有上面前后关系象素的象素的组,则将出现少于M的前后关系。例如,如果所有的符号被分组为每四个符号一组的各个组,N将为M/4。当然,对于这种减少前后关系将是有益的,某些分组符号的智能装置将被利用。
在方框308中,趋于最小装置210设置一个i→0的可变环,和初始化变换表162、PCP(c)表212和PPCP(k.c)表214。虽然方框308被表示在方框306之后,它们的次序可能是反的,因为没有哪个步骤取决于其他步骤的结果。变换表162利用标识符或其他公知方式指示已被初始化,指示在表162中所有入口是空的和在其中未分配变址。通过对所有c设置PCP(c)=0,PCP表被初始化,和通过对所有k和c设置PPCP(k.c)=0,该PPCP表被初始化。
在方框310中,趋于最小装置210分配变址0至So,和相应更新变换表。
在方框312中,通过对于每个c设置PCP(c)=Pc(So),趋于最小装置210为增加的变址So更新PPCP(c)表。
在方框314中,趋于最小装置210通过为个(c.k)对设置PPCP(k.c)=Pc(So),为增加的变址So更新PPCP(c)表,其中分配的变址的底数2表示的第k个比特是1。当首次分配的变址是0时,这个步骤是不需要的,因为没有变址的各比特是1,但是在非零变址被首次分配时,这个步骤是需要的。
在方框316中,趋于最小装置增加i,在首次通过方框316的情况下,结果为i=1。方框316通过方框328的过程对于每个i在0和M-1之间重复,假设在变换表中的一个变址对应于每个环的一个符号,当然,在i=M-1情况下的最后的环实际上不需要,因为仅仅在要分配给SM-1那个点上将保留一个变址。
在方框318,按照PCP(c)=PCP(c)+Pc(Si),PCP表对于符号Si被更新。在该步骤以后,在符号集A′所接收的符号的已知前后关系Cc和符号集,A′={So,……Si}的概率是在PCP表的第c个入口的PCP(c)。
在方框320,对于每个未分配变址产生部分比特状态熵(PBE)值。该未分配的变址(在这点上其号为M-i)在表162中被找到并在趋于最小装置210内部记忆。对于已经被分配的给出指数0-i-1的指数j和符号Si的部分比特状态熵PBE(j.Si)由方程1-3表示。
PBE ( j , s i ) = Σ c ∈ C [ P ( C c ) Σ k - 1 H ( P A ′ , c , k , j , s 1 ) ] - - - ( 1 ) P A ′ , c , k , j , s i ( β ) = [ Σ s ∈ A ′ , b k ( r ( s ) ) = β P c ( s ) ] + Σ b k ( j ) = β P c ( S i ) [ Σ s ∈ A ′ P c ( s ) ] + P c ( S i ) - - - ( 2 ) H ( P ) = - Σ X ∈ P p ( X ) log 2 ( X ) - - - ( 3 ) 其中A′是i个已分配的符号的符号集,H(p)是概率分布P的熵,bk(x)是基数2的x表示的第k比特的值,和r(s)是对于符号s的变换值。
在方框322,趋于最小装置210从所有计算的值中选择PBE(j.Si)的最小值和设置等于该最小值的j的变量x。
在方框324,趋于最小装置210为Si分配x作为该变换值和在表162中指示这种分配。
在方框326中,趋于最小装置210按照对于所有c和所有k的PPCP(c.k)=PPCP(c.k)+Pc(Si)为Si和x更新PPCP(c.k)表,其中bk(x)=1。在该步骤以后,对于给定的前后关系Cc和符号集A′={So、……Si},读接收的符号的变换值的第k比特是1和接收的符号在该符号集A'中的概率是PPCP(c.k)。
在方框328中,趋于最小装置210检查是否两个或多个变换值尚未被分配。这是这样一种情况,即如果在这个数据块中是M-2或更小,则意味着该M-1指数已被分配。最后的指数被分配给SM-1
在方程2中的分母是PCP(C),该PCP(C)通过在方框318中对每次增加到符号集A′中的符号Si加PC(Si)而被更新。如果j是Si的指数,方程2的分子是PPCP(k.c)。因为被更新的PPCP(k.c)的值取决于指数j对Si的分配,在方框326中,在选择x=j以后,PPCP(k.c)被更新。当然,由于H是比特状态熵的函数,因为P(0)+P(1)=1,方程2仅需对于β=0,或β=1而被计算。另外,因为H是一个比特状态的熵,方程3实际上简化为
H(x)=-X*log2x-(1-x)*log2(1-k)
在图7中表示的过程的最终结果是在变换表162中各个变换值的分配,该分配被变换器160用于将输入的象素符号变换为一个二进制量,该二进制量通常产生比如果不进行变换时要好的压缩。
上面各部分描述了通过自适应编码、前后关系模式和变换是如何改善压缩比的。在解压缩器中,自适应编码和前后关系模式要求反馈环,因为在该方法中对于来自一个码字流的比特被解码,取决于关于以前被解码的比特和符号的信息。如果解压缩器需要实时地快速解码该码字流,并行处理将可以用于提高更大的数据通过量。
一种这样的并行处理实施方案如下所述。利用比特位置前后关系模式(见图8(a)),在象素值中的每个比特由八个并行编码器元之一处理,每个编码器被专用于一个比特位置。利用这种安排,该比特的上下文对于一个编码器是已知的,因为该比特位置是唯一的前后关系和对于该编码器该比特位置是已知的,因为对于一个特定的编码器来说,它是恒定的。但是,在利用其他前后关系模式提供更好的压缩的情况下,并行的编码器就不是这样简单。
例如,采取如图8(C)所示的取决比特状态前后关系模式。如果象素的每个比特被发送到一单独的解码器,则这些比特不能以并行被解码,因为所提高的正在被解码的比特必须首先提供该正在被解码比特的前后关系才能被解码。因此,一些前后关系模式的利用施加强制性的并行处理。
在本发明的一个方面,允许使用优选的前后关系模式和允许在利用那种前后关系模式下在编码器中并行处理,提供了一种独特的重新排序缓冲器。图9和图10表示一个重新排序缓冲器和其相反的一个去重新排序缓冲器是如何连接到并行编码器的,和图11更为详细地表示该重新排序缓冲器的操作。
给出一个优选的前后关系模式以后,施加到并行编码器上有两个强制性处理。第一,如果每级将是独立的,则在一个并行周期中处理一组比特,这些比特都不会影响其他比特的前后关系。第二,如果该上下文数据在每个比特之后要被更新,在被并行处理的一组比特中设有两个比特共享一个前后关系。图12表示会有前后关系数据的前后关系记录,该记录可能当具有一个给定前后关系的比特被处理时而被复新。这个记录可能是诸如图4所示的存储器116的一个表的一行。
在图9中,表示出一个按照本发明的并行压缩系统400,该系统具有重新排序缓冲器402、去复用器404、N个并行级406(O、……N-1)、复用器408和去排序缓冲器410。系统400可以利用或不利用变换。每级406包括类似于压缩器102的压缩器412、信道414、和类似于去压缩器106的解压缩器416。
图10表示另外一种组态450,其中交叉器452用于将信道414(O、……N-1)的数据组合为一条单一信道454,和去交叉器456用于分离单一信道454的数据返回到每级的单独信道。
再次参照图9,输入到系统400的符号流由重新排序缓冲器404缓冲。重新排序缓冲器404按照下面详细解释的接收每符号k(在图8中,k=8)比特的比特流,和输出该比特到去复用器404,该去复用器分配被重新排序的比特到各并行编码器。在第i个并行级中406(i)中,压缩器412(i)将分配给406(i)的比特压缩为码字,该码字不通过信道414(i)传送,和由解压缩器416(i)解压缩。所有级的输出而后由复用器408组合,复用器408的输出共组合到去排序缓冲器410,该缓冲器执行重新排序缓冲404的相反操作。虽然如所示在并行编码器中,每级分配一个单独的前后关系,但可以按应用的需要,重新排序允许的其他方式分割各并行级的灵活性。例如,每级可以被分配一个Pclass、一组包括多个前后关系,或者在各个级中平均分配数据的特殊分割。
图11(a)表示一种重新排序的缓冲器502,该缓冲器用于具有四个并行级的编码器和取决于比特状态的正下文模式,尽管这种缓冲器还可以用于其他的组态,诸如8个或N个并行级,每象素不同的比特数、或者不同的前后关系模式。四个输入字节(如左边所述的各象素被输入到缓冲器502)和八个四比特数据块表示为从缓冲器502输出。输出的数据块每并行编码因知一个地输出到并行编码器,因此每个输出数据块代表一组的并行处理的比特。如果输入的各比特为未重新排序的情况,输入到并行编码器的数据块恰好是象素A(A7-A4)的四个最高有效位,接着是象素A(A3-A0)的四个最低有效位,而后是象素B(B7-B4)的四个最高有效位,等等。正如从上面讨论应当明确看出的,当取决于比特状态的模式利用时,一组被并行处理的比特将不是独立的,因为A4从其位置(4)得到其前后关系和比特A7、A6和A5的值是相同的比特组中的。
为解决这个问题,缓冲器502为象素A、B、C和D重新排序该输入比特,正如所输出的数据块(以并行处理的各组比特)正如所输出的数据块9以并行处理的各组比特)D7-C7-B7-A7、D6-C6-B6-A6等等。利用这种重新排序,没有一个比特对于前后关系在其组中依靠任何其他比特。但是,如果是两个比特,仍然可以共享一个前后关系。例如,D7和C7在取决比特状态前后关系模式中可能共享一个前后关系,取决于比特状态的前后关系是该比特的位置以及该左边的比特。对于D7和C7,该比特的位置是相同的,而且在其左边没有比特(图11的上面)。
利用图11(b)所示的重新排序缓冲器,该第二个限制与该第一个限制一起被解决了。在该缓冲器中,被分组为各数据块的各个比特是从不同的象素中取出的,而且还是取自不同的比特位置。其中比特位置是前后关系的一部分,具有不同比特位置的比特将其有不同的上下文。因此,由缓冲器504输出的各数据块(并行处理的各比特组),D7-C6-B5-A4、D6-C5-B4-A3等等一直到第九数据块H7-G6-F5-E4,每个数据块包括对于前后关系不取决于在它们的数据块中的其他比特和不与在它们的数据块中任何其他比特共享一个前后关系。没有表示出输入象素E、F、G和H,但示出接着的象素D。
在图11(b)中,没有在象素A以前的各象素,说明该缓冲器的状态接着复位。在缓冲器复位以后在第一个并行步骤中,仅具有一个比特的(来自象素A)的数据块被处理。在下一个并行步骤中来自象素A的一个比特和来自象素B的一个比特被处理。然而各比特的交错和前后关系冲突的避免意味着在一次复位以后不是所有并行的级将被用于前面的几个数据块,这种利用对于任何合理的图象尺寸是重要的。在图11(b)的情况中,仅出现在前面三个数据块。
图13(a)-(b)表示类似的对于施加到并行编码器的限制,对于设置于管道编码器的前后关系模式的限制。图13(a)和(b)表示如图11所示正在进行的象素A-D流水线编码器的过程,利用图13(a)表示以未重新排序的次序的正在进行的比特的一种流水线,而图13(b)表示以重新排序的次序的当前的比特的一种流水线。在本图中,每一列标注时间t,和表示由一个管道级正在操作的比特。表示在这个例子中的各级是一个输入级、三个中间级(IS-1、IS-2和IS-3)、和两个输出级。
在该例子中,假设一个比特经处理且用于在第一输出级中确定其其比特的前后关系,但不是立即被利用。另外,假设IS-1的处理取决于正被处理的比特的前后关系,和正在利用取决比特状态前后关系模式。利用取决比特状态前后关系模式,划圈的比特A2取决于A3、A4、A5、A6和A7。在图13(a)中,这可能意味着,比特A2的处理不能继续进行,至少直至比特A3和A4全都到达第一输出级(比特A5-A7已经通过过第一输出段)。这种延迟可能损害流水线处理的益处。
为了解决这个问题,可以利用诸如缓冲器502这样一个重新排序缓冲器,实现如图13(b)的效果。在该例子中,从比特B7得到其上下文的划圈的比特B6在一个早些时候被输出到第一输出级,且因比当B6在IS-1中要被处理时是可以利用的。
以上的描述是说明性的,而不是限制性的。对本专业的技术人员来说当阅读了这份公开以后,本发明的许多变形将是显而易见的。因此,本发明的范围不同参照上述描述确定的,而应当是参照所附的权利要求书连同其各个等同物的所有范围确定的。

Claims (13)

1.一种压缩输入符号的方法,其中从M个字母符号中选择每个输入符号来代表在调色图象中的一个象素,将选择的符号转变为由较少比特表示的并可以将输入符号解码的码字,该方法包括以下步骤:
选择一个前后关系模式;
读出输入符号的M阵列的输入码流;
利用在上述输入码流期间所述前后关系模式的指示确定一个上下文分布;
在所述输入码流期间的所述前后关系中确定所述M阵输入符号的分布;
分配一个第一二进制序列到该符号集中的M个符号的一个第一符号,其中所述二进制序列是k比特,k是一个大于或等于log2M的整数;
分配后续的各二进制序列到该符号集中M个符号的各后续的符号,其中该后续的二进制序列是从所有来分配的二进制序列中选择的二进制序列,这在该符号集中已被分配二进制序列和选择二进制序列的部分符号集期间产生最小部分比特状态熵,从而形成用于变换任何M阵符号到其赋予的二进制化量的变换表;
重复所述分配后续的二进制序列的步骤,至少直至M-1个二进制序列被分配给各个符号;
分配剩余二进制序列到剩余的符号,因此完成所述变换表;
利用所述变换表对每个M阵输入符号进行二进制化形成一个比特流;和
对所述比特流进行熵编码形成在被压缩的码字流中的码字。
2.权利要求1的方法,其中所述部分比特状态熵是在所有前后关系和所有k比特二进制序列位置期间的部分比特熵的和,其中部分比特熵是一个部分位置有条件概率与一个部分有条件概率之比的熵。
3.权利要求1的方法,还包括传送所述被压缩的码字流和所述变换表到一个解压缩器的步骤。
4.权利要求3的方法,还包括在恢复作为被解码比特流的所述比特流的传送以后,解压缩被压缩的码字流的步骤。
5.权利要求4的方法,还包括用所述变换表的反方向变换所述被解码的比特流的步骤。
6.权利要求的方法,还包括以下步骤:
传送所述被压缩的码字流到解压缩器;
在恢复作为被解码比特流的所述比特流的传送以后解压缩所述被压缩的码字流;和
按照从以前被变换的所述被解码的比特流的各部分得到的上下文模式变换所述被解码的比特流。
7.权利要求1的方法,其中所述前后关系模式是一种比特位置上下文模式,其中一个比特的前后关系是由所述比特在其二进制化中的位置确定的。
8.权利要求1的方法,其中所述前后关系模式是一种比特平面上下文模式,其中一个比特的前后关系是由所述的比特在其二进制化中的位置的一个前后关系符号确定的。
9.权利要求1的方法,其中所述前后关系模式是一种取决比特状态的前后关系模式,其中一个比特的前后关系,(如果有的话)是由所述比特的二进制时的以前被处理的各比特确定的。
10.权利要求1的方法,其中所前后关系模式是一种取决第一马尔克夫比特状态前后关系模式,其中一个比特的前后关系(如果有的话)是由所述比特的二进制量和一个前后关系符号确定的。
11.权利要求1的方法,其中所述前后关系模式是一种混合的上下文模式,其中一个比特的前后关系(如果有的话)是由所述比特的二进制量的以前已处理过的各比特和一个前后关系符号的二进制量的比特确定的。
12.一种压缩输入符号的方法,其中从M个字母符号中选择每个输入符号来代表在调色图象中的一个象素将选择的符号转变为较少比特表示的并可由将输入符号解码的码字,该方法包括以下步骤:
读出输入符号的M阵的输入码流;
二进制化所述M阵输入符号为一个二进制的符号码流;
对每个二进制符号的每个比特识别一个前后关系,其中对于所述每个比特的一个前后关系是由所述每个比特在所述每个二进制化的符号中的位置和一个前后关系符号确定的,该前后关系符号不同于所述每个二进制的符号并与所述每个二进制化的符号有一种预先确定的关系,所述预定关系是这样的,即当解码时,所述每个二进制化符号在所述前后关系符号之后被解码;
对于所述前后关系确定一个二进制熵码;
按照从所述码流的所述每个比特的前后关系和所述码流的所述每个比特的值确定的所述二进制熵码对所述二进制化符号的码流的每个比特进行编码。
13.一种压缩输入符号的方法,其中从M个字母符号中选择每个输入符号来代表在调色象素中的一个象素,将选择的符号转变为由较少比特表示的并可将输入符号解码的码字,该方法包括以下步骤:
读出M阵输入符号的输入码流;
二进制化所述M阵输入符号为二进制化的符号的码流;
识别每个二进制化的符号的每个二进制比特的一个前后关系,其中所述每个比特的前后关系是由所述每个比特在所述每二进制化符号中的位置和一个前后关系符号的二进制化的各比特确定的,所述上下文符号是在以对所述每个二进制符号的预定关系上不同于所述每个二进制化符号的一个符号,所述预定关系是这样的,当解码时,所述每个二进制化的符号在所述前后关系符号以后被解码;
对所述各前后关系确定一个二进制熵码;
按照由所述码流的所述每个比特和前后关系和所述码流的所述每个比特的值所确定的所述二进制熵码对所述二进制化的符号的码流的每个比特进行编码。
CN95102737A 1994-02-23 1995-02-22 调色图象的压缩及其m阵符号集的比特状态编码的二进制化 Expired - Fee Related CN1044183C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US200,233 1994-02-23
US08/200,233 US5471207A (en) 1994-02-23 1994-02-23 Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor
US200233 1994-02-23

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNB981156827A Division CN1139188C (zh) 1994-02-23 1998-07-07 调色图象的压缩及其m阵符号集比特状态编码的二进制化

Publications (2)

Publication Number Publication Date
CN1117222A CN1117222A (zh) 1996-02-21
CN1044183C true CN1044183C (zh) 1999-07-14

Family

ID=22740860

Family Applications (2)

Application Number Title Priority Date Filing Date
CN95102737A Expired - Fee Related CN1044183C (zh) 1994-02-23 1995-02-22 调色图象的压缩及其m阵符号集的比特状态编码的二进制化
CNB981156827A Expired - Fee Related CN1139188C (zh) 1994-02-23 1998-07-07 调色图象的压缩及其m阵符号集比特状态编码的二进制化

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB981156827A Expired - Fee Related CN1139188C (zh) 1994-02-23 1998-07-07 调色图象的压缩及其m阵符号集比特状态编码的二进制化

Country Status (9)

Country Link
US (1) US5471207A (zh)
KR (1) KR100201918B1 (zh)
CN (2) CN1044183C (zh)
DE (1) DE19506164C2 (zh)
FR (1) FR2716587B1 (zh)
GB (1) GB2286942B (zh)
RU (1) RU2125765C1 (zh)
TW (1) TW255999B (zh)
WO (1) WO1995023457A1 (zh)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549666B1 (en) * 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
US6229927B1 (en) * 1994-09-21 2001-05-08 Ricoh Company, Ltd. Reversible embedded wavelet system implementation
US5689589A (en) * 1994-12-01 1997-11-18 Ricoh Company Ltd. Data compression for palettized video images
US5659631A (en) * 1995-02-21 1997-08-19 Ricoh Company, Ltd. Data compression for indexed color image data
JP3364074B2 (ja) * 1995-06-05 2003-01-08 株式会社リコー ビットプレーン符号化装置
US5710562A (en) * 1995-08-31 1998-01-20 Ricoh Company Ltd. Method and apparatus for compressing arbitrary data
DE19538310A1 (de) * 1995-10-14 1997-04-17 Sel Alcatel Ag Vorrichtung zum zeitlichen Komprimieren von Signalen
US5708431A (en) * 1995-11-14 1998-01-13 Lucent Technologies Inc. Method for compression coding of potentially unbounded integers
JP2840589B2 (ja) * 1996-02-09 1998-12-24 富士通株式会社 データ圧縮装置及びデータ復元装置
US6037982A (en) * 1996-03-28 2000-03-14 Intel Corporation Multi-pass video compression
EP0836283A4 (en) * 1996-04-18 2001-02-28 Milto Jury Petrovich BINARY CODE COMPRESSION AND DECOMPRESSION METHOD AND PARALLEL COMPRESSION AND DECOMPRESSION PROCESSOR
US5815097A (en) * 1996-05-23 1998-09-29 Ricoh Co. Ltd. Method and apparatus for spatially embedded coding
US6188795B1 (en) * 1996-06-13 2001-02-13 Dublin City University Data compression
US6028963A (en) * 1996-06-17 2000-02-22 Canon Kabushiki Kaisha Image encoding based on judgement on prediction error
CN1178458C (zh) * 1996-07-31 2004-12-01 松下电器产业株式会社 图象解码装置和图象解码方法
US6094453A (en) 1996-10-11 2000-07-25 Digital Accelerator Corporation Digital data compression with quad-tree coding of header file
US5963716A (en) * 1996-12-02 1999-10-05 Hewlett-Packard Company Bi-directional data stream decompression
US5808572A (en) * 1997-05-22 1998-09-15 National Science Council Method and apparatus for finite-length arithmetic coding
US6757436B2 (en) * 1997-06-19 2004-06-29 Electroncs For Imaging, Inc. Methods and apparatus for data compression based on modeling schemes
GB2327003A (en) * 1997-07-04 1999-01-06 Secr Defence Image data encoding system
US5990864A (en) * 1998-01-12 1999-11-23 Autodesk, Inc. Converting color images to an arbitrary palette
GB2333412B (en) * 1998-01-20 2002-05-15 Daewoo Electronics Co Ltd Context-based arithmetic encoding/decoding apparatus
US6038346A (en) * 1998-01-29 2000-03-14 Seiko Espoo Corporation Runs of adaptive pixel patterns (RAPP) for lossless image compression
FR2774542B1 (fr) * 1998-01-30 2001-12-14 Daewoo Electronics Co Ltd Procede et appareil pour le codage/decodage arithmetiques a base du contexte
KR100281321B1 (ko) * 1998-03-26 2001-02-01 전주범 적응적인 산술 부호화 및 그 복호화 방법
US6449394B1 (en) * 1999-07-09 2002-09-10 Sarnoff Corporation Packing variable-length code bits at fixed positions
US6522783B1 (en) * 1999-11-23 2003-02-18 Sharp Laboratories Of America, Inc. Re-indexing for efficient compression of palettized images
US7212677B2 (en) * 2000-01-11 2007-05-01 Minolta Co., Ltd. Coder, coding method, program, and image forming apparatus for improving image data compression ratio
DE10003166A1 (de) * 2000-01-25 2001-07-26 Ingo Krumpholz Waringsche Datenspeicherung
US6492916B1 (en) * 2001-03-30 2002-12-10 Ricoh Co., Ltd. Method and apparatus for generating multiple selectable contexts
US7382878B2 (en) * 2001-06-22 2008-06-03 Uponus Technologies, Llc System and method for data encryption
CA2452419A1 (en) * 2001-07-05 2003-01-16 Vladimir Vladimirovich Nasypny Method for an integrated protection system of data distributed processing in computer networks and system for carrying out said method
GB2381606A (en) * 2001-10-31 2003-05-07 Hewlett Packard Co Data compression, storage and analysis
EP1322117A1 (fr) * 2001-12-06 2003-06-25 Koninklijke Philips Electronics N.V. Dispositif de codage/décodage arithmétique
DE10204617B4 (de) * 2002-02-05 2005-02-03 Siemens Ag Verfahren und Vorrichtungen zur Kompression und Dekompression eines Videodatenstroms
US6717927B2 (en) * 2002-04-05 2004-04-06 Interdigital Technology Corporation System for efficient recovery of node B buffered data following serving high speed downlink shared channel cell change
ES2552696T3 (es) * 2002-04-23 2015-12-01 Ntt Docomo, Inc. Sistema y método para codificación y decodificación aritmética
US9577667B2 (en) 2002-04-23 2017-02-21 Ntt Docomo, Inc. System and method for arithmetic encoding and decoding
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
JP3961870B2 (ja) * 2002-04-30 2007-08-22 株式会社リコー 画像処理方法、画像処理装置、及び画像処理プログラム
US6744387B2 (en) * 2002-07-10 2004-06-01 Lsi Logic Corporation Method and system for symbol binarization
US7706405B2 (en) * 2002-09-12 2010-04-27 Interdigital Technology Corporation System for efficient recovery of Node-B buffered data following MAC layer reset
US6850175B1 (en) * 2003-09-18 2005-02-01 Ntt Docomo, Inc. Method and apparatus for arithmetic coding
US6906647B2 (en) 2002-09-20 2005-06-14 Ntt Docomo, Inc. Method and apparatus for arithmetic coding, including probability estimation state table creation
US20040101205A1 (en) * 2002-11-27 2004-05-27 General Electric Company Position coding system and method
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7586924B2 (en) * 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
KR100609697B1 (ko) * 2004-06-02 2006-08-08 한국전자통신연구원 이득 고정형 광증폭기를 이용한 광 선로 감시 시스템
US7053803B1 (en) * 2005-01-31 2006-05-30 Hewlett Packard Development Company, L.P. Data compression
WO2007106980A1 (en) * 2006-03-17 2007-09-27 Nortel Networks Limited Closed-loop mimo systems and methods
CA2667727C (en) * 2006-11-14 2014-07-08 Nippon Telegraph And Telephone Corporation Information source encoding method and decoding method, apparatuses therefor, programs therefor, and storage media which store the programs
WO2008075663A1 (ja) * 2006-12-21 2008-06-26 Ajinomoto Co., Inc. 大腸癌の評価方法、ならびに大腸癌評価装置、大腸癌評価方法、大腸癌評価システム、大腸癌評価プログラムおよび記録媒体
US9467699B2 (en) * 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
MX2011010334A (es) * 2009-04-03 2012-01-12 I Ces Innovative Compression Engineering Solutions Metodo para procesar un archivo digital notablemente del tipo de imagen, video y/o audio.
WO2011129774A1 (en) * 2010-04-15 2011-10-20 Agency For Science, Technology And Research Probability table generator, encoder and decoder
EP2561680B1 (en) * 2010-04-19 2020-07-15 BlackBerry Limited Methods and devices for reordered parallel entropy coding
CA2799763A1 (en) * 2010-07-13 2012-01-19 Research In Motion Limited Methods and devices for data compression using context-based coding order
KR101726274B1 (ko) * 2011-02-21 2017-04-18 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR101522391B1 (ko) * 2011-03-10 2015-05-21 니폰덴신뎅와 가부시키가이샤 양자화 제어 장치 및 방법, 및 양자화 제어 프로그램
RU2452026C1 (ru) * 2011-06-14 2012-05-27 Борис Иванович Волков Способ оцифровывания изображения и устройство его осуществления
US8933826B2 (en) 2013-03-01 2015-01-13 Gurulogic Microsystems Oy Encoder apparatus, decoder apparatus and method
US8754791B1 (en) * 2013-03-01 2014-06-17 Gurulogic Microsystems Oy Entropy modifier and method
GB2526337A (en) * 2014-05-21 2015-11-25 Canon Kk Method and apparatus for syntax element encoding in video coding and decoding
US9877029B2 (en) * 2014-10-07 2018-01-23 Qualcomm Incorporated Palette index binarization for palette-based video coding
US10448058B2 (en) * 2015-05-21 2019-10-15 Qualcomm Incorporated Grouping palette index at the end and index coding using palette size and run value
US9673836B1 (en) * 2016-09-23 2017-06-06 International Business Machines Corporation System level testing of entropy encoding
US10687062B1 (en) * 2019-02-22 2020-06-16 Google Llc Compression across multiple images
CN111049527B (zh) * 2019-12-23 2023-03-17 云南大学 一种图像编码解码方法
US11728826B2 (en) * 2021-05-24 2023-08-15 Google Llc Compression and decompression in hardware for data processing

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3278850D1 (en) * 1981-11-09 1988-09-01 Ibm Data translation apparatus translating between raw and compression encoded data forms
US4870695A (en) * 1987-03-20 1989-09-26 International Business Machines Corporation Compression and de-compression of column-interlaced, row-interlaced graylevel digital images
US5095374A (en) * 1989-10-10 1992-03-10 Unisys Corporation Method and apparatus for lossless compression and decompression of image data
US4973961A (en) * 1990-02-12 1990-11-27 At&T Bell Laboratories Method and apparatus for carry-over control in arithmetic entropy coding
US5349348A (en) * 1991-08-15 1994-09-20 International Business Machines Corporation Multi-mode data stream generator
JP3108479B2 (ja) * 1991-08-28 2000-11-13 株式会社リコー 符号化復号化方法およびその装置
EP0562672A3 (en) * 1992-03-22 1994-07-13 Igp Res & Dev Ltd Process of picture representation by data compression
EP0574746A1 (en) * 1992-06-19 1993-12-22 Intel Corporation Method and apparatus for real time compression and decompression of a digital motion video signal using a fixed Huffman table
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data

Also Published As

Publication number Publication date
WO1995023457A1 (en) 1995-08-31
GB2286942B (en) 1998-07-15
RU2125765C1 (ru) 1999-01-27
DE19506164C2 (de) 1998-04-16
RU95102477A (ru) 1996-12-27
KR950026293A (ko) 1995-09-18
CN1117222A (zh) 1996-02-21
FR2716587A1 (fr) 1995-08-25
KR100201918B1 (ko) 1999-06-15
DE19506164A1 (de) 1995-08-31
GB2286942A (en) 1995-08-30
GB9503417D0 (en) 1995-04-12
US5471207A (en) 1995-11-28
FR2716587B1 (fr) 1998-12-18
CN1223502A (zh) 1999-07-21
TW255999B (zh) 1995-09-01
CN1139188C (zh) 2004-02-18

Similar Documents

Publication Publication Date Title
CN1044183C (zh) 调色图象的压缩及其m阵符号集的比特状态编码的二进制化
Wu et al. Context-based, adaptive, lossless image coding
US5442458A (en) Method and associated apparatus for encoding bitplanes for improved coding efficiency
JP3978478B2 (ja) 推定画素値により固定速度のブロック単位の画像圧縮を行うための装置及び方法
US4694336A (en) Digital data transmission method
KR940701621A (ko) 적응블록크기 영상압축방법 및 시스템
JPH08265800A (ja) 圧縮方法、伸長方法、並列コンテキストモデラー、並列エントロピーコーダー、並列エントロピーデコーダー、画像圧縮装置及び画像伸長装置
CN1669233A (zh) 视频压缩系统
CN102668560B (zh) 嵌入式图形编码:用于并行解码的重排序比特流
Wu et al. A context-based, adaptive, lossless/nearly-lossless coding scheme for continuous-tone images
CN103222269A (zh) 用于较高吞吐量的最后位置的二值化
CN1151679C (zh) 图形数据压缩方法和装置以及数字视频译码器
KR930006750B1 (ko) 화상데이터 부호화장치
JPH1023259A (ja) 画像パターン変換装置
JPH0215782A (ja) 画像符号化方式
GB2319689A (en) An entropy encoder using context modelling with data reordering
CN1276650A (zh) 扫描图像实时压缩/解压缩方法
US6690832B1 (en) Method, system, and program for decoding compressed data at multiple points
CN1713719A (zh) 图像处理方法
CN1013633B (zh) 利用分块列表变换进行数据压缩
CN1483382A (zh) 针对原始ct图像数据的压缩方法
CN1538248A (zh) 激光打印系统的图像编解码装置及方法
CN111316645A (zh) 编码器、编码系统和编码方法
CN1222042A (zh) 预测图像的产生装置并用其对图像编码、发送和解码的装置
CN1124026C (zh) 用于小屏幕的范围产生电路和方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee