[发明专利]规范化哈夫曼编解码方法及神经网络计算芯片在审
申请号: | 202111639628.2 | 申请日: | 2021-12-29 |
公开(公告)号: | CN114429200A | 公开(公告)日: | 2022-05-03 |
发明(设计)人: | 王秉睿;支天;郭崎 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06F40/126 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;陈思远 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 规范化 哈夫曼编 解码 方法 神经网络 计算 芯片 | ||
本发明提出一种规范化哈夫曼编码方法和神经网络计算芯片,包括:对该神经网络数据进行游程全零编码,得到游程压缩数据,其中该游程全零编码包括仅对该神经网络数据中的零字符进行游程编码;对该游程压缩数据进行哈夫曼编码,并自上而下地将编码结果中每一级节点中的叶子节点编码进行加1左移,以将该编码结果中每一级节点中的叶子节点移到树结构的左侧,生成该编码结果的规范哈夫曼编码,作为该神经网络数据的压缩结果。
技术领域
本发明涉及神经网络运算领域,并特别涉及一种规范化哈夫曼编解码方法及神经网络计算芯片。
背景技术
熵编码是无损压缩算法的一个分支,在压缩解压的过程中按熵原理不会损失任何信息,其中信息熵表征信源不确定性的测度。熵编码算法的种类很多,本文主要介绍其中具有代表性的两种:哈夫曼编码和算术编码。
哈夫曼编码(Huffman Coding),由Huffman在1952年首次提出,是一种基于最优二叉树(也称作哈夫曼树)结构的变长编码。其主要思想是待编码序列当中的每个字符(literal)都作为二叉树的叶节点,从而满足前缀编码(Prefix Coding)的性质,即每个字符的编码都不是其它任何字符的编码前缀,以此降低解码的复杂程度。
具体实现中,哈夫曼编码需要对每个字符进行词频统计,不断地将频率最小的两个子节点合并,作为其父节点的频率,递归直至产生根节点。如此生长出一棵二叉树的过程同时也是产生哈夫曼码表的过程,而每个字符的编码在哈夫曼树当中对应着根节点到其中一个叶节点的路径,分支向左则添加0,分支向右则添加1。图1给出了序列{AABBCCCDDDDEEEEE}对应的哈夫曼树,图2为这棵哈夫曼树对应的编码结果。
从上述哈夫曼树的构建过程可以看到此编码具有两个特点:
(1)词频越高的字符编码长度越小,因此整体字符序列的加权编码长度最优,因此哈夫曼编码被认为是压缩比最佳的熵编码。
(2)同一个字符序列构建出的哈夫曼树并不唯一,比如举例当中字符A和B的父节点与字符D对应的叶节点频率相等,因此哈夫曼编码也有很多变种,不同的实现方式的硬件开销可能差别很大。
发明内容
具体来说,本发明提出一种规范化哈夫曼编码方法,包括:
步骤1、获取待规范的哈夫曼树数据;
步骤2、自上而下地将该哈夫曼树数据中每一级节点中的叶子节点编码进行加1左移,以将该哈夫曼树数据中每一级节点中的叶子节点移到树结构的左侧,生成并存储该哈夫曼树数据的规范编码数据。
所述的规范化哈夫曼编码方法,其中该哈夫曼树数据为字符序列,该步骤2包括:
步骤21、将该字符序列中所有待编码字符按照出现频率的降序排列,构成第一表;
步骤22、提取该字符序列中涉及的所有有效码长,升序排列所有有效码长,构成第二表;
步骤23、提取该字符序列中各有效码长的最后一个码字对应的字符在该第一表中的排序下标,构成第三表;
步骤24、提取该字符序列中每个有效码长的最后一个码字的数值,构成第四表;
步骤25、用第四表减去该第三表,构成第五表;
步骤26、按顺序依次提取该字符序列中字符作为当前字符,通过访问该第一表,得到当前字符的排序;访问该第三表,得到大于等于该排序的第一项下标index;访问该第五表和该第二表,得到下标对应的基值和码长,该基值与该排序相加作为当前字符的码字数值,以该码长表示该码字数值即为当前字符的规范编码;
步骤27、按顺序集合该字符序列中所有字符的规范编码,得到该规范编码数据。
所述的规范化哈夫曼解码方法,其中包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111639628.2/2.html,转载请声明来源钻瓜专利网。