一种整型数据无损压缩方法、解压缩方法及装置的制作方法

文档序号:7535769阅读:451来源:国知局
专利名称:一种整型数据无损压缩方法、解压缩方法及装置的制作方法
技术领域
本发明涉及数据压缩技术领域,具体地,涉及一种整型数据无损压缩、无损解压缩方法及装置。
背景技术
数据压缩是一种消除原始数据之间的冗余性,将原始数据文件转化为另一个占用存储空间更小的数据文件的技术。数据压缩的目的是尽可能地减小数据文件的大小,以节省数据传输和存储的成本。我们通常所说的数据压缩实质上包括两个部分第一部分是通过压缩算法将原始数据文件转化为压缩数据文件,即压缩部分;另一部分是通过解压算法对压缩数据文件进行解压,以重构出原始数据文件,即解压部分。根据不同压缩方法对应的解压方法,可由压缩数据文件基本或完全准确地重构出原始数据文件。根据是否可以通过压缩数据文件无失真地恢复原始数据文件,数据压缩方法可分为两大类无损压缩(重构数据与原始数据完全一致)和有损压缩(允许重构数据与原始数据存在偏差,因而一般可以取得比无损压缩更好的压缩效果)。数据压缩技术在过去20年里得到了快速的发展。目前,它已广泛应用于数字通信、数字广播、数字电视、数字存储、计算机、互联网、数字摄影、数字出版、多媒体娱乐、玩具、家电、石油勘探以及智能控制等众多领域。根据不同的应用需求,需要选择不同类型的压缩方法。对于可执行计算机程序、法律文本文档、医学X光映像和遗传(基因)信息等数据文件,任何一位(或一个字)信息的改变或缺失将导致程序不能执行或不能按照正确的思路执行或将导致原始信息意义的改变,而这类文件是不允许出现这种情况的;因此,这类数据文件的压缩需要采用无损压缩方法。对于一般的图像、视频和音频等数据文件,当其中部分数据发生较小的改变时,我们很难甚至完全不能发现其中信息的改变,不会影响这些数据文件的正常使用;因此,这类数据文件可以采用有损压缩方法,以在不影响它们正常使用的情况下获得更好的压缩效果。目前已有的数据压缩方法主要包括统计类编码(Shannon-Fano编码,Huffman编码,Run-Length编码,Arithmetic编码等)方法、字典类编码(LZ编码,LZ77编码,LZ78编码,LZff编码等)方法、变换类(K-L变换,W-H变换,离散余弦变换,Haar变换,小波变换等)压缩方法、图像压缩方法(Image Transforms, JPEG, JBIG,矢量量化等)、视频压缩方法(MPEG,MPEG-4, H. 261, H. 264 等)、音频压缩方法(ADPCM 音频压缩,FLAC,Monkey’ s Audio,AAC 等)
坐寸o编码是所有数据压缩方法的关键组成部分,它直接影响着压缩方法的压缩效果,有些压缩方法的压缩效果甚至完全取决于所使用的编码方式。所谓编码就是将原始数据流或经过处理的数据流以某种特殊的方式记录下来。不同的编码方法对不同类型的数据序列有效。例如,Shannon-Fano编码和Huffman编码适用于文件中各符号出现的概率为2的负指数次方的文件压缩;算术编码适用于文件中少数符号出现的概率明显大于其他符号出现的概率的文件压缩;LZW编码适用于文件中相同符号组合出现频率较高的数据文件压缩;专门为视频或音频数据文件设计的编码方法适用于视频或音频数据文件压缩等。如果我们用一种专门为图像或音频数据设计的压缩程序(或编码方式)对文本文件进行压缩的话,那么压缩后文件大小常常大于甚至远大于原始数据文件。因此,针对不同类型的数据文件,选择或设计合适的编码方式是压缩成功的关键。对经典的算术编码方法和LZW编码方法、通用的WinRAR软件以及专业音频数据压缩软件FLAC (Free Lossless Audio Codec)进行无损压缩测试表明,这些编码(或压缩)方法的压缩效果并不足够理想(算术编码、LZW、WinRAR和FLAC对经过去相关处理的声波测井波形数据文件的平均压缩比分别为1.32、1. 12,1.38和1. 01),压缩比有进一步提升的空间。

