一种数据处理的方法、装置及介质制造方法及图纸

技术编号:34530119 阅读:14 留言:0更新日期:2022-08-13 21:22
本申请涉及数据处理技术领域,公开了一种数据处理的方法、装置及介质,包括:对输入数据进行Huffman编码得到Huffman编码数据和Huffman编码位宽,判断当前Huffman编码位宽M是否小于或等于当前预设存储区的剩余位宽N。若小于或等于,将Huffman编码数据左移L

【技术实现步骤摘要】
一种数据处理的方法、装置及介质


[0001]本申请涉及数据处理
,特别是涉及一种数据处理的方法、装置及介质。

技术介绍

[0002]随着大数据、云计算和5G等技术的快速发展,互联网数据量出现爆发式的增长。海量的数据给数据存储和数据传输带宽带来巨大挑战,所以,实现数据的高效压缩和存储成为人们越来越关注的热点。
[0003]哈夫曼(Huffman)编码是一种根据字符出现的概率来构造平均长度最短的编码方式,即将出现概率大的字符采用较短的存储编码,出现概率小的字符采用较长的存储编码,由此有效减小数据存储空间,同时,由于数据存储空间变小,对数据的传输带宽要求也降低。因此,Huffman编码常用于数据的压缩和解压。
[0004]虽然采用Huffman编码可以压缩数据以减小数据字节数,进而减小存储空间,但进行Huffman编码后的每个字节依旧使用8比特(Bit)存储空间,事实上,存储每个字节实际上需要的存储空间可能小于8Bit存储空间,进而导致存储空间的浪费。例如,占用6个字节的数据A,经Huffman编码为101,编码101需要占用3个字节,进而需要使用24Bit存储空间,实际上编码101仅需要使用3Bit存储空间即可,可见,Huffman编码时可变字长数据非固定字节对齐会导致存储空间的浪费。
[0005]由此可见,如何在进行Huffman编码时节约存储空间,是本领域技术人员亟待解决的问题。

技术实现思路

[0006]本申请的目的是提供一种数据处理的方法、装置及介质,实现在进行Huffman编码时节约存储空间。
[0007]为解决上述技术问题,本申请提供一种数据处理的方法,包括:
[0008]对输入数据进行Huffman编码得到对应的Huffman编码数据和Huffman编码位宽;
[0009]判断当前所述Huffman编码位宽M是否小于或等于当前预设存储区的剩余位宽N;其中,各所述预设存储区的总位宽为L,所述L、所述M和所述N均为自然数;
[0010]若小于或等于,将当前所述Huffman编码位宽对应的所述Huffman编码数据左移L

N个位宽后存储于当前所述预设存储区;
[0011]若大于,将当前所述Huffman编码位宽对应的所述Huffman编码数据中位宽N的数据存储于当前所述预设存储区,并将位宽M

N的数据存储于下一个所述预设存储区。
[0012]优选地,所述对输入数据进行Huffman编码得到对应的Huffman编码数据和Huffman编码位宽包括:
[0013]遍历所述输入数据以统计各字符出现的频率;
[0014]根据各所述字符出现的频率对所述输入数据构建Huffman树得到各所述输入数据对应的Huffman编码;
[0015]依据所述Huffman树确定所述输入数据中各字符对应的Huffman叶子节点以得到各所述输入数据对应的所述Huffman编码数据和所述Huffman编码位宽。
[0016]优选地,在将当前所述Huffman编码位宽对应的所述Huffman编码数据中位宽N的数据存储于当前所述预设存储区之后还包括:
[0017]将当前所述预设存储区内的所述Huffman编码数据输出至第一指定存储区,并将前所述预设存储区内的各所述Huffman编码数据对应的Huffman编码位宽信息依次输出至第二指定存储区。
[0018]优选地,在所述对输入数据进行Huffman编码得到对应的Huffman编码数据和Huffman编码位宽之后还包括:
[0019]获取表征获取到所述输入数据的返回值;
[0020]根据所述返回值确定是否获取到新的所述输入数据,若是,将所述输入数据存储至输入数据存储区。
[0021]优选地,若未获取到新的所述输入数据,还包括
[0022]判断所述输入数据存储区中是否存在未进行Huffman编码的数据;
[0023]若存在,从所述输入数据存储区中依次读取预设长度的所述输入数据,并进入所述对输入数据进行Huffman编码得到对应的Huffman编码数据和Huffman编码位宽的步骤。
[0024]优选地,还包括:
[0025]获取所述第一指定存储区内的所述Huffman编码数据和所述第二指定存储区内所述Huffman编码位宽;
[0026]依次对各所述Huffman编码位宽对应的所述Huffman编码数据进行解码;
[0027]判断所述第二指定存储区是否为空,若不为空,则进入对各所述Huffman编码位宽对应的所述Huffman编码数据进行解码的步骤。
[0028]优选地,所述对各所述Huffman编码位宽对应的所述Huffman编码数据进行解码包括:
[0029]根据所述Huffman编码位宽信息得到各所述Huffman编码位宽对应的所述Huffman编码数据;
[0030]依据Huffman树确定各所述Huffman编码数据中各编码对应的Huffman叶子节点以得到各编码对应的原始数据;
[0031]将各编码对应的原始数据进行拼接得到所述Huffman编码数据对应的所述输入数据。
[0032]为了解决上述技术问题,本申请还提供了一种数据处理的装置,包括:
[0033]编码模块,用于对输入数据进行Huffman编码得到对应的Huffman编码数据和Huffman编码位宽;
[0034]第一处理模块,用于判断当前所述Huffman编码位宽M是否小于或等于当前预设存储区的剩余位宽N;其中,各所述预设存储区的总位宽为L,所述L、所述M和所述N均为自然数;
[0035]若小于或等于,将当前所述Huffman编码位宽对应的所述Huffman编码数据左移L

