CN100574434C - 一种图像压缩/解压缩方法和系统 - Google Patents

一种图像压缩/解压缩方法和系统 Download PDF

Info

Publication number
CN100574434C
CN100574434C CN 200610061321 CN200610061321A CN100574434C CN 100574434 C CN100574434 C CN 100574434C CN 200610061321 CN200610061321 CN 200610061321 CN 200610061321 A CN200610061321 A CN 200610061321A CN 100574434 C CN100574434 C CN 100574434C
Authority
CN
China
Prior art keywords
huffman
module
data
code
code word
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.)
Active
Application number
CN 200610061321
Other languages
English (en)
Other versions
CN101094401A (zh
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.)
Guangzhou Ankai Microelectronics Co.,Ltd.
Original Assignee
SHENZHEN ANYKA MICROELECTRONICS TECHNOLOGY 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 SHENZHEN ANYKA MICROELECTRONICS TECHNOLOGY Co Ltd filed Critical SHENZHEN ANYKA MICROELECTRONICS TECHNOLOGY Co Ltd
Priority to CN 200610061321 priority Critical patent/CN100574434C/zh
Publication of CN101094401A publication Critical patent/CN101094401A/zh
Application granted granted Critical
Publication of CN100574434C publication Critical patent/CN100574434C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种涉及计算的图像压缩/解压缩方法和系统,该系统包括DCT模块、量化模块、Zig-Zag扫描模块、HUFFMAN模块、码流整理模块依次相连,其特征在于:还包括存储器和主控模块,主控模块控制各工作模块的工作状态,对原始图像数据完成方块化处理或提取压缩数据块,该主控模块根据处理进程对存储器中的表项进行相应的调用,向量化模块或HUFFMAN模块加载信息,压缩方法包括:A)导入量化表和HUFFMAN编码码表,B)取出数据单元发送至DCT模块,C)DCT模块对进行离散余弦变换,D)量化模块进行量化计算,得到量化系数,E)Zig-Zag扫描模块对系数进行Zig-Zag扫描,F)对系数进行相应的HUFFMAN编码,G)HUFFMAN编码后的数据打包处理,完成压缩,本发明实时性高且成本低。

Description

一种图像压缩/解压缩方法和系统
技术领域
本发明涉及计算,尤其涉及一种图像压缩/解压缩方法和系统。
背景技术
JPEG(Joint Photographic Experts Group)是90年代兴起的采用数字方法对静止图片进行压缩的国际标准,压缩比可高达十倍左右,随着数字设备拍照功能在手机和手持设备上的普及,符合JPEG国际静止图片压缩-解压缩标准的装置或电路已成为这些设备必须的组成部分。
在进行压缩时,需要将原始的图像数据从RGB Color domain转换到YUV或YCbCr domain。整个JPEG压缩标准定义在YUV domain而非RGB domain里。定义在YUV domain里是利用人类的视觉特性的缘故,Y成为亮度(Luminance),而U、V则成为色度(Chrominance),因为人类眼球中感光的细胞与感色的细胞在数目上有相当程度的差别(人眼对亮度的敏感度要远大于对色度的敏感度),因此感受力上的差距,使我们能对U、V信号做再次采样,可以更进一步地提高压缩比。
JPEG编码压缩主要流程一般如下:
I、图片方块化:
在进行压缩之前,将原始的图像数据切割成8×8的方块,切成8×8方块的原因是对于绝大部分图片,8×8方块内的64个像素表示的信息是密切相关的,这样通过后续的过程处理过的数据具有更高的压缩度。
II、离散余弦变换:
离散余弦变换(Discrete Cosine Transform)简称DCT,是一种转换编码的技术,它能将时域中的数据转换到频域,转换到频域后的数据有一种特性,就是能量(表达原始图像的信息)会集中在8×8的方块左上角的位置,越往右下角所代表的就越是高频的数据。
如果两个k位像素A和B密切相关,那末我们可以用(k+1)位表示它们的和(A+B),用很小的位数表示它们的差(A-B)。这样总的表示位减少了。
这一概念的推广就是DCT变换:
S uv = 1 4 C u C v Σ x Σ y s xy cos [ ( 2 x + 1 ) uπ 16 ] cos [ ( 2 y + 1 ) vπ 16 ]
这里, Cu , Cv = 1 / 2 u = 0 , v = 0 1 otherwise
密切相关8×8图像方块对应的64个变换参数
{Suv,u=0,1,2,…,7;v=0,1,2,…7}表示该方块数据的特性。
如果该方块内的像素比较平稳,那末Suv的低频分量较重,而高频分量较轻,这样总的表示位减少了。在一般的图像数据里,低频的数据占据着较大的能量比例,而高频数据所占据的能量比例则较低,加上人类视觉系统的低通滤波特性,DCT转换近乎完美地将这些高低频的信息依次分类在8×8的方块里。
DCT变换是完全可逆变换,其反变换为:
s xy = 1 4 Σ u Σ v C u C v S uv cos [ ( 2 x + 1 ) uπ 16 ] cos [ ( 2 y + 1 ) vπ 16 ]
III、量化:
做完DCT转换后,将需要将频域的数据经量化计算,量化计算是经特定的量化表做除法运算。量化表的设计是基于人类视觉系统的特性的,因此在低频的值小,而在高频的值大,这使得高频数据在经过除法量化后变为零得几率大增。
JPEG提供了一套标准的量化矩阵{Quv,u=0,1,2,。。。7;v=0,1,2,。。。7}。
Quv矩阵也可以由用户根据本图像特点进行优化,在图像质量和产生的码流长度之间进行平衡。
必须注意的是,因为量化过程采取了除法取整的过程,如下式所示:
Quv × round [ Suv Quv ] ≠ Suv
Suv为做完DCT后8×8方块内的值;Quv为8×8的量化表。
这样就会产生失真,这也是JPEG唯一会产生失真的步骤。
虽然量化会产生失真,却也是能提高压缩比的关键所在。
JPEG提供的标准量化矩阵如下,一般情况U,V分量精度可以差一些(这在一定程度上也是因为人眼对色度的敏感度要差一些):
例如,适用于Y分量的{Quv}矩阵如下表1所示:
  16   11   10   16   24   40   51   61
  12   12   14   19   26   58   60   55
  14   13   16   24   40   57   69   56
  14   17   22   29   51   87   80   62
  18   22   37   56   68   109   103   77
  24   35   55   64   81   104   113   92
  49   64   78   87   103   121   120   101
  72   92   95   98   112   100   103   99
