CN102263560B - 差分编码方法和*** - Google Patents
差分编码方法和*** Download PDFInfo
- Publication number
- CN102263560B CN102263560B CN2010101874103A CN201010187410A CN102263560B CN 102263560 B CN102263560 B CN 102263560B CN 2010101874103 A CN2010101874103 A CN 2010101874103A CN 201010187410 A CN201010187410 A CN 201010187410A CN 102263560 B CN102263560 B CN 102263560B
- Authority
- CN
- China
- Prior art keywords
- difference value
- value
- data
- code
- coding
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
公开了一种差分编码方法和***。该方法包括:根据差分值所处的数值区间,从预先存储的差分编码代码表中获取对应于所述数值区间的代码作为所述差分值的编码结果的数据前缀;判断所述差分值的绝对值是否小于预先确定的特定值,并根据判断结果获取对应于所述差分值的代码作为所述差分值的编码结果的数据后缀,其中,如果所述差分值的绝对值小于所述特定值,则将所述差分值与所述数值区间的下边界值之间的差的二进制码作为所述数据后缀,否则将所述差分值的二进制补码中的最低N位作为所述数据后缀,其中N表示所述差分值的初始数据宽度;以及对所述数据前缀和所述数据后缀进行组合,并将组合后的数据作为所述差分值的编码结果。
Description
技术领域
本发明涉及数据处理领域,更具体地涉及一种差分编码方法和***、以及一种用于对差分值的编码结果进行解码的方法和***。
背景技术
差分编码处理被普遍用在计算相邻传输数据之间的差分并对这些差分进行熵编码以实现数据压缩的无损数据压缩方法中。
在传统的差分编码处理中,代码表是通过哈夫曼(Huffman)编码方法创建的。Huffman编码是一种可变长度编码方法。在Huffman编码处理中,通常为频繁出现的数据分配短代码长度,并为很少出现的数据分配长代码长度。当差分值范围比较大时,Huffman代码表通常很大。这将消耗硬件实现中的大量存储器来保存代码表。
Michael J.Barry等在1991年提出了一种代码表设计方法。这种方法使用可变长度代码来对最频繁出现的符号进行编码,并利用固定长度代码来对剩余符号进行编码,以降低对存储器的需求。在固定长度代码的设计中,这种方法为前缀分配D比特,并为后缀分配K比特。其中,D是可变长度代码的最长代码长度,K是差分的比特长度。固定长度代码设计方法效率不高,并且降低了压缩率。
发明内容
鉴于以上所述的一个或多个问题,本发明提出了一种新颖的差分编码方法和***。
根据本发明实施例的差分编码方法包括:根据差分值所处的数值区间,从预先存储的差分编码代码表中获取对应于所述数值区间的代码作为所述差分值的编码结果的数据前缀;判断所述差分值的绝对值是否小于预定值,并根据判断结果获取对应于所述差分值的代码作为所述差分值的编码结果的数据后缀,其中,如果所述差分值的绝对值小于所述预定值,则将所述差分值与所述数值区间的下边界值之间的差的二进制码作为所述数据后缀,否则将所述差分值的二进制补码中的最低N位作为所述数据后缀,其中N表示所述差分值的初始数据宽度;以及对所述数据前缀和所述数据后缀进行组合,并将组合后的数据作为所述差分值的编码结果。其中,绝对值小于所述预定值的任意一个差分值的哈夫曼编码结果的数据宽度不大于其自身的原始数据宽度,并且绝对值大于或等于所述预定值的任意一个差分值的哈夫曼编码结果的数据宽度大于其自身的原始数据宽度。
根据本发明实施例的差分编码***包括:前缀获取单元,被配置为根据差分值所处的数值区间,从预先存储的差分编码代码表中获取对应于所述数值区间的代码作为所述差分值的编码结果的数据前缀;后缀获取单元,被配置为判断所述差分值的绝对值是否小于预定值,并根据判断结果获取对应于所述差分值的代码作为所述差分值的编码结果的数据后缀,其中,如果所述差分值的绝对值小于所述预定值,则将所述差分值与所述数值区间的下边界值之间的差的二进制码作为所述数据后缀,否则将所述差分值的二进制补码中的最低N位作为所述数据后缀,其中N表示所述差分值的初始数据宽度;以及数据组合单元,被配置为对所述数据前缀和所述数据后缀进行组合,并将组合后的数据作为所述差分值的编码结果。其中,绝对值小于所述预定值的任意一个差分值的哈夫曼编码结果的数据宽度不大于其自身的原始数据宽度,并且绝对值大于或等于所述预定值的任意一个差分值的哈夫曼编码结果的数据宽度大于其自身的原始数据宽度。
根据本发明实施例的用于对差分值的编码结果进行解码的方法包括:根据差分值的编码结果的数据前缀,从预先存储的差分编码代码表中获取对应于所述数据前缀的数值区间;根据所述数据前缀获取所述差分值的编码结果的数据后缀;当对应于所述数据前缀的数据区间的绝对值较大的一个边界值的绝对值小于预定值时,将所述差分值的编码结果与对应于所述数据前缀的数据区间的下边界值的总和作为对应于所述差分值的编码结果的解码结果,当对应于所述数据前缀的数据区间的绝对值较小的一个边界值的绝对值大于所述预定值时,将所述差分值的编码结果的数据后缀作为对应于所述差分值的编码结果的解码结果。
根据本发明实施例的用于对差分值的编码结果进行解码的***包括:区间获取单元,被配置为根据差分值的编码结果的数据前缀,从预先存储的差分编码代码表中获取对应于所述数据前缀的数值区间;后缀获取单元,被配置为根据所述数据前缀获取所述差分值的编码结果的数据后缀;解码执行单元,被配置为当对应于所述数据前缀的数据区间的绝对值较大的一个边界值的绝对值小于预定值时,将所述差分值的编码结果与对应于所述数据前缀的数据区间的下边界值的总和作为对应于所述差分值的编码结果的解码结果,当对应于所述数据前缀的数据区间的绝对值较小的一个边界值的绝对值大于所述预定值时,将所述差分值的编码结果的数据后缀作为对应于所述差分值的编码结果的解码结果。
如上所述,本发明提供了一种差分编码方法和***、以及一种用于对差分值的编码结果进行解码的方法和***。相对于Michael J.Barry提出的方法,本发明可以有效降低大于特定值的差分值的编码结果的数据宽度,从而可以改善最终的压缩率。
附图说明
从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明,其中:
图1示出了用于通过差分编码方法对一系列数据进行编码的示例性***的框图;
图2示出了差分数据的可能性分布情况的示意图;
图3示出了根据本发明实施例的差分编码***的框图;
图4示出了根据本发明实施例的差分编码方法的流程图;
图5示出了根据本发明实施例的用于对差分值的编码结果进行解码的***的框图;以及
图6示出了根据本发明实施例的用于对差分值的编码结果进行解码的方法的流程图。
具体实施方式
下面将详细描述本发明各个方面的特征和示例性实施例。下面的描述涵盖了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说显而易见的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更清楚的理解。本发明绝不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了相关元素、部件和算法的任何修改、替换和改进。
图1示出了用于通过差分编码方法对一系列数据进行编码的示例性***的框图。如图1所示,该***包括差分计算单元102和熵编码单元104。其中,差分计算单元102计算相邻的原始数据之间的差分值,例如:Diff[n+1]=Data[n+1]-Data[n],从而使得原始数据被映射至差分值。然后,熵编码单元104对差分计算单元102计算得出的差分值进行熵编码,以实现对一系列数据的编码。
具体地,在差分计算单元102中,数据没有被压缩,而是被扩展。例如,如果原始数据为8比特,则在差分运算之后,差分数据(也称为差分值)为9比特。在对差分计算单元102计算得出的差分值进行编码时,熵编码单元104检索差分编码代码表,以获取与输入的差分值相对应的代码。差分编码代码表是基于差分值的可能性分布生成的。常用的差分编码代码表生成方法是哈夫曼(Huffman)编码方法。它是由David A.Huffman在麻省理工大学(MIT)读博士期间开发的,于1952年在论文“A Methodfor the Construction of Minimum-Redundancy Codes”中发表。下面是Huffman差分编码代码表的一个示例:
差分值 代码
-510 100100000101100111
-509 100100000101100110
-508 100100000101100101
-507 100100000101100100
-506 100100000101100011
-505 100100000101100010
-18 10001011
-17 10010011
-16 00000011
-15 00101011
-14 00100011
-13 1000011
-12 1000111
-11 0000011
-10 0010011
-9 0110011
-8 100111
-7 001011
-6 011011
-5 00011
-4 01001
-3 1101
-2 0101
-1 101
0 111
1 0111
2 0011
3 1100
4 01000
5 00010
6 011010
7 000011
8 100101
9 0110010
10 0010010
11 0000010
12 1000110
13 1000010
14 00100001
15 00001011
16 00000001
17 10010010
18 10000011
505 100100000101000001
506 100100000101000000
507 100100000100000011
508 100100000100000010
509 100100000100000001
510 100100000100000000
从上表可以发现,对二进制补码的数据宽度为10比特的差分值(-510~510)进行编码时,最长代码长度是18比特。用于编码/解码的硬件需要用大容量存储器来存储这个差分编码代码表。
在以上示例中,需要进行编码的原始数据的数据宽度仅为8比特。利用图1所示的***进行编码后,只有对应于绝对值较小的差分值(-18~18)的代码的数据长度小于8比特,而对应于其他的绝对值较大的差分值的代码的数据长度都大于8比特。所以,对绝对值较大的差分值的编码不会对数据压缩产生贡献。
图2示出了差分数据的可能性分布情况的示意图。如图2所示,差分值的可能性分布通常比较集中,绝对值较小的差分值比绝对值较大的差分值更频繁地出现。所以,本发明提出将绝对值较小的差分值编码为数据长度较短的代码,并将绝对值较大的差分值编码为数据长度较长的代码以实现压缩的想法。其中,由于绝对值大的差分值出现的可能性非常低,所以可以使用固定长度的代码来对其进行编码;而对应于绝对值较小的差分值的代码的数据长度在3-8比特之间,可以设计一种变长代码(3比特-8比特)来对数据范围(-18,18)附近的绝对值较小的差分值进行编码。
根据本发明实施例,首先需要创建一种不同于以上所述的Huffman编码代码表的一种新颖的差分编码代码表。具体地,创建新颖的差分编码代码表的处理包括:根据差分值的可能性分布,通过Huffman编码方法创建初始差分编码代码表(即如上所述的包含有各个差分值的Huffman编码结果的Huffman差分编码代码表);为Huffman编码结果的数据宽度不大于其自身的初始数据宽度的差分值分配不同长度的代码,以组成可变长度代码表,并为哈夫曼编码结果的数据宽度大于其自身的初始数据宽度的差分值分配固定长度的代码,以组成固定长度代码表;以及将可变长度代码表和固定长度代码表的组合为根据本发明实施例的新颖的差分编码代码表。在创建根据本发明实施例的差分编码代码表的处理中,将Huffman编码结果的数据宽度不大于其自身的初始数据宽度的差分值划分成多个数值区间,并且分别为每个数据区间分配数据宽度不同的代码,以组成可变长度代码表。其中,在可变长度代码表中,数据宽度最小的代码的数据宽度为Huffman编码结果的数据宽度不大于其自身的初始数据宽度的差分值中Huffman编码结果的数据宽度最小的一个差分值的Huffman编码结果的数据宽度,数据宽度最大的代码的数据宽度为Huffman编码结果的数据宽度不大于其自身的初始数据宽度的差分值中Huffman编码结果的数据宽度等于其自身的初始数据宽度的一个差分值的Huffman编码结果的数据宽度(即,其自身的初始数据宽度)。并且在固定长度代码表中,对应于Huffman编码结果的数据宽度大于其自身的初始数据宽度的差分值的代码的数据宽度为Huffman编码结果的数据宽度不大于其自身的初始数据宽度的差分值中Huffman编码结果的数据宽度最小的一个差分值的Huffman编码结果的数据宽度。
例如,在根据本发明实施例的差分编码代码表中,可以将数值范围[-22,22]划分成以下的多个数值区间:[-22,-15],[-14,-11],[-10,-7],[-6,-3],[-2,-1],[0],[1,2],[3,6],[7,10],[11,14],[15,22],并且分别为每个数值区间分配唯一的代码(即,互不相同的代码)。也就是说,在根据本发明实施例的差分编码代码表中,Huffman编码结果的数据宽度不大于其自身的初始数据宽度的差分值所在的数值区间与代码之间是一一对应的:
数值区间 代码
[-22,-15] 11011
[-14,-11] 11001
[-10,-7] 1011
[-6,-3] 100
[-2,-1] 010
[0] 000
[1,2] 001
[3,6] 011
[7,10] 1010
[11,14] 11000
[15,22] 11010
并且,Huffman编码结果的数据宽度大于其自身的初始数据宽度的差分值所在的数值区间[-510,-23]和[23,510]都对应于代码111。
也就是说,Huffman编码结果的数据宽度不大于其自身的初始数据宽度的差分值所在的数值区间分别对应于互不相同的代码,并且Huffman编码结果的数据宽度大于其自身的初始数据宽度的差分值所在的数值区间对应于同一个代码。
接下来,参考图3和图4描述利用根据本发明实施例的差分编码代码表进行差分编码的根据本发明实施例的差分编码***和方法。图3示出了根据本发明实施例的差分编码***的框图。图4示出了根据本发明实施例的差分编码方法的流程图。
如图3所示,根据本发明实施例的差分编码***包括前缀获取单元302、后缀获取单元304、以及数据组合单元306。其中,前缀获取单元302根据差分值所处的数值区间,从预先存储的差分编码代码表中获取对应于差分值所处的数值区间的代码作为差分值的编码结果的数据前缀(即,执行步骤S402);后缀获取单元304判断差分值的绝对值是否小于预先确定的特定值,并根据判断结果获取对应于差分值的代码作为差分值的编码结果的数据后缀(即,执行步骤S404);数据组合单元306对数据前缀和数据后缀进行组合,并将组合后的数据作为差分值的编码结果(即,执行步骤S406)。
其中,如果差分值的绝对值小于特定值,则后缀获取单元304将差分值与差分值所处的数值区间的下边界值之间的差的二进制码作为数据后缀,否则将差分值的二进制补码中的最低N位作为数据后缀,其中N表示差分值的初始数据宽度。其中,绝对值小于特定值的任意一个差分值的哈夫曼编码结果的数据宽度不大于其自身的原始数据宽度,并且绝对值大于或等于特定值的任意一个差分值的哈夫曼编码结果的数据宽度大于其自身的原始数据宽度。并且绝对值小于特定值的差分值(相当于Huffman编码结果的数据宽度不大于其自身的初始数据宽度的差分值)所在的数值区间对应于互不相同的代码,并且绝对值大于或等于特定值的差分值(相当于Huffman编码结果的数据宽度大于其自身的初始数据宽度的差分值)对应于不同于根据本发明实施例的差分编码代码表中的其他代码的一个代码。下面结合上述数值区间和代码之间的对应关系的示例,详细描述根据本发明实施例的差分编码***和方法对于处于数值范围[-22,22]中的差分值进行编码的处理。例如,为了对差分值9进行编码,前缀获取单元302从根据本发明实施例的差分编码代码表中获取对应于差分值9所处的数值区间[7,10]的代码1010作为差分值9的编码结果的数据前缀。接着,由于差分值9小于预先确定的特定值23,所以后缀获取单元304将差分值9与差分值9所处的数值区间[7,10]的下边界值7之间的差2的二进制码10作为差分值9的编码结果的数据后缀。然后,数据组合单元306对差分值9的编码结果的数据前缀和数据后缀进行组合,并将组合后的数据101010作为差分值9的编码结果。也就是说,每个差分值的编码结果都是“数据前缀”+“数据后缀”的结构。基于上述方法得出的绝对值小于特定值23的差分值(即,处于数据范围[-22,22]中的差分值)的编码结果如下:
差分值 编码结果
-22 11011000
-21 11011001
-20 11011010
-19 11011011
-18 11011100
-17 11011101
-16 11011110
-15 11011111
-14 1100100
-13 1100101
-12 1100110
-11 1100111
-10 101100
-9 101101
-8 101110
-7 101111
-6 10000
-5 10001
-4 10010
-3 10011
-2 0100
-1 0101
0 000
1 0010
2 0011
3 01100
4 01101
5 01110
6 01111
7 101000
8 101001
9 101010
10 101011
11 1100000
12 1100001
13 1100010
14 1100011
15 11010000
16 11010001
17 11010010
18 11010011
19 11010100
20 11010101
21 11010110
22 11010111
另外,对于绝对值大于特定值23的差分值,后缀获取单元304将差分值的二进制补码中的最低N位作为差分值的编码结果数据后缀,其中N表示差分值的初始数据宽度。例如,对于差分值-255(二进制补码为1100000001),其最低8位是00000001,编码结果(数据前缀+数据后缀)为11100000001。仅对大于特定值23的差分值的最低N位进行编码的原因在于,当使用差分值来重构原始数据时,仅使用差分值的最低N位。
下面参考图5和图6来详细描述利用根据本发明的差分编码代码表来对差分值的编码结果进行解码的***和方法。图5示出了根据本发明实施例的用于对差分值的编码结果进行解码的***的框图。图6示出了根据本发明实施例的用于对差分值的编码结果进行解码的方法的流程图。
如图5所示,根据本发明实施例的用于对差分值的编码结果进行解码的***包括区间获取单元502、后缀获取单元504、以及解码执行单元506。其中,区间获取单元502根据差分值的编码结果的数据前缀,从根据本发明实施例的差分编码代码表中获取对应于差分值的编码结果的数据前缀的数值区间(即,执行步骤S602);后缀获取单元504根据对应于差分值的编码结果的数据前缀获取差分值的编码结果的数据后缀(即,执行步骤S604);解码执行单元506根据差分值的编码结果的数据前缀、对应于差分值的编码结果的数据前缀的数值区间、以及差分值的编码结果的数据后缀来对差分值的编码结果进行解码(即,执行步骤S606)。
其中,当对应于差分值的编码结果的数据前缀的数据区间的绝对值较大的一个边界值的绝对值小于预先确定的特定值时,解码执行单元506将差分值的编码结果与对应于差分值的编码结果的数据前缀的数据区间的下边界值的总和作为对应于差分值的编码结果的解码结果。当对应于差分值的编码结果的数据前缀的数据区间的绝对值较小的一个边界值的绝对值大于所述特定值时,解码执行单元506将差分值的编码结果的数据后缀作为对应于差分值的编码结果的解码结果。
综上所述,本发明将绝对值小于特定值的差分值分别编码为了数据宽度小于或等于该差分值的初始数据宽度的长度不同的代码,并将绝对值大于特定值的差分值编码为了固定长度的不同代码。其中,对应于任意一个绝对值大于特定值的差分值的固定长度代码包括M比特的数据前缀和N比特的数据后缀,M是对应于绝对值小于特定值的差分值的数据前缀中数据宽度最小的代码的代码长度,N是该差分值的原始数据长度(也称为数据宽度)。相对于Michael J.Barry提出的方法,本发明可以有效降低大于特定值的差分值的编码结果的数据宽度,从而可以改善最终的压缩率。
以上已经参考本发明的具体实施例来描述了本发明,但是本领域技术人员均了解,可以对这些具体实施例进行各种修改、组合和变更,而不会脱离由所附权利要求或其等同物限定的本发明的精神和范围。
根据需要可以用硬件或软件来执行步骤。注意,在不脱离本发明范围的前提下,可向本说明书中给出的流程图添加步骤、从中去除步骤或修改其中的步骤。一般来说,流程图只是用来指示用于实现功能的基本操作的一种可能的序列。
本发明的实施例可利用编程的通用数字计算机、利用专用集成电路、可编程逻辑器件、现场可编程门阵列、光的、化学的、生物的、量子的或纳米工程的***、组件和机构来实现。一般来说,本发明的功能可由本领域已知的任何手段来实现。可以使用分布式或联网***、组件和电路。数据的通信或传送可以是有线的、无线的或者通过任何其他手段。
还将意识到,根据特定应用的需要,附图中示出的要素中的一个或多个可以按更分离或更集成的方式来实现,或者甚至在某些情况下被去除或被停用。实现可存储在机器可读介质中的程序或代码以允许计算机执行上述任何方法,也在本发明的精神和范围之内。
此外,附图中的任何信号箭头应当被认为仅是示例性的,而不是限制性的,除非另有具体指示。当术语被预见为使分离或组合的能力不清楚时,组件或者步骤的组合也将被认为是已经记载了。
Claims (12)
1.一种差分编码方法,包括:
根据差分值所处的数值区间,从预先存储的差分编码代码表中获取对应于所述数值区间的代码作为所述差分值的编码结果的数据前缀;
判断所述差分值的绝对值是否小于预定值,并根据判断结果获取对应于所述差分值的代码作为所述差分值的编码结果的数据后缀,其中,如果所述差分值的绝对值小于所述预定值,则将所述差分值与所述数值区间的下边界值之间的差的二进制码作为所述数据后缀,否则将所述差分值的二进制补码中的最低N位作为所述数据后缀,其中N表示所述差分值的初始数据宽度;以及
对所述数据前缀和所述数据后缀进行组合,并将组合后的数据作为所述差分值的编码结果,
其中,绝对值小于所述预定值的任意一个差分值的哈夫曼编码结果的数据宽度不大于其自身的原始数据宽度,并且绝对值大于或等于所述预定值的任意一个差分值的哈夫曼编码结果的数据宽度大于其自身的原始数据宽度,其中
该差分编码方法还包括创建并存储所述差分编码代码表的步骤,其中,创建所述差分编码代码表的处理包括:
根据差分值的可能性分布,通过哈夫曼编码方法创建初始差分编码代码表,其中所述初始差分编码代码表中包含有对应于各个差分值的哈夫曼编码结果;
为哈夫曼编码结果的数据宽度不大于其自身的初始数据宽度的差分值分配不同长度的代码组成可变长度代码表,并为哈夫曼编码结果的数据宽度大于其自身的初始数据宽度的差分值分配固定长度的代码组成固定长度代码表;以及
将所述可变长度代码表和所述固定长度代码表组合为所述差分编码代码表。
2.根据权利要求1所述的差分编码方法,其特征在于,所述可变长度 代码表中数据宽度最大的代码的数据宽度为对应于所述数据宽度最大的代码的差分值的初始数据宽度,并且所述可变长度代码表中数据宽度最小的代码的数据宽度为对应于所述数据宽度最小的代码的差分值的哈夫曼编码结果的数据宽度。
3.根据权利要求1所述的差分编码方法,其特征在于,在所述差分编码代码表中,绝对值小于所述预定值的差分值所在的数值区间对应于互不相同的代码,并且绝对值大于或等于所述预定值的差分值对应于不同于所述差分编码代码表中的其他代码的一个代码。
4.根据权利要求3所述的差分编码方法,其特征在于,所述预定值为23。
6.一种差分编码***,包括:
前缀获取单元,被配置为根据差分值所处的数值区间,从预先存储的差分编码代码表中获取对应于所述数值区间的代码作为所述差分值的编码结果的数据前缀;
后缀获取单元,被配置为判断所述差分值的绝对值是否小于预定值, 并根据判断结果获取对应于所述差分值的代码作为所述差分值的编码结果的数据后缀,其中,如果所述差分值的绝对值小于所述预定值,则将所述差分值与所述数值区间的下边界值之间的差的二进制码作为所述数据后缀,否则将所述差分值的二进制补码中的最低N位作为所述数据后缀,其中N表示所述差分值的初始数据宽度;以及
数据组合单元,被配置为对所述数据前缀和所述数据后缀进行组合,并将组合后的数据作为所述差分值的编码结果,
其中,绝对值小于所述预定值的任意一个差分值的哈夫曼编码结果的数据宽度不大于其自身的原始数据宽度,并且绝对值大于或等于所述预定值的任意一个差分值的哈夫曼编码结果的数据宽度大于其自身的原始数据宽度,其中
该差分编码***还包括代码表创建单元,被配置为创建并存储所述差分编码代码表,其中,所述代码表创建单元通过以下处理创建所述差分编码代码表:
根据差分值的可能性分布,通过哈夫曼编码方法创建初始差分编码代码表,所述初始差分编码代码表中包含有各个差分值的哈夫曼编码结果;
为哈夫曼编码结果的数据宽度不大于其自身的初始数据宽度的差分值分配不同长度的代码组成可变长度代码表,并为哈夫曼编码结果的数据宽度大于其自身的初始数据宽度的差分值分配固定长度的代码组成固定长度代码表;以及
将所述可变长度代码表和所述固定长度代码表的组合为所述差分编码代码表。
7.根据权利要求6所述的差分编码***,其特征在于,所述可变长度代码表中数据宽度最大的代码的数据宽度为对应于所述数据宽度最大的代码的差分值的初始数据宽度,并且所述可变长度代码表中数据宽度最小的代码的数据宽度为对应于所述数据宽度最小的代码的差分值的哈夫曼编码结果的数据宽度。
8.根据权利要求6所述的差分编码***,其特征在于,在所述差分编码代码表中,绝对值小于所述预定值的差分值所在的数值区间对应于互不 相同的代码,并且绝对值大于或等于所述预定值的差分值对应于不同于所述差分编码代码表中的其他代码的一个代码。
9.根据权利要求8所述的差分编码***,其特征在于,所述预定值为23。
10.根据权利要求9所述的差分编码***,其特征在于,对应于数值范围[-22,22]中的各个数值区间的代码如下:
。
11.一种用于对差分值的编码结果进行解码的方法,包括:
根据差分值的编码结果的数据前缀,从预先存储的差分编码代码表中获取对应于所述数据前缀的数值区间;
根据所述数据前缀获取所述差分值的编码结果的数据后缀;
当对应于所述数据前缀的数据区间的绝对值较大的一个边界值的绝对值小于预定值时,将所述差分值的编码结果与对应于所述数据前缀的数据区间的下边界值的总和作为对应于所述差分值的编码结果的解码结果,
当对应于所述数据前缀的数据区间的绝对值较小的一个边界值的绝对值大于所述预定值时,将所述差分值的编码结果的数据后缀作为对应于所述差分值的编码结果的解码结果,其中
创建所述差分编码代码表的处理包括:
根据差分值的可能性分布,通过哈夫曼编码方法创建初始差分编码代码表,其中所述初始差分编码代码表中包含有对应于各个差分值的哈夫曼编码结果;
为哈夫曼编码结果的数据宽度不大于其自身的初始数据宽度的差分值分配不同长度的代码组成可变长度代码表,并为哈夫曼编码结果的数据宽度大于其自身的初始数据宽度的差分值分配固定长度的代码组成固定长度代码表;以及
将所述可变长度代码表和所述固定长度代码表组合为所述差分编码代码表。
12.一种用于对差分值的编码结果进行解码的***,包括:
区间获取单元,被配置为根据差分值的编码结果的数据前缀,从预先存储的差分编码代码表中获取对应于所述数据前缀的数值区间;
后缀获取单元,被配置为根据所述数据前缀获取所述差分值的编码结果的数据后缀;
解码执行单元,被配置为
当对应于所述数据前缀的数据区间的绝对值较大的一个边界值的绝对值小于预先确定的预定值时,将所述差分值的编码结果与对应于所述数据前缀的数据区间的下边界值的总和作为对应于所述差分值的编码结果的解码结果,
当对应于所述数据前缀的数据区间的绝对值较小的一个边界值的绝对值大于所述预定值时,将所述差分值的编码结果的数据后缀作为对应于所述差分值的编码结果的解码结果,其中
创建所述差分编码代码表的处理包括:
根据差分值的可能性分布,通过哈夫曼编码方法创建初始差分编码代码表,其中所述初始差分编码代码表中包含有对应于各个差分值的哈夫曼编码结果;
为哈夫曼编码结果的数据宽度不大于其自身的初始数据宽度的差分值分配不同长度的代码组成可变长度代码表,并为哈夫曼编码结果的数据宽度大于其自身的初始数据宽度的差分值分配固定长度的代码组成固定长度 代码表;以及
将所述可变长度代码表和所述固定长度代码表组合为所述差分编码代码表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101874103A CN102263560B (zh) | 2010-05-28 | 2010-05-28 | 差分编码方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101874103A CN102263560B (zh) | 2010-05-28 | 2010-05-28 | 差分编码方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102263560A CN102263560A (zh) | 2011-11-30 |
CN102263560B true CN102263560B (zh) | 2013-11-20 |
Family
ID=45010050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101874103A Expired - Fee Related CN102263560B (zh) | 2010-05-28 | 2010-05-28 | 差分编码方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102263560B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571101A (zh) * | 2011-12-12 | 2012-07-11 | 海南电力技术研究院 | 输电线路故障行波数据压缩方法 |
CN102932001B (zh) * | 2012-11-08 | 2015-07-29 | 大连民族学院 | 运动捕获数据压缩、解压缩方法 |
CN104467868A (zh) * | 2014-11-04 | 2015-03-25 | 深圳市元征科技股份有限公司 | 中文文本压缩方法 |
CN110061813B (zh) * | 2019-04-09 | 2022-10-04 | 惠州市仲恺Tcl智融科技小额贷款股份有限公司 | 一种数据编码方法和解码方法、及相关装置 |
CN114726380B (zh) * | 2022-06-07 | 2022-09-02 | 西南交通大学 | 一种监测数据无损压缩方法、装置、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1322406A (zh) * | 1998-10-06 | 2001-11-14 | 松下电器产业株式会社 | 编码无损压缩方法及其装置和译码无损压缩方法及其装置 |
US20060176196A1 (en) * | 2005-02-07 | 2006-08-10 | Fuji Photo Film Co., Ltd. | Data compression apparatus, and data compression program storage medium |
US20070242894A1 (en) * | 2004-10-08 | 2007-10-18 | Kautzer Matthias | Coding scheme for a data stream representing a temporally varying graphics model |
CN101715132A (zh) * | 2008-09-30 | 2010-05-26 | 雅马哈株式会社 | 无损压缩编码装置 |
-
2010
- 2010-05-28 CN CN2010101874103A patent/CN102263560B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1322406A (zh) * | 1998-10-06 | 2001-11-14 | 松下电器产业株式会社 | 编码无损压缩方法及其装置和译码无损压缩方法及其装置 |
US20070242894A1 (en) * | 2004-10-08 | 2007-10-18 | Kautzer Matthias | Coding scheme for a data stream representing a temporally varying graphics model |
US20060176196A1 (en) * | 2005-02-07 | 2006-08-10 | Fuji Photo Film Co., Ltd. | Data compression apparatus, and data compression program storage medium |
CN101715132A (zh) * | 2008-09-30 | 2010-05-26 | 雅马哈株式会社 | 无损压缩编码装置 |
Non-Patent Citations (2)
Title |
---|
Huffman算法的分析与改进;韩俊英等;《兰州铁道学院学报》;20030630;第22卷(第3期);第120-121,128页 * |
韩俊英等.Huffman算法的分析与改进.《兰州铁道学院学报》.2003,第22卷(第3期),第120-121,128页. |
Also Published As
Publication number | Publication date |
---|---|
CN102263560A (zh) | 2011-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102263560B (zh) | 差分编码方法和*** | |
JP5221047B2 (ja) | 圧縮率の向上のために改善されたコンテキストモデル選択を使用するcabac符号化方法及び装置、並びにcabac復号化方法及び装置 | |
US10547324B2 (en) | Data compression coding method, apparatus therefor, and program therefor | |
WO2009009605A1 (en) | Data coding buffer for electrical computers and digital data processing systems | |
CN102708574A (zh) | 图像数据的压缩 | |
CN110767241B (zh) | 谱峰位置的编码与解码 | |
CN101795407A (zh) | 用于对比特序列进行编码的方法和设备 | |
WO2009009602A1 (en) | Data coding/decoding for electrical computers and digital data processing systems | |
CN106027065A (zh) | 解码装置和解码方法 | |
CN103974066B (zh) | 视频编码方法和设备 | |
KR100674937B1 (ko) | 컨텍스트 적응형 이진 산술 복호화 장치 | |
Beirami et al. | Fundamental limits of universal lossless one-to-one compression of parametric sources | |
KR20150126858A (ko) | 엔트로피 변형기 및 방법 | |
KR101023536B1 (ko) | 데이터 무손실 압축 방법 | |
CN102547295B (zh) | 一种图像数据无损压缩的编码方法 | |
KR20180067956A (ko) | 데이터 압축 장치 및 방법 | |
CN105573775B (zh) | Fpga配置文件加载方法和解码器 | |
CN102651795B (zh) | 游长缩减的二元序列压缩编码方法 | |
CN116366071A (zh) | 一种基于ans编码的封装方法、***、存储介质及设备 | |
CN106325834A (zh) | 安卓安装包压缩方法和装置 | |
JP2010258532A (ja) | ビット長を符号に変換する回路及び方法 | |
CN105574053B (zh) | Fpga配置文件的压缩方法和装置 | |
Chudasama et al. | Survey of image compression method lossless approach | |
JP5570437B2 (ja) | エントロピー符号化装置、エントロピー復号装置、エントロピー符号化方法及びエントロピー復号方法 | |
Kumbhar et al. | SMS compression using arithmetic coding modification |
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: 20131120 Termination date: 20180528 |