一种适于JPEG码流的哈夫曼解码装置制造方法及图纸

技术编号:3627672 阅读:232 留言:0更新日期:2012-04-11 18:40
本实用新型专利技术提供一种适于JPEG码流的哈夫曼解码装置,其中,该装置包括用于生成最小码子表的最小码子生成模块,连接到最小码子生成模块输出端的最小码子寄存器,生成最小码子地址的最小码子地址模块,连接到最小码子地址模块的最小码子地址寄存器,包括多个比较器的比较器阵列模块,连接到比较器阵列模块的异或模块,连接到异或模块的减法器,连接到减法器的加法器,连接到加法器的首位比特判断模块,以及连接到首位比特判断模块的反向模块。与现有技术相比,本实用新型专利技术具有可构建不同码子长度的最小码子寄存器以及最小码子地址寄存器,降低寄存器阵列资源的占用,可以采用较少资源快速实现JPEG码流哈夫曼解码。(*该技术在2017年保护过期,可自由使用*)

【技术实现步骤摘要】

本技术属于数字图像处理领域,是一种能够以较少资源快速实现JPEG 码流哈夫曼解码的装置。
技术介绍
哈夫曼(Huffer腿n)编码主要应用于流纟某体的压缩编码,是一种可变长的 游程编码,其指导思想是对出现概率比较高的游程数据采用较少的比特编码, 而对出现概率小的游程数据采用较长的比特编码,从而达到压缩数据文件的目的。对于哈夫曼的软件解码,传统的方法是先恢复码流中码表信息,该码表信 息是编码端根据统计信息产生的,因而在不同的码流中,其哈夫曼码表内容和 长度都是不同的,码表通常会占用相当大的内存空间,比如JPEG标准T.81中 列出的典型的码表总长约为4kbit,对于PC来说,这是很小的内存占有量,但 对于嵌入式系统或ASIC设计而言,这将是不小的资源占用。另外,在进行码流中码子的判断时,传统的实现方法是采用基于二叉树的 查找方法,是串行的逐比特判断方法,通常解码一个码子将需要较多的时钟周 期。因此,当在嵌入式系统或用ASIC实现哈夫曼解码时,就应该考虑寄存器阵 列资源的占用以及解码的速度问题。
技术实现思路
本技术的目的在于提供一种适于JPEG码流哈夫曼解码的装置,其可以 采用较少资源快速实现JPEG码流哈夫曼解码。为实现上述目的,本技术提供一种适于JPBG码流的哈夫曼解码装置, 其中,该装置包括用于生成最小码子表的最小码子生成;f莫块,连接到最小码子生成模块输出端的最小码子寄存器,生成最小码子地址的最小码子地址模块, 连接到最小码子地址模块的最小码子地址寄存器,包括多个比较器的比较器阵 列模块,连接到比较器阵列模块的异或模块,连接到异或模块的减法器,连接 到减法器的加法器,连接到加法器的首位比特判断才莫块,以及连接到首位比特 判断模块的反向模块。与现有技术相比,本技术具有可构建不同码子长度的最小码子寄存器以及最小码子地址寄存器,降低寄存器阵列资源的占用;通过并行的哈夫曼码 子判断,减少码子判断所需要的时间,提高硬件解码速度;根据解码得到的 RUN/SIZE符号中的SIZE值,快速得到该数据的真实值。附图说明通过以下对本技术一实施例结合其附图的描述,可以进一步理解其实 用新型的目的、具体结构特征和优点。其中,附图为图1是本技术的适于JPEG码流哈夫曼解码装置的结构示意图。具体实施方式本技术装置包括用于生成最小码子表的最小码子生成模块2,连接到最 小码子生成模块2输出端的最小码子寄存器3,生成最小码子地址的最小码子地 址模块4,连接到最小码子地址模块4的最小码子地址寄存器5,包括多个比较 器的比较器阵列模块6,连接到比较器阵列模块6的异或模块7,连接到异或模 块7的减法器8,连接到减法器8的加法器9,连接到加法器9的首位比特判断 模块IO,以及连接到首位比特判断模块的反向模块ll。比较器阵列模块6的输 入端连接到最小码子寄存器3。该装置还进一步包括有一判断模块1,该模块1判断其接收到的JPEG码流 是否为哈夫曼码流,该判断模块l的输出端分别连接到最小码子生成模块2,比 较器阵列模块6,最小码子地址生成模块4,减法器8以及首位比特判断模块10。最小码子寄存器3用于寄存最小码子表,最小码子地址寄存器5用于寄存 最小码子地址表。比较器阵列模块6中包括n个比较器,异或模块7中包括16 个异或器。第一个比较器的输出端和第二个比较器的输出端连接到异或模块7中的第一个异或器;第二个比较器的输出端和第三个比较器的输出端连接到异 或模块7中的第二个异或器;依此类推,第n-1个比较器的输出端和第n个比 较器的输出端连接到异或模块7中的第m个异或器(m, n均为整数,m-n=l, 0<n<18, 0<m<17)。a )最小码子生成模块2及其寄存器3和最小码子地址生成模块4及其寄存器5JPEG码流中的哈夫曼码表分为两部分。第一部分16个字节对应1到16位 码子的个数;第二部分对应具体的RUN/SIZE符号,其个数为前16字节之和, 通过前16字节可以得到最小码子表C(n) ( (Kn〈17,n取整数)和最小码子地址 表A(n) ((Kn〈17,n取整数)。假设L (n)表征长度为n (0<n<17, n取整数)的码子个数,根据哈夫曼编码特 点,长度为n的最小码子C(n)与长度为n+l的最小码子C (n+l)的关系由公式一 表述,最小码子生成模块2根据运算公式一得到最小码子表C (n) ( 0<n<17, n取 整数),该最小码子表存入最小码子寄存器3中。C(n+1) =*2 公式一然后,假设长度为n(0〈n〈17,n取整数)的码字地址为A(n),公式二表征了 A(n)和L(n)的关系,A(1)=0, L(x)为不同长度码子的个数,最小码子地址生成 模块4根据公式二可以得到最小码子地址表A (n),该地址表存入最小码子地址 寄存器5。 niA(n) = £"x) (Kn <17) 公式二JT=1最小码子寄存器3和最小码子地址寄存器5在进行资源分配时,并不是将 所有的C(n), A(n)分配相同的资源,而是根据n的变化,分配相应的位宽,避 免寄存器2和3资源浪费。b)判断码子长度的比较器阵列模块6和异或模块7比较器阵列模块6的输入端分别连接到判断模块1和最小码子寄存器3。比 较器阵列模块6包括17个比较器,前16个比较器的一个输入端分别为判断模块 1输出的码流的1到16比特S(n) ((Kn〈17,n取整数),另一个输入端分别为最 小码子寄存器3中的最小码子表C(n);第17个比较器的一个输入端为码流的 16比特,另一个输入端为一 16位的二进制数1111111111111110。R(n) ((Kn〈18,n取整数)表征比较器的输出。当S(n)大于等于C(n),比较 器输出R(n)为l;反之,比较器输出R(n)为O。当最小码子表C(n)没有该长度 码子时,根据比较器的长度补齐比较器前面的采用补全"0"方法,后面的采 用补全'T'方法。R(n)中只有一个O与l分界点,将R(n)与R(n+l) (0<n<17, n取整数)输入 异或模块7,进行异或操作得到X(n) ((Kn〈17,n取整数),计算码子长度,即 X(n)为1的n值即为码子长度。c) 计算偏移地址的减法器8根据码子长度n值取出S(n) (0〈n〈17,n取整数),并将S(n)和存在最小码 子寄存器3中的最小码子表C(n)作为减法器8的输入端,根据公式三将S(n)和 C (n)进行减法运算得到哈夫曼码子和该长度最小码子的偏移地址B (n)。B(n) = S(n) - C(n) 公式三d) 计算绝对地址的加法器9请参阅图4,根据公式四,将寄存在最小码子地址寄存器模块5中的最小码 子的地址A(n)和偏移地址B(n)作为加法器9的输入端,得到对应的RUN/SIZE 表的绝对地址AB(n),查表得到RUN/SIZE值。AB(n) = A(n) + B(n) 7>式四e) 首位比特判断才莫块10与反向器11首位比特判断模块IO根据加法器9输出的RUN/SIZE值中的size值,从码 流中提取SIZE位比特,判断首位比特,若为1,将结果的符号位置为O(正数), 将SI本文档来自技高网...

【技术保护点】
一种适于JPEG码流的哈夫曼解码装置,其特征在于:该装置包括用于生成最小码子表的最小码子生成模块,连接到最小码子生成模块输出端的最小码子寄存器,生成最小码子地址的最小码子地址模块,连接到最小码子地址模块的最小码子地址寄存器,包括多个比较器的比较器阵列模块,连接到比较器阵列模块的异或模块,连接到异或模块的减法器,连接到减法器的加法器,连接到加法器的首位比特判断模块,以及连接到首位比特判断模块的反向模块。

【技术特征摘要】

【专利技术属性】
技术研发人员:吴彪
申请(专利权)人:上海广电集成电路有限公司
类型:实用新型
国别省市:31[中国|上海]

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

1