表1
又如,适用于U,V分量的{Quv}矩阵如下表1所示:
  17   18   24   47   99   99   99   99
  18   21   26   66   99   99   99   99
  24   26   56   99   99   99   99   99
  47   66   99   99   99   99   99   99
  99   99   99   99   99   99   99   99
  99   99   99   99   99   99   99   99
  99   99   99   99   99   99   99   99
  99   99   99   99   99   99   99   99
表2
IV、Zig-Zag扫描:
经过量化后的数据再通过特定的数据串联法则串联在一起,称为Zig-Zag Scan,以求最终能以最少的位数来表示原始数据信息。
例如,Zig-Zag扫描的顺序如下表3所示:
Figure C20061006132100081
表3
经过Zig-Zag扫描后的数据有个特点就是,低频分量在前,高频分量在后,换句话说就是非零系数基本集中在前面,零系数基本集中在后面,这样更有利于提高后面的编码压缩率。
V、HUFFMAN编码(熵编码):
经过Zig-Zag扫描串联后的数据进入一种特殊的编码,称为哈夫曼编码(HUFFMAN)或者熵编码(Entropy Coding),它是可变字长编码(VLC)的一种。它完全依据字符出现的概率来构造码表,使得编码后的平均字长最短。
频域上的数据分为两种,一种在左上角00位置,称为直流DC系数,其余的位置皆为交流AC系数。
HUFFMAN编码并不对DC或AC直接编码。因为对DC系数而言,每个方块都存在着类似的DC值,这些类似的DC值(一般称之为冗余Redundancy),如果都拿来重复编码,将会降低编码效率,因此实际上是将目前的DC值减去前一个8×8方块的DC值,以此差值做编码。
而对于AC而言,由于高低频数据分布的特性使得串联数据中有许多零项,这些零项也会在编码时被充分利用,即,交流系数的编码是对一个非零系数和它前面所有的零仅做一次编码,而不是对每个交流系数都做一次编码,这样可以大大提高压缩效率。对哈夫曼压缩效率贡献最大的也就是这种对AC系数的编码方式。
以上所述为数据压缩的主要流程,解压缩则为上述流程的逆过程。
在现有技术中,实现上述控制流程主要采用以下两种方式:
a)纯软件方式:对于200MHz的嵌入式微处理器每分钟才能处理一幅4百万像素的图像,不能满足实时性的要求。
b)纯硬件方式:现有的纯硬件方式缺乏嵌入式微处理器软件的灵活性,过分强调每个周期进行一个HUFFMAN解码,造成硬件开销很大,成本过高。
发明内容
本发明的目的在于提供一种实时性高且成本低的图像压缩/解压缩方法和系统,以克服现有技术中纯软件方式实时性差,纯硬件方式成本高的问题。
本发明所采用的图像压缩/解压缩系统,包括DCT模块、量化模块、Zig-Zag扫描模块、HUFFMAN模块、码流整理模块依次相连,其中,
所述的DCT模块对数据进行离散余弦变换(Discrete CosineTransform)及反变换;
所述的量化模块完成数据的量化或反量化计算;
所述的Zig-Zag扫描模块完成数据的串联或解串联;
所述的HUFFMAN模块完成数据的HUFFMAN编码或解码;
所述的码流整理模块完成数据的打包或分包处理;
其特征在于:还包括存储器和主控模块,其中,
所述的存储器中保存有关表项;
所述的主控模块控制DCT模块、量化模块、Zig-Zag扫描模块、HUFFMAN模块、码流整理模块的工作状态,对原始图像数据完成方块化处理发送至DCT模块,或提取压缩数据块至码流整理模块,该主控模块根据处理进程对存储器中的表项进行相应的调用,向量化模块或HUFFMAN模块加载信息。
所述的存储器中的表项包括量化表和HUFFMAN编解码表;
所述的主控模块调用所述量化表,加载至量化模块;
所述的主控模块调用所述HUFFMAN编解码表,并对其进行排序,加载至HUFFMAN模块,解码时向HUFFMAN模块加载解压缩过程中用到的从HUFFMAN码表中提取出来的码字特征信息;
所述的码字特征信息包括每个长度HUFFMAN码的开始地址、开始码字、以及表示每个长度的码字是否有效的标志。
所述的HUFFMAN编解码表包括直流HUFFMAN编解码表和交流HUFFMAN编解码表,其中,
所述的直流HUFFMAN编解码表包括:类值SSSS、码字长度Codelength、码字Code word;类值SSSS为表项访问入口;
所述的交流HUFFMAN编解码表包括:零游长RRRR/类值SSSS、表址Table Address、码字长度Code length、码字Code word;零游长RRRR/类值SSSS为表项访问入口;
在解压缩中,主控模块按照码字长度Code length,且对于每个长度的所有码字根据大小顺序对HUFFMAN解码码表排序,排序后的HUFFMAN解码码表的表项对应于按顺序的地址入口。
本发明中的图像压缩方法采用如下步骤:
A、主控模块向量化模块和HUFFMAN模块分别导入量化表和HUFFMAN编码码表;
B、主控模块由原始图像数据取出一个方块化的数据单元发送至DCT模块;
C、DCT模块对该数据单元进行离散余弦变换的编码转换,转换后的数据流传递至量化模块;
D、量化模块根据量化表对数据流中频域的数据进行量化计算,得到量化后的DCT系数;
E、Zig-Zag扫描模块对量化后的DCT系数进行Zig-Zag扫描,完成数据的串联。
F、HUFFMAN模块根据HUFFMAN编码码表对经过Zig-Zag扫描的系数进行相应的HUFFMAN编码。
G、HUFFMAN编码后的数据经码流整理模块打包处理,完成对所述数据单元的压缩。
所述的步骤F包括如下步骤:
F1、HUFFMAN模块首先获取本数据单元相对于前一个数据单元的相同图像分量的直流差值的幅度magnitude;
F2、通过所述幅度magnitude计算出类值SSSS;
F3、根据类值SSSS由相应的直流HUFFMAN编码码表取得相应的HUFFMAN码;
F4、将所得到的HUFFMAN码字加上直流系数差值的有效数据,完成直流系数的编码;
F5、经过统计计算每个非零交流系数前面的“0”交流系数的个数,同时计算这个非零交流系数的有效位宽;
F6、根据“0”交流系数的个数值和该非零交流系数的位宽由交流HUFFMAN编码码表中对应表地址Table Address处直接取得相应的HUFFMAN码字;
F7、将所得到的HUFFMAN码加上这个非零交流系数的有效数据完成交流系数HUFFMAN编码。
所述的步骤F4中,所述有效数据的位宽即类值SSSS的大小。
本发明中的图像解压缩方法采用如下步骤:
a、主控模块调用HUFFMAN解码码表,并对其进行排序,加载至HUFFMAN模块,且将量化表导入量化模块;
b、主控模块从HUFFMAN表提取码字特征信息,且向HUFFMAN模块加载该信息,所述的码字特征信息包括每个长度HUFFMAN码的开始地址、开始码字、以及表示每个长度的码字是否有效的标志;
c、主控模块提取压缩数据包至码流整理模块;
d、码流整理模块对压缩数据包进行分包处理,将分出的数据码流发送至HUFFMAN模块;
e、HUFFMAN模块根据码字特征信息确定HUFFMAN码的长度以及在HUFFMAN编解码表中的位置;
f、以所取得的长度、位置信息为检索入口,从HUFFMAN解码码表中取出相应的类值SSSS或零游长RRRR/类值SSSS;
g、通过类值SSSS得到数据码流中系数的有效位宽,从码流中取出相应个bit的码流,作为系数的有效数据;如果是交流系数的解码,零游长表示该系数前面所具有“0”系数的个数,这样就完成了一段码流的huffman解码;后续码流的解码过程相同;
h、Zig-Zag扫描模块对解码后的数据流进行反Zig-Zag扫描,完成数据流的解串联;
i、量化模块根据量化表对数据流进行反量化操作,产生频域数据;
j、DCT模块将数据流的频域数据转化为重构图像的时域数据,完成解压缩。
所述的步骤a中:所述的主控模块按照码字长度Code length,且对于每个长度的所有码字根据大小顺序对HUFFMAN解码码表排序,排序后的HUFFMAN解码码表的表项对应于按顺序的地址入口。
所述的步骤e包括如下步骤:
e1、HUFFMAN模块读取一组数据码流,根据码字特征信息,通过与每个长度的开始码字进行比较,确定该数据码流中HUFFMAN码的码字长度;
e2、通过码字长度从数据码流中取出HUFFMAN码字,把取出的码字与相应长度的开始码字相比较,计算出在HUFFMAN码表中该码字相对于开始码字的相对位置;
e3、通过开始码字在HUFFMAN表中的位置和计算所得到的相对位置算出该码字在HUFFMAN码表中的绝对位置。
本发明的有益效果为:在本发明中,采用主控模块控制各个功能模块(DCT模块、量化模块、Zig-Zag扫描模块、HUFFMAN模块、码流整理模块、存储器等),利用主控模块对存储器中保存的表项(量化表和HUFFMAN编解码表)操作,使得压缩和解压缩共享一套表项,并可根据实际需要通过主控模块对表项内容进行修改、排序等,本发明的这种硬件与软控制相结合的方式,处理速度可以得到一定程度的保证,满足了处理实时性要求,而且,避免了纯硬件方式中对于操作周期的限制,可以利用主控模块即时控制硬件状态,使得硬件开销大大减少,降低成本,同时也降低了系统设计难度,因此,本发明实时性高且成本低,克服了现有技术中纯软件方式实时性差,纯硬件方式成本高的问题。
在本发明的压缩处理中,根据零游长RRRR和类值SSSS由交流HUFFMAN编解码表中对应表地址Table Address处直接取得相应的HUFFMAN码,避免了现有技术中通过对零游长RRRR和类值SSSS进一步译码,取得表地址Table Address的操作,使得本发明表项操作简便、直接性强,运行速度快,进一步提高了本发明的实用性。
在本发明的解压缩处理中,HUFFMAN模块根据码字特征信息确定数据码流中HUFFMAN码的码字长度,再将取出的HUFFMAN码字与相应长度的开始码字相比较,计算出在HUFFMAN码表中该码字相对于开始码字的相对位置,然后以开始码字在HUFFMAN表中的位置和计算所得到的相对位置算出该码字在HUFFMAN码表中的绝对位置,这种HUFFMAN码的确定方法操作简便,对于类值SSSS或零游长RRRR/类值SSSS的获取,实际上通过了一种二次查表方式:
第一次:把取出的码字与相应长度的开始码字相比较。
第二次:以所取得的长度、位置信息为检索入口,从HUFFMAN解码码表中取出相应的类值SSSS或零游长RRRR/类值SSSS。
这种二次查表方式的检索量小,速度快,进一步提高了本发明的实用性。
附图说明
图1为本发明基本结构示意图;
图2为本发明中数据压缩控制流程示意图;
图3为本发明中数据解压缩控制流程示意图。
具体实施方式
下面根据附图和实施例对本发明作进一步详细说明:
根据图1,本发明包括DCT模块1、量化模块2、Zig-Zag扫描模块3、HUFFMAN模块4、码流整理模块5并依次相连,以及存储器6和主控模块7。
如图1所示,DCT模块1对数据进行离散余弦变换转换及反变换,量化模块2完成数据的量化或反量化计算,Zig-Zag扫描模块3完成数据的串联或解串联,HUFFMAN模块4完成数据的HUFFMAN编码或解码,所述的码流整理模块5完成数据的打包或分包处理;
如图1所示,存储器6中保存有关表项,其中的表项包括量化表QT0-DC、QT0-AC、QT1-DC、QT1-AC,和HUFFMAN编解码表,HUFFMAN编解码表中包括直流HUFFMAN编解码表HT0-DC、HT1-DC,和交流HUFFMAN编解码表HT0-AC、HT1-AC。
如下表4所示,直流HUFFMAN编解码表包括:
类值SSSS、码字长度Code length、码字Code word,其中,类值SSSS为表项访问入口。
Figure C20061006132100161
表4
如下表5所示,交流HUFFMAN编解码表包括:
零游长RRRR/类值SSSS、表地址Table Address、码字长度Codelength、码字Code word。
零游长RRRR/类值SSSS为表项访问入口,表地址Table Address通过零游长RRRR/类值SSSS直接取得,零游长RRRR是指非零交流系数前面的“0”交流系数的个数。
Figure C20061006132100171
表5
如图1所示,主控模块7控制DCT模块1、量化模块2、Zig-Zag扫描模块3、HUFFMAN模块4、码流整理模块5的工作状态,对原始图像数据完成方块化处理发送至DCT模块1,或提取压缩数据块至码流整理模块5,该主控模块7根据处理进程对存储器6中的表项进行相应的调用,向量化模块2或HUFFMAN模块4加载信息。
在本发明的压缩或解压缩中,主控模块7调用所述量化表QT0-DC、QT0-AC、QT1-DC、QT1-AC,加载至量化模块2。
所述的主控模块7调用所述HUFFMAN编解码表,并对其进行排序,加载至HUFFMAN模块4,解码时向HUFFMAN模块4加载解压缩过程中用到的从HUFFMAN码表中提取出来的码字特征信息,码字特征信息包括每个长度HUFFMAN码的开始地址、开始码字、以及表示每个长度的码字是否有效的标志等。
在解压缩中,主控模块7按照码字长度Code length,且对于每个长度的所有码字根据大小顺序对HUFFMAN编解码表排序,排序后的HUFFMAN编解码表的表项对应于按顺序的地址入口。
如图2所示,本发明的具体压缩控制流程如下:
1、主控模块7向量化模块2和HUFFMAN模块4分别导入量化表和HUFFMAN编码码表。
2、主控模块7由原始图像数据取出一个方块化的8×8数据单元发送至DCT模块1。
3、DCT模块1对该数据单元进行离散余弦变换的编码转换,转换后的数据流传递至量化模块2。
4、量化模块2根据量化表QT0-DC、QT0-AC、QT1-DC、QT1-AC对数据流中频域的数据进行量化计算,得到量化后的DCT系数。
5、Zig-Zag扫描模块3对量化后的DCT系数进行Zig-Zag扫描,完成数据的串联。
6、HUFFMAN模块4首先获取本数据单元相对于前一个数据单元的相同图像分量的直流差值的幅度magnitude。
7、HUFFMAN模块4通过所述幅度magnitude计算出类值SSSS;
在本发明中,通过下式转换得到相应的类值SSSS(下式中的“MAG”即为幅度magnitude):
if MAG[DIFF][10]=0;SSSS=11;ELSE
if MAG[DIFF][9]=0;SSSS=10;ELSE
if MAG[DIFF][8]=0;SSSS=9;ELSE
if MAG[DIFF][7]=0;SSSS=8;ELSE
if MAG[DIFF][6]=0;SSSS=7;ELSE
if MAG[DIFF][5]=0;SSSS=6;ELSE
if MAG[DIFF][4]=0;SSSS=5;ELSE
if MAG[DIFF][3]=0;SSSS=4;ELSE
if MAG[DIFF][2]=0;SSSS=3;ELSE
if MAG[DIFF][1]=0;SSSS=2;ELSE
if MAG[DIFF][0]=0;SSSS=1;ELSE
SSSS=11;
8、HUFFMAN模块4根据类值SSSS由相应的直流HUFFMAN编码码表HT0-DC、HT1-DC(如表4)取得相应的HUFFMAN码字,其中编码表HT0-DC用于Y分量直流系数的编码,HT1-DC用于U、V分量直流系数的编码。
9、HUFFMAN模块4将所得到的HUFFMAN码加上直流系数差值的有效数据,有效数据的位宽即类值SSSS的大小,完成直流系数的编码。
10、HUFFMAN模块4经过统计计算每个非零交流系数前面的“0”交流系数的个数,同时计算这个非零交流系数的位宽。
11、根据“0”交流系数的个数值(即零游长RRRR)和位宽(即类值SSSS)由交流HUFFMAN编码码表HT0-AC、HT1-AC(如表5)中对应表地址Table Address处直接取得相应的HUFFMAN码字。
12、将所得到的HUFFMAN码加上这个非零交流系数的有效数据完成交流系数HUFFMAN编码,通过上述步骤6-步骤12,HUFFMAN模块4根据HUFFMAN编码码表对经过Zig-Zag扫描所产生的64个系数进行相应的HUFFMAN编码,步骤6-步骤9完成第一个系数的直流系数编码,步骤10-步骤12完成后面63个系数的交流系数编码。
13、HUFFMAN编码后的数据经码流整理模块5打包处理,完成对该数据单元的压缩。
如图3所示,本发明的具体解压缩控制流程如下:
1)主控模块7调用HUFFMAN解码码表,并对其进行排序,加载至HUFFMAN模块4,且将量化表QT0-DC、QT0-AC、QT1-DC、QT1-AC导入量化模块2,在对HUFFMAN解码码表的排序中,主控模块7按照码字长度Code length,且对于每个长度的所有码字根据大小顺序对HUFFMAN解码码表排序,排序后的HUFFMAN解码码表的表项对应于按顺序的地址入口。
直流HUFFMAN解码码表排序如下表6所示:
Figure C20061006132100201
表6
交流HUFFMAN解码码表排序如下表7所示:
Figure C20061006132100211
表7
2)主控模块7从HUFFMAN表提取码字特征信息,且向HUFFMAN模块4加载该信息,码字特征信息包括每个长度HUFFMAN码的开始地址、开始码字、以及表示每个长度的码字是否有效的标志;
3)主控模块7提取压缩数据包至码流整理模块5。
4)码流整理模块5对压缩数据包进行分包处理,将分出的数据码流发送至HUFFMAN模块4。
5)HUFFMAN模块4读取其中一组数据码流,根据码字特征信息,通过与每个长度的开始码字进行比较,确定该数据码流中HUFFMAN码的码字长度。
6)通过码字长度从数据码流中取出HUFFMAN码字,把取出的码字与相应长度的开始码字相比较,计算出在HUFFMAN码表中该码字相对于开始码字的相对位置。
7)通过开始码字在HUFFMAN表中的位置和计算所得到的相对位置算出该码字在HUFFMAN码表中的绝对位置,通过上述步骤5)-步骤7),HUFFMAN模块4根据配置信息和提取信号确定HUFFMAN码的长度以及在HUFFMAN编解码表中的位置。
8)HUFFMAN模块4以所取得的长度、位置信息为检索入口,从HUFFMAN解码码表中取出相应的类值SSSS或零游长RRRR/类值SSSS,对于直流信号,由表6中取出相应的类值SSSS,对于交流信号,由表7中取出相应的零游长RRRR/类值SSSS。
9)HUFFMAN模块4通过类值SSSS或位宽SSSS得到数据码流中系数的有效位宽,从码流中取出相应个bit的码流,作为系数的有效数据,对于交流信号,零游长RRRR表示该系数前面所具有“0”系数的个数,对数据码流完成HUFFMAN解码。
10)Zig-Zag扫描模块3对解码后的数据流进行反Zig-Zag扫描,完成数据流的解串联。
11)量化模块2根据量化表对数据流进行反量化操作,产生频域数据。
12)DCT模块1将数据流的频域数据转化为重构图像的时域数据,完成解压缩。

