CN102595109B - 一种jpeg图片解码方法及装置 - Google Patents

一种jpeg图片解码方法及装置 Download PDF

Info

Publication number
CN102595109B
CN102595109B CN201110002495.8A CN201110002495A CN102595109B CN 102595109 B CN102595109 B CN 102595109B CN 201110002495 A CN201110002495 A CN 201110002495A CN 102595109 B CN102595109 B CN 102595109B
Authority
CN
China
Prior art keywords
picture
data
height
width
data block
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
CN201110002495.8A
Other languages
English (en)
Other versions
CN102595109A (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 CN201110002495.8A priority Critical patent/CN102595109B/zh
Publication of CN102595109A publication Critical patent/CN102595109A/zh
Application granted granted Critical
Publication of CN102595109B publication Critical patent/CN102595109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明适用于图像处理领域,提供了一种JPEG图片解码方法及装置,所述方法包括步骤:获取原始图片的头信息,所述头信息包括原始图片的宽度信息、高度信息以及编码表信息;根据所述编码表信息熵解码所述原始图片的最小编码单元,并对最小编码单元包含的数据块进行处理;根据原始图片的宽度信息、原始图片的高度信息以及用于输出目标图片的屏幕的大小确定图片的缩小模式和缩小系数;依据图片的缩小模式和缩小系数选择数据块中的数据进行逆离散余弦变换,并依据逆离散余弦变换后的数据块生成目标图片。本发明实施例在不增加成本的情况下,减少了参与复杂度较高的IDCT计算的数据,有效提高解码JPEG图片的效率,并节约内存。

Description

一种JPEG图片解码方法及装置
技术领域
本发明属于图像处理领域,尤其涉及一种JPEG图片解码方法及装置。
背景技术
随着网络技术和多媒体技术的发展,人们对多媒体信息在传送端的存储、压缩以及接收端的解压、显示也提出了越来越高的要求。
目前,图片信息是常见的多媒体信息,在嵌入式领域的图片应用中,最广泛的应用格式为JPEG格式。具有高分辨率的JPEG图片在移动设备上显示时,由于移动设备上的屏幕都较小,因此需要对该JPEG图片进行解码,并使其缩小到与屏幕的大小相符合的尺寸。
在嵌入式领域中,应用数字信号处理器对JPEG图片进行解码。当高分辨率的JPEG图片需要显示在低分辨率的屏幕上时,首先对该JPEG图片进行熵解码,再通过逆离散余弦变换(Inverse Discrete Cosine Transformation,IDCT),获取解码后的图像光栅数据,最后删除图像光栅数据,以使该JPEG图片缩小到与屏幕相应比例的目标图像。由于IDCT计算复杂度较高,而该方法将原JPEG图片的所有数据都经过IDCT变换,因此无法在性能上得到提升或突破,导致解码效率下降。
发明内容
本发明实施例提供了一种JPEG图片解码方法,旨在解决在解码JPEG图片时效率低下,无法提升或突破性能的问题。
本发明实施例是这样实现的,一种JPEG图片解码方法,所述方法包括步骤:
获取原始图片的头信息,所述头信息包括原始图片的宽度信息、高度信息以及编码表信息;
根据所述编码表信息熵解码所述原始图片的最小编码单元,并对最小编码单元包含的数据块进行处理;
根据原始图片的宽度信息、原始图片的高度信息以及用于输出目标图片的屏幕的大小确定图片的缩小模式和缩小系数;
依据图片的缩小模式和缩小系数选择数据块中的数据进行逆离散余弦变换,并依据逆离散余弦变换后的数据块生成目标图片。
本发明实施例的另一目的在于提供一种JPEG图片解码装置,所述装置包括:
图片信息获取单元,用于获取原始图片的头信息,所述头信息包括原始图片的宽度信息、高度信息以及编码表信息;
数据块处理单元,用于根据所述编码表信息熵解码所述原始图片的最小编码单元,并对最小编码单元包含的数据块进行处理;
图片缩小模式及系数确定单元,用于根据原始图片的宽度信息、原始图片的高度信息以及用于输出目标图片的屏幕的大小确定图片的缩小模式和缩小系数;
目标图片生成单元,用于依据图片的缩小模式和缩小系数选择数据块中的数据进行逆离散余弦变换,并依据逆离散余弦变换后的数据块生成目标图片。
本发明实施例中,加载JPEG图片并熵解码该JPEG图片的最小编码单元MCU,获得组成该MCU的数据块后,再对获得的每个由8×8个数据组成的数据块进行反量化、反Zig_Zag扫描等处理,最后对数据块中处理后的所有数据进行第一次IDCT计算,再根据屏幕的大小选择第一次IDCT计算后的数据进行第二次IDCT计算,以便获得经过IDCT计算后的数据所对应的亮度值、颜色值,根据该亮度值和颜色值可生成目标图片所采用的色彩模式数据,并最终生成目标图片。若终端设备显示目标图片的模式不是采用亮度值、颜色值模式,则可将亮度值、颜色值模式转换为在终端设备上显示目标图片采用的色彩模式后再生成目标图片并显示在该终端设备的屏幕上。该方法在不增加成本的情况下,减少了参与复杂度较高的IDCT计算的数据,有效提高解码JPEG图片的效率,并节约内存。
附图说明
图1是本发明第一实施例提供的JPEG图片解码方法流程;
图2是本发明第一实施例提供的JPEG编码时存储数据所采用的Z字型示意图;
图3是本发明第二实施例提供的JPEG图片解码装置结构;
图4是本发明第三实施例提供的JPEG图片宽度数据删除示意图;
图5是本发明第四实施例提供的JPEG图片高度数据删除示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例中,对加载的JPEG图片熵解码后,对熵解码获取的数据块进行反量化,反Zig_Zag处理,然后进行IDCT计算,在IDCT计算过程中采用行列分解法,对第一次IDCT计算的运算结果做相应删除,再对保留的运算结果进行第二次IDCT计算。最后根据得到的数据生成目标图片。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的JPEG图片解码方法流程,详述如下:
在步骤S11中,获取原始图片的头信息,该头信息包括原始图片的宽度信息、高度信息编码表信息以及量化表信息。
本实施例中,加载需要在终端设备的小屏幕上显示的具有高分辨率的JPEG图片,分析该JPEG图片的头信息,可从该头信息获取该JPEG图片的编码表、量化表、数据采样比例以及图像宽度、高度等图片信息。此外,从加载的JPEG图片的码流中还可获取构成该JPEG图片的最小编码单元(Minimum CodedUnit,MCU),每个MCU都包含由8×8个数据组成的数据块。若加载的JPEG图片为真彩图片,则每个MCU包含3个由8×8个数据组成的数据块,每个数据块分别对应MCU中Y、Cb、Cr分量中的一个分量,其中,Y表示亮度值,Cb和Cr都表示颜色值;若加载的JPEG图片为灰度图片,则每个MCU包含1个由8×8个数据组成的数据块。
在步骤S12中,根据编码表信息熵解码原始图片的最小编码单元,并对该最小编码单元包含的数据块进行处理。
本实施例中,在获取了JPEG图片的头信息之后,熵解码构成该JPEG图片的MCU,而熵解码一个MCU就可获取1个或3个由8×8个数据组成的数据块。
由于将图片压缩为JPEG格式需对图片中的数据进行量化、Zig_Zag扫描等处理,如图2所示,该图2为JPEG编码时存储数据所采用的Z字型示意图,其中箭头方向为数据的存储顺序,因此熵解码JPEG图片的MCU时需对该MCU中的数据块进行相应的逆处理,比如根据量化表信息对最小编码单元包含的数据块进行反量化处理以及对反量化后的数据块进行反Zig_Zag扫描处理等。
在步骤S13中,根据原始图片的宽度信息、原始图片的高度信息以及用于输出目标图片的屏幕的大小确定图片的缩小模式和缩小系数。
本实施例中,对原始图片的MCU中的数据块进行反量化、反Zig_Zag扫描等处理后,首先根据输出目标图片的终端设备上的屏幕大小判断是否缩小原图片的宽度或缩小原图片的高度或是同时缩小原始图片的宽度和原始图片的高度,其中,该原始图片为终端设备加载的JPEG图片。
判断原始图片的图片宽度是否大于输出目标图片的屏幕宽度,在判断了原始图片的图片宽度与屏幕宽度的大小关系后,继续判断该原始图片的图片高度与输出目标图片的屏幕高度的大小关系。若加载的原始图片的宽度大于终端设备上屏幕的宽度,且高度小于终端设备上屏幕的高度,则确定原始图片采用的缩小模式为宽度缩小模式,采用的缩小系数为宽度缩小系数,该宽度缩小系数为屏幕宽度与原始图片的图片宽度的比例值;若原始图片的高度大于终端设备上屏幕的高度,且宽度小于终端设备上屏幕的宽度,则确定原始图片采用的缩小模式为高度缩小模式,采用的缩小系数为高度缩小系数,该高度缩小系数为屏幕高度与原始图片的图片高度的比例值;若原始图片的宽度大于终端设备上屏幕的宽度,且高度大于终端设备上屏幕的高度,则确定原始图片采用的缩小模式为宽高度缩小模式,且采用的宽缩小系数为屏幕宽度与原始图片的图片宽度的比例值,采用的高缩小系数为屏幕高度与原始图片的图片高度的比例值。
在步骤S14中,依据图片的缩小模式和缩小系数选择数据块中的数据进行逆离散余弦变换,并依据逆离散余弦变换后的数据块生成目标图片。
在确定出原始图片采用的缩小模式和缩小系数之后,依据该图片缩小模式对MCU中经过反量化、反Zig_Zag扫描等处理后的数据块进行第一次逆离散余弦变换,依据该缩小系数删除第一次逆离散余弦变换后的数据块中的对应数据,并对删除数据后的数据块进行第二次逆离散余弦变换。
若原始图片需要采用宽度缩小模式缩小该原始图片的宽度,则对MCU分量所对应的1个数据块进行第一次IDCT计算,其中,该数据块由8×8个数据组成,进行第一次IDCT计算时,选择该数据块中的所有行或所有列数据进行,再根据宽缩小系数删除经过第一次IDCT计算的数据块的一些列数据,比如根据公式J=i×w/W删除经过第一次IDCT计算的数据块的一些列数据,其中J为需要保留的列数据,i为原图片的横坐标,W为原图片的宽度,w为目标图片的宽度,最后将该经过第一次IDCT计算的数据块中剩下的数据进行第二次IDCT计算。若加载的原始图片为灰度图片,则对原始图片MCU包含的1个数据块进行二次IDCT计算后即可解码出一个MCU;若加载的原始图片为真彩图片,则对原始图片MCU包含的1个数据块进行二次IDCT计算后即可熵解码出一个MCU的一个分量,继续对该MCU包含的其余2个数据块进行IDCT计算,从而解码出该MCU的其余2个分量。在解码出原始图片的一个MCU所对应的分量后,继续解码该原始图片的其他MCU所对应的分量,直到解码出该原始图片的所有MCU所对应的所有分量。
若原始图片需要采用高度缩小模式缩小该原始图片的高度,则对原始图片的MCU中分量所对应的数据块进行第一次IDCT计算,其中,该数据块由8×8个数据组成,进行第一次IDCT计算时,选择该数据块中的所有行或所有列数据进行,再根据高缩小系数删除该原始图片中数据块的一些行数据,比如根据公式I=j×h/H删除该原始图片中数据块的一些行数据,其中I为需要保留的行数据,j为原图片的纵坐标,H为原图片的高度,h为目标图片的高度,最后将该数据块中剩下的数据进行第二次IDCT计算,最终解码出一个MCU的所有分量。在解码出原始图片的一个MCU所对应的分量后,继续解码该原始图片的其他MCU所对应的分量,直到解码出该原始图片的所有MCU所对应的所有分量。
若原始图片需要同时缩小该原始图片的宽度和高度,则可采用上述宽度缩小模式的方法先缩小该图片的宽度,再继续依据高缩小系数缩小已进行宽度缩小的图片的高度。如采用宽度缩小模式的方法缩小原始图片的宽度之后,再根据公式j×h/H对已进行宽度缩小的图片进行高度缩小,其中,j为原图片的纵坐标,H为原图片的高度,h为目标图片的高度。当然也可以采用上述高度缩小模式的方法先缩小该原始图片的高度,再缩小已进行高度缩小的图片的宽度。如采用高度缩小模式的方法缩小原始图片的高度之后,再根据公式i×w/W对已进行高度缩小的图片进行宽度缩小,其中,i为原图片的横坐标,W为原图片的宽度,w为目标图片的宽度。
在原始图片经过宽度缩小模式缩小宽度或者经过高度缩小模式缩小高度或者经过宽高度缩小模式缩小图片的宽高度之后,根据解码MCU获得的分量生成目标图片,并显示在终端设备的屏幕上。若终端设备输出目标图片所采用的色彩模式与解码图片获得的色彩模式不同,则将获取的色彩模式转换为用于在终端设备显示目标图片所采用的色彩模式。比如,解码真彩JEPG图片获得的色彩模式为YCbCr,而终端设备输出目标图片所采用的色彩模式为RGB,则依据逆离散余弦变换后的数据块所对应的亮度值、颜色值生成在终端设备显示目标图片所采用的RGB数据,并在终端设备上显示该RGB数据所对应的目标图片。
在本发明第一实施例中,加载JPEG图片并熵解码该JPEG图片的最小编码单元MCU,获得组成该MCU的数据块后,再对获得的每个由8×8个数据组成的数据块进行反量化、反Zig_Zag扫描等处理,最后对数据块中处理后的所有数据进行第一次IDCT计算,再根据屏幕的大小选择第一次IDCT计算后的数据进行第二次IDCT计算,以便获得经过IDCT计算后的数据所对应的亮度值、颜色值,根据该亮度值和颜色值可生成目标图片所采用的色彩模式数据,并最终生成目标图片。若终端设备显示目标图片的模式不是采用亮度值、颜色值模式,则可将亮度值、颜色值模式转换为在终端设备上显示目标图片采用的色彩模式后再生成目标图片并显示在该终端设备的屏幕上。该方法在不增加成本的情况下,减少了参与复杂度较高的IDCT计算的数据,有效提高解码JPEG图片的效率,并节约内存。
实施例二:
图3示出了本发明第二实施例提供的JPEG图片解码装置,为了便于说明,仅示出了与本实施例相关的部分。
该JPEG图片解码装置可以用于通过有线或者无线网络连接服务器的各种信息处理终端,例如移动电话、口袋计算机(Pocket Personal Computer,PPC)、掌上电脑、计算机、笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)等,可以是运行于这些终端内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些终端中或者运行于这些终端的应用系统中,其中:
图片信息获取单元31获取原始图片的头信息,该头信息包括原始图片的宽度信息、高度信息、编码表信息以及量化表信息。
本实施例中,加载需要在终端设备的小屏幕上显示的具有高分辨率的JPEG图片,分析该JPEG图片的头信息,可从该头信息获取该JPEG图片的编码表、量化表、数据采样比例以及图像宽度、高度等图片信息。此外,从加载的JPEG图片码流中还可获取构成该JPEG图片的最小编码单元(Minimum Coded Unit,MCU),每个MCU都包含由8×8个数据组成的数据块。若加载的JPEG图片为真彩图片,则每个MCU包含3个由8×8个数据组成的数据块,每个数据块分别对应MCU中Y、Cr、Cb分量中的一个分量,其中,Y表示亮度值,Cb和Cr都表示颜色值;若加载的JPEG图片为灰度图片,则每个MCU包含1个由8×8个数据组成的数据块。
数据块处理单元32根据该编码表信息熵解码该原始图片的图片信息获取单元31获取的最小编码单元,并对最小编码单元包含的数据块进行处理。
作为本发明的另一个实施例,该数据块处理单元32包括:MCU解码模块321、数据块反处理模块322。
该MCU解码模块321根据编码表信息熵解码原始图片的最小编码单元,并获取该最小编码单元包含的数据块,该数据块由8×8个数据组成;
该数据块反处理模块322根据量化表信息对最小编码单元包含的数据块进行反量化处理,并对反量化后的数据块进行反Zig_Zag扫描处理。
图片缩小模式及系数确定单元33根据原始图片的宽度信息、原始图片的高度信息以及用于输出目标图片的屏幕的大小确定图片的缩小模式和缩小系数。
作为本发明的另一个实施例,该图片缩小模式及系数确定单元33包括:判断模块331、宽度模式确定模块332、高度模式确定模块333、宽高度模式确定模块334。
判断模块331,用于判断原始图片的图片宽度与输出目标图片的屏幕宽度的大小关系以及判断原始图片的图片高度与输出目标图片的屏幕高度的大小关系;
宽度模式确定模块332,用于在判断模块331判断出原始图片的图片宽度大于屏幕宽度且图片高度小于屏幕高度时,确定该原始图片的缩小模式为宽度缩小模式,确定宽缩小系数为屏幕宽度与原始图片的图片宽度的比例值;
高度模式确定模块333,用于在判断模块331判断出原始图片的图片宽度小于屏幕宽度且图片高度大于屏幕高度时,确定该原始图片的缩小模式为高度缩小模式,确定高缩小系数为屏幕高度与原始图片的图片高度的比例值;
宽高度模式确定模块334,用于在判断模块331判断出原始图片的图片宽度大于屏幕宽度且图片高度大于屏幕高度时,确定该原始图片的缩小模式为宽高度缩小模式,确定宽缩小系数为屏幕宽度与原始图片的图片宽度的比例值,确定高缩小系数为屏幕高度与原始图片的图片高度的比例值。
目标图片生成单元34依据图片的缩小模式和缩小系数选择数据块中的数据进行逆离散余弦变换,并依据逆离散余弦变换后的数据块生成目标图片。
本实施例中,依据图片的缩小模式对数据块进行第一次逆离散余弦变换,依据缩小系数删除第一次逆离散余弦变换后的数据块中的对应数据,对删除数据后的数据块进行第二次逆离散余弦变换。
作为本发明的另一个实施例,该目标图片生成单元34包括:数据变换模块341、色彩模式转换模块342。
该数据变换模块341依据图片的缩小模式对数据块进行第一次逆离散余弦变换,依据缩小系数删除第一次逆离散余弦变换后的数据块中的对应数据,对删除数据后的数据块进行第二次逆离散余弦变换。
本实施例中,当缩小模式为宽度缩小模式时,对数据块中的行数据做逆离散余弦变换计算,依据宽缩小系数删除逆离散余弦变换后的数据块中的对应列数据,对删除列数据后的数据块中的列数据进行逆离散余弦变换;
当缩小模式为高度缩小模式时,对数据块中的列数据做逆离散余弦变换计算,依据高缩小系数删除逆离散余弦变换后的数据块中的对应行数据,对删除行数据后的数据块中的行数据进行逆离散余弦变换;
当缩小模式为宽高度缩小模式时,对数据块中的行数据做逆离散余弦变换计算,再依据宽缩小系数删除逆离散余弦变换后的数据块中的对应列数据,并对删除列数据后的数据块中的列数据进行逆离散余弦变换,最后依据高缩小系数缩小已进行宽度缩小的图片的高度;或者,对数据块中的列数据做逆离散余弦变换计算,再依据高缩小系数删除逆离散余弦变换后的数据块中的对应行数据,并对删除行数据后的数据块中的行数据进行逆离散余弦变换,最后依据宽缩小系数缩小已进行高度缩小的图片的宽度。
该色彩模式转换模块342依据逆离散余弦变换后的数据块所对应的亮度值、颜色值生成在终端设备显示目标图片所采用的色彩模式数据,并在终端设备上显示该色彩模式数据所对应的目标图片。
在本发明第二实施例中,图片缩小模式及系数确定单元33根据原始图片的宽度信息、原始图片的高度信息以及用于输出目标图片的屏幕的大小确定图片的缩小模式和缩小系数之后,目标图片生成单元34依据图片的缩小模式和缩小系数选择数据块中的数据进行逆离散余弦变换,并依据逆离散余弦变换后的数据块生成目标图片。由于在不增加成本的情况下,减少了参与复杂度较高的IDCT计算的数据,因此有效提高解码JPEG图片的效率,并节约内存。
实施例三:
为了更清楚地说明该JPEG图片解码方法,下面以一个具体应用例进行说明,在本实施例中,在终端设备加载一个JPEG真彩图片,该终端设备的屏幕宽度小于加载的JPEG图片宽度。本实施例仅缩小该JPEG图片的宽度。
(1)加载要显示的JPEG图片,分析该JPEG图片的头信息,获取编码表、量化表、数据采样比例、图片宽度、图片高度等图片信息。继续分析该JPEG图片,以便获取包含该JPEG图片所有数据信息的MCU。
(2)熵解码该JPEG图片的一个MCU,获取该MCU中由亮度值分量Y、颜色值分量Cb和颜色值分量Cr构成的3个8×8的数据块。
(3)对该MCU的Y分量进行反量化和反Zig_zag处理。
(4)将经过处理后的分量的8×8数据块中的行做一维IDCT计算,在本次IDCT计算中,整个8×8数据块的8行都参与该IDCT计算。
(5)根据宽度缩小比例删除数据块中的一些列数据,假定宽度缩小比例为1/2,根据公式J=i×w/W删除经过第一次IDCT计算的数据块的列数据,其中,J为需要保留的列数据,i为原JPEG图片的横坐标,W为原JPEG图片的宽度,w为目标JPEG图片的宽度,在一个8×8的数据块中,第0列、2列、4列、6列为需要保留的列,其他的为将要删除的列,如图4所示,黑色的列表示保留下来的列,白色的列表示要删除的列。
(6)将剩下的数据列参与到第二次IDCT计算,如图4所示,黑色的列所代表的数据为将参与该第二次IDCT计算的数据,在本次IDCT计算中,只有第0列、2列、4列、6列代表的数据参与。经过2次IDCT计算后,获得目标图片中与Y分量所对应的Y′分量。
(7)重复执行步骤(3)~(6),继续对该原JPEG图片的MCU中的Cb分量和Cr分量所对应的其余数据块执行上述步骤,直到获取目标图片中与该Cb分量和Cr分量所对应的Cb′分量和Cr′分量,从而解码出原JPEG图片的一个完整的MCU。在获得目标图片中与原始图片一个MCU的Y、Cb、Cr分量对应的Y′分量、Cb′分量和Cr′分量之后,可将Y′、Cb′和Cr′模式数据转换为目标图片要显示的颜色模式数据,比如目标图片在终端设备屏幕上要显示的颜色模式为RGB,则将YCbCr模式转换为RGB模式,并存储转换模式后的数据。在转换模式时要注意JPEG图片的数据采样比例,根据该数据采样比例转换数据插值。
(8)重复执行步骤(2)~(7),直到所有原始图片的MCU解压完毕,即得到要显示的图片数据。
本实施例中,利用二维IDCT变换的可分解特性,将二维IDCT变换分解为两个一维的IDCT变换。对于一个8x8数据块,进行一次IDCT变换需要8次的一维点IDCT变换,若对已进行过一次IDCT变换的数据再进行一次IDCT变换,则二次IDCT变换一起共需进行16次的一维点IDCT变换。由于本实施例在进行第二次IDCT变换之前,部分删除已进行过一次IDCT变换的数据,若原JPEG图片缩小1/2,部分删除已进行过一次IDCT变换的数据,剩下4个一维点进行第二次IDCT变换,即本实施例中一个8x8数据块进行二次IDCT变换共需进行12次的一维点IDCT变换,有效减少了计算量,从而提高了解码速度。
实施例四:
为了更清楚地说明该JPEG图片解码方法,下面以另一个具体应用例进行说明,在本实施例中,在终端设备加载一个JPEG真彩图片,该终端设备的屏幕高度小于加载的JPEG图片高度,仅缩小该JPEG图片的高度。
(1)加载要显示的JPEG图片,分析该JPEG图片的头信息,获取编码表、量化表、数据采样比例、图片宽度、图片高度等图片信息。继续分析该JPEG图片,以便获取包含该JPEG图片所有数据信息的MCU。
(2)熵解码该JPEG图片的一个MCU,获取该MCU中由亮度值分量Y、颜色值分量Cb和颜色值分量Cr构成的3个8×8的数据块。
(3)对该MCU的Y分量进行反量化和反Zig_zag处理。
(4)将经过处理后的分量的8×8数据块中的列做一维IDCT计算,在本次IDCT计算中,整个8×8数据块的8列都参与该IDCT计算。
(5)根据高度缩小比例删除数据块中的一些行数据,假定高度缩小比例为1/2,根据公式I=j×h/H删除已经过第一次IDCT计算的数据块的行数据,其中I为需要保留的行数据,j为原JPEG图片的纵坐标,H为原JPEG图片的高度,h为目标JPEG图片的高度,在一个8×8的数据块中,第0行、2行、4行、6行为需要保留的行,其他的为将要删除的行,如图5所示,黑色的行表示保留下来的行,白色的行表示要删除的行。
(6)将剩下的行数据参与到第二次IDCT计算,如图5所示,黑色的行所代表的数据为将参与该第二次IDCT计算的数据。在本次IDCT计算中,只有第0行、2行、4行、6行代表的数据参与。经过2次IDCT计算后,获得目标图片中与该Y分量所对应的Y′分量。
(7)重复步骤(3)~(6),继续对该原JPEG图片的MCU中的Cb分量和Cr分量所对应的其余数据块执行上述步骤,直到获取目标图片中与该Cb分量和Cr分量所对应的Cb′分量和Cr′分量,从而解码出原JPEG图片的一个完整的MCU。在获得目标图片中与该Y、Cb、Cr分量对应的Y′分量、Cb′分量和Cr′分量之后,可将Y′、Cb′和Cr′模式数据转换为目标图片要显示的颜色模式数据,比如目标图片在终端设备屏幕上要显示的颜色模式为RGB,则将YCbCr模式转换为RGB模式,并存储转换模式后的数据。
(8)重复(2)~(7),直到所有原JPEG图片的MCU解压完毕,即得到要显示的图片数据。
本实施例在进行第二次IDCT变换之前,部分删除已进行过一次IDCT变换的数据,若原JPEG图片缩小1/2,部分删除已进行过一次IDCT变换的数据,剩下4个一维点进行第二次IDCT变换,即本实施例中一个8x8数据块进行二次IDCT变换共需进行12次的一维点IDCT变换,少于不删除数据所需的16次一维点IDCT变换,因此有效减少了计算量,从而提高了解码速度。
实施例五:
为了更清楚地说明该JPEG图片解码方法,下面以缩小JPEG图片的宽度和高度作为一个具体应用例进行说明。为了达到缩小JPEG图片宽度和高度的目的,可使用实施例三介绍的方法先对该JPEG图片的宽度进行缩小,在解码结束后再对该JPEG图片的高度进行缩小;也可使用实施例四介绍的方法先对该JPEG图片的高度进行缩小,在解码结束后再对该JPEG图片的宽度进行缩小。在本实施例中,先对该JPEG图片的宽度进行缩小,在解码结束后再对该JPEG图片的高度进行缩小。其中,该JPEG图片为真彩图片。
(1)加载要显示的JPEG图片,分析该JPEG图片的头信息,获取编码表、量化表、数据采样比例、图片宽度、图片高度等图片信息。继续分析该JPEG图片,以便获取包含该JPEG图片所有数据信息的MCU。
(2)熵解码该JPEG图片的一个MCU,获取该MCU中由亮度值分量Y、颜色值分量Cb和颜色值分量Cr构成的3个8×8的数据块。
(3)对该MCU的Y分量进行反量化和反Zig_zag处理。
(4)将经过处理后的分量的8×8数据块中的行做一维IDCT计算,在本次IDCT计算中,整个8×8数据块的8行都参与该IDCT计算。
(5)根据宽度缩小比例删除数据块中的一些列数据,假定宽度缩小比例为1/2,根据公式J=i×w/W删除JPEG图片中数据块的列数据,其中,J为需要保留的列数据,i为原JPEG图片的横坐标,W为原JPEG图片的宽度,w为目标JPEG图片的宽度,在一个8×8的数据块中,第0列、2列、4列、6列为需要保留的列,其他的为将要删除的列,如图4所示,黑色的列表示保留下来的列,白色的列表示要删除的列。
(6)将剩下的数据列参与到第二次IDCT计算,如图4所示,黑色的列所代表的数据为将参与该第二次IDCT计算的数据,在本次IDCT计算中,只有第0列、2列、4列、6列代表的数据参与。经过2次IDCT计算后,获得中间图片中与该MCU中的Y所对应的Y′分量。
(7)重复步骤(3)~(6),继续对该原JPEG图片的MCU中的Cb分量和Cr分量所对应的其余数据块执行上述步骤,直到获取目标图片中与该Cb分量和Cr分量所对应的Cb′分量和Cr′分量,从而解码出原JPEG图片的一个完整的MCU。此时,该JPEG图片的宽度已经缩小,再根据高缩小系数缩小该JPEG图片的高度,如,根据公式j×h/H缩小该JPEG图片的高度,其中j表示原JPEG图片的纵坐标,H表示原JPEG图片的高度,h表示目标图片的高度。在缩小JPEG图片的高度后,将Y′、Cb′、Cr′模式转换为目标图片将在终端设备的屏幕上显示的颜色模式,并存储经过颜色模式转换后所得的数据。
(8)重复(2)~(7),直到原JPEG图片的所有MCU解压完毕,即得到要显示的图片数据。
本发明实施例中,加载JPEG图片并熵解码该JPEG图片的最小编码单元MCU,获得组成该MCU的数据块后,再对获得的每个由8×8个数据组成的数据块进行反量化、反Zig_Zag扫描等处理,最后对数据块中处理后的所有数据进行第一次IDCT计算,再根据屏幕的大小选择第一次IDCT计算后的数据进行第二次IDCT计算,以便获得经过IDCT计算后的数据所对应的亮度值、颜色值,根据该亮度值和颜色值可生成目标图片所采用的色彩模式数据,并最终生成目标图片。若终端设备显示目标图片的模式不是采用亮度值、颜色值模式,则可将亮度值、颜色值模式转换为在终端设备上显示目标图片采用的色彩模式后再生成目标图片并显示在该终端设备的屏幕上。该方法在不增加成本的情况下,删除了8×8数据块中已进行了第一次IDCT计算的部分数据,将剩下的数据参与第二次IDCT计算,有效减少了参与复杂度较高的IDCT计算的数据,从而提高解码JPEG图片的效率,并节约内存。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种JPEG图片解码方法,其特征在于,所述方法包括步骤:
获取原始图片的头信息,所述头信息包括原始图片的宽度信息、高度信息以及编码表信息;
根据所述编码表信息熵解码所述原始图片的最小编码单元,并对最小编码单元包含的数据块进行处理;
根据原始图片的宽度信息、原始图片的高度信息以及用于输出目标图片的屏幕的大小确定图片的缩小模式和缩小系数;
依据图片的缩小模式对数据块中的行数据/列数据进行第一次逆离散余弦变换,依据缩小系数删除第一次逆离散余弦变换后的数据块中的对应列数据/行数据,对删除数据后的数据块中的列数据/行数据进行第二次逆离散余弦变换,并依据逆离散余弦变换后的数据块生成目标图片。
2.如权利要求1所述的方法,其特征在于,所述根据原始图片的宽度信息、原始图片的高度信息以及用于输出目标图片的屏幕的大小确定图片的缩小模式和缩小系数的步骤具体为:
判断原始图片的图片宽度是否大于输出目标图片的屏幕宽度;
在判断出原始图片的图片宽度大于屏幕宽度时,继续判断所述原始图片的图片高度是否大于输出目标图片的屏幕高度,若原始图片的图片高度大于屏幕高度,确定所述原始图片的缩小模式为宽高度缩小模式,并确定图片的宽缩小系数为屏幕宽度与原始图片的图片宽度的比例值以及高缩小系数为屏幕高度与原始图片的图片高度的比例值;若原始图片的图片高度小于屏幕高度,确定所述原始图片的缩小模式为宽度缩小模式,并确定图片的宽缩小系数为屏幕宽度与原始图片的图片宽度的比例值;
在判断出原始图片的图片宽度小于屏幕宽度时,继续判断所述原始图片的图片高度是否大于输出目标图片的屏幕高度,若原始图片的图片高度大于屏幕高度,则确定所述原始图片的缩小模式为高度缩小模式,并确定图片的高缩小系数为屏幕高度与原始图片的图片高度的比例值。
3.如权利要求2所述的方法,其特征在于,当缩小模式为宽度缩小模式时,所述依据图片的缩小模式对数据块进行第一次逆离散余弦变换,依据缩小系数删除第一次逆离散余弦变换后的数据块中的对应数据,对删除数据后的数据块进行第二次逆离散余弦变换的步骤具体为:
对数据块中的行数据做逆离散余弦变换计算;
依据宽缩小系数删除逆离散余弦变换后的数据块中的对应列数据;
对删除列数据后的数据块中的列数据进行逆离散余弦变换。
4.如权利要求2所述的方法,其特征在于,当缩小模式为高度缩小模式时,所述依据图片的缩小模式对数据块进行第一次逆离散余弦变换,依据缩小系数删除第一次逆离散余弦变换后的数据块中的对应数据,对删除数据后的数据块进行第二次逆离散余弦变换的步骤具体为:
对数据块中的列数据做逆离散余弦变换计算;
依据高缩小系数删除逆离散余弦变换后的数据块中的对应行数据;
对删除行数据后的数据块中的行数据进行逆离散余弦变换。
5.如权利要求2所述的方法,其特征在于,当缩小模式为宽高度缩小模式时,所述依据图片的缩小模式对数据块进行第一次逆离散余弦变换,依据缩小系数删除第一次逆离散余弦变换后的数据块中的对应数据,对删除数据后的数据块进行第二次逆离散余弦变换的步骤具体为:
对数据块中的行数据做逆离散余弦变换计算,再依据宽缩小系数删除逆离散余弦变换后的数据块中的对应列数据,并对删除列数据后的数据块中的列数据进行逆离散余弦变换,最后依据高缩小系数缩小已进行宽度缩小的图片的高度;
或者,
对数据块中的列数据做逆离散余弦变换计算,再依据高缩小系数删除逆离散余弦变换后的数据块中的对应行数据,并对删除行数据后的数据块中的行数据进行逆离散余弦变换,最后依据宽缩小系数缩小已进行高度缩小图片的宽度。
6.如权利要求1所述的方法,其特征在于,所述依据逆离散余弦变换后的数据块生成目标图片的步骤具体为:
依据逆离散余弦变换后的数据块所对应的亮度值、颜色值生成在终端设备显示目标图片所采用的色彩模式数据,并在终端设备上显示所述色彩模式数据所对应的目标图片。
7.一种JPEG图片解码装置,其特征在于,所述装置包括:
图片信息获取单元,用于获取原始图片的头信息,所述头信息包括原始图片的宽度信息、高度信息、以及编码表信息;
数据块处理单元,用于根据所述编码表信息熵解码所述原始图片的最小编码单元,并对最小编码单元包含的数据块进行处理;
图片缩小模式及系数确定单元,用于根据原始图片的宽度信息、原始图片的高度信息以及用于输出目标图片的屏幕的大小确定图片的缩小模式和缩小系数;
目标图片生成单元,用于依据图片的缩小模式对数据块中的行数据/列数据进行第一次逆离散余弦变换,依据缩小系数删除第一次逆离散余弦变换后的数据块中的对应列数据/行数据,对删除数据后的数据块中的列数据/行数据进行第二次逆离散余弦变换,并依据逆离散余弦变换后的数据块生成目标图片。
8.如权利要求7所述的装置,其特征在于,所述图片缩小模式及系数确定单元包括:
判断模块,用于判断原始图片的图片宽度与输出目标图片的屏幕宽度的大小关系以及判断原始图片的图片高度与输出目标图片的屏幕高度的大小关系;
宽度模式确定模块,用于在原始图片的图片宽度大于屏幕宽度且图片高度小于屏幕高度时,确定所述原始图片的缩小模式为宽度缩小模式,确定宽缩小系数为屏幕宽度与原始图片的图片宽度的比例值;
高度模式确定模块,用于在原始图片的图片宽度小于屏幕宽度且图片高度大于屏幕高度时,确定所述原始图片的缩小模式为高度缩小模式,确定高缩小系数为屏幕高度与原始图片的图片高度的比例值;
宽高度模式确定模块,用于在原始图片的图片宽度大于屏幕宽度且图片高度大于屏幕高度时,确定所述原始图片的缩小模式为宽高度缩小模式,确定宽缩小系数为屏幕宽度与原始图片的图片宽度的比例值,确定高缩小系数为屏幕高度与原始图片的图片高度的比例值。
9.如权利要求7所述的装置,其特征在于,所述目标图片生成单元包括:
色彩模式转换模块,用于依据逆离散余弦变换后的数据块所对应的亮度值、颜色值生成在终端设备显示目标图片所采用的色彩模式数据,并在终端设备上显示所述色彩模式数据所对应的目标图片。
CN201110002495.8A 2011-01-07 2011-01-07 一种jpeg图片解码方法及装置 Active CN102595109B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110002495.8A CN102595109B (zh) 2011-01-07 2011-01-07 一种jpeg图片解码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110002495.8A CN102595109B (zh) 2011-01-07 2011-01-07 一种jpeg图片解码方法及装置

