CN101017574A - 一种适于jpeg码流的哈夫曼解码方法 - Google Patents

一种适于jpeg码流的哈夫曼解码方法 Download PDF

Info

Publication number
CN101017574A
CN101017574A CN 200710037614 CN200710037614A CN101017574A CN 101017574 A CN101017574 A CN 101017574A CN 200710037614 CN200710037614 CN 200710037614 CN 200710037614 A CN200710037614 A CN 200710037614A CN 101017574 A CN101017574 A CN 101017574A
Authority
CN
China
Prior art keywords
numeral
code stream
length
minimum
decoding method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 200710037614
Other languages
English (en)
Inventor
吴彪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI SUPER VALUE ACTION GROUP CO Ltd
Original Assignee
SHANGHAI SUPER VALUE ACTION GROUP CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI SUPER VALUE ACTION GROUP CO Ltd filed Critical SHANGHAI SUPER VALUE ACTION GROUP CO Ltd
Priority to CN 200710037614 priority Critical patent/CN101017574A/zh
Publication of CN101017574A publication Critical patent/CN101017574A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供一种适于JPEG码流的哈夫曼解码方法;其中,该方法包括如下步骤:a.根据JPEG码流中码子个数表构建最小码子表;b.根据码子个数表构建最小码子地址表;c.采用0到16位比较器,并行方法得到哈夫曼码子对应的RUN/SIZE表;d.根据SIZE值恢复编码前数据。与现有技术相比,本发明的解码方法构建不同码子长度的最小码子表以及最小码子的地址表,可以降低寄存器阵列资源的占用,通过并行的哈夫曼码子判断,减少码子判断所需要的时间,提高硬件解码速度;根据解码得到的RUN/SIZE符号中的SIZE值,快速得到解码数据。该方法具有两个时钟周期快速解码的优点,特别适合于嵌入式设计或芯片设计。

Description

