首页> 中国专利> 一种整型数据无损压缩方法、解压缩方法及装置

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

摘要

本发明提供一种整型数据无损压缩方法、解压缩方法及装置,所述整型数据压缩方法包括:位重组处理过程、数据块划分及基本信息存储过程和编码处理过程;所述整型数据解压缩方法包括:基本信息解析过程、解码处理过程和位恢复处理过程;所述整型数据压缩装置包括:位重组处理模块、数据块划分及基本信息存储模块和编码处理模块;所述整型数据解压缩装置包括:基本信息解析模块、解码处理模块和位恢复处理模块。本发明算法简单、易于实现,编码解码效率高,压缩效果好,可用于对音频数据、地震勘探信号、地球物理测井波形数据和图像数据等多种类型的整型数据进行无损压缩和解压缩。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-10-21

    授权

    授权

  • 2013-05-29

    实质审查的生效 IPC(主分类):H03M7/30 申请日:20121219

    实质审查的生效

  • 2013-04-24

    公开

    公开

说明书

技术领域

本发明涉及数据压缩技术领域,具体地,涉及一种整型数据无损压缩、无损解压缩方 法及装置。

背景技术

数据压缩是一种消除原始数据之间的冗余性,将原始数据文件转化为另一个占用存储 空间更小的数据文件的技术。数据压缩的目的是尽可能地减小数据文件的大小,以节省数 据传输和存储的成本。我们通常所说的数据压缩实质上包括两个部分:第一部分是通过压 缩算法将原始数据文件转化为压缩数据文件,即压缩部分;另一部分是通过解压算法对压 缩数据文件进行解压,以重构出原始数据文件,即解压部分。根据不同压缩方法对应的解 压方法,可由压缩数据文件基本或完全准确地重构出原始数据文件。根据是否可以通过压 缩数据文件无失真地恢复原始数据文件,数据压缩方法可分为两大类:无损压缩(重构数 据与原始数据完全一致)和有损压缩(允许重构数据与原始数据存在偏差,因而一般可以 取得比无损压缩更好的压缩效果)。

数据压缩技术在过去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时表示采用非线性预测处理)等。

需要说明的是,预处理过程必须是可逆的,以便在解压缩时通过采用与数据预处理过 程互逆的反预处理过程进行恢复。

优选的,对所述原始整型数据序列进行预处理,具体包括:

对所述原始整型数据进行线性预测处理/非线性预测处理/小波变换处理;和/或,

将所述原始整型数据中的有符号整型数据转换为无符号整型数据。

具体的,可以采用线性预测处理/非线性预测处理/小波变换处理等数据处理方法对原 始整型数据序列进行数据预处理,使其满足均方值较小或均值为零且具有小方差正态分布 特征;当经过上述处理之后的整型数据序列中既包括正整型数据,又包括负整型数据时, 为了进一步提高二进制码的共性特征,可将有符号整型数据转换为无符号整型数据,例如 可采用如下转换公式实现该目的:

y=2x,(x0)2|x|-1,(x<0)

其中,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、光学存储器等)上实施的计算机程 序产品的形式。

本发明是参照根据本发明实施例的方法和计算机程序产品的流程图和/或方框图来描 述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及 流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、 专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通 过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流 程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机 或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他 可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方 框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说 明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护 范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号