一种数据处理的方法、装置及介质与流程

文档序号:31127730发布日期:2022-08-13 04:11阅读:55来源:国知局
一种数据处理的方法、装置及介质与流程

1.本技术涉及数据处理技术领域,特别是涉及一种数据处理的方法、装置及介质。


背景技术:

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


技术实现要素:

6.本技术的目的是提供一种数据处理的方法、装置及介质,实现在进行huffman编码时节约存储空间。
7.为解决上述技术问题,本技术提供一种数据处理的方法,包括:
8.对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽;
9.判断当前所述huffman编码位宽m是否小于或等于当前预设存储区的剩余位宽n;其中,各所述预设存储区的总位宽为l,所述l、所述m和所述n均为自然数;
10.若小于或等于,将当前所述huffman编码位宽对应的所述huffman编码数据左移l-n个位宽后存储于当前所述预设存储区;
11.若大于,将当前所述huffman编码位宽对应的所述huffman编码数据中位宽n的数据存储于当前所述预设存储区,并将位宽m-n的数据存储于下一个所述预设存储区。
12.优选地,所述对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽包括:
13.遍历所述输入数据以统计各字符出现的频率;
14.根据各所述字符出现的频率对所述输入数据构建huffman树得到各所述输入数据对应的huffman编码;
15.依据所述huffman树确定所述输入数据中各字符对应的huffman叶子节点以得到各所述输入数据对应的所述huffman编码数据和所述huffman编码位宽。
16.优选地,在将当前所述huffman编码位宽对应的所述huffman编码数据中位宽n的数据存储于当前所述预设存储区之后还包括:
17.将当前所述预设存储区内的所述huffman编码数据输出至第一指定存储区,并将前所述预设存储区内的各所述huffman编码数据对应的huffman编码位宽信息依次输出至第二指定存储区。
18.优选地,在所述对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽之后还包括:
19.获取表征获取到所述输入数据的返回值;
20.根据所述返回值确定是否获取到新的所述输入数据,若是,将所述输入数据存储至输入数据存储区。
21.优选地,若未获取到新的所述输入数据,还包括
22.判断所述输入数据存储区中是否存在未进行huffman编码的数据;
23.若存在,从所述输入数据存储区中依次读取预设长度的所述输入数据,并进入所述对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽的步骤。
24.优选地,还包括:
25.获取所述第一指定存储区内的所述huffman编码数据和所述第二指定存储区内所述huffman编码位宽;
26.依次对各所述huffman编码位宽对应的所述huffman编码数据进行解码;
27.判断所述第二指定存储区是否为空,若不为空,则进入对各所述huffman编码位宽对应的所述huffman编码数据进行解码的步骤。
28.优选地,所述对各所述huffman编码位宽对应的所述huffman编码数据进行解码包括:
29.根据所述huffman编码位宽信息得到各所述huffman编码位宽对应的所述huffman编码数据;
30.依据huffman树确定各所述huffman编码数据中各编码对应的huffman叶子节点以得到各编码对应的原始数据;
31.将各编码对应的原始数据进行拼接得到所述huffman编码数据对应的所述输入数据。
32.为了解决上述技术问题,本技术还提供了一种数据处理的装置,包括:
33.编码模块,用于对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽;
34.第一处理模块,用于判断当前所述huffman编码位宽m是否小于或等于当前预设存储区的剩余位宽n;其中,各所述预设存储区的总位宽为l,所述l、所述m和所述n均为自然数;
35.若小于或等于,将当前所述huffman编码位宽对应的所述huffman编码数据左移l-n个位宽后存储于当前所述预设存储区;
36.若大于,将当前所述huffman编码位宽对应的所述huffman编码数据中位宽n的数
据存储于当前所述预设存储区,并将位宽m-n的数据存储于下一个所述预设存储区。
37.优选地,所述数据处理的装置,还包括:
38.遍历模块,用于遍历所述输入数据以统计各字符出现的频率;
39.构建模块,用于根据各所述字符出现的频率对所述输入数据构建huffman树得到各所述输入数据对应的huffman编码;
40.第一确定模块,用于依据所述huffman树确定所述输入数据中各字符对应的huffman叶子节点以得到各所述输入数据对应的所述huffman编码数据和所述huffman编码位宽。
41.输出模块,用于将当前所述预设存储区内的huffman编码数据输出至第一指定存储区,并将前所述预设存储区内的各所述huffman编码数据对应的huffman编码位宽信息依次输出至第二指定存储区。
42.第一获取模块,用于获取表征获取到所述输入数据的返回值;
43.第二处理模块,用于根据所述返回值确定是否获取到新的所述输入数据,若是,将所述输入数据存储至输入数据存储区。
44.判断模块,用于判断所述输入数据存储区中是否存在未进行huffman编码的数据,若存在,调用读取模块;
45.所述读取模块,用于从所述输入数据存储区中依次读取预设长度的所述输入数据,并进入所述对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽的步骤。
46.第二获取模块,用于获取所述第一指定存储区内的所述huffman编码数据和所述第二指定存储区内所述huffman编码位宽;
47.解码模块,用于依次对各所述huffman编码位宽对应的所述huffman编码数据进行解码;
48.第三处理模块,用于判断所述第二指定存储区是否为空,若不为空,则进入对各所述huffman编码位宽对应的所述huffman编码数据进行解码的步骤。
49.第三获取模块,用于根据所述huffman编码位宽信息得到各所述huffman编码位宽对应的所述huffman编码数据;
50.第二确定模块,用于依据huffman树确定各所述huffman编码数据中各编码对应的huffman叶子节点以得到各编码对应的原始数据;
51.拼接模块,用于将各编码对应的原始数据进行拼接得到所述huffman编码数据对应的所述输入数据。
52.为了解决上述技术问题,本技术还提供了一种数据处理的装置,包括存储器,用于存储计算机程序;
53.处理器,用于执行所述计算机程序时实现所述的数据处理的方法的步骤。
54.为了解决上述技术问题,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的数据处理的方法的步骤。
55.本发明所提供的一种数据处理的方法,包括:对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽,并判断当前huffman编码位宽m是否小于或等于
当前预设存储区的剩余位宽n,其中,l、m和n均为自然数,且各预设存储区的总位宽为l。若m小于或等于n时,将当前huffman编码位宽对应的huffman编码数据左移l-n个位宽后存储于当前预设存储区,若m大于n时,将当前huffman编码位宽对应的huffman编码数据中位宽n的数据存储于当前预设存储区,并将位宽m-n的数据存储于下一个预设存储区。由此可见,本技术所提供的技术方案,将输入数据进行huffman编码得到huffman编码数据和huffman编码位宽后,将huffman编码依次存储至各预设存储区,当前预设存储区存储满之后,再使用下一个预设存储区进行存储,进而避免一个huffman编码使用一个预设存储区导致存储空间浪费。
56.此外,本技术还提供一种数据处理的装置和介质,与上述的数据处理的方法相对应,效果同上。
附图说明
57.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
58.图1为本技术实施例所提供的一种数据处理的方法的流程图;
59.图2为本技术实施例所提供的一种数据处理的装置的结构图;
60.图3为本发明另一实施例提供的一种数据处理的装置的结构图。
具体实施方式
61.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
62.本技术的核心是提供一种数据处理的方法、装置及介质,在对数据进行huffman编码后,根据huffman编码位宽将huffman编码数据存储于预设存储空间中,当当前预设存储空间存储满时,再使用下一个预设存储空间进行存储,进而避免huffman编码数据中一个huffman编码占用一个预设存储空间导致存储空间的浪费。
63.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
64.随着大数据、云计算和5g等技术的快速发展,互联网数据量出现爆发式的增长。海量的数据给数据存储和数据传输带宽带来巨大挑战,所以,实现数据的高效压缩和存储成为人们越来越关注的热点。
65.哈夫曼编码是一种根据字符出现的概率来构造平均长度最短的编码方式,即将出现概率大的字符采用较短的存储编码,出现概率小的字符采用较长的存储编码,由此有效减小数据存储空间,同时,由于数据存储空间变小,对数据的传输带宽要求也降低。因此,huffman编码常用于数据的压缩和解压。
66.虽然采用huffman编码可以压缩数据以减小数据字节数,进而减小存储空间,但进行huffman编码后的每个字节依旧使用8比特(bit)存储空间,事实上,存储每个字节实际上
需要的存储空间可能小于8bit存储空间,进而导致存储空间的浪费。例如,占用6个字节的数据a,经huffman编码为101,编码101需要占用3个字节,进而需要使用24bit存储空间,实际上编码101仅需要使用3bit存储空间即可,可见,huffman编码时可变字长数据非固定字节对齐会导致存储空间的浪费。
67.为了避免一个huffman编码使用一个8bit存储空间,导致存储空间浪费,本技术实施例提供了一种数据处理的方法,在对输入数据进行huffman编码后,根据huffman编码位宽将对应的huffman编码数据依次存储于预设存储空间中,当当前预设存储空间占满时,使用下一预设存储空间进行存储,由此避免huffman编码数据中一个huffman编码使用一个预设存储空间导致存储空间的浪费。
68.图1为本技术实施例所提供的一种数据处理的方法的流程图,如图1所示,该方法包括:
69.s10:对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽。
70.在具体实施例中,遍历输入数据,并统计输入数据中各字符出现的频率,以便于根据各字符出现的频率对输入数据进行huffman编码。在进行huffman编码时,构建huffman树以确定输入数据中各字符对应的huffman编码,并依据huffman树确定输入数据中各字符对应的叶子节点,进而得到输入数据的huffman编码数据和huffman编码位宽。
71.需要说明的是,huffman编码数据为依据huffman树中找到输入数据中各字符对应的叶子节点,并将叶子节点对应的编码进行组合得到输入数据对应的huffman编码数据,即huffman编码数据为huffman编码的组合。例如,输入数据为abc,数据a对应的huffman编码为1,数据b对应的huffman编码为1,数据c对应的huffman编码为0,则输入数据abc对应的huffman编码数据。
72.s11:判断当前huffman编码位宽m是否小于或等于当前预设存储区的剩余位宽n;其中,各预设存储区的总位宽为l,l、m和n均为自然数,若小于或等于,进入步骤s12,若大于,进入步骤s13。
73.s12:将当前huffman编码位宽对应的huffman编码数据左移l-n个位宽后存储于当前预设存储区。
74.s13:将当前huffman编码位宽对应的huffman编码数据中位宽n的数据存储于当前预设存储区,并将位宽m-n的数据存储于下一个预设存储区。
75.对输入数据进行huffman编码得到huffman编码数据和huffman编码位宽后,若当前huffman编码位宽m小于或等于当前预设存储区的剩余位宽n时,即m≤n时,将当前huffman编码位宽m对应的huffman编码数据左移l-n各位宽后存储于当前预设存储区。需要注意的是,在存储数据时,依次将数据从预设存储区的最左侧向右侧进行存储。此外,还需要注意的是,预设存储区为多个,且各预设存储区的总位宽均为l,位宽l、m和n均为自然数。为了便于理解,下面将举例说明。
76.例如,预设存储区总位宽为l为8,从左至右对预设存储区域各位宽对应的存储区进行标号0-7,当前预设存储区的剩余位宽n为5,则标号0-2对应的存储区域已占用,若当前huffman编码位宽m为2,则m<n,此时将huffman编码位宽m对应的huffman编码数据左移l-n=3个位宽后存储数据,即从标号3对应的存储区域开始存储huffman编码数据,可以理解的
是,huffman编码数据存储于当前预设存储区标号为3-4对应的存储区。
77.若当前huffman编码位宽m大于当前预设存储区的剩余位宽n时,即m>n时,将当前huffman编码位宽对应的huffman编码数据中位宽n的数据存储于当前预设存储区,并将位宽m-n的数据存储于下一个预设存储区。为了便于理解,下面将举例说明。
78.例如,预设存储区总位宽为l为8,从左至右对预设存储区域各位宽对应的存储区进行标号0-7,当前预设存储区的剩余位宽n为3,则标号0-4对应的存储区域已占用,若当前huffman编码位宽m为6,即m>n,此时将当前huffman编码位宽n对应的huffman编码数据存储于当前预设存储区,即将当前huffman编码3对应的huffman编码数据存储于当前预设存储区域的剩余位宽3中,可以理解的是,存储于当前预设存储区标号为5-7对应的存储区。并将剩下m-n=3位宽对应的huffman编码数据存储于下一个预设存储区,即存储于下一个预设存储区标号为0-2对应的存储区内。
79.可以理解的是,本技术实施例所提供的数据处理的方法,当预设存储区为8bit的存储空间时,每占满一个8bit预设存储区后,再使用下一个8bit预设存储区,进而避免了huffman编码数据中一个huffman编码就只用一个8bit预设存储区造成存储空间的浪费。
80.在步骤s10中,对输入数据进行huffman编码后,获取表征获取到输入数据的返回值,以便确定是都获取到新的输入数据。在收到新的输入数据时,将输入数据存储于输入数据存储区,然后依次从输入数据存储区中读取预设长度的输入数据进行编码。若依据返回值确定未获取到新的输入数据,此时,判断输入数据存储区中是否存在未进行huffman编码的数据,若存在,则对输入数据进行huffman编码,若不存在,表征huffman编码结束,即表征数据压缩结束。
81.事实上,为了便于后续对huffman编码数据进行解码,将步骤s10得到的huffman编码数据和huffman编码位宽信息分别存储于第一指定存储区和第二指定存储区。
82.在实施中,对huffman编码数据进行解码时,即对压缩数据进行解压时,获取第一指定存储区内的huffman编码数据和第二指定存储区的huffman编码位宽信息,并依据huffman编码位宽信息得到对应的huffman编码数据,并根据建立的huffman树依次对huffman编码数据进行解码。值得注意的是,huffman编码位宽信息包括huffman编码位宽和在各预设存储区内对应的标号信号。第huffman编码数据进行解码得到原始数据。最后,依据huffman编码位宽信息对各原始数据进行拼接得到对应的输入数据。
83.本技术实施例所提供的数据处理的方法,包括:对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽,并判断当前huffman编码位宽m是否小于或等于当前预设存储区的剩余位宽n,其中,l、m和n均为自然数,且各预设存储区的总位宽为l。若m小于或等于n时,将当前huffman编码位宽对应的huffman编码数据左移l-n个位宽后存储于当前预设存储区,若m大于n时,将当前huffman编码位宽对应的huffman编码数据中位宽n的数据存储于当前预设存储区,并将位宽m-n的数据存储于下一个预设存储区。由此可见,本技术所提供的技术方案,将输入数据进行huffman编码得到huffman编码数据和huffman编码位宽后,将huffman编码依次存储至各预设存储区,当前预设存储区存储满之后,再使用下一个预设存储区进行存储,进而避免一个huffman编码使用一个预设存储区导致存储空间浪费,即避免可变字长输出不对齐造成的资源空间浪费。
84.在具体实施例中,对输入数据进行huffman编码时,首先遍历输入数据,并对输入
数据中各字符出现的频率进行统计,然后根据各字符出现的频率构建huffman树,其中,huffman树的每个叶子节点对应生成huffman编码。构建huffman树后,依据huffman树中各huffman叶子节点对应的huffman编码获取输入数据各字符的huffman编码,并将各huffman编码进行拼接组合得到huffman编码数据,此外,记录各输入数据对应的huffman编码位宽。
85.本技术实施例所提供的数据处理的方法,通过huffman编码对输入数据进行编码,实现对数据的压缩,在存储数据时节约存储空间,实现节约资源的目的。
86.在上述实施例的基础上,避免无新的输入数据需要压缩时造成的资源浪费,对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽后,获取表征是否获取到输入数据的返回值,在根据返回值确定获取到新的输入数据后,将新的输入数据存储于输入数据存储区,以便从输入数据存储区中读取预设长度的输入数据进行huffman编码。
87.若根据返回值确定没有获取到新的返回值时,进一步判断输入数据存储区中是否存在未进行压缩的输入数据,即是否存在未进行huffman编码的数据,若存在,依次从输入数据存储区中读取预设长度的数据进行huffman编码,直至输入数据存储区中所有数据全部编码完成为止。
88.需要说明的是,获取表征获取到输入数据的返回值可以是数字,也可以是字母,还可以是文字,对此本技术不作限定。例如,当返回值为1时,表征获取到输入数据,当返回值为0时,表征未获取到输入数据。
89.本技术实施例所提供的数据处理的方法,在对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽之后,获取表征获取到输入数据的返回值,并根据返回值确定是否获取到新的输入数据,若获取到新的输入数据将其存储于输入数据存储区,若未获取到新的输入数据,则进一步判断输入数据存储区中是否存在未进行huffman编码的数据,若存在,从输入数据存储区中依次读取预设长度的输入数据,以便进行输入数据进行压缩。由此,避免在没有输入需要进行压缩时,造成资源浪费,提高数据huffman编码的可靠性。
90.在实施中,可以理解的是,若当前所述huffman编码位宽m大于当前预设存储区的剩余位宽n时,将当前huffman编码位宽对应的huffman编码数据中位宽n的数据存储于当前预设存储区之后,当前预设存储区即被占满,此时,将当前预设存储区内的huffman编码数据输出至第一指定存储区,并将前预设存储区内的各huffman编码数据对应的huffman编码位宽信息依次输出至第二指定存储区。
91.在需要对压缩后的数据进行解压时,即对huffman编码数据进行解码时,先从第一指定存储区内的获取huffman编码数据,从第二指定存储区内获取huffman编码位宽,然后依次对各huffman编码位宽对应的huffman编码数据进行解码,在确定第二预设存储区为空时,确定huffman编码数据解码结束。
92.本技术实施例所提供的数据处理的方法,将进行huffman编码后的huffman编码数据和huffman编码位宽分别存储于第一指定存储区和第二指定存储区,以便于根据第二指定存储区内的huffman编码位宽对第一指定存储区内的huffman编码数据进行解码,实现快速定位和解码huffman编码数据,提高数据处理的效率。
93.具体的,在对各huffman编码位宽对应的huffman编码数据进行解码时,先根据
huffman编码位宽信息得到各huffman编码位宽对应的huffman编码数据,然后根据构建的huffman树确定各huffman编码数据中各编码对应的huffman叶子节点,然后依据各huffman叶子节点对应的原始数据得到huffman编码数据对应的原始数据。最后,将各huffman叶子节点对应的原始数据进行拼接得到输入数据,进而完成huffman编码数据的解码。
94.值得注意的是,huffman编码位宽信息至少包括huffman编码数据对应的位宽和存储于各预设存储区内的具体位置,对huffman编码位宽信息的具体内容本技术不作限定。
95.本技术实施例所提供的数据处理的方法,在对各huffman编码位宽对应的huffman编码数据进行解码时,根据huffman编码位宽信息得到各huffman编码位宽对应的huffman编码数据,并依据huffman树确定各huffman编码数据中各编码对应的huffman叶子节点以得到各编码对应的原始数据,最后,将各编码对应的原始数据进行拼接得到huffman编码数据对应的输入数据。由此,实现对huffman编码数据的解码,即对数据的解压。可见,本技术所提供的技术方案,在对数据进行huffman编码后,提供对应的huffman解码,实现对huffman编码数据的快速定位和解码,提升数据处理的效率。
96.在上述实施例中,对于数据处理的方法进行了详细描述,本技术还提供一种数据处理的装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件结构的角度。
97.图2为本技术实施例所提供的一种数据处理的装置的结构图,如图2所示,该装置包括:
98.编码模块10,用于对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽。
99.第一处理模块11,用于判断当前huffman编码位宽m是否小于或等于当前预设存储区的剩余位宽n;其中,各预设存储区的总位宽为l,l、m和n均为自然数,若小于或等于,将当前huffman编码位宽对应的huffman编码数据左移l-n个位宽后存储于当前预设存储区,若大于,将当前huffman编码位宽对应的huffman编码数据中位宽n的数据存储于当前预设存储区,并将位宽m-n的数据存储于下一个预设存储区。
100.优选地,本技术实施例所提供的数据处理的装置,还包括:
101.遍历模块,用于遍历输入数据以统计各字符出现的频率。
102.构建模块,用于根据各字符出现的频率对输入数据构建huffman树得到各输入数据对应的huffman编码。
103.第一确定模块,用于依据huffman树确定输入数据中各字符对应的huffman叶子节点以得到各输入数据对应的huffman编码数据和huffman编码位宽。
104.输出模块,用于将当前预设存储区内的huffman编码数据输出至第一指定存储区,并将前预设存储区内的各huffman编码数据对应的huffman编码位宽信息依次输出至第二指定存储区。
105.第一获取模块,用于获取表征获取到输入数据的返回值。
106.第二处理模块,用于根据返回值确定是否获取到新的输入数据,若是,将输入数据存储至输入数据存储区。
107.判断模块,用于判断输入数据存储区中是否存在未进行huffman编码的数据,若存在,调用读取模块。
108.读取模块,用于从输入数据存储区中依次读取预设长度的输入数据,并进入对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽的步骤。
109.第二获取模块,用于获取第一指定存储区内的huffman编码数据和第二指定存储区内huffman编码位宽。
110.解码模块,用于依次对各huffman编码位宽对应的huffman编码数据进行解码。
111.第三处理模块,用于判断第二指定存储区是否为空,若不为空,则进入对各huffman编码位宽对应的huffman编码数据进行解码的步骤。
112.第三获取模块,用于根据huffman编码位宽信息得到各huffman编码位宽对应的huffman编码数据。
113.第二确定模块,用于依据huffman树确定各huffman编码数据中各编码对应的huffman叶子节点以得到各编码对应的原始数据。
114.拼接模块,用于将各编码对应的原始数据进行拼接得到huffman编码数据对应的输入数据。
115.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
116.本技术实施例所提供的数据处理的装置,包括:对输入数据进行huffman编码得到对应的huffman编码数据和huffman编码位宽,并判断当前huffman编码位宽m是否小于或等于当前预设存储区的剩余位宽n,其中,l、m和n均为自然数,且各预设存储区的总位宽为l。若m小于或等于n时,将当前huffman编码位宽对应的huffman编码数据左移l-n个位宽后存储于当前预设存储区,若m大于n时,将当前huffman编码位宽对应的huffman编码数据中位宽n的数据存储于当前预设存储区,并将位宽m-n的数据存储于下一个预设存储区。由此可见,本技术所提供的技术方案,将输入数据进行huffman编码得到huffman编码数据和huffman编码位宽后,将huffman编码依次存储至各预设存储区,当前预设存储区存储满之后,再使用下一个预设存储区进行存储,进而避免一个huffman编码使用一个预设存储区导致存储空间浪费。
117.图3为本发明另一实施例提供的一种数据处理的装置的结构图,如图3所示,数据处理的装置包括:存储器20,用于存储计算机程序;
118.处理器21,用于执行计算机程序时实现如上述实施例所提到的数据处理的方法的步骤。
119.本实施例提供的数据处理的装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
120.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(digital signal processor,简称dsp)、现场可编程门阵列(field-programmable gate array,简称fpga)、可编程逻辑阵列(programmable logic array,简称pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,简称cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(graphics processing unit,简称gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实
施例中,处理器21还可以包括人工智能(artificial intelligence,简称ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
121.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的数据处理的方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于数据处理的方法中所涉及的相关数据。
122.在一些实施例中,数据处理的装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
123.本领域技术人员可以理解,图3中示出的结构并不构成对数据处理的装置的限定,可以包括比图示更多或更少的组件。
124.本技术实施例提供的数据处理的装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:根据huffman编码位宽一次将huffman编码数据存储于预设存储区内,当前预设存储区存满时,再使用下一预设存储区进行存储,进而实现节约存储空间。
125.本技术实施例所提供的数据处理的装置,将输入数据进行huffman编码得到huffman编码数据和huffman编码位宽后,将huffman编码依次存储至各预设存储区,当前预设存储区存储满之后,再使用下一个预设存储区进行存储,进而避免一个huffman编码使用一个预设存储区导致存储空间浪费。
126.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
127.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
128.以上对本技术所提供的一种数据处理的方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
129.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1