CN110912562A - 一种浮点数据处理方法、装置及存储介质 - Google Patents
一种浮点数据处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110912562A CN110912562A CN201811089279.XA CN201811089279A CN110912562A CN 110912562 A CN110912562 A CN 110912562A CN 201811089279 A CN201811089279 A CN 201811089279A CN 110912562 A CN110912562 A CN 110912562A
- Authority
- CN
- China
- Prior art keywords
- data
- floating point
- identifier
- target
- identification
- 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.)
- Pending
Links
- 238000007667 floating Methods 0.000 title claims abstract description 286
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000007906 compression Methods 0.000 claims abstract description 69
- 230000006835 compression Effects 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 56
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000001960 triggered effect Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 12
- 238000013144 data compression Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种浮点数据处理方法、装置及存储介质,方法包括:获得待压缩的第一浮点数据;按照浮点数据中字节所占比特位的数量,依次读取第一浮点数据中的第一目标数据,并对第一目标数据执行以下操作;获得第一目标数据对应的预设进制的数据值;基于数据值满足预设的压缩条件的判断,将第一目标数据压缩为第一数据,并为第一数据设置第一标识,第一数据和第一标识占用第一数量的比特位,第一标识表征其所在的数据为压缩后的数据;基于数据值不满足压缩条件的判断,为第一目标数据设置第二标识,第二标识表征其所在的数据为未压缩的数据,第一目标数据和第二标识占用第二数量的比特位;第一数量小于第一目标数据所占比特位数量。
Description
技术领域
本申请涉及数据压缩技术领域,特别涉及一种浮点数据处理方法、装置及存储介质。
背景技术
随着近年来人工智能技术的发展,浮点数据的存取与通信的规模越来越大,因此,对浮点数据的处理效率也会随之降低。
发明内容
有鉴于此,本申请的目的在于提供一种浮点数据处理方法、装置及存储介质,用以解决现有技术中浮点数据的处理效率较低的技术问题。
本申请提供了一种浮点数据处理方法,包括:
获得待压缩的第一浮点数据;
按照浮点数据中字节所占比特位的数量,依次读取所述第一浮点数据中的第一目标数据,并对所述第一目标数据执行以下操作;
获得所述第一目标数据对应的预设进制的数据值;
基于所述数据值满足预设的压缩条件的判断,将所述第一目标数据压缩为第一数据,并为所述第一数据设置第一标识,所述第一数据和所述第一标识占用第一数量的比特位,所述第一标识表征其所在的数据为压缩后的数据;
基于所述数据值不满足所述压缩条件的判断,为所述第一目标数据设置第二标识,所述第二标识表征其所在的数据为未压缩的数据,所述第一目标数据和所述第二标识占用第二数量的比特位;
其中,所述第一标识所占比特位的数量与所述第二标识所占比特位的数量相同,且,所述第一数量小于所述第一目标数据所占比特位数量,所述第二数量与所述第一目标数据所占比特位数量相同。
上述方法,优选的,还包括:
获得待解压的第二浮点数据;
按照所述第一标识或所述第二标识所占比特位的数量,读取所述第二浮点数据中的标识数据;
基于所述标识数据为预设的第一标识的判断,在所述第二浮点数据中读取所述第一数量的包含所述第一标识的比特位数据作为第二目标数据,将所述第二目标数据还原为第二数据,所述第二数据占用所述第二数量的比特位,返回继续在所述第二浮点数据剩余的数据中读取新的标识数据,直到所述第二浮点数据全部处理;
基于所述标识数据为预设的第二标识的判断,在所述第二浮点数据中读取所述第二数量的包含所述第二标识的比特位数据作为第三目标数据,删除所述第三目标数据中的第二标识,返回继续在所述第二浮点数据剩余的数据中读取新的标识数据,直到所述第二浮点数据全部处理。
上述方法,优选的,所述数据值满足预设的压缩条件,包括:
所述数据值小于或等于预设的第一阈值。
上述方法,优选的,所述第一数据作为所述第一标识占用1比特位;
相应的,为所述第一目标数据设置第二标识,包括:
将所述第一目标数据中的各比特位依次向右移动1比特位,并在左侧最高位填充第二标识,所述第二标识占用1比特位。
上述方法,优选的,还包括:
调整所述待压缩的第一浮点数据中的字节顺序,以使得所述第一浮点数据中的高位字节数据处于左侧。
上述方法,优选的,还包括:
调整所述待解压的第二浮点数据中的字节顺序,以使得所述第二浮点数据中的高位字节数据处于左侧。
上述方法,优选的,所述第一标识占用1比特位,所述第二标识占用1比特位;
其中,删除所述第三目标数据中的第二标识,包括:
将所述第三目标数据中的各比特位依次向左移动1比特位,并在右侧最低位填充预设值。
本申请还提供了一种浮点数据处理装置,包括:
第一获得单元,用于获得待压缩的第一浮点数据;
第一读取单元,用于按照浮点数据中字节所占比特位的数量,依次读取所述第一浮点数据中的第一目标数据,并对所述第一目标数据运行以下功能单元;
数据值获得单元,用于获得所述第一目标数据对应的预设进制的数据值;
第一判断单元,用于判断所述数据值是否满足预设的压缩条件,如果是,触发第一处理单元,否则,触发第二处理单元;
第一处理单元,用于将所述第一目标数据压缩为第一数据,并为所述第一数据设置第一标识,所述第一数据和所述第一标识占用第一数量的比特位,所述第一标识表征其所在的数据为压缩后的数据;
第二处理单元,用于为所述第一目标数据设置第二标识,所述第二标识表征其所在的数据为未压缩的数据,所述第一目标数据和所述第二标识占用第二数量的比特位;
其中,所述第一标识所占比特位的数量与所述第二标识所占比特位的数量相同,且所述第一数量小于所述第一目标数据所占比特位数量,所述第二数量与所述第一目标数据所所占比特位数量相同。
上述装置,优选的,还包括:
第二获得单元,用于获得待解压的第二浮点数据;
第二读取单元,用于按照所述第一标识或所述第二标识所占比特位的数量,读取所述第二浮点数据中的标识数据;
第二判断单元,用于判断所述标识数据是否为第一标识或第二标识,如果所述标识数据为第一标识,触发第三处理单元,如果所述标识数据为第二标识,触发第四处理单元;
第三处理单元,用于在所述第二浮点数据中读取所述第一数量的包含所述第一标识的比特位数据作为第二目标数据,将所述第二目标数据还原为第二数据,所述第二数据占用所述第二数量的比特位,返回继续运行所述第二读取单元在所述第二浮点数据剩余的数据中读取新的标识数据,直到所述第二浮点数据全部处理;
第四处理单元,用于在所述第二浮点数据中读取所述第二数量的包含所述第二标识的比特位数据作为第三目标数据,删除所述第三目标数据中的第二标识,返回继续运行所述第二读取单元在所述第二浮点数据剩余的数据中读取新的标识数据,直到所述第二浮点数据全部处理。
本申请还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的浮点数据处理方法。
由以上方案可知,本申请提供的一种浮点数据处理方法、装置及存储介质,通过对数据值满足压缩条件的浮点数据进行比特位压缩,使得浮点数据所占用的比特位减少,进而减少进行数据存储及通信等操作中的数据量,降低操作规模,进而提高对浮点数据的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例一提供的一种浮点数据处理方法的流程图;
图2为本申请实施例的示例图;
图3为本申请实施例二提供的一种浮点数据处理方法的流程图;
图4为本申请实施例三提供的一种浮点数据处理装置的结构示意图;
图5为本申请实施例四提供的一种浮点数据处理装置的结构示意图;
图6为本申请实施例五提供的一种电子设备的结构示意图;
图7为本申请实施例提供的一种存储介质的连接示意图;
图8为本申请实施例提供的一种处理器的连接示意图。
具体实施方式
对于人工智能AI(Artificial Intelligence)等应用领域,往往是含有大量值为固定值或近似某个固定值的数据,如为0或者近似为0的数据等。针对这种大量值为0或近似为0的数据,若可以简化压缩表示,则可以大幅度压缩浮点数据的数据量。
为解决以上问题,本申请中针对为0或近似为0的浮点数据,提出对固定或近似为固定值的浮点数据,采用较少的比特位表示该固定值的方案,极大的压缩了数据量,而对于其它值的比特位浮点数据,仍然可以采用原有的比特表示,不压缩也不增大,而可以选择牺牲某1个或几个比特位精度来表示其没有压缩,其他比特位数据仍然表示原有浮点数据的比特位,以便于数据还原。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本申请实施例一提供的一种浮点数据处理方法的实现流程图,适用于对各种精度的浮点数据进行数据处理,如对16比特位的半精度浮点数、32比特位的单精度浮点数、64比特位的双精度浮点数以及其他比特位如24比特位或者40比特位的浮点数据等各种精度的浮点数据进行压缩等。
在本实施例中,该方法可以包括以下步骤:
步骤101:获得待压缩的第一浮点数据。
其中,本实施例中的第一浮点数据可以理解为需要进行数据压缩的原始数据,如16比特位半精度、32比特位单精度或64比特位双精度的浮点数据等,这些数据在进行存储或者读取或者通信传输时往往因为数据量较大而影响效率,因此,本实施例中对这些浮点数据进行压缩处理,由此,首先获得这些待压缩的第一浮点数据。
需要说明的是,本实施例中可以通过对存储第一浮点数据的存储区域进行数据读取,进而获得待压缩的第一浮点数据;或者,本实施例中可以对通信传输过程中的浮点数据进行按位读取,以得到待压缩的第一浮点数据;等等。
步骤102:按照浮点数据中字节所占比特位的数量,依次读取第一浮点数据中的第一目标数据,并对第一目标数据执行后续的压缩处理步骤。
其中,本实施例中可以按照浮点数据中单个字节所占比特位的数量,如8位,来读取第一浮点数据中的第一目标数据,此时,每次读取到的第一目标数据均为8位比特位数据;或者,本实施例中可以按照浮点数据精度所对应的字节所占比特位的数量,如16位比特位、32位比特位或64比特位,来读取第一浮点数据中的第一目标数据,此时,每次读取到的第一目标数据均为16位、32位比特位数据或64比特位;等等。
需要说明的是,本实施例中在第一浮点数据中,每次读取一个第一目标数据后,通过依次对第一目标数据执行后续的压缩处理步骤的操作,以实现对第一浮点数据中每个第一目标数据的数据压缩处理。
具体的,本实施例中在依次读取第一目标数据时,是按照第一浮点数据中各字节数据的实际大小来读取的,例如,首先读取第一浮点数据中的高位字节数据,再读取低位字节数据,不论高位字节数据是否存储在第一浮点数据的大端字节位置还是小端字节位置。具体参考图2中所示,第一浮点数据0x1234,如果第一浮点数据以大端字节顺序存储,第一个字节0x12,第二个字节0x34,那么本实施例中可以由第一浮点数据的左侧字节开始读取第一目标数据,首先读取0x12;如果第一浮点数据以小端字节顺序存储,第一个字节0x34,第二个字节0x12,那么本实施例中可以由第一浮点数据的右侧字节开始读取第一目标数据,首先读取0x12,由此,本实施例中最先读取到的第一目标数据肯定为第一浮点数据中高位字节数据。
在实际应用中,为了提高数据读取效率,本实施例中可以首先调整第一浮点数据中的字节顺序,以使得第一浮点数据中的高位字节数据处于左侧,当然,如果第一浮点数据中高位字节数据原本就处于左侧,那么就不需要调整字节顺序,这样,本实施例中就可以从第一浮点数据中的左侧高位字节开始读取第一目标数据,不需要再去判断第一浮点数据时大端存储还是小端存储,也不需要反复挪动读取指针反复寻找合适位置,从而加快数据读取效率。
步骤103:获得第一目标数据对应的预设进制的数据值。
例如,本实施例中可以获取第一目标对应的十进制或八进制的数据值,而为了计算方便,以提高效率,本实施例中在实际计算中可以确定预设进制为十进制,也就是说,本实施例中获得第一目标数据对应的十进制的数据值。
步骤104:判断数据值是否满足预设的压缩条件,如果是,执行步骤105,否则,执行步骤106。
其中,本实施例中的压缩条件可以为数据值的大小处于一定的值范围,或者数据值大于一定阈值,或者数据值小于一定阈值,具体的,本实施例中可以将压缩条件设置为:数据值小于或等于预设的第一阈值,如2或4或5或10等。
步骤105:将第一目标数据压缩为第一数据,并为第一数据设置第一标识。
其中,第一数据和第一标识数据所占用的比特位的数量为第一数量,第一标识表征其所在的数据为压缩后的数据,且第一数量小于第一目标数据所占比特位数量,从而使得第一目标数据压缩成第一数据之后,减少数据所占比特位,降低数据量。
需要说明的是,第一数据为与第一目标数据在数值上至少近似相同的数据,如占用8比特位的第一目标数据0x01压缩为占比2比特位的第一数据01或者压缩为1比特位的第一数据0,并在高位设置第一标识0表征该数据为压缩后的数据。
步骤106:为第一目标数据设置第二标识。
其中,第二标识表征其所在数据为未压缩的数据,且第一目标数据和第二标识占用第二数量的比特位,且第一标识所占比特位的数量与第二标识所占比特位的数量相同,由此,便于读取第一标识和第二标识以区分数据是否被压缩。
而第二数量与第一目标数据所占比特位数据相同,也就是说,第一目标数据的数据值不满足压缩条件时,为了与经过压缩的数据进行区分,为第一目标数据设置第二标识,但第二标识不会增加第一目标数据所占用的比特位数量,从而不会增加数据量。
可见,本实施例中对待压缩的第一浮点数据中各个第一目标数据进行读取,并以此执行以上步骤103-步骤106中的压缩处理步骤,从而实现对第一浮点数据的压缩处理,而压缩的数据仍然为浮点数据。
由以上方案可知,本申请实施例一提供的一种浮点数据处理方法,通过对数据值满足压缩条件的浮点数据进行比特位压缩,使得浮点数据所占用的比特位减少,进而减少进行数据存储及通信等操作中的数据量,降低操作规模,进而提高对浮点数据的处理效率。
基于以上压缩方案,本申请实施例二还提供了一种浮点数据处理方法的实现流程图,适用于对以上压缩后的浮点数据进行解压还原处理。具体的,本实施例中的方法可以包括以下步骤,如图3中所示:
步骤301:获得待解压的第二浮点数据。
其中,第二浮点数据为经过图1中的压缩方案压缩后的浮点数据,本实施例中可以通过对存储第二浮点数据的存储区域进行数据读取,进而获得待解压的第二浮点数据;或者,本实施例中可以对通信传输过程中的浮点数据进行按位读取,以得到待解压的第二浮点数据;等等。
步骤302:按照第一标识或第二标识所占比特位的数量,读取第二浮点数据中的标识数据。
例如,第一标识和第二标识只占用2比特位,那么本实施例中在第二浮点数据中读取前两个比特位作为标识数据。
具体的,本实施例中在第二浮点数据中读取数据进行解压时,如读取标识数据或者后续的其他目标数据等,是按照第二浮点数据中各字节数据的实际大小来读取的,例如,首先读取第二浮点数据中的高位字节数据,再读取低位字节数据,不论高位字节数据是否存储在第二浮点数据的大端字节位置还是小端字节位置。
步骤303:判断标识数据为第一标识还是第二标识,如果标识数据为第一标识,那么执行步骤304,如果标识数据为第二标识,则执行步骤305。
其中,本实施例中可以将标识数据与预设的第一标识和第二标识分别进行比对,如果标识数据与第一标识相匹配,那么认为标识数据为第一标识,如果标识数据与第二标识相匹配,那么认为标识数据为第二标识。
步骤304:在第二浮点数据中读取第一数量的包含第一标识的比特位数据作为第二目标数据,将第二目标数据还原为第二数据,并返回步骤302继续在第二浮点数据剩余的数据中读取新的标识数据,直到第二浮点数据全部处理。
其中,第二数据可以与压缩之前的第一目标数据相同,也可能存在误差。而读取到的第二目标数据是包含第一标识在内的,也就是说,本实施例中在判断出标识数据为第一标识,确定出是经过压缩的数据,那么就读取包含第一标识的第一数量的比特位数据作为第二目标数据,认为该第二目标数据为经过压缩后的浮点数据,例如,第二目标数据可以为3比特位,这3比特位中包含2比特位的标识数据,之后,对第二目标数据进行解压还原,得到第二数据。
具体的,本实施例中在将第二目标数据还原为第二数据时,第二数据可以为预设的数据,且占用第二数量的比特位的数据,如由第二目标数据0,还原为0x00等,以至少近似与压缩之前的第一目标数据相同。
步骤305:在第二浮点数据中读取第二数量的包含第二标识的比特位数据作为第三目标数据,删除第三目标数据中的第二标识,并返回步骤302继续在第二浮点数据剩余的数据中读取新的标识数据,直到第二浮点数据全部处理。
其中,删除第二标识后的第三目标数据可能与压缩之前的第一目标数据相同,也可能存在误差。而读取到的第三目标数据是包含第二标识在内的,也就是说,本实施例中在判断出标识数据为第二标识,确定出之前并没有被压缩而只是设置了第二标识,那么就读取包含第二标识在内的第二数量的比特位数据作为第三目标数据,认为该第三目标数据就是设置了第二标识并未进行压缩的浮点数据,例如,第二目标数据可以为32比特位,这32比特位中包含1比特位的第二标识,之后,对第三目标数据删除其中的第二标识,即可还原得到原始数据或近似原始数据的数据。
可见,本实施例中是在第二浮点数据中按照读取到的标识数据来读取相应的目标数据,进而对目标数据进行解压还原或者标识删除,以最近似的还原得到原始数据;而在完成一个标识数据对应的目标数据的解压还原之后,再继续在第二浮点数据剩余的数据中读取新的标识数据,并以此来读取相应的目标数据,再进行还原或标识删除,以此类推,直到第二浮点数据中所有的数据全部被解压或者标识删除。
进一步的,在实际应用中,为了提高数据读取效率,本实施例中在获得待解压的第二浮点数据之后,可以首先调整第二浮点数据中的字节顺序,以使得第二浮点数据中的高位字节数据处于左侧,当然,如果第二浮点数据中高位字节数据原本就处于左侧,那么就不需要调整字节顺序,这样,本实施例中就可以从第二浮点数据中的左侧高位字节开始读取标识数据及后续的相应目标数据,不需要再去判断第二浮点数据时大端存储还是小端存储,也不需要反复挪动读取指针反复寻找合适位置,从而加快数据读取效率。
在一种实现方式中,本实施例在将第一目标数据压缩为第一数据时,可以直接将第一目标数据压缩为1比特位或者个位数的比特位的第一数据,相较于第一目标数据,第一数据的所占比特位明显减少,从而降低数据量;而第一数据可以直接作为第一标识来表征该第一数据是经过数据压缩的浮点数据,由此不需要额外增加第一数据所占比特位,进一步降低数量。
相应的,第二标识所占比特位的数量与第一标识所占比特位的数量相一致,例如,第二标识也是1比特位,具体的,本实施例中在判断出第一目标数据不满足压缩条件并需要为第一目标数据设置第二标识时,可以通过以下方式实现:
将第一目标数据中的各比特位依次向右移动第一数量的比特位,如1比特位,并在左侧最高位填充第二标识,当然,此时的第二标识占用1比特位。
基于以上压缩实现方式,本实施例中在删除第三目标数据中的第二标识时,可以通过以下方式实现:
将第三目标数据中的各比特位依次向左移动第一数量的比特位,如1比特位,并在右侧最低位填充预设值,如0或1,来得到还原后的浮点数据。
例如,对于浮点数据0.0000001,其十进制近似为0,即小于第一阈值5,那么将0.0000001直接压缩为1比特位的0,并以该0作为第一标识表征其是被压缩后数据,在还原时,按照标识数据的1比特位读取到0后,判断出为第一标识0,那么将读取到的第一目标数据0还原为0.0000000,虽然牺牲了一部分数据精度,但明显降低了数据量,为数据存取及数据通信中带来了高效的数据处理;
而以浮点数1.2345678为例,其十进制数据值明显远大于第一阈值5,不满足压缩条件,那么对原始值二进制表示为“0011 1111 1001 1110 0000 0110 0101 0001”设置第二标识1,最左侧bit[0]占用为1并损失最后1bit的尾数值为1的精度之后,表示为“10011111 1100 1111 0000 0011 0010 1000”,而在恢复还原时,左移比特位之后,最后1bit补0,恢复值表示为“0011 1111 1001 1110 0000 0110 0101 0000”,故而恢复之后的值变成了1.2345676。
再如,浮点数1.2345679,其十进制数据值明显远大于第一阈值5,不满足压缩条件,那么对原始值二进制表示为“0011 1111 1001 1110 0000 0110 0101 0010”设置第二标识1,最左侧bit[0]占用为1并损失最后1bit的尾数值为1的精度之后,表示为“1001 11111100 1111 0000 0011 0010 1001”,恢复时,左移比特位之后,最后1bit补0,恢复值表示为“0011 1111 1001 1110 0000 0110 0101 0010”,故而恢复之后的值仍然还是1.2345679。
参考图4,为本申请实施例三提供的一种浮点数据处理装置的结构示意图,该装置用于执行图1中所示的方法,适用于对各种精度的浮点数据进行数据处理,如对16比特位的半精度浮点数、32比特位的单精度浮点数、64比特位的双精度浮点数以及其他比特位如24比特位或者40比特位的浮点数据等各种精度的浮点数据进行压缩等。
在本实施例中,该装置可以包括以下结构:
第一获得单元401,用于获得待压缩的第一浮点数据。
其中,本实施例中的第一浮点数据可以理解为需要进行数据压缩的原始数据,如16比特位半精度、32比特位单精度或64比特位双精度的浮点数据等,这些数据在进行存储或者读取或者通信传输时往往因为数据量较大而影响效率,因此,本实施例中对这些浮点数据进行压缩处理,由此,首先获得这些待压缩的第一浮点数据。
需要说明的是,本实施例中第一获得单元401可以通过对存储第一浮点数据的存储区域进行数据读取,进而获得待压缩的第一浮点数据;或者,本实施例中第一获得单元401可以对通信传输过程中的浮点数据进行按位读取,以得到待压缩的第一浮点数据;等等。
第一读取单元402,用于按照浮点数据中字节所占比特位的数量,依次读取第一浮点数据中的第一目标数据,并对第一目标数据运行以下功能单元。
其中,本实施例中第一读取单元402可以按照浮点数据中单个字节所占比特位的数量,如8位,来读取第一浮点数据中的第一目标数据,此时,每次读取到的第一目标数据均为8位比特位数据;或者,本实施例中第一读取单元402可以按照浮点数据精度所对应的字节所占比特位的数量,如16位比特位、32位比特位或64比特位,来读取第一浮点数据中的第一目标数据,此时,第一读取单元402每次读取到的第一目标数据均为16位、32位比特位数据或64比特位;等等。
需要说明的是,本实施例中在第一浮点数据中,每次读取一个第一目标数据后,通过依次对第一目标数据运行后续的压缩处理功能单元的操作,以实现对第一浮点数据中每个第一目标数据的数据压缩处理。
具体的,本实施例中第一读取单元402在依次读取第一目标数据时,是按照第一浮点数据中各字节数据的实际大小来读取的,例如,首先读取第一浮点数据中的高位字节数据,再读取低位字节数据,不论高位字节数据是否存储在第一浮点数据的大端字节位置还是小端字节位置。具体参考图2中所示,第一浮点数据0x1234,如果第一浮点数据以大端字节顺序存储,第一个字节0x12,第二个字节0x34,那么本实施例中可以由第一浮点数据的左侧字节开始读取第一目标数据,首先读取0x12;如果第一浮点数据以小端字节顺序存储,第一个字节0x34,第二个字节0x12,那么本实施例中可以由第一浮点数据的右侧字节开始读取第一目标数据,首先读取0x12,由此,本实施例中最先读取到的第一目标数据肯定为第一浮点数据中高位字节数据。
在实际应用中,为了提高数据读取效率,本实施例中可以首先调整第一浮点数据中的字节顺序,以使得第一浮点数据中的高位字节数据处于左侧,当然,如果第一浮点数据中高位字节数据原本就处于左侧,那么就不需要调整字节顺序,这样,本实施例中就可以从第一浮点数据中的左侧高位字节开始读取第一目标数据,不需要再去判断第一浮点数据时大端存储还是小端存储,也不需要反复挪动读取指针反复寻找合适位置,从而加快数据读取效率。
数据值获得单元403,用于获得第一目标数据对应的预设进制的数据值。
例如,本实施例中可以获取第一目标对应的十进制或八进制的数据值,而为了计算方便,以提高效率,本实施例中在实际计算中可以确定预设进制为十进制,也就是说,本实施例中获得第一目标数据对应的十进制的数据值。
第一判断单元404,用于判断数据值是否满足预设的压缩条件,如果是,触发第一处理单元405,否则,触发第二处理单元406。
其中,本实施例中的压缩条件可以为数据值的大小处于一定的值范围,或者数据值大于一定阈值,或者数据值小于一定阈值,具体的,本实施例中可以将压缩条件设置为:数据值小于或等于预设的第一阈值,如2或4或5或10等。
第一处理单元405,用于将第一目标数据压缩为第一数据,并为第一数据设置第一标识。
其中,第一数据和第一标识数据所占用的比特位的数量为第一数量,第一标识表征其所在的数据为压缩后的数据,且第一数量小于第一目标数据所占比特位数量,从而使得第一目标数据压缩成第一数据之后,减少数据所占比特位,降低数据量。
需要说明的是,第一数据为与第一目标数据在数值上至少近似相同的数据,如占用8比特位的第一目标数据0x01压缩为占比2比特位的第一数据01或者压缩为1比特位的第一数据0,并在高位设置第一标识0表征该数据为压缩后的数据。
第二处理单元406,用于为第一目标数据设置第二标识。
其中,第二标识表征其所在数据为未压缩的数据,且第一目标数据和第二标识占用第二数量的比特位,且第一标识所占比特位的数量与第二标识所占比特位的数量相同,由此,便于读取第一标识和第二标识以区分数据是否被压缩。
而第二数量与第一目标数据所占比特位数据相同,也就是说,第一目标数据的数据值不满足压缩条件时,为了与经过压缩的数据进行区分,为第一目标数据设置第二标识,但第二标识不会增加第一目标数据所占用的比特位数量,从而不会增加数据量。
可见,本实施例中对待压缩的第一浮点数据中各个第一目标数据进行读取,并以此运行以上各个功能单元的压缩处理流程,从而实现对第一浮点数据的压缩处理,而压缩的数据仍然为浮点数据。
由以上方案可知,本申请实施例三提供的一种浮点数据处理装置,通过对数据值满足压缩条件的浮点数据进行比特位压缩,使得浮点数据所占用的比特位减少,进而减少进行数据存储及通信等操作中的数据量,降低操作规模,进而提高对浮点数据的处理效率。
基于以上压缩方案,本实施例四还提供了一种浮点数据处理装置的结构示意图,适用于对以上压缩后的浮点数据进行解压还原处理,具体的,本实施例中,该装置可以包括以下结构,如图5中所示:
第二获得单元501,用于获得待解压的第二浮点数据。
其中,第二浮点数据为经过图4中的压缩方案压缩后的浮点数据,本实施例中第二获得单元501可以通过对存储第二浮点数据的存储区域进行数据读取,进而获得待解压的第二浮点数据;或者,本实施例中第二获得单元501可以对通信传输过程中的浮点数据进行按位读取,以得到待解压的第二浮点数据;等等。
第二读取单元502,用于按照第一标识或第二标识所占比特位的数量,读取第二浮点数据中的标识数据。
例如,第一标识和第二标识只占用2比特位,那么本实施例中在第二浮点数据中读取前两个比特位作为标识数据。
具体的,本实施例中第二读取单元502在第二浮点数据中读取数据进行解压时,如读取标识数据或者后续的其他目标数据等,是按照第二浮点数据中各字节数据的实际大小来读取的,例如,首先读取第二浮点数据中的高位字节数据,再读取低位字节数据,不论高位字节数据是否存储在第二浮点数据的大端字节位置还是小端字节位置。
第二判断单元503,用于判断标识数据是否为第一标识或第二标识,如果标识数据为第一标识,触发第三处理单元504,如果标识数据为第二标识,触发第四处理单元505。
其中,本实施例中第二判断单元503可以将标识数据与预设的第一标识和第二标识分别进行比对,如果标识数据与第一标识相匹配,那么认为标识数据为第一标识,如果标识数据与第二标识相匹配,那么认为标识数据为第二标识。
第三处理单元504,用于在第二浮点数据中读取第一数量的包含第一标识的比特位数据作为第二目标数据,将第二目标数据还原为第二数据,返回继续运行第二读取单元502在第二浮点数据剩余的数据中读取新的标识数据,直到第二浮点数据全部处理。
其中,第二数据可以与压缩之前的第一目标数据相同,也可能存在误差。而读取到的第二目标数据是包含第一标识在内的,也就是说,本实施例中在判断出标识数据为第一标识,确定出是经过压缩的数据,那么就读取包含第一标识的第一数量的比特位数据作为第二目标数据,认为该第二目标数据为经过压缩后的浮点数据,例如,第二目标数据可以为3比特位,这3比特位中包含2比特位的标识数据,之后,对第二目标数据进行解压还原,得到第二数据。
具体的,本实施例中在将第二目标数据还原为第二数据时,第二数据可以为预设的数据,且占用第二数量的比特位的数据,如由第二目标数据0,还原为0x00等,以至少近似与压缩之前的第一目标数据相同。
第四处理单元505,用于在第二浮点数据中读取第二数量的包含第二标识的比特位数据作为第三目标数据,删除第三目标数据中的第二标识,返回继续运行第二读取单元502在第二浮点数据剩余的数据中读取新的标识数据,直到第二浮点数据全部处理。
其中,删除第二标识后的第三目标数据可能与压缩之前的第一目标数据相同,也可能存在误差。而读取到的第三目标数据是包含第二标识在内的,也就是说,本实施例中在判断出标识数据为第二标识,确定出之前并没有被压缩而只是设置了第二标识,那么就读取包含第二标识在内的第二数量的比特位数据作为第三目标数据,认为该第三目标数据就是设置了第二标识并未进行压缩的浮点数据,例如,第二目标数据可以为32比特位,这32比特位中包含1比特位的第二标识,之后,对第三目标数据删除其中的第二标识,即可还原得到原始数据或近似原始数据的数据。
可见,本实施例中是在第二浮点数据中按照读取到的标识数据来读取相应的目标数据,进而对目标数据进行解压还原或者标识删除,以最近似的还原得到原始数据;而在完成一个标识数据对应的目标数据的解压还原之后,再继续在第二浮点数据剩余的数据中读取新的标识数据,并以此来读取相应的目标数据,再进行还原或标识删除,以此类推,直到第二浮点数据中所有的数据全部被解压或者标识删除。
进一步的,在实际应用中,为了提高数据读取效率,本实施例中在获得待解压的第二浮点数据之后,可以首先调整第二浮点数据中的字节顺序,以使得第二浮点数据中的高位字节数据处于左侧,当然,如果第二浮点数据中高位字节数据原本就处于左侧,那么就不需要调整字节顺序,这样,本实施例中就可以从第二浮点数据中的左侧高位字节开始读取标识数据及后续的相应目标数据,不需要再去判断第二浮点数据时大端存储还是小端存储,也不需要反复挪动读取指针反复寻找合适位置,从而加快数据读取效率。
参考图6,为本申请实施例五提供的一种电子设备的结构示意图,该电子设备可以为具有数据计算能力的计算机或服务器等设备。
在本实施例中,该电子设备中可以有:
存储器601,用于存储应用程序及应用程序运行所产生的数据。
其中,存储器601可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
处理器602,用于执行应用程序,以实现功能:获得待压缩的第一浮点数据;按照浮点数据中字节所占比特位的数量,依次读取第一浮点数据中的第一目标数据,并对第一目标数据执行以下操作;获得第一目标数据对应的预设进制的数据值;基于数据值满足预设的压缩条件的判断,将第一目标数据压缩为第一数据,并为第一数据设置第一标识,第一数据和第一标识占用第一数量的比特位,第一标识表征其所在的数据为压缩后的数据;基于数据值不满足压缩条件的判断,为第一目标数据设置第二标识,第二标识表征其所在的数据为未压缩的数据,第一目标数据和第二标识占用第二数量的比特位。
其中,第一标识所占比特位的数量与第二标识所占比特位的数量相同,且,第一数量小于第一目标数据所占比特位数量,第二数量与第一目标数据所占比特位数量相同。
进一步的,处理器602还可以执行应用程序,以实现功能:获得待解压的第二浮点数据;按照第一标识或第二标识所占比特位的数量,读取第二浮点数据中的标识数据;基于标识数据为预设的第一标识的判断,在第二浮点数据中读取第一数量的包含第一标识的比特位数据作为第二目标数据,将第二目标数据还原为第二数据,第二数据占用第二数量的比特位,返回继续在第二浮点数据剩余的数据中读取新的标识数据,直到第二浮点数据全部处理;基于标识数据为预设的第二标识的判断,在第二浮点数据中读取第二数量的包含第二标识的比特位数据作为第三目标数据,删除第三目标数据中的第二标识,返回继续在第二浮点数据剩余的数据中读取新的标识数据,直到第二浮点数据全部处理。
具体的,处理器602中包含内核,由内核去存储器中调取相应的程序单元,内核可以设置一个或多个,通过调整内核参数来执行以上应用程序,实现相应功能。
由以上方案可知,本申请实施例五提供的一种电子设备,通过对数据值满足压缩条件的浮点数据进行比特位压缩,使得浮点数据所占用的比特位减少,进而减少进行数据存储及通信等操作中的数据量,降低操作规模,进而提高对浮点数据的处理效率。
本申请实施例提供了一种存储介质,如图7中所示,该存储介质处于设备上,如图6所示的电子设备上,而该存储介质上存储有程序,该程序运行时控制该存储介质所在的设备执行图1和图3中所描述或展示的浮点数据处理方法。
本发明实施例提供了一种处理器,如图8中所示,该处理器用于运行程序,该程序可以为图7所示的存储介质中存储的程序,由此,处理器通过运行程序执行图1和图3中所描述或展示的浮点数据处理方法。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获得待压缩的第一浮点数据;按照浮点数据中字节所占比特位的数量,依次读取第一浮点数据中的第一目标数据,并对第一目标数据执行以下操作;获得第一目标数据对应的预设进制的数据值;基于数据值满足预设的压缩条件的判断,将第一目标数据压缩为第一数据,并为第一数据设置第一标识,第一数据和第一标识占用第一数量的比特位,第一标识表征其所在的数据为压缩后的数据;基于数据值不满足压缩条件的判断,为第一目标数据设置第二标识,第二标识表征其所在的数据为未压缩的数据,第一目标数据和第二标识占用第二数量的比特位;
以及
获得待解压的第二浮点数据;按照第一标识或第二标识所占比特位的数量,读取第二浮点数据中的标识数据;基于标识数据为预设的第一标识的判断,在第二浮点数据中读取第一数量的包含第一标识的比特位数据作为第二目标数据,将第二目标数据还原为第二数据,第二数据占用第二数量的比特位,返回继续在第二浮点数据剩余的数据中读取新的标识数据,直到第二浮点数据全部处理;基于标识数据为预设的第二标识的判断,在第二浮点数据中读取第二数量的包含第二标识的比特位数据作为第三目标数据,删除第三目标数据中的第二标识,返回继续在第二浮点数据剩余的数据中读取新的标识数据,直到第二浮点数据全部处理。
以下对本实施例中的方案以C代码实现进行举例说明:
本实施例中通过以下压缩函数实现图1-图3中的压缩及还原方案,如下压缩C代码所示:
其中,bit[0]固定赋值为值1,表示这是一个有效的浮点数,前面的bit[0]==0则表示丢弃的浮点数,由于这里占用了1bit,只剩下31bit来表示32bit的浮点数,必然需要损失1bit的数据精度,本实施例中采用丢弃浮点数的尾数的最后1bit来实现(即右移1bit),这样可以达到最小损失精度(但仍然可能会有损失)。以下举例说明(以单精度浮点数为例,双精度浮点数类似):
例1:浮点数1.2345678,原始值二进制表示为“0011 1111 1001 1110 0000 01100101 0001”,bit[0]占用为1并损失最后1bit的尾数值为1的精度之后,压缩值表示为“10011111 1100 1111 0000 0011 0010 1000”,恢复时,最后1bit补0,恢复值表示为“0011 11111001 1110 0000 0110 0101 0000”,故而恢复之后的值变成了1.2345676,即对于浮点数1.2345678,采用本实施例中的压缩方案会造成一定的精度损失.
例2:浮点数1.2345679,原始值二进制表示为“0011 1111 1001 1110 0000 01100101 0010”,bit[0]占用为1并损失最后1bit的尾数值为1的精度之后,压缩值表示为“10011111 1100 1111 0000 0011 0010 1001”,恢复时,最后1bit补0,恢复值表示为“0011 11111001 1110 0000 0110 0101 0010”,故而恢复之后的值仍然还是1.2345679,即对于浮点数1.2345679,采用本实施例中的压缩方案不会造成精度损失。*/
而解压C代码如下:
为了验证本发明的优势,本实施例采用一样的计算环境(主要是CPU和内存完全一样,CPU都是Intel Core i5CPU 750at 2.67GHz,内存都是8GB of DDR3),对实际商用AI数据进行压缩对比实验。实验结果如下表所示:
表1本实施例中的压缩算法与传统压缩算法对比表
其中,a是本实施例压缩算法的损失因子。
从以上的实验结果可以看出,本申请可以较好地解决一般压缩算法所不能同时满足压缩比、压缩效率、调整压缩比、流数据即位处理四项要求的问题。
当然,本申请的出发点就是为了解决特定应用领域下特定浮点数数据特征的数据压缩问题。因此,本申请仅限于0值和近0值数据占比很大的情况适用,对于一般的应用场景并不适用。对于数据值分布为极端的情况下,采用本申请进行数据压缩处理,数据不但压缩率为0,反而损失了浮点数尾数的1bit精度。
另外,虽然本申请的实验数据是单精度浮点数据,实际上,本发明对于处理双精度浮点数据也是同样适用的,而且,同等数据条件下,双精度浮点压缩比会更高(0值数据对单精度浮点数压缩比为1/32,对双精度浮点数压缩比为1/64)、损失精度会更小(单精度浮点数尾数是23bit,双精度浮点数尾数是52bit,同样损失1bit精度,所以损失的相对精度后者更小些)。
可见,本申请中可以采用0值浮点数据简化表示以达到数据压缩的技术思路:具体用1bit值为0来表示要压缩的浮点数,同时用1bit值为1表示该浮点数不压缩;并设定一个值,绝对值小于等于该值的浮点数视为0值;而不压缩的浮点数,丢弃尾数的最小位,从而可以少用1bit就能表示该浮点数的近似值。同时,单精度浮点数和双精度浮点数以及16bit浮点数都适用本申请中的压缩方案。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种浮点数据处理方法、装置及存储介质进行了详细介绍,对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种浮点数据处理方法,其特征在于,包括:
获得待压缩的第一浮点数据;
按照浮点数据中字节所占比特位的数量,依次读取所述第一浮点数据中的第一目标数据,并对所述第一目标数据执行以下操作;
获得所述第一目标数据对应的预设进制的数据值;
基于所述数据值满足预设的压缩条件的判断,将所述第一目标数据压缩为第一数据,并为所述第一数据设置第一标识,所述第一数据和所述第一标识占用第一数量的比特位,所述第一标识表征其所在的数据为压缩后的数据;
基于所述数据值不满足所述压缩条件的判断,为所述第一目标数据设置第二标识,所述第二标识表征其所在的数据为未压缩的数据,所述第一目标数据和所述第二标识占用第二数量的比特位;
其中,所述第一标识所占比特位的数量与所述第二标识所占比特位的数量相同,且,所述第一数量小于所述第一目标数据所占比特位数量,所述第二数量与所述第一目标数据所占比特位数量相同。
2.根据权利要求1所述的方法,其特征在于,还包括:
获得待解压的第二浮点数据;
按照所述第一标识或所述第二标识所占比特位的数量,读取所述第二浮点数据中的标识数据;
基于所述标识数据为预设的第一标识的判断,在所述第二浮点数据中读取所述第一数量的包含所述第一标识的比特位数据作为第二目标数据,将所述第二目标数据还原为第二数据,所述第二数据占用所述第二数量的比特位,返回继续在所述第二浮点数据剩余的数据中读取新的标识数据,直到所述第二浮点数据全部处理;
基于所述标识数据为预设的第二标识的判断,在所述第二浮点数据中读取所述第二数量的包含所述第二标识的比特位数据作为第三目标数据,删除所述第三目标数据中的第二标识,返回继续在所述第二浮点数据剩余的数据中读取新的标识数据,直到所述第二浮点数据全部处理。
3.根据权利要求1或2所述的方法,其特征在于,所述数据值满足预设的压缩条件,包括:
所述数据值小于或等于预设的第一阈值。
4.根据权利要求1或2所述的方法,其特征在于,所述第一数据作为所述第一标识占用1比特位;
相应的,为所述第一目标数据设置第二标识,包括:
将所述第一目标数据中的各比特位依次向右移动1比特位,并在左侧最高位填充第二标识,所述第二标识占用1比特位。
5.根据权利要求1所述的方法,其特征在于,还包括:
调整所述待压缩的第一浮点数据中的字节顺序,以使得所述第一浮点数据中的高位字节数据处于左侧。
6.根据权利要求2所述的方法,其特征在于,还包括:
调整所述待解压的第二浮点数据中的字节顺序,以使得所述第二浮点数据中的高位字节数据处于左侧。
7.根据权利要求2所述的方法,其特征在于,所述第一标识占用1比特位,所述第二标识占用1比特位;
其中,删除所述第三目标数据中的第二标识,包括:
将所述第三目标数据中的各比特位依次向左移动1比特位,并在右侧最低位填充预设值。
8.一种浮点数据处理装置,其特征在于,包括:
第一获得单元,用于获得待压缩的第一浮点数据;
第一读取单元,用于按照浮点数据中字节所占比特位的数量,依次读取所述第一浮点数据中的第一目标数据,并对所述第一目标数据运行以下功能单元;
数据值获得单元,用于获得所述第一目标数据对应的预设进制的数据值;
第一判断单元,用于判断所述数据值是否满足预设的压缩条件,如果是,触发第一处理单元,否则,触发第二处理单元;
第一处理单元,用于将所述第一目标数据压缩为第一数据,并为所述第一数据设置第一标识,所述第一数据和所述第一标识占用第一数量的比特位,所述第一标识表征其所在的数据为压缩后的数据;
第二处理单元,用于为所述第一目标数据设置第二标识,所述第二标识表征其所在的数据为未压缩的数据,所述第一目标数据和所述第二标识占用第二数量的比特位;
其中,所述第一标识所占比特位的数量与所述第二标识所占比特位的数量相同,且所述第一数量小于所述第一目标数据所占比特位数量,所述第二数量与所述第一目标数据所所占比特位数量相同。
9.根据权利要求8所述的装置,其特征在于,还包括:
第二获得单元,用于获得待解压的第二浮点数据;
第二读取单元,用于按照所述第一标识或所述第二标识所占比特位的数量,读取所述第二浮点数据中的标识数据;
第二判断单元,用于判断所述标识数据是否为第一标识或第二标识,如果所述标识数据为第一标识,触发第三处理单元,如果所述标识数据为第二标识,触发第四处理单元;
第三处理单元,用于在所述第二浮点数据中读取所述第一数量的包含所述第一标识的比特位数据作为第二目标数据,将所述第二目标数据还原为第二数据,所述第二数据占用所述第二数量的比特位,返回继续运行所述第二读取单元在所述第二浮点数据剩余的数据中读取新的标识数据,直到所述第二浮点数据全部处理;
第四处理单元,用于在所述第二浮点数据中读取所述第二数量的包含所述第二标识的比特位数据作为第三目标数据,删除所述第三目标数据中的第二标识,返回继续运行所述第二读取单元在所述第二浮点数据剩余的数据中读取新的标识数据,直到所述第二浮点数据全部处理。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的浮点数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811089279.XA CN110912562A (zh) | 2018-09-18 | 2018-09-18 | 一种浮点数据处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811089279.XA CN110912562A (zh) | 2018-09-18 | 2018-09-18 | 一种浮点数据处理方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110912562A true CN110912562A (zh) | 2020-03-24 |
Family
ID=69812859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811089279.XA Pending CN110912562A (zh) | 2018-09-18 | 2018-09-18 | 一种浮点数据处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110912562A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117220687A (zh) * | 2023-03-01 | 2023-12-12 | 山东华科信息技术有限公司 | 分布式能源并网监测的数据解压缩方法 |
TWI837000B (zh) * | 2022-05-26 | 2024-03-21 | 國立清華大學 | 一種浮點數壓縮方法、運算裝置及電腦可讀取儲存媒介 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10173934A (ja) * | 1996-12-12 | 1998-06-26 | Dainippon Screen Mfg Co Ltd | 2値画像データの圧縮装置およびその方法 |
US20050071151A1 (en) * | 2003-09-30 | 2005-03-31 | Ali-Reza Adl-Tabatabai | Compression-decompression mechanism |
CN1926511A (zh) * | 2004-03-10 | 2007-03-07 | Arm有限公司 | 在数据字内插入比特 |
US7599975B1 (en) * | 2005-03-04 | 2009-10-06 | Nvidia Corporation | Decompression of compressed 16 bit data |
US20130007076A1 (en) * | 2011-06-30 | 2013-01-03 | Samplify Systems, Inc. | Computationally efficient compression of floating-point data |
US20150236714A1 (en) * | 2014-02-14 | 2015-08-20 | Electronics And Telecommunications Research Institute | Method and device for compressing digital data |
CN107077328A (zh) * | 2014-09-30 | 2017-08-18 | 国际商业机器公司 | 用于从压缩十进制格式转换为十进制浮点格式的机器指令 |
-
2018
- 2018-09-18 CN CN201811089279.XA patent/CN110912562A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10173934A (ja) * | 1996-12-12 | 1998-06-26 | Dainippon Screen Mfg Co Ltd | 2値画像データの圧縮装置およびその方法 |
US20050071151A1 (en) * | 2003-09-30 | 2005-03-31 | Ali-Reza Adl-Tabatabai | Compression-decompression mechanism |
CN1926511A (zh) * | 2004-03-10 | 2007-03-07 | Arm有限公司 | 在数据字内插入比特 |
US7599975B1 (en) * | 2005-03-04 | 2009-10-06 | Nvidia Corporation | Decompression of compressed 16 bit data |
US20130007076A1 (en) * | 2011-06-30 | 2013-01-03 | Samplify Systems, Inc. | Computationally efficient compression of floating-point data |
US20150236714A1 (en) * | 2014-02-14 | 2015-08-20 | Electronics And Telecommunications Research Institute | Method and device for compressing digital data |
CN107077328A (zh) * | 2014-09-30 | 2017-08-18 | 国际商业机器公司 | 用于从压缩十进制格式转换为十进制浮点格式的机器指令 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI837000B (zh) * | 2022-05-26 | 2024-03-21 | 國立清華大學 | 一種浮點數壓縮方法、運算裝置及電腦可讀取儲存媒介 |
CN117220687A (zh) * | 2023-03-01 | 2023-12-12 | 山东华科信息技术有限公司 | 分布式能源并网监测的数据解压缩方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8090027B2 (en) | Data compression using an arbitrary-sized dictionary | |
CN114244373B (zh) | Lz系列压缩算法编解码速度优化方法 | |
US10268380B2 (en) | Methods, devices and systems for semantic-value data compression and decompression | |
US7492290B1 (en) | Alternative encoding for LZSS output | |
US10416915B2 (en) | Assisting data deduplication through in-memory computation | |
US20180205393A1 (en) | Encoding method and apparatus | |
US9094039B2 (en) | Efficient deflate decompression | |
WO2009005758A2 (en) | System and method for compression processing within a compression engine | |
US8886616B2 (en) | Blocklet pattern identification | |
EP3295568B1 (en) | Improved compressed caching in a virtual memory system | |
US9362948B2 (en) | System, method, and computer program product for saving and restoring a compression/decompression state | |
CN110912562A (zh) | 一种浮点数据处理方法、装置及存储介质 | |
CN112070652A (zh) | 数据压缩、解压方法、可读存储介质和电子设备 | |
CN110419036B (zh) | 数据压缩方法、设备与计算设备 | |
US20190379393A1 (en) | Dynamic dictionary-based data symbol encoding | |
US20230004790A1 (en) | Neural network accelerator and operating method thereof | |
CN108053034B (zh) | 模型参数处理方法、装置、电子设备及存储介质 | |
CN108880559B (zh) | 数据压缩方法、数据解压缩方法、压缩设备及解压缩设备 | |
CN113630125A (zh) | 数据压缩、编码解压缩方法、装置、电子设备及存储介质 | |
CN115955248A (zh) | 一种数据压缩方法、装置及电子设备和存储介质 | |
US20170019125A1 (en) | Data compression device and data compression method | |
CN110888918A (zh) | 相似数据检测方法及装置、计算机设备和存储介质 | |
US20200119747A1 (en) | Decompression Engine for Executable Microcontroller Code | |
CN107783990B (zh) | 一种数据压缩方法及终端 | |
CN114024551A (zh) | 数据无损压缩方法、系统、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200324 |