一种适于JPEG码流的哈夫曼解码方法
技术领域
本发明属于数字图像处理领域,是一种能够以较少资源快速实现JPEG码流哈夫曼解码的方法。
背景技术
哈夫曼(Hufferman)编码主要应用于流媒体的压缩编码,是一种可变长的游程编码,其指导思想是对出现概率比较高的游程数据采用较少的比特编码,而对出现概率小的游程数据采用较长的比特编码,从而达到压缩数据文件的目的。
对于哈夫曼的软件解码,传统的方法是先恢复码流中码表信息,该码表信息是编码端根据统计信息产生的,因而在不同的码流中,其哈夫曼码表内容和长度都是不同的,码表通常会占用相当大的内存空间,比如jpeg标准T.81中列出的典型的码表总长约为4k bit,对于PC来说,这是很小的内存占有量,但对于嵌入式系统或ASIC设计而言,这将是不小的资源占用。
另外,在进行码流中码子的判断时,传统的实现方法是采用基于二叉树的查找方法,是串行的逐比特判断方法,通常解码一个码子将需要较多的时钟周期。
因此,当在嵌入式系统或用ASIC实现哈夫曼解码时,就应该考虑寄存器阵列资源的占用以及解码的速度问题。
发明内容
本发明的目的在于提供一种适于JPEG码流哈夫曼解码的新方法,其可以采用较少资源快速实现JPEG码流哈夫曼解码。
为实现上述目的,本发明提供一种适于JPEG码流的哈夫曼解码方法;其中,该方法包括如下步骤:a.根据JPEG码流中码子个数表构建最小码子表;b.根据码子个数表构建最小码子地址表;c.采用0到16位比较器,并行方法得到哈夫曼码子对应的RUN/SIZE表;d.根据SIZE值得到解码数据。
与现有技术相比,本发明的解码方法构建不同码子长度的最小码子表以及最小码子的地址表,可以降低寄存器阵列资源的占用,通过并行的哈夫曼码子判断,减少码子判断所需要的时间,提高硬件解码速度;根据解码得到的RUN/SIZE符号中的SIZE值,快速得到解码数据。该方法具有两个时钟周期快速解码的优点,特别适合于嵌入式设计或芯片设计。
附图说明
通过以下对本发明一实施例结合其附图的描述,可以进一步理解其发明的目的、具体结构特征和优点。其中,附图为:
图1是JPEG码流提取框图;
图2是码子长度实现框图;
图3是码子偏移地址实现框图;
图4是码子绝对地址实现框图。
具体实施方式
请参阅图1,图2,图3及图4,本发明提供的适于JPEG码流的哈夫曼解码方法包括如下步骤:
a)从JPEG码流中的码子个数得到最小码子表和最小码子地址表;
JPEG码流中的哈夫曼码表分为两部分。第一部分16个字节对应1到16位码子的个数;第二部分对应具体的RUN/SIZE符号,其个数为前16字节之和,通过前16字节可以得到最小码子表C(n)n(0<n<17,n取整数)和最小码子地址表A(n)n(0<n<17,n取整数)。
假设L(n)表征长度为n(0<n<17,n取整数)的码子个数,根据哈夫曼编码特点,长度为n的最小码子C(n)与长度为n+1的最小码子C(n+1)的关系由公式一表述,根据公式一可得到最小码子表C(n)(0<n<17,n取整数)。
C(n+1)=[C(n)+L(n)]*2    公式一
然后,假设长度为n(0<n<17,n取整数)的码字地址为A(n),公式二表征了A(n)和L(n)的关系,A(1)=0,L(x)为不同长度码子的个数,根据公式二可以得到最小码子地址表A(n)。
A ( n ) = &Sigma; x = 1 n - 1 L ( x ) , ( 1 < n < 17 ) 公式二
b)采用0到16位比较器,用并行方法得到哈夫曼码子对应的RUN/SIZE表;
请参阅图2,编码后的哈夫曼码子不是字节对齐的,而是1到16比特,对应建立比较器阵列。该比较器阵列包括17个比较器,前16个比较器的一个输入端分别为输入码流的1到16比特S(n)(0<n<17,n取整数),另一个输入端分别为最小码子表C(n);第17个比较器的一个输入端为输入码流的16比特,另一个输入端为一16位的二进制数:1111111111111110。
R(n)(0<n<18,n取整数)表征比较器的输出。当S(n)大于等于C(n),比较器输出R(n)为1;反之,比较器输出R(n)为0。当最小码子表C(n)中如果该长度的码子时,根据比较器的长度补齐比较器,前面的采用补全“0”方法,后面的采用补全“1”方法。
R(n)中只有一个0与1分界点,将R(n)与R(n+1)(0<n<17,n取整数)进行异或操作得到X(n)(0<n<17,n取整数),X(n)为1的n值即为码子长度。
请参阅图3,根据码子长度n值取出S(n)(0<n<17,n取整数),根据公式三将S(n)和C(n)进行减法运算得到哈夫曼码子和该长度最小码子的偏移地址B(n)。
B(n)=S(n)-C(n)    公式三
请参阅图4,根据公式四,通过最小码子地址A(n)与偏移地址B(n)进行加法运算后得到对应的RUN/SIZE表的绝对地址AB(n),查现有的RUN/SIZE符号表得到对应的RUN/SIZE值。
AB(n)=A(n)+B(n)  公式四
c)由SIZE值得到解码数据。
据SIZE值,从码流中提取SIZE位比特,判断首位比特,若为1,将结果的符号位置为0(正数),将SIZE位比特作为绝对值赋值;若为0,将结果的符号位置为1(负数),将SIZE位比特取反后作为绝对值赋值。
本发明可以通过如下实施例加以详述。
首先构建最小码子表和码子地址表。表1是JPEG码流中哈夫曼DC分量码子个数表L(n),表1中数据表明长度为2,3,4,5的码子个数分别为2,3,1,1,而其他长度的码子个数都为0。
根据公式一可以构建如表2所示的最小码子表C(n)。根据公式二可以得到如表3所示的最小码子地址表A(n)。表4是现有的RUN/SIZE符号表。
C(n+1)=[C(n)+L(n)]*2    公式一
A ( n ) = &Sigma; x = 1 n - 1 L ( x ) , ( 1 < n < 17 ) 公式二
表1 DC分量码子个数表L(n)
00  00  07  01  01  01  01  01  00  00  00  00  00  00  00  00
表2 DC分量最小码子表C(n)
000  001  010  011  100  101  110  1110  11110  111110  1111110
表3 DC分量最小码子地址表A(n)
0  0  0   7  8  9  10  11  12
表4 RUN/SIZE符号表
04  05  03  02  06  01  00  07  08  09  0A  0B
采用0到16位比较器,并行方法得到哈夫曼码子对应的RUN/SIZE索引。如输入码流为FB A9 69……,取前16比特S(16)(0<n<17,n取整数)1111110110101001,最小码子表按表2的数据取值,其中长度为1最小码子始终为1’b0,表2中表明为“无”的按两种方法处理,前面部分的“无”按全0处理,后面部分的“无”按全“1”处理。处理中间结果见表5。
表5解码处理结果
1-16比特S(n) 最小码子C(n) 比较器输出R(n) 异或结果X(n)
  1   0   1   0
  11   00   1   0
  111   000   1   0
  1111   1110   1   0
  11111   11110   1   0
  111111   111110   1   0
  1111110   1111110   1   1
  11111101   11111111   0   0
  111111011   111111111   0   0
  1111110110   1111111111   0   0
  11111101101   11111111111   0   0
  111111011010   111111111111   0   0
  1111110110101   1111111111111   0   0
  11111101101010   11111111111111   0   0
  111111011010100   111111111111111   0   0
  1111110110101001   1111111111111111   0   0
  1111110110101001   11111111111111111   0   0
