CN101686390B - 用于嵌入式系统的渐进模式jpeg图像分段解码方法 - Google Patents

用于嵌入式系统的渐进模式jpeg图像分段解码方法 Download PDF

Info

Publication number
CN101686390B
CN101686390B CN 200810198738 CN200810198738A CN101686390B CN 101686390 B CN101686390 B CN 101686390B CN 200810198738 CN200810198738 CN 200810198738 CN 200810198738 A CN200810198738 A CN 200810198738A CN 101686390 B CN101686390 B CN 101686390B
Authority
CN
China
Prior art keywords
jpeg image
decoded
data
decoding
zone
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 200810198738
Other languages
English (en)
Other versions
CN101686390A (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
Anyka Guangzhou 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 Anyka Guangzhou Microelectronics Technology Co Ltd filed Critical Anyka Guangzhou Microelectronics Technology Co Ltd
Priority to CN 200810198738 priority Critical patent/CN101686390B/zh
Publication of CN101686390A publication Critical patent/CN101686390A/zh
Application granted granted Critical
Publication of CN101686390B publication Critical patent/CN101686390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

本发明公开了一种用于嵌入式系统的渐进模式JPEG图像分段解码方法,将JPEG图像分割成一个以上的区域,获取待解码区域的定位信息和解码状态信息,每次从JPEG图像所含的每一个scan中各解码一个区域段数据,并叠加得到该区域对应的经过量化的DCT变换系数,再经过反量化和IDCT变换,得到该区域所对应的一段JPEG图像用于显示或存储。本发明可以实现Progressive JPEG图像的分段解码,从而大大降低了对存储空间的需求;此外,由于不需要对每个scan的数据都重复进行反量化和IDCT变换,大大降低了整体运算量。

Description

用于嵌入式系统的渐进模式JPEG图像分段解码方法
技术领域
本发明涉及一种图像解码方法,尤其是涉及一种用于嵌入式系统的渐进模式JPEG图像分段解码方法。
背景技术
JPEG(Joint Photographic Experts Group)是一种用于灰度或彩色静态图像压缩的国标标准(ITU-T T.81),由于压缩比率高、图像质量较好,已经广泛应用于互联网、医学影像、卫星拍摄、商业图像系统等各种领域。
对于典型的渐进模式(Progressive)JPEG解码系统,需要分配一个与整幅图像尺寸一致的内存缓冲区,用于保存经过哈夫曼(Huffman)解码后的所有量化DCT(Discrete Cosine Transform,离散余弦变换)变换系数。解码器首先对第一个扫描(scan)的数据进行Huffman解码,得到的经过量化的DCT系数,存放到内存缓冲区中,然后进行反量化与IDCT变换,产生一幅只有粗略的轮廓的图像,并显示给用户观看。接着,解码器再对第二个scan的数据进行Huffman解码、反量化、IDC变换,并将生成的图像与之前的图像进行叠加,得到具有较多细节的新图像,然后更新显示的图像。如果还有更多的scan,则解码器重复与第二个scan的解码相同的过程,每次得到的新图像都比之前的图像包含更多的细节。从用户体验上说,看到的图像从只具有粗略轮廓开始,细节逐渐变得清晰,最终看到的即是包含所有细节的原始图像。
典型的Progressive JPEG解码系统的缺点是:
(1)、要事先分配一个与整幅图像尺寸一致的内存缓冲区,用于保存经过Huffman解码后的所有量化DCT系数。随着图像尺寸的增大,对内存空间的需求也随之提高,例如一幅尺寸为2048×1440(约300万像素)的图片,根据所编码YUV格式的不同,大致需要8~16MB的内存缓冲区,这在内存受限的应用中已是相当困难,而在嵌入式应用中则是完全无法接受的。
(2)、对每个scan的数据,都要重复Huffman解码、反量化、IDC变换、图像叠加的过程,而反量化和IDCT(Inverse DCT,反向离散余弦变换)变换的过程占用了大量的运算量。
发明内容
本发明的目的在于提供一种用于嵌入式系统的渐进模式JPEG图像分段解码方法,能够只利用较少的内存资源和相对较低的运算量就能正常解码Progressive JPEG图像,并能够应用到嵌入式系统中。
本发明的目的通过以下的技术措施来实现:一种用于嵌入式系统的渐进模式JPEG图像分段解码方法,将JPEG图像分割成一个以上的区域,获取待解码区域的定位信息和解码状态信息,每次从JPEG图像所含的每一个扫描scan中各解码一个区域段数据,并叠加得到该区域对应的经过量化的DCT变换系数,再经过反量化和IDCT变换,得到该区域所对应的一段JPEG图像。
本发明具体包括以下步骤:
(1)根据系统内存的大小将JPEG图像分割成一个以上的区域,在JPEG图像所含的每一个scan中按分割的区域相同分布;
(2)获取并保存JPEG图像的各种信息,获取并保存各个scan的扫描起始(Start of Scan)段信息,初始化待解码数据在各个scan中的起始位置定位信息与解码状态信息;
(3)获取当前区域待解码数据在各个scan中的起始位置定位信息,同时获取解码状态信息;
(4)对当前区域里每个scan中的Huffman编码数据进行解码,并将所得到的经过量化的DCT系数叠加到缓冲区;
(5)将缓冲区中的数据进行反量化与IDCT变换,得到当前区域所对应的图像;
(6)保存下一区域待解码数据在各个scan中的起始位置定位信息和解码状态信息;
(7)重复步骤3~6直到所有区域都解码完成。
本发明将JPEG图像分割的每个区域包含一个或多个MCU行,每一个区域的所包含的MCU行数是固定相同,或是变化。
本发明使用分段解码Progressive JPEG的方法,每次从多个scan中各解码一段数据,最终组合成一段JPEG图像用于显示,只需要分配一小块内存缓冲区即可满足要求,避免了常用的Progressive JPEG解码方法中需要整幅图片大小的内存缓冲区的缺陷,从而大大降低了对内存资源的要求。此外,由于不需要对每个scan的数据都重复进行反量化和IDCT变换的过程,大大降低了对运算量的需求。
附图说明
图1分段Progressive JPEG解码的流程图;
图2图像区域分割示意图;
图3基于DCT变换模式的JPEG文件结构;
图4JPEG文件中SOS段的结构。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的说明。
如图1所示,首先,要根据具体需求与环境(如可用的嵌入系统内存大小),将JPEG图像划分成一系列区域,每个区域包含一个或多个MCU(Minimum Code Unit,最小编码单元)行。假设JPEG图像包含两个Scan(分别为Scan1和Scan2),每个Scan均包含15个MCU行。如图2所示,将JPEG图像划分为4个区域:第一个区域包含MCU行1~4,第二个区域包含MCU行5~8,第三个区域包含MCU行9~12,第四个区域包含MCU行13~15。每一个区域的所包含的MCU行数可以是固定的,也可以是变化的,可根据实际需要,例如可用内存大小来确定。
然后,需要获取并保存JPEG图像的各种信息,包括图像尺寸、采样信息、Huffman表、量化表等,以及各个scan的起始位置定位信息和解码状态信息,如:色彩分量数目、色彩分量编号、Huffman表格编号、Ss和Se(Start/End ofSpectral Selection)、Ah和Al(Successive Approximation Bit PositionHigh/Low)、EOBRUN(End of Band Run Length)、DC系数基准值等等。
图3是基于DCT变换编码的JPEG文件结构示意,其中,SOI与EOI分别表示图像文件的开始与结束。由图3可知,JPEG文件可以包括多个scan,在所有scan之前有一个Frame Header(帧头部),也可以包含表格及相关信息(可选);在每一个scan的开头,包含一个Scan Header(也可以包含表格及相关信息),随后是Huffman编码的数据,以MCU为单位按顺序排列。
JPEG文件包含若干个segment(分段),每个segment开头都有一个2字节的标识,被称作segment marker(分段标识),随后跟着相关的参数,也可以不包含任何参数,仅存在segment marker(例如SOI和EOI就是这样)。图4给出了SOS段的结构,其中Ls表示SOS段的长度,Ns表示当前scan中编码的图像分量数目;Csi是图像分量的索引号,Tdi是DC系数Huffman码表的索引号,Tai是AC系数Huffman码表的索引号;Ss是Spectral Selection的起始序号,Se是SpectralSelection的结束序号;Ah表示Successive Approximation,Al表示。
JPEG文件中的表格及相关信息,以及各个SOS段的信息都是解码时必需的,因此需要将其保存起来。此外,还需要初始化定位信息,即是第一个区域的待解码数据在各个scan中的起始位置(如图2中“起始位置1”所示),以及解码过程中所需的一些状态信息(如DC分量基准值、EOBRUN值等)。
准备好各种所需的信息之后,就可以对当前区域按照scan的顺序依次进行Huffman解码了。在图2所示例子中,当对区域1进行解码时,先解码scan1的MCU行1~4,所得系数存放在缓冲区中,然后解码scan2的MCU行1~4,并将系数叠加存放到缓冲区中,因此,只需要对应于4个MCU行的缓冲区即可。
解码完当前区域之后,需要保存各个scan的定位信息,在图2的例子中,若对区域1进行解码,完成后需要保存scan1和scan2的“起始位置2”信息,同时也要保存解码过程中的状态信息,这些信息是解码下一个区域所需的。
至此,就完成了从一个区域的各个scan中解码出Huffman编码数据,并将系数叠加存放到缓冲区的过程。由于缓冲区的尺寸对应于区域的尺寸,而不是对应于整幅图像的尺寸,所以,可以根据需要选择合适的区域大小(即MCU行数),以适应各种内存受限的应用。
Huffman解码得到的系数是经过量化的DCT系数,因此,对缓冲区中的数据进行反量化与IDCT变换,即可得到当前区域所对应的图像,然后根据实际应用的需要进行处理,如:将这一段图像送至显示设备进行显示,或将其保存到存储设备上等等。
上述步骤完成了一个区域的JPEG图像解码,如果还有区域需要解码,首先需要获取待解码区域的定位信息和解码状态信息,然后重复前面所述的解码过程即可,也即:逐个scan进行Huffman解码,保存定位信息和解码状态信息,进行反量化与IDCT变换,将所得图像按需要进行处理。
所有区域处理完毕后,整幅JPEG图像的解码过程就完成了。
在本发明中,进行叠加的数据是各个对各个scan经过Huffman解码后得到的量化DCT系数,而不是典型的Progressive JPEG解码器中经过Huffman解码、反量化和IDCT变换后所得的图像数据,但是两种方式最终解码所得的图像却是一致的,这是DCT变换的特性所决定的,下面给出数学推导予以验证。
基于DCT变换模式的JPEG图像中,编码过程是对8×8的图像数据矩阵进行FDCT变换,得到8×8的DCT变换系数矩阵,而解码过程则是对8×8的DCT变换系数矩阵进行IDCT变换,得到8×8的图像数据矩阵。
FDCT变换与IDCT变换是一对互逆的变换过程,其数学表示如下:
FDCT: F ( u , v ) = α u α v 4 Σ x = 0 7 Σ y = 0 7 f ( x , y ) cos ( 2 x + 1 ) uπ 16 cos ( 2 y + 1 ) vπ 16 - - - ( 1 )
IDCT: F ( x , y ) = 1 4 Σ u = 0 7 Σ v = 0 7 α u α v f ( u , v ) cos ( 2 x + 1 ) uπ 16 cos ( 2 y + 1 ) vπ 16 - - - ( 2 )
其中,
α u , α v = 1 2 u , v = 0 1 otherwise - - - ( 3 )
将上述公式表示为矩阵形式:
FDCT: F ^ = C T f ^ C - - - ( 4 )
IDCT: f ^ = C F ^ C T - - - ( 5 )
其中,8×8的矩阵
Figure G2008101987388D00056
Figure G2008101987388D00057
分别表示DCT变换系数矩阵与原始图像数据矩阵,8×8的矩阵C可表示为:
C = [ C xu ] 8 × 8 = α u 2 cos ( 2 x + 1 ) uπ 16 , 0≤x,u≤7(6)
根据矩阵运算的规则,有:
f ^ = f ^ 1 + f ^ 2 + · · · + f ^ n
= C F ^ 1 C T + C F ^ 2 C T + · · · + C F ^ n C T
= C ( F ^ 1 C T + F ^ 2 C T + · · · + F ^ n C T )     (7)
= C ( F ^ 1 + F ^ 2 + · · · + F ^ n ) C T
= C F ^ C T
这里,
Figure G2008101987388D000514
表示未切割成多个scan的原始图像数据,
Figure G2008101987388D000515
表示切割成多个scan后的图像数据,
Figure G2008101987388D000516
表示未切割成多个scan的原始图像数据所对应的DCT变换系数,
Figure G2008101987388D00061
表示各个scan所对应的DCT变换系数。可见,本发明中对DCT变换系数进行叠加
Figure G2008101987388D00062
然后再进行IDCT变换的方式,与典型的Progressive JPEG解码器中对IDCT变换后的图像数据进行叠加
Figure G2008101987388D00063
的方式,二者所得的结果是一致的,但无论Progressive JPEG文件中存在多少个scan的数据,本发明中的方法都只需要进行一次IDCT变换,而会不像典型的Progressive JPEG解码器那样,随着scan数目的增加IDCT变换的运算量线性增长,因此大大降低了对运算量的需求。
本发明适用嵌入式系统应用中的Progressive JPEG图像解码。

Claims (2)

1.一种用于嵌入式系统的渐进模式JPEG图像分段解码方法,其特征在于将JPEG图像分割成一个以上的区域,获取当前区域待解码数据的定位信息和解码状态信息,每次从JPEG图像所含的每一个扫描中各解码一个区域段数据,并叠加得到该区域对应的经过量化的DCT变换系数,再经过反量化和IDCT变换,得到该区域所对应的一段JPEG图像;
具体包括以下步骤:
(1)根据系统内存的大小将JPEG图像分割成一个以上的区域,在JPEG图像所含的每一个扫描中按分割的区域分布;
(2)获取并保存JPEG图像的各种信息,获取并保存各个扫描的扫描起始段信息,初始化待解码数据在各个扫描中的起始位置与解码状态信息;
(3)获取当前区域待解码数据在各个扫描中的起始位置定位信息,同时获取解码状态信息;
(4)对当前区域在每个扫描中的Huffman编码数据进行解码,并将所得到的经过量化的DCT系数叠加到缓冲区;
(5)将缓冲区中的经过量化的DCT系数数据进行反量化与IDCT变换,得到当前区域所对应的图像;
(6)保存下一区域待解码数据在各个扫描中的起始位置定位信息和解码状态信息;
(7)重复步骤3~6直到所有区域都解码完成。
2.根据权利要求1所述的用于嵌入式系统的渐进模式JPEG图像分段解码方法,其特征在于被分割的JPEG图像中的每个区域包含一个或多个最小编码单元MCU行,每一个区域的所包含的MCU行数是固定相同的或者变化的。
CN 200810198738 2008-09-24 2008-09-24 用于嵌入式系统的渐进模式jpeg图像分段解码方法 Active CN101686390B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810198738 CN101686390B (zh) 2008-09-24 2008-09-24 用于嵌入式系统的渐进模式jpeg图像分段解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810198738 CN101686390B (zh) 2008-09-24 2008-09-24 用于嵌入式系统的渐进模式jpeg图像分段解码方法

Publications (2)

Publication Number Publication Date
CN101686390A CN101686390A (zh) 2010-03-31
CN101686390B true CN101686390B (zh) 2011-06-15

Family

ID=42049305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810198738 Active CN101686390B (zh) 2008-09-24 2008-09-24 用于嵌入式系统的渐进模式jpeg图像分段解码方法

Country Status (1)

Country Link
CN (1) CN101686390B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102625090B (zh) * 2011-01-26 2015-08-05 鸿富锦精密工业(深圳)有限公司 影像译码方法与使用该方法的图形处理设备
CN102215406B (zh) * 2011-07-15 2012-10-24 东南大学 一种基于dct变换的分段编码信号的快速解码方法
CN103297767B (zh) * 2012-02-28 2016-03-16 三星电子(中国)研发中心 一种适用于多核嵌入式平台的jpeg图像解码方法及解码器
CN103237207B (zh) * 2013-03-28 2017-01-18 中科创达软件股份有限公司 一种修改jpeg图像局部图像的方法及装置
CN105245881B (zh) * 2015-09-28 2019-04-19 杭州九言科技股份有限公司 一种数字图像滤镜处理的方法和装置
CN105578194B (zh) * 2016-01-06 2018-12-25 珠海全志科技股份有限公司 Jpeg图像解码方法和解码器
CN114399917A (zh) * 2022-01-25 2022-04-26 北京理工大学 一种交通信号灯识别方法及车路协同路端设备

Also Published As

Publication number Publication date
CN101686390A (zh) 2010-03-31

Similar Documents

Publication Publication Date Title
CN101686390B (zh) 用于嵌入式系统的渐进模式jpeg图像分段解码方法
TW517500B (en) Contrast sensitive variance based adaptive block size DCT image compression
CN101371583B (zh) 编码/解码高动态范围图像的方法和设备
CN101588502B (zh) 应用Golomb-Rice编码法的DCT压缩法
CN100576195C (zh) 以无损方式对数字图像和音频数据解码的系统和方法
CN101491103B (zh) 用于编码器辅助式预处理的方法和设备
CN101001381A (zh) 图像编码、解码装置及图像编码、解码方法
EP1091592A3 (en) Video signal encoding apparatus
US20070165713A1 (en) Method and device for encoding blocks of values
US20130064462A1 (en) Efficient Decoding and Post-Processing of High Dynamic Range Images
US9357226B2 (en) Generating entropy encoded data indexing auxiliary information to assist quick JPEG decoding at JPEG encoding phase
US8611418B2 (en) Decoding a progressive JPEG bitstream as a sequentially-predicted hybrid video bitstream
US20030021486A1 (en) Method and apparatus for image scaling
US20050196056A1 (en) Image coding and decoding method
US20020191695A1 (en) Interframe encoding method and apparatus
EP0833518A2 (en) Compression of image data with associated cost data
US20040190785A1 (en) Computation-reduced IDCT method for video coding
CN102037729B (zh) 前向和逆向离散余弦变换的高效定点近似法
Wang et al. A hybrid fractal video compression method
CN100459714C (zh) 测量区块假像及关联的编码/解码/译码的方法和设备
CN100566419C (zh) 以无损的方式编码数字图像数据的设备和方法
US7190847B2 (en) Method, system, and program for fractionally shifting data subject to a previous transformation
Zheng et al. Shape adaptive DCT and its application in region based image coding
JPH1032818A (ja) 画像表示方法
EP0917105A3 (en) Real time decoding of reduced digital video

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
CP01 Change in the name or title of a patent holder

Address after: 510663 no.301-303, 401-402, area C1, No.182, Science City, Guangzhou hi tech Industrial Development Zone, Guangzhou City, Guangdong Province

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 510663 no.301-303, 401-402, area C1, No.182, Science City, Guangzhou hi tech Industrial Development Zone, Guangzhou City, Guangdong Province

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

CP01 Change in the name or title of a patent holder
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: 301-303, 401-402, zone C1, No. 182, science Avenue, Science City, Guangzhou high tech Industrial Development Zone

Patentee before: Guangzhou Ankai Microelectronics Co.,Ltd.

CP02 Change in the address of a patent holder