一种数据压缩方法、系统、设备及计算机可读存储介质技术方案

技术编号:37423436 阅读:6 留言:0更新日期:2023-04-30 09:45
本申请公开了一种数据压缩方法、系统、设备及计算机可读存储介质,获取待压缩的目标数据;统计目标数据中的字节总数及每类字符的出现概率;确定函数x*log2(x)在预设近似条件下的目标线性函数;基于目标线性函数确定不含对数运算的信息熵运算公式;通过信息熵运算公式,基于字节总数及出现概率,计算目标数据的目标信息熵;判断目标信息熵是否小于预设值,若目标信息熵小于预设值,则对目标数据进行压缩,若目标信息熵大于等于预设值,则不对目标数据进行压缩。本申请中,需将函数x*log2(x)转变为不含对数运算的目标线性函数,这样,便可以基于目标线性函数确定出不含对数运算的信息熵运算公式,提高了目标信息熵的计算效率,进而可以提高数据压缩效率。进而可以提高数据压缩效率。进而可以提高数据压缩效率。

【技术实现步骤摘要】
一种数据压缩方法、系统、设备及计算机可读存储介质


[0001]本申请涉及数据压缩
,更具体地说,涉及一种数据压缩方法、系统、设备及计算机可读存储介质。

技术介绍

[0002]数据压缩可以潜在地减小数据的存储空间,提高存储设备的逻辑容量,从而降低数据的存储和传输成本,因此具有很高的技术吸引力。数据压缩是一项计算密集的操作,其实际达到的数据缩减效果也取决于待压缩数据的可压缩性。如果对不可压缩的数据执行压缩操作,压缩后的数据大小并不会变小,这使得高额的计算开销白白浪费掉。因此,如果可以准确预测数据的可压缩性,从而避免对不可压缩的数据进行压缩,就可以避免浪费高昂的压缩计算开销。
[0003]在数据压缩过程中,信息熵是度量数据可压缩性和预测数据压缩率的关键指标。信息熵的计算需要进行对数操作,具有一定的计算复杂度,并且硬件实现逻辑复杂,由此使得信息熵的运算效率较低,继而影响数据压缩的效率。
[0004]综上所述,如何提高数据压缩的效率是目前本领域技术人员亟待解决的问题。

技术实现思路

