CN112152634B - 分块压缩编码方法、装置、计算机设备及可读存储介质 - Google Patents
分块压缩编码方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN112152634B CN112152634B CN202011017714.5A CN202011017714A CN112152634B CN 112152634 B CN112152634 B CN 112152634B CN 202011017714 A CN202011017714 A CN 202011017714A CN 112152634 B CN112152634 B CN 112152634B
- Authority
- CN
- China
- Prior art keywords
- data
- binary
- bit width
- block
- data block
- 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.)
- Active
Links
- 238000007906 compression Methods 0.000 title claims abstract description 99
- 230000006835 compression Effects 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims abstract description 46
- 239000011159 matrix material Substances 0.000 claims description 50
- 238000004590 computer program Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 101100517651 Caenorhabditis elegans num-1 gene Proteins 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
- H04L1/0058—Block-coded modulation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了分块压缩编码方法、装置、计算机设备及可读存储介质,该方法中,首先获取原始数据集,提取原始数据集中所有数据的数值部分,组成待压缩数据集;按照预设的数据长度,将待压缩数据集划分为多个数据块,获取任一数据块的标志数据及标志位宽,针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩。上述方法中使用每个数据块各自对应的标志位宽,将所有数据转换为二进制数,压缩得到的数据将占用较小内存。
Description
技术领域
本申请涉及数据压缩技术领域,尤其涉及分块压缩编码方法、装置、计算机设备及可读存储介质。
背景技术
神经网络模型中存在大量的权重数据,这些权重数据都是以二进制格式存储在计算机中。目前,为了减少这些权重数据所需的存储空间,常使用压缩编码的方式,减少所有权重数据占用的二进制位宽,以减小最终所需的内存空间。
一种常见的压缩编码方式为二进制标记(binary-mask)压缩编码,其压缩编码过程中需要建立两张表格,分别为记录表格和数据表格,参见图1,图中的表1即为记录表格,表2为数据表格。在针对原始数据集进行压缩编码时,若原始数据集中的某一数据为0,则在表1的对应位置中记0;若不为0,则在表1的对应位置中记1,并同时将该数据记入表2中。所有数据记入完成后,表1中的每个数据只会是0或1,仅占用一个比特的位宽,而表2中数据的二进制位宽与原本所占用的位宽一致,并未得到压缩。因此,原始数据集中0的占比越大,表2中的数据就会越少,binary-mask压缩编码的压缩效果则越好。
但是,神经网络模型的权重数据中,有很多都是集中在0附近但不为0的数据,这些数据的特点是:数值小、占比高且不为0,这种情况下,若使用binary-mask压缩编码对这些数据进行压缩,其压缩效果将变差。
发明内容
为了解决因神经网络权重数据大多为集中在0附近但不为0的数据,从而导致使用binary-mask压缩编码的压缩效果较差的问题,本申请通过以下实施例公开了分块压缩编码方法、装置、计算机设备及可读存储介质。
本申请第一方面公开了一种分块压缩编码方法,所述方法包括:
获取原始数据集,所述原始数据集中的任一数据为带符号二进制数,所述带符号二进制数包括符号部分及数值部分;
提取所述原始数据集中所有数据的数值部分,组成待压缩数据集;
按照预设的数据长度,将所述待压缩数据集划分为多个数据块,任一所述数据块中至少包含两个数据的数值部分;
获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中二进制位宽最大的数据,所述标志位宽为所述标志数据的二进制位宽;
针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩。
可选的,在所述针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩之后,所述方法还包括:
针对任一所述二进制数据块,将其包含的所有二进制数按照比特位置进行纵向排列,获取对应的二进制矩阵;
针对所述二进制矩阵中预设的目标行进行压缩,所述目标行为零占比高的行。
可选的,针对所述二进制矩阵中预设的目标行进行压缩,包括:
获取所述二进制矩阵的总行数;
判断所述总行数为偶数还是为奇数;
若所述总行数为偶数,则将所述二进制矩阵的前n/2行设定为所述目标行;若所述总行数为奇数,则将所述二进制矩阵的前(n-1)/2行设定为所述目标行,其中,n为所述总行数;
针对所述目标行的所有数据进行压缩。
可选的,针对所述二进制矩阵中预设的目标行进行压缩,包括:
获取所述二进制矩阵每行数据中零的占比值;
将零的占比值高于预设阈值的行设定为所述目标行;
针对所述目标行的所有数据进行压缩。
可选的,所述针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,包括:
针对任一所述数据块,分别将每一个位宽大于其标志位宽的二进制数作为待处理二进制数;
将位于所述待处理二进制数前端的零删除,使得所述待处理二进制数的位宽等于所述标志位宽。
可选的,所述按照预设的数据长度,将所述待压缩数据集划分为多个数据块,包括:
根据所述预设的数据长度,对所述待压缩数据集进行划分,获取多个所述数据块,其中,若划分所得的最后一个数据块的数据长度短于所述预设的数据长度,则对所述最后一个数据块进行补零操作。
本申请第二方面公开了一种分块压缩编码装置,所述装置应用于本申请第一方面所述的分块压缩编码方法,所述分块压缩编码装置包括:
原始数据集获取模块,用于获取原始数据集,所述原始数据集中的任一数据为带符号二进制数,所述带符号二进制数包括符号部分及数值部分;
待压缩数据集生成模块,用于提取所述原始数据集中所有数据的数值部分,组成待压缩数据集;
数据集划分模块,用于按照预设的数据长度,将所述待压缩数据集划分为多个数据块,任一所述数据块中至少包含两个数据的数值部分;
标志数据获取模块,用于获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中二进制位宽最大的数据,所述标志位宽为所述标志数据的二进制位宽;
二进制转换模块,用于针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩。
可选的,所述分块压缩编码装置还包括:
矩阵排列模块,用于在所述二进制转换模块针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩之后,针对任一所述二进制数据块,将其包含的所有二进制数按照比特位置进行纵向排列,获取对应的二进制矩阵;
二次压缩模块,用于针对所述二进制矩阵中预设的目标行进行压缩,所述目标行为零占比高的行。
可选的,所述二次压缩模块包括:
行数获取单元,用于获取所述二进制矩阵的总行数;
奇偶判断单元,用于判断所述总行数为偶数还是为奇数;
第一目标行设定单元,用于若所述总行数为偶数,则将所述二进制矩阵的前n/2行设定为所述目标行;若所述总行数为奇数,则将所述二进制矩阵的前(n-1)/2行设定为所述目标行,其中,n为所述总行数;
第一压缩单元,用于针对所述目标行的所有数据进行压缩。
可选的,所述二次压缩模块包括:
零占比获取单元,用于获取所述二进制矩阵每行数据中零的占比值;
第二目标行设定单元,用于将零的占比值高于预设阈值的行设定为所述目标行;
第二压缩单元,用于针对所述目标行的所有数据进行压缩。
可选的,所述二进制转换模块在针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数时,通过以下单元执行:
待处理二进制数提取单元,用于针对任一所述数据块,分别将每一个位宽大于其标志位宽的二进制数作为待处理二进制数;
去零单元,用于将位于所述待处理二进制数前端的零删除,使得所述待处理二进制数的位宽等于所述标志位宽。
可选的,所述数据集划分模块包括:
划分单元,用于根据所述预设的数据长度,对所述待压缩数据集进行划分,获取多个所述数据块,其中,若划分所得的最后一个数据块的数据长度短于所述预设的数据长度,则对所述最后一个数据块进行补零操作。
本申请第三方面公开了一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如本申请第一方面所述的分块压缩编码方法的步骤。
本申请第四方面一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如本申请第一方面所述的分块压缩编码方法的步骤。
本申请公开了分块压缩编码方法、装置、计算机设备及可读存储介质,该方法中,首先获取原始数据集,提取原始数据集中所有数据的数值部分,组成待压缩数据集;按照预设的数据长度,将待压缩数据集划分为多个数据块,获取任一数据块的标志数据及标志位宽,针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩。上述方法中使用每个数据块各自对应的标志位宽,将所有数据转换为二进制数,而binary-mask压缩编码中使用统一的固定位宽将所有非零数据转换为二进制数,其所使用的固定位宽为默认的位宽,通常大于或等于所有非零数据对应的最大位宽,因此,利用上述分块压缩编码方法压缩得到的数据将占用较小内存。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的binary-mask压缩编码示意图;
图2为申请实施例公开的一种分块压缩编码方法的工作流程示意图;
图3为本申请实施例公开的一种分块压缩编码方法的压缩结果示意图;
图4为本申请实施例公开的一种分块压缩编码方法中,对目标行进行二次压缩的示意图;
图5为本申请实施例公开的又一种分块压缩编码方法的压缩结果示意图。
具体实施方式
为了解决因神经网络权重数据大多为集中在0附近但不为0的数据,从而导致使用binary-mask压缩编码的压缩效果较差的问题,本申请通过以下实施例公开了分块压缩编码方法、装置、计算机设备及可读存储介质。
本申请第一实施例公开了一种分块压缩编码方法,参见图2所示的工作流程示意图,所述方法包括:
步骤S11,获取原始数据集,所述原始数据集中的任一数据为带符号二进制数,所述带符号二进制数包括符号部分及数值部分。
其中,带符号二进制数的首位为符号位,若符号位为“1”,则表示该二进制数为负数,若为“0”,则表示该二进制数为正数。
步骤S12,提取所述原始数据集中所有数据的数值部分,组成待压缩数据集。
步骤S13,按照预设的数据长度,将所述待压缩数据集划分为多个数据块,任一所述数据块中至少包含两个数据的数值部分。
具体的,根据所述预设的数据长度,对所述待压缩数据集进行划分,获取多个所述数据块,其中,若划分所得的最后一个数据块的数据长度短于所述预设的数据长度,则对所述最后一个数据块进行补零操作。
例如,若所述待压缩数据集中包含55736160个权重数据,可以按照127这个数据长度对所述待压缩数据集进行分块,这种情况下,所述待压缩数据集将会被分为438868个数据块,其中最后一个数据块需通过补零操作添加76个零。或者,也可以按照207这个数据长度对所述待压缩数据集进行分块,这种情况下,所述待压缩数据集将会被分为269257个数据块,其中最后一个数据块需通过补零操作添加39个零。
步骤S14,获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中二进制位宽最大的数据,所述标志位宽为所述标志数据的二进制位宽。具体的,标志位宽为标志数据实质上所需占据的二进制位宽,其首位不存在多余的零,因而不存在位宽的浪费。
步骤S15,针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩。
在一些实施方式中,所述针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,包括:
针对任一所述数据块,分别将每一个位宽大于其标志位宽的二进制数作为待处理二进制数。
将位于所述待处理二进制数前端的零删除,使得所述待处理二进制数的位宽等于所述标志位宽。
实际操作中,若原始数据集中的定点数据为int8类型,则待压缩数据集中任一数据块中的数据均为无符号的八位二进制数,在执行步骤S15之前,每个数据都是8比特二进制数,即每个数据都占用8位位宽。执行完本步骤后,每个数据块中的数据都被转换为与各自标志位宽相同的二进制数,此时,只有在标志位宽为8的情况下,其对应的数据块中的每个数据才会继续占用8位位宽,对于标志位宽小于8的情况,其对应的数据块中每个数据所占用的位宽均会小于8位,因此最终得到的多个二进制数据块,其所需的内存空间将比原始数据集小很多。
基于上述原理,在步骤S13中,所述预设的数据长度大小可根据神经网络权重数据的总数,设置为合适的大小,原则上只要不会使数据块的总个数过少或过多即可。数据块个数最多的情况下,最起码要确保每个数据块中至少有两个数据,因为如果每个数据块中只有一个数据,则不会产生任何压缩效果,数据块个数最少的情况下,最起码要确保至少存在一个数据块的标志位宽小于8比特,因为如果所有数据块的标志位宽都是8比特的话,同样的也不会产生压缩效果。如果每个数据块的标志位宽都是8比特,那么可以调节数据长度,重新对待压缩数据集进行划分。
图3为本实施例得到的压缩编码结果示意图,该压缩编码结果中包括一个用于保存所有数据符号部分的数据块以及n个二进制数据块,每个二进制数据块包含m个数据(即在将待压缩数据集划分为多个数据块时,所述预设的数据长度为m)。第一个二进制数据块的数据分别为Num 11、……、Num 1m;第二个二进制数据块的数据分别为Num 21、……、Num2m;第n个二进制数据块的数据分别为Num n1、……、Num nm。用于保存所有数据符号部分的数据块中的数据分别为Num 1、……、Num X1,其中X1表示原始数据集中所有数据的个数。
上述压缩编码结果中,大部分数据前端都被添加了零,因此很多数据的高位皆为零,为了实现进一步的压缩,在所述针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩之后,所述方法还包括:
针对任一所述二进制数据块,将其包含的所有二进制数按照比特位置进行纵向排列,获取对应的二进制矩阵。其中,二进制矩阵的行数为该二进制数据块对应的标志位宽,列数为该二进制数据块中所包含的数据总个数。
针对所述二进制矩阵中预设的目标行进行压缩,所述目标行为零占比高的行。
由于任一二进制数据块中很多数据的高位为零,因此将它们按照比特位置纵向排列成二进制矩阵后,矩阵的前面几行数据中零的占比比较高,将这几行作为目标行进行二次压缩,可有效提高压缩效率。针对目标行进行二次压缩的方法可采用现有的压缩方法,包括但不限于游程编码及“跳零”编码等。
“跳零”压缩编码相当于binary-mask编码和游程编码的融合。跳零编码记录的是原数据中不为0的值和连个不为零的值之前的相对位置。记录相对位置的索引也是由固定位宽的二进制表示。
以下针对索引用2位二进制表示为例,对“跳零”编码进行解释:假设待压缩的原数据为:10020001200000。记录不为0数据为:1212。记录索引时,索引的数字表示两个不为0数之间的间隔,其中2比特表示相对位置,最多可以表示邻近距离为3(即两个数字之前有两个0),当距离超过所表示的范围时,索引位宽记录为0,此时指引光标到达第三个0的位置,后面依次为起点。当数组最后一个数字为0时,索引位宽表示为0,解码时候则补零补齐直到末尾。
作为示例,参见图4所示,若一个二进制数据块中包含十个数据,分别为{26、4、6、15、32、86、5、7、16、26}(此处为了便于理解及说明,采用十进制格式例举,但实际应用中,任一数据的格式为无符号二进制,通过补零操作,所有数据的位宽均与86的位宽相一致)。从图4中可以看出,在将所有数据按照比特位置纵向排列成二进制矩阵时,矩阵的前几行存在较多的零,将这几行设为目标行进行二次压缩,可以进一步压缩数据,减小数据最终所需的存储空间。
在一种实现方式中,针对所述二进制矩阵中预设的目标行进行压缩,包括:
获取所述二进制矩阵的总行数。
判断所述总行数为偶数还是为奇数。
若所述总行数为偶数,则将所述二进制矩阵的前n/2行设定为所述目标行。若所述总行数为奇数,则将所述二进制矩阵的前(n-1)/2行设定为所述目标行,其中,n为所述总行数。
作为示例,若总行数为6行,则将二进制矩阵的前三行设为所述目标行,若总行数为7行,则还是将二进制矩阵的前三行设为所述目标行。
针对所述目标行的所有数据进行压缩。
在另一种实现方式中,针对所述二进制矩阵中预设的目标行进行压缩,包括:
获取所述二进制矩阵每行数据中零的占比值。
将零的占比值高于预设阈值的行设定为所述目标行。其中,所述预设阈值可根据后续对目标行进行二次压缩时所使用的现有压缩编码方式来预先设定。
针对所述目标行的所有数据进行压缩。
图5为本实施例得到的最终压缩编码结果示意图,该压缩编码结果中包括一个用于保存所有数据符号部分的数据块以及n个二进制数据块,其中,每个二进制数据块均包括目标行和非目标行的压缩结果。每个目标行的压缩结果中包含的数据总数(即X2-X5的值)根据目标行的二次压缩编码方法确定,每个非目标行的压缩结果中均包含m个数据。
本申请实施例工卡的分块压缩编码方法中,使用每个数据块各自对应的标志位宽,将所有数据转换为二进制数,而binary-mask压缩编码中使用统一的固定位宽将所有非零数据转换为二进制数,其所使用的固定位宽为默认的位宽,通常大于或等于所有非零数据对应的最大位宽,因此,利用上述分块压缩编码方法压缩得到的数据将占用较小内存。而且上述分块压缩编码方法还将每个二进制数据块纵向排列成二进制矩阵,并针对二进制矩阵中零占比高的行进行二次压缩,最大程度上缩小了最终结果所需占用的内存,压缩效果远远优于binary-mask压缩编码的压缩效果。
下述为本申请装置实施例,用于执行上述方法实施例。对于装置实施例中未披露的细节,请参照上述方法实施例。
本申请第二实施例公开了一种分块压缩编码装置,所述装置应用于本申请第一实施例所述的分块压缩编码方法,所述分块压缩编码装置包括:
原始数据集获取模块,用于获取原始数据集,所述原始数据集中的任一数据为带符号二进制数,所述带符号二进制数包括符号部分及数值部分。
待压缩数据集生成模块,用于提取所述原始数据集中所有数据的数值部分,组成待压缩数据集。
数据集划分模块,用于按照预设的数据长度,将所述待压缩数据集划分为多个数据块,任一所述数据块中至少包含两个数据的数值部分。
标志数据获取模块,用于获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中二进制位宽最大的数据,所述标志位宽为所述标志数据的二进制位宽。
二进制转换模块,用于针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩。
进一步的,所述分块压缩编码装置还包括:
矩阵排列模块,用于在所述二进制转换模块针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩之后,针对任一所述二进制数据块,将其包含的所有二进制数按照比特位置进行纵向排列,获取对应的二进制矩阵。
二次压缩模块,用于针对所述二进制矩阵中预设的目标行进行压缩,所述目标行为零占比高的行。
进一步的,所述二次压缩模块包括:
行数获取单元,用于获取所述二进制矩阵的总行数;
奇偶判断单元,用于判断所述总行数为偶数还是为奇数;
第一目标行设定单元,用于若所述总行数为偶数,则将所述二进制矩阵的前n/2行设定为所述目标行;若所述总行数为奇数,则将所述二进制矩阵的前(n-1)/2行设定为所述目标行,其中,n为所述总行数;
第一压缩单元,用于针对所述目标行的所有数据进行压缩。
可选的,所述二次压缩模块包括:
零占比获取单元,用于获取所述二进制矩阵每行数据中零的占比值;
第二目标行设定单元,用于将零的占比值高于预设阈值的行设定为所述目标行;
第二压缩单元,用于针对所述目标行的所有数据进行压缩。
进一步的,所述二进制转换模块在针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数时,通过以下单元执行:
待处理二进制数提取单元,用于针对任一所述数据块,分别将每一个位宽大于其标志位宽的二进制数作为待处理二进制数;
去零单元,用于将位于所述待处理二进制数前端的零删除,使得所述待处理二进制数的位宽等于所述标志位宽。
进一步的,所述数据集划分模块包括:
划分单元,用于根据所述预设的数据长度,对所述待压缩数据集进行划分,获取多个所述数据块,其中,若划分所得的最后一个数据块的数据长度短于所述预设的数据长度,则对所述最后一个数据块进行补零操作。
本申请第三实施例公开了一种计算机设备,包括:
存储器,用于存储计算机程序。
处理器,用于执行所述计算机程序时实现如本申请第一实施例所述的分块压缩编码方法的步骤。
本申请第四实施例一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如本申请第一实施例所述的分块压缩编码方法的步骤。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。
Claims (8)
1.一种分块压缩编码方法,其特征在于,所述方法包括:
获取原始数据集,所述原始数据集中的任一数据为带符号二进制数,所述带符号二进制数包括符号部分及数值部分;
提取所述原始数据集中所有数据的数值部分,组成待压缩数据集;
按照预设的数据长度,将所述待压缩数据集划分为多个数据块,任一所述数据块中至少包含两个数据的数值部分;
获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中二进制位宽最大的数据,所述标志位宽为所述标志数据的二进制位宽;
针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,针对任一所述二进制数据块,将其包含的所有二进制数按照比特位置进行纵向排列,获取对应的二进制矩阵;
针对所述二进制矩阵中预设的目标行进行压缩,实现所述数据块的压缩,所述目标行为零占比高的行。
2.根据权利要求1所述的分块压缩编码方法,其特征在于,针对所述二进制矩阵中预设的目标行进行压缩,包括:
获取所述二进制矩阵的总行数;
判断所述总行数为偶数还是为奇数;
若所述总行数为偶数,则将所述二进制矩阵的前n/2行设定为所述目标行;若所述总行数为奇数,则将所述二进制矩阵的前(n-1)/2行设定为所述目标行,其中,n为所述总行数;
针对所述目标行的所有数据进行压缩。
3.根据权利要求1所述的分块压缩编码方法,其特征在于,针对所述二进制矩阵中预设的目标行进行压缩,包括:
获取所述二进制矩阵每行数据中零的占比值;
将零的占比值高于预设阈值的行设定为所述目标行;
针对所述目标行的所有数据进行压缩。
4.根据权利要求1所述的分块压缩编码方法,其特征在于,所述针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,包括:
针对任一所述数据块,分别将每一个位宽大于其标志位宽的二进制数作为待处理二进制数;
将位于所述待处理二进制数前端的零删除,使得所述待处理二进制数的位宽等于所述标志位宽。
5.根据权利要求1所述的分块压缩编码方法,其特征在于,所述按照预设的数据长度,将所述待压缩数据集划分为多个数据块,包括:
根据所述预设的数据长度,对所述待压缩数据集进行划分,获取多个所述数据块,其中,若划分所得的最后一个数据块的数据长度短于所述预设的数据长度,则对所述最后一个数据块进行补零操作。
6.一种分块压缩编码装置,其特征在于,所述装置应用于权利要求1-5任一项所述的分块压缩编码方法,所述分块压缩编码装置包括:
原始数据集获取模块,用于获取原始数据集,所述原始数据集中的任一数据为带符号二进制数,所述带符号二进制数包括符号部分及数值部分;
待压缩数据集生成模块,用于提取所述原始数据集中所有数据的数值部分,组成待压缩数据集;
数据集划分模块,用于按照预设的数据长度,将所述待压缩数据集划分为多个数据块,任一所述数据块中至少包含两个数据的数值部分;
标志数据获取模块,用于获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中二进制位宽最大的数据,所述标志位宽为所述标志数据的二进制位宽;
二进制转换模块,用于针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩;
矩阵排列模块,用于在所述二进制转换模块针对任一所述数据块,将其包含的每个数据分别转换为位宽与其标志位宽一致的二进制数,获取对应的二进制数据块,实现所述数据块的压缩之后,针对任一所述二进制数据块,将其包含的所有二进制数按照比特位置进行纵向排列,获取对应的二进制矩阵;
二次压缩模块,用于针对所述二进制矩阵中预设的目标行进行压缩,所述目标行为零占比高的行。
7.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1-5任一项所述的分块压缩编码方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如权利要求1-5任一项所述的分块压缩编码方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010483555 | 2020-06-01 | ||
CN2020104835551 | 2020-06-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112152634A CN112152634A (zh) | 2020-12-29 |
CN112152634B true CN112152634B (zh) | 2024-04-30 |
Family
ID=73897918
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010649248.6A Active CN113765620B (zh) | 2020-06-01 | 2020-07-08 | 分块压缩编码方法、装置、计算机设备及可读存储介质 |
CN202011017714.5A Active CN112152634B (zh) | 2020-06-01 | 2020-09-24 | 分块压缩编码方法、装置、计算机设备及可读存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010649248.6A Active CN113765620B (zh) | 2020-06-01 | 2020-07-08 | 分块压缩编码方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN113765620B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040028B (zh) * | 2021-10-29 | 2023-11-24 | 深圳智慧林网络科技有限公司 | 一种基于三种模式的数据压缩方法和数据解压方法 |
CN114137348B (zh) * | 2021-11-29 | 2023-11-24 | 国网湖南省电力有限公司 | 一种配电终端智能联调验收方法和验收设备 |
CN114296643A (zh) * | 2021-12-16 | 2022-04-08 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102592160A (zh) * | 2012-01-17 | 2012-07-18 | 浙江工商大学 | 一种面向短信的字符二维码编码方法和解码方法 |
CN102790656A (zh) * | 2012-05-30 | 2012-11-21 | 新邮通信设备有限公司 | 一种iq数据压缩方法和系统 |
CN104253993A (zh) * | 2013-06-28 | 2014-12-31 | 炬力集成电路设计有限公司 | 一种多媒体数据处理方法、电路及装置 |
CN110019184A (zh) * | 2017-09-04 | 2019-07-16 | 北京字节跳动网络技术有限公司 | 一种压缩和解压缩有序整数数组的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6057790A (en) * | 1997-02-28 | 2000-05-02 | Fujitsu Limited | Apparatus and method for data compression/expansion using block-based coding with top flag |
US6124811A (en) * | 1998-07-02 | 2000-09-26 | Intel Corporation | Real time algorithms and architectures for coding images compressed by DWT-based techniques |
US6762700B2 (en) * | 2001-05-07 | 2004-07-13 | Jiannhwa Sun | NEO method and system for lossless compression and decompression |
CN103368582A (zh) * | 2012-04-11 | 2013-10-23 | 联咏科技股份有限公司 | 数据编码及译码方法与装置 |
CN107506153B (zh) * | 2017-09-26 | 2021-07-02 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN111294057A (zh) * | 2018-12-07 | 2020-06-16 | 上海寒武纪信息科技有限公司 | 数据压缩方法、编码电路和运算装置 |
-
2020
- 2020-07-08 CN CN202010649248.6A patent/CN113765620B/zh active Active
- 2020-09-24 CN CN202011017714.5A patent/CN112152634B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102592160A (zh) * | 2012-01-17 | 2012-07-18 | 浙江工商大学 | 一种面向短信的字符二维码编码方法和解码方法 |
CN102790656A (zh) * | 2012-05-30 | 2012-11-21 | 新邮通信设备有限公司 | 一种iq数据压缩方法和系统 |
CN104253993A (zh) * | 2013-06-28 | 2014-12-31 | 炬力集成电路设计有限公司 | 一种多媒体数据处理方法、电路及装置 |
CN110019184A (zh) * | 2017-09-04 | 2019-07-16 | 北京字节跳动网络技术有限公司 | 一种压缩和解压缩有序整数数组的方法 |
Non-Patent Citations (1)
Title |
---|
Flexible-width Bit-level Compressor for Convolutional Neural Network;junhan zhu 等;《2021 IEEE 3rd International Conference on Artificial Intellegence Circuits and Systems》;1-4 * |
Also Published As
Publication number | Publication date |
---|---|
CN113765620B (zh) | 2022-09-23 |
CN113765620A (zh) | 2021-12-07 |
CN112152634A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112152634B (zh) | 分块压缩编码方法、装置、计算机设备及可读存储介质 | |
RU2403677C1 (ru) | Способ сжатия и восстановления данных без потерь | |
US7428341B2 (en) | Method and apparatus for lossless data transformation with preprocessing by adaptive compression, multidimensional prediction, multi-symbol decoding enhancement enhancements | |
CN116016606B (zh) | 一种基于智慧云的污水处理运维数据高效管理系统 | |
CN116506073A (zh) | 一种工业计算机平台数据快速传输方法及系统 | |
CN104579360A (zh) | 一种数据处理的方法和设备 | |
CN103702133A (zh) | 一种图像压缩展示方法及其装置 | |
CN114268323B (zh) | 支持行存的数据压缩编码方法、装置及时序数据库 | |
CN116827354B (zh) | 一种文件数据分布式存储管理系统 | |
CN111211787A (zh) | 一种工业数据压缩方法、系统、存储介质及终端 | |
CN110021368B (zh) | 比对型基因测序数据压缩方法、系统及计算机可读介质 | |
CN111384972A (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
CN104133883B (zh) | 电话号码归属地数据压缩方法 | |
GB2539239A (en) | Encoders, decoders and methods | |
CN110518915B (zh) | 一种比特位计数编码以及解码方法 | |
CN102932001B (zh) | 运动捕获数据压缩、解压缩方法 | |
CN111035381B (zh) | 一种实时心电数据无损压缩方法 | |
CN110111851B (zh) | 基因测序数据压缩方法、系统及计算机可读介质 | |
CN112016270A (zh) | 汉信码的物流信息编码方法、装置及设备 | |
CN112054805A (zh) | 一种模型数据压缩方法、系统及相关设备 | |
CN112200301B (zh) | 卷积计算装置及方法 | |
CN115955250B (zh) | 一种高校科研数据采集管理系统 | |
CN102891730A (zh) | 基于bcd码卫星短报文的编码方法和装置 | |
CN112865804B (zh) | 三值神经网络稀疏性权重的压缩计算单元 | |
CN115865098A (zh) | 基于Huffman编码的数据压缩方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |