本申请公开了一种LZ4格式文件转换为GZIP格式文件的方法,包括:解析LZ4格式文件的帧头与帧尾,得到目标语法元素;构建GZIP格式文件头,并根据解析得到所述目标语法元素构建GZIP格式文件尾;解析所述LZ4格式文件的数据块,得到原文、匹配长度以及偏移距离;对所述原文、所述匹配长度以及所述偏移距离进行哈夫曼编码,得到deflate格式的数据块;封装所述GZIP格式文件头、所述GZIP格式文件尾以及所述deflate格式的数据块,得到所述GZIP格式文件。该方法能够极大的提高格式转换速度。本申请还公开了一种LZ4格式文件转换为GZIP格式文件的装置、设备及计算机可读存储介质,均具有上述技术效果。果。果。
【技术实现步骤摘要】
一种LZ4格式文件转换为GZIP格式文件的方法
[0001]本申请涉及格式转换
,特别涉及一种LZ4格式文件转换为GZIP格式文件的方法;还涉及一种LZ4格式文件转换为GZIP格式文件的装置、设备以及计算机可读存储介质。
技术介绍
[0002]随着大数据、AI、区块链等前沿技术的迅速发展,催生了数据爆发式的增长,海量数据将对现有的存储设备带来巨大的压力。另外,随着云计算对传统计算架构的替代,数据存储的结构也在发生变化,计算资源和存储资源将进一步向头部的数据中心聚合,进一步给服务器存储带来压力。面对这些持续增加的海量数据,数据压缩成为减轻服务器存储负担,降低存储成本的有效方法之一。数据压缩技术主要体现在重复冗余数据的压缩处理,可分为如下几步实现:查找重复数据,判断前文中是否有与当前数据相同的段落,并得到前文的地址;表征重复数据,按照一定的规则表示重复数据,通常利用游程编码表征;按照特定的压缩格式生成压缩文件。
[0003]当下业界主流的数据压缩标准为GZIP数据压缩标准与LZ4数据压缩标准。PC以及服务器中通常采用GZIP数据压缩标准,而在移动及物联网终端通常采用LZ4数据压缩标准。各种终端的数据,需要上载存储到数据中心。LZ4算法可以快速的对终端生成的数据压缩及封装,数据中心更注重压缩率,通常采用GZIP算法来压缩及封装数据。这样,终端数据与服务器之间存在一个“格式鸿沟”,因此数据落盘前,需要进行数据格式转换,即将LZ4格式文件转换为GZIP格式文件。目前,LZ4格式文件向GZIP格式文件转换的方案大多采用完全解压缩后再压缩的方式。这样的转换方案的转换速度较慢,且需要存储完全解压缩之后得到的源文件。
[0004]有鉴于此,如何提高转换速度已成为本领域技术人员亟待解决的技术问题。
技术实现思路
[0005]本申请的目的是提供一种LZ4格式文件转换为GZIP格式文件的方法,能够极大的提高格式转换速度。本申请的另一个目的是提供一种LZ4格式文件转换为GZIP格式文件的装置、设备以及计算机可读存储介质,均具有上述技术效果。
[0006]为解决上述技术问题,本申请提供了一种LZ4格式文件转换为GZIP格式文件的方法,包括:
[0007]解析LZ4格式文件的帧头与帧尾,得到目标语法元素;
[0008]构建GZIP格式文件头,并根据解析得到所述目标语法元素构建GZIP格式文件尾;
[0009]解析所述LZ4格式文件的数据块,得到原文、匹配长度以及偏移距离;
[0010]对所述原文、所述匹配长度以及所述偏移距离进行哈夫曼编码,得到deflate格式的数据块;
[0011]封装所述GZIP格式文件头、所述GZIP格式文件尾以及所述deflate格式的数据块,
得到所述GZIP格式文件。
[0012]可选的,所述解析LZ4格式文件的帧头与帧尾,得到目标语法元素包括:
[0013]解析所述LZ4格式文件的帧头,得到帧描述符;
[0014]解析所述LZ4格式文件的帧尾,得到源数据校验码。
[0015]可选的,所述构建GZIP格式文件头包括:
[0016]将所述GZIP格式文件头中的GZIP格式校验码的第一字节设置为第一预设值,将所述GZIP格式校验码的第二字节设置为第二预设值;
[0017]将所述GZIP格式文件头中的压缩算法标识符设置为第三预设值;
[0018]将所述GZIP格式文件头中的标志位的各比特位设置为零;
[0019]将所述GZIP格式文件头中的源文件时间戳设置为当前时间;
[0020]将所述GZIP格式文件头中的附加标志以及操作系统标志均设置为第四预设值。
[0021]可选的,所述根据所述目标语法元素构建GZIP格式文件尾包括:
[0022]将所述GZIP格式文件尾的源数据校验码设置为与所述LZ4格式文件的帧尾的所述源数据校验码一致;
[0023]将所述GZIP格式文件尾的源数据字符数设置为与所述LZ4格式文件的所述帧描述符中的源文件数据长度一致。
[0024]可选的,还包括:
[0025]根据所述LZ4格式文件的数据块设置相应的所述deflate格式的数据块的块头信息。
[0026]为解决上述技术问题,本申请还提供了一种LZ4格式文件转换为GZIP格式文件的装置,包括:
[0027]第一解析模块,用于解析LZ4格式文件的帧头与帧尾,得到目标语法元素;
[0028]构建模块,用于构建GZIP格式文件头,并根据解析得到所述目标语法元素构建GZIP格式文件尾;
[0029]第二解析模块,用于解析所述LZ4格式文件的数据块,得到原文、匹配长度以及偏移距离;
[0030]编码模块,用于对所述原文、所述匹配长度以及所述偏移距离进行哈夫曼编码,得到deflate格式的数据块;
[0031]封装模块,用于封装所述GZIP格式文件头、所述GZIP格式文件尾以及所述deflate格式的数据块,得到所述GZIP格式文件。
[0032]可选的,所述第一解析模块具体用于:
[0033]解析所述LZ4格式文件的帧头,得到帧描述符;
[0034]解析所述LZ4格式文件的帧尾,得到源数据校验码。
[0035]可选的,所述构建模块具体用于:
[0036]将所述GZIP格式文件头中的GZIP格式校验码的第一字节设置为第一预设值,将所述GZIP格式校验码的第二字节设置为第二预设值;
[0037]将所述GZIP格式文件头中的压缩算法标识符设置为第三预设值;
[0038]将所述GZIP格式文件头中的标志位的各比特位设置为零;
[0039]将所述GZIP格式文件头中的源文件时间戳设置为当前时间;
[0040]将所述GZIP格式文件头中的附加标志以及操作系统标志均设置为第四预设值。
[0041]为解决上述技术问题,本申请还提供了一种LZ4格式文件转换为GZIP格式文件的设备,包括:
[0042]存储器,用于存储计算机程序;
[0043]处理器,用于执行所述计算机程序时实现如上任一项所述的LZ4格式文件转换为GZIP格式文件的方法的步骤。
[0044]为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的LZ4格式文件转换为GZIP格式文件的方法的步骤。
[0045]本申请所提供的LZ4格式文件转换为GZIP格式文件的方法,包括:解析LZ4格式文件的帧头与帧尾,得到目标语法元素;构建GZIP格式文件头,并根据解析得到所述目标语法元素构建GZIP格式文件尾;解析所述LZ4格式文件的数据块,得到原文、匹配长度以及偏移距离;对所述原文、所述匹配长度以及所述偏移距离进行哈夫曼编码,得到deflate格式的数据块;封装所述GZIP格式文件头、所述GZIP格式文件本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种LZ4格式文件转换为GZIP格式文件的方法,其特征在于,包括:解析LZ4格式文件的帧头与帧尾,得到目标语法元素;构建GZIP格式文件头,并根据解析得到所述目标语法元素构建GZIP格式文件尾;解析所述LZ4格式文件的数据块,得到原文、匹配长度以及偏移距离;对所述原文、所述匹配长度以及所述偏移距离进行哈夫曼编码,得到deflate格式的数据块;封装所述GZIP格式文件头、所述GZIP格式文件尾以及所述deflate格式的数据块,得到所述GZIP格式文件。2.根据权利要求1所述的LZ4格式文件转换为GZIP格式文件的方法,其特征在于,所述解析LZ4格式文件的帧头与帧尾,得到目标语法元素包括:解析所述LZ4格式文件的帧头,得到帧描述符;解析所述LZ4格式文件的帧尾,得到源数据校验码。3.根据权利要求2所述的LZ4格式文件转换为GZIP格式文件的方法,其特征在于,所述构建GZIP格式文件头包括:将所述GZIP格式文件头中的GZIP格式校验码的第一字节设置为第一预设值,将所述GZIP格式校验码的第二字节设置为第二预设值;将所述GZIP格式文件头中的压缩算法标识符设置为第三预设值;将所述GZIP格式文件头中的标志位的各比特位设置为零;将所述GZIP格式文件头中的源文件时间戳设置为当前时间;将所述GZIP格式文件头中的附加标志以及操作系统标志均设置为第四预设值。4.根据权利要求2所述的LZ4格式文件转换为GZIP格式文件的方法,其特征在于,所述根据所述目标语法元素构建GZIP格式文件尾包括:将所述GZIP格式文件尾的源数据校验码设置为与所述LZ4格式文件的帧尾的所述源数据校验码一致;将所述GZIP格式文件尾的源数据字符数设置为与所述LZ4格式文件的所述帧描述符中的源文件数据长度一致。5.根据权利要求4所述的LZ4格式文件转换为GZIP格式文件的方法,其特征在于,还包括:根据所述LZ4格式文件的数据块设置相应的所述deflate格式的数据...
【专利技术属性】
技术研发人员:张永兴,贾晓龙,王振,
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。