[发明专利]一种霍夫曼编码实现方法、系统、设备及计算机存储介质有效
申请号: | 201810940547.8 | 申请日: | 2018-08-17 |
公开(公告)号: | CN108933599B | 公开(公告)日: | 2021-10-29 |
发明(设计)人: | 曹芳;李仁刚;赵雅倩 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | H03M7/40 | 分类号: | H03M7/40 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 霍夫曼 编码 实现 方法 系统 设备 计算机 存储 介质 | ||
1.一种霍夫曼编码实现方法,其特征在于,应用于FPGA中,包括:
获取待编码文档;
按照设定的并行数对所述待编码文档进行霍夫曼编码,得到霍夫曼编码文档;
其中,所述按照设定的并行数对所述待编码文档进行霍夫曼编码,包括:
获取设定的并行数;
从所述待编码文档中选取一组待编码数据,所述一组待编码数据中包含的所述待编码数据的数量小于等于所述并行数;
同时对所述一组待编码数据中的每一个所述待编码数据进行霍夫曼编码,得到所述一组待编码数据的编码结果;
判断是否完成对所述待编码文档的霍夫曼编码,若否,则返回执行所述从所述待编码文档中选取一组待编码数据的步骤,若是,则结束;
其中,所述同时对所述一组待编码数据中的每一个所述待编码数据进行霍夫曼编码,得到所述一组待编码数据的编码结果,包括:
确定所述一组待编码数据中每一个所述待编码数据在所述待编码文档中的存储位置索引;
将所有的所述存储位置索引存入编码候选数组中;
同时对所述编码候选数组中每一个所述存储位置索引对应的所述待编码数据进行霍夫曼编码,得到所述一组待编码数据的所述编码结果。
2.根据权利要求1所述的方法,其特征在于,所述获取待编码文档,包括:
获取CPU发送的存储在所述FPGA的缓存空间中的所述待编码文档。
3.根据权利要求2所述的方法,其特征在于,所述得到霍夫曼编码文档之后,还包括:
发送所述霍夫曼编码文档至所述缓存空间,以使所述CPU在所述缓存空间中读取所述霍夫曼编码文档。
4.根据权利要求2所述的方法,其特征在于,所述按照设定的并行数对所述待编码文档进行霍夫曼编码之前,还包括:
获取所述CPU发送的存储在所述缓存空间中的Huffman码表,所述Huffman码表中包括所述待编码文档中每个待编码数据所属的区间对应的区间编码、每个所述待编码数据在自身所属的区间里的编码;
所述按照设定的并行数对所述待编码文档进行霍夫曼编码的过程中,包括:
对于进行霍夫曼编码的任一所述待编码数据,在所述Huffman码表中确定所述待编码数据所属的区间对应的区间编码,及所述待编码数据在自身所属的区间里的编码;
按照预设格式将所述待编码数据所属的区间对应的区间编码,及所述待编码数据在自身所属的区间里的编码进行组合,得到所述待编码数据的霍夫曼编码数据。
5.根据权利要求1所述的方法,其特征在于,所述得到所述一组待编码数据的编码结果之后,所述判断是否完成对所述待编码文档的霍夫曼编码之前,还包括:
判断所述编码结果的长度与第二局部存储空间中缓存的编码结果的长度的和是否大于第一局部存储空间的存储长度,若是,则将所述编码结果拆分为两部分,第一部分所述编码结果的长度为所述第一局部存储空间的存储长度与所述第二局部存储空间中缓存的编码结果的长度的差值,第二部分所述编码结果的长度为所述编码结果的长度与所述第一部分所述编码结果的长度的差值,将所述第一部分所述编码结果并上所述第二局部存储空间中缓存的编码结果一起缓存至所述第一局部存储空间;将第二部分所述编码结果缓存至所述第二局部存储空间,将所述第一局部存储空间中缓存的编码结果转存至全局存储空间中;若否,则将所述编码结果存储至所述第二局部存储空间中;
所述判断是否完成对所述待编码文档的霍夫曼编码之后,还包括:
若完成对所述待编码文档的霍夫曼编码,则将所述第二局部存储空间中缓存的编码结果转存至所述全局存储空间中。
6.根据权利要求1所述的方法,其特征在于,所述并行数包括16。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810940547.8/1.html,转载请声明来源钻瓜专利网。