从表5中得到码子长度n=7,偏移地址B(7)=S(7)-C(7)=1111110-1111110=0,长度为7的最小码子地址为A(7)=10,绝对地址AB(n)=A(n)+B(n)=10+0=10,所以哈夫曼码子所对应的RUN/SIZE值为0X09,size值为9,在1111110后取9个比特进行判断,9个比特为:110101001,首位比特为“1”,符号位为0(正数),绝对值为110101001=468,至此,第一个哈夫曼码子解码完成。
虽然上文详尽地描述了本发明,但本发明不限于上文的优选实例,本发明仅受权利说明书要求的精髓和范围限制。

Claims (8)

1、一种适于JPEG码流的哈夫曼解码方法;其特征在于:该方法包括如下步骤:
a.根据JPEG码流中码子个数表构建不同码子长度的最小码子表;
b.根据码子个数表构建最小码子地址表;
c.采用0到16位比较器,并行方法得到哈夫曼码子对应的RUN/SIZE表;
d.根据SIZE值得到解码数据。
2、如权利要求1所述的适于JPEG码流的哈夫曼解码方法,其特征在于:步骤a中采用如下公式构建最小码子表,C(n+1)=[C(n)+L(n)]*2(0<n<17,n取整数),其中C(n)表征长度为n的最小码子,C(n+1)表征长度为n+1的最小码子,L(n)表征长度为n(0<n<17,n取整数)的码子个数。
3、如权利要求1所述的适于JPEG码流的哈夫曼解码方法,其特征在于:步骤b中采用如下公式构建最小码子地址表, A ( n ) = &Sigma; x = 1 n - 1 L ( x ) (1<n<17);其中,A(n)表征长度为n的码字地址,L(x)为不同长度码子的个数。
4、如权利要求1所述的适于JPEG码流的哈夫曼解码方法,其特征在于:步骤c通过构建0到16位比较器以及异或逻辑得到码子长度n。
5、如权利要求1所述的适于JPEG码流的哈夫曼解码方法,其特征在于:当最小码子表没有该长度的码子时,根据比较器的长度补齐,前面的采用补全“0”方法,后面的采用补全“1”方法。
6、如权利要求4所述的适于JPEG码流的哈夫曼解码方法,其特征在于:获得码子长度n后,采用公式B(n)=S(n)-C(n)获得偏移地址B(n)。
7、如权利要求6所述的适于JPEG码流的哈夫曼解码方法,其特征在于:获得偏移地址B(n)以后,再通过公式AB(n)=A(n)+B(n)得到绝对地址AB(n)。
8、如权利要求1所述的适于JPEG码流的哈夫曼解码方法,其特征在于:在步骤d中,通过判断首位比特,得到编码前的原始数据。
CN 200710037614 2007-02-16 2007-02-16 一种适于jpeg码流的哈夫曼解码方法 Pending CN101017574A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200710037614 CN101017574A (zh) 2007-02-16 2007-02-16 一种适于jpeg码流的哈夫曼解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200710037614 CN101017574A (zh) 2007-02-16 2007-02-16 一种适于jpeg码流的哈夫曼解码方法

