CN102210105B - 用于压缩整数值数据流的系统和方法 - Google Patents

用于压缩整数值数据流的系统和方法 Download PDF

Info

Publication number
CN102210105B
CN102210105B CN200980144553.1A CN200980144553A CN102210105B CN 102210105 B CN102210105 B CN 102210105B CN 200980144553 A CN200980144553 A CN 200980144553A CN 102210105 B CN102210105 B CN 102210105B
Authority
CN
China
Prior art keywords
swimming
distance
data value
bit
code
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.)
Active
Application number
CN200980144553.1A
Other languages
English (en)
Other versions
CN102210105A (zh
Inventor
M·奥斯里克
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN102210105A publication Critical patent/CN102210105A/zh
Application granted granted Critical
Publication of CN102210105B publication Critical patent/CN102210105B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供了一种通过使用新的压缩方案来使与编码数据相关的比特流的大小和复杂度最小化的方法和系统。熵编码器接收游程/数据值对的列表并且单独地熵编码游程和数据值,分别根据长度和幅值来选择其码字,并且在编码比特流中级联所得到的码字对,其中首先级联游程码字。

Description

用于压缩整数值数据流的系统和方法
背景技术
已知用于编码整数值比特流的各种编码方案,其中比特流可以表示例如视频、图像等。已知的编码方案通常包括游程长度编码、可变长度编码、差分编码及其各种组合。
已知游程长度编码虽然可用于压缩呈现明显一致性的数据,但是在数据值有可能彼此不同的情况下通常是低效率的。在后一情况下,已知压缩方案共有的是在游程长度编码和某一其它类型的编码之间适应性地切换,该切换通常根据与比特流相关的补充信息(side information),或者根据计算,在解码器中进行处理;这分别降低了压缩效率或增大了计算负担。
压缩方案之间共有的是使用游程长度和差分编码二者来在游程长度编码之前进行差分编码,对于比特流中的每一个数据值,该顺序要求编码器计算差值并且要求解码器计算和值(即,用于重建数据值)。
因此,期望使用可以消除或至少减少这些已知限制的编码方案。
附图说明
图1图示根据本发明一个实施例的整数值数据流的编码方法。
图2图示根据本发明一个实施例的游程/数据值对的列表的编码方法。
图3图示整数值数据及其相关游程的示例性流。
图4图示根据本发明一个实施例的编码器-解码器系统。
具体实施方式
本发明的实施例通过使用新的压缩方案来使与编码数据相关的比特流的大小和复杂度最小化。熵编码器接收游程/数据值对的列表并且分别熵编码游程和数据值,分别根据长度和幅值来选择其码字,并且在编码比特流中级联所得到的码字对,其中首先级联数据值码字。该编码方案降低了编码比特流的大小和复杂度,该比特流可以表示图像、视频等。因此,可以用较小带宽发送该比特流,并且可以减轻编码器和解码器二者上的计算负担。
图1图示根据本发明一个实施例的流编码方法。根据该实施例,该方法可以按照预定的扫描方向扫描数据值数组(框100)。该方法可以将数据值从数组转换为游程/数据值对的序列(框110)。在框120,该方法可以基于游程的值,选择码字。类似地,在框130,该方法可以基于数据值的值,选择码字。该方法可以执行步骤120或步骤130或二者。该方法可以将编码后的游程/数据值数据级联为编码数据对(框140)。其后,数据可以被进一步处理以供传输。
更具体地,在框100,该方法可以按照扫描方向扫描源数据数组,该源数据表示例如图像、视频等。该方法可以接纳各种大小和配置的数据数组。将可理解的是在按照扫描方向来考虑时,多维整数数组可以被看做线性数组,并且因此,本讨论针对线性数组情况。
在框110,使用游程长度编码,一维数据值数组可以被转换成游程/数据值对的列表,其中该对中的一个整数(一般而言,第一整数)是游程的长度,并且另一整数(一般而言,第二整数)是包括对应游程的数据的值。例如,如图3所示,如果一维数组包括10个元素-{0,0,0,3,3,2,2,2,2,2}-则这10个元素将被转换成以下对:{(3,0),(2,3),(5,2)}。所得到的对表示原始数组包括等于0的3个值,等于3的2个值和等于2的5个值,并且按照该顺序。
在一个实施例中,所得到的游程/数据值对的列表可以在框110被差值编码成游程/数据值差值对的列表。返回到以上使用的示例10元素数组,所得到的游程/数据值差值对的列表包括{(3,+1),(2,+3),(5,-1)},其中[0-(-1)=+1]、[3-0=+3]以及[2-3=-1]。在数据值差值将不为0的一般情况下,如果为0则意味着以前游程的延续;通过将初始游程的前一游程值看做-1(如以上例子中所示),可以保证非0数据值差值(除非游程被分为子游程,如本文所述)。
通过在差值编码之前进行游程长度编码,需要计算差值(编码器)或和值(解码器)每个游程仅仅一次,而不是每个数据值一次。这种顺序区别在解码器中可能特别有价值,其中它不仅降低了所需的计算量,而且还消除了任何相关的序列性(serialism),这允许同时输出游程的数个相同数据值。
如上所述,本发明的原理可以应用于差分数据值和非差分数据值二者。因此,除非以下具体指出,以下讨论涉及一般意义上的“数据值”,其同等地涉及差分和非差分数据值。
在框120、130,所得到的游程/数据值对的列表可以被熵编码;游程可以与数据值分开编码并且这种编码可以顺序地(例如,在数据值之前的游程等)或并行地进行。本发明的实施例允许结合其他编码方案使用本文提出的基于码本的熵编码,如果需要的话。例如,虽然本讨论提出按照参考图2在以下所述的处理来编码游程和数据值二者,但是可以允许按照所提出的方案编码仅仅一个数据类型(也就是,游程),以及按照另一机制编码另一数据类型(例如,数据值)。因此,本发明的原理可以与所需的其他编码机制集成在一起。
在游程和数据值已经被熵编码之后,游程码字/数据值码字的列表可以被级联(即,对于每一对,所得到的数据值码字与所得到的游程码字级联),并且这些级联的码字一起形成最后的编码比特流,如框140所示。通过将数据值码字放在对应的游程码字之前,数据值可以被重建-在解码期间-在确定数据值的游程的长度之前,这允许特定游程值的指定游程长度解码。例如,如果在游程码字解码期间确定游程为1,则单个数据值可以被输出,这是由于数据值已经被恢复;因此,不需要进行循环或尝试适应一般情况,这意味着可以从该处理中去除一些计算开销。
图2图示根据本发明一个实施例的熵编码方法。在框200,接收游程/数据值对,并且在框205,每一对中的游程被检查以发现其是否在预定最大游程长度之内。游程是整数的,并且其范围可以为1到源数组的大小。出于熵编码的目的,游程长度可以具有上限,例如,2M,其中M是用于确保游程码本的大小是有限的一般参数。例如,对于图像,M可以与图像的大小相当,以使得游程不需要被分为子游程。
如果游程长于2M,可将其分成子游程以使得每个子游程小于等于2M。在游程被分为子游程的情况下,第一子游程获得相同的数据值,就如同游程未被分为子游程那样,并且每个随后的子游程获得数据值0。例如,考虑游程/数据值对(21,+2),其中M=3。在此情况下,游程不能长于8(2M=23=8),并且这样所得到的子游程/数据值对将是:{(8,+2),(8,0),(5,0)}(即,8+8+5=21)。
根据其长度,游程或子游程可以以三种方式中的一种来编码,如框210-225所示。在框210,游程被分为以下之一,即“短”或“长”。1的游程可以被编码为单个比特‘1’,如框215所示。通过将单个比特使用于1的游程最小化了在相邻数据值不相同时对压缩效率的影响,并且具有允许解码器使用符号测试来区分1的编码游程和大于1的那些的计算优势。
“短”游程可以包括大于1但是小于等于预定阈值2n的那些游程,其中n可以被任意选择或者按照多种预定方案中的任一种--包括,例如,对于正被压缩的数据,尝试实现最佳压缩的方案--来选择。短游程可以被编码为n+1比特,其中包括单个比特‘0’的前置码和随后的比游程值小1的n比特固定长度二进制码,如框220所示。
“长”游程可以包括大于2n的那些游程。长游程可以被编码为n+1+M比特,其中包括n+1比特的前置码和随后的比游程值小1的M比特固定长度二进制码,如框225所示。
注意:用于“短”游程和“长”游程二者的码字是比游程值小1的、固定长度二进制码,其具有适当的长度。作为按照所讨论方案的游程码本的例子,考虑表1,其示出了游程码本,其中M=11和n=4,以使得游程的最大长度为2048(即,211=2048),而“短”游程是包括2-16之间的那些游程(即,24=16)。
表1
Figure BDA0000060001450000051
数据值可以根据其幅值以两种方式之一进行编码。如在框230处所示,数据值按照其绝对值被分类为“短”或“长”;这允许单个前缀比特区分两种情况,并因而,当解码数据值码字时,如果码字的第一比特出现在计算机的字的最高有效位,那么简单的符号测试(与0比较)可以被执行以确定数据值是小还是大。
“小”数据值可以包括幅值(即,绝对值)大于0但小于等于2k的那些数据值,其中k可以被任意选择或者根据多种预定方案中的任一种--包括,例如,对于正被压缩的数据尝试实现最佳压缩的方案--来选择。小数据值被编码为k+2比特,其中包括单个比特‘0’的前置码、比数据值幅值小1的k比特的固定长度二进制码以及用于指示差值符号的单个比特,如框235所示。
“大”数据值可以包括幅值等于0或大于2k的那些数据值。大数据值可被编码为N+1比特,其中包括单个比特‘1’的前置码和随后的数据值模2N,如框240所示,其中N是原始数据值的字大小。
作为按照所讨论方案的数据值码本的例子,考虑表2,其示出了数据值码本,其中k=3且N=8,并且其中1的符号比特被用于指示负数据值,以使得码本包括512个条目(即,2*28=512)。
表2
Figure BDA0000060001450000061
变量n(与游程的熵编码相关)和k(与数据值的熵编码相关)可以基于从示例数据收集的统计信息,所述示例数据是可被编码器编码的事务的类型的大概表示(例如,图片、视频等)。
图4图示根据本发明一个实施例的编码器400和解码器500。编码器400可以用硬件或软件来实现,并且接收源数据410,整数值数据的一维数组,如本文所述的那样。源数据410可以是各种其他编码处理的结果,所述其他编码处理对于本发明是不重要的,包括源处理操作(例如,视频编码处理、音频编码处理等)。
游程/数据值编码器420可以将源数据410游程长度编码为游程/数据值对的列表。熵编码器440可以从游程/数据值编码器420接收游程/数据值对的列表,并且可以根据本文所述的处理分别地编码游程和数据值。熵编码器440可以级联所得到的码字,其中包括列表中的每一对,首先是编码的数据值,以形成编码比特流。在一个实施例中,并且如虚线所示,游程/数据值差值编码器430可以从游程/数据值编码器420接收游程/数据值对的列表,并且可以将各对差值编码为游程/数据值差值对的列表,其可以被熵编码器440处理。
发送缓冲器450在将编码比特流发送到信道之前,可以存储编码比特流,该信道可以表示用于传送编码比特流到解码器的传输介质。信道通常包括存储设备,诸如光、磁或电存储器和由例如通信网络或计算机网络提供的通信信道。
上述的编码处理在解码器500中被逆转,解码器500可以包括接收缓冲器510、熵解码器520、游程/数据值差值解码器530、游程/数据值解码器540和恢复数据存储设备550。每个单元执行编码器400中对应部分的相反处理,从而复制源数据410。解码器500可以包括其他框(未示出),其执行源解码以匹配在编码器400处施加的源编码处理。
尽管以上文本阐述了各种实施例的详细描述,但是应当理解,本发明的法定范围由以下阐述的权利要求的文字来限定。详细描述应被解释为仅仅是示例性的,并且没有描述本发明的每个可能的实施例,这是由于描述每个可能的实施例如果不是不可能的话,也将是不切实际的。使用当前技术或在本专利的申请日之后开发的技术,可以实现多种可替换实施例,其仍将落在限定本发明的权利要求的范围之内。
应当理解存在本发明及其各个方面的其他变型和修改的实施方式,如本领域技术人员容易明白的那样,并且本发明不受限于本文中所描述的特定实施例。因此,考虑覆盖落在本文中所描述和要求的基本潜在原理的范围内的任意和所有修改、变型或等同。

Claims (75)

1.一种用于熵编码与整数值数据的流对应的游程/数据值对数据的方法,所述方法包括:
基于每个游程的长度对每个游程进行分类;
如果游程的长度为1,则选择长度为1的第一码;
如果游程被分类为短游程,则选择具有第一预定长度的第一码,第一预定长度的第一码每一个都具有用于区分其它游程类别的相同的前置码,并且具有基于游程长度的值;
如果游程被分类为长游程,则选择具有第二预定长度的第一码,第二预定长度的第一码每一个都具有用于区分其它游程类别的相同的前置码,并且具有基于游程长度的值;以及
将所选的第一码输出到信道。
2.按照权利要求1所述的方法,其中数据值是根据流中的两个相邻数据值获得的差分数据。
3.按照权利要求1所述的方法,还包括:
在将所选的第一码输出到信道之前,向所述信道输出与所述游程/数据值对中的游程对应的数据值的编码表示。
4.按照权利要求1所述的方法,还包括:
基于每个数据值的幅值来对每个数据值进行分类;
如果数据值被分类为小数据值,则选择具有第三预定长度的第二码,第三预定长度的第二码每一个都具有用于区分大数据值的相同的前置码,并且具有基于数据值的值;
如果数据值被分类为大数据值,则选择具有第四预定长度的第二码,第四预定长度的第二码每一个都具有用于区分小数据值的相同的前置码,并且具有基于数据值的值;以及
将所选的第二码输出到信道。
5.按照权利要求1所述的方法,其中:
短游程的长度大于1并且小于等于预定阈值;以及
长游程的长度大于预定阈值。
6.按照权利要求1所述的方法,其中流代表视频。
7.按照权利要求1所述的方法,其中流代表图像。
8.一种用于熵编码与整数值数据的流对应的游程/数据值对数据的方法,所述方法包括:
基于每个数据值的幅值对每个数据值进行分类;
如果数据值被分类为小数据值,则选择具有第一预定长度的第一码,第一预定长度的第一码每一个都具有用于区分大数据值的相同的前置码,并且具有基于数据值的值;
如果数据值被分类为大数据值,则选择具有第二预定长度的第一码,第二预定长度的第一码每一个都具有用于区分小数据值的相同的前置码,并且具有基于数据值的值;以及
将所选的第一码输出到信道。
9.按照权利要求8所述的方法,其中数据值是根据流中的两个相邻数据值获得的差分数据。
10.按照权利要求8所述的方法,还包括:
在将所选的第一码输出到信道之后,向所述信道输出与所述游程/数据值对中的数据值对应的游程的编码表示。
11.按照权利要求8所述的方法,还包括:
基于每个游程的长度对每个游程进行分类;
如果游程的长度为1,则选择长度为1的第二码;
如果游程被分类为短游程,则选择具有第三预定长度的第二码,第三预定长度的第二码每一个都具有用于区分其它游程类别的相同的前置码,并且具有基于游程长度的值;
如果游程被分类为长游程,则选择具有第四预定长度的第二码,第四预定长度的第二码每一个都具有用于区分其它游程类别的相同的前置码,并且具有基于游程长度的值;以及
将所选的第二码输出到信道。
12.按照权利要求8所述的方法,其中流代表视频。
13.按照权利要求8所述的方法,其中流代表图像。
14.按照权利要求8所述的方法,其中小数据值是其幅值大于0且小于等于预定阈值的数据值。
15.一种用于熵编码与整数值数据的流对应的游程/数据值对数据的方法,所述方法包括:
基于每个游程的长度对每个游程进行分类;
如果游程的长度为1,则选择包括单个比特的第一码;
如果游程被分类为短游程,则从第一码本中选择包括n+1个比特的第一码,所选的第一码具有第一比特的预定前置码,并且所选的第一码的其余n个比特具有基于游程长度的值;
如果游程被分类为长游程,则从第二码本中选择包括n+1+M个比特的第一码,所选的第一码具有前n+1个比特的预定前置码,并且所选的第一码的其余M个比特具有基于游程长度的值;以及
将所选的第一码输出到信道。
16.按照权利要求15所述的方法,其中数据值是从两个相邻的游程/数据值对获得的差分数据。
17.按照权利要求15所述的方法,还包括:
在将所选的第一码输出到信道之前,向所述信道输出与所述游程/数据值对中的游程对应的数据值的编码表示。
18.按照权利要求15所述的方法,还包括:
基于每个数据值的幅值对每个数据值进行分类;
如果数据值被分类为小数据值,则从第三码本中选择包括k+2个比特的第二码,所选的第二码具有第一比特的预定前置码,并且所选的第二码的其余k+1个比特具有基于数据值的值;
如果数据值被分类为大数据值,则从第四码本中选择包括N+1个比特的第二码,所选的第二码具有第一比特的预定前置码,并且所选的第二码的其余N个比特具有基于数据值和N的值;以及
将所选的第二码输出到信道。
19.按照权利要求15所述的方法,其中流代表视频。
20.按照权利要求15所述的方法,其中流代表图像。
21.按照权利要求15所述的方法,其中:
短游程的长度大于1且小于等于2n;以及
长游程的长度大于2n
22.按照权利要求15所述的方法,其中对于被分类为短游程的游程:
预定前置码为比特‘0’;并且
其余n个比特的值是比游程长度少1的二进制码。
23.按照权利要求15所述的方法,其中对于被分类为长游程的游程:
预定前置码为n+1个比特‘0’;并且
其余M个比特的值是比游程长度少1的二进制码。
24.按照权利要求15所述的方法,还包括:
当游程的长度大于2M时,将游程分割为两个或更多个子游程,其中:
每个子游程的长度小于等于2M
与第一子游程相关的数据值等于与所述游程相关的数据值;并且
与第一子游程之后的每个子游程相关的数据值为0。
25.一种用于熵编码与整数值数据的流对应的游程/数据值对数据的方法,所述方法包括:
基于每个数据值的幅值对每个数据值进行分类;
如果数据值被分类为小数据值,则从第一码本中选择包括k+2个比特的第一码,所选的第一码具有第一比特的预定前置码,并且所选的第一码的其余k+1个比特具有基于数据值的值;
如果数据值被分类为大数据值,则从第二码本中选择包括N+1个比特的第一码,所选的第一码具有第一比特的预定前置码,并且所选的第一码的其余N个比特具有基于数据值和N的值;以及
将所选的第一码输出到信道。
26.按照权利要求25所述的方法,其中数据值是从两个相邻的游程/数据值对获得的差分数据。
27.按照权利要求25所述的方法,还包括:
在将所选的第一码输出到信道之后,向所述信道输出与所述游程/数据值对中的数据值对应的游程的编码表示。
28.按照权利要求25所述的方法,还包括:
基于每个游程的长度对每个游程进行分类;
如果游程的长度为1,则选择包括单个比特的第二码;
如果游程被分类为短游程,则从第三码本中选择包括n+1个比特的第二码,所选的第二码具有第一比特的预定前置码,并且所选的第二码的其余n个比特具有基于游程长度的值;
如果游程被分类为长游程,则从第四码本中选择包括n+1+M个比特的第二码,所选的第二码具有前n+1个比特的预定前置码,并且所选的第二码的其余M个比特具有基于游程长度的值;以及
将所选的第二码输出到信道。
29.按照权利要求25所述的方法,其中流代表视频。
30.按照权利要求25所述的方法,其中流代表图像。
31.按照权利要求25所述的方法,其中小数据值是其幅值大于0且小于等于2k的数据值。
32.按照权利要求25所述的方法,其中对于被分类为小数据值的数据值:
预定前置码为比特‘0’;并且
其余k+1个比特的值是比数据值的绝对值少1的二进制码,其中一个比特用于指示数据值为正还是为负。
33.按照权利要求25所述的方法,其中对于被分类为大数据值的数据值:
预定前置码为比特‘1’;并且
其余N个比特的值是数据值模2N的二进制码。
34.按照权利要求25所述的方法,其中N等于数据值的字大小。
35.一种用于熵编码与整数值数据的流对应的游程/数据值对数据的列表的系统,所述系统包括:
具有输入端的熵编码器,所述输入端用于接收所述列表,所述熵编码器被配置为:
将游程/数据值对的列表熵编码成游程码字/数据值码字对的列表,其中游程与数据值分开编码;以及
通过对于每一个游程码字/数据值码字对,级联数据值码字及其对应的游程码字来生成编码比特流,其中数据值码字在所述编码比特流中出现在游程码字之前。
36.按照权利要求35所述的系统,其中数据值是从两个相邻的游程/数据值对获得的差分数据。
37.按照权利要求35所述的系统,其中编码比特流被输出到信道。
38.按照权利要求35所述的系统,其中每个游程码字基于游程的长度。
39.按照权利要求38所述的系统,其中:
如果游程的长度为1,则游程码字包括单个比特;
如果游程的长度短,则游程码字包括n+1个比特,所述n+1个比特具有第一比特的预定前置码,并且其余n个比特具有基于游程长度的值;以及
如果游程的长度长,则游程码字包括n+1+M个比特,所述n+1+M个比特具有前n+1比特的预定前置码,并且其余M个比特具有基于游程长度的值。
40.按照权利要求35所述的系统,其中每个数据值码字基于所述数据值的幅值。
41.按照权利要求40所述的系统,其中:
如果数据值的幅值小,则数据值码字包括k+2个比特,所述k+2个比特具有第一比特的预定前置码,并且其余k+1个比特具有基于数据值的值;
如果数据值的幅值大,则数据值码字包括N+1个比特,所述N+1个比特具有第一比特的预定前置码,并且其余N个比特具有基于数据值和N的值;以及
如果数据值为0,则数据值码字包括N+1个比特,所述N+1个比特具有第一比特的预定前置码,并且其余N个比特具有基于数据值和N的值。
42.一种用于熵编码与整数值数据的流对应的游程/数据值对数据的设备,所述设备包括:
用于基于每个游程的长度对每个游程进行分类的装置;
用于如果游程的长度为1,则选择长度为1的第一码的装置;
用于如果游程被分类为短游程,则选择具有第一预定长度的第一码的装置,第一预定长度的第一码每一个都具有用于区分其它游程类别的相同的前置码,并且具有基于游程长度的值;
用于如果游程被分类为长游程,则选择具有第二预定长度的第一码的装置,第二预定长度的第一码每一个都具有用于区分其它游程类别的相同的前置码,并且具有基于游程长度的值;以及
用于将所选的第一码输出到信道的装置。
43.按照权利要求42所述的设备,其中数据值是从两个相邻的游程/数据值对获得的差分数据。
44.按照权利要求42所述的设备,还包括:
用于在将所选的第一码输出到信道之前,向所述信道输出与所述游程/数据值对中的游程对应的数据值的编码表示的装置。
45.按照权利要求42所述的设备,还包括:
用于基于每个数据值的幅值来对每个数据值进行分类的装置;
用于如果数据值被分类为小数据值,则选择具有第三预定长度的第二码的装置,第三预定长度的第二码每一个都具有用于区分大数据值的相同的前置码,并且具有基于数据值的值;
用于如果数据值被分类为大数据值,则选择具有第四预定长度的第二码的装置,第四预定长度的第二码每一个都具有用于区分小数据值的相同的前置码,并且具有基于数据值的值;以及
用于将所选的第二码输出到信道的装置。
46.按照权利要求42所述的设备,其中:
短游程的长度大于1并且小于等于预定阈值;以及
长游程的长度大于预定阈值。
47.按照权利要求42所述的设备,其中流代表视频。
48.按照权利要求42所述的设备,其中流代表图像。
49.一种用于熵编码与整数值数据的流对应的游程/数据值对数据的设备,所述设备包括:
用于基于每个数据值的幅值对每个数据值进行分类的装置;
用于如果数据值被分类为小数据值,则选择具有第一预定长度的第一码的装置,第一预定长度的第一码每一个都具有用于区分大数据值的相同的前置码,并且具有基于数据值的值;
用于如果数据值被分类为大数据值,则选择具有第二预定长度的第一码的装置,第二预定长度的第一码每一个都具有用于区分小数据值的相同的前置码,并且具有基于数据值的值;以及
用于将所选的第一码输出到信道的装置。
50.按照权利要求49所述的设备,其中数据值是从两个相邻的游程/数据值对获得的差分数据。
51.按照权利要求49所述的设备,还包括:
用于在将所选的第一码输出到信道之后,向所述信道输出与所述游程/数据值对中的数据值对应的游程的编码表示的装置。
52.按照权利要求49所述的设备,还包括:
用于基于每个游程的长度对每个游程进行分类的装置;
用于如果游程的长度为1,则选择长度为1的第二码的装置;
用于如果游程被分类为短游程,则选择具有第三预定长度的第二码的装置,第三预定长度的第二码每一个都具有用于区分其它游程类别的相同的前置码,并且具有基于游程长度的值;
用于如果游程被分类为长游程,则选择具有第四预定长度的第二码的装置,第四预定长度的第二码每一个都具有用于区分其它游程类别的相同的前置码,并且具有基于游程长度的值;以及
用于将所选的第二码输出到信道的装置。
53.按照权利要求49所述的设备,其中流代表视频。
54.按照权利要求49所述的设备,其中流代表图像。
55.按照权利要求49所述的设备,其中小数据值是其幅值大于0且小于等于预定阈值的数据值。
56.一种用于熵编码与整数值数据的流对应的游程/数据值对数据的设备,所述设备包括:
用于基于每个游程的长度对每个游程进行分类的装置;
用于如果游程的长度为1,则选择包括单个比特的第一码的装置;
用于如果游程被分类为短游程,则从第一码本中选择包括n+1个比特的第一码的装置,所选的第一码具有第一比特的预定前置码,并且所选的第一码的其余n个比特具有基于游程长度的值;
用于如果游程被分类为长游程,则从第二码本中选择包括n+1+M个比特的第一码的装置,所选的第一码具有前n+1个比特的预定前置码,并且所选的第一码的其余M个比特具有基于游程长度的值;以及
用于将所选的第一码输出到信道的装置。
57.按照权利要求56所述的设备,其中数据值是从两个相邻的游程/数据值对获得的差分数据。
58.按照权利要求56所述的设备,还包括:
用于在将所选的第一码输出到信道之前,向所述信道输出与所述游程/数据值对中的游程对应的数据值的编码表示的装置。
59.按照权利要求56所述的设备,还包括:
用于基于每个数据值的幅值对每个数据值进行分类的装置;
用于如果数据值被分类为小数据值,则从第三码本中选择包括k+2个比特的第二码的装置,所选的第二码具有第一比特的预定前置码,并且所选的第二码的其余k+1个比特具有基于数据值的值;
用于如果数据值被分类为大数据值,则从第四码本中选择包括N+1个比特的第二码的装置,所选的第二码具有第一比特的预定前置码,并且所选的第二码的其余N个比特具有基于数据值和N的值;以及
用于将所选的第二码输出到信道的装置。
60.按照权利要求56所述的设备,其中流代表视频。
61.按照权利要求56所述的设备,其中流代表图像。
62.按照权利要求56所述的设备,其中:
短游程的长度大于1且小于等于2n;以及
长游程的长度大于2n
63.按照权利要求56所述的设备,其中对于被分类为短游程的游程:
预定前置码为比特‘0’;并且
其余n个比特的值是比游程长度少1的二进制码。
64.按照权利要求56所述的设备,其中对于被分类为长游程的游程:
预定前置码为n+1个比特‘0’;并且
其余M个比特的值是比游程长度少1的二进制码。
65.按照权利要求56所述的设备,还包括:
用于当游程的长度大于2M时,将游程分割为两个或更多个子游程的装置,其中:
每个子游程的长度小于等于2M
与第一子游程相关的数据值等于与所述游程相关的数据值;并且
与第一子游程之后的每个子游程相关的数据值为0。
66.一种用于熵编码与整数值数据的流对应的游程/数据值对数据的设备,所述设备包括:
用于基于每个数据值的幅值对每个数据值进行分类的装置;
用于如果数据值被分类为小数据值,则从第一码本中选择包括k+2个比特的第一码的装置,所选的第一码具有第一比特的预定前置码,并且所选的第一码的其余k+1个比特具有基于数据值的值;
用于如果数据值被分类为大数据值,则从第二码本中选择包括N+1个比特的第一码的装置,所选的第一码具有第一比特的预定前置码,并且所选的第一码的其余N个比特具有基于数据值和N的值;以及
用于将所选的第一码输出到信道的装置。
67.按照权利要求66所述的设备,其中数据值是从两个相邻的游程/数据值对获得的差分数据。
68.按照权利要求66所述的设备,还包括:
用于在将所选的第一码输出到信道之后,向所述信道输出与所述游程/数据值对中的数据值对应的游程的编码表示的装置。
69.按照权利要求66所述的设备,还包括:
用于基于每个游程的长度对每个游程进行分类的装置;
用于如果游程的长度为1,则选择包括单个比特的第二码的装置;
用于如果游程被分类为短游程,则从第三码本中选择包括n+1个比特的第二码的装置,所选的第二码具有第一比特的预定前置码,并且所选的第二码的其余n个比特具有基于游程长度的值;
用于如果游程被分类为长游程,则从第四码本中选择包括n+1+M个比特的第二码的装置,所选的第二码具有前n+1个比特的预定前置码,并且所选的第二码的其余M个比特具有基于游程长度的值;以及
用于将所选的第二码输出到信道的装置。
70.按照权利要求66所述的设备,其中流代表视频。
71.按照权利要求66所述的设备,其中流代表图像。
72.按照权利要求66所述的设备,其中小数据值是其幅值大于0且小于等于2k的数据值。
73.按照权利要求66所述的设备,其中对于被分类为小数据值的数据值:
预定前置码为比特‘0’;并且
其余k+1个比特的值是比数据值的绝对值少1的二进制码,其中一个比特用于指示数据值为正还是为负。
74.按照权利要求66所述的设备,其中对于被分类为大数据值的数据值:
预定前置码为比特‘1’;并且
其余N个比特的值是数据值模2N的二进制码。
75.按照权利要求66所述的设备,其中N等于数据值的字大小。
CN200980144553.1A 2008-11-10 2009-11-06 用于压缩整数值数据流的系统和方法 Active CN102210105B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/268,171 US7804428B2 (en) 2008-11-10 2008-11-10 System and method for compressing a stream of integer-valued data
US12/268,171 2008-11-10
PCT/US2009/063526 WO2010054178A1 (en) 2008-11-10 2009-11-06 System and method for compressing a stream of integer-valued data

Publications (2)

Publication Number Publication Date
CN102210105A CN102210105A (zh) 2011-10-05
CN102210105B true CN102210105B (zh) 2014-04-23

Family

ID=41565901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980144553.1A Active CN102210105B (zh) 2008-11-10 2009-11-06 用于压缩整数值数据流的系统和方法

Country Status (8)

Country Link
US (1) US7804428B2 (zh)
EP (3) EP2913932B1 (zh)
JP (3) JP5162708B2 (zh)
KR (1) KR101171697B1 (zh)
CN (1) CN102210105B (zh)
AU (1) AU2009313449B2 (zh)
ES (1) ES2546542T3 (zh)
WO (1) WO2010054178A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY184131A (en) * 2010-07-09 2021-03-19 Samsung Electronics Co Ltd Method and apparatus for entropy encoding/decoding a transform coefficient
US10091529B2 (en) 2010-07-09 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding a transform coefficient
US9058223B2 (en) * 2011-04-22 2015-06-16 Microsoft Technology Licensing Llc Parallel entropy encoding on GPU
DE102011107974A1 (de) 2011-07-16 2013-01-17 Valeo Schalter Und Sensoren Gmbh Verfahren zum Rangieren eines Fahrzeugs in einem Umfeld sowie Rangierassistenzsystem für ein Fahrzeug
WO2013033895A1 (zh) * 2011-09-07 2013-03-14 速压公司 数据压缩和解压缩方法、程序、存储介质及电子产品
EP2826149A1 (en) 2012-03-15 2015-01-21 Nokia Corporation Encoding and decoding of data
GB2501527B (en) * 2012-04-27 2014-03-12 Broadcom Corp Method apparatus and computer program for encoding a bit string
GB2511493B (en) * 2013-03-01 2017-04-05 Gurulogic Microsystems Oy Entropy modifier and method
KR102430173B1 (ko) 2015-11-24 2022-08-05 삼성전자주식회사 디스플레이 장치
WO2017120091A2 (en) * 2016-01-08 2017-07-13 Zte Corporation Methods of transmitting mission critical small data using random access channel
US10602192B2 (en) * 2016-02-04 2020-03-24 Mediatek Inc. Methods and apparatuses for performing entropy encoding and entropy decoding with size determination of at least one bitstream portion
CN106656200B (zh) * 2016-12-13 2019-11-08 合肥工业大学 一种程序计数器压缩方法及其硬件电路
CN109716660B (zh) * 2017-01-24 2021-08-13 华为技术有限公司 数据压缩装置和方法
CN110019184B (zh) * 2017-09-04 2021-04-27 北京字节跳动网络技术有限公司 一种压缩和解压缩有序整数数组的方法
US11176109B2 (en) * 2019-07-15 2021-11-16 Microsoft Technology Licensing, Llc Time-series data condensation and graphical signature analysis

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5798718A (en) * 1997-05-12 1998-08-25 Lexmark International, Inc. Sliding window data compression method and apparatus
US6223162B1 (en) * 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
CN101032081A (zh) * 2004-07-14 2007-09-05 喷流数据有限公司 用于数据压缩优化的方法、系统和计算机程序产品
CN101202548A (zh) * 2007-12-28 2008-06-18 北京邮电大学 一种双游程数据编码方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4973916A (zh) * 1972-11-15 1974-07-17
JPS5567274A (en) * 1978-11-14 1980-05-21 Nippon Telegr & Teleph Corp <Ntt> Picture signal coding system
JPS57106272A (en) * 1980-12-22 1982-07-02 Ricoh Co Ltd Method for compression of multilevel picture data
JPH01256287A (ja) * 1988-04-06 1989-10-12 Canon Inc 画像圧縮装置
CA1326898C (en) * 1988-04-27 1994-02-08 John Music Method and system for decompressing color video encoded data
JP3061278B2 (ja) * 1988-04-29 2000-07-10 ゼロックスコーポレーション 可変ビット長コード語のビット長通信方法
JP3010631B2 (ja) * 1989-02-14 2000-02-21 ソニー株式会社 ランレングス符号化方式
JPH0697839A (ja) * 1992-09-16 1994-04-08 Sharp Corp データ圧縮方法
JP3259989B2 (ja) * 1992-10-23 2002-02-25 株式会社日立製作所 2値と多値の混在符号化画像データ復元方法および装置
US5926576A (en) 1994-03-30 1999-07-20 Newton; Dale C. Imaging method and system concatenating image data values to form an integer, partition the integer, and arithmetically encode bit position counts of the integer
US5710561A (en) * 1996-01-02 1998-01-20 Peerless Systems Corporation Method and apparatus for double run-length encoding of binary data
US5831559A (en) * 1996-01-24 1998-11-03 Intel Corporation Encoding/decoding video signals using multiple run-val mapping tables
IN192447B (zh) * 1996-06-14 2004-04-24 Daewoo Electronics Corp
US6028963A (en) 1996-06-17 2000-02-22 Canon Kabushiki Kaisha Image encoding based on judgement on prediction error
US6011499A (en) 1996-06-27 2000-01-04 Intel Corporation Encoding/decoding video signals using multiple run-val mapping tables
JPH10200413A (ja) * 1996-12-26 1998-07-31 Texas Instr Inc <Ti> 可変長コード生成装置及び生成方法
JP3410629B2 (ja) * 1997-05-21 2003-05-26 シャープ株式会社 可変長符号化回路及び可変長符号化方法
JPH11251923A (ja) * 1998-02-27 1999-09-17 Toyo Electric Mfg Co Ltd モニタ装置
US6118392A (en) 1998-03-12 2000-09-12 Liquid Audio Inc. Lossless data compression with low complexity
KR100281321B1 (ko) 1998-03-26 2001-02-01 전주범 적응적인 산술 부호화 및 그 복호화 방법
US6166664A (en) 1998-08-26 2000-12-26 Intel Corporation Efficient data structure for entropy encoding used in a DWT-based high performance image compression
JP2000115782A (ja) 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法及び記憶媒体
US6317222B1 (en) * 1998-11-17 2001-11-13 Xerox Corporation Set of run-length codewords containing pointers to data sources
JP3323175B2 (ja) 1999-04-20 2002-09-09 松下電器産業株式会社 符号化装置
US6505320B1 (en) 2000-03-09 2003-01-07 Cirrus Logic, Incorporated Multiple-rate channel ENDEC in a commuted read/write channel for disk storage systems
US6778483B2 (en) 2000-11-08 2004-08-17 Matsushita Electric Industrial Co., Ltd. Multilevel record modulator and demodulator
JP3375080B2 (ja) * 2001-08-10 2003-02-10 日本ビクター株式会社 画像圧縮方法
JP4100552B2 (ja) * 2001-11-22 2008-06-11 松下電器産業株式会社 復号化方法
JP3778087B2 (ja) 2002-01-18 2006-05-24 富士ゼロックス株式会社 データ符号化装置及びデータ復号装置
JP3709381B2 (ja) * 2002-04-02 2005-10-26 Necビューテクノロジー株式会社 カラー画像圧縮方法
US7433824B2 (en) 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7113115B2 (en) * 2004-06-30 2006-09-26 Intel Corporation Variable length code table look ups
US7068192B1 (en) 2004-08-13 2006-06-27 Google Inc. System and method for encoding and decoding variable-length data
US6987468B1 (en) 2004-10-29 2006-01-17 Microsoft Corporation Lossless adaptive encoding and decoding of integer data
US7015837B1 (en) 2004-10-29 2006-03-21 Microsoft Corporation Lossless adaptive encoding and decoding of integer data
US7985246B2 (en) 2006-03-31 2011-07-26 Warsaw Orthopedic, Inc. Methods and instruments for delivering interspinous process spacers
US8116378B2 (en) 2006-12-15 2012-02-14 Arcsoft, Inc. Variable length decoding method
JP2008182448A (ja) * 2007-01-24 2008-08-07 Canon Inc パックビッツ符号化手段
US7683809B2 (en) * 2008-04-11 2010-03-23 Aceurity, Inc. Advanced lossless bit coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5798718A (en) * 1997-05-12 1998-08-25 Lexmark International, Inc. Sliding window data compression method and apparatus
US6223162B1 (en) * 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
CN101032081A (zh) * 2004-07-14 2007-09-05 喷流数据有限公司 用于数据压缩优化的方法、系统和计算机程序产品
CN101202548A (zh) * 2007-12-28 2008-06-18 北京邮电大学 一种双游程数据编码方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Efficient Coding of DCT Coefficients By Joint Position-Dependent Encoding;ERIC C.Reed等;《Proceedings of the 1998 IEEE International Conference on Acoustics, Speech and Signal Processing》;19980512;正文第一部分,第8-20行,第32-39行 *
David Salomon.Data Compression:The Complete Reference,3rd Edition.《Data Compression:The Complete Reference,3rd Edition》.Springer-Verlag New York,2004, *
ERIC C.Reed等."Efficient Coding of DCT Coefficients By Joint Position-Dependent Encoding.《Proceedings of the 1998 IEEE International Conference on Acoustics, Speech and Signal Processing》.1998,
刘新等.基于信息熵编码的改进图像编码方法研究.《信息技术与信息化》.2006,第108-110页.
基于信息熵编码的改进图像编码方法研究;刘新等;《信息技术与信息化》;20060131;第108-110页 *

Also Published As

Publication number Publication date
EP2364530A1 (en) 2011-09-14
ES2546542T3 (es) 2015-09-24
EP2913932A1 (en) 2015-09-02
CN102210105A (zh) 2011-10-05
EP2913932B1 (en) 2019-10-16
JP2016006961A (ja) 2016-01-14
JP6025923B2 (ja) 2016-11-16
AU2009313449A1 (en) 2010-05-14
KR101171697B1 (ko) 2012-08-06
WO2010054178A1 (en) 2010-05-14
US7804428B2 (en) 2010-09-28
JP2013138422A (ja) 2013-07-11
AU2009313449B2 (en) 2014-06-05
KR20110094046A (ko) 2011-08-19
EP2908438A1 (en) 2015-08-19
US20100117875A1 (en) 2010-05-13
EP2364530B1 (en) 2015-06-03
JP5162708B2 (ja) 2013-03-13
JP2012508522A (ja) 2012-04-05
EP2908438B1 (en) 2020-05-27

Similar Documents

Publication Publication Date Title
CN102210105B (zh) 用于压缩整数值数据流的系统和方法
US5471207A (en) Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor
RU2417518C2 (ru) Эффективное кодирование и декодирование блоков преобразования
EP3831065B1 (en) Entropy coding for signal enhancement coding
KR20160123306A (ko) 심볼 압축을 수반하는 데이터의 소스 코딩 및 디코딩을 위한 방법들 및 디바이스들
CN1202623C (zh) 多道信息信号的算术编码/解码
JPH0695645B2 (ja) 符号化装置および符号化方法ならびに復号化装置および復号化方法
CN1124889A (zh) 数据并行编码和译码的方法和装置
CN100370828C (zh) 用于将参数值映像到码字索引的自适应方法和系统
CN1628466A (zh) 视频数据流的上下文灵敏的编码和解码
EP2251981B1 (en) Method and apparatus for coding and decoding
KR102393743B1 (ko) 모드 심볼들을 사용하는 인코더, 디코더 및 방법
US7123656B1 (en) Systems and methods for video compression
WO2003067763A2 (en) Video compression using analytical entropy coding
GB2319689A (en) An entropy encoder using context modelling with data reordering
EP2381686A1 (en) Apparatus for parallel entropy encoding and decoding
Aulí-Llinàs Fast and efficient entropy coding architectures for massive data compression. Technologies 2023, 1, 0
Meyer et al. Adaptive Entropy Coding of Graph Transform Coefficients for Point Cloud Attribute Compression
EA044215B1 (ru) Энтропийное кодирование усиления сигнала

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