[发明专利]编码方法和装置有效
申请号: | 201711076208.1 | 申请日: | 2017-11-03 |
公开(公告)号: | CN108092670B | 公开(公告)日: | 2019-06-07 |
发明(设计)人: | 马传文;钟炎培 | 申请(专利权)人: | 西安万像电子科技有限公司 |
主分类号: | H03M7/40 | 分类号: | H03M7/40 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 赵囡囡 |
地址: | 710075 陕西省西安*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编码符号 寄存器组 概率 分层 待编码数据 方法和装置 相加 编码数据编码 哈夫曼编码 计算资源 相加结果 最顶层 预设 写入 存储 消耗 | ||
本发明公开了一种编码方法和装置。其中,该方法包括:根据待编码数据中编码符号出现的频次,对第一寄存器组进行分层,第一寄存器组存储有按预设顺序排列的编码符号的概率;根据第一寄存器组的分层结果对第二寄存器组分层;将第二寄存器组的第n层中的概率与第一寄存器组中第n层的概率由小至大两两相加,并将相加结果写入第二寄存器组的第n+1层,同时,对相加的概率对应的编码符号的编码长度加一;当待编码数据的所有编码符号的概率都上升至最顶层时,得到编码符号对应的编码长度;根据每个编码符号和每个编码符号对应的编码长度对待编码数据编码。本发明解决了现有技术哈夫曼编码计算编码长度时消耗的计算资源较多的技术问题。
技术领域
本发明涉及编码领域,具体而言,涉及一种编码方法和装置。
背景技术
Huffman编码是一种最优的前缀编码技术,对于出现次数较多的符号使用较短的编码表示,对于出现次数较少的符号使用较长的编码表示。哈夫曼算法的性能十分优异,广泛应用于图像处理、云计算的海量数据处理中的压缩、解压缩,可以大幅度的降低数据的存储空间,提升数据传输的吞吐率。
传统的Huffman实现方式中,一般是基于软件平台的实现方式,编码过程是串行处理的过程,二叉树大量占用内存、码表过大、编解码速度慢。而在硬件实现过程中,字符的概率排序和二叉树的构建过程也非常耗时。
目前Huffman编码的方法主要有以下几种方式:
方案一:根据某种特定的应用场景,统计出一种普遍的字符概率,构建固定二叉树和Huffman码表。在编解码过程中省去了概率统计、二叉树构建的难点。
方案二:动态的Huffman编码,在硬件电路上实现统计字符概率长度和利用堆排序的方法构建二叉树的过程。
方案一的实现方案主要存在以下缺点:只能应用于特殊的场景中;压缩比不是最优的。因为利用普遍的字符出现的概率来代替一段固定的字符,所以固定码表的二叉树不是最优的;方案二的实现方案主要存在的缺陷是堆排序方法非常耗时。
针对现有技术哈夫曼编码计算编码长度时消耗的计算资源较多的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种编码方法和装置,以至少解决现有技术哈夫曼编码计算编码长度时消耗的计算资源较多的技术问题。
根据本发明实施例的一个方面,提供了一种编码方法,包括:根据待编码数据中编码符号出现的频次,对第一寄存器组进行分层,第一寄存器组存储有按预设顺序排列的编码符号的概率;根据第一寄存器组的分层结果对第二寄存器组分层;将第二寄存器组的第n层中的概率与第一寄存器组中第n层的概率由小至大两两相加,并将相加结果写入第二寄存器组的第n+1层,同时,对相加的概率对应的编码符号的编码长度加一;当待编码数据的所有编码符号的概率都上升至最顶层时,得到编码符号对应的编码长度;根据每个编码符号和每个编码符号对应的编码长度对待编码数据编码。
进一步地,将第一寄存器组分为N层;确定N层中每层对应的频次范围,其中,第n层对应的频次范围为(2n-1,2n],1<n≤N。
进一步地,将第二寄存器组分为N层;根据第一寄存器组中第n-1层的频次范围和第二寄存器组种第n-1层的频次范围确定第二寄存器组中第n层对应的频次范围,其中,第二寄存器组的第一层不进行存储。
进一步地,将每个编码符号按照出现的频率依次写入第一寄存器组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安万像电子科技有限公司,未经西安万像电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711076208.1/2.html,转载请声明来源钻瓜专利网。