发明内容
本发明实施例的主要目的在于提供一种整型数据无损压缩方法、解压缩方法及装置,以提供一种相比现有技术能够获得更好压缩效果的压缩技术。为了实现上述目的,本发明实施例提供一种整型数据无损压缩方法,包括读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列;以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目;针对所述每一数据块执行以下编码处理确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件;其中,根据标记编码方式对当前数据块进行编码,具体包括输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码;根据常规编码方式对当前数据块进行编码,具体包括输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。优选的,所述整型数据无损压缩方法中,所述设定阈值按照如下方式确定假设所述第二设定数目个整型数据满足条件分别采用标记编码方式和常规编码方式进行编码时,得到的编码结果占用相同大小的存储空间;
则将该第二设定数目个整型数据中各整型数据的出现概率的最大值确定为所述设定阈值。优选的,所述整型数据无损压缩方法中,读取原始整型数据序列之前,还包括对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值;则针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串,具体为针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;所述压缩文件基本信息还包括所述预处理的过程信息。优选的,所述整型数据无损压缩方法中,对所述原始整型数据序列进行预处理,具体包括对所述原始整型数据进行线性预测处理/非线性预测处理/小波变换处理;和/或,将所述原始整型数据中的有符号整型数据转换为无符号整型数据。一种整型数据解压缩方法,包括对压缩文件基本信息进行解析,获取所述压缩文件基本信息中存储的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、第二设定数目;对二进制压缩文件执行以下解码处理过程顺序读取一个未读码值;确定所述未读码值为标记编码方式标记符时,根据标记解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;确定所述未读码值为常规编码方式标记符时,根据常规解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;重复执行上述解码处理过程,直至得到数目为所述原始整型数据总数乘以原始比特位总数再除以第一设定数目个解码整型数据;将所述解码处理过程得到的所有解码整型数据的完整二进制码顺序组合为位恢复二进制码序列;定义多个整型数据,所述定义的多个整型数据总数等于所述原始整型数据总数,且所述定义的每一整型数据的完整二进制码对应的比特位数等于所述原始比特位总数;以所述原始整型数据总数为一组,顺序提取所述位恢复二进制码序列中的各组码值,按照所述设定比特位顺序将每一组码值包括的各码值依次赋值给所述定义的各整型数据的相应比特位;将所述赋值后的整型数据顺序组成解压缩整型数据序列;其中,根据标记解码方式对后续码值进行解码,具体包括读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为被替代整型数据,并循环执行以下步骤继续读取一个后续码值;确定该后续码值为替代标记符时,将所述被替代整型数据确定为解码整型数据;确定该后续码值为非替代标记符时,继续读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据;根据常规解码方式对后续码值进行解码,具体包括循环执行以下步骤读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据。
优选的,所述整型数据解压缩方法还包括获取所述压缩文件基本信息中存储的预处理过程信息;则将所述赋值后的整型数据顺序组成解压缩整型数据序列之前,还包括对所述赋值后的整型数据进行反预处理,所述反预处理的过程与所述预处理的过程互逆;将所述赋值后的整型数据顺序组成解压缩整型数据序列,具体为将所述反预处理后得到的整型数据顺序组成解压缩整型数据序列。一种整型数据无损压缩装置,包括位重组处理模块,用于读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列;数据块划分及基本信息存储模块,用于以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目;编码处理模块,用于针对所述每一数据块执行以下编码处理确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件;其中,编码处理模块根据标记编码方式对当前数据块进行编码时,具体用于输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码;编码处理模块根据常规编码方式对当前数据块进行编码时,具体用于输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。优选的,所述整型数据无损压缩装置还包括预处理模块,用于对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值;则所述位重组处理模块针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串时,具体用于针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;所述数据块划分及基本信息存储模块还用于将所述预处理的过程信息存储至压缩文件基本信息中。一种整型数据解压缩装置,包括基本信息解析模块,用于对压缩文件基本信息进行解析,获取所述压缩文件基本信息中存储的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、数据块个数、第二设定数目;解码处理模块,用于对二进制压缩文件执行以下解码处理过程顺序读取一个未读码值;确定所述未读码值为标记编码方式标记符时,根据标记解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;确定所述未读码值为常规编码方式标记符时,根据常规解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;重复执行上述解码处理过程,直至得到数目为所述原始整型数据总数乘以原始比特位总数再除以第一设定数目个解码整型数据;位恢复处理模块,用于将所述解码处理过程得到的所有解码整型数据的完整二进制码顺序组合为位恢复二进制码序列;定义多个整型数据,所述定义的多个整型数据总数等于所述原始整型数据总数,且所述定义的每一整型数据的完整二进制码对应的比特位数等于所述原始比特位总数;以所述原始整型数据总数为一组,顺序提取所述位恢复二进制码序列中的各组码值,按照所述设定比特位顺序将每一组码值包括的各码值依次赋值给所述定义的各整型数据的相应比特位;将所述赋值后的整型数据顺序组成解压缩整型数据序列;其中,解码处理模块根据标记解码方式对后续码值进行解码时,具体用于读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为被替代整型数据,并循环执行以下步骤继续读取一个后续码值;确定该后续码值为替代标记符时,将所述被替代 整型数据确定为解码整型数据;确定该后续码值为非替代标记符时,继续读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据;解码处理模块根据常规解码方式对后续码值进行解码时,具体用于循环执行以下步骤读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据。优选的,所述整型数据解压缩装置中,所述基本信息解析模块还用于获取所述压缩文件基本信息中存储的预处理过程信息;所述整型数据解压缩装置还包括反预处理模块,用于对所述赋值后的整型数据进行反预处理,所述反预处理的过程与所述预处理的过程互逆;则所述位恢复处理模块将所述赋值后的整型数据顺序组成解压缩整型数据序列时,具体用于将所述反预处理后得到的整型数据顺序组成解压缩整型数据序列。借助于上述技术方案,本发明算法简单、易于实现,编码解码效率高,压缩效果好,可用于对音频数据、地震勘探信号、地球物理测井波形数据和图像数据等多种类型的整型数据进行无损压缩和解压缩;测试表明,本方法对经过去相关处理后的声波测井波形数据无损压缩的平均压缩比比算术编码、LZff, WinRAR软件和FLAC软件高14. 59^56. 4%,具有良好的应用前景。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例一提供的整型数据无损压缩方法流程图;图2是本发明实施例二提供的整型数据解压缩方法流程图;图3是本发明实施例三提供的整型数据无损压缩方法和解压缩方法流程示意图;图4是本发明实施例三提供的位重组处理过程具体流程图;图5是本发明实施例三提供的编码处理过程具体流程图;图6是本发明实施例三提供的标记编码方式编码过程具体流程图;图7是本发明实施例三提供的解码处理过程具体流程图;图8是本发明实施例三提供的位恢复处理过程具体流程图;图9是本发明实施例四提供的整型数据无损压缩装置结构示意图;图10是本发明实施例五提供的整型数据解压缩装置结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,本发明实施例中所说的“原始整型数据序列”为采用本发明提供的整型数据无损压缩方法进行压缩的原始文件;本发明实施例中所说的“二进制压缩文件”为采用本发明提供的整型数据无损压缩方法对“原始整型数据序列”进行压缩后得到的文件;本发明实施例中所说的“解压缩整型数据序列”为采用本发明提供的整型数据解压缩方法对“二进制压缩文件”进行解压后得到的文件,该文件与压缩前的原始文件一致,即与“原始整型数据序列” 一致本发明实施例中所说的“完整二进制码”是指一个整型数据在计算机内存中以二进制形式存储时对应的全部二进制码。实施例一本实施例提供一种整型数据无损压缩方法,如图1所示,该方法包括位重组处理过程101 :读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列;数据块划分及基本信息生成过程102 :以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目;编码处理过程103 :针对每一数据块执行以下编码处理确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件;其中,编码处理过程103中,根据标记编码方式对当前数据块进行编码,具体包括输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码;编码处理过程103中,根据常规编码方式对当前数据块进行编码,具体包括输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。具体的,原始比特位总 数为原始整型数据在计算机内存中以二进制形式存储所占用的比特位数,如8比特位、16比特位、32比特位等。位重组处理过程101中,针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串,具体如下确定原始比特位总数的最高比特位和最低比特位(一般最左边的一位为最高比特位,最右边一位是最低比特位),针对第k (k=l, 2,3....,最高比特位彡k彡最低比特位)比特位,依次提取所有原始整型数据的完整二进制码中第k比特位的码值,得到第k比特位对应的二进制码串。位重组处理过程101中,按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列,具体可以如下设定比特位顺序为从高比特位到低比特位,则按照从最高比特位至最低比特位的顺序排列各比特位对应的二进制码串,得到相应的位重组二进制码序列;其中,本实施例对所述设定比特位顺序不作限定,可以从高比特位到低比特位,也可以从低比特位到高比特位,还可以为任意比特位顺序。位重组处理过程101中,以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列,具体可以为以16个码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的码值,并且每提取16个码值作为一组完整二进制码确定对应的整型数据,将依次确定的整型数据组合成位重组整型数据序列;需要说明的是,本实施例中第一设定数目可以等于或不等于原始比特位总数,例如,原始整型数据的完整二进制码占用16比特位时,第一设定数目可以为8或32,即位重组整型数据序列中各整型数据的完整二进制码占用8比特位或32比特位;对于某一类型的原始整型数据序列而言,其包含的原始整型数据的完整二进制码往往具有高比特位(或低比特位)全部或大部分为码值0 (或码值I)的共性特征;位重组处理过程101就是利用这种共性特征,对所有原始整型数据的二进制码进行重新排列组合,使得到的位重组二进制码序列中连续出现码值0 (或码值I)的概率较高,相应的,根据位重组二进制码序列得到的位重组整型数据序列中,某一整型数据出现的概率会明显高于该序列中其他整型数据出现的概率,利用这个特点,就可以使编码处理过程103取得较好的编码处理效果,即获得较好的无损压缩效果;需要说明的是,当原始整型数据序列包含的原始整型数据不具有上述共性特征时,也可以采用本实施例提供的整型数据无损压缩方法,但是获得的压缩效果不如压缩具有上述共性特征的原始整型数据序列获得的压缩效果好。数据块划分及基本信息生成过程102中,第二设定数目表征了数据块的大小,一般情况下,对于相同类型的原始整型数据序列(如相同类型的音乐文件、相同条件下采集得到的地球物理勘探信号等),其最佳数据块的大小是相近的,因此可依据经验确定数据块的大小,即第二设定数目可依据经验设置;若根据第二设定数目不能将位重组整型数据序列顺序划分成整数个数据块,则将最后不足一个数据块的若干整型数据作为一个特殊的数据块。数据块划分及基本信息生成过程102中,存储压缩文件基本信息,主要包括存储原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目等信息,这些信息是解压缩过程所必须的信息。编码处理过程103中,标记编码方式是利用了位重组整型数据序列或其局部子序列具有某一整型数据出现的概率会明显高于该序列中其他整型数据出现的概率的特点,采用替代标记符代替数据块中出现概率最大的整型数据的方式对位重组整型数据序列进行编码,即输出替代标记符以代替数据块中出现概率最大的整型数据的二进制码,同时原样输出数据块中其他整型数据的二进制码,使标记编码方式的编码结果占用的存储空间小于位重组整型数据序列的二进制码占用的存储空间,以达到压缩文件的目的;标记编码方式中,利用替代标记符代替数据块中出现概率最大的整型数据的完整二进制码能够起到节省存储空间的作用,但是每原样输出数据块中的一个其他整型数据(非数据块中出现概率最大的整型数据)的完整二进制码之前都要输出一位非替代标记符,这在一定程度上增加了编码结果占用的存储空间,因此要想达到压缩文件的目的,只能在数据块中某一整型数据的出现概率大于设定阈值时才能使用标记编码方式进行编码,否贝U,就使用常规编码方式进行编码。编码处理过程103中,标记编码方式标记符标识了数据块采用标记编码方式进行编码,常规编码方式标记符标识了数据块采用常规编码方式进行编码,以便于解压缩过程中解码处理的顺利实现。需要说明的是,本实施例提供的整型数据无损压缩方法,对原始整型数据序列进行压缩后最终生成的的文件中包含两部分压缩文件基本信息和二进制压缩文件;具体实施中,可以将压缩文件基本信息与二进制压缩文件顺序存储为一个文件,也可以将压缩文件基本信息与二进制压缩文件存储至一个文件夹中,但无论怎样存储,在执行解压缩过程时都需要先对压缩文件基本信息进行解析,然后才能对二进制压缩文件进行解压缩。本实施例提供的整型数据无损压缩方法的压缩处理速度快,算法简单、易于实现,编码效率高,具有较好的压缩效果,可适用于对音频数据、地震勘探信号、地球物理测井波形数据和图像数据等多种类型的整型数据进行压缩,具有良好的应用前景。优选的,所述设定阈值按照如下方式确定
假设所述第二设定数目个整型数据满足条件分别采用标记编码方式和常规编码方式进行编码时,得到的编码结果占用相同大小的存储空间;则将该第二设定数目个整型数据中各整型数据的出现概率的最大值确定为所述设定阈值。具体的,以整型数据的完整二进制码比特位数为16位(第一设定数目为16),每一数据块包含100个(第二设定数目为100)整型数据为例,假设某一数据块满足上述条件,设该数据块中各数据出现概率的最大值Pmax = Po,则采用标记编码方式的编码结果占用17+100XPJ17X 100X (1-P0)位比特位的存储空间,采用常规编码方式的编码结果占用16X100+1位比特位的存储空间,通过解方程17+100XP0+17X100X (1-P0) = 16X100+1,即可计算出Ptl的值,相应的就可确定出设定阈值的大小;一般情况下,计算得到的P。为小数,只需根据精度需求按照四舍五入的方法取有限精度的值作为阈值即可。优选的,本实施例提供的整型数据无损压缩方法中,位重组处理过程101之前,还包括预处理过程对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值;则位重组处理过程101中,针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串,具体为针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;数据块划分及基本信息生成过程102中形成的所述压缩文件基本信息还包括所述预处理的过程信息。具体的,预处理过程是通过采用数据处理方法对原始整型数据序列进行处理,预处理后得到的整型数据序列的均方值减小,其目的是提高整型数据序列的二进制码的共性特征,该过程的处理效果越好,则编码处理过程103得到的编码结果越好,压缩效果越好;当对原始整型数据序列进行预处理后得到预处理整型数据序列,并且预处理整型数据序列的均方值较小(越小越好)或均值为零且具有小方差正态分布特征时,该预处理整型数据序列中各预处理整型数据的二进制码具有较好的共性特征,例如该预处理整型数据序列中各预处理整型数据的高比特位(或低比特位)全部或大部分为码值0 (或码值I);当原始整型数据序列本身即满足均方值较小或均值为零且具有小方差正态分布特征时,其中各原始整型数据的二进制码就会具有较好的共性特征时,此时,不必再进行数据预处理,即省略预处理过程;压缩文件基本信息中包含的预处理过程信息可以包括预处理状态信息(例如为I时表不未做预处理)、预处理方法信息(例如为2时表不米用小波变换方法,为3时表不米用线性预测处理,为4时表示采用非线性预测处理)等。需要说明的是,预处理过程必须是可逆的,以便在解压缩时通过采用与数据预处理过程互逆的反预处理过程进行恢复。优选的,对所述原始整型数据序列进行预处理,具体包括对所述原始整型数据进行线性预测处理/非线性预测处理/小波变换处理;和/或,将所述原始整型数据中的有符号整型数据转换为无符号整型数据。具体的,可以采用线性预测处理/非线性预测处理/小波变换处理等数据处理方法对原始整型数据序列进行数据预处理,使其满足均方值较小或均值为零且具有小方差正态分布特征;当经过上述处理之后的整型数据序列中既包括正整型数据,又包括负整型数据时,为了进一步提高二进制码的共性特征,可将有符号整型数据转换为无符号整型数据,例如可采用如下转换公式实现该目的
权利要求
1.一种整型数据无损压缩方法,其特征在于,包括 读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列; 以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目; 针对所述每一数据块执行以下编码处理确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件; 其中,根据标记编码方式对当前数据块进行编码,具体包括 输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码; 根据常规编码方式对当前数据块进行编码,具体包括 输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。
2.根据权利要求1所述的整型数据无损压缩方法,其特征在于,所述设定阈值按照如下方式确定 假设所述第二设定数目个整型数据满足条件分别采用标记编码方式和常规编码方式进行编码时,得到的编码结果占用相同大小的存储空间; 则将该第二设定数目个整型数据中各整型数据的出现概率的最大值确定为所述设定阈值。
3.根据权利要求1或2所述的整型数据无损压缩方法,其特征在于,读取原始整型数据序列之前,还包括对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值; 则针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串,具体为针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串; 所述压缩文件基本信息还包括所述预处理的过程信息。
4.根据权利要求3所述的整型数据无损压缩方法,其特征在于,对所述原始整型数据序列进行预处理,具体包括对所述原始整型数据进行线性预测处理/非线性预测处理/小波变换处理;和/或, 将所述原始整型数据中的有符号整型数据转换为无符号整型数据。
5.一种整型数据解压缩方法,其特征在于,包括 对压缩文件基本信息进行解析,获取所述压缩文件基本信息中存储的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、第二设定数目; 对二进制压缩文件执行以下解码处理过程顺序读取一个未读码值;确定所述未读码值为标记编码方式标记符时,根据标记解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;确定所述未读码值为常规编码方式标记符时,根据常规解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;重复执行上述解码处理过程,直至得到数目为所述原始整型数据总数乘以原始比特位总数再除以第一设定数目个解码整型数据; 将所述解码处理过程得到的所有解码整型数据的完整二进制码顺序组合为位恢复二进制码序列;定义多个整型数据,所述定义的多个整型数据总数等于所述原始整型数据总数,且所述定义的每一整型数据的完整二进制码对应的比特位数等于所述原始比特位总数;以所述原始整型数据总数为一组,顺序提取所述位恢复二进制码序列中的各组码值,按照所述设定比特位顺序将每一组码值包括的各码值依次赋值给所述定义的各整型数据的相应比特位;将所述赋值后的整型数据顺序组成解压缩整型数据序列; 其中,根据标记解码方式对后续码值进行解码,具体包括 读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为被替代整型数据,并循环执行以下步骤继续读取一个后续码值;确定该后续码值为替代标记符时,将所述被替代整型数据确定为解码整型数据;确定该后续码值为非替代标记符时,继续读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据; 根据常规解码方式对后续码值进行解码,具体包括 循环执行以下步骤读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据。
6.根据权利要求5所述的整型数据解压缩方法,其特征在于,还包括获取所述压缩文件基本信息中存储的预处理过程信息;则 将所述赋值后的整型数据顺序组成解压缩整型数据序列之前,还包括对所述赋值后的整型数据进行反预处理,所述反预处理的过程与所述预处理的过程互逆; 将所述赋值后的整型数据顺序组成解压缩整型数据序列,具体为将所述反预处理后得到的整型数据顺序组成解压缩整型数据序列。
7.—种整型数据无损压缩装置,其特征在于,包括 位重组处理模块,用于读取原始整型数据序列;确定原始比特位总数,所述原始比特位总数为所述原始整型数据的完整二进制码对应的比特位数;针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;按照设定比特位顺序对所述原始比特位总数中所有比特位对应的二进制码串进行排列,得到位重组二进制码序列;以第一设定数目的码值为一组完整二进制码,顺序提取所述位重组二进制码序列中的各组码值并确定对应的整型数据,将确定的整型数据组成位重组整型数据序列; 数据块划分及基本信息存储模块,用于以第二设定数目个整型数据为一数据块,将所述位重组整型数据序列顺序划分成至少一个数据块;存储压缩文件基本信息,所述压缩文件基本信息包括原始整型数据总数、所述原始比特位总数、所述设定比特位顺序、所述第一设定数目、所述第二设定数目; 编码处理模块,用于针对所述每一数据块执行以下编码处理确定当前数据块中出现概率最大的整型数据及对应的概率值,判断所述概率值是否大于设定阈值,若是,则根据标记编码方式对当前数据块进行编码,否则,根据常规编码方式对当前数据块进行编码;对所有数据块完成所述编码处理后,将输出的二进制码组成二进制压缩文件; 其中,编码处理模块根据标记编码方式对当前数据块进行编码时,具体用于输出标记编码方式标记符;输出当前数据块中出现概率最大的整型数据的完整二进制码;顺序读取当前数据块中的每一整型数据,判断该整型数据是否为所述出现概率最大的整型数据,若是,则输出替代标记符,否则,依次输出非替代标记符和该整型数据的完整二进制码; 编码处理模块根据常规编码方式对当前数据块进行编码时,具体用于输出常规编码方式标记符;顺序读取当前数据块中的每一整型数据,并输出该整型数据的完整二进制码。
8.根据权利要求7所述的整型数据无损压缩装置,其特征在于,还包括 预处理模块,用于对所述原始整型数据序列进行预处理获得预处理整型数据序列,所述预处理整型数据序列的均方值小于所述原始整型数据序列的均方值; 则所述位重组处理模块针对所述原始比特位总数中的每一比特位,依次提取所有原始整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串时,具体用于针对所述原始比特位总数中的每一比特位,依次提取所述预处理整型数据序列中所有预处理整型数据的完整二进制码中该比特位的码值,得到该比特位对应的二进制码串;所述数据块划分及基本信息存储模块还用于将所述预处理的过程信息存储至压缩文件基本信息中。
9.一种整型数据解压缩装置,其特征在于,包括 基本信息解析模块,用于对压缩文件基本信息进行解析,获取所述压缩文件基本信息中存储的原始整型数据总数、原始比特位总数、设定比特位顺序、第一设定数目、第二设定数目; 解码处理模块,用于对二进制压缩文件执行以下解码处理过程顺序读取一个未读码值;确定所述未读码值为标记编码方式标记符时,根据标记解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;确定所述未读码值为常规编码方式标记符时,根据常规解码方式对后续码值进行解码,直至得到所述第二设定数目的解码整型数据;重复执行上述解码处理过程,直至得到数目为所述原始整型数据总数乘以原始比特位总数再除以第一设定数目个解码整型数据; 位恢复处理模块,用于将所述解码处理过程得到的所有解码整型数据的完整二进制码顺序组合为位恢复二进制码序列;定义多个整型数据,所述定义的多个整型数据总数等于所述原始整型数据总数,且所述定义的每一整型数据的完整二进制码对应的比特位数等于所述原始比特位总数;以所述原始整型数据总数为一组,顺序提取所述位恢复二进制码序列中的各组码值,按照所述设定比特位顺序将每一组码值包括的各码值依次赋值给所述定义的各整型数据的相应比特位;将所述赋值后的整型数据顺序组成解压缩整型数据序列; 其中,解码处理模块根据标记解码方式对后续码值进行解码时,具体用于 读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为被替代整型数据,并循环执行以下步骤继续读取一个后续码值;确定该后续码值为替代标记符时,将所述被替代整型数据确定为解码整型数据;确定该后续码值为非替代标记符时,继续读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据; 解码处理模块根据常规解码方式对后续码值进行解码时,具体用于 循环执行以下步骤读取所述第一设定数目的后续码值作为一组完整二进制码,将其对应的整型数据确定为解码整型数据。
10.根据权利要求9所述的整型数据解压缩装置,其特征在于, 所述基本信息解析模块还用于获取所述压缩文件基本信息中存储的预处理过程信息; 所述整型数据解压缩装置还包括反预处理模块,用于对所述赋值后的整型数据进行反预处理,所述反预处理的过程与所述预处理的过程互逆; 则所述位恢复处理模块将所述赋值后的整型数据顺序组成解压缩整型数据序列时,具体用于将所述反预处理后得到的整型数据顺序组成解压缩整型数据序列。
全文摘要
本发明提供一种整型数据无损压缩方法、解压缩方法及装置,所述整型数据压缩方法包括位重组处理过程、数据块划分及基本信息存储过程和编码处理过程;所述整型数据解压缩方法包括基本信息解析过程、解码处理过程和位恢复处理过程;所述整型数据压缩装置包括位重组处理模块、数据块划分及基本信息存储模块和编码处理模块;所述整型数据解压缩装置包括基本信息解析模块、解码处理模块和位恢复处理模块。本发明算法简单、易于实现,编码解码效率高,压缩效果好,可用于对音频数据、地震勘探信号、地球物理测井波形数据和图像数据等多种类型的整型数据进行无损压缩和解压缩。
文档编号H03M7/30GK103067022SQ20121055486
公开日2013年4月24日 申请日期2012年12月19日 优先权日2012年12月19日
发明者蔡明 , 乔文孝, 鞠晓东, 车小花, 卢俊强 申请人:中国石油天然气集团公司, 中国石油大学(北京)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1