【技术实现步骤摘要】
编码、解码方法、装置、设备及存储介质
[0001]本申请涉及计算机
,尤其涉及一种编码
、
解码方法
、
装置
、
设备及存储介质
。
技术介绍
[0002]随着计算机技术的迅速发展,通过编码能够把人类能看懂的各种信息转换成计算机能够识别的二进制形式,以便计算机自动执行某些操作
。
编码的方式可以有很多种,
ASCII
码是一种比较常见的等长编码方式,由于任何字符的编码长度都相等,可能导致等长编码的编码结果太长,占用过多资源,因而,出现了一种可变长的编码方法
。
[0003]哈夫曼编码
(Huffman Coding)
是可变字长编码
(variable
‑
length coding
,
VLC)
的一种,其可以根据给定信息中各字符出现的频次,动态生成最优的编码
。
但是,在哈夫曼解码时,由于字符变长的特性,必须从前往后顺序解码,存在解码效率低的问题
。
技术实现思路
[0004]本申请提供一种编码
、
解码方法
、
装置
、
设备及存储介质,用以解决现有哈夫曼解码过程必须从前往后顺序解码,存在的解码效率低的问题
。
[0005]第一方面,本申请提供一种编码方法,包括:
[0006]获取待编码字符串,所述待编码字符串包括至少一个待编码 ...
【技术保护点】
【技术特征摘要】
1.
一种编码方法,其特征在于,包括:获取待编码字符串,所述待编码字符串包括至少一个待编码字符;确定各所述待编码字符的二进制编码,所述二进制编码至少包括分隔符;根据所有所述待编码字符的二进制编码,得到所述待编码字符串的二进制编码结果
。2.
根据权利要求1所述的方法,其特征在于,所述确定各所述待编码字符的二进制编码,包括:确定各所述待编码字符在所述待编码字符串中的出现频次;根据所述出现频次确定所述待编码字符的二进制编码,其中,出现频次高的所述待编码字符的二进制编码的长度小于出现频次低的所述待编码字符的二进制编码的长度
。3.
根据权利要求2所述的方法,其特征在于,所述根据所述出现频次确定所述待编码字符的二进制编码,包括:按照各所述待编码字符在所述待编码字符串中出现频次由高到底的顺序,确定各所述待编码字符的频次序号,所述频次序号为由1开始顺序标识的正整数;根据所述频次序号和所述分隔符,确定所述待编码字符的二进制编码
。4.
根据权利要求3所述的方法,其特征在于,所述待编码字符串包括根据所述频次序号和预置阈值划分的第一字符集和第二字符集,所述第一字符集中的第一待编码字符的频次序号小于或等于所述预置阈值,所述第二字符集中的第二待编码字符的频次序号大于所述预置阈值;针对所述第一字符集,所述分隔符包括取值相反的二进制的第一前缀符和结尾符,所述第一前缀符的位数等于所述频次序号的取值减1;针对所述第二字符集,所述分隔符包括取值相反的二进制的第二前缀符和结尾符,所述第二前缀符的位数比位数最多的所述第一前缀符的位数至少多1位
。5.
根据权利要求4所述的方法,其特征在于,所述第二待编码字符的二进制编码还包括根据所对应频次序号的二进制数确定的中间符
。6.
根据权利要求5所述的方法,其特征在于,若所述第二待编码字符对应频次序号减1的二进制位数小于或等于所述预置阈值,则所述中间符的位数等于所述预置阈值加1;若所述第二待编码字符对应频次序号减1的二进制位数大于所述预置阈值,则所述中间符的位数等于所述第二待编码字符对应频次序号减1的二进制位数
。7.
根据权利要求4至6任一项所述的方法,其特征在于,所述结尾符为一位的
1。8.
一种解码方法,其特征在于,包括:获取待解码字符串,所述待解码字符串包括多个二进制符号;确定所述多个二进制符号中的各分隔符;根据各所述分隔符,对所述待解码字符串进行解码,得到所述待解码字符串对应的各原始字符
。9.
根据权利要求8所述的方法,其特征在于,所述分隔符至少包括结尾符;所述确定所述多个二进制符号中的各分隔符,包括:确定所述多个二进制符号中的所有候选符号,所述候选符号和所述结尾符的二进制符
号相同;确定所述所有候选符号中的各结尾符;根据各所述结尾符,确定所述多个二进制符号中的各分隔符
。10.
根据权利要求9所述的方法,其特征在于,所述确定所述所有候选符号中的各结尾符,包括:确定所述待解码字符串在编码过程中使用的最大前缀位数
N
,所述
N
为正整数;针对所述所有候选符号中的任意一个候选符号,根据所述
N、
以及所述候选符号之前的组合序列,分别判断所述候选符号是否为结尾符,直至确定出所述所有候选符号中的各结尾符
。11.
根据权利要求
10
所述的方法,其特征在于,所述根据所述
N、
以及所述候选符号之前的组合序列,分别判断所述候选符号是否为结尾符,包括:判断所述候选符号的前
2*(N
‑
i)
个字符中是否存在第一组合序列,所述第一组合序列包括取值相反的二进制的结尾符和
(N
‑
i)
个1位的前缀符;若是,则在所述
(N
‑
i)
等于0时,确定所述候选符号不是结尾符;若否,则确定所述候选符号为结尾符;其中,所述
i
依次取
0、1、
……
,直至判断得到所述候选符号为所述结尾符或者不是所述结尾符,所述
i
为整数,
0≤i≤N。12.
根据权利要求9所述的方法,其特征在于,所述确定所述所有候选符号中的各结尾符,包括:确定所述待解码字符串在编码过程中使用的最大前缀位数
N
,所述
N
为正整数;在所述多个二进制符号中,按照前缀位数由多到少的顺序,依次执行第
(i+1)
次判断过程,直到确定出所有候选符号中的各结尾符,所述
i
依次取
0、1、
……
,所述
i
为整数,
0≤i≤N
;其中,所述第
(i+1)
次判断过程包括:判断各候选符号之前的
2*(N
‑
i)
个字符中是否存在第一组合序列,所述第一组合序列包括取值相反的二进制的结尾符和
(N
‑
i)
个1位的前缀符;将之前的
2*(N
‑
i)
个字符中未存在所述第一组合序列的候选符合确定为结尾符;对于之前的
2*(N
‑
i)
个字符中存在所述第一组合序列的各候选符合,则
i
=
i+1
,并继续执行第
(i+1)
次判断过程
。13.
根据权利要求9所述的方法,其特征在于,所述根据各所述结尾符,确定所述多个二进制符号中的各分隔符,包括:确定各所述结尾符之间的各二进制部分;根据各所述二进制部分的位数和预置阈值,确定各所述二进制部分对应的各频次序号,所述频次序号为由1开始顺序标识的正整数;根据各所述频次序号和各所述结尾符,确定所述多个二进制符号中的各分隔符
。14.
根据权利要求
13
所述的方法,其特征在于,若所述二进制部分的位数小于或等于所述预置阈值,则所述频次序号等于所述二进制部分的位数加1,所述分隔符包括取值相反的二进制的第一前缀符和所述结尾符,所述第一前缀符为所述二进制部分;
若所述二进制部分的位数大于所述预置阈值,则所述频次序号等于所述二进制部分对应的十进制数加1,所述分隔符包括取值相反的二进制的第二前缀符和所述结尾符,所述第二前缀符的位数比位数最多的所述第一前缀符的位数至少多1位
。15.
根据权利要求8至
14
任一项所述的方法,其特征在于,所述根据各所述分隔符,对所述待解码字符串进行解码,得到所述待解码字符串对应的各原始字符,包括:根据各所述分隔符,确定所述待解码字符串包括的各二进制编码;根据各所述二进制编码和预置阈值,确定各所述二进制编码对应的各频次序号;根据预置映射关系和各频次序号,确定所述待解码字符串对应的各原始字符,所述映射关系用于表示频次序号和原始字符的对应关系
。16.
根据权利要求9至
14
任一项所述的方法,其特征在于,所述结尾符为一位的
1。17.
一种编码装置,其特征在于,包括:获取模块,用于获取待编码字符串,所述待编码字符串包括至少一个待编码字符;处理模块,用于确定各所述待编码字符的二进制编码,所述二进制编码至少包括分隔符;所述处理模块,还用于根据所有所述待编码字符的二进制编码,得到所述待编码字符串的二进制编码结果
。18.
根据权利要求
17
所述的装置,其特征在于,所述处理模块,具体用于:确定各所述待编码字符在所述待编码字符串中的出现频次;根据所述出现频次确定所述待编码字符的二进制编码,其中,出现频次高的所述待编码字符的二进...
【专利技术属性】
技术研发人员:请求不公布姓名,请求不公布姓名,
申请(专利权)人:寒武纪昆山信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。