CN201910880U - Jpeg图像中范式霍夫曼的硬件解码装置 - Google Patents
Jpeg图像中范式霍夫曼的硬件解码装置 Download PDFInfo
- Publication number
- CN201910880U CN201910880U CN 201020656448 CN201020656448U CN201910880U CN 201910880 U CN201910880 U CN 201910880U CN 201020656448 CN201020656448 CN 201020656448 CN 201020656448 U CN201020656448 U CN 201020656448U CN 201910880 U CN201910880 U CN 201910880U
- Authority
- CN
- China
- Prior art keywords
- code word
- generation module
- shift register
- huffman code
- decoding
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本实用新型公开了一种JPEG图像中范式霍夫曼的硬件解码装置,它包括移位寄存器,移位寄存器暂存当前解码的比特流;比较器根据当前长度的最后一个码字和移位寄存器的值进行比较,确定是否找到范式霍夫曼码字;读信号产生模块产生使能信号;地址生成模块产生ROM的地址;码字类型及帧结束信号产生模块产生当前解码的范式霍夫曼码字类型和帧结束信号。该方法利用移位寄存器方式在较短的时钟周期内完成一个码字的解码,可以实现范式霍夫曼的快速解码,具有效率高,占用的逻辑资源少等优点,各个模块之间的控制逻辑简单,可以达到较高的时钟频率,特别适合高清电视和超分辨率的应用场合,与前级逻辑和后级逻辑接口简单,容易扩展,便于在ASIC和FPGA中实现。
Description
技术领域
本实用新型属于视频编解码领域,尤其涉及一种JPEG编解码中范式霍夫曼的硬件解码装置。
背景技术
霍夫曼编码基于概率统计,非常接近理论极限的压缩比,霍夫曼编码属于变长编码,压缩后的码字长度不确定,因此解码器首先要确定码字的长度,然后在进行处理,效率一般比较低下。JPEG图像按块进行编码,块内数据类型按顺序可以分为5个类型:
1 | 2 | 3 | 4 | 3 | 4 | ...... | 5 |
1为直流霍夫曼码字,在标准的JPEG霍夫曼码字中,如果是亮度块,则霍夫曼码字的长度的最小值为2,最大值为9;如果是色度块,则霍夫曼码字的长度的最小值为2,最大值为11。解码对应的RUN/SIZE中的RUN一定为0,SIZE的最小值是0,最大值是11。
2为该数据块的直流分量和上一个相同类型的块的直流分量的差值。该部分可能有也可能没有,要根据1解码的SIZE值进行确定。该值要和上个相同类型的块的直流分量相加才可得到该块的实际的直流分量。
3为交流霍夫曼码字,在标准的JPEG霍夫曼码字中,交流霍夫曼码字的最小值为2,最大值为16。解码对应的RUN/SIZE值RUN的值一般在0x0-0xF之间(闭区间),SIZE的值在1-A之间(闭区间).不过有两个特殊的情况,就是0/0和F/0。当解码得到0/0时代表块的结束,当解码得到F/0时代表16个连续的0。
4为交流分量的有效值。除非3解码得到F/0或者0/0否则该部分一定存在。
5块结束信号。该信号可能有,也可能没有。当扫描时最后一个数据不为0时不存在EOB信号,否则该信号必存在。EOB信号代表块提前结束。
JPEG图像采用范式霍夫曼编码,该编码有两个重要的特点:
1)属于变长编码,并且是一种前缀码。
2)长度为m的码字的前n位一定大于长度为n的码字的数值(m>n)。
随着科技的进步,人们对于视频的分辨率要求越来越高,在视频编解码中,霍夫曼编解码器的效率往往是制约整体效率的一个关键因素。对于视频的处理分为适时(HDTV,光端机等)和非实时(电影的后期制作)两类,对于非实时的视频处理,霍夫曼解码效率显得不是那么重要,如果解码效率低的话可以等待一段时间或者换一个高速CPU,但是对于适时的视频处理, 霍夫曼编解码的效率就显得十分重要,如果效率低下的话很容易引起视频的播放不流畅等视频质量问题。因此提高霍夫曼解码的效率对于超高分辨率视频的实时处理时非常重要的。
实用新型内容
为弥补现有技术的不足,本实用新型通过移位寄存器和辅助的控制逻辑,提供一种JPEG编解码中范式霍夫曼的硬件解码方法及装置。
为实现上述目的,本实用新型采用如下技术方案:
JPEG图像中范式霍夫曼的硬件解码方法,该方法包括如下步骤:
Step1:将移位寄存器复位,同时将按字节接收到的图像数据放入FIFO队列中;
Step2:当FIFO队列中有数据时,启动读信号产生模块,读信号产生模块对FIFO队列进行读操作,在读的过程中搜索范式霍夫曼码字同时进行鲁棒性处理;
Step3:当搜索到范式霍夫曼码字后,启动地址生成模块,生成RUN/SIZE ROM的地址,通过读取RUN/SIZE ROM得到RUN/SIZE值;
Step4:读取SIZE个比特的有效数据,同时产生RUN个0写入RAM中;
Step5:在读取SIZE个比特的同时,根据最高位将移位寄存器提前复位或者提前置位;
Step6:提前置位或提前复位后得到符号扩展后的有效数据,将符号扩展后的有效数据写入RAM,并判断一个块是否结束,若是,则向后级产生块处理结束信号并且更新范式霍夫曼码字类型;
Step7:当判断是一个块的结束时,还要判断是否是一帧的结束;
Step8:判断FIFO队列中是否还有数据未处理,若有,跳转至Step2,否则等待,直到FIFO队列中有新的数据,转入step2继续执行。
所述step2中搜索范式霍夫曼码字的过程为:将移位寄存器和HUFFLAST生成模块输出的当前长度的码字的最大值进行比较。
所述step2中鲁棒性处理的过程为:在进行霍夫曼解码的过程中,如果发现读取16个bit仍不能搜索到对应的霍夫曼编码,则说明传输错误,需要读空FIFO直至下一帧的开始;在进行填充比特读取的过程中,如果读取的1的个数超过7个或者读出来的数不是1,则也说明传输错误,需要读空FIFO直至下一帧的开始。
所述step3中搜索到范式霍夫曼码字的条件时:当移位寄存器的数据小于当前长度的码字的最大值时即搜索到范式霍夫曼码字。
所述step3中生成ROM表地址的过程为:采用存储有效码字的方法,各类有效码字按照范式霍夫曼码字的长度从短到长,码字数值从小到大的顺序预先存在ROM中,通过外部的地 址生成器确定寻址地址。
所述step5中,当最高位为1时将移位寄存器提前复位;当最高位为0时将移位寄存器提前置位。
所述step6中当满足下列条件之一即认为是块的结束:
a)解码得到64个像素的数据;
b)范式霍夫曼解码得到块结束信号。
所述step6中更新范式霍夫曼码字类型的方法根据图像的采样率确定:当图像的采样率为4:4:4时,范式霍夫曼码字类型的变化顺序为亮度,色度,色度;当图像的采样率为4:2:2时,范式霍夫曼码字类型的变化顺序为亮度,亮度,色度,色度;当图像的采样率为4:2:0时,范式霍夫曼码字类型的变化顺序为亮度,亮度,亮度,亮度,色度,色度。
所述step7判断一帧结束的条件是:解码得到的总的块数与一帧图像的总块数相等。
JPEG图像中范式霍夫曼的硬件解码装置,它包括FIFO缓冲器,FIFO缓冲器与解码模块连接,解码模块与RAM连接;
其中,解码模块包括移位寄存器组,移位寄存器组分别与复位模块、置位模块和比较器相连接;比较器分别与读信号产生模块和地址生成模块相连接;读信号产生模块分别与鲁棒性处理模块和ROM相连接;ROM分别与地址生成模块和码字类型及帧结束信号产生模块相连接;
移位寄存器组包括16个移位寄存器。
移位寄存器暂存当前解码的比特流;复位模块控制产生移位寄存器的复位信号,置位模块控制产生移位寄存器的置位信号;比较器根据当前长度的最后一个码字和移位寄存器的值进行比较,确定是否找到范式霍夫曼码字;读信号产生模块产生FIFO缓冲器的读使能信号;地址生成模块产生RUN/SIZE ROM的地址;鲁棒性模块负责解码过程中的鲁棒性处理;码字类型及帧结束信号产生模块产生当前解码的范式霍夫曼码字类型和帧结束信号。
有益效果:本实用新型实现了JPEG编解码中标准的范式霍夫曼的硬件解码。该实用新型提供了一种结构简单,运算速度快,可有效提供系统的运行效率的范式霍夫曼的硬件解码方法。该方法利用移位寄存器方式在较短的时钟周期内完成一个码字的解码,可以实现范式霍夫曼的快速解码,具有效率高,占用的逻辑资源少等优点,各个模块之间的控制逻辑简单,可以达到较高的时钟频率,特别适合高清电视和超分辨率的应用场合,与前级逻辑和后级逻辑接口简单,容易扩展,便于在ASIC和FPGA中实现。
附图说明
图1为本实用新型的结构框图;
图2为本实用新型的控制流程图;
图3为读取填充比特的控制逻辑图。
具体实施方式
下面结合附图和实施例对本实用新型作进一步说明:
如图1和2所示,将按字节接收到的图像数据放入FIFO(先入先出对列)中,该队列有两个作用,一个是进行数据缓存,一个将输入的8比特变换为1比特进行输出。当队列中有数据时,解码模块将启动对FIFO的读,在读的过程中进行霍夫曼解码,当发现读入的码字小于当前长度的霍夫曼码字的最大值时停止读,根据当前码字,当前长度的霍夫曼码字的最大值以及当前霍夫曼码字的类型(亮度直流,亮度交流,色度直流,色度交流)生成ROM表的地址,根据从ROM表读出的RUN/SIZE值读取SIZE个比特的有效数据,同时产生RUN个0写入后级接口的存储器RAM中,在读取SIZE个比特的时候要根据最高位将移位寄存器复位或者置位。当最高位为1时说明是正数要将移位寄存器提前复位。当最高位为0时说明是负数要将移位寄存器提前置位。为了提高效率,写入RUN个0和读取SIZE个有效数据并行操作。当前解码的霍夫曼码字的类型和帧间控制信号根据图像的分辨率和采样率自行计数统计。
在以下几种情况下需要产生复位信号将所有移位寄存器清零:
1)下次读取的是霍夫曼码字,又分为以下几种情况
a)读取完SIZE个有效数据DIF值
b)RUN/SIZE对应的为F/0
c)霍夫曼解码得到EOB信号
d)解码完一帧的数据
2)下次读取的SIZE个比特的DIF数据,并且第一个比特是0,起符号扩展的作用。
当下次接收的是DIF数据并且首位为0的时候需要将所有移位寄存器置位,首位为0代表负数,需要用1填充,起符号扩展的作用。
在JPEG中霍夫曼码字的最大长度为16bit。如果单纯用码字作为寻址地址则需要的ROM空间为216*8bit=512Kbit。考虑到真正用到的码字只有348个(12个亮度直流霍夫曼码字,12个色度直流霍夫曼码字,162个亮度交流霍夫曼码字,162个色度交流霍夫曼码字),如果按照上述存储会造成大量的ROM浪费。因此采用只存储有效码字的方法。有效码字分为四类,各类有效码字按照霍夫曼码字的长度从短到长,码字数值从小到大的顺序预先存在ROM中,通过外部的地址生成器确定寻址地址。
读信号负责从FIFO队列中读取比特流,在FIFO中有数据的情况下,满足下列条件的任何一个都需要产生读信号
1)寻找霍夫曼码字时
2)读取DIF有效数字时
3)读取一幅图像结束后的填充比特时。因为JPEG图像是以字节为单位进行存储的,当一幅图像结束但是编码后的比特不足一个字节时,需要用1填充。因此解码的时候需要对此进行考虑。读取填充比特的控制逻辑如图3所示。
数据在传输过程中很有可能发生数据丢失的现象,对于霍夫曼变码来说一旦丢失一个比特,后续的解码将不能顺利进行。为此必须进行鲁棒性处理。在进行huffman解码的过程中如果发现读取16个bit仍不能搜索到对应的HUFFMAN编码,则说明传输错误,需要读空FIFO直至下一帧的开始。在进行填充比特读取的过程中,如果读取的1的个数超过7个或者读出来的数不是1,则也发生传输错误。
当前解码的霍夫曼码字的类型要根据已解码的块数和图像的采样率确定。常见的JPEG像采样率为4:4:4,4:2:2,4:2:0三种。对于4:4:4的采样率霍夫曼码字类型的循环顺序为亮度,色度,色度,对于4:2:2的采样率霍夫曼码字类型的循环顺序为亮度,亮度,色度,色度,对于4:2:0的采样率霍夫曼码字类型的循环顺序为亮度,亮度,亮度,亮度,色度,色度。具体来说,霍夫曼码字的类型采用模n计数器表示。采样率,计数器和霍夫曼码字类型的对应关系如表1:
表1
帧结束信号的产生主要是通过对总的块数进行计数。总的块数同样由分辨率和采样率决定。在进行编码时,不同的采样率编码的基本单元不同。
采样率为4:4:4:编码的基本单元为8*8的块,因此分辨率如果不能被8整除,则需要用 相邻的行或者列进行填充处理,总的块数的计算公式为((H_ACTIV+7)>>3)*((V_ACTIV+7)>>3);
采样率为4:2:2:编码的基本单元为8*16的块,因此分辨率行数如果不能被8整除,则需要用相邻的行进行填充,分辨率列数如果不能被16整除,则需要用相邻的列进行填充,总的块数的计算公式为((H_ACTIV+15)>>4)*((V_ACTIV+7)>>3)*2;
采样率为4:2:0:编码的基本单元为16*16的块,因此如果分辨率不能被16整除,则需要用相邻的行或者列进行填充处理,总的块数计算公式为
((H_ACTIV+15)>>4)*((V_ACTIV+15)>>4)*6;
H_ACTIV代表列分辨率,V_ACTIV代表行分辨率。例如我们常说的分辨率1204*768中H_ACTIV=1024,V_ACTIV=768。
Claims (2)
1.JPEG图像中范式霍夫曼的硬件解码装置,其特征是,它包括FIFO缓冲器,FIFO缓冲器与解码模块连接,解码模块与RAM连接;
其中,解码模块包括移位寄存器组,移位寄存器组分别与复位模块、置位模块和比较器相连接;比较器分别与读信号产生模块和地址生成模块相连接;读信号产生模块分别与鲁棒性处理模块和ROM相连接;ROM分别与地址生成模块和码字类型及帧结束信号产生模块相连接。
2.如权利要求1所述的JPEG图像中范式霍夫曼的硬件解码装置,其特征是,所述移位寄存器组包括16个移位寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201020656448 CN201910880U (zh) | 2010-12-13 | 2010-12-13 | Jpeg图像中范式霍夫曼的硬件解码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201020656448 CN201910880U (zh) | 2010-12-13 | 2010-12-13 | Jpeg图像中范式霍夫曼的硬件解码装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN201910880U true CN201910880U (zh) | 2011-07-27 |
Family
ID=44303077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201020656448 Expired - Fee Related CN201910880U (zh) | 2010-12-13 | 2010-12-13 | Jpeg图像中范式霍夫曼的硬件解码装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN201910880U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3152840A4 (en) * | 2014-06-09 | 2018-05-30 | Micron Technology, Inc. | Vlsi efficient huffman encoding apparatus and method |
-
2010
- 2010-12-13 CN CN 201020656448 patent/CN201910880U/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3152840A4 (en) * | 2014-06-09 | 2018-05-30 | Micron Technology, Inc. | Vlsi efficient huffman encoding apparatus and method |
US10230393B2 (en) | 2014-06-09 | 2019-03-12 | Tidal Systems, Inc. | VLSI efficient Huffman encoding apparatus and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105120293B (zh) | 基于cpu和gpu的图像协同解码方法及装置 | |
US9894371B2 (en) | Video decoder memory bandwidth compression | |
US8363966B2 (en) | Method for image processing with encoding selection | |
CN105578190A (zh) | 应用于视频硬解码的无损压缩方法及系统 | |
CN101998122B (zh) | Jpeg图像中范式霍夫曼的硬件解码方法及装置 | |
US10110896B2 (en) | Adaptive motion JPEG encoding method and system | |
CN101599167B (zh) | 存储器的存取方法 | |
CN102340668B (zh) | 一种基于可重构技术的mpeg2亮度插值的实现方法 | |
US20070263939A1 (en) | Variable length decoding device, variable length decoding method and image capturing system | |
CN112422985B (zh) | 适用于jpeg的多核并行硬件编码方法和装置 | |
CN201910880U (zh) | Jpeg图像中范式霍夫曼的硬件解码装置 | |
CN103200407B (zh) | 一种自适应熵编码器 | |
CN104575427A (zh) | 一种适合嵌入式系统解码的高压缩比无损图像压缩方法 | |
CN101365131A (zh) | 适于vlsi实现的avs视频解码器变长解码的简化码表及实施方法 | |
CN101790094B (zh) | 一种jpeg图像解码器的vlsi系统结构及其实现方法 | |
Sampaio et al. | Energy-efficient memory hierarchy for motion and disparity estimation in multiview video coding | |
CN103975583A (zh) | 捕获多个视频通道用于视频分析和编码 | |
CN104349165B (zh) | 高性能变长编解码方法及装置 | |
CN1745587A (zh) | 用于手持装置的视频编码方法 | |
CN103428502B (zh) | 一种解码方法及解码系统 | |
CN103067718B (zh) | 适用于数字视频编解码的一维离散余弦逆变换模块电路 | |
WO2021143634A1 (zh) | 算术编码器及实现算术编码的方法和图像编码方法 | |
CN201657223U (zh) | 一种jpeg图像解码器的vlsi系统结构 | |
CN100551067C (zh) | Jpeg图像压缩时非标准图像尺寸的图像数据处理装置及方法 | |
CN101847394A (zh) | 用以解码及显示视讯文件的存储器映射方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110727 Termination date: 20131213 |