Publications (2)

Publication Number Publication Date
CN102595109A CN102595109A (zh) 2012-07-18
CN102595109B true CN102595109B (zh) 2014-12-17

Family

ID=46483266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110002495.8A Active CN102595109B (zh) 2011-01-07 2011-01-07 一种jpeg图片解码方法及装置

Country Status (1)

Country Link
CN (1) CN102595109B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833547B (zh) * 2012-08-22 2017-07-11 厦门雅迅网络股份有限公司 一种应用于jpeg图像的快速嵌入显性信息的方法
CN103236246A (zh) * 2013-04-27 2013-08-07 深圳市长江力伟股份有限公司 基于硅基液晶的显示方法及显示装置
CN104408503B (zh) * 2014-10-30 2017-08-01 厦门市美亚柏科信息股份有限公司 二维码的处理方法及系统
CN105578194B (zh) * 2016-01-06 2018-12-25 珠海全志科技股份有限公司 Jpeg图像解码方法和解码器
CN107426282A (zh) * 2017-05-02 2017-12-01 努比亚技术有限公司 一种图片加载方法、终端及服务器
CN108171662B (zh) * 2017-12-18 2020-08-07 珠海全志科技股份有限公司 读取图像压缩数据的方法及包含该方法的反畸变方法
CN108109181B (zh) * 2017-12-18 2021-06-01 珠海全志科技股份有限公司 读取图像压缩数据的电路及包含该电路的反畸变电路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1219321A (zh) * 1997-03-12 1999-06-09 松下电器产业株式会社 高分辨率电视下转换系统
CN101039431A (zh) * 2006-02-23 2007-09-19 首尔大学校产学协力财团 利用离散余弦变换调整图像大小的方法及装置
CN101763877A (zh) * 2009-12-23 2010-06-30 北京中星微电子有限公司 一种多媒体播放的快速芯片验证方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005277908A (ja) * 2004-03-25 2005-10-06 Nec Access Technica Ltd 画像処理装置、その画像処理方法およびカメラつき携帯電話

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1219321A (zh) * 1997-03-12 1999-06-09 松下电器产业株式会社 高分辨率电视下转换系统
CN101039431A (zh) * 2006-02-23 2007-09-19 首尔大学校产学协力财团 利用离散余弦变换调整图像大小的方法及装置
CN101763877A (zh) * 2009-12-23 2010-06-30 北京中星微电子有限公司 一种多媒体播放的快速芯片验证方法和装置

