CN104682966A - 列表数据的无损压缩方法 - Google Patents
列表数据的无损压缩方法 Download PDFInfo
- Publication number
- CN104682966A CN104682966A CN201510131244.8A CN201510131244A CN104682966A CN 104682966 A CN104682966 A CN 104682966A CN 201510131244 A CN201510131244 A CN 201510131244A CN 104682966 A CN104682966 A CN 104682966A
- Authority
- CN
- China
- Prior art keywords
- table data
- field
- byte stream
- list
- compressing
- 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.)
- Granted
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了列表数据的无损压缩方法,属于计算机数据压缩的技术领域。压缩方法,首先循环读入列表各项后将各项插入前缀树,接着输出压缩型序列化字节流,最后再次压缩字节流。将列表数据各项插入前缀树后,依据根节点与子树第一子节点的距离信息输出压缩型序列化字节流,可用于无序数据的压缩,提高了压缩效率;在输出压缩型序列化字节流后,配合现有的压缩方法,可进一步提高列表数据的压缩效果。本发明还给出了对应于所述压缩方法的解压缩方法。
Description
技术领域
本发明公开了列表数据的无损压缩方法,属于计算机数据压缩的技术领域。
背景技术
数据压缩分为无损压缩和有损压缩,有损压缩能以牺牲相对不重要的细节来大幅度压缩数据,可以用来压缩音频、图像和视频等。对于文本或其他精确数据,因为需要保留所有细节,只能采用无损压缩。无损压缩是通过去除冗余数据来达到数据压缩的目的,一切存在冗余数据的地方都是无损压缩的关注点。
最简单的无损压缩方法是游程编码RLE(Run-LengthEncoding),RLE通过将连续重复数据编码成数据加数量来达到压缩的目的。RLE可以是基于位、字节,也可以基于更长的数据单位,最常见的是基于字节。另外一类常见的无损压缩方法是熵编码。熵编码理论由信息学之父香农所创立,最常用的熵编码是哈夫曼编码,哈夫曼编码是算术编码的一种特例。不过由于算术编码受多项专利保护,与算术编码类似的区间编码在开源社区得到更多应用。所有熵编码的压缩极限都是熵值,在二进制下为H/8,H即熵,pi是各字符在文中的出现概率。熵编码是上下文无关的,因此无法去除上下文冗余,能去除上下文冗余的是一系列叫做字典编码的压缩方法。第一种字典压缩算法是LZ77,其名字是两位发明者的名字首字母合成,77是发明的年份,LZ77采用一种叫做滑动窗口的方法来动态生成隐式字典,该算法能有效去除上下文冗余,对重复数据的压缩具有很好的效果,因而产生了一系列的衍生算法,比较著名的是DEFLATE/DEFLATE64和LZMA/LZMA2.LZ还有一个版本叫LZ78,与LZ77不同的是LZ78对数据生成一个显式字典,然后将存在于字典内的数据替换为字典序,该方法实际上等同于LZ77。LZ78最著名的衍生算法是LZW,LZW经过一些改进,比LZ78具有更好的压缩率。实际上RLE也是一种简单的字典算法,去除的也是上下文冗余信息。针对上下文冗余的压缩算法还有动态马尔可夫编码DMC、上下文树权算法CTW、部分匹配预测PPM,PAQ等,这些算法基本上是通过模型预测或统计上下文冗余,然后再通过算术编码等来有效去除这些冗余数据。还有一类算法是通过可逆变换来制造上下文冗余,如BWT算法、差分编码、MTF算法,这些变换是可逆的,通过制造上下文冗余,再应用其他压缩方法就能取得很好的压缩效果。为了得到更好的压缩率,无损压缩方法还在不断更新和拓展,一方面是对已有算法做优化,另一方面是寻找和尝试更有效的算法,如子串枚举算法CSE等。
发明内容
本发明所要解决的技术问题是针对上述背景技术的不足,提供了列表数据的无损压缩方法,解决了列表数据应用传统的压缩方法压缩效果不足的问题,实现了对列表数据的更高的压缩效果。
本发明为实现上述发明目的采用如下技术方案:
列表数据的无损压缩方法,包括如下步骤:
循环读入列表各项后将各项插入前缀树;
输出压缩型序列化字节流;
再次压缩字节流。
作为所述列表数据的无损压缩方法的进一步优化方案,输出压缩型序列化字节流的步骤具体为:
输出根节点;
依据字典序并按深度遍历方法输出各子树:输出前缀数字以及与根节点连同的所有子树的各子节点,所述前缀数字表示根节点到各子树第一子节点的距离。
进一步的,所述列表数据的无损压缩方法中,列表数据包括:单词列表、地址列表、网络地址列表、数据库表记录。
进一步的,所述列表数据的无损压缩方法中,所述列表数据为单一字段或多字段,所述多字段列表数据的顺序任意,通过字段序号或字段名称定位多字段列表数据中的任一字段。
进一步的,所述列表数据的无损压缩方法中,再次压缩字节流步骤,利用游程编码法、动态马尔可夫编码法、上下文树权法、部分匹配预测法实现。
解压列表数据的方法,为所述方法的逆过程,解压得到字节流,将字节流反序列化为前缀树,完整输出前缀树得到列表数据。
本发明采用上述技术方案,具有以下有益效果:
(1)将列表数据各项插入前缀树后,依据根节点与子树第一子节点的距离信息输出压缩型序列化字节流,可用于无序数据的压缩,提高了压缩效率;
(2)在输出压缩型序列化字节流后,配合现有的压缩方法,可进一步提高列表数据的压缩效果。
附图说明
图1为列表数据用前缀树压缩为序列化字节流的示意图。
图2为压缩列表数据的流程图。
图3为解压缩列表数据的流程图。
具体实施方式
下面结合附图对发明的技术方案进行详细说明。
本发明提出的列表数据无损压缩方法是一种利用前缀树来做无损压缩的新方法。这个方法可应用于对列表数据的压缩,通过将列表数据编排后插入前缀树,再输出为压缩型序列化格式,然后再应用其他无损压缩方法进一步压缩,可取得显著的压缩效果。
列表数据包括各种列表,如单词列表、字典列表、各种地址列表、各种数据库表记录等,地址列表包括文件地址列表、网络地址列表等。列表数据可以是单一字段,也可以是多字段,多字段的顺序也可以随意调整,可以通过字段序号或者字段名称定位到该字段。
列表数据的无损压缩方法如图1、图2所示,具体包括以下步骤:
(1)循环处理列表各项,调换各字段顺序,将有较多重复前缀的字段放在前面,如果仅有一个字段则忽略本步骤;
(2)循环读入列表各项,将其插入到前缀树中;
(3)输出压缩型序列化字节流,序列化顺序如下:先输出根结点trie,然后按字典序输出各子树,输出子树按照深度遍历方法,将根结点连同所有子树的第一个子节点完整输出,第二个子节点及其后的所有子节点前面附加一个数字前缀,该前缀数字表示的是该子节点到根结点的深度,输出的字节流即为该列表的压缩形态,压缩型序列化的格式如下:
(4)还可以用其他字节流压缩方法(如哈夫曼编码或者字典编码)对其进一步压缩。
作为压缩数据的逆过程,用本发明所述方法压缩后的列表数据可用如下方法按照图3所示流程解压缩,首先对经过一般/传统压缩过的字节流做解压操作,然后将其字节流反序列化为前缀树,然后将前缀树完整输出,此即为原始列表数据。
(1)读取压缩条目;
(2)根据前缀数字表示的子节点到根结点的深度信息查找上级节点,将上级节点插入前缀树中;
(3)循环读入压缩条目,将由各条目确定的上级节点插入前缀树;
(4)从根节点开始遍历前缀树各节点,进而输出列表数据。
完整性序列化的格式如下:
综上所述,发明具有以下有益效果:
(1)将列表数据各项插入前缀树后,依据根节点与子树第一子节点的距离信息输出压缩型序列化字节流,可用于无序数据的压缩,提高了压缩效率;
(2)在输出压缩型序列化字节流后,配合现有的压缩方法,可进一步提高列表数据的压缩效果。
Claims (6)
1.列表数据的无损压缩方法,其特征在于,包括如下步骤:
循环读入列表各项后将各项插入前缀树;
输出压缩型序列化字节流;
再次压缩字节流。
2.根据权利要求1所述的列表数据的无损压缩方法,其特征在于,所述输出压缩型序列化字节流的步骤具体为:
输出根节点;
依据字典序并按深度遍历方法输出各子树:输出前缀数字以及与根节点连同的所有子树的各子节点,所述前缀数字表示根节点到各子树第一子节点的距离。
3.根据权利要求1或2所述的列表数据的无损压缩方法,其特征在于,所述列表数据包括:单词列表、地址列表、网络地址列表、数据库表记录。
4.根据权利要求1或2所述的列表数据的无损压缩方法,其特征在于,所述列表数据为单一字段或多字段,所述多字段列表数据的顺序任意,通过字段序号或字段名称定位多字段列表数据中的任一字段。
5.根据权利要求1或2所述的列表数据的无损压缩方法,其特征在于,所述再次压缩字节流的步骤,利用游程编码法、动态马尔可夫编码法、上下文树权法、部分匹配预测法实现。
6.解压列表数据的方法,为权利要求1或2中任意一项所述方法的逆过程,其特征在于,解压得到字节流,将字节流反序列化为前缀树,完整输出前缀树得到列表数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510131244.8A CN104682966B (zh) | 2015-03-24 | 2015-03-24 | 列表数据的无损压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510131244.8A CN104682966B (zh) | 2015-03-24 | 2015-03-24 | 列表数据的无损压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104682966A true CN104682966A (zh) | 2015-06-03 |
CN104682966B CN104682966B (zh) | 2018-09-04 |
Family
ID=53317621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510131244.8A Expired - Fee Related CN104682966B (zh) | 2015-03-24 | 2015-03-24 | 列表数据的无损压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104682966B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108880556A (zh) * | 2018-05-30 | 2018-11-23 | 中国人民解放军战略支援部队信息工程大学 | 基于lz77的无损数据压缩方法、误码修复方法及编码器和解码器 |
CN109542854A (zh) * | 2018-11-14 | 2019-03-29 | 网易(杭州)网络有限公司 | 数据压缩方法、装置、介质及电子设备 |
CN111615791A (zh) * | 2018-01-18 | 2020-09-01 | 黑莓有限公司 | 在点云压缩中使用直接译码的方法和设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1050630A (zh) * | 1989-09-28 | 1991-04-10 | 布尔Hn信息系统公司 | 具有部分关键字分支的前缀检索树 |
-
2015
- 2015-03-24 CN CN201510131244.8A patent/CN104682966B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1050630A (zh) * | 1989-09-28 | 1991-04-10 | 布尔Hn信息系统公司 | 具有部分关键字分支的前缀检索树 |
Non-Patent Citations (1)
Title |
---|
秦逞: "基于前缀树Tire的关联规则挖掘算法研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111615791A (zh) * | 2018-01-18 | 2020-09-01 | 黑莓有限公司 | 在点云压缩中使用直接译码的方法和设备 |
CN111615791B (zh) * | 2018-01-18 | 2024-03-19 | 黑莓有限公司 | 在点云压缩中使用直接编码的方法和设备 |
CN108880556A (zh) * | 2018-05-30 | 2018-11-23 | 中国人民解放军战略支援部队信息工程大学 | 基于lz77的无损数据压缩方法、误码修复方法及编码器和解码器 |
CN108880556B (zh) * | 2018-05-30 | 2021-09-07 | 中国人民解放军战略支援部队信息工程大学 | 基于lz77的无损数据压缩方法、误码修复方法及编码器和解码器 |
CN109542854A (zh) * | 2018-11-14 | 2019-03-29 | 网易(杭州)网络有限公司 | 数据压缩方法、装置、介质及电子设备 |
CN109542854B (zh) * | 2018-11-14 | 2020-11-24 | 网易(杭州)网络有限公司 | 数据压缩方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104682966B (zh) | 2018-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6616877B2 (ja) | Vlsiでの効率的なハフマン符号化を行う装置および方法 | |
JP5936687B2 (ja) | ツリー構造の適応的エントロピー符号化方法 | |
US8497788B1 (en) | Efficient techniques for aligned fixed-length compression | |
WO2019153700A1 (zh) | 编解码方法、装置及编解码设备 | |
CN101783788B (zh) | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 | |
Saravanan et al. | Enhancing efficiency of huffman coding using Lempel Ziv coding for image compression | |
CN104125475A (zh) | 一种多维量子数据压缩、解压缩方法及装置 | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
CN111211787A (zh) | 一种工业数据压缩方法、系统、存储介质及终端 | |
Mahmood et al. | An Efficient 6 bit Encoding Scheme for Printable Characters by table look up | |
KR101023536B1 (ko) | 데이터 무손실 압축 방법 | |
Jacob et al. | Comparative analysis of lossless text compression techniques | |
CN116471337A (zh) | 一种基于bwt和lzw的报文压缩与解压缩方法及设备 | |
Mahmood et al. | A feasible 6 bit text database compression scheme with character encoding (6BC) | |
Shoba et al. | A Study on Data Compression Using Huffman Coding Algorithms | |
Konecki et al. | Efficiency of lossless data compression | |
Ezhilarasan et al. | A new entropy encoding technique for multimedia data compression | |
Kaur et al. | An algorithm for lossless text data compression | |
CN106559085A (zh) | 一种范式哈夫曼解码方法及其装置 | |
Rani et al. | A survey on lossless text data compression techniques | |
Mahmood et al. | Efficient compression scheme for large natural text using zipf distribution | |
Huang et al. | Lossless compression algorithm for multi-source sensor data research | |
Mahmood et al. | An Efficient Text Database Compression Technique using 6 Bit Character Encoding by Table Look Up | |
Kaur et al. | Lossless text data compression using modified Huffman Coding-A review | |
Rani et al. | An Enhanced Text Compression System Based on ASCII Values and Huffman Coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180904 |
|
CF01 | Termination of patent right due to non-payment of annual fee |