Claims (4)

1.一种图像压缩/解压缩系统,包括DCT模块、量化模块、Zig-Zag扫描模块、HUFFMAN模块、码流整理模块并依次相连,其中,
所述的DCT模块对数据进行离散余弦变换及反变换;
所述的量化模块完成数据的量化或反量化计算;
所述的Zig-Zag扫描模块完成数据的串联或解串联;
所述的HUFFMAN模块完成数据的HUFFMAN编码或解码;
所述的码流整理模块完成数据的打包或分包处理;
其特征在于:还包括存储器和主控模块,其中,
所述的存储器中保存有关表项;
所述的主控模块控制DCT模块、量化模块、Zig-Zag扫描模块、HUFFMAN模块、码流整理模块的工作状态,对原始图像数据完成方块化处理发送至DCT模块,或提取压缩数据块至码流整理模块,该主控模块根据处理进程对存储器中的表项进行相应的调用,向量化模块或HUFFMAN模块加载信息;
所述的存储器中的表项包括量化表和HUFFMAN编解码表;
所述的主控模块调用所述量化表,加载至量化模块;
所述的主控模块调用所述HUFFMAN编解码表,并按照代码长度,且对于每个长度的所有码字根据大小顺序对HUFFMAN编解码表进行排序,排序后的HUFFMAN编解码表的表项对应于按顺序的地址入口,加载至HUFFMAN模块,解码时同时向HUFFMAN模块加载解压缩过程中用到的从HUFFMAN编解码表中提取出来的码字特征信息;
所述的码字特征信息包括每个长度HUFFMAN码的开始地址、开始码字、以及表示每个长度的码字是否有效的标志。
2.根据权利要求1所述的图像压缩/解压缩系统,其特征在于:
所述的HUFFMAN编解码表包括直流HUFFMAN编解码表和交流HUFFMAN编解码表,其中,
所述的直流HUFFMAN编解码表包括:类值、码字长度、码字;类值为表项访问入口;
所述的交流HUFFMAN编解码表包括:零游长/类值、码字长度、码字;零游长/类值为表项访问入口。
3.一种图像解压缩方法,其特征在于:所述解压缩步骤为:
a、主控模块调用HUFFMAN编解码表,并按照代码长度,且对于每个长度的所有码字根据大小顺序对HUFFMAN编解码表进行排序,排序后的HUFFMAN编解码表的表项对应于按顺序的地址入口,加载至HUFFMAN模块,且将量化表导入量化模块;
b、主控模块从HUFFMAN编解码表提取码字特征信息,且向HUFFMAN模块加载该信息,所述的码字特征信息包括每个长度HUFFMAN码的开始地址、开始码字、以及表示每个长度的码字是否有效的标志;
c、主控模块提取压缩数据包至码流整理模块;
d、码流整理模块对压缩数据包进行分包处理,将分出的数据码流发送至HUFFMAN模块;
e、HUFFMAN模块根据码字特征信息确定HUFFMAN码的长度以及在HUFFMAN编解码表中的位置;
f、以所取得的长度、位置信息为检索入口,从HUFFMAN编解码表中取出相应的类值或零游长/类值;
g、通过类值得到数据码流中系数的有效位宽,从码流中取出相应个位的码流,作为系数的有效数据;如果是交流系数的解码,零游长表示该系数前面所具有“0”系数的个数,这样就完成了一段码流的huffman解码;后续码流的解码过程相同;
h、Zig-Zag扫描模块对解码后的数据流进行反Zig-Zag扫描,完成数据流的解串联;
i、量化模块根据量化表对数据流进行反量化操作,产生频域数据;
j、DCT模块将数据流的频域数据转化为重构图像的时域数据,完成解压缩。
4.根据权利要求3所述的图像解压缩方法,其特征在于:所述的步骤e包括如下步骤:
e1、HUFFMAN模块读取一组数据码流,根据码字特征信息,通过与每个长度的开始码字进行比较,确定该数据码流中HUFFMAN码的码字长度;
e2、通过码字长度从数据码流中取出HUFFMAN码字,把取出的码字与相应长度的开始码字相比较,计算出在HUFFMAN编解码表中该码字相对于开始码字的相对位置;
e3、通过开始码字在HUFFMAN编解码表中的位置和计算所得到的相对位置算出该码字在HUFFMAN码表中的绝对位置。
CN 200610061321 2006-06-23 2006-06-23 一种图像压缩/解压缩方法和系统 Active CN100574434C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200610061321 CN100574434C (zh) 2006-06-23 2006-06-23 一种图像压缩/解压缩方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200610061321 CN100574434C (zh) 2006-06-23 2006-06-23 一种图像压缩/解压缩方法和系统