Publications (1)

Publication Number Publication Date
CN101017574A true CN101017574A (zh) 2007-08-15

Family

ID=38726563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200710037614 Pending CN101017574A (zh) 2007-02-16 2007-02-16 一种适于jpeg码流的哈夫曼解码方法

Country Status (1)

Country Link
CN (1) CN101017574A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101998122A (zh) * 2010-12-13 2011-03-30 山东大学 Jpeg图像中范式霍夫曼的硬件解码方法及装置
CN102244518A (zh) * 2010-05-10 2011-11-16 百度在线网络技术(北京)有限公司 并行解压缩的硬件实现的系统及方法
CN101557517B (zh) * 2008-04-07 2012-04-18 联发科技股份有限公司 解码器、解码装置及解码方法
CN102545910A (zh) * 2010-12-30 2012-07-04 无锡华润矽科微电子有限公司 一种jpeg霍夫曼解码电路及其解码方法
US8339406B2 (en) 2004-01-30 2012-12-25 Nvidia Corporation Variable-length coding data transfer interface
US8477852B2 (en) 2007-06-20 2013-07-02 Nvidia Corporation Uniform video decoding and display
US8502709B2 (en) 2007-09-17 2013-08-06 Nvidia Corporation Decoding variable length codes in media applications
US8593469B2 (en) 2006-03-29 2013-11-26 Nvidia Corporation Method and circuit for efficient caching of reference video data
US8599841B1 (en) 2006-03-28 2013-12-03 Nvidia Corporation Multi-format bitstream decoding engine
US8687875B2 (en) 2007-12-03 2014-04-01 Nvidia Corporation Comparator based acceleration for media quantization
US8725504B1 (en) 2007-06-06 2014-05-13 Nvidia Corporation Inverse quantization in audio decoding
US8849051B2 (en) 2007-09-17 2014-09-30 Nvidia Corporation Decoding variable length codes in JPEG applications
US8934539B2 (en) 2007-12-03 2015-01-13 Nvidia Corporation Vector processor acceleration for media quantization
CN104980161A (zh) * 2015-04-02 2015-10-14 深圳市腾讯计算机系统有限公司 一种哈夫曼解码方法及装置
US9307267B2 (en) 2008-12-11 2016-04-05 Nvidia Corporation Techniques for scalable dynamic data encoding and decoding
CN106788451A (zh) * 2016-11-30 2017-05-31 郑州云海信息技术有限公司 一种哈夫曼解码方法及其装置

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8339406B2 (en) 2004-01-30 2012-12-25 Nvidia Corporation Variable-length coding data transfer interface
US8427494B2 (en) 2004-01-30 2013-04-23 Nvidia Corporation Variable-length coding data transfer interface
US8599841B1 (en) 2006-03-28 2013-12-03 Nvidia Corporation Multi-format bitstream decoding engine
US8593469B2 (en) 2006-03-29 2013-11-26 Nvidia Corporation Method and circuit for efficient caching of reference video data
US8725504B1 (en) 2007-06-06 2014-05-13 Nvidia Corporation Inverse quantization in audio decoding
US8477852B2 (en) 2007-06-20 2013-07-02 Nvidia Corporation Uniform video decoding and display
US8502709B2 (en) 2007-09-17 2013-08-06 Nvidia Corporation Decoding variable length codes in media applications
US8849051B2 (en) 2007-09-17 2014-09-30 Nvidia Corporation Decoding variable length codes in JPEG applications
US8687875B2 (en) 2007-12-03 2014-04-01 Nvidia Corporation Comparator based acceleration for media quantization
US8934539B2 (en) 2007-12-03 2015-01-13 Nvidia Corporation Vector processor acceleration for media quantization
CN101557517B (zh) * 2008-04-07 2012-04-18 联发科技股份有限公司 解码器、解码装置及解码方法
US9307267B2 (en) 2008-12-11 2016-04-05 Nvidia Corporation Techniques for scalable dynamic data encoding and decoding
CN102244518A (zh) * 2010-05-10 2011-11-16 百度在线网络技术(北京)有限公司 并行解压缩的硬件实现的系统及方法
CN102244518B (zh) * 2010-05-10 2016-01-20 百度在线网络技术(北京)有限公司 并行解压缩的硬件实现的系统及方法
CN101998122A (zh) * 2010-12-13 2011-03-30 山东大学 Jpeg图像中范式霍夫曼的硬件解码方法及装置
CN101998122B (zh) * 2010-12-13 2012-05-02 山东大学 Jpeg图像中范式霍夫曼的硬件解码方法及装置
CN102545910A (zh) * 2010-12-30 2012-07-04 无锡华润矽科微电子有限公司 一种jpeg霍夫曼解码电路及其解码方法
CN102545910B (zh) * 2010-12-30 2015-10-28 无锡华润矽科微电子有限公司 一种jpeg霍夫曼解码电路及其解码方法
CN104980161A (zh) * 2015-04-02 2015-10-14 深圳市腾讯计算机系统有限公司 一种哈夫曼解码方法及装置
CN106788451A (zh) * 2016-11-30 2017-05-31 郑州云海信息技术有限公司 一种哈夫曼解码方法及其装置
CN106788451B (zh) * 2016-11-30 2021-03-09 苏州浪潮智能科技有限公司 一种哈夫曼解码方法及其装置

