【技术实现步骤摘要】
数据压缩、解压方法及相关装置、电子设备、系统
本专利技术涉及数据压缩
,尤其涉及一种数据压缩、解压方法及相关装置、电子设备、系统。
技术介绍
对于数据量较大的运算,例如,视频、图像处理或者机器学习等运算通常使用硬件芯片进行加速。在硬件芯片进行数据处理的过程中往往需要从外部存储器实时导入大量的数据。例如,机器学习的硬件加速是一种通过硬件芯片来执行机器学习算法而实现计算加速的技术。在运行机器学习算法时,往往需要大量参数。这些参数无法完全保存在硬件芯片内部,因此在机器学习算法运行时,需要从外部实时导入大量参数。由于实时导入大量参数占用芯片的输入/输出(Input/Output,I/O)带宽,当I/O带宽不足时,导致硬件芯片的计算能力空置,降低机器学习算法的运行速度。通过对外部参数的离线压缩来减小外部参数的体积,并在硬件芯片内通过解压引擎进行实时在线解压还原出外部参数,可以实现在相同的I/O带宽下传输更多的外部参数。然而,解压引擎所能到达的解压速率有限,同样限制了机器学习算法的运行速度。目前,提高硬件芯片解压速率的常用方法为多引擎并行解压。如图1所示的现有技术中多解压引擎解压的原理示意图。在电子设备对一个待压缩文件进行压缩时,将待压缩文件拆分为等长的多个原始数据块,对该多个原始数据块分别进行压缩生成与各个原始数据块一一对应的压缩数据块;在解压时,首先获取多个压缩数据块,将该多个压缩数据块分配到多个解压引擎中,多个解压引擎还原出多个原始数据块,再将多个原始数据块拼接成原始文件(即待压缩文件)。可见 ...
【技术保护点】
1.一种数据压缩方法,其特征在于,所述方法包括:/n将原始数据中连续的S个原始数据块中的每一个原始数据块分别通过压缩算法进行独立压缩,得到所述S个原始数据块一一对应的S个压缩数据块,所述S个原始数据块中每一个原始数据块为所述原始数据中连续的多个数据,所述连续的多个数据的长度不大于第一长度阈值L1,所述S个压缩数据块中的每一个压缩数据块的长度d不大于第二长度阈值L2,S为正整数;/n在所述S个压缩数据块中的每一个压缩数据块之后添加长度为L2-d的附加数据,生成S个长度为L2的规范压缩数据块,其中,所述长度为L2的规范数据块为解压装置中的单个解压引擎能够在一个处理周期内处理完的数据块,所述L1以及所述L2为大于1的整数,所述d为大于等于0的整数,所述L1大于所述L2。/n
【技术特征摘要】
1.一种数据压缩方法,其特征在于,所述方法包括:
将原始数据中连续的S个原始数据块中的每一个原始数据块分别通过压缩算法进行独立压缩,得到所述S个原始数据块一一对应的S个压缩数据块,所述S个原始数据块中每一个原始数据块为所述原始数据中连续的多个数据,所述连续的多个数据的长度不大于第一长度阈值L1,所述S个压缩数据块中的每一个压缩数据块的长度d不大于第二长度阈值L2,S为正整数;
在所述S个压缩数据块中的每一个压缩数据块之后添加长度为L2-d的附加数据,生成S个长度为L2的规范压缩数据块,其中,所述长度为L2的规范数据块为解压装置中的单个解压引擎能够在一个处理周期内处理完的数据块,所述L1以及所述L2为大于1的整数,所述d为大于等于0的整数,所述L1大于所述L2。
2.如权利要求1所述的方法,其特征在于,第一原始数据块为所述S个原始数据块中的任意一个原始数据块,其中,
在所述第一原始数据块的长度等于所述L1时,所述第一原始数据块压缩得到的规范数据块中的第一附加数据为合法码字或所述第一附加数据包括用于指示所述解压引擎所述第一附加数据为无效数据需要弃掉的无效标志以及在所述无效标志后面的大于等于0个的无效数据;或,
在所述第一原始数据块的长度小于所述L1时,所述第一附加数据包括用于指示所述解压引擎所述第一附加数据为无效数据需要弃掉的无效标志以及在所述无效标志后面的大于等于0个的无效数据。
3.如权利要求2所述的方法,其特征在于,将所述第一原始数据块通过压缩算法进行独立压缩,得到第一压缩数据块,所述第一压缩数据块为与所述S个压缩数据块中与所述第一原始数据块对应的压缩数据块,包括:
S1、获取一个待压缩的数据组;
S2、判断是否需要对所述待压缩的数据组进行压缩,如果需要进行压缩,则执行S3,否则执行S4;
S3、压缩所述待压缩的数据组,压缩完成后执行所述S1;
S4、将通过压缩所述待压缩的数据组之前的一个或多个数据组得到的压缩数据块作为所述第一压缩数据块;
其中,所述判断是否需要对所述待压缩的数据组进行压缩包括:若已被压缩的一个或多个数据组的长度x与所述待压缩的数据组的长度Δx之和不大于所述L1且在所述待压缩的数据组被压缩后生成的压缩数据块长度不大于所述L2,则确定需要进行压缩;若所述x与所述Δx之和不大于所述L1且在所述待压缩的数据组被压缩后生成的压缩数据块长度大于所述L2,则确定不需要进行压缩;若所述x与所述Δx之和大于所述L1,则确定不需要进行压缩。
4.如权利要求2所述的方法,其特征在于,将所述第一原始数据块通过压缩算法进行独立压缩,得到第一压缩数据块,所述第一压缩数据块为与所述S个压缩数据块中与所述第一原始数据块对应的压缩数据块,包括:
将待压缩数据中长度为L1的数据块以数据组为步长进行压缩,得到第三压缩数据块;
在所述第三压缩数据块的长度大于所述L2时,将所述长度为L1的数据块在去除尾部的i个数据组后得到的数据块作为所述第一原始数据块,并将所述第一原始数据块压缩得到的压缩数据块作为所述第一压缩数据块,其中,所述第一压缩数据块的长度不大于所述L2,i为正整数,且i<L1,所述i为使得所述第一压缩数据块不大于所述L2的最小正整数;
在所述第三压缩数据块的长度不大于所述L2时,将所述长度为L1的数据块作为所述第一原始数据块,将所述第三压缩数据块作为所述第一压缩数据块。
5.如权利要求1-4任意一项权利要求所述的方法,其特征在于,
所述L1为单个解压引擎的出口存储大小;
所述L2为单个解压引擎的入口存储大小。
6.一种压缩装置,其特征在于,包括:
压缩单元,用于将原始数据中连续的S个原始数据块中的每一个原始数据块分别通过压缩算法进行独立压缩,得到所述S个原始数据块一一对应的S个压缩数据块,所述S个原始数据块中每一个原始数据块为所述原始数据中连续的多个数据,所述连续的多个数据的长度不大于第一长度阈值L1,所述S个压缩数据块中的每一个压缩数据块的长度d不大于第二长度阈值L2,S为正整数;
规范单元,用于在所述S个压缩数据块中的每一个压缩数据块之后添加长度为L2-d的附加数据,生成S个长度为L2的规范压缩数据块,其中,所述长度为L2的规范数据块为解压装置中的单个解压引擎能够在一个处理周期内处理完的数据块,所述L1以及所述L2为大于1的整数,所述d为大于等于0的整数,所述L1大于所述L2。
7.如权利要求6所述的压缩装置,其特征在于,第一原始数据块为所述S个原始数据块中的任意一个原始数据块,其中,
在所述第一原始数据块的长度等于所述L1时,所述第一原始数据块压缩得到的规范数据块中的第一附加数据为合法码字或所述第一附加数据包括用于指示所述解压引擎所述第一附加数据为无效数据需要弃掉的无效标志以及在所述无效标志后面的大于等于0个的无效数据;或,
在所述第一原始数据块的长度小于所述L1时,所述第一附加数据包括用于指示所述解压引擎所述第一附加数据为无效数据需要弃掉的无效标志以及在所述无效标志后面的大于等于0个的无效数据。
8.如权利要求7所述的压缩装置,其特征在于,第一压缩数据块为与所述S个压缩数据块中与所述第一原始数据块对应的压缩数据块,所述压缩单元包括用于将所述第一原始数据块通过压缩算法进行独立压缩,得到所述第一压缩数据块,具体包括用于执行如下步骤:
S1、获取一个待压缩的数据组;
S2、判断是否需要对所述待压缩的数据组进行压缩,如果需要进行压缩,则执行S3,否则执行S4;
S3、压缩所述待压缩的数据块组,压缩完成后执行所述S1;
S4、将通过压缩所述待压缩的数据组之前的一个或多个数据组得到的压缩数据块作为所述第一压缩数据块;
其中,所述判断是否需要对所述待压缩的数据组进行压缩包括:若已被压缩的一个或多个数据组的长度x与所述待压缩的数据组的长度Δx之和不大于所述L1且在所述待压缩的数据组被压缩后生成的第二压缩数据块长度不大于L2,则确定需要进行压缩;若所述x与所述Δx之和不大于所述L1且在所述待压缩的数据组被压缩后生成的第二压缩数据块长度大于L2,则确定不需要进行压缩;若所述x与所述Δx之和大于所述L1,则确定不需要进行压缩。
9.如权利要求7所述的压缩装置,其特征在于,第一压缩数据块为与所述S个压缩数据块中与所述第一原始数据块对应的压缩数据块,所述压缩单元包括用于将所述第一原始数据块通过压缩算法进行独立压缩,得到所述第一压缩数据块,具体包括用于执行如下步骤:
将待压缩数据中长度为第一长度阈值L1的数据块以数据组为步长进行压缩,得到第三压缩数据块;
在所述第三压缩数据块的长度大于所述L2时,将所述长度为L1的数据块在去除尾部的i个数据组后得到的数据块作为所述第一原始数据块,并将所述第一原始数据块压缩得到的压缩数据块作为所述第一压缩数据块,其中,所述第一压缩数据块的长度不大于所述L2,i为正整数,且i<L1,所述i为使得所述第一压缩数据块不大于所述L2的最小正整数;
在所述第三压缩数据块的长度不大于所述L2时,将所述长度为L1的数据块作为第一原始数据块,将所述第三压缩数据块作为所述第一压缩数据块。
10.如权利要求6-9任意一项权利要求所述的压缩装置,其特征在于,
所述L1为单个解压引擎的出口存储大小;
所述L2为单个解压引擎的入口存储大小。
11.一种压缩装置,其特征在于,包括:处理器和存储器,其中,所述存储器用于存储数据和程序指令,所述处理器调用所述存储器存储数据和程序指令,执行:
将原始数据中连续的S个原始数据块中的每一个原始数据块分别通过压缩算法进行独立压缩,得到所述S个原始数据块一一对应的S个压缩数据块,所述S个原始数据块中每一个原始数据块为所述原始数据中连续的多个数据,所述连续的多个数据的长度不大于第一长度阈值L1,所述S个压缩数据块...
【专利技术属性】
技术研发人员:陆超,刘保庆,何雷骏,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。