Publications (2)

Publication Number Publication Date
CN101094401A CN101094401A (zh) 2007-12-26
CN100574434C true CN100574434C (zh) 2009-12-23

Family

ID=38992374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200610061321 Active CN100574434C (zh) 2006-06-23 2006-06-23 一种图像压缩/解压缩方法和系统

Country Status (1)

Country Link
CN (1) CN100574434C (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8891615B2 (en) * 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
JP2011199432A (ja) * 2010-03-17 2011-10-06 Seiko Epson Corp 画像処理装置およびプログラム
CN106210745A (zh) * 2016-08-31 2016-12-07 成都市和平科技有限责任公司 一种智能化jpeg图像编解码系统及方法
CN106817584A (zh) * 2016-12-23 2017-06-09 深圳市紫光同创电子有限公司 一种基于fpga的mjpeg压缩实现方法和fpga
CN109672450B (zh) * 2018-12-13 2023-01-17 武汉中元华电软件有限公司 一种采用硬件动态分片实现最优huffman编码的装置及方法
CN109672451B (zh) * 2018-12-24 2023-06-23 哈尔滨工业大学(深圳) demura数据压缩方法、mura补偿方法与装置
CN111510152A (zh) * 2019-01-30 2020-08-07 中国科学院声学研究所 一种声波测井数据的压缩及解压缩方法
CN111768460B (zh) * 2020-06-30 2023-08-01 北京百度网讯科技有限公司 一种解码方法、装置、设备以及存储介质
CN112969074B (zh) * 2021-02-01 2021-11-16 西南交通大学 一种应用于静态霍夫曼表的全并行频数排序生成方法
CN114554312B (zh) * 2022-01-25 2023-04-28 中国石油大学(北京) 井下核磁测井数据的传输方法及现场可编程门阵列

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于FPGA的JPEG图像压缩芯片设计. 贺军.电子科技大学硕士学位论文. 2003
基于FPGA的JPEG图像压缩芯片设计. 贺军.电子科技大学硕士学位论文. 2003 *

Also Published As

Publication number Publication date
CN101094401A (zh) 2007-12-26

Similar Documents

Publication Publication Date Title
CN100574434C (zh) 一种图像压缩/解压缩方法和系统
EP0513520B1 (en) Adaptive quantization within the JPEG sequential mode
Wallace The JPEG still picture compression standard
CN100476858C (zh) 基于小波变换的图像编解码器中获得编码增益的方法、装置和系统
CN100518295C (zh) 应用Golomb-Rice编码法的DCT压缩法
CN107645662B (zh) 一种彩色图像压缩方法
JPH08205140A (ja) 画像圧縮装置
CN101242531A (zh) 为小尺寸或全尺寸播放提供独立编码链的视频编码系统
JPH04185172A (ja) ディジタル画像信号の高能率符号化装置
CN1547708A (zh) 以无损方式对数字图像和音频数据解码的系统和方法
CN103763566A (zh) 基于三维矩阵wdct变换的彩色半调图像压缩方法
EP1936997A2 (en) Method and apparatus for fast image compression using the Hartley transform
Yan et al. Qnet: an adaptive quantization table generator based on convolutional neural network
Karthikeyan et al. An efficient image compression method by using optimized discrete wavelet transform and Huffman encoder
Qiu MLP for adaptive postprocessing block-coded images
JPH1084544A (ja) 映像信号符号化装置
CN102724381A (zh) 基于jpeg压缩原理的票据类图像压缩方法
CN101095137A (zh) 8×8变换和量化
CN100566419C (zh) 以无损的方式编码数字图像数据的设备和方法
CN101193285A (zh) 影像压缩编码及解码的方法和装置
Piscaglia et al. Multiresolution lossless compression scheme
JPH07152779A (ja) 動画インデックス検出処理方法及び動画インデックス検出処理機能を持つ動画処理装置
Chien et al. Pipelined arithmetic encoder design for lossless JPEG XR encoder
CN111741306B (zh) 一种提高熵编码效率的jpeg压缩图像重编码方法
Bhattacharjee et al. An efficient encoding algorithm for image compression hardware based on cellular automata

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY CO.,

Free format text: FORMER OWNER: SHENZHEN ANKAI MICROELECTRONICS TECHNOLOGY CO., LTD.

Effective date: 20100408

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518057 B608, RESEARCH INSTITUTE OF TSINGHUA UNIVERSITY IN SHENZHEN,SOUTH AREA, SHENZHEN CITY HIGH-TECH INDUSTRY PARK, GUANGDONG PROVINCE TO: 510663 BUILDING 3, AREA C1, INNOVATION BUILDING, NO.182, KEXUE AVENUE, GUANGZHOU SCIENCE CITY, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20100408

Address after: 510663, Guangzhou Science City, Guangdong science Road, 182 innovation building, C1 District, 3 floor

Patentee after: Anyka (Guangzhou) Microelectronics Technology Co., Ltd.

Address before: 518057 Shenzhen Institute of high tech industry, Guangdong, Shenzhen Province, Tsinghua University, B608

Patentee before: Shenzhen Anyka Microelectronics Technology Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 3 / F, C1 area, innovation building, 182 science Avenue, Guangzhou Science City, Guangdong Province, 510663

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 3 / F, C1 area, innovation building, 182 science Avenue, Guangzhou Science City, Guangdong Province, 510663

Patentee before: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder

Address after: 510555 No. 107 Bowen Road, Huangpu District, Guangzhou, Guangdong

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 3 / F, C1 area, innovation building, 182 science Avenue, Guangzhou Science City, Guangdong Province, 510663

Patentee before: Guangzhou Ankai Microelectronics Co.,Ltd.

CP02 Change in the address of a patent holder