CN103067022A - 一种整型数据无损压缩方法、解压缩方法及装置 - Google Patents
一种整型数据无损压缩方法、解压缩方法及装置 Download PDFInfo
- Publication number
- CN103067022A CN103067022A CN2012105548634A CN201210554863A CN103067022A CN 103067022 A CN103067022 A CN 103067022A CN 2012105548634 A CN2012105548634 A CN 2012105548634A CN 201210554863 A CN201210554863 A CN 201210554863A CN 103067022 A CN103067022 A CN 103067022A
- Authority
- CN
- China
- Prior art keywords
- integer data
- data
- bit
- integer
- binary 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.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本发明提供一种整型数据无损压缩方法、解压缩方法及装置,所述整型数据压缩方法包括:位重组处理过程、数据块划分及基本信息存储过程和编码处理过程;所述整型数据解压缩方法包括:基本信息解析过程、解码处理过程和位恢复处理过程;所述整型数据压缩装置包括:位重组处理模块、数据块划分及基本信息存储模块和编码处理模块;所述整型数据解压缩装置包括:基本信息解析模块、解码处理模块和位恢复处理模块。本发明算法简单、易于实现,编码解码效率高,压缩效果好,可用于对音频数据、地震勘探信号、地球物理测井波形数据和图像数据等多种类型的整型数据进行无损压缩和解压缩。
Description
技术领域
本发明涉及数据压缩技术领域,具体地,涉及一种整型数据无损压缩、无损解压缩方法及装置。
背景技术
数据压缩是一种消除原始数据之间的冗余性,将原始数据文件转化为另一个占用存储空间更小的数据文件的技术。数据压缩的目的是尽可能地减小数据文件的大小,以节省数据传输和存储的成本。我们通常所说的数据压缩实质上包括两个部分:第一部分是通过压缩算法将原始数据文件转化为压缩数据文件,即压缩部分;另一部分是通过解压算法对压缩数据文件进行解压,以重构出原始数据文件,即解压部分。根据不同压缩方法对应的解压方法,可由压缩数据文件基本或完全准确地重构出原始数据文件。根据是否可以通过压缩数据文件无失真地恢复原始数据文件,数据压缩方法可分为两大类:无损压缩(重构数据与原始数据完全一致)和有损压缩(允许重构数据与原始数据存在偏差,因而一般可以取得比无损压缩更好的压缩效果)。
数据压缩技术在过去20年里得到了快速的发展。目前,它已广泛应用于数字通信、数字广播、数字电视、数字存储、计算机、互联网、数字摄影、数字出版、多媒体娱乐、玩具、家电、石油勘探以及智能控制等众多领域。根据不同的应用需求,需要选择不同类型的压缩方法。对于可执行计算机程序、法律文本文档、医学X光映像和遗传(基因)信息等数据文件,任何一位(或一个字)信息的改变或缺失将导致程序不能执行或不能按照正确的思路执行或将导致原始信息意义的改变,而这类文件是不允许出现这种情况的;因此,这类数据文件的压缩需要采用无损压缩方法。对于一般的图像、视频和音频等数据文件,当其中部分数据发生较小的改变时,我们很难甚至完全不能发现其中信息的改变,不会影响这些数据文件的正常使用;因此,这类数据文件可以采用有损压缩方法,以在不影响它们正常使用的情况下获得更好的压缩效果。
目前已有的数据压缩方法主要包括:统计类编码(Shannon-Fano编码,Huffman编码,Run-Length编码,Arithmetic编码等)方法、字典类编码(LZ编码,LZ77编码,LZ78编码,LZW编码等)方法、变换类(K-L变换,W-H变换,离散余弦变换,Haar变换,小波变换等)压缩方法、图像压缩方法(Image Transforms,JPEG,JBIG,矢量量化等)、视频压缩方法(MPEG,MPEG-4,H.261,H.264等)、音频压缩方法(ADPCM音频压缩,FLAC,Monkey’s Audio,AAC等)等。
编码是所有数据压缩方法的关键组成部分,它直接影响着压缩方法的压缩效果,有些压缩方法的压缩效果甚至完全取决于所使用的编码方式。所谓编码就是将原始数据流或经过处理的数据流以某种特殊的方式记录下来。不同的编码方法对不同类型的数据序列有效。例如,Shannon-Fano编码和Huffman编码适用于文件中各符号出现的概率为2的负指数次方的文件压缩;算术编码适用于文件中少数符号出现的概率明显大于其他符号出现的概率的文件压缩;LZW编码适用于文件中相同符号组合出现频率较高的数据文件压缩;专门为视频或音频数据文件设计的编码方法适用于视频或音频数据文件压缩等。如果我们用一种专门为图像或音频数据设计的压缩程序(或编码方式)对文本文件进行压缩的话,那么压缩后文件大小常常大于甚至远大于原始数据文件。因此,针对不同类型的数据文件,选择或设计合适的编码方式是压缩成功的关键。
对经典的算术编码方法和LZW编码方法、通用的WinRAR软件以及专业音频数据压缩软件FLAC(Free Lossless Audio Codec)进行无损压缩测试表明,这些编码(或压缩)方法的压缩效果并不足够理想(算术编码、LZW、WinRAR和FLAC对经过去相关处理的声波测井波形数据文件的平均压缩比分别为1.32、1.12、1.38和1.01),压缩比有进一步提升的空间。
发明内容
本发明实施例的主要目的在于提供一种整型数据无损压缩方法、解压缩方法及装置,以提供一种相比现有技术能够获得更好压缩效果的压缩技术。
为了实现上述目的,本发明实施例提供一种整型数据无损压缩方法,包括:
读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列;
以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括:原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目;
针对所述每一数据块执行以下编码处理:确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件;
其中,根据标记编码方式对当前数据块进行编码,具体包括:
输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码;
根据常规编码方式对当前数据块进行编码,具体包括:
输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。
优选的,所述整型数据无损压缩方法中,所述设定阈值按照如下方式确定:
假设所述第二设定数目个整型数据满足条件:分别采用标记编码方式和常规编码方式进行编码时,得到的编码结果占用相同大小的存储空间;
则将该第二设定数目个整型数据中各整型数据的出现概率的最大值确定为所述设定阈值。
优选的,所述整型数据无损压缩方法中,读取原始整型数据序列之前,还包括:对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值;
则针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串,具体为:针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;
所述压缩文件基本信息还包括:所述预处理的过程信息。
优选的,所述整型数据无损压缩方法中,对所述原始整型数据序列进行预处理,具体包括:
对所述原始整型数据进行线性预测处理/非线性预测处理/小波变换处理;和/或,
将所述原始整型数据中的有符号整型数据转换为无符号整型数据。
一种整型数据解压缩方法,包括:
对压缩文件基本信息进行解析,获取所述压缩文件基本信息中存储的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、第二设定数目;
对二进制压缩文件执行以下解码处理过程:顺序读取一个未读码值;确定所述未读码值为标记编码方式标记符时,根据标记解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;确定所述未读码值为常规编码方式标记符时,根据常规解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;重复执行上述解码处理过程,直至得到数目为所述原始整型数据总数乘以原始比特位总数再除以第一设定数目个解码整型数据;
将所述解码处理过程得到的所有解码整型数据的完整二进制码顺序组合为位恢复二进制码序列;定义多个整型数据,所述定义的多个整型数据总数等于所述原始整型数据总数,且所述定义的每一整型数据的完整二进制码对应的比特位数等于所述原始比特位总数;以所述原始整型数据总数为一组,顺序提取所述位恢复二进制码序列中的各组码值,按照所述设定比特位顺序将每一组码值包括的各码值依次赋值给所述定义的各整型数据的相应比特位;将所述赋值后的整型数据顺序组成解压缩整型数据序列;
其中,根据标记解码方式对后续码值进行解码,具体包括:
读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为被替代整型数据,并循环执行以下步骤:继续读取一个后续码值;确定该后续码值为替代标记符时,将所述被替代整型数据确定为解码整型数据;确定该后续码值为非替代标记符时,继续读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据;
根据常规解码方式对后续码值进行解码,具体包括:
循环执行以下步骤:读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据。
优选的,所述整型数据解压缩方法还包括:获取所述压缩文件基本信息中存储的预处理过程信息;则
将所述赋值后的整型数据顺序组成解压缩整型数据序列之前,还包括:对所述赋值后的整型数据进行反预处理,所述反预处理的过程与所述预处理的过程互逆;
将所述赋值后的整型数据顺序组成解压缩整型数据序列,具体为:将所述反预处理后得到的整型数据顺序组成解压缩整型数据序列。
一种整型数据无损压缩装置,包括:
位重组处理模块,用于读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列;
数据块划分及基本信息存储模块,用于以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括:原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目;
编码处理模块,用于针对所述每一数据块执行以下编码处理:确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件;
其中,编码处理模块根据标记编码方式对当前数据块进行编码时,具体用于:输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码;
编码处理模块根据常规编码方式对当前数据块进行编码时,具体用于:输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。
优选的,所述整型数据无损压缩装置还包括:
预处理模块,用于对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值;
则所述位重组处理模块针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串时,具体用于:针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;
所述数据块划分及基本信息存储模块还用于将所述预处理的过程信息存储至压缩文件基本信息中。
一种整型数据解压缩装置,包括:
基本信息解析模块,用于对压缩文件基本信息进行解析,获取所述压缩文件基本信息中存储的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、数据块个数、第二设定数目;
解码处理模块,用于对二进制压缩文件执行以下解码处理过程:顺序读取一个未读码值;确定所述未读码值为标记编码方式标记符时,根据标记解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;确定所述未读码值为常规编码方式标记符时,根据常规解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;重复执行上述解码处理过程,直至得到数目为所述原始整型数据总数乘以原始比特位总数再除以第一设定数目个解码整型数据;
位恢复处理模块,用于将所述解码处理过程得到的所有解码整型数据的完整二进制码顺序组合为位恢复二进制码序列;定义多个整型数据,所述定义的多个整型数据总数等于所述原始整型数据总数,且所述定义的每一整型数据的完整二进制码对应的比特位数等于所述原始比特位总数;以所述原始整型数据总数为一组,顺序提取所述位恢复二进制码序列中的各组码值,按照所述设定比特位顺序将每一组码值包括的各码值依次赋值给所述定义的各整型数据的相应比特位;将所述赋值后的整型数据顺序组成解压缩整型数据序列;
其中,解码处理模块根据标记解码方式对后续码值进行解码时,具体用于:
读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为被替代整型数据,并循环执行以下步骤:继续读取一个后续码值;确定该后续码值为替代标记符时,将所述被替代整型数据确定为解码整型数据;确定该后续码值为非替代标记符时,继续读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据;
解码处理模块根据常规解码方式对后续码值进行解码时,具体用于:
循环执行以下步骤:读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据。
优选的,所述整型数据解压缩装置中,
所述基本信息解析模块还用于获取所述压缩文件基本信息中存储的预处理过程信息;
所述整型数据解压缩装置还包括:反预处理模块,用于对所述赋值后的整型数据进行反预处理,所述反预处理的过程与所述预处理的过程互逆;
则所述位恢复处理模块将所述赋值后的整型数据顺序组成解压缩整型数据序列时,具体用于:将所述反预处理后得到的整型数据顺序组成解压缩整型数据序列。借助于上述技术方案,本发明算法简单、易于实现,编码解码效率高,压缩效果好,可用于对音频数据、地震勘探信号、地球物理测井波形数据和图像数据等多种类型的整型数据进行无损压缩和解压缩;测试表明,本方法对经过去相关处理后的声波测井波形数据无损压缩的平均压缩比比算术编码、LZW、WinRAR软件和FLAC软件高14.5%~56.4%,具有良好的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的整型数据无损压缩方法流程图;
图2是本发明实施例二提供的整型数据解压缩方法流程图;
图3是本发明实施例三提供的整型数据无损压缩方法和解压缩方法流程示意图;
图4是本发明实施例三提供的位重组处理过程具体流程图;
图5是本发明实施例三提供的编码处理过程具体流程图;
图6是本发明实施例三提供的标记编码方式编码过程具体流程图;
图7是本发明实施例三提供的解码处理过程具体流程图;
图8是本发明实施例三提供的位恢复处理过程具体流程图;
图9是本发明实施例四提供的整型数据无损压缩装置结构示意图;
图10是本发明实施例五提供的整型数据解压缩装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例中所说的“原始整型数据序列”为采用本发明提供的整型数据无损压缩方法进行压缩的原始文件;本发明实施例中所说的“二进制压缩文件”为采用本发明提供的整型数据无损压缩方法对“原始整型数据序列”进行压缩后得到的文件;本发明实施例中所说的“解压缩整型数据序列”为采用本发明提供的整型数据解压缩方法对“二进制压缩文件”进行解压后得到的文件,该文件与压缩前的原始文件一致,即与“原始整型数据序列”一致:本发明实施例中所说的“完整二进制码”是指一个整型数据在计算机内存中以二进制形式存储时对应的全部二进制码。
实施例一
本实施例提供一种整型数据无损压缩方法,如图1所示,该方法包括:
位重组处理过程101:读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列;
数据块划分及基本信息生成过程102:以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括:原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目;
编码处理过程103:针对每一数据块执行以下编码处理:确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件;
其中,编码处理过程103中,根据标记编码方式对当前数据块进行编码,具体包括:
输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码;
编码处理过程103中,根据常规编码方式对当前数据块进行编码,具体包括:
输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。
具体的,原始比特位总数为原始整型数据在计算机内存中以二进制形式存储所占用的比特位数,如8比特位、16比特位、32比特位等。
位重组处理过程101中,针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串,具体如下:确定原始比特位总数的最高比特位和最低比特位(一般最左边的一位为最高比特位,最右边一位是最低比特位),针对第k(k=1,2,3....,最高比特位≥k≥最低比特位)比特位,依次提取所有原始整型数据的完整二进制码中第k比特位的码值,得到第k比特位对应的二进制码串。
位重组处理过程101中,按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列,具体可以如下:设定比特位顺序为从高比特位到低比特位,则按照从最高比特位至最低比特位的顺序排列各比特位对应的二进制码串,得到相应的位重组二进制码序列;其中,本实施例对所述设定比特位顺序不作限定,可以从高比特位到低比特位,也可以从低比特位到高比特位,还可以为任意比特位顺序。
位重组处理过程101中,以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列,具体可以为:以16个码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的码值,并且每提取16个码值作为一组完整二进制码确定对应的整型数据,将依次确定的整型数据组合成位重组整型数据序列;需要说明的是,本实施例中第一设定数目可以等于或不等于原始比特位总数,例如,原始整型数据的完整二进制码占用16比特位时,第一设定数目可以为8或32,即位重组整型数据序列中各整型数据的完整二进制码占用8比特位或32比特位;
对于某一类型的原始整型数据序列而言,其包含的原始整型数据的完整二进制码往往具有高比特位(或低比特位)全部或大部分为码值0(或码值1)的共性特征;位重组处理过程101就是利用这种共性特征,对所有原始整型数据的二进制码进行重新排列组合,使得到的位重组二进制码序列中连续出现码值0(或码值1)的概率较高,相应的,根据位重组二进制码序列得到的位重组整型数据序列中,某一整型数据出现的概率会明显高于该序列中其他整型数据出现的概率,利用这个特点,就可以使编码处理过程103取得较好的编码处理效果,即获得较好的无损压缩效果;需要说明的是,当原始整型数据序列包含的原始整型数据不具有上述共性特征时,也可以采用本实施例提供的整型数据无损压缩方法,但是获得的压缩效果不如压缩具有上述共性特征的原始整型数据序列获得的压缩效果好。数据块划分及基本信息生成过程102中,第二设定数目表征了数据块的大小,一般情况下,对于相同类型的原始整型数据序列(如相同类型的音乐文件、相同条件下采集得到的地球物理勘探信号等),其最佳数据块的大小是相近的,因此可依据经验确定数据块的大小,即第二设定数目可依据经验设置;若根据第二设定数目不能将位重组整型数据序列顺序划分成整数个数据块,则将最后不足一个数据块的若干整型数据作为一个特殊的数据块。数据块划分及基本信息生成过程102中,存储压缩文件基本信息,主要包括存储原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目等信息,这些信息是解压缩过程所必须的信息。
编码处理过程103中,标记编码方式是利用了位重组整型数据序列或其局部子序列具有某一整型数据出现的概率会明显高于该序列中其他整型数据出现的概率的特点,采用替代标记符代替数据块中出现概率最大的整型数据的方式对位重组整型数据序列进行编码,即输出替代标记符以代替数据块中出现概率最大的整型数据的二进制码,同时原样输出数据块中其他整型数据的二进制码,使标记编码方式的编码结果占用的存储空间小于位重组整型数据序列的二进制码占用的存储空间,以达到压缩文件的目的;
标记编码方式中,利用替代标记符代替数据块中出现概率最大的整型数据的完整二进制码能够起到节省存储空间的作用,但是每原样输出数据块中的一个其他整型数据(非数据块中出现概率最大的整型数据)的完整二进制码之前都要输出一位非替代标记符,这在一定程度上增加了编码结果占用的存储空间,因此要想达到压缩文件的目的,只能在数据块中某一整型数据的出现概率大于设定阈值时才能使用标记编码方式进行编码,否则,就使用常规编码方式进行编码。
编码处理过程103中,标记编码方式标记符标识了数据块采用标记编码方式进行编码,常规编码方式标记符标识了数据块采用常规编码方式进行编码,以便于解压缩过程中解码处理的顺利实现。
需要说明的是,本实施例提供的整型数据无损压缩方法,对原始整型数据序列进行压缩后最终生成的的文件中包含两部分:压缩文件基本信息和二进制压缩文件;具体实施中,可以将压缩文件基本信息与二进制压缩文件顺序存储为一个文件,也可以将压缩文件基本信息与二进制压缩文件存储至一个文件夹中,但无论怎样存储,在执行解压缩过程时都需要先对压缩文件基本信息进行解析,然后才能对二进制压缩文件进行解压缩。
本实施例提供的整型数据无损压缩方法的压缩处理速度快,算法简单、易于实现,编码效率高,具有较好的压缩效果,可适用于对音频数据、地震勘探信号、地球物理测井波形数据和图像数据等多种类型的整型数据进行压缩,具有良好的应用前景。
优选的,所述设定阈值按照如下方式确定:
假设所述第二设定数目个整型数据满足条件:分别采用标记编码方式和常规编码方式进行编码时,得到的编码结果占用相同大小的存储空间;
则将该第二设定数目个整型数据中各整型数据的出现概率的最大值确定为所述设定阈值。
具体的,以整型数据的完整二进制码比特位数为16位(第一设定数目为16),每一数据块包含100个(第二设定数目为100)整型数据为例,假设某一数据块满足上述条件,设该数据块中各数据出现概率的最大值Pmax=P0,则采用标记编码方式的编码结果占用17+100×P0+17×100×(1-P0)位比特位的存储空间,采用常规编码方式的编码结果占用16×100+1位比特位的存储空间,通过解方程17+100×P0+17×100×(1-P0)=16×100+1,即可计算出P0的值,相应的就可确定出设定阈值的大小;一般情况下,计算得到的P0为小数,只需根据精度需求按照四舍五入的方法取有限精度的值作为阈值即可。
优选的,本实施例提供的整型数据无损压缩方法中,位重组处理过程101之前,还包括:
预处理过程:对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值;
则位重组处理过程101中,针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串,具体为:针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;
数据块划分及基本信息生成过程102中形成的所述压缩文件基本信息还包括:所述预处理的过程信息。
具体的,预处理过程是通过采用数据处理方法对原始整型数据序列进行处理,预处理后得到的整型数据序列的均方值减小,其目的是提高整型数据序列的二进制码的共性特征,该过程的处理效果越好,则编码处理过程103得到的编码结果越好,压缩效果越好;
当对原始整型数据序列进行预处理后得到预处理整型数据序列,并且预处理整型数据序列的均方值较小(越小越好)或均值为零且具有小方差正态分布特征时,该预处理整型数据序列中各预处理整型数据的二进制码具有较好的共性特征,例如该预处理整型数据序列中各预处理整型数据的高比特位(或低比特位)全部或大部分为码值0(或码值1);
当原始整型数据序列本身即满足均方值较小或均值为零且具有小方差正态分布特征时,其中各原始整型数据的二进制码就会具有较好的共性特征时,此时,不必再进行数据预处理,即省略预处理过程;
压缩文件基本信息中包含的预处理过程信息可以包括:预处理状态信息(例如为1时表示未做预处理)、预处理方法信息(例如为2时表示采用小波变换方法,为3时表示采用线性预测处理,为4时表示采用非线性预测处理)等。
需要说明的是,预处理过程必须是可逆的,以便在解压缩时通过采用与数据预处理过程互逆的反预处理过程进行恢复。
优选的,对所述原始整型数据序列进行预处理,具体包括:
对所述原始整型数据进行线性预测处理/非线性预测处理/小波变换处理;和/或,
将所述原始整型数据中的有符号整型数据转换为无符号整型数据。
具体的,可以采用线性预测处理/非线性预测处理/小波变换处理等数据处理方法对原始整型数据序列进行数据预处理,使其满足均方值较小或均值为零且具有小方差正态分布特征;当经过上述处理之后的整型数据序列中既包括正整型数据,又包括负整型数据时,为了进一步提高二进制码的共性特征,可将有符号整型数据转换为无符号整型数据,例如可采用如下转换公式实现该目的:
其中,x表示有符号整型数,y表示转换后的无符号整型数,|x|表示x的绝对值。
实施例二
本实施例提供一种整型数据解压缩方法,与实施例一提供的整型数据无损压缩方法相对应,如图2所示,该方法包括:
基本信息解析过程201:对压缩文件基本信息进行解析,获取所述压缩文件基本信息中存储的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、第二设定数目;
解码处理过程202:对二进制压缩文件执行以下解码处理过程:顺序读取一个未读码值;确定所述未读码值为标记编码方式标记符时,根据标记解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;确定所述未读码值为常规编码方式标记符时,根据常规解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;重复执行上述解码处理过程,直至得到数目为所述原始整型数据总数乘以原始比特位总数再除以第一设定数目个解码整型数据;
位恢复处理过程203:将所述解码处理过程得到的所有解码整型数据的完整二进制码顺序组合为位恢复二进制码序列;定义多个整型数据,所述定义的多个整型数据总数等于所述原始整型数据总数,且所述定义的每一整型数据的完整二进制码对应的比特位数等于所述原始比特位总数;以所述原始整型数据总数为一组,顺序提取所述位恢复二进制码序列中的各组码值,按照所述设定比特位顺序将每一组码值包括的各码值依次赋值给所述定义的各整型数据的相应比特位;将所述赋值后的整型数据顺序组成解压缩整型数据序列;
其中,解码处理过程202中根据标记解码方式对后续码值进行解码,具体包括:
读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为被替代整型数据,并循环执行以下步骤:继续读取一个后续码值;确定该后续码值为替代标记符时,将所述被替代整型数据确定为解码整型数据;确定该后续码值为非替代标记符时,继续读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据;
解码处理过程202中根据常规解码方式对后续码值进行解码,具体包括:
循环执行以下步骤:读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据。
具体的,基本信息解析过程201中,根据压缩文件基本信息获取的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、第二设定数目,会在解码处理过程202和位恢复处理过程203中利用到。
解码处理过程202与实施例一中编码处理过程103相逆,其中,通过判断标记编码方式标记符或常规编码方式标记符来确定相应的解码方式;
本实施例提供的整型数据解压缩方法与实施例一中提供的整型数据无损压缩方法配套使用,具有解压缩处理速度快,算法简单、易于实现,解码效率高的特点,具有良好的应用前景。
优选的,本实施例提供的整型数据解压缩方法还包括:获取所述压缩文件基本信息中存储的预处理过程信息;则
位恢复处理过程203中将所述赋值后的整型数据顺序组成解压缩整型数据序列之前,还包括:
反预处理过程:对所述赋值后的整型数据进行反预处理,所述反预处理的过程与所述预处理的过程互逆;
位恢复处理过程203中将所述赋值后的整型数据顺序组成解压缩整型数据序列,具体为:将所述反预处理后得到的整型数据顺序组成解压缩整型数据序列。
具体的,反预处理过程与实施例一中的预处理过程互逆,主要通过采用与所述预处理过程中采用的数据处理方法相逆的数据处理方法,对所述赋值后的整型数据进行处理;位恢复处理过程203中采用的数据处理方法与实施例一中的预处理过程采用的数据处理方法是严格对应的,如果在压缩过程中未执行预处理过程,则在解压缩过程中也不必执行反预处理过程;是否需要执行反预处理过程以及执行时采用何种数据处理方法可由压缩文件基本信息中的预处理过程信息来确定,例如,当预处理过程信息中包含的预处理状态信息为1时,表示压缩过程未进行预处理,则在解压缩过程中也不必进行反预处理。
实施例三
本实施例以原始整型数据总数为M(M为自然数)、原始比特位总数为16(最高比特位为第16位,最低比特位为第1位)、设定比特位顺序为从最高比特位至最低比特位的顺序、第一设定数目为8、第二设定数目为N(N为自然数)为例,对本发明提供的整型数据无损压缩方法和解压缩方法进行说明:
如图3所示,本实施例提供的整型数据无损压缩方法和解压缩方法包括如下过程:预处理过程、位重组处理过程、数据块划分及基本信息生成过程、编码处理过程、基本信息解析过程、解码处理过程、位恢复处理过程、反预处理过程。
本实施例中,预处理过程采用小波变换处理方法对原始整型数据序列进行处理。
如图4所示,本实施例中位重组处理过程具体包括如下步骤:
步骤401,读取原始整型数据序列中所有原始整型数据;依次提取所有原始整型数据的完整二进制码中第16比特位的码值,得到第16比特位对应的二进制码串;依次提取所有原始整型数据的完整二进制码中第15比特位的码值,得到第15比特位对应的二进制码串;……;依次提取所有原始整型数据的完整二进制码中第1比特位的码值,得到第1比特位对应的二进制码串;继续执行步骤402;
步骤402,按照从最高比特位至最低比特位的设定比特位顺序,依次排列合并第16比特位对应的二进制码串、第15比特位对应的二进制码串、……、第1比特位对应的二进制码串;得到位重组二进制码序列;继续执行步骤403;
步骤403,以8比特位码值为一组完整二进制码,依次提取所述位重组二进制码序列中每8比特位的码值并确定对应的整型数据,将依次确定的整型数据组合成位重组整型数据序列。
本实施例中,数据块划分及基本信息存储过程为:以N个整型数据为一个数据块,将位重组整型数据序列划分成若干个数据块;存储原始整型数据总数M、原始比特位总数16、从最高比特位到最低比特位的设定比特位顺序、第一设定数目8、第二设定数目N以及预处理过程信息(对应预处理过程采用的小波变换处理方法)。
如图5所示,本实施例中编码处理过程具体包括如下步骤:
步骤501,顺序读取一个数据块;针对当前数据块,统计该数据块中各整型数据出现的概率,并记录概率最大值及其对应的整型数据;继续执行步骤502;其中,首次读取从位重组整型数据序列对应的第一个数据块开始;
步骤502,判断概率最大值是否大于设定阈值,若是,则执行步骤503,否则,执行步骤504;
步骤503,根据标记编码方式对该数据块进行编码;继续执行步骤505;
步骤504,根据常规编码方式对该数据块进行编码;继续执行步骤505;
步骤505,判断所有数据块是否全部读取完,若是,结束处理,若否,则返回执行步骤501。
如图6所示,本实施例中根据标记编码方式对数据块进行编码的过程,具体包括如下步骤:
步骤601,输出标记编码方式标记符;继续执行步骤602;
步骤602,输出当前数据块中出现概率最大的整型数据的完整二进制码;继续执行步骤603;
步骤603,顺序读取当前数据块中的整型数据,判断该整型数据是否为当前数据块中出现概率最大的整型数据,若是,则执行步骤604,否则,执行步骤605;
步骤604,输出替代标记符;继续执行步骤606;
步骤605,输出非替代标记符,以及该整型数据的完整二进制码;继续执行步骤606;
步骤606,判断当前数据块中的所有整型数据是否都已读取完,若是,则结束处理,若否,则返回执行步骤603。
本实施例中,根据常规编码方式对数据块进行编码的过程为:输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码;
本实施例中,基本信息解析过程具体为:解析压缩文件基本信息,获取压缩文件基本信息中存储的原始整型数据总数M、原始比特位总数16、设定比特位顺序(从最高比特位至最低比特位的顺序)、第一设定数目8、第二设定数目N、预处理过程信息。
如图7所示,本实施例中解码处理过程具体包括如下步骤:
步骤701,确定对二进制压缩文件进行解码应得到的解码整型数据总数S(S为自然数),以及,对一个数据块进行解码应得到的解码整型数据总数T(T为自然数);其中,每一解码整型数据的完整二进制码包括8比特位码值;
步骤702,顺序读取二进制压缩文件中的下一未读码值,判断该码值是否为标记编码方式标记符,若是,则执行步骤703,否则,执行步骤709;
步骤703,依次读取后续8比特位码值,以该8比特位码值为一组完整二进制码确定对应的整型数据,记为A;继续执行步骤704;
步骤704,读取下一未读码值,并判断该码值是否为替代标记符,若是,则执行步骤705,否则,执行步骤706;
步骤705,输出A;继续执行步骤707;
步骤706,依次读取后续8比特位码值并将其对应的整型数据确定为一个解码整型数据;继续执行步骤707;
步骤707;判断是否已得到S个解码整型数据,若是,结束处理,若否,则执行步骤708;
步骤708,判断是否解码得到T(T为自然数)个解码整型数据,若是,则返回执行步骤702,若否,则返回执行步骤704;
步骤709,依次读取后续8比特位码值并输出对应的整型数据;继续执行步骤710;
步骤710;判断是否已解码得到S个解码整型数据,若否,则执行步骤711,若是,结束处理;
步骤711,判断是否解码得到T个解码整型数据,若否,则返回执行步骤709,若是,则返回执行步骤702。
如图8所示,本实施例中,位恢复处理过程具体包括如下步骤:
步骤801,定义数量等于原始整型数据总数M的整型数据序列,并且定义每一整型数据的完整二进制码所占的比特位数等于原始比特位总数16;继续执行步骤802;
步骤802,将位恢复整型数据序列中所有整型数据的完整二进制码顺序组合为位恢复二进制码序列;以M比特位为一组,依次提取位恢复二进制码序列中各组码值,并按照从第16比特位到第1比特位的顺序,分别将每一组码值中的各个码值依次赋值给所述定义的M个整型数据的完整二进制码中相应比特位上;最终得到赋值后的M个整型数据。
本实施例中,反预处理过程具体为:根据压缩文件基本信息中包含的预处理过程信息确定预处理过程采用了小波变换处理方法,则确定采用小波逆变换方法对位恢复处理过程得到的M个整型数据进行反预处理,得到反预处理后的M个整型数据,并将其顺序组成解压缩整型数据序列。
实施例四
本实施例提供一种整型数据无损压缩装置,如图9所示,该装置包括:
位重组处理模块91,用于读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列;
数据块划分及基本信息存储模块92,用于以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括:原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目;
编码处理模块93,用于针对所述每一数据块执行以下编码处理:确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件;
其中,编码处理模块93根据标记编码方式对当前数据块进行编码时,具体用于:输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码;
编码处理模块93根据常规编码方式对当前数据块进行编码时,具体用于:输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。
优选的,所述整型数据无损压缩装置还包括:
预处理模块,用于对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值;
则所述位重组处理模块91针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串时,具体用于:针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;
所述数据块划分及基本信息存储模块92还用于将所述预处理的过程信息存储至压缩文件基本信息中。
由于本实施例提供的整型数据无损压缩装置中各模块的具体工作原理与实施例一提供的整型数据无损压缩方法相似,因此本实施例的具体实施方式可参见实施例一中对整型数据无损压缩方法的说明,重复之处不再赘述。
实施例五
本实施例提供一种整型数据解压缩装置,如图10所示,该装置包括:
基本信息解析模块11,用于对压缩文件基本信息进行解析,获取所述压缩文件基本信息中存储的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、第二设定数目;
解码处理模块12,用于对二进制压缩文件执行以下解码处理过程:顺序读取一个未读码值;确定所述未读码值为标记编码方式标记符时,根据标记解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;确定所述未读码值为常规编码方式标记符时,根据常规解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;重复执行上述解码处理过程,直至得到数目为所述原始整型数据总数乘以原始比特位总数再除以第一设定数目个解码整型数据;
位恢复处理模块13,用于将所述解码处理过程得到的所有解码整型数据的完整二进制码顺序组合为位恢复二进制码序列;定义多个整型数据,所述定义的多个整型数据总数等于所述原始整型数据总数,且所述定义的每一整型数据的完整二进制码对应的比特位数等于所述原始比特位总数;以所述原始整型数据总数为一组,顺序提取所述位恢复二进制码序列中的各组码值,按照所述设定比特位顺序将每一组码值包括的各码值依次赋值给所述定义的各整型数据的相应比特位;将所述赋值后的整型数据顺序组成解压缩整型数据序列;
其中,解码处理模块12根据标记解码方式对后续码值进行解码时,具体用于:
读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为被替代整型数据,并循环执行以下步骤:继续读取一个后续码值;确定该后续码值为替代标记符时,将所述被替代整型数据确定为解码整型数据;确定该后续码值为非替代标记符时,继续读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据;
解码处理模块12根据常规解码方式对后续码值进行解码时,具体用于:
循环执行以下步骤:读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据。
优选的,所述基本信息解析模块11还用于获取所述压缩文件基本信息中存储的预处理过程信息;
所述整型数据解压缩装置还包括:
反预处理模块,用于对所述赋值后的整型数据进行反预处理,所述反预处理的过程与所述预处理的过程互逆;
则所述位恢复处理模块13将所述赋值后的整型数据顺序组成解压缩整型数据序列时,具体用于:将所述反预处理后得到的整型数据顺序组成解压缩整型数据序列。
由于本实施例提供的整型数据解解压缩装置中各模块的具体工作原理与实施例二提供的整型数据解压缩方法相似,因此本实施例的具体实施方式可参见实施例二中对整型数据解压缩方法的说明,重复之处不再赘述。
综上所述,本发明实施例提供的整型数据无损压缩方法、解压缩方法及装置具有以下有益效果:
(1)算法简单、易于实现,编码解码效率高,压缩效果好;
(2)适用于对音频数据、地震勘探信号、地球物理测井波形数据和图像数据等多种类型的整型数据进行无损压缩和解压缩;
(3)对经过去相关处理后的声波测井波形数据无损压缩的平均压缩比比算术编码、LZW、WinRAR软件和FLAC软件高14.5%~56.4%,具有良好的应用前景。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种整型数据无损压缩方法,其特征在于,包括:
读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列;
以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括:原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目;
针对所述每一数据块执行以下编码处理:确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件;
其中,根据标记编码方式对当前数据块进行编码,具体包括:
输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码;
根据常规编码方式对当前数据块进行编码,具体包括:
输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。
2.根据权利要求1所述的整型数据无损压缩方法,其特征在于,所述设定阈值按照如下方式确定:
假设所述第二设定数目个整型数据满足条件:分别采用标记编码方式和常规编码方式进行编码时,得到的编码结果占用相同大小的存储空间;
则将该第二设定数目个整型数据中各整型数据的出现概率的最大值确定为所述设定阈值。
3.根据权利要求1或2所述的整型数据无损压缩方法,其特征在于,读取原始整型数据序列之前,还包括:对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值;
则针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串,具体为:针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;
所述压缩文件基本信息还包括:所述预处理的过程信息。
4.根据权利要求3所述的整型数据无损压缩方法,其特征在于,对所述原始整型数据序列进行预处理,具体包括:
对所述原始整型数据进行线性预测处理/非线性预测处理/小波变换处理;和/或,
将所述原始整型数据中的有符号整型数据转换为无符号整型数据。
5.一种整型数据解压缩方法,其特征在于,包括:
对压缩文件基本信息进行解析,获取所述压缩文件基本信息中存储的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、第二设定数目;
对二进制压缩文件执行以下解码处理过程:顺序读取一个未读码值;确定所述未读码值为标记编码方式标记符时,根据标记解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;确定所述未读码值为常规编码方式标记符时,根据常规解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;重复执行上述解码处理过程,直至得到数目为所述原始整型数据总数乘以原始比特位总数再除以第一设定数目个解码整型数据;
将所述解码处理过程得到的所有解码整型数据的完整二进制码顺序组合为位恢复二进制码序列;定义多个整型数据,所述定义的多个整型数据总数等于所述原始整型数据总数,且所述定义的每一整型数据的完整二进制码对应的比特位数等于所述原始比特位总数;以所述原始整型数据总数为一组,顺序提取所述位恢复二进制码序列中的各组码值,按照所述设定比特位顺序将每一组码值包括的各码值依次赋值给所述定义的各整型数据的相应比特位;将所述赋值后的整型数据顺序组成解压缩整型数据序列;
其中,根据标记解码方式对后续码值进行解码,具体包括:
读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为被替代整型数据,并循环执行以下步骤:继续读取一个后续码值;确定该后续码值为替代标记符时,将所述被替代整型数据确定为解码整型数据;确定该后续码值为非替代标记符时,继续读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据;
根据常规解码方式对后续码值进行解码,具体包括:
循环执行以下步骤:读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据。
6.根据权利要求5所述的整型数据解压缩方法,其特征在于,还包括:获取所述压缩文件基本信息中存储的预处理过程信息;则
将所述赋值后的整型数据顺序组成解压缩整型数据序列之前,还包括:对所述赋值后的整型数据进行反预处理,所述反预处理的过程与所述预处理的过程互逆;
将所述赋值后的整型数据顺序组成解压缩整型数据序列,具体为:将所述反预处理后得到的整型数据顺序组成解压缩整型数据序列。
7.一种整型数据无损压缩装置,其特征在于,包括:
位重组处理模块,用于读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列;
数据块划分及基本信息存储模块,用于以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括:原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目;
编码处理模块,用于针对所述每一数据块执行以下编码处理:确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件;
其中,编码处理模块根据标记编码方式对当前数据块进行编码时,具体用于:输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码;
编码处理模块根据常规编码方式对当前数据块进行编码时,具体用于:输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。
8.根据权利要求7所述的整型数据无损压缩装置,其特征在于,还包括:
预处理模块,用于对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值;
则所述位重组处理模块针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串时,具体用于:针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;
所述数据块划分及基本信息存储模块还用于将所述预处理的过程信息存储至压缩文件基本信息中。
9.一种整型数据解压缩装置,其特征在于,包括:
基本信息解析模块,用于对压缩文件基本信息进行解析,获取所述压缩文件基本信息中存储的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、第二设定数目;
解码处理模块,用于对二进制压缩文件执行以下解码处理过程:顺序读取一个未读码值;确定所述未读码值为标记编码方式标记符时,根据标记解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;确定所述未读码值为常规编码方式标记符时,根据常规解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;重复执行上述解码处理过程,直至得到数目为所述原始整型数据总数乘以原始比特位总数再除以第一设定数目个解码整型数据;
位恢复处理模块,用于将所述解码处理过程得到的所有解码整型数据的完整二进制码顺序组合为位恢复二进制码序列;定义多个整型数据,所述定义的多个整型数据总数等于所述原始整型数据总数,且所述定义的每一整型数据的完整二进制码对应的比特位数等于所述原始比特位总数;以所述原始整型数据总数为一组,顺序提取所述位恢复二进制码序列中的各组码值,按照所述设定比特位顺序将每一组码值包括的各码值依次赋值给所述定义的各整型数据的相应比特位;将所述赋值后的整型数据顺序组成解压缩整型数据序列;
其中,解码处理模块根据标记解码方式对后续码值进行解码时,具体用于:
读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为被替代整型数据,并循环执行以下步骤:继续读取一个后续码值;确定该后续码值为替代标记符时,将所述被替代整型数据确定为解码整型数据;确定该后续码值为非替代标记符时,继续读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据;
解码处理模块根据常规解码方式对后续码值进行解码时,具体用于:
循环执行以下步骤:读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据。
10.根据权利要求9所述的整型数据解压缩装置,其特征在于,
所述基本信息解析模块还用于获取所述压缩文件基本信息中存储的预处理过程信息;
所述整型数据解压缩装置还包括:反预处理模块,用于对所述赋值后的整型数据进行反预处理,所述反预处理的过程与所述预处理的过程互逆;
则所述位恢复处理模块将所述赋值后的整型数据顺序组成解压缩整型数据序列时,具体用于:将所述反预处理后得到的整型数据顺序组成解压缩整型数据序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210554863.4A CN103067022B (zh) | 2012-12-19 | 2012-12-19 | 一种整型数据无损压缩方法、解压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210554863.4A CN103067022B (zh) | 2012-12-19 | 2012-12-19 | 一种整型数据无损压缩方法、解压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103067022A true CN103067022A (zh) | 2013-04-24 |
CN103067022B CN103067022B (zh) | 2015-10-21 |
Family
ID=48109505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210554863.4A Active CN103067022B (zh) | 2012-12-19 | 2012-12-19 | 一种整型数据无损压缩方法、解压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103067022B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156990A (zh) * | 2014-07-03 | 2014-11-19 | 华南理工大学 | 一种支持特大型数据窗口的无损压缩编码方法及系统 |
CN104166160A (zh) * | 2014-07-25 | 2014-11-26 | 中国石油天然气集团公司 | 一种地震数据组合方法、装置及系统 |
CN104378118A (zh) * | 2014-10-29 | 2015-02-25 | 中国科学院地质与地球物理研究所 | 高效自适应地震数据流无损压缩及解压缩方法 |
CN104656132A (zh) * | 2013-11-22 | 2015-05-27 | 中国石油天然气集团公司 | 一种提高多方位地层倾角信息存储效率的方法 |
CN105227503A (zh) * | 2015-09-08 | 2016-01-06 | 北京航空航天大学 | 一种基于无线随钻测量系统的井下信源信道联合编码方法 |
CN105812094A (zh) * | 2016-03-07 | 2016-07-27 | 电信科学技术研究院 | 一种数据处理的方法、装置、终端及接入设备 |
CN107565970A (zh) * | 2017-08-17 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种基于特征识别的混合无损压缩方法及装置 |
CN107566999A (zh) * | 2017-09-15 | 2018-01-09 | 山东东进航空科技有限公司 | 一种北斗短报文数据压缩加密方法、装置及处理器 |
CN107682016A (zh) * | 2017-09-26 | 2018-02-09 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN107852174A (zh) * | 2015-07-03 | 2018-03-27 | 基麦提松科技公司 | 固定长度数据的压缩方法 |
CN107919943A (zh) * | 2016-10-11 | 2018-04-17 | 阿里巴巴集团控股有限公司 | 二进制数据的编码、解码方法和装置 |
CN109995373A (zh) * | 2018-01-03 | 2019-07-09 | 上海艾拉比智能科技有限公司 | 一种整数数组的混合打包压缩方法 |
CN110046159A (zh) * | 2019-03-13 | 2019-07-23 | 平安科技(深圳)有限公司 | 银行账号存储方法、装置、计算机设备及存储介质 |
CN110504973A (zh) * | 2018-05-16 | 2019-11-26 | 北京京东尚科信息技术有限公司 | 文件压缩、解压方法和装置 |
CN110727681A (zh) * | 2019-09-27 | 2020-01-24 | 北京智道合创科技有限公司 | 数据存储方法及装置 |
CN111223438A (zh) * | 2020-03-11 | 2020-06-02 | Tcl华星光电技术有限公司 | 像素补偿表的压缩方法及装置 |
CN112558885A (zh) * | 2020-12-24 | 2021-03-26 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
CN112565776A (zh) * | 2021-02-25 | 2021-03-26 | 北京城建设计发展集团股份有限公司 | 一种视频转码压缩方法及系统 |
CN113450807A (zh) * | 2020-03-25 | 2021-09-28 | 大唐移动通信设备有限公司 | 一种语音数字信号的压缩方法及装置 |
CN113868206A (zh) * | 2021-10-08 | 2021-12-31 | 八十一赞科技发展(重庆)有限公司 | 一种数据压缩方法、解压缩方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6987468B1 (en) * | 2004-10-29 | 2006-01-17 | Microsoft Corporation | Lossless adaptive encoding and decoding of integer data |
CN1949670A (zh) * | 2005-10-10 | 2007-04-18 | 中兴通讯股份有限公司 | 一种数据压缩及解压缩方法 |
CN102821275A (zh) * | 2011-06-08 | 2012-12-12 | 中兴通讯股份有限公司 | 数据压缩方法及装置、数据解压缩方法及装置 |
-
2012
- 2012-12-19 CN CN201210554863.4A patent/CN103067022B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6987468B1 (en) * | 2004-10-29 | 2006-01-17 | Microsoft Corporation | Lossless adaptive encoding and decoding of integer data |
CN1949670A (zh) * | 2005-10-10 | 2007-04-18 | 中兴通讯股份有限公司 | 一种数据压缩及解压缩方法 |
CN102821275A (zh) * | 2011-06-08 | 2012-12-12 | 中兴通讯股份有限公司 | 数据压缩方法及装置、数据解压缩方法及装置 |
Non-Patent Citations (1)
Title |
---|
吴国清,陈虹: "一种科学数据无损压缩方法", 《计算机工程与应用》 * |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104656132A (zh) * | 2013-11-22 | 2015-05-27 | 中国石油天然气集团公司 | 一种提高多方位地层倾角信息存储效率的方法 |
CN104656132B (zh) * | 2013-11-22 | 2017-08-04 | 中国石油天然气集团公司 | 一种提高多方位地层倾角信息存储效率的方法 |
CN104156990B (zh) * | 2014-07-03 | 2018-02-27 | 华南理工大学 | 一种支持特大型数据窗口的无损压缩编码方法及系统 |
CN104156990A (zh) * | 2014-07-03 | 2014-11-19 | 华南理工大学 | 一种支持特大型数据窗口的无损压缩编码方法及系统 |
CN104166160A (zh) * | 2014-07-25 | 2014-11-26 | 中国石油天然气集团公司 | 一种地震数据组合方法、装置及系统 |
CN104378118A (zh) * | 2014-10-29 | 2015-02-25 | 中国科学院地质与地球物理研究所 | 高效自适应地震数据流无损压缩及解压缩方法 |
CN104378118B (zh) * | 2014-10-29 | 2017-08-11 | 中国科学院地质与地球物理研究所 | 高效自适应地震数据流无损压缩及解压缩方法 |
CN107852174A (zh) * | 2015-07-03 | 2018-03-27 | 基麦提松科技公司 | 固定长度数据的压缩方法 |
CN105227503A (zh) * | 2015-09-08 | 2016-01-06 | 北京航空航天大学 | 一种基于无线随钻测量系统的井下信源信道联合编码方法 |
CN105227503B (zh) * | 2015-09-08 | 2019-01-18 | 北京航空航天大学 | 一种基于无线随钻测量系统的井下信源信道联合编码方法 |
CN105812094A (zh) * | 2016-03-07 | 2016-07-27 | 电信科学技术研究院 | 一种数据处理的方法、装置、终端及接入设备 |
CN105812094B (zh) * | 2016-03-07 | 2019-08-02 | 电信科学技术研究院 | 一种数据处理的方法、装置、终端及接入设备 |
CN107919943A (zh) * | 2016-10-11 | 2018-04-17 | 阿里巴巴集团控股有限公司 | 二进制数据的编码、解码方法和装置 |
US10785277B2 (en) | 2016-10-11 | 2020-09-22 | Alibaba Group Holding Limited | Methods and devices for encoding and decoding binary data |
CN107919943B (zh) * | 2016-10-11 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 二进制数据的编码、解码方法和装置 |
CN107565970B (zh) * | 2017-08-17 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种基于特征识别的混合无损压缩方法及装置 |
CN107565970A (zh) * | 2017-08-17 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种基于特征识别的混合无损压缩方法及装置 |
CN107566999A (zh) * | 2017-09-15 | 2018-01-09 | 山东东进航空科技有限公司 | 一种北斗短报文数据压缩加密方法、装置及处理器 |
CN107682016A (zh) * | 2017-09-26 | 2018-02-09 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN107682016B (zh) * | 2017-09-26 | 2021-09-17 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN109995373B (zh) * | 2018-01-03 | 2023-08-15 | 上海艾拉比智能科技有限公司 | 一种整数数组的混合打包压缩方法 |
CN109995373A (zh) * | 2018-01-03 | 2019-07-09 | 上海艾拉比智能科技有限公司 | 一种整数数组的混合打包压缩方法 |
CN110504973A (zh) * | 2018-05-16 | 2019-11-26 | 北京京东尚科信息技术有限公司 | 文件压缩、解压方法和装置 |
CN110046159A (zh) * | 2019-03-13 | 2019-07-23 | 平安科技(深圳)有限公司 | 银行账号存储方法、装置、计算机设备及存储介质 |
CN110046159B (zh) * | 2019-03-13 | 2023-04-18 | 平安科技(深圳)有限公司 | 银行账号存储方法、装置、计算机设备及存储介质 |
CN110727681B (zh) * | 2019-09-27 | 2022-07-08 | 北京智道合创科技有限公司 | 数据存储方法及装置 |
CN110727681A (zh) * | 2019-09-27 | 2020-01-24 | 北京智道合创科技有限公司 | 数据存储方法及装置 |
CN111223438A (zh) * | 2020-03-11 | 2020-06-02 | Tcl华星光电技术有限公司 | 像素补偿表的压缩方法及装置 |
CN113450807A (zh) * | 2020-03-25 | 2021-09-28 | 大唐移动通信设备有限公司 | 一种语音数字信号的压缩方法及装置 |
CN113450807B (zh) * | 2020-03-25 | 2023-03-17 | 大唐移动通信设备有限公司 | 一种语音数字信号的压缩方法及装置 |
CN112558885A (zh) * | 2020-12-24 | 2021-03-26 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
CN112558885B (zh) * | 2020-12-24 | 2022-11-22 | 展讯半导体(成都)有限公司 | 功能手机的存储器使用方法及相关产品 |
CN112565776A (zh) * | 2021-02-25 | 2021-03-26 | 北京城建设计发展集团股份有限公司 | 一种视频转码压缩方法及系统 |
CN112565776B (zh) * | 2021-02-25 | 2021-07-20 | 北京城建设计发展集团股份有限公司 | 一种视频转码压缩方法及系统 |
CN113868206A (zh) * | 2021-10-08 | 2021-12-31 | 八十一赞科技发展(重庆)有限公司 | 一种数据压缩方法、解压缩方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103067022B (zh) | 2015-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103067022B (zh) | 一种整型数据无损压缩方法、解压缩方法及装置 | |
US20110181448A1 (en) | Lossless compression | |
CN102368385B (zh) | 后向块自适应Golomb-Rice编解码方法及装置 | |
JP5936687B2 (ja) | ツリー構造の適応的エントロピー符号化方法 | |
US10425102B2 (en) | Coding method, decoding method, coder, and decoder | |
KR101049699B1 (ko) | 데이터의 압축방법 | |
CN106301385B (zh) | 用于对数进行有理压缩和解压缩的方法和装置 | |
CN110021369B (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
CN101783788A (zh) | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 | |
US20130019029A1 (en) | Lossless compression of a predictive data stream having mixed data types | |
CN103280221A (zh) | 一种基于基追踪的音频无损压缩编码、解码方法及系统 | |
CN102084594B (zh) | 用于处理数字数据的方法 | |
CN100423582C (zh) | 一种用于将待编码数据进行二进制化编码的方法和装置 | |
CN111246206A (zh) | 一种基于自编码器的光流信息压缩方法及装置 | |
CN104125475A (zh) | 一种多维量子数据压缩、解压缩方法及装置 | |
US20100321218A1 (en) | Lossless content encoding | |
CN116016606A (zh) | 一种基于智慧云的污水处理运维数据高效管理系统 | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
CN102932001A (zh) | 运动捕获数据压缩、解压缩方法 | |
Thepade et al. | New clustering algorithm for Vector Quantization using Slant transform | |
Rani et al. | A survey on lossless text data compression techniques | |
CN103517022A (zh) | 一种图像数据压缩和解压缩方法、装置 | |
CN109698704B (zh) | 比对型基因测序数据解压方法、系统及计算机可读介质 | |
Kakde et al. | Lossless Data Compression Using Golumb Codes | |
KR100686354B1 (ko) | 가변 트리를 이용한 허프만 복호화 방법 및 장치 |
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 |