一种JPEG霍夫曼解码电路制造技术

技术编号:6767398 阅读:223 留言:0更新日期:2012-04-11 18:40
本实用新型专利技术公开一种JPEG霍夫曼解码电路,包括根据不同长度下的霍夫曼码字个数建立霍夫曼最小码字表的最小码字表模块;根据不同长度下的霍夫曼码字个数建立霍夫曼最小码字地址表的最小码字地址表模块;存储霍夫曼码字表的霍夫曼码字表模块;包含多个比较器的比较器阵列模块。本实用新型专利技术可以大量节省最小码字表寄存器资源和比较器资源,在高速解码的同时有效地降低了硬件资源的消耗。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

本技术涉及一种JPEG霍夫曼解码电路
技术介绍
霍夫曼编码是一种常用的基于概率统计的无损压缩技术,它用较长的比特对出现概率较高的码字进行编码,用较短的比特对出现概率较低的码字进行编码,从而达到了非常接近理论极限的压缩比。传统的霍夫曼解码通常是通过逐位比较来实现,该方法首先需要根据编码信息重构出用于解码的霍夫曼码表,该码表需要占用较大的存储空间,JPEG标准中示例的典型码表长度约为4Kbit。其次,采用逐位比较的方法通常需要多个时钟周期来解码一个码字,这种方法大大限制了解码速率。与本技术最接近的现有技术为公开号CN101017574A的专利申请,该专利公开了一种适于JPEG码流的霍夫曼解码方法,该方法根据JPEG码流中的码字个数建立最小码字表和最小码字地址表,然后在霍夫曼解码阶段将输入码流与最小码字表进行并行比较,得到码字长度之后再根据最小码字地址表解码出当前霍夫曼码字的地址,最后得到对应的霍夫曼码字。但是由于JPEG码流中霍夫曼码字长度最长为16位,上述方法中的最小码字表位宽为16位,另外输入码流与最小码字表进行比较时,需要用16个长度分别为1,2,3,..., 15,16的比较器才能解码出当前码字长度,这就会造成解码速度降低,同时增加芯片的硬件成本。在专用集成电路设计中,解码速度和芯片成本都是设计者必须考虑的重要因素, 应该采用高速低成本的霍夫曼解码算法来降低硬件资源的消耗。
技术实现思路
由于现有技术存在上述问题,本技术提出一种JPEG霍夫曼解码电路,其可有效解决现有技术存在的问题。为了实现上述目的,本技术公开了一种JPEG霍夫曼解码电路,包括根据不同长度下的霍夫曼码字个数建立霍夫曼最小码字表的最小码字表模块;根据不同长度下的霍夫曼码字个数建立霍夫曼最小码字地址表的最小码字地址表模块;存储霍夫曼码字表的霍夫曼码字表模块;包含多个比较器的比较器阵列模块;其中比较器阵列模块中各比较器的输入端与有效输入码流和当前最小码字值相连,输出端分别与第一加法器的输入端相连; 移位寄存器的输入端分别与输入码流及第一加法器输出端相连,输出端与第二加法器的输入端相连;最小码字表模块的输入端与第一加法器的输出端相连,输出端与减法器的输入端相连;最小码字地址表模块的输入端与第一加法器的输出端相连,输出端与减法器的输入端相连;减法器的输出端与第二加法器的输入端相连;第二加法器的输出端与霍夫曼码字表模块相连。3进一步地,比较器阵列模块还包括8个与门,8个与门的输入端依次分别与第九至第十六比较器的输出端及当前有效输入码流是否可能为长度9至16的长码字相连,输出端与第一加法器的输入端相连,其中当前有效输入码流如果为1表示可能为长码字,如果为0 表示不可能为长码字。现有技术所提供的JPEG霍夫曼解码方法需要位宽分别为1位,2位,3位,4位,5 位,6位,7位,8位,9位,10位,11位,12位,13位,14位,15位,16位的霍夫曼最小码字表和 16个位宽分别为1位,2位,3位,4位,5位,6位,7位,8位,9位,10位,11位,12位,13位, 14位,15位,16位的数据比较器才能对当前霍夫曼码字进行解码,而本技术所提供的 JPEG霍夫曼解码电路只需要位宽分别为1位,2位,3位,4位,5位,6位,7位,8位,8位,8 位,8位,8位,8位,8位,8位,8位的霍夫曼最小码字表和16个位宽分别为1位,2位,3位, 4位,5位,6位,7位,8位,8位,8位,8位,8位,8位,8位,8位,8位的数据比较器就能对当前霍夫曼码字进行解码,这样可以大量节省最小码字表寄存器资源和比较器资源,在高速解码的同时有效地降低了硬件资源的消耗。附图说明图1是本技术JPEG霍夫曼解码的电路图;图2是本技术最小码字表计算流程图;图3是本技术最小码字地址表计算流程图;图4是本技术码字长度计算示意图。具体实施方式为了使本技术的上述目的、特征和优点能够更加明显易懂,以下结合附图和具体实施方式对本技术作进一步的详细说明。如图1所示,本技术公开了一种JPEG霍夫曼解码电路。该电路包括根据不同长度下的霍夫曼码字个数建立霍夫曼最小码字表的最小码字表模块;根据不同长度下的霍夫曼码字个数建立霍夫曼最小码字地址表的最小码字地址表模块;存储霍夫曼码字表的霍夫曼码字表模块;包含多个比较器的比较器阵列模块。其中,比较器阵列模块中各比较器的输入端与有效输入码流和当前最小码字值相连,输出端分别与第一加法器的输入端相连;移位寄存器的输入端分别与输入码流及第一加法器输出端相连,输出端与第二加法器的输入端相连;最小码字表模块的输入端与第一加法器的输出端相连,输出端与减法器的输入端相连;最小码字地址表模块的输入端与第一加法器的输出端相连,输出端与减法器的输入端相连;减法器的输出端与第二加法器的输入端相连;第二加法器的输出端与霍夫曼码字表模块相连。此外,比较器阵列模块还包括8个与门,8个与门的输入端依次分别与第九至第十六比较器的输出端及当前有效输入码流是否可能为长度9至16的长码字(l0ng_C0de_9 至l0ng_C0de_K)相连,输出端与第一加法器的输入端相连,其中当前有效输入码流如果为1表示可能为长码字,如果为0表示不可能为长码字。如图1所示,码流输入数据中截取的有效输入数据分别同时输入到16个比较器的一端,与对应的最小码字进行比较,其中,第九个比较器到第十六个比较器的最终输出结果只有在当前有效输入数据可能为长码字时才有效,该部分功能通过将比较器结果和长码字标志相与来实现,十六个比较器的最终输出结果之和就是当前霍夫曼码字的长度,根据当前码字长度通过数据移位器截取当前输入码流数据中的对应长度下的霍夫曼码字,同时根据当前码字长度从最小码字表中查找出当前长度下的最小码字,将从当前输入码流数据中截取的对应长度下的霍夫曼码字与对应的最小码字相减并加上当前有效输入码流就可以得到霍夫曼码字表的索引地址,根据该地址值即可取出当前霍夫曼码字对应的游程编码值。根据上述电路设计,本技术中最小码字表模块、最小码字地址表模块以及霍夫曼码字表模块等模块的实际工作流程如下首先,执行步骤1.在JPEG文件头霍夫曼标记解码阶段根据不同长度下的霍夫曼码字个数建立的霍夫曼最小码字表,该最小码字表中前8个码字的位宽分别为1位,2位,3 位,4位,5位,6位,7位,8位,后8个码字的位宽全部为8位;假设JPEG文件头霍夫曼标记段中长度为i的码字个数为Num(i),其中 1 < i < 16。如图2所示,对应的霍夫曼最小码字表通过如下过程计算步骤1A,从长度为1的最小码字开始,如果当前长度下对应的码字个数为0,则该长度下的最小码字值MinCode(I)等于0,如果下一个长度下对应的码字个数为0则重复执行过程1A),如果下一个长度下对应的码字个数不为0,则执行1B);步骤1B,通过以下公式计算出当前长度下对应的最小码字值权利要求1.一种JPEG霍夫曼解码电路,其特征在于包括根据不同长度下的霍夫曼码字个数建立霍夫曼最小码字表的最小码字表模块; 根据不同长度下的霍夫曼码字个数建立霍夫曼最小码字地址表的最小码字地址表模块;存储霍夫曼码字表的霍夫曼码字表模块本文档来自技高网...

【技术保护点】
1.一种JPEG霍夫曼解码电路,其特征在于:包括根据不同长度下的霍夫曼码字个数建立霍夫曼最小码字表的最小码字表模块;根据不同长度下的霍夫曼码字个数建立霍夫曼最小码字地址表的最小码字地址表模块;存储霍夫曼码字表的霍夫曼码字表模块;包含多个比较器的比较器阵列模块;其中比较器阵列模块中各比较器的输入端与有效输入码流和当前最小码字值相连,输出端分别与第一加法器的输入端相连;移位寄存器的输入端分别与输入码流及第一加法器输出端相连,输出端与第二加法器的输入端相连;最小码字表模块的输入端与第一加法器的输出端相连,输出端与减法器的输入端相连;最小码字地址表模块的输入端与第一加法器的输出端相连,输出端与减法器的输入端相连;减法器的输出端与第二加法器的输入端相连;第二加法器的输出端与霍夫曼码字表模块相连。

【技术特征摘要】

【专利技术属性】
技术研发人员:汤岐
申请(专利权)人:无锡华润矽科微电子有限公司
类型:实用新型
国别省市:32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1