【技术实现步骤摘要】
数据编码方法
本申请涉及计算机
,特别是涉及一种数据编码方法。
技术介绍
Huffman编码是一种可变字长编码,其依据字符出现概率来构造非前缀的平均长度最短的码字。Huffman编码的通常做法是依据数据中符号的出现频率进行排序,每次挑选概率最小的两组合并分支,合并分之后的字符算作一组,构造出Huffman树,所有的字符都是叶子结点,约定从根结点开始向左为0向右为1,到达叶子结点路径上的bit共同组成该字符的Huffman编码。然而,Huffman编码在确定各个符号的编码值时,必须确定符号所处的叶子节点到达根结点的路径上每一分支的数值,该方法确定各个符号的编码值的过程繁琐,易出错。
技术实现思路
基于此,有必要针对上述技术问题,提供一种编码方法和解码方法,该编码方法和解码方法确定各个符号的编码值的过程简单,出错率低。一种数据编码方法,所述方法包括:将待编码数据中各个符号的Huffman编码的码长,作为待编码数据中各个符号的编码码长;根据待编码数据中各个符号的出现频率,降 ...
【技术保护点】
1.一种数据编码方法,其特征在于,所述方法包括:/n将待编码数据中各个符号的Huffman编码的码长,作为待编码数据中各个符号的编码码长;/n根据待编码数据中各个符号的出现频率,降序排列所述待编码数据中的各个所述符号,得到各个所述符号的排序值;/n若当前符号的编码码长与上一排序值的符号的编码码长相同,则将所述上一排序值的符号的编码值加1,得到所述当前符号的编码值;若当前符号的编码码长与上一排序值的符号的编码码长不同,则将所述上一排序值的符号的编码值加1得到的数值后并补充尾数0,得到所述当前符号的编码值;/n根据各个符号对应的符号的编码值,对所述待编码数据进行编码。/n
【技术特征摘要】
1.一种数据编码方法,其特征在于,所述方法包括:
将待编码数据中各个符号的Huffman编码的码长,作为待编码数据中各个符号的编码码长;
根据待编码数据中各个符号的出现频率,降序排列所述待编码数据中的各个所述符号,得到各个所述符号的排序值;
若当前符号的编码码长与上一排序值的符号的编码码长相同,则将所述上一排序值的符号的编码值加1,得到所述当前符号的编码值;若当前符号的编码码长与上一排序值的符号的编码码长不同,则将所述上一排序值的符号的编码值加1得到的数值后并补充尾数0,得到所述当前符号的编码值;
根据各个符号对应的符号的编码值,对所述待编码数据进行编码。
2.根据权利要求1所述的方法,其特征在于,所述根据各个符号对应的符号的编码值,对所述待编码数据进行编码,包括:
将待编码数据中各个符号按照出现频率降序排列,得到各个符号的排序值,并根据所述各个符号的排序值得到符号序列表;
根据所述待编码数据中各个符号的编码码长得到码长表;
根据所述待编码数据中各个符号的编码码长和排序值,得到待编码数据的码长边界表以及码长基础值表;
使用所述符号序列表、所述码长表、所述码长边界表以及所述码长基础值表,对所述待编码数据中各个符号进行编码。
3.根据权利要求2所述的方法,其特征在于,根据所述待编码数据中各个符号的编码码长和排序值,得到待编码数据的码长边界表以及码长基础值表,包括:
查找所述符号序列表中每种编码码长的最大排序值的符号,并使用所述最大排序值构建所述码长边界表;
根据各个所述最大排序值以及与各个所述最大排序值对应的编码值,得到每种编码码长的基础值,根据所述每种编码码长的基础值得到所述码长基础值表。
4.根据权利要求3所述的方法,其特征在于,使用所述最大排序值构建所述码长边界表,包括:
将码长边界表中的各个最大排序值升序排列,得到所述码长边界表。
5.根据权...
【专利技术属性】
技术研发人员:不公告发明人,
申请(专利权)人:上海寒武纪信息科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。