Similar Documents

Publication Publication Date Title
CN101017574A (zh) 一种适于jpeg码流的哈夫曼解码方法
US7365658B2 (en) Method and apparatus for lossless run-length data encoding
EP3108583B1 (en) Devices and methods of source-encoding and decoding of data
CN100517979C (zh) 一种数据压缩及解压缩方法
CN1322405A (zh) 信息字的平均信息量编码设备和方法,平均信息量编码信息字的解码设备和方法
CN101557517B (zh) 解码器、解码装置及解码方法
CN101795407A (zh) 用于对比特序列进行编码的方法和设备
CN102438145A (zh) 一种基于Huffman编码的图片无损压缩方法
CN102143039A (zh) 数据压缩中数据分段方法及设备
CN100425066C (zh) 图像压缩的方法
CN101534124B (zh) 一种用于短小自然语言的压缩算法
KR100969748B1 (ko) 직렬 통신 시스템에서 직렬 데이터의 송수신 방법 및 장치와 이를 위한 직렬 통신 시스템
US8754792B2 (en) System and method for fixed rate entropy coded scalar quantization
CN104125475B (zh) 一种多维量子数据压缩、解压缩方法及装置
CN103036641A (zh) 数据交换方法、系统及反序列化方法
CN116033034A (zh) 一种无线收发平台用数据处理系统
WO2010044099A1 (en) Lossless content encoding
US8532415B2 (en) Data compression method
CN101325418B (zh) 一种基于概率查表的哈夫曼快速解码方法
CN101657973B (zh) 采用位精度的编码装置和编码方法
CN104980749A (zh) 算术编码的解码装置及方法
VidyaSagar et al. Modified run length encoding scheme for high data compression rate
CN1615590A (zh) 数字信息信号的数据压缩和扩展
KR100636370B1 (ko) 결정 비트를 이용한 부호화 장치 및 그 방법과 그에 따른복호화 장치 및 그 방법
Chudasama et al. Survey of image compression method lossless approach

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication