一种数据压缩方法、解压方法、位宽确定方法和系统与流程
- 国知局
- 2024-10-09 14:46:41
本说明书涉及数据处理,特别涉及一种数据压缩方法、解压方法、位宽确定方法和系统。
背景技术:
1、浮点数,是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数,其广泛应用于科学计算、工程模拟、图像处理等诸多领域,浮点数的存储和传输占据了大量的存储空间和带宽,由于硬件性能有限,往往需要对浮点数进行压缩以便存储或传输,将压缩后的数据解压后再使用。因此浮点数的压缩技术尤为重要,然而目前对浮点数进行压缩的方案通用性较差。
2、有鉴于此,本说明书一些实施例提供了一种数据压缩方法、解压方法、位宽确定方法和系统,旨在提高数据压缩的通用性。
技术实现思路
1、本说明书一个或多个实施例提供了一种数据压缩方法,所述方法包括:获取位于单位区间的第一浮点数和第二浮点数,所述第一浮点数对应于第一存储位宽,所述第二浮点数对应于第二存储位宽;根据预设位宽将所述第一浮点数和所述第二浮点数转换为位于预设区间的第一整数和第二整数,所述预设位宽不大于所述第一存储位宽和所述第二存储位宽中较大值的一半;将所述第一整数与所述第二整数拼接,获得压缩数值。
2、根据本说明书一个或多个实施例提供的数据压缩方法,所述获取位于单位区间的第一浮点数和第二浮点数,包括:获取待压缩的两个浮点数,所述两个浮点数分别具有所述第一存储位宽和所述第二存储位宽;当所述两个浮点数中的至少一个不在单位区间时,对不在单位区间的浮点数进行单位化处理,进而得到均位于单位区间的所述第一浮点数和所述第二浮点数。
3、根据本说明书一个或多个实施例提供的数据压缩方法,所述两个浮点数中的任意一个为单精度类型或者双精度类型。
4、根据本说明书一个或多个实施例提供的数据压缩方法,所述单位区间为[0,1]。
5、根据本说明书一个或多个实施例提供的数据压缩方法,所述根据预设位宽将所述第一浮点数和所述第二浮点数转换为位于预设区间的第一整数和第二整数,包括:确定所述预设位宽能够表示的最大值;将所述第一浮点数和所述第二浮点数分别与所述最大值相乘,并将相乘后得到的数值分别向下取整,获得位于所述预设区间的与所述第一浮点数对应的第一整数和与所述第二浮点数对应的第二整数。
6、根据本说明书一个或多个实施例提供的数据压缩方法,所述将所述第一整数与所述第二整数拼接,获得压缩数据,包括:将所述第一整数左移所述预设位宽;将左移后的第一整数与所述第二整数相加;将相加后得到的整数转换为浮点数,获得所述压缩数值。
7、本说明书一个或多个实施例还提供了一种数据解压方法,所述方法包括:获取压缩数值,所述压缩数值基于本说明书一些实施例提供的数据压缩方法获得;根据预设位宽和所述预设位宽能够表示的最大值对所述压缩数值进行解压,获得第三浮点数和第四浮点数;基于所述第三浮点数和所述第四浮点数获得解压后的两个浮点数。
8、根据本说明书一个或多个实施例提供的数据解压方法,所述根据预设位宽和所述预设位宽表示的最大值对所述压缩数值进行解压,获得第三浮点数和第四浮点数,包括:将所述压缩数值转换为整数,获得压缩整数;基于所述预设位宽从所述压缩整数中提取第一整数和第二整数;将所述第一整数和所述第二整数分别除以所述最大值,获得与所述第一整数对应的第三浮点数和与所述第二整数对应的第四浮点数。
9、本说明书一个或多个实施例还提供了一种位宽确定方法,所述方法包括:确定两个以上候选位宽,所述候选位宽不大于待压缩浮点数的最大存储位宽的一半;对于所述两个以上候选位宽中的每一个候选位宽进行以下处理:获取多组数据组,每组数据组包括位于单位区间的第一浮点数和第二浮点数;基于该候选位宽,按照本说明书一些实施例提供的数据压缩方法对每组数据组中的第一浮点数和第二浮点数进行压缩,获得压缩数值,按照本说明书一些实施例提供的数据解压方法对所述压缩数值进行解压,获得与所述第一浮点数对应的第三浮点数和与所述第二浮点数对应的第四浮点数;根据该候选位宽对应的多组数据组中的每组数据组的第一浮点数和第三浮点数确定第一误差、根据第二浮点数和第四浮点数确定第二误差;根据各候选位宽对应的多组数据组的第一误差和第二误差,从所述两个以上候选位宽中确定用于对所述待压缩浮点数进行压缩的预设位宽。
10、根据本说明书一个或多个实施例提供的位宽确定方法,所述根据各候选位宽对应的多组数据组的第一误差和第二误差,从所述两个以上候选位宽中确定用于对所述待压缩浮点数进行压缩的预设位宽,包括:对于所述两个以上候选位宽中的每一个候选位宽进行以下处理:将该候选位宽对应的各组数据组的第一误差和第二误差分别与一个以上预设误差阈值进行比对,以确定该候选位宽对应于各预设误差阈值的错误率;根据各候选位宽对应于各预设误差阈值的错误率,从所述两个以上候选位宽中确定所述用于对所述待压缩浮点数进行压缩的预设位宽。
11、根据本说明书一个或多个实施例提供的位宽确定方法,所述将该候选位宽对应的各组数据组的第一误差和第二误差分别与一个以上预设误差阈值进行比对,以确定该候选位宽对应于各预设误差阈值的错误率,包括:对于所述一个以上预设误差阈值中的每一个预设误差阈值进行以下处理:将该候选位宽对应的各组数据组的第一误差和第二误差分别与该预设误差阈值进行比对,当数据组中的第一误差或第二误差大于或等于该预设误差阈值时,标记为一次错误计数;根据标记的错误计数,统计得到该候选位宽对应于该预设误差阈值的错误率。
12、根据本说明书一个或多个实施例提供的位宽确定方法,所述根据各候选位宽对应于各预设误差阈值的错误率,从所述两个以上候选位宽中确定所述用于对所述待压缩浮点数进行压缩的预设位宽,包括:确定各候选位宽对应于各预设误差阈值的错误率中,满足错误率条件的一个以上错误率对应的预设误差阈值中的最小值对应的一个或多个候选位宽;将所述一个或多个候选位宽中的最小值确定为所述用于对所述待压缩浮点数进行压缩的预设位宽。
13、本说明书一个或多个实施例还提供了一种数据压缩系统,所述系统包括:第一获取模块,用于获取位于单位区间的第一浮点数和第二浮点数,所述第一浮点数对应于第一存储位宽,所述第二浮点数对应于第二存储位宽;转换模块,用于根据预设位宽将所述第一浮点数和所述第二浮点数转换为位于预设区间的第一整数和第二整数,所述预设位宽不大于所述第一存储位宽和所述第二存储位宽中较大值的一半;拼接模块,用于将所述第一整数与所述第二整数拼接,获得压缩数值。
14、本说明书一个或多个实施例还提供了一种数据解压系统,所述系统包括:第二获取模块,用于获取压缩数值,所述压缩数值基于本说明书一些实施例提供的数据压缩方法获得;解压模块,用于根据预设位宽和所述预设位宽能够表示的最大值对所述压缩数值进行解压,获得第三浮点数和第四浮点数。
15、本说明书一个或多个实施例还提供了一种位宽确定系统,所述系统包括:候选位宽确定模块,用于确定两个以上候选位宽,所述候选位宽不大于待压缩浮点数的最大存储位宽的一半;误差确定模块,用于对于所述两个以上候选位宽中的每一个候选位宽进行以下处理:获取多组数据组,每组数据组包括位于单位区间的第一浮点数和第二浮点数;基于该候选位宽,按照本说明书一些实施例提供的数据压缩方法对每组数据组中的第一浮点数和第二浮点数进行压缩,获得压缩数值,按照本说明书一些实施例提供的数据解压方法对所述压缩数值进行解压,获得与所述第一浮点数对应的第三浮点数和与所述第二浮点数对应的第四浮点数;根据该候选位宽对应的多组数据组中的每组数据组的第一浮点数和第三浮点数确定第一误差、根据第二浮点数和第四浮点数确定第二误差;预设位宽确定模块,用于根据各候选位宽对应的多组数据组的第一误差和第二误差,从所述两个以上候选位宽中确定用于对所述待压缩浮点数进行压缩的预设位宽。
16、本说明书一个或多个实施例还提供了一种计算机程序产品,包括计算机程序,当所述计算机程序中的至少一部分被处理器执行时,能够实现本说明书一些实施例所述的数据压缩方法、数据解压方法或位宽确定方法。
本文地址:https://www.jishuxx.com/zhuanli/20241009/306473.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表