N个位宽后存储于当前所述预设存储区;
[0036]若大于,将当前所述Huffman编码位宽对应的所述Huffman编码数据中位宽N的数
据存储于当前所述预设存储区,并将位宽M

N的数据存储于下一个所述预设存储区。
[0037]优选地,所述数据处理的装置,还包括:
[0038]遍历模块,用于遍历所述输入数据以统计各字符出现的频率;
[0039]构建模块,用于根据各所述字符出现的频率对所述输入数据构建Huffman树得到各所述输入数据对应的Huffman编码;
[0040]第一确定模块,用于依据所述Huffman树确定所述输入数据中各字符对应的Huffman叶子节点以得到各所述输入数据对应的所述Huffman编码数据和所述Huffman编码位宽。
[0041]输出模块,用于将当前所述预设存储区内的Huffman编码数据输出至第一指定存储区,并将前所述预设存储区内的各所述Huffman编码数据对应的Huffman编码位宽信息依次输出至第二指定存储区。
[0042]第一获取模块,用于获本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理的方法,其特征在于,包括:对输入数据进行Huffman编码得到对应的Huffman编码数据和Huffman编码位宽;判断当前所述Huffman编码位宽M是否小于或等于当前预设存储区的剩余位宽N;其中,各所述预设存储区的总位宽为L,所述L、所述M和所述N均为自然数;若小于或等于,将当前所述Huffman编码位宽对应的所述Huffman编码数据左移L

N个位宽后存储于当前所述预设存储区;若大于,将当前所述Huffman编码位宽对应的所述Huffman编码数据中位宽N的数据存储于当前所述预设存储区,并将位宽M

N的数据存储于下一个所述预设存储区。2.根据权利要求1所述的数据处理的方法,其特征在于,所述对输入数据进行Huffman编码得到对应的Huffman编码数据和Huffman编码位宽包括:遍历所述输入数据以统计各字符出现的频率;根据各所述字符出现的频率对所述输入数据构建Huffman树得到各所述输入数据对应的Huffman编码;依据所述Huffman树确定所述输入数据中各字符对应的Huffman叶子节点以得到各所述输入数据对应的所述Huffman编码数据和所述Huffman编码位宽。3.根据权利要求1所述的数据处理的方法,其特征在于,在将当前所述Huffman编码位宽对应的所述Huffman编码数据中位宽N的数据存储于当前所述预设存储区之后还包括:将当前所述预设存储区内的所述Huffman编码数据输出至第一指定存储区,并将前所述预设存储区内的各所述Huffman编码数据对应的Huffman编码位宽信息依次输出至第二指定存储区。4.根据权利要求3所述的数据处理的方法,其特征在于,在所述对输入数据进行Huffman编码得到对应的Huffman编码数据和Huffman编码位宽之后还包括:获取表征获取到所述输入数据的返回值;根据所述返回值确定是否获取到新的所述输入数据,若是,将所述输入数据存储至输入数据存储区。5.根据权利要求4所述的数据处理的方法,其特征在于,若未获取到新的所述输入数据,还包括判断所述输入数据存储区中是否存在未进行Huffman编码的数据;若存在,从所述输入数据存储区中依次读取预设长度的所述输...

【专利技术属性】
技术研发人员:牟奇刘伟张灿
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1