一种基于Huffman表的数据处理方法发明专利.docxVIP

一种基于Huffman表的数据处理方法发明专利.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于Huffman表的数据处理方法 技术领域 本发明涉及一种数据处理方法,尤其涉及一种基于Huffman表的数据处理方法。 背景技术 传统的图像编码技术也称为第一代编码技术,主要有预测编码、变换编码、信息嫡 编码与矢量量化。预测编码和变换编码是当前图像编码器最常用的技术,预测和变换的主 要目的是降低图像原始空间域表示中存在的强相关性,使得预测或变换后的数据矩阵变成 弱相关性矩阵,这样可以用标量量化和嫡编码进行有效的压缩。信息嫡编码是一种无失真 编码,常用的有哈夫曼编码(Huffman Coding)、游程长度编码(Run Length Coding)和算术 编码(Arithmetic Coding)三种。 传统的Huffman编码算法需要对原始数据进行两遍扫描:第一遍扫描要精确地统 计出原始数据中每个值出现的频率,利用得到的频率创建Huffman树,并将树的有关信息保 存起来,便于解压时使用;第二遍扫描根据前面得到的Huffman树对原始数据进行编码,并 将编码信息存储起来。 在JPEG文件中,每个Huffman树的表示形式如图1所示:开始的16个字节是每个级 别的数据的个数,本文称为数目区。紧接着的是对应的数据,本文成为数据区,一个数据一 个字节,字节数是开始16个字节的字节之和。数据区按照数目区的顺序依次排列,直到结 束。在解码的时候首先依次读取数目区的一个字节,得到对应的区段的数据数目,然后再依 次将数据区中对应的数据添加到对应深度二叉树中,插入优先为左侧分支。再编码的时候 是解码的逆向过程。 JPEG的图片数据是bit流的形式,每组可处理的数据由两部分组成,一个是 Huffman查询码,一个是数据值,所有这些都按照字节流紧密排列。每部分的bit数目不定。 基于所述Huffman树的构建包括首先构建一个二叉树节点,具体如下: 其中,各成员变量的意义如下:L_child:该节点的左侧分支;R_child:该节点的右 侧分支;ch:该节点的数据;IsLeaf:该节点是否是叶节点;若无左右分支,用来标志是不是 数据节点,即存放数据的,如果不是叶节点则为中继节点,即无有效数据,只是向下一层查 找的支持节点。 采用上述方法构建出来的Huffman树的示例如图2所示。其中,对应的其对应的 JPEG数据如下表一所示。 表一 下面是解码的步骤: 1、首先读取数目区第一个字节,数值为0,表明第一层无数据。 2、读取数目区的第二个字节,数值为1,表明第二层有一个数据,则为Root Node构 建一个左子节点,该节点是第一层的,所以还需为该节点再构建一个左子节点,并填入数据 区第一个字节的数值,设置该节点状态为叶节点。 3、读取数目区的第三个字节,数值为2,则接着读取数据区的两个字节,数值依次 为6和7。依旧从根节点开始,采用前序遍历,创建第三层的第一个节点,并设置其数值为6, 状态为叶节点;接着再按照前序遍历的规则,增加第三层的第二个节点,设置数值为7,状态 为叶节点。注意遍历的时候碰到叶节点则递归返回其他的树。 4、读取数目区的第四个字节,数值为0,表明第四层无数据。 5、读取数目区的第五个字节,数值为2,则接着读取数据区的两个字节,数值依次 为22和29。采用类似与第3步中的方法,为第五层添加两个叶节点。 6、后续的字节均为0,即不用再添加叶节点了。 但是,现有技术在JPEG编解码时,使用二叉树的方式来编解码Huffman表时,代码 实现复杂、出错几率高、代码调试复杂。 发明内容 现有技术在JPEG编解码时,使用二叉树的方式来编解码Huffman表时,代码实现复 杂、出错几率高、代码调试复杂。 为解决上述问题,本发明提供一种基于Huffman表的数据处理方法,包括:基于 Huffman表构建二叉树数组,并基于所述二叉树数组进行解码。 可选的,所述二叉树数组为二维数组,第一维是二叉树的层数,第二维是每层的节 点数。 可选的,所述节点的初始状态为无效,一个节点包括一个字节或两个字节,所述一 个字节用以保存数据或保存状态;所述两个字节用以保存数据和保存状态。 可选的,所述二叉树的层数为16。 可选的,提供数目区及数据区,所述数目区内的字节与所述数据区内对应层数据 的数目对应。 可选的,包括:依次读取数目区的字节,获得该字节对应层的数据的数目:若当前 读取数目区的字节为0,则继续读取位于数目区内的下一个字节;若当前读取的字节为非0, 则计算当前层的初始查询码,并读取数据区的数据。 可选的,所述计算当前层的初始查询码包括:根据当前层与第一层的层数差值,将 全局查询码左移相应的层数差值,并保存为当前层的初始查询码。 可选的,包括:读取所述数据区的当前数据后,对应保存至所述二维数组中对应当 前层的节点。 可选的,保存当前数据至所述二维数组的当前层

文档评论(0)

哒哒 + 关注
实名认证
文档贡献者

哒哒

1亿VIP精品文档

相关文档