Also Published As

Publication number Publication date
CN102595109A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102595109B (zh) 一种jpeg图片解码方法及装置
US7773816B2 (en) Systems and methods for decoding large images
US20100118947A1 (en) Decoder for selectively decoding predetermined data units from a coded bit stream
WO2006073830A1 (en) Image rotation via jpeg decompression according to an order different from the encoding block scanning order
EP1952539A1 (en) Repetition and correlation coding
US8923389B1 (en) Unified scaling with differential coding for internal bit depth extension and reference frame compression
US7050656B2 (en) Image scaling in the compressed domain
US6721455B1 (en) Method and apparatus for icon compression and decompression
US20110267502A1 (en) Image processing system and method
US8233729B2 (en) Method and apparatus for generating coded block pattern for highpass coefficients
Kim et al. A sub-pixel gradient compression algorithm for text image display on a smart device
CN115767085A (zh) 数据处理方法及其装置
KR100518849B1 (ko) 영상 압축 및 복원 방법
US7003165B2 (en) Image processor and image processing method for decompressing progressive-coded compressed image data
CN107172425B (zh) 缩略图生成方法、装置及终端设备
JP2004135254A (ja) 画像処理装置
US20050286803A1 (en) Image processing apparatus, display device, image processing method, and image processing program
Daho et al. A JPEG-like algorithm for compression of single-sensor camera image
CN112087636B (zh) 一种图像编码的处理方法、装置、存储介质及终端
US5475431A (en) Real-time encoding signal extraction and display apparatus
Araar et al. Low-complexity JPEG quantization table requiring only bit-shift operations
CN116347089B (zh) Jpeg图像处理方法及其装置、电子设备、存储介质
US20060126951A1 (en) Method of coding and decoding still picture
JP2002185961A (ja) 画像データ受信方法及びアダプタ装置及び携帯端末
NZ536300A (en) Repetition coded compression for highly correlated image data

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
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Decoding method and device for JPEG image

Effective date of registration: 20171102

Granted publication date: 20141217

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: Anyka (Guangzhou) Microelectronics Technology Co., Ltd.

Registration number: 2017990001008

PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20181227

Granted publication date: 20141217

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: Anyka (Guangzhou) Microelectronics Technology Co., Ltd.

Registration number: 2017990001008

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Decoding method and device for JPEG image

Effective date of registration: 20190130

Granted publication date: 20141217

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: Anyka (Guangzhou) Microelectronics Technology Co., Ltd.

Registration number: 2019440000051

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20200320

Granted publication date: 20141217

Pledgee: China Co truction Bank Corp Guangzhou economic and Technological Development Zone sub branch

Pledgor: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Registration number: 2019440000051

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, Science City, Guangzhou, Guangdong 510663

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

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

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

CP02 Change in the address 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: 3 / F, C1 area, innovation building, 182 science Avenue, Science City, Guangzhou, Guangdong 510663

Patentee before: Guangzhou Ankai Microelectronics Co.,Ltd.