数据压缩、解压方法及相关装置、电子设备、系统制造方法及图纸

技术编号:23318121 阅读:49 留言:0更新日期:2020-02-11 18:53
本申请实施例公开了一种数据压缩、解压方法及相关装置、电子设备、系统,该数据压缩方法通过将原始数据中连续的S个原始数据块中的每一个原始数据块分别通过压缩算法进行独立压缩,得到S个压缩数据块,各个原始数据块为长度不大于L1,各个压缩数据块的长度d不大于L2;进而,在S个压缩数据块中的每一个压缩数据块之后添加长度为L2‑d的附加数据,生成S个长度为L2的规范压缩数据块,该规范数据块为解压装置中的单个解压引擎能够在一个处理周期内处理完的数据块。通过执行本发明专利技术实施例的数据压缩方法可以压缩成长度为固定值的规范压缩数据块,使得各个解压引擎在解压该多个规范压缩数据块时可以同步解压,提高数据的解压效率。

Data compression and decompression methods and related devices, electronic equipment and systems

【技术实现步骤摘要】
数据压缩、解压方法及相关装置、电子设备、系统
本专利技术涉及数据压缩
,尤其涉及一种数据压缩、解压方法及相关装置、电子设备、系统。
技术介绍
对于数据量较大的运算,例如,视频、图像处理或者机器学习等运算通常使用硬件芯片进行加速。在硬件芯片进行数据处理的过程中往往需要从外部存储器实时导入大量的数据。例如,机器学习的硬件加速是一种通过硬件芯片来执行机器学习算法而实现计算加速的技术。在运行机器学习算法时,往往需要大量参数。这些参数无法完全保存在硬件芯片内部,因此在机器学习算法运行时,需要从外部实时导入大量参数。由于实时导入大量参数占用芯片的输入/输出(Input/Output,I/O)带宽,当I/O带宽不足时,导致硬件芯片的计算能力空置,降低机器学习算法的运行速度。通过对外部参数的离线压缩来减小外部参数的体积,并在硬件芯片内通过解压引擎进行实时在线解压还原出外部参数,可以实现在相同的I/O带宽下传输更多的外部参数。然而,解压引擎所能到达的解压速率有限,同样限制了机器学习算法的运行速度。目前,提高硬件芯片解压速率的常用方法为多引擎本文档来自技高网...

【技术保护点】
1.一种数据压缩方法,其特征在于,所述方法包括:/n将原始数据中连续的S个原始数据块中的每一个原始数据块分别通过压缩算法进行独立压缩,得到所述S个原始数据块一一对应的S个压缩数据块,所述S个原始数据块中每一个原始数据块为所述原始数据中连续的多个数据,所述连续的多个数据的长度不大于第一长度阈值L1,所述S个压缩数据块中的每一个压缩数据块的长度d不大于第二长度阈值L2,S为正整数;/n在所述S个压缩数据块中的每一个压缩数据块之后添加长度为L2-d的附加数据,生成S个长度为L2的规范压缩数据块,其中,所述长度为L2的规范数据块为解压装置中的单个解压引擎能够在一个处理周期内处理完的数据块,所述L1以及...

【技术特征摘要】
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

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

1