[0005]本申请的目的是提供一种数据压缩方法,其能在一定程度上解决如何提高数据压缩效率的技术问题。本申请还提供了一种数据压缩系统、设备及计算机可读存储介质。
[0006]为了实现上述目的,本申请提供如下技术方案:
[0007]一种数据压缩方法,包括:
[0008]获取待压缩的目标数据;
[0009]统计所述目标数据中的字节总数及每类字符的出现概率;
[0010]确定函数x*log2(x)在预设近似条件下的目标线性函数;
[0011]基于所述目标线性函数确定不含对数运算的信息熵运算公式;
[0012]通过所述信息熵运算公式,基于所述字节总数及所述出现概率,计算所述目标数据的目标信息熵;
[0013]判断所述目标信息熵是否小于预设值,若所述目标信息熵小于所述预设值,则对所述目标数据进行压缩,若所述目标信息熵大于等于所述预设值,则不对所述目标数据进行压缩。
[0014]优选的,所述确定函数x*log2(x)在预设近似条件下的目标线性函数,包括:
[0015]确定函数x*log2(x)在所述预设近似条件下的所述目标线性函数;
[0016]所述目标线性函数包括:
[0017]y=x*k(x)+2(x
‑2k(x)
);
[0018]其中,k(x)表示确定使得x的值介于[2
K
,2
K+1
)的K值的函数。
[0019]优选的,所述基于所述目标线性函数确定不含对数运算的信息熵运算公式,包括:
[0020]基于所述目标线性函数确定不含对数运算的所述信息熵运算公式;
[0021]所述信息熵运算公式包括:
[0022][0023]其中,H表示所述目标信息熵;N表示所述字节总数;M表示所述字符的总类型数;f(i)表示第i类字符的所述出现概率,其中i的取值范围是[0,M]。
[0024]优选的,所述确定函数x*log2(x)在预设近似条件下的目标线性函数,包括:
[0025]确定函数x*log2(x)在所述预设近似条件下的所述目标线性函数;
[0026]所述目标线性函数包括:
[0027]y=x*k(x)+((2

a)x
‑2k(x)+1
);
[0028]其中,k(x)表示确定使得x的值介于[2
K
,2
K+1
)的K值的函数;a表示调节参数。
[0029]优选的,还包括:
[0030]基于1.5*2
K
的值确定所述调节参数的值。
[0031]优选的,所述基于所述目标线性函数确定不含对数运算的信息熵运算公式,包括:
[0032]基于所述目标线性函数确定不含对数运算的所述信息熵运算公式;
[0033]所述信息熵运算公式包括:
[0034][0035]其中,H表示所述目标信息熵;N表示所述字节总数;M表示所述字符的总类型数;f(i)表示第i类字符的所述出现概率,其中i的取值范围是[0,M]。
[0036]优选的,k(x)的运算过程包括:
[0037]将x的值转换为二进制的32位整数;
[0038]统计所述32位整数中前缀0的个数值;
[0039]将31与所述个数值的差值作为k(x)所对应的K值。
[0040]优选的,所述通过所述信息熵运算公式,基于所述字节总数及所述出现概率,计算所述目标数据的目标信息熵的过程中,包括:
[0041]基于移位相加操作确定x*k(x)的运算结果;
[0042]取x低(k(x)

1)位的操作,得到(x
‑2k(x)
)的运算结果。
[0043]一种数据压缩系统,包括:
[0044]第一获取模块,用于获取待压缩的目标数据;
[0045]第一统计模块,用于统计所述目标数据中的字节总数及每类字符的出现概率;
[0046]第一确定模块,用于确定函数x*log2(x)在预设近似条件下的目标线性函数;
[0047]第二确定模块,用于基于所述目标线性函数确定不含对数运算的信息熵运算公式;
[0048]第一计算模块,用于通过所述信息熵运算公式,基于所述字节总数及所述出现概率,计算所述目标数据的目标信息熵;
[0049]第一判断模块,用于判断所述目标信息熵是否小于预设值,若所述目标信息熵小于所述预设值,则对所述目标数据进行压缩,若所述目标信息熵大于等于所述预设值,则不对所述目标数据进行压缩。
[0050]一种数据压缩设备,包括:
[0051]存储器,用于存储计算机程序;
[0052]处理器,用于执行所述计算机程序时实现如上任一所述数据压缩方法的步骤。
[0053]一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述数据压缩方法的步骤。
[0054]本申请提供的一种数据压缩方法,获取待压缩的目标数据;统计目标数据中的字节总数及每类字符的出现概率;确定函数x*log2(x)在预设近似条件下的目标线性函数;基于目标线性函数确定不含对数运算的信息熵运算公式;通过信息熵运算公式,基于字节总数及出现概率,计算目标数据的目标信息熵;判断目标信息熵是否小于预设值,若目标信息熵小于预设值,则对目标数据进行压缩,若目标信息熵大于等于预设值,则不对目标数据进行压缩。本申请中,在统计目标数据中的字节总数及每类字符的出现概率之后,需确定函数x*log2(x)在预设近似条件下的目标线性函数,也即将函数x*log2(x)转变为不含对数运算且逻辑更简单的目标线性函数,这样,便可以基于目标线性函数确定出不含对数运算的信息熵运算公式,继而可以在不进行复杂对数运算的情况下,计算出目标数据的目标信本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据压缩方法,其特征在于,包括:获取待压缩的目标数据;统计所述目标数据中的字节总数及每类字符的出现概率;确定函数x*log2(x)在预设近似条件下的目标线性函数;基于所述目标线性函数确定不含对数运算的信息熵运算公式;通过所述信息熵运算公式,基于所述字节总数及所述出现概率,计算所述目标数据的目标信息熵;判断所述目标信息熵是否小于预设值,若所述目标信息熵小于所述预设值,则对所述目标数据进行压缩,若所述目标信息熵大于等于所述预设值,则不对所述目标数据进行压缩。2.根据权利要求1所述的方法,其特征在于,所述确定函数x*log2(x)在预设近似条件下的目标线性函数,包括:确定函数x*log2(x)在所述预设近似条件下的所述目标线性函数;所述目标线性函数包括:y=x*k(x)+2(x
‑2k(x)
);其中,k(x)表示确定使得x的值介于[2
K
,2
K+1
)的K值的函数。3.根据权利要求2所述的方法,其特征在于,所述基于所述目标线性函数确定不含对数运算的信息熵运算公式,包括:基于所述目标线性函数确定不含对数运算的所述信息熵运算公式;所述信息熵运算公式包括:其中,H表示所述目标信息熵;N表示所述字节总数;M表示所述字符的总类型数;f(i)表示第i类字符的所述出现概率,其中i的取值范围是[0,M]。4.根据权利要求1所述的方法,其特征在于,所述确定函数x*log2(x)在预设近似条件下的目标线性函数,包括:确定函数x*log2(x)在所述预设近似条件下的所述目标线性函数;所述目标线性函数包括:y=x*k(x)+((2

a)x
‑2k(x)+1
);其中,k(x)表示确定使得x的值介于[2
K
,2
K+1
)的K值的函数;a表示调节参数。5.根据权利要求4所述的方法,其特征在于,还包括:基于1.5*2
K
的值确定所述调节参数的值。...

【专利技术属性】
技术研发人员:郭超吕涛陈祥黄运新
申请(专利权)人:深圳大普微电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1