CN1977540A - 用于图像编码/解码和扩展图像压缩解压缩的方法和设备 - Google Patents
用于图像编码/解码和扩展图像压缩解压缩的方法和设备 Download PDFInfo
- Publication number
- CN1977540A CN1977540A CN 200580022133 CN200580022133A CN1977540A CN 1977540 A CN1977540 A CN 1977540A CN 200580022133 CN200580022133 CN 200580022133 CN 200580022133 A CN200580022133 A CN 200580022133A CN 1977540 A CN1977540 A CN 1977540A
- Authority
- CN
- China
- Prior art keywords
- data
- image
- spatial
- matrix
- pixels
- 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.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种用于图像编码/解码和扩展图像压缩解压缩的方法和设备。本图像编码方法等在处理例如JPEG等时在进行空间频率变换之前将像素块表示为矩阵,计算该矩阵中的列i内的像素值的总和数据sc(i)以及该矩阵中的行j内的像素值的总和数据sr(j)(S22),计算的nc(i)和nr(j),以分别使sc(i)和sr(j)以降序排列(S23),并且在认为置换合理的预定条件成立(S24、S28)时,进行矩阵的置换(S26、S30),产生包括将该矩阵置换为原始状态所需的nc(i)和nr(j)的头部信息Ph(n)(S32),并将该头部信息添加到诸如JPEG等的压缩图像文件的头部。
Description
技术领域
本发明涉及图像编码方法、图像解码方法、运动图像压缩方法、运动图像解压缩方法、图像编码程序、图像编码装置、图像解码装置、图像编码/解码系统、以及扩展图像压缩/解压缩系统,这些方法、程序、装置和系统对静止图像或运动图像进行编码以进行压缩,或者/以及对它们进行解码以进行解压缩。
背景技术
在信息处理领域内,已经开发了各种类型的用于压缩数据的技术。对于数据(特别是对于图像数据),公知压缩技术的示例包括用于静止图像的JPEG、JPEG 2000等,以及用于运动图像的MPEG、MPEG 2、MPEG4等。
例如,在CCIT建议T.81,“Information technology-digitalcompression and coding of continuous-tone still images-requirements andguidelines”,ITU,1992中描述了上述使用JPEG的压缩。然而,为了方便将说明JPEG处理的概要。
以彩色图像为例,首先将由三种颜色(例如,亮度信号Y、以及两个色差信号Cb和Cr)构成的图像针对每种颜色分别分为8×8的像素块。接着,利用DCT(离散余弦变换)将亮度信号Y的像素块以及两个色差信号Cb和Cr的各个像素块分别(即,三次)变换到频率空间中。随后,使用亮度信号量化表或者色差信号量化表(Cb和Cr共用)对各个像素块的DCT系数进行量化,并使用亮度信号Huffman表或色差信号Huffman表(Cb和Cr共用)对各个像素块的DCT系数进行熵编码。
尽管对传统的JPEG有了改进(例如,可逆/不可逆压缩/图像质量的可量测性、蚊式噪声的减少等),但用于静止图像压缩的JPEG 2000还不普及。JPEG被认为是将来用于图像压缩的首选技术。
近年来,数字相机和蜂窝电话中采用的图像拾取像素的数量显著增加。而且,以蜂窝电话等为代表的常用设备(经常持续携带的设备)已经被广泛地使用,从而拍摄的机会增多,而且由个人处理的数字图像的量也增加。因此,为了应对信息量的这种增加,显然期望图像数据的量较小。
然而,通过传统的JPEG,减小压缩图像数据的大小的唯一方法是采用较稀疏的量化表,即扩大量化宽度。公知的是,这将增加上述蚊式噪声等,从而降低了图像质量。
迄今已经提出了用来即使在压缩比设置得较高时也可以防止产生这种噪声的多种技术。
例如,日本未审专利申请公报No.2000-308058描述了这样的一种技术,其中,可以通过在JPEG处理之前进行预处理以降低图像边缘部分的信号电平差,来减小容易在图像边缘部分上产生的蚊式噪声。
此外,日本未审专利申请公报No.8-163375描述了这样的一种技术,其中,根据像素值的分布将像素块分为多个区域,针对每个划分区域对稀疏的像素进行补偿,从而获得每个像素块的大小,并对每个像素块进行JPEG转换。
然而,通过上述日本未审专利申请公报No.2000-308058中所述的技术,需要在进行该预处理的装置侧储存与在JPEG编码前对图像边缘部分进行的预处理相关的信息,因此,不能单独从压缩图像文件再现原始图像。而且,通过该预处理,图像数据的整个像素块进行了低位转换,从而增加了量化误差,因此降低了图像质量。
此外,由于上述日本未审专利申请公报No.8-163375中描述的技术从单个像素块产生多个像素块,所以使用传统的JPEG解码器进行解码处理的尝试将导致误差,从而不能完成处理。
如上所述,还没有提出这样的压缩格式,该压缩格式能够仅通过JPEG解码器来概括地对压缩图像文件进行解码,从而即使在量化表设置得细致时也能通过少量的码来进行压缩,或者即使在量化表设置得稀疏时也能防止蚊式噪声。
针对上述情况而提出本发明,本发明的目的在于针对利用空间频率变换的编码方法提供图像编码方法、图像解码方法、运动图像压缩方法、运动图像解压缩方法、图像编码程序、图像编码装置、图像解码装置、图像编码/解码系统、以及扩展图像压缩/解压缩系统,这些方法、程序、装置和系统减少了码的量,而且/或者能够抑制噪声,而且/或者能够对编码数据进行解码。
发明内容
为了实现上述目的,将根据第一发明的一种图像编码方法应用于基本编码方法,该基本编码方法包括:空间频率变换步骤,用于利用空间频率变换将图像数据或差分图像数据从图像空间变换为频率空间内的变换系数;以及头部产生步骤,用于将与所述图像数据或差分图像数据相关的信息添加到基于所述变换系数的数据中作为头部部分,所述图像编码方法包括:空间变换步骤,用于在空间频率变换步骤之前对所述图像数据或差分图像数据进行可逆图像空间变换;以及头部信息添加步骤,用于向所述头部部分添加进行所述图像空间变换的逆变换所需的空间变换参数。
此外,通过根据第二发明的图像编码方法,在根据所述第一发明的图像编码方法中,所述基本编码方法还包括编码步骤,该编码步骤用于对所述变换系数进行编码,使得低频系数的数据量总体上小于高频系数的数据量,并且在所述空间变换步骤中进行的可逆图像空间变换抑制了由空间频率变换导致的高频系数。
此外,通过根据第三发明的图像编码方法,在根据第一发明的图像编码方法中,所述基本编码方法还包括划分步骤,该划分步骤用于将图像数据或差分图像数据划分为像素块,并且所述空间频率变换步骤将在该划分步骤中划分的所述像素块变换到频率空间内,并且所述空间变换在空间频率变换步骤之前对所述像素块中的至少一个像素块进行所述可逆图像空间变换。
通过根据第四发明的图像编码方法,在根据第三发明的图像编码方法中,在所述空间变换步骤中,将像素块表示为矩阵M,并且所述可逆空间变换包括M的行置换(row-wise permutation)和列置换(column-wisepermutation)中的至少一种。
通过根据第五发明的图像编码方法,在根据第三发明的图像编码方法中,在所述空间变换步骤中,将像素块表示为矩阵M,并且通过可逆线性矩阵运算来表示所述可逆空间变换
M→AMB,
其中,A和B表示可逆矩阵。
通过根据第六发明的图像编码方法,在根据第五发明的图像编码方法中,所述矩阵A和矩阵B中的一个矩阵为用于通过矩阵运算进行矩阵M的行置换的矩阵,而另一个矩阵为用于通过矩阵运算进行矩阵M的列置换的矩阵。
通过根据第七发明的图像编码方法,在根据第五发明的图像编码方法中,用于进行行置换的矩阵被表示为用于将某一行加到另一行的矩阵与用于将某一行乘以-1的矩阵的矩阵积,而用于进行列置换的矩阵被表示为用于将某一列加到另一列的矩阵与用于将某一列乘以-1的矩阵的矩阵积。
通过根据第八发明的图像编码方法,在根据第四至第六发明中的任意一项的图像编码方法中,进行矩阵M的行之间的置换,使得在行间置换后,沿行方向的像素值的总和在列方向上为升序或降序,并且进行矩阵M的列之间的置换,使得在列间置换后,沿列方向的像素值的总和在行方向上为升序或降序。
通过根据第九发明的图像编码方法,在根据第一发明的图像编码方法中,在所述空间变换步骤中,通过改变所述图像数据或所述差分图像数据中的像素的布置来进行所述可逆空间变换。
通过根据第十发明的图像编码方法,在根据第一或第二发明的图像编码方法中,在所述空间频率变换步骤中获得的变换系数包括与所述图像数据的平均值或与所述差分图像数据的平均值成比例的DC系数,并且在所述空间变换步骤中进行的所述图像空间变换保持所述DC系数不变。
通过根据第十一发明的图像编码方法,在根据第三发明的图像编码方法中,在所述空间频率变换步骤中获得的所述变换系数包括与所述像素块的平均值成比例的DC系数,并且在所述空间变换中进行的所述图像空间变换保持所述DC系数不变。
根据第十二发明的图像编码方法可应用于JPEG编码处理,该图像编码方法包括:空间变换步骤,用于在进行离散余弦变换之前对至少一个像素块进行可逆图像空间变换;空间变换参数提取步骤,用于提取进行所述图像空间变换的逆变换所需的空间变换参数;以及头部信息添加步骤,用于向JPEG文件的头部部分添加在所述空间变换参数提取步骤中提取的空间变换参数。
通过根据第十三发明的图像编码方法,在根据第十二发明的图像编码方法中,所述图像空间变换保持通过进行离散余弦变换获得的DCT系数中的DC系数不变,并增加所述DCT系数中的低频AC系数的幅值。
根据第十四发明的对图像数据或差分图像数据进行编码的图像编码方法,该图像编码方法包括:空间变换步骤,用于在图像空间内对所述图像数据或差分图像数据进行可逆空间变换;空间频率变换步骤,用于将图像数据或差分图像数据从图像空间变换至频率空间,从而获得变换系数;编码步骤,用于将所述变换系数编码为编码数据;以及头部信息产生步骤,用于向所述编码数据整体地添加进行所述空间变换的逆变换所需的信息作为头部信息;在所述编码步骤之后,用于低频系数侧的数据量总体上小于用于高频系数侧的数据量;并且所述空间变换步骤总体上抑制了由所述空间频率变换导致的高频系数。
根据第十五发明的图像解码方法,该图像解码方法可应用于基本解码方法,该基本解码方法包括:逆空间频率变换步骤,用于利用逆空间频率变换对从编码图像数据或从编码差分图像数据产生的变换系数进行变换,从而获得图像空间数据,用于对利用根据第一发明的图像编码方法进行了编码的编码图像数据或编码差分图像数据进行解码,所述图像解码方法包括:头部信息读出步骤,用于从所述头部部分读出至少空间变换参数;以及逆空间变换步骤,用于根据在所述头部信息读出步骤中读出的所述空间变换参数对由所述逆空间频率变换步骤产生的图像空间数据进行所述图像空间变换的逆变换。
通过根据第十六发明的图像解码方法,在根据第十五发明的图像解码方法中,该图像解码方法还包括:头部识别步骤,用于识别是否在所述头部部分中描述了所述空间变换参数,如果在所述头部识别步骤中识别到所述空间变换参数,则输出通过基于所述空间变换参数进行所述逆空间变换步骤而获得的图像数据或差分图像数据,但是在所述头部识别步骤中没有识别到所述空间变换参数的情况下,输出没有进行所述逆空间变换步骤而获得的图像数据或差分图像数据。
根据第十七发明的运动图像压缩方法用于利用根据一个图像帧内的图像数据的帧内压缩和根据多个图像帧的帧间压缩,对包括呈时间序列式关系的多个图像帧的运动图像数据进行编码,并且所述帧内压缩可应用于基本帧内压缩方法,该基本帧内压缩方法包括:划分步骤,用于将图像帧划分为像素块;空间频率变换步骤,用于对所述像素块进行空间频率变换以获得变换系数;以及头部信息产生步骤,用于将与所述图像数据相关的信息添加到基于在所述空间频率变换步骤内获得的所述变换系数的数据,作为头部部分,所述帧内压缩还包括:空间变换步骤,用于在所述空间频率变换步骤之前对所述像素块中的至少一个进行可逆图像空间变换;以及头部信息添加步骤,用于将进行所述图像空间变换的逆变换所需的空间变换参数添加到所述头部部分。
通过根据第十八发明的运动图像压缩方法,在根据第十七发明的运动图像压缩方法中,该运动图像压缩方法还包括:空间变换模式选择步骤,用于选择是否执行所述空间变换步骤和所述头部信息添加步骤。
根据第十九发明的运动图像压缩方法用于利用基于一个图像帧内的图像数据的帧内压缩和基于多个图像帧的帧间压缩,对包括呈时间序列式关系的多个图像帧的运动图像数据进行编码,并且所述帧间压缩可应用于基本帧间压缩方法,该基本帧间压缩方法包括:划分步骤,用于将图像帧划分为像素块;差值计算步骤,用于通过获得在该划分步骤中划分的所述像素块中的至少一个像素块与要进行比较的图像帧内的对应像素块之间的差,来产生差分像素块;空间频率变换步骤,用于对所述差分像素块进行空间频率变换;以及头部信息产生步骤,用于将与所述图像数据相关的信息添加到基于所述变换系数获得的数据中作为头部部分,所述帧间压缩还包括:空间变换,用于在所述空间频率变换步骤之前对所述差分像素块中的至少一个差分像素块进行可逆图像空间变换;以及头部信息添加步骤,用于将进行所述图像空间的逆变换所需的空间变换参数添加到所述头部部分中。
根据第二十发明的运动图像压缩方法,在根据第十九方面的运动图像压缩方法中,该运动图像压缩方法还包括:空间变换模式选择步骤,用于选择是否进行所述空间变换步骤和所述头部信息添加步骤。
通过根据第二十一发明的运动图像压缩方法,在根据第十九发明的运动图像压缩方法中,所述头部信息产生步骤产生用于包括多个帧的组的头部;并且所述头部信息添加步骤是用于将所述空间变换参数添加到对应组的所述头部部分中的步骤。
根据第二十二发明的运动图像解码方法,该运动图像解码方法可应用于基本运动图像解码方法,该基本运动图像解码方法包括:逆空间频率变换步骤,用于利用逆空间频率变换对来自压缩运动图像数据的变换系数进行变换,以获得像素块的图像空间数据,用于对通过根据第十七发明的运动图像压缩方法进行了编码的运动图像数据进行解码,所述运动图像解码方法包括:头部信息读出步骤,用于从所述头部部分读出至少所述空间变换参数;以及逆空间变换步骤,用于根据在所述头部信息读出步骤中读出的所述空间变换参数,对由所述逆空间频率变换步骤产生的像素块进行所述图像空间变换的逆变换。
根据第二十三发明的运动图像解压缩方法,该运动图像解压缩方法可应用于基本运动图像解码方法,该基本运动图像解码方法包括:逆空间频率变换步骤,用于利用逆空间频率变换对来自压缩运动图像数据的变换系数进行变换,以获得差分像素块的图像空间数据,用于对通过根据第十九发明的运动图像压缩方法进行了编码的运动图像数据进行解码,所述运动图像解压缩方法包括:头部信息读出步骤,用于从所述头部部分读出至少所述空间变换参数;以及逆空间变换步骤,用于根据在所述头部信息读出步骤中读出的所述空间变换参数,对由所述逆空间频率变换步骤产生的差分像素块进行所述图像空间变换的逆变换。
根据第二十四发明的图像编码程序,该图像编码程序由计算机执行从而对图像数据或差分图像数据进行编码,所述图像编码程序包括:空间变换步骤,用于在图像空间内对所述图像数据或差分图像数据进行可逆空间变换;空间频率变换步骤,用于将图像数据或差分图像数据从图像空间变换至频率空间,从而获得变换系数;编码步骤,用于将所述变换系数编码为编码数据;头部信息产生步骤,用于向所述编码数据整体地添加进行所述空间变换的逆变换所需的信息作为头部信息。
根据第二十五发明的图像编码装置用于对图像数据或差分图像数据进行编码,该图像编码装置包括:空间变换单元,用于对图像数据或差分图像数据进行图像空间内的可逆图像空间变换;空间频率变换单元,用于对图像数据或差分图像数据进行空间频率变换,从而获得变换系数;头部信息产生器,用于将与图像数据或差分图像数据相关的信息添加到基于所述变换系数而获得的数据中;以及头部信息添加单元,用于将进行所述图像空间变换的逆变换所需的空间变换参数添加到所述头部部分。
根据第二十六发明的图像解码装置用于对通过根据第二十五发明的所述图像编码装置进行了编码的编码数据进行解码,所述图像解码装置包括:逆空间频率变换单元,用于对从所述编码数据产生的变换系数进行逆空间频率变换,从而获得图像空间中的像素数据;头部解释器,用于从所述头部读出至少所述空间变换参数;以及逆空间变换单元,用于根据由所述头部解释器读出的所述空间变换参数对图像中的像素数据进行所述图像空间变换的逆变换,从而获得图像数据或差分图像数据。
根据第二十七发明的图像编码/解码系统包括:根据第二十五发明的图像编码装置;以及根据第二十六发明的图像解码装置。
根据第二十八发明的扩展图像编码/解码系统包括第一图像编码/解码系统,该第一图像编码/解码系统包括第一图像编码装置、第一图像解码装置、第二图像编码装置以及第二图像解码装置,该第一图像编码装置包括:划分单元,用于将原始图像数据划分为像素块;空间频率变换单元,用于通过对由所述划分单元产生的所述像素块进行空间频率变换来获得变换系数;量化器,用于对来自所述空间频率变换单元的所述变换系数进行量化,从而产生变换系数的整数值(integral value);熵编码器,用于对变换系数的这些整数值进行熵编码;以及压缩图像文件产生装置,用于通过将与所述图像数据相关的信息添加到根据所述熵编码器的结果而获得的数据中作为头部部分而产生第一压缩图像文件,该第一图像解码装置包括:头部解释器,用于从所述第一压缩图像文件读出所述头部部分;熵解码器,用于通过对从所述第一压缩图像文件获得的码进行熵解码而获得变换系数的整数值;逆量化器,用于对所述熵解码器产生的变换系数的整数值进行去量化,从而获得变换系数;逆空间频率变换单元,用于通过对来自所述逆量化器的变换系数进行逆空间频率变换而获得以像素块为单位的像素数据;以及再现(rendering)装置,用于通过将所述像素块组合为原始图像数据来产生原始图像数据,该第二图像编码装置用于产生第二压缩图像文件,该第二图像编码装置是通过向所述第一图像编码装置添加以下单元而获得的:空间变换单元,用于在进行空间频率变换之前对所述像素块进行可通过空间变换参数识别的可逆图像空间变换;以及头部信息添加单元,用于将所述空间变换参数添加到所述头部部分,该第二图像解码装置用于从第二压缩图像文件获取原始图像数据,该第二图像解码装置是通过向所述第一图像解码装置添加以下单元而获得的:附加头部信息阅读器,用于从所述头部部分读出所述空间变换参数;以及逆空间变换单元,用于根据由该附加头部信息阅读器读出的空间变换参数进行所述图像空间变换的逆变换。在该扩展编码/解码系统中,在要处理的压缩图像文件为第二压缩图像文件的情况下,所述第一图像解码装置能够通过忽略在所述第二压缩图像文件的头部部分中描述的空间变换参数来恢复与所述原始图像数据不同的数据;并且其中,在所述附加头部信息阅读器不能从所述头部部分读出所述空间变换参数的情况下,所述第二图像解码装置通过只进行由第一图像解码装置部分进行的解码而不进行由所述逆空间变换单元进行的处理来恢复原始图像数据。
在根据第二十八发明的扩展图像编码/解码系统中,根据第二十九发明的扩展图像编码/解码系统还包括:图像采集装置,其具有所述第二图像编码装置;以及计算机,其具有所述第一图像解码装置。
通过根据第三十发明的图像编码方法,在根据第一发明的图像编码方法中,所述空间变换步骤是用于进行可通过至少一个调节参数进行调节的图像空间变换的步骤,并且所述头部信息添加步骤是用于将所述调节参数添加到所述头部部分中的步骤。
通过根据第三十一发明的图像编码方法,在根据第三十发明的图像编码方法中,所述基本编码方法还包括用于将图像数据或差分图像数据划分为像素块的划分步骤,并且所述空间频率变换步骤是用于对在所述划分步骤中划分的所述像素块进行空间频率变换的步骤,并且所述空间变换步骤是用于在进行所述空间频率变换步骤之前对所述像素块中的至少一个进行可逆图像空间变换的步骤。
通过根据第三十二发明的图像编码方法,在根据第三十一发明的图像编码方法中,在所述图像变换步骤中,将像素块表示为矩阵M,而且对该矩阵M进行使用可逆矩阵A的被表示为
M→AM
的可逆矩阵运算以及使用可逆矩阵B的被表示为
M→MB
的可逆矩阵运算中的至少一种可逆矩阵运算。
通过根据第三十三发明的图像编码方法,在根据第三十二发明的图像编码方法中,所述矩阵A和矩阵B是用于对由所述矩阵M表示的像素块实现空间低通滤波的矩阵。
通过根据第三十四发明的图像编码方法,在根据第三十三发明的图像编码方法中,所述调节参数包括用于调节空间低通滤波的强度的滤波调节参数。
通过根据第三十五发明的图像编码方法,在根据第三十四发明的图像编码方法中,所述基本编码方法还包括量化步骤,用于利用特定的量化宽度对在所述空间频率变换中获得的变换系数进行量化,所述头部产生步骤是用于将与所述图像数据相关的信息添加到根据所述量化步骤的所述结果而获得的数据中作为头部部分的步骤,并且根据所述滤波调节参数来调节所述量化宽度。
通过根据第三十六发明的图像编码方法,在根据第三十发明的图像编码方法中,在所述空间频率变换步骤中获得的所述变换系数包括与像素块内的图像数据的平均值成比例的DC系数,并且所述空间变换步骤使所述DC系数保持不变。
根据第三十七发明的图像编码方法用于选择性地执行以下方法:根据第六发明的图像编码方法;以及根据第三十三发明的图像编码方法。
附图说明
图1为表示根据本发明第一实施例的扩展JPEG编码器的结构的框图。
图2为表示根据第一实施例的扩展JPEG解码器的结构的框图。
图3为表示根据本发明第一实施例的编码处理的流程图。
图4为表示根据本发明第一实施例的解码处理的流程图。
图5为表示根据本发明第一实施例的JEX编码处理的流程图。
图6为表示根据本发明第一实施例的JEX解码处理的流程图。
图7为表示本发明第一实施例的将VGA图像划分为多个块的示例的图。
图8为表示本发明第一实施例的8×8像素块的像素结构的图。
图9为表示本发明第一实施例的要通过填充(padding)六角形像素来进行2-D形再现的图像的示例的图。
图10为其中将表示设置在图9中的像素数据沿行方向和列方向排列的示例的图。
图11为表示本发明第一实施例的计算对于排列nc(i)将要获得的决策值Chc所需的各个元素的示例的图表。
图12表示本发明第一实施例的决策值如何随着权值w的变化而变化的图表。
图13为表示本发明第一实施例的矩阵M的示例的图。
图14为表示本发明第一实施例的用于实现列之间的基本置换的基矩阵的相互作用顺序的图表。
图15为表示本发明第一实施例的从图像数据提取的原始8×8像素块的数据示例的图表。
图16为表示本发明第一实施例的关于8×8像素块数据的沿行方向的总和以及沿列方向的总和的各个计算结果的图表。
图17为表示本发明第一实施例的进行了置换的像素块数据的图表。
图18为表示本发明第一实施例的进行了电平移位(level shift)和DCT的数据的图表。
图19为表示本发明第一实施例的进行了量化的8×8块数据的图表。
图20为表示通过在图4所示的解码处理中对图19所示的进行了量化的数据进行逆量化和逆DCT(IDCT),并对该数据进行电平移位以舍入到0至255的范围内而获得的数据的图表。
图21为表示通过对图20所示的数据就进行逆置换进行了置换的像素块的图表。
图22为表示从图21所示的解码像素块数据中减去图15所示的原始像素块数据而获得的结果的图表。
图23为表示本发明第一实施例的存储JPEG压缩数据的EXIF文件的基本结构的图。
图24为更加详细地表示本发明第一实施例的JPEG压缩数据文件的基本结构的图。
图25为表示本发明第一实施例的头部信息Ph(n)的结构和具体数据示例的图表。
图26为表示本发明第一实施例的其中组合了能够处理扩展JPEG的设备和能够处理传统JPEG的设备的系统结构的图。
图27为表示本发明第一实施例的能够对运动图像进行JEX的编码器的结构的框图。
图28为表示传统JPEG编码器的结构的框图。
图29为表示传统JPEG解码器的结构的框图。
图30为表示对图15所示的原始8×8像素块数据进行DCT而获得的结果的图表。
图31为表示对图30所示的块数据进行量化而获得的结果的图表。
图32为表示对图31所示的块数据进行逆量化和逆DCT,并对所述块数据进行电平移位以将其舍入到0至255之间范围的数据内而获得的结果的图表。
图33为表示从图32所示的解码像素块数据中减去图15所示的原始像素块数据而获得的结果的图表。
图34为表示传统运动图像编码器的结构的框图。
图35为表示根据本发明第二实施例的扩展JPEG编码器的结构的框图。
图36为表示根据本发明第二实施例的扩展JPEG解码器的结构的框图。
图37为表示根据本发明第二实施例的JEX编码处理的概要的流程图。
图38为表示图37的步骤S61中的JEX(LPF)预处理的细节的流程图。
图39为表示本发明第二实施例的根据设置项Choice选择的控制参数对(η,SF)的图表。
图40为表示图37中的步骤S62的JEX(LPF)主处理的细节的流程图。
图41为表示图40中的步骤S85中的Vsc和kc计算处理的细节的流程图。
图42为表示图40的步骤S86中的Vsr和lr计算处理的细节的流程图。
图43为表示本发明第二实施例中的JEX(LPF)解码处理的流程图。
图44为表示根据本发明第二实施例的Mode向量和Pos向量的示例的图表。
图45为表示根据本发明第二实施例的头部信息Phl(n)的示例的图。
图46为表示本发明第二实施例的根据整个图像的全局头部的示例的图表。
图47为表示本发明第二实施例的要记录在全局头部的类别中的位值的示例的图表。
图48为表示图46所示的全局参数的第一个8位值的示例的图表。
图49为表示图46所示的全局参数的第二个8位值的示例的图表。
图50为表示本发明第二实施例的从图像数据提取的原始8×8像素块的数据示例的图表。
图51为表示对图50所示的原始8×8像素块数据进行电平移位和DCT而获得的结果的图表。
图52为表示对图51所示的块数据进行量化而获得的结果的图表。
图53为表示对图52所示的块数据进行逆量化和逆DCT,并对该块数据进行电平移位以将其舍入到0至255之间范围的数据内而获得的结果的图表。
图54为表示从图53所示的进行了解码的像素块数据中减去图50所示的原始像素块数据而获得的结果的图表。
图55为表示本发明第二实施例的从头部信息中提取的模式信息和滤波位置信息的示例的图表。
图56为表示对图50所示的原始8×8像素块数据进行图55所示的8次低通滤波处理而获得的结果的图表。
图57为表示对图56所示的进行了低通滤波处理的8×8像素块数据进行电平移位和DCT而获得的结果的图表。
图58为表示对图57所示的块数据进行量化而获得的结果的图表。
图59为表示对图58所示的块数据进行逆量化和逆DCT,并对该块数据进行电平移位和逆LPF处理以将其舍入为0至255之间范围的数据内而获得的结果的图表。
图60为表示本发明第三实施例的其中将低通滤波与置换进行组合的JEX主处理的示例的流程图。
图61为表示将在图60的步骤S137中产生的头部信息的示例的图表。
图62为表示将在图60的步骤S136中产生的头部信息的示例的图表。
图63为表示本发明第三实施例的采用另一低通滤波时的头部信息的示例的图表。
具体实施方式
对于以下说明中采用的术语,这里,在对本发明的具体实施例进行描述之前将使它们的定义更加清楚。
首先,术语“像素”是指构成图像的元素,其包括表示图像内的空间位置(像素位置)以及在该空间位置处的值(像素值)的信息。注意,这里描述的图像不限于通过以离散的方式将像素设置在2-D欧几里德空间内而限定的图像,而可以是通过以离散的方式将像素设置在2-D黎曼空间内限定的图像,更一般地说,可以是通过以离散的方式将像素设置在2-D紧流形(compact manifold)K内而限定的图像。
术语“像素组”是指一组像素。实际上,像素组用作空间位置彼此相邻的一组像素,但不限于此。如以下将描述的那样,可以在数学方面将像素组表示为矩阵或向量,而且在信息处理方面可以将像素组作为2-D阵列或1-D阵列进行处理。
术语“像素信号”以及“像素数据”是指上述像素值。像素信号的表述是指在实际电路中作为电信号处理的像素值等。此外,像素数据表明了这样的事实,即,在进行处理时像素值在计算机等中被作为信息进行处理。
术语“图像空间”是指通过以离散的方式将像素设置在2-D紧流形K内而构成的空间。该图像空间的具体示例包括整个图像,以及作为通过划分图像而获得的图像子集的8×8像素块(其为要在JPEG编码/解码中进行处理的单元)。此外,可以采用要在诸如MPEG、MPEG 2、MPEG4、H.264等的编码/解码中进行处理的最小像素块单元作为另一示例。
术语“图像空间变换”是指从图像空间A到图像空间B的映射,而且可以将其定义为离散函数f。在以下实施例中,将主要考虑可逆图像空间变换(即,可定义f的反函数的变换)。图像空间变换的具体示例包括线性可逆映射,并且线性可逆映射的具体示例包括线性置换。以下将通过示例来描述可逆线性映射和线性置换的具体数学表示。在以下示例中,分别而言,在编码时,在进行空间频率变换之前执行该图像空间变换(预处理),而在解码时,在逆变换之后也进行该图像空间变换(后处理)。
术语“空间频率变换”是指从图像空间到频率空间的映射。
术语“正交变换”是指从定义了内积的空间A到定义了内积的空间B的变换,而且内积值在变换下保持不便。作为正交变换的空间频率变换的示例包括DCT(离散余弦变换)。此外,Hadamard变换是作为正交变换的空间频率变换的另一示例,该Hadamard变换可表示为整数算术运算。
术语“置换”是指在图像空间(作为具体示例,为像素块)内替换像素,从而成为图像空间内的函数。如上所述,通过将像素的像素值的信息与像素的像素位置相关联而获得像素。通过中止图像空间内的像素值和像素位置之间的以前的配对,并产生新的配对,来实现置换。例如,对于像素置换,某个像素位置的像素值被另一位置的像素值替换。注意,进行置换的最小像素集称为置换单元,其一般等同于像素本身。利用基本置换来进行两个置换单元的交换。
其它术语将在以下示例中描述,或者采用通用的术语定义。
以下将参照附图描述本发明的示例。
[第一实施例]
图1至图27示出了本发明的第一实施例,图1为表示扩展JPEG编码器的结构的框图,而图28为表示传统JPEG编码器的结构的框图。
注意,在适当的情况下,将扩展JPEG称为JPEGext、JPEGe、JEX等。
应该指出的是,本发明可应用于图像编码方法、图像解码方法、运动图像压缩方法、运动图像解压缩方法、图像编码程序、图像编码装置、图像解码装置、图像编码/解码系统、以及扩展图像压缩/解压缩系统中的任何一种。
该扩展JPEG编码器包括用作划分装置的块形成单元1、编码控制单元2、标记产生单元3、用作空间变换装置的列操作确定单元4、用作空间变换装置的行操作确定单元5、用作头部信息添加装置的头部产生单元6、用作空间频率变换装置的正交变换单元7、用作量化装置的量化单元8、用作量化装置的量化表产生单元9、熵编码单元10、以及用作压缩图像文件产生装置和头部信息产生装置的合成单元13。
因此,图1所示的扩展JPEG编码器与图28所示的传统JPEG编码器相当,但图1所示的扩展JPEG编码器添加了编码控制单元2、列操作确定单元4、行操作确定单元5、以及头部产生单元6。此外,图28所示的传统合成单元13用于合成编码数据和标记,而图1所示的合成单元13还合成JEX头部信息以及编码数据和标记,如以下所述。
熵编码单元10还包括Z字形扫描单元11和Huffman编码单元12。
块形成单元1用于输入图像数据,并将该图像数据划分为由8×8像素构成的块单元。
编码控制单元2用于读取与编码时的压缩级别相关的设置值,并分别发送列操作确定单元4和行操作确定单元5所需的设置值。
标记产生单元3用于产生在合成单元13中合成文件所需的标记。
列操作确定单元4利用从编码控制单元2发送来的设置值确定是否应对从块形成单元1读取的8×8像素块图像数据的列方向上的像素数据阵列进行预定的可逆操作,并且在确定应进行该操作时进行该操作。
行操作确定单元5利用从编码控制单元2发送来的设置值确定是否应该对从列操作确定单元4发送来的8×8像素块图像数据的行方向上的像素数据阵列进行预定的可逆操作,并且在确定应进行该操作时进行该操作。
在上述处理顺序中,在列操作确定单元4进行预定操作之后,行操作确定单元5进行预定的操作,但如以下所述,与行相关的操作和与列相关的操作是可互换的,从而可采用这样的处理顺序,即,在行操作确定单元5进行预定操作之后,列操作确定单元4进行预定的操作。
头部产生单元6用于产生头部信息,该头部信息是将由于列操作确定单元4的操作而在图像中产生的变化以及由于行操作确定单元5的操作而在图像中产生的变化恢复为初始状态以进行后续解码所需的。
正交变换单元7对从行操作确定单元5发送的8×8像素块数据进行电平移位,以使像素数据的动态范围以0(零)为中心。然后,对像素块进行DCT(离散余弦变换)。注意,进行电平移位使得像素块数据的平均值接近0,从而提供了这样的优点,即,在进行DCT时可以减小所谓的DC系数。在该变换之后,正交变换单元7再次以8×8阵列块数据的形式输出64组数据。
量化单元8用于通过将从正交变换单元7发送来的8×8阵列块数据的每个元素除以由相同的8×8阵列大小构成的量化表数据的每个元素,并忽略其小数部分,来对每个像素使用不同的量化宽度进行量化。该量化表是由8×8量化系数构成的表,用于对进行了空间频率变换的8×8块内的每个元素进行量化。
量化表产生单元9产生要由量化单元8使用的量化表数据。如公知的那样,量化表产生单元9对DC系数和低频AC系数产生值相对小的数据,而对高频AC系数产生值相对大的数据。
Z字形扫描单元11用于以Z字形方式从DC系数到AC系数的高频侧对从量化单元8发送的8×8阵列块数据进行扫描,并以64组1-D阵列数据的形式读出该数据。
Huffman编码单元12用于参照预定的Huffman编码表基于Z字形扫描单元11的扫描结果进行可变长度编码,以压缩数据量。
合成单元13用于将由Huffman编码单元12进行了编码的图像数据、由头部产生单元6产生的头部信息、以及由标记产生单元3产生的标记合成为一个图像文件(进行了JPEG扩展编码的图像文件)并输出该文件。
接着,图2为表示扩展JPEG解码器的结构的框图,而图29为表示传统的JPEG解码器的结构的框图。
该扩展JPEG解码器包括用作头部信息读取装置的标记确定单元21、划分单元22、用作熵解码装置的熵解码单元23、用作逆量化装置的逆量化单元26、用作逆量化装置的量化表产生单元27、用作逆空间频率变换装置的逆正交变换单元28、用作附加头部信息读出装置的头部解释器29、解码控制单元30、用作逆空间变换装置的行操作单元31、用作逆空间变换装置的列操作单元32、以及用作再现装置的块再现单元33。
这样,图2所示的扩展JPEG解码器与图29所示的传统JPEG解码器相当,不过图2所示的扩展JPEG解码器添加了头部解释器29、解码控制单元30、行操作单元31、列操作单元32。而且,图29所示的传统划分单元22用于将编码数据划分为与像素块相对应的多个部分,但图2所示的划分单元22还将JEX头部信息输出至头部解释器29,如以下所述。
熵解码单元23还包括Huffman解码单元24以及逆Z字形扫描单元25。
标记确定单元21用于确定包括在进行了JPEG扩展编码的图像文件中的所有标记。
划分单元22用于根据标记确定单元21确定的结果提取与上述8×8像素块相对应的编码部分。
Huffman解码单元24用于参照Huffman编码表对从划分单元22输出的解码部分进行解码。
逆Z字形扫描单元25用于通过以Z字形的方式对由Huffman解码单元24进行了解码的数据进行再现,来获得8×8阵列块数据。
逆量化单元26用于通过将从逆Z字形扫描单元25输出的8×8阵列块数据的每个元素乘以由相同的8×8阵列大小构成的量化表数据的每个元素来进行逆量化。
量化表产生单元27用于产生要由逆量化单元26使用的量化表数据,并且这里产生的量化表与图1所示的量化表产生单元9产生的量化表相同。
逆正交变换单元28用于通过对由逆量化单元26进行了逆量化的8×8阵列块数据进行作为逆空间频率变换的逆DCT,来产生8×8像素块图像数据。
头部解释器29用于确定在头部中是否记录了与扩展JPEG相关的头部信息。
解码控制单元30用于通过读出恢复图像所需的头部信息来实现控制,并用于在头部解释器29确定已经记录了根据扩展JPEG的头部信息时,向行操作单元31或列操作单元32输出该头部信息。更具体地说,在记录了对由于列操作确定单元4的特定操作而在图像中产生的变化进行恢复所需的头部信息的情况下,解码控制单元30向列操作单元32输出该头部信息,而在记录了对由于行操作确定单元5的特定操作而在图像中产生的变化进行恢复所需的头部信息的情况下,解码控制单元30向行操作单元31输出该头部信息。
在上述处理顺序中,在行操作单元31进行操作之后,列操作单元32进行操作,但是如上所述,与行相关的操作和与列相关的操作是可互换的,从而可采用这样的处理顺序,即,在列操作单元32进行操作之后,行操作单元31进行操作。
块再现单元33用于将对每个块进行了解码的图像数据再现为原始的一页图像数据。
接下来,图3为表示编码处理的流程图。图3所示的处理可以是采用具有诸如图1所示结构的编码器的硬件式处理,但不限于此,而是可以通过用计算机等执行编码程序来采用软件式处理。
当该处理开始时,首先将待处理的图像数据划分为一些块(步骤S1)。图7为表示其中VGA图像被划分为一些块的示例的图。在图7所示的示例中,由640×480像素构成的VGA图像被划分为多个8×8像素块,从而产生总共80×60=4800个8×8像素块。
图8为表示8×8像素块的像素结构的图。对于所产生的8×8像素块,通过指定第0至第7行的行号以及第0至第7列的列号来表示像素坐标(列号,行号)。此时,位于左上角的像素的坐标表示为(0,0),位于右上角的像素的坐标表示为(7,0),位于左下角的像素的坐标表示为(0,7),而位于右下角的像素的坐标表示为(7,7)。将坐标(k,l)中的像素数据表示为f(k,l)。
注意,尽管作为示例示出了其上沿垂直方向和沿水平方向排列有正方形或矩形像素的图像,但本实施例可处理的图像不限于这些图像。
图9为表示通过填充六角形像素而进行2-D形再现的图像的示例的图。即使在图9所示的图像中,通过取如图9所示的像素位置a至p使得能够获得如图10所示的沿行方向和沿列方向排列的像素数据,从而使得能够进行如下所述的各种处理。图10为表示其中设置在图9中的像素数据沿行方向和沿列方向排列的示例的图。
此外,更一般地说,可以采用排列在曲面上的像素,例如排列在昆虫复眼上的像素,而且每个像素还不必具有相同的形状。也就是说,通过分布广泛的布置可以处理以离散的方式设置为2-D紧流形的像素。
再回到图3进行描述,接下来,进行如以下将参照图5详细描述的扩展JPEG编码(JEX编码)处理(步骤S2)。这里,进行像素数据的置换,使得在后续阶段的正交变换产生的高频系数减小。如上所述,该置换处理是可逆的,从而在对数据进行解码时,决不会丢失数据。
随后,进行利用DCT的正交变换(步骤S3)。首先,如下式1中所示将像素数据f(k,l)表示为fkl。这里,假设像素数据fkl由值在0到28-1之间的8位数据构成。
[式1]
fkl=f(k,l) fkl∈[0,…,28-1]
通过诸如式2所示的算术运算使用因子K将该像素数据fkl变换到频域中的式D,来进行DCT。
[式2]
这里,在每个变量所附的后缀中,下标代表频率,上标代表空间。
此外,用于正交变换的因子K由以下式3和式4表示。
[式3]
[式4]
注意,可以通过采用矩阵表达式将式2表示为以下矩阵运算。
[式5]
D=kfKT
这里,在右侧的最后一项K的右边所附的上标[T]表示K的正常矩阵转置。
更具体地说,可以利用余弦函数中的角度变为0的事实通过以下方式(式6)来计算系数D00。
[式6]
因此,可以通过将8×8像素块内的图像数据的平均值乘以8来获得系数D00。
对于D00以外的系数,余弦函数中的与频率相对应的角度项通常不为零,从而这些系数与针对每个频率分量在该8×8像素块中的提取变化相对应。更具体地说,例如,通过下式7计算系数D10。
[式7]
这里,各个向量V和W分别表示式7中的以下部分。
[式8]
[式9]
如参照这些式8和式9可理解的那样,向量W的第k元素是第k列的像素数据的总和。此外,向量V的第k元素是严格单调递减的离散函数。这样,系数D10可以表示为向量内积,并且通过类似的推导,系数D01(没有明确示出其表达式)也可表示为向量内积。
可以通过依次进行这种算术运算来计算从D00至D77的64个DCT系数。
回到图3,在正交变换之后,对DCT系数进行量化(步骤S4)。通过将所述64个DCT系数分别除以不同的系数(Q系数),并忽略其小数部分,来进行该量化。可以采用预先选择的值作为用于该量化的系数,并且需要准备一组理想的系数作为量化表。通常,诸如D00的DC系数以及诸如D10、D01的相对低频AC系数包括与图像有关的信息的概要,从而需要通过使用相对小的Q系数来进行量化从而尽可能精确地存储该信息。另一方面,即使忽略诸如D77的高频AC信息,这些信息对整个图像的视觉效果也仅产生有限的影响。因此使用相对大的Q系数对它们进行量化。
通过以Z字形的方式从分量00到分量77进行扫描,可以将DCT量化系数转换为1-D阵列数据内的64项(步骤S5)。
随后,利用所谓的Huffman编码进行可变长度编码(步骤S6)。Huffman编码通过使具有较高出现频率的值具有短位长度的码,而低出现频率的值具有长位长度的码,来压缩数据,但其方法有些复杂,而且与本发明的第一实施例不直接相关,从而省略其细节。除了该总体描述,还要指出,DC系数和AC系数是通过不同的方式进行编码的,并且将连续零的AC系数取作游程长度(run length),而将连续零之后的AC系数编码为分别分类的10类中的任何一类的类值。
通过这种处理进行了编码的数据成为JPEG扩展码数据,合成单元13将该JPEG扩展码数据与标记和头部信息一起形成文件。注意,上述量化表、DC Huffman编码表、AC Huffman编码表等记录在根据JEX编码的头部以及头部信息中。
图4为表示解码处理的流程图。图4所示的处理可以是利用具有诸如图2所示结构的解码器的硬件式处理,或者可以通过使用计算机等执行解码程序而采用软件式处理。
在该处理开始时,在标记的帮助下,将待处理的JPEG扩展码划分为与8×8像素块的像素数据相对应的码部分,此后,参照记录在头部中的Huffman编码表对各个码部分进行Huffman解码(步骤S11)。
随后,对64个1-D阵列系数进行逆Z字形扫描,以将其变换为系数的8×8阵列(步骤S12)。
随后,参照记录在头部中的量化表进行逆量化(步骤S13)。
随后,通过进行逆DCT(IDCT)将频率系数变换为图像空间内的像素值(步骤S14)。此时,进行逆电平移位处理,在该逆电平移位处理中,以作为动态范围中心的0为中心的正负图像数据被变换为0到(28-1)之间的正的8位数据。
接下来,参照标记来确定待处理的图像文件是否为进行了JEX编码的图像文件(步骤S15)。
这里,在已经确定待处理的文件是进行了JEX编码的图像文件的情况下,进行以下详细描述的JEX解码处理(步骤S16)。
在已完成该步骤S16中的处理的情况下,或者在步骤S15中确定待处理的文件是没有进行JEX编码的普通JPEG图像文件的情况下,进行处理,以将8×8像素块图像数据再现至原始图像文件中的预定位置(步骤S17)。在对所有的8×8像素块进行了该块再现后,恢复了一页图像。
图5为表示JEX编码处理的流程图。该图5示出了要在图3的步骤S2中进行的处理的细节。
在该处理开始时,输入在步骤S1中划分的8×8像素块的像素数据f(k,l)(步骤S21)。如在图3的步骤S1中描述的那样,通过将一副图像划分为多个块来进行该处理。这里,对所划分的像素块中的第n像素块进行该处理,但是应该理解,要通过顺序改变该n值来对所有的像素块进行该处理。
接着,在每列(在改变行号的方向上)中对像素数据f(k,l)进行相加,以产生每个第i列的总和数据sc(i),如式10所示,同样地,在每行(在改变列号的方向上)中对像素数据f(k,l)进行相加,以产生每个第j行的总和数据sr(j),如式11所示。
[式10]
[式11]
随后,计算用于以降序对8组总和数据sc(i)进行排序的i的排列nc(i),以及用于以降序对8组总和数据sr(j)进行排序的j的排列nr(j)(步骤S23)。更具体地说,例如,在计算机的存储器上的区域中设置数据阵列sc(0)至sc(7)以及值0至7的阵列。对数据阵列sc(0)至sc(7)应用在编程中公知的排序算法中的任意一种,可以按照降序对该数据进行排序。当通过相同的方式对数0至7的阵列进行数据阵列sc(0)至sc(7)的这种排序处理时,所记录的数将产生所需的i的排列nc(i)。也可以通过进行相同的处理来获得j的排列nr(j)。
注意,尽管这里以降序对总和数据sc(i)及总和数据sr(j)进行排序,但是可以采用升序排列。此外,可以采用任何排序,只要该排序可以降低图像的频率即可,而不管是升序还是降序。
随后,确定是否需要用于对8×8像素块中的列数据进行排序的处理。更具体地说,利用阈值Thc来确定以下式12是否成立,
[式12]
sc(nc(0))-sc(nc(7))≥Thc×8
并利用阈值Nc(典型的示例值为4)来确定以下式13是否成立(步骤S24)。
[式13]
Chc≥Nc
i的排列nc(i)是用于以降序对总和数据sc(i)进行排序的排列,从而sc(nc(0))总是大于或等于sc(nc(7)),即,式12的左边总为0或正。该式12的左边成为一指数,该指数表示在一列变为另一列时,列内的像素信号的总和的变化的最大不均匀性。因此,在该式12的左边较小的情况下,不同列之间的信号(不同列内的总和)几乎不存在不均匀性,从而确定无需进行列之间的交换。
此外,例如,如下式14所示来确定阈值Thc。
[式14]
Thc=2n-3
Thr=Thc
这里,n表示代表像素数据的动态范围的位值,从而例如在8位像素数据的情况下,n=8。此外,这里要从n减去的数为3,但这是因为像素块由8×8像素构成,从而沿列方向的像素线为8个像素,即23个像素。因此在例如采用16×16像素块的情况下,要从n减去的数变为4。然而,这只描述了用于获得阈值Thc的方法的示例,该方法不限于此。
注意,对以下描述的要在步骤S28中采用的阈值Thr,通常采用与阈值Thc相同的值,如该式14所示,但这也是示例,可以采用与阈值Thc不同的值。例如,在图像在特定方向上具有相关性的情况下,可以设想将阈值Thc和阈值Thr设置得不同。
此外,这里对所有的像素块都采用相同的阈值Thc或相同的阈值Thr,但这里要采用的阈值不限于此。相反地,可以对每个像素块采用不同的阈值。
随后,使用下式15计算决策值Chc(以及稍后描述的决策值Chr)。
[式15]
该决策值Chc(以及决策值Chr)可被认为是置换有效性程度的指数。例如,在决策值Chc=0的情况下,在一列(在变化行号的方向上)内相加的像素值已经使得在从左至右改变列时变小,从而不需要列的交换。还可推断,决策值Chc越大,则要进行交换的列的数量越大,或者交换目的地和交换源之间的差别越大。
阈值Nc表示有效性程度的下限值。例如,假设获得了如图11所示的排列nc(i)。图11为表示计算要针对排列nc(i)获得的决策值Chc所需的元素的图表。如该附图所示,在向更远的列移动的情况下,获得更大的值。在使用被设置为1的权值w来计算决策值Chc的情况下,得到下式。
Chc=4+1+1+0+4+1+1+2=14
注意,决策值Chc的值根据该权值w的值而变化。更具体地说,如图12所示,当将权值w设置为1时,两种类型的nc(i)可以获得相同的决策值Chc=8,而当将权值w设置为4时,一个决策值Chc变为约4.8,而另一个决策值Chc变为约1.7,从而出现了差异。图12为表示决策值如何在权值w改变时而改变的图表。因此,在w=1的情况下,在相同的基础上处理要交换的列的总数以及交换目的地与交换源之间的列号的差。另一方面,当将权值w设置为较大的值时,与要交换的列的总数相比,更着重处理交换目的地与交换源之间的列号的差。因此,在将权值w设置为较大的值时,相距较远的列的置换与仅在较近列之间的置换相比将导致较大的决策值Chc。交换目的地和交换源之间的列号的差越大,则由于列的交换而导致的图像变形越大,从而增加权值w与更着重图像变形的的处理决定相对应。该权值w可以根据需要通过对编码控制单元2设置的压缩级别来进行设置。如果该权值例如被设置为“1”,则提供了以下优点:简化了算术运算,从而降低了处理负荷。
注意,通过步骤S24,只确定了两个决策值的下限,还需要进一步进行对上限的确定。也就是说,在上述两个决策值变得太大时,像素块内的图像将在置换后极大地变形。在这种情况下,如果使用传统的JPEG解码器来恢复JEX文件,则图像将几乎只在块级别上再现。因此,在着重于与传统JPEG解码的一般兼容性的情况下,优选的是提供上限。提供这种上限使得能够在通过传统的JPEG解码器恢复JEX文件时能够在一定程度上再现像素块内的图像。
在步骤S24中,在满足该条件的情况下,使用1(其表示进行了对列的置换)来替代数据Pc(步骤S25)。该数据Pc是以后要记录在图像文件的头部中作为头部信息的数据。
随后,实际进行f(k,l)的列置换(步骤S26)。这里,将f(k,l)的数据撤回(retreat)到另一存储区域等中,然后将f(nc(k),l)的数据写入到f(k,l)的数据位置中。通过反复进行这种处理来进行置换,从而使得8×8像素块的数据阵列变为
f(nc(0),l),f(nc(1),l),…,f(nc(7),l)
该置换是如下所述的线性置换的具体示例。
首先,将如图8所示的8×8像素块的像素数据f(0,0)至f(7,7)表示为如下式16所示的8×8矩阵M。
[式16]
注意,尽管已经将该8×8像素块按原样进行自然表述而表示为8×8方矩阵,但矩阵表示不限于此。例如,该8×8像素块可以表示为如下式17所示的4×16的非方阵M′。
[式17]
在该式17中示出的矩阵表示是用于将像素数据划分为偶数行和奇数行的表示,在处理其一个帧被划分为偶数域和奇数域的隔行扫描图像数据时,该矩阵表示是有利的。换言之,相邻像素应优选地具有较高相关性,以便在该方法中高效地压缩图像。因此,可以想到,可以通过对被假定为具有高相关性的每个域的像素数据进行处理而实现更有效的数据编码。如下进行对式17所示的4×16的非方阵的矩阵操作:通过左乘4×4矩阵而进行行算术运算,并通过右乘16×16矩阵而进行列算术运算。进行这种矩阵表示使得能够在由奇数行(奇数排)构成的4个像素组成的列与由偶数行(偶数排)构成的4个像素组成的列之间进行列变换。
此外,另一矩阵表示的示例包括如下式18所示的矩阵M”。
[式18]
M″=(f(0,0)f(1,0)…f(7,0)f(0,1)…f(7,1)f(0,2)…f(7,2)…f(7,7))
在该式18中所示的矩阵表示为具有1行64列的矩阵,即,64-D向量。采用这样的表示对该向量进行矩阵算术运算导致要进行64行64列的巨大矩阵运算,这导致了算术运算处理变得繁重而耗时的缺点。另一方面,该矩阵运算使得对像素的算术运算具有最高的自由度。
如下式19所示的表示对矩阵M进行的任意可逆矩阵运算。
[式19]
M→A·M·B
这里,A和B分别为具有逆矩阵的矩阵。在沿逆方向进行算术运算的情况下,可以左乘A的逆矩阵,而可以右乘B的逆矩阵。注意,不论矩阵M是方阵还是非方阵,都可以应用该矩阵运算。
为了对图像数据的像素块进行式19所示的该矩阵运算,具体地,以可靠的方式进行该矩阵运算,作为JPEG的预处理,矩阵运算后的矩阵分量必须在像素值的动态范围[0至28-1]内。该条件与作为必要条件的矩阵A和矩阵B可逆的条件一起在下面概括为充分条件。
首先,对于矩阵A,
(A1)矩阵A具有逆矩阵(可逆)。
(A2)矩阵A的每个元素a满足1≥a≥0。
(A3)矩阵A的各个元素a沿行方向的总和Suma满足1≥Suma≥0。接下来,对于矩阵B,
(B1)矩阵B具有逆矩阵(可逆)。
(B2)矩阵B的每个元素b满足1≥b≥0。
(B3)矩阵B的各个元素b沿列方向的总和Sumb满足1≥Sumb≥0。
对于条件A3和条件B3,所述总和越小,即所述总和越远离1越接近于0,则整个像素块的信号值被抑制得越多,从而减小了信号之间的差异,即,增强了低通滤波(LPF)的效果。然而,当抑制整个像素块的信号值时,也对整个频率分量抑制了DCT系数,从而由于量化步长而导致的误差增加。
在JPEG的情况下,对于较高频率系数,量化步长较大,因此,对于较高频率分量,由于这种量化误差而导致的影响增加。(参见以下描述的日本未审专利公报No.2000-308058对量化误差的描述。注意,为了便于说明,以像素块的简单除法运算作为示例来描述该量化误差,但是有关量化误差的结论可以用来理解由于矩阵A和B的公共元素值的减少而导致的量化误差的增加)。因此,条件A3中所示的总和Suma以及条件B3中所示的总和Sumb优选地分别被设置为尽可能接近1的值。
此外,条件A2和B2中的矩阵元素a和b的值越小,则由于系列的编码和解码过程而导致的结果的算术误差将越大。这是因为尽管矩阵A和矩阵B是可逆的,但实际的像素信号被数字化。更具体地说,因为矩阵元素a和b接近0,所以逆矩阵的元素将具有与1/a或1/b(这些值都大于1)相当的值,即,逆矩阵的元素增大。因此,矩阵元素a或b变得越小,则由于在进行逆矩阵运算后将矩阵运算结果舍入为最接近的整数而导致的算术误差越大。
由于该原因,可得出这样的结论,即,用作算子的矩阵中的一列内的总和以及一行内的总和优选地被设置为尽可能接近1的值,而且在将矩阵元素a和b本身设置为尽可能接近1的值时,提高了数字算术运算的精度。
可以示出满足诸如上述条件A1至A3或条件B1至B3的条件的矩阵的一些示例。第一示例为置换矩阵,第二示例为除了对角线元素外左下三角形阵列部分的所有元素都为0的矩阵(以下将给出更确切的描述)。将对这两个示例进行简要的描述。
对于第一示例,在置换矩阵中,每个元素都被设置为0或1的值,每一行的元素的总和恒为1,而且每一列的元素的总和也恒为1。在下式20中示出了典型置换矩阵的示例。
[式20]
因此,对于采用这种置换矩阵的线性可逆变换,可以得出这样的结论,即,上述LPF效果以及由此出现的量化误差最小。因为该置换矩阵具有对于每一行和每一列都存在单个非零系数1的结构,所以在实际进行将表示像素块的矩阵乘以该置换矩阵的算术运算时,应该执行该矩阵运算,作为在表示像素块的矩阵内列和行的交换。注意,该置换矩阵是被用作本第一实施例的DCT预处理的矩阵,以下将更加详细地描述。
接着,第二示例的矩阵如下。该矩阵为除了对角线元素以外左下三角形阵列部分的所有元素都为0的矩阵,右上三角形部分的元素(包括对角线元素)被选择为满足条件A2和条件A3,并且对角线元素都非零。下式21中示出了该矩阵。
[式21]
这里,ai满足1≥ai>0(i=0,…,7),bij满足1>bij≥0(i=1,…,7,j=,…,6,j<i),此外,分别而言,在矩阵B的情况下,元素满足式22,而在矩阵A的情况下,各元素分别满足式23。
[式22]
[式23]
该矩阵的具体示例在下式24中示出。
[式24]
公知的是,对于对角线元素都非零而且左下三角形阵列部分的元素都为零的矩阵,其行列式值为所有对角线元素的乘积,即,行列式非零,从而该矩阵是可逆的。
因为这种矩阵是可逆的并且通常具有减小高频系数的功能,从而可得出这样的结论,即,其具有可逆的LPF功能。当对表示像素块的矩阵M进行基于这种矩阵的空间变换时,必须实际进行数学上表示的矩阵运算,从而优选的是在集成电路(IC)中进行该矩阵运算,以使得能够进行高速的算术处理。此外,在与上述置换矩阵相结合对这种矩阵进行运算的情况下,作为矩阵运算来进行该运算是最有效的方式。
接着,式19所示的矩阵A或矩阵B具有逆矩阵,从而矩阵A或矩阵B具有以下所示的特征。
也就是说,已经在数学上证明,通过组合了诸如下式25所示的基矩阵Fkl以及诸如式26所示的基矩阵Fk(α)的乘积,可以将具有逆矩阵的任意矩阵表示为
A=…Fkl…Fj(α)…Fmn…Fi(β)…(例如参见Max Koecher,“Linear Algebra und analytische Geometrie”,Springer Verlag(Berlin),1985)。
[式25]
[式26]
注意,式25所示的Fkl中的非对角线分量1为第k行第l列的元素(注意,在两个后缀中,左侧后缀表示行号,右侧后缀表示列号,因此该表示与其它矩阵部分的后缀表示相反),式26所示的Fk(α)中的对角分量α为第k行第k列的元素。此外,Fk(α)必须具有逆矩阵,从而α为非零实数。
对矩阵M右乘式25所示的基矩阵Fkl(即,M·Fkl)产生了这样的算术运算,即,其中矩阵M的第l列的元素分别被加到矩阵M的第k列的对应元素上,而且将其结果作为新的第l列。
此外,通过对矩阵M左乘基矩阵Fkl(即,Fkl·M)产生了这样的算术运算,即,其中矩阵M的第k行的元素分别被加到矩阵M的第l行的对应元素上,而且将所获得的结果作为新的第k行。
另一方面,对矩阵M右乘式26所示的基矩阵Fk(α)(即,M·Fk(α))产生了这样的算术运算,即,其中矩阵M的第k列的每个元素都乘以α,而且将所获得的结果作为新的第k列。
此外,对矩阵M左乘式26所示的基矩阵Fk(α)(即,Fk(α)·M)产生了这样的算术运算,即,其中矩阵M的第k行的每个元素都乘以α,而且将所获得的结果作为新的第k行。
在下式27中采用基矩阵Fkl和Fk(α)本身的组合来表示基矩阵Fkl和Fk(α)的逆矩阵。
[式27]
Fkl -1=Fl(-1)FklFl(-1),FklFkl -1=E
Fl(α)-1=Fl(α-1),Fl(α)Fl(α-1)=E
这里,E为如下式28所示的单位矩阵。
[式28]
而且,式19所示的矩阵运算为线性运算。也就是说,如果将矩阵M表示为矩阵M1和矩阵M2的和,则下式29成立,
[式29]
A·M·B=A·(M1+M2)·B=A·M1·B+A·M2·B
其表示满足线性关系。因此,式19所示的矩阵运算为线性可逆运算,而且在采用该运算来改变图像空间分布的情况下,该运算可被称为线性可逆映射。换言之,可以说,在将像素表示为矩阵的情况下,线性可逆映射是通过对该矩阵进行可逆线性矩阵运算而获得的图像空间变换。
因此,线性可逆映射是通过连续对矩阵M进行以下运算而获得的映射:
1.将第二行或列加到第一行或列的算术运算。
2.将一行或一列乘以非零系数的算术运算。
注意,整理(comb)如式19所示的线性可逆图像空间变换与如式5所示的DCT产生了如下式30所示的矩阵表示。
[式30]
M→KAMBKT
另一方面,与电平移位相对应的矩阵运算为非线性运算。电平移位是这样的算术运算,其中将像素数据的矩阵M与矩阵A相加,该矩阵A的元素由电平移位量给出。如下式31所示,
[式31]
M+A=(M1+M2)+A=(M1+A)+(M2+A)-A
不满足线性关系。
此外,在日本未审专利申请公报No.2000-308058的背景技术中描述的技术用于在进行DCT之前进行如下式32所示的变换,
[式32]
M→(1/2)·M+128N
这里,N为所有元素都为1的矩阵。该变换用于将像素值压缩到动态范围的一半,从而将像素值转换为原始动态范围内的中值。因此,该变换包括与上述电平移位相当的电平移位,而且容易证明不满足线性关系。将该变换与随后将要进行的DCT进行组合,可以将整个变换表示为如下式33所示。
[式33]
这里,作为右侧第二项的矩阵D00(替代表示)是只有DCT的(0,0)系数变为值1的矩阵,即,简言之,其中只有分量(0,0)为1,而除此之外的分量为0的矩阵。
注意,在该日本未审专利申请公报No.2000-308058中描述的技术为这样的变换,其中,不仅与本第一实施例中描述的JEX相比,而且与传统的JPEG相比,量化误差通常都会增加。
也就是说,如果将传统JPEG中的DCT系数的绝对值表示为w,如下式34所示,
[式34]
则量化以及逆量化之后的量化误差Δ1变为下式35:
[式35]
这里,q为q=Q(u,v),其表示量化宽度。
另一方面,容易证明,在利用日本未审专利申请公报No.2000-308058中所描述的技术进行处理后,进行DCT,并随后进行量化和逆量化时,量化误差Δ2变为下式36。
[式36]
可以将DCT系数的绝对值w除以2q,而得到商ζ(ζ为满足ζ≥0的整数)和第一余数,而该第一余数还可以进一步除以q,得到商ξ(ξ=0或1)以及第二余数η(η为满足q>η≥0的整数),即,DCT系数的绝对值w可以如下式37所示进行分解
[式37]
w=ζ·2q+ξ·q+η
因此,如果如下式38所示计算Δ1和Δ2之间的差,
[式38]
Δ1-Δ2=[w/q]·q-[w/(2q)]·2q
=(2ζ+ξ)·q-ζ·2q=ξ·q≥0
则可以理解,量化误差为0或q(量化宽度),因此,Δ1和Δ2彼此相等,或者Δ1和Δ2之间的差增大。
接着,作为如上所述的线性可逆映射的具体示例,考虑线性置换。该线性置换是可以通过在像素块中组合行的交换和列的交换来实现的变换。因此,可以将任意线性置换表示为由行的交换或列的交换构成的基本置换的乘积。对于基于这种线性置换的变换,可以在变换后在像素块内的特定位置处找到像素块内的像素值。因此,像素块内的像素值的平均值即使在变换后也不会改变,从而线性置换对诸如具有特定像素值的像素的出现频率等的统计量没有影响。
这种线性置换属于上述线性可逆映射的类型,从而可以表示为上述基矩阵的乘积。具体地说,考虑基矩阵Fk(α),可以通过代入α=-1来使用Fk(-1)。
接着,如表示矩阵M的示例的图13所示,考虑对具有值a的第k列与具有值b的第l列进行交换的基本置换。按照图14所示的顺序依次对该矩阵应用基矩阵。图14为表示用于实现列之间的基本置换的基矩阵的应用顺序的图表。
首先,在第一状态下只选取上述预定值部分产生了表达式(a,b)。
接着,在第一步骤中,如果从右侧对矩阵M应用基矩阵Fk(-1),则获得(a,-b)。
在第二步骤中,如果从右侧对矩阵M应用基矩阵Fkl,则获得(a,a-b)。
在第三步骤中,如果从右侧对矩阵M应用基矩阵Fl(-1),则获得(a,b-a)。
在第四步骤中,如果从右侧对矩阵M应用基矩阵Flk,则获得(b,b-a)。
在第五步骤中,如果从右侧对矩阵M应用基矩阵Fl(-1),则获得(b,a-b)。
在第六步骤中,如果从右侧对矩阵M应用基矩阵Fkl,则获得(b,a),并因此进行了列之间的基本置换。
因此,可以采用基矩阵乘积如下式39所示的那样表示与列之间的交换相对应的基本置换Pkl。
[式39]
注意,附加在该基本置换Pkl的右上角上的后缀“c”表示对于列的置换。
如果将该基本置换Pkl表示为具体的矩阵,则其表示为下式40表示。
[式40]
这里,在对角线分量中,具有1以外的值的分量包括分量(k,k)和分量(l,l),这两个分量的值分别为0,然而在非对角线分量中,具有0以外的值的分量包括分量(k,l)和分量(l,k),它们的值分别为1。
通过如式41所示对矩阵M右乘基本置换Pkl,导致第k列和第l列之间的交换。
[式41]
类似地,采用基矩阵的乘积如下式42所示表示与行之间的交换相对应的基本置换Pkl。
[式42]
注意,附加在该基本置换Pkl的右上角上的后缀“r”表示对行的置换。
通过如式43所示对矩阵M左乘基本置换Pkl,导致第k行和第l行之间的交换。
[式43]
因为可以通过对矩阵M进行右乘的算术运算来表示与列之间的交换相对应的基本置换,而可以通过对矩阵M进行左乘的算术运算来表示与行之间的交换相对应的基本置换,所以这些运算是可交换的。因此,可以首先进行通过组合基本置换而进行的一系列与列相关的交换或者通过组合基本置换而进行的一系列与行相关的交换。
因此,尽管在图5中的JEX编码中首先进行列的置换,随后进行行的置换,但该顺序也可以相反。
另一方面,在上述步骤S24中,在已经确定不满足上述条件的情况下,使用表示没有进行对列的置换的0来替代数据Pc(步骤S27)。
在完成了上述步骤S26或步骤S27中的处理后,接下来,确定是否需要进行8×8像素块中的行数据的置换。具体地说,确定是否满足使用了阈值Thr的下式44,
[式44]
sr(nr(0))-sr(nr(7))≥Thr×8
并且是否满足使用了阈值Nr的下式45(该阈值Nr通常被设置为与和列相关的阈值Nc相同的值)(步骤S28)。
[式45]
CHr≥Nr
如在上述步骤S24和本步骤S28中所述,将与列和行相对应地计算的四个参数,即,sc(nc(0))-sc(nc(7))、Chc、sr(nr(0))-sr(nr(7))、以及Chr与对应的阈值进行比较,从而可以认为以自适应的方式根据各个像素块的图像对置换进行了控制。
注意,除了根据这四个参数和各个对应的阈值来确定是否进行置换之外,还可以根据以下方法进行确定:首先,通过对像素块实际进行置换、DCT、量化和Huffman编码而获得编码。此外,通过对该像素块实际只进行DCT、量化和Huffman编码,而不进行置换,来获得编码。随后,对所获得的两种编码(包括头部信息)的量进行比较,并且仅有在前者小于后者的情况下,才采用通过置换获得的结果。在这种方法中,对每个像素块都进行两次编码处理,从而处理时间变长,但可以获得更可靠的数据压缩效果。因此,对于为编码控制单元2设置的压缩级别,可以构想一种设置使得可以选择这些措施。
在步骤S28中,在已经确定满足这些条件的情况下,使用表示已进行了对行的置换的1来替代数据Pr(步骤S29)。该数据Pr与上述数据Pc一样,也是稍后要记录在图像文件的头部作为头部信息的数据。
随后,实际进行f(k,l)的行置换,以使8×8像素块的数据阵列变为
f(k,nr(0)),f(k,nr(1)),…,f(k,nr(7))(步骤S30)。
另一方面,在步骤S28中,在已经确定不满足上述条件的情况下,使用表示没有进行对列的置换的0来替代数据Pr(步骤S31)。
在完成步骤S30或步骤S31后,接下来,产生要写入到图像文件的头部中的头部信息Ph(n)(步骤S32)。
图23为表示储存JPEG压缩数据的EXIF文件的基本结构的图。
该EXIF文件基本上包括:表示压缩数据开始位置的标记SOI;其中可以描述一个或多个信息的应用标记段APP1至APPn;量化表数据,其描述从量化表定义标记DQT开始;Huffman表数据,其描述从Huffman表定义DHT开始;重新开始标记插入间隔的定义,其描述从重新开始间隔DRI开始;帧头部,其描述从帧段开始标记SOF开始;扫描头部,其描述从扫描标记SOS开始;在该扫描头部之后描述的压缩数据;以及表示压缩数据结束位置的标记EOI。
规定每个应用标记段APP1至APPn的大小为64K字节或更小(K表示1024),但不限制标记段的数量。例如,可以设想在应用标记段APP1中描述Exif的信息,在应用标记段APP2中描述Flashpix的信息,而在应用标记段APP3中描述JEX的信息。
图23的右侧表示其中描述了JEX的信息的应用标记段APPi的数据结构的示例。
如附图所示,在段内的顶部描述了表示这是第i应用标记段的APPi标记,其后描述了该应用标记段APPi的字节长度(该字节长度是以字节为增量的可变长度)。随后,描述用于扩展JPEG(JEX)的数据头部(例如二进制值“4A 45 58”),其后描述了上述头部信息Ph(n)。
现在,头部信息Ph(n)的数量将是通过划分图像而获得的块的数量,但是,如上所述,段的大小必须是64K字节或更小(包括诸如标记等的描述部分)。因此,在根据所有块的JEX头部信息Ph(n)的大小超过64K字节的情况下,跨越连续的多个应用标记段来描述该头部信息Ph(n)。也就是说,从根据第一像素块的头部信息Ph(1)开始依次记录至应用标记段APP3,在记录量达到应用标记段APP3的上限的位置处,在下一应用标记段APP4内进行后续头部信息Ph的记录。注意,每个应用标记段的大小必须以字节为增量,而头部信息Ph(n)是通过合并方式(packed manner)以位为增量记录的,从而在某些情况下,段中的最后数据可能不适合以字节为增量。在这种情况下,填充位值0作为填充位,使得该段以字节大小为增量结束。
注意,在以上描述中,在EXIF文件的应用标记段中描述了JEX头部信息,但头部内可描述JEX头部信息的部分不限于此。例如,在JPEG压缩数据文件中,可以在其头部内描述注释,而且数据量为64K字节。因此,可以进行这样的设置,即,其中使用该注释头部部分来记录JEX头部信息。
图24为更加详细表示JPEG压缩数据文件的基本结构的图。
如参照图23部分地描述的那样,JPEG压缩数据文件基本上包括:表示压缩数据开始位置的标记SOI(以十六进制表示的二进制值为“FFD8”);量化表数据,其描述从量化表定义标记DQT(类似地,“FF DB”)开始;Huffman表数据,其描述从Huffman表定义DHT(“FF C4”)开始;重新开始标记插入间隔的定义,其描述从重新开始间隔DRI(“FF DD”)开始;垂直行的数量、水平像素的数量、以及量化表详细内容,它们表示与帧相关的各种参数,其描述从帧段开始标记SOF(“FF C0”)开始;扫描头部,其包括与扫描相关的各种类型的参数,其描述从扫描标记SOS(“FF DA”)开始;诸如注释等的数据,其描述从注释标记COM(“FFFE”)开始;压缩数据,其描述从重新开始标记RST(“FF D0”)开始;以及表示压缩数据结束位置的标记EOI(“FF D9”)。
在这些数据的注释部分中,在注释标记COM(“FF FE”)之后描述大小在2至65535字节之间的范围内的注释(即,这表示以字节为增量的可变长度的段),其后描述注释。在该注释部分内描述例如“4A 45 58”的二进制值,作为扩展JPEG(JEX)数据头部,其后描述上述头部信息Ph(n)。
图25为表示头部信息Ph(n)的结构和具体数据示例的图表。
根据一个像素块的JEX头部信息Ph(n)基本上包括表示数据开始位置的指示符Ind、表示是否已经进行了与列相关的置换的上述数据Pc、表示是否已经进行了与行相关的置换的上述数据Pr、与列相关的排列nc(0)至nc(6)、以及与行相关的排列nr(0)至nr(6)。
这里,该指示符设置1为位值,从而区分以块为增量的数据开始位置和上述填充位。换言之,在不提供指示符Ind时,在紧接着特定像素块的头部信息Ph的两个位值为“00”的情况下,不能区分这些位是填充位,还是表示Pc=0而且Pr=0的像素块。因此,在每个像素块的头部信息Ph(n)的顶部总是设置位值1作为指示符Ind。
如图5所示,在已经进行了置换的情况下,使用1作为位值来描述数据Pc和Pr,而在没有进行置换的情况下,使用0作为位值来描述数据Pc和Pr。在Pc为0时,不描述nc(0)至nc(6),另一方面,在Pr为0时,不描述nr(0)至nr(6)。
此外,在采用8×8像素块的情况下,nc(i)和nr(j)的数据量分别为3位,从而nc(0)至nc(6)所需的数据量为21位,而且nr(0)至nr(6)所需的数据量也为21位。在头部中不描述nc(7)和nr(7)的原因在于,排列nc(0)至nc(7)以及排列nr(0)至nr(7)为数字0至7的置换,从而通过获得nc(0)至nc(6)的信息可以知道nc(7),同样,通过获得nr(0)至nr(6)的信息可以知道nr(7)。因此,在以下将要描述的解码处理中进行nc(7)和nr(7)的计算。
在图25示出的示例中,Pc为1而Pr为0,从而只描述了nc(0)至nc(6),而没有描述nr(0)至nr(6)。在图25示出的示例中描述了图11所示的示例中的每个列数据。
由于上述原因,一个像素块的头部所需的数据量为3位、24位和45位中的任何一个。因此,对于由640×480像素构成的VGA图像,块的数量为(640/8)×(480/8)=80×60=4800,因此最大所需数据量为27000字节(即,在对于所有的块Pc=Pr=1成立的情况下),即大约26K字节(这里,利用K=1024来进行计算)。在这种情况下,因为该数据量可以容纳在作为一个段大小的64K字节内,所以可以在应用标记段内描述该头部信息,或者可以在注释段内描述该头部信息。然而,这是针对单色图像的情况。
在彩色图像的情况下,可以采用多种方法中的任何一种作为用于描述头部信息的方法。
首先,可想到的方法是针对每种颜色Y、Cb和Cr或者每种颜色R、G、B来单独地分析像素块(具体地,例如,其中比较每列或每行的像素值的总和、获得置换顺序、并确定是否适于进行置换的处理步骤),并根据各个分析结果来确定置换。然后,分别生成与每一种颜色的置换相对应的头部信息,并在头部中进行描述。在这种情况下,因为对每种颜色都进行最优JEX,所以可以极大地减少图像部分的编码量。然而,对于头部信息,所需的数据量是单色图像所需的数据量的三倍。在这种情况下,即使VGA图像也需要79K字节的数据量,从而不能容纳在一个段中,因而必须使用多个应用标记段。注意,因为不禁止提供多个注释段,所以可以在多个注释段中描述JEX头部信息。
此外,另一种方法是根据在图像质量方面具有重要作用的颜色分量(例如,Y或G分量)的8×8像素块的分析结果来确定置换,并将该置换应用于所有的Y、Cb和Cr像素块或G、R和B像素块。在这种情况下,头部信息所需的数据量与单色图像情况下的所需数据量相同,从而可以在用于VGA图像的一个段中描述头部信息。通常,人眼对亮度信号Y的敏感度大于对色差信号Cb和Cr的敏感度。因此,通过进行JEX以在减少头部信息的信息量的同时更着重于再现亮度信号,可以如实地再现原始图像。该方法尤其是对彩色程度较低的图像具有显著效果。
对于具有更多像素的图像,数据量将根据像素块的数量而增加,因此根据需要利用多个段来进行信息的描述。
注意,在以上描述中,例如,在数据Pc为1时描述了nc(0)至nc(6)的21位数据,但是还可进一步减少数据量。因为nc(0)至nc(7)代表由数字0至7构成的排列中的任何一种,从而存在8!种排列方式。因为
8!=(27)×315
<(27)×512=(27)×(29)=(216)
成立,从而只要存在16位数据量就可以进行描述。在这种情况下,例如,预先准备具有8!=40320个元素的表,在该表中描述了系列号0至40319以及与每个系列号相对应的排列“01234567”至“76543210”。随后,在头部中记录该表的系列号,并且应该在解码时利用相同的表来获得原始排列数据。
在这种情况下,因为对于一个像素块,头部的所需数据量为3位、19位和35位,所以对于Pc和Pr中一个为1而另一个为0的块,头部信息的量可减少5位,此外,对于Pc=Pr=1的块,头部信息的量可减少10位。在这种情况下,头部信息的最大量对于VGA单色图像变为21000字节,即大约21K字节。
为了进一步减少头部信息的量,考虑使用适当的压缩方法来压缩不包括JEX扩展头部的头部信息Ph(n)。这样,可减小图像文件的大小,而且根据具有较高分辨率的图像数据的头部信息也可以容纳在一个段(例如注释段)中。上述排列阿拉伯数字系统(algorism)根据图像而改变,从而所计算的排列具有统计特性。在这种情况下,采用可变长度的编码(例如熵编码等)作为压缩方法使得能够更有效地进行压缩。
现在,输出进行了置换的像素数据f(k,l)以及在步骤S32中产生的头部信息Ph(n)(步骤S33),然后该流程从该JEX编码返回至图3所示的处理。
注意,对所有的像素块进行图5所示的处理,这样,在实际中通过改变n的循环过程来进行上述处理。
接着,图6为表示JEX解码的流程图。图6表示将要在图4的步骤S16中执行的处理的细节。
在该处理开始时,输入与第n块相关的第n逆DCT(IDCT)变换块f′(k,l)以及头部信息Ph(n)(步骤S41)。这里,逆DCT变换之后的块数据不设置成f而是设置成f′的原因在于,在采用图2所示的逆量化单元26进行逆量化时,产生量化误差,从而导致与原始块数据f不同的值。
接下来,将头部信息Ph(n)的第二位替换为数据Pc的值,而且将第三位替换为数据Pr的值(步骤S42)。
随后,确定数据Pc的值是否为1(步骤S43)。
如果Pc为1,则从头部信息Ph(n)获得nc(0)至nc(6)中的每个数据(步骤S44),并根据这些数据计算nc(7)(步骤S45)。
随后,利用这些nc(0)至nc(7)对f′(k,l)的列进行逆置换(步骤S46),例如
f′(nc(k),l)←f′(k,l)。
在步骤S46中完成该处理后,或者在步骤S43中Pc=0的情况下,接下来,判断Pr的值是否为1(步骤S47)。
在数据Pr的值为1的情况下,从头部信息Ph(n)获得nr(0)至nr(6)的每个数据(步骤S48),并根据这些数据计算nr(7)(步骤S49)。
随后,利用这些nr(0)至nr(7)对f′(k,l)的行进行逆置换(步骤S50),例如
f′(k,nr(1))←f′(k,l)。
这样,输出了进行了置换的像素数据f′(k,l),随后该流程从该JEX解码处理返回至图4所示的处理。
注意,如同图5所示的处理一样,对所有的像素块进行图6所示的处理,这样,在实际中通过改变n的循环过程来执行上述处理。
而且,即使通过传统的JPEG解码处理也能够在可以获取图像概观的程度上再现通过图3的JEX编码产生的扩展JPEG文件。
也就是说,正常的JPEG解码处理等同于图4中的省略了步骤S15中的处理以及步骤S16中的处理的解码处理。因此,不进行JEX解码中的置换,从而对于图像,不能总是精确地再现8×8数据块中的细节,但是可以获取图像的外观作为以像素块为增量的整个图像。具体地,如上所述的像素的置换不会改变像素块中的图像数据的平均值,从而不管是否进行了JEX处理,都不会影响整个图像的概观。
接下来,将参照图15至图22描述通过上述处理对具体数据进行变换的情形。
图15为表示从图像数据中提取的原始8×8像素块的数据示例的图表。
该图像数据为8位灰度级的单色图,并且像素值在0至255之间。
图16表示计算了8×8像素块数据的沿行方向的总和以及沿列方向的总和的情形。
在图5的步骤S22中,计算第i列中的像素值的总和数据sc(i)以及第j行的像素数据的总和数据sr(j)。
这里,sc(i)的最大值为1480,而sc(i)的最小值为807,因此,步骤S24中的第一判定表达式的左侧为673。另一方面,通过将Thc的25乘以8,该判定表达式的右侧为256。因此,可以理解,该第一判定表达式成立。
另一方面,sr(j)的最大值为1248,而sr(j)的最小值为1107,因此,步骤S28中的第一判定表达式的左侧为141。另一方面,该判定表达式的右侧与步骤中S24的第一判定表达式的右侧一样为256。因此,步骤S28中的第一判定表达式不成立,无需对第二判定表达式进行确定,而且该流程前进至步骤S31,其中设置Pr=0。
另一方面,在步骤S24中,第一判定表达式成立,从而还必须确定第二判定表达式。这里,在权值被设置为1并且阈值Nc被设置为上述通常的值4的情况下,对式15进行判定。对于图15和图16所示的块数据示例,如上所述,要在步骤S23中计算的nc(i)变为如图11所示,而且Chc变为14。因此,第二判定表达式也成立。还流程前进至步骤S25,其中设置Pc=1。
通过执行步骤S26中的后续处理,像素块数据变为如图17所示。图17为表示进行了置换的像素块数据的图表。在进行了置换的像素数据的下侧示出了表示列置换的nc(i)以及用于将排列恢复到原始排列的逆置换顺序,在进行了置换的像素数据的右侧示出了表示行置换的nr(j)以及用于将排列恢复到原始排列的逆置换顺序。然而,如上所述,因为Pr=0,并且没有进行行置换,所以nr(j)与它的逆(inverse)相同。
注意,如根据步骤S26中的替换式可理解的,可如下解释nc(i)的阵列。图17中的像素块的第0列包括“4”作为nc(0)。因此,图15所示的原始数据的第4列在置换后进入第0列。类似地,图17中的像素块的第1列包括“2”作为nc(1)。因此,图15所示的原始数据的第2列在置换后进入第1列。这也适用于其它列。
随后,在图3中的步骤S3中进行了处理的数据变为如图18所示。图18为表示进行了电平移位和DCT的数据的图表。
利用预定的量化表在图3的步骤S4对图18所示的数据进行量化获得的结果变为如图19所示。图19为表示量化后的8×8块的图表。
因此,大部分的高频分量为0,从而可以预期后续的熵编码能够高效地压缩数据。
另一方面,图20表示通过在图4所示的解码处理中对图19中的量化数据进行逆量化和逆DCT(IDCT)、对该数据进行电平移位并舍入到0至255的范围内而获得的数据。
图21为表示对图20所示的数据进行逆置换而获得的像素块的图表。
因此,通过处理进行根据图17所示的逆nc(i)的置换,其中,图20中的第4列数据变为图21中的第0列数据,而图20中的第2列数据变为图21中的第1列数据,等等。
图22为表示从图21中的解码像素块数据中减去图15所示的原始像素块数据而获得的结果的图表。
图22表示图21的解码像素块数据以及图15的原始像素块数据之间的误差。每个像素的误差的绝对值的总和为“756”,而且误差的均方值为“125”。
另一方面,对于没有进行JEX编码的普通JPEG文件,可以获得如图30至图33所示的处理结果。图30为表示对图15所示的原始8×8像素块数据进行DCT的结果的图表,图31为表示对图30中的块数据进行量化的结果的图表,图32为表示对图31中的块数据进行逆量化和逆DCT、电平移位、以及将数据舍入到0至255范围内而获得的结果的图表,而图33为表示从图32中的解码像素块数据中减去图15所示的原始像素块数据而获得的结果的图表。
如上所述,在图15所示的原始图像数据中,只重新排列了列,而没有重新排列行。在这种情况下,置换和DCT后的结果如图18所示,与图30所示的只进行了DCT的传统结果相比,可以说DCT系数具有如下性质。
(1)D00不变。
(2)D10(的绝对值)增加。
(3)对几乎所有的v,D1v的绝对值增加。
D00为所谓的DC分量,其是与像素块内的像素值的平均值成比例的量。不用说,即使进行置换(其不改变像素值的平均值),D00也保持不变。
接着,如式7所示,可以将D10视为向量V(式8)和向量W(式9)之间的内积,该向量V由k的随着k增加而单调递减的函数构成,该向量W的分量为列中的像素数据的总和。因此,显然,通过按照列内的像素数据的总和的递减顺序进行列之间的置换,这些向量V和W的内积会增加。
而且,对于D1v,尽管不能象D10的情况那样得出简单的结论,但是通常,随着每列内的像素值的增加,它们也将增加,因此,可以说通过按照列内的像素数据的总和的递减顺序进行列之间的置换提高了增加的可能性。
DCT为正交变换,从而在变换后内积保持恒定。从而,DCT系数的平方和等于原始像素块的像素值的平方和。置换不会改变像素块的像素值的平方和,因此,经置换的像素块的DCT系数的平方和等于原始DCT系数的平方和。因此,在DCT系数集中在低频区(0,0)、(0,1)、(0,v)内时,高频系数将必然降低。
在JPEG压缩中,在如上所述对DCT系数进行量化之后,进行Z字形扫描,并根据游程长度(其是为0的连续DCT系数的数量)以及该游程长度后的DCT系数的值来进行Huffman编码。通常,在存在大量高频非零系数的情况下,将产生多得多的长位长度的码(最长的码为16(游程长度)+10(AC系数)=26位)。因此,减少DCT的高频分量对减少码量是有利的。
在图33中,每个像素中的误差的绝对值的总和为“900”,并且误差的均方值为“152”。
这样,可以看出,图22中的扩展JPEG具有较小的误差,从而提高了图像质量。
此外,在对普通JPEG进行编码时,图15所示的原始8×8像素块数据变为432位长,而在对扩展JPEG进行编码时,该数据变为368位。如上所述,对于图15中的数据示例,向头部部分添加了24位头部信息,但仍然能够减少40位的数据(即,几乎是这种情况下的编码数据量的10%)。
此外,即使采用普通JPEG对通过扩展JPEG进行了编码的数据进行解码,也不会产生误差。尽管不可能获得与通过扩展JPEG进行解码时一样优异的图像,但仍然可以获得以块为增量的整个图像。例如,通过5百万像素的图像采集设备采集的图像具有2500×2000左右的分辨率,将该图像划分为块产生了大约313×250个块。因此,即使在通过传统JPEG进行解码时,也能获得具有足够概观的图像。
图26为表示这样的系统结构的图,该系统结构中,将能够处理扩展JPEG的设备和只能处理传统JPEG的设备进行组合。
通过该图26所示的结构示例,示出了组合了数字相机41(其能够产生通过JPEG进行了编码的JPEG图像文件41a以及通过JEX进行了编码的JEX图像文件41b)、个人计算机(PC)42(其只能够通过JPEG进行解码)以及PC 43(其能够利用JPEG进行解码,而且还能够通过安装能利用JEX进行解码的软件44来使用JEX进行解码)的系统。
数字相机41被构造为可以执行JPEG压缩方法和JEX压缩方法,或者这两种方法中的所要求的一种。根据该数字相机41,通过采集对象并利用JPEG方法进行压缩而获得的图像成为JPEG图像文件41a,而通过采集相同对象并利用JEX方法进行压缩而获得的图像成为JEX图像文件41b。如上所述,根据JEX图像文件41b的图像相对于从数字相机41的图像采集装置输出的原始图像的误差比根据JPEG图像文件41a的图像的误差要小,从而JEX图像是精确再现了更多细节的高质量图像。
假设通过无线LAN、USB电缆、存储卡等将JPEG图像文件41a和JEX图像文件41b从数字相机41传输到PC 42。PC 42可以进行JPEG解码,从而能够获得对JPEG图像文件41a进行了解码的显示图像42a。另一方面,对于JEX图像文件41b,仍然可以在不产生误差的情况下进行通过JPEG解码(而不是通过JEX解码)的解码,然而这将产生显示图像42b,其中像素块内的排列没有恢复为原始顺序,因此该图像变为块内的画面发生变形从而产生所谓的块噪声的状态。然而,整个图像的画面决不会变形,因此能够获得图像的概观。具体地,具有大量像素的高清晰度图像增加了将要产生的块的数量,因此,可以更容易地获取整个图像的情况。
接下来,假设将JPEG图像文件41a和JEX图像文件41b从数字相机41传输到PC 43。该PC 43可以通过安装例如通过CD-ROM、DVD或通信线路提供的软件44来利用JEX进行解码。因此,JPEG图像文件41a可以被解码成普通的显示图像43a,并且JEX图像文件41b也被再现为图像质量比该JPEG图像文件41a高的显示图像43b。
而且,即使对于在PC 42中产生块噪声的状态下显示的显示图像42b,通过将与显示图像42b相对应的JEX图像文件41b传输到PC 43,可以对高质量的显示图像43b进行解码。
因此,在提高图像质量的同时,减少了数据量,此外,即使通过传统的JPEG解码处理,也能够以一定的图像质量级别来再现利用扩展JPEG进行了编码的图像文件,从而提供了优异的图像压缩方法。
注意,通过以上描述,示出了数字相机作为用于产生扩展JPEG文件的装置的示例,但当然不限于此。作为用于产生扩展JPEG文件的装置的示例,可以提及图像采集设备。该图像采集设备包括用于利用电子图像采集装置等采集光学对象图像来获取图像数据的装置或系统。该图像采集装置的示例例如包括电子照相机、摄影机、具有照相机的手机、安装有照相机的PC、诸如内窥镜(例如胃镜)等的医疗仪器、室内/室外监视相机和监控系统(用于通过在另一地方对从这些相机获得的信号进行信号处理来获得图像数据)、用于电子地采集印刷图像等的扫描仪、用于电子地采集胶片图像的胶片扫描仪,等等。此外,对于用于产生扩展JPEG文件的图像采集设备以外的装置,诸如PC等的计算机可作为示例。即,在这种情况下,待通过扩展JPEG处理进行处理的图像不限于通过拍摄获得的自然图像,而是广泛地包括在计算机等中产生的计算机图形、呈现为位图等的字符数据、通过对各种类型的图像数据进行合成或处理而获得的图像数据,等等。因此,能够产生这种图像数据的装置广泛地成为用于产生扩展JPEG文件的装置的目标。
此外,诸如PC等的计算机可以通过安装和执行JEX编码/解码软件而成为能够通过软件的方式进行JEX处理的装置,但是,另一方面,通过安装用于进行JEX编码/解码的扩展板等可以成为能够通过硬件的方式进行JEX处理的装置。
注意,术语JEX包括广义和狭义的定义。对于广义的定义,将包括JPEG处理以及不包括在JPEG中的处理(例如图像数据的置换等)的整个处理称为JEX。也就是说,广义的JEX包括JPEG。另一方面,狭义JEX表示广义JEX与传统JPEG之间的差别。在这种情况下,只有与诸如图像数据的置换等的处理相对应的部分被称为JEX。
这些定义涉及用于进行JEX编码/解码处理的软件和硬件的提供方法。
具体地说,通过在PC等上安装独立的软件,与广义的定义相对应的JEX编码软件或JEX解码软件可以进行JPEG图像处理和JEX图像处理。
另一方面,通过在已经安装有传统JPEG编码软件(基本编码处理程序)或JPEG解码软件(基本解码处理程序)的PC等上另外安装JEX编码软件或JEX解码软件作为外围软件或者安装附加式模块等,与狭义的定义相对应的JEX编码软件或JEX解码软件除了JPEG图像处理之外还能进行JEX图像处理。
作为软件的提供方法,可以选择性地使用这些定义或者这些定义可以共存。例如,对于没有JPEG编码/解码软件的用户,通过向这些用户提供与广义的定义相对应的JEX编码/解码软件,用户可以获得以下的优点:无需进行两次安装并且能够立即处理JPEG图像和JEX图像。另一方面,对于具有JPEG编码/解码软件的用户,通过向这些用户提供与狭义的定义相对应的JEX编码/解码软件,用户可以获得以下的优点:用户可以通过扩展现有软件来进行JEX图像处理。
这种新标准的问题是难以普及。另一方面,本申请人提出的JEX是上兼容的,包括目前广泛使用的JPEG,这对于普及JEX是有利的,因为JEX具有多功能性。
此外,可以设想通过引入例如有偿提供JEX编码软件但免费发布JEX解码软件的商业方法来在短期内实现广泛使用。
此外,对于软件,可以设想例如提供与广义的定义相对应的JEX编码/解码扩展板,或者向已经具有JPEG编码/解码扩展板(基本编码/解码装置)的用户提供与狭义的定义相对应的JEX编码/解码扩展板。
图27为表示能够将JEX运用于运动图像的编码器的结构的框图,而图34为表示传统的运动图像编码器的结构的框图。
该解码器包括减法器51、JEX处理单元52、头部信息存储器53、DCT单元54、量化单元55、逆量化单元56、IDCT单元57、逆JEX处理单元58、加法器59、帧存储器60、运动校正单元61、可变长度编码单元62以及合成单元63。
因此,能够应用JEX的运动图像编码器为通过向图34所示的传统运动图像编码器添加JEX处理单元52、头部信息存储器53、以及逆JEX处理单元58而获得的编码器。此外,图34所示的合成单元63用于添加诸如标记等的信息,而图27所示的合成器63用于进一步添加JEX头部信息。
减法器51用于从输入信号中减去以下将描述的预测信号,并将其作为预测误差信号输出。
JEX处理单元52用于通过与JPEG中的处理的情况相同的方式进行像素块内的列置换和行置换。
头部信息存储器53用于存储由JEX处理单元53产生的JEX头部信息。
DCT 54用于利用DCT对从JEX处理单元52输出的像素块进行空间频率变换。
量化单元55用于对从DCT 54输出的块数据进行量化。
随后的逆量化单元56至运动校正单元61是用于根据进行了量化的块数据产生预测信号的处理单元。
逆量化单元56用于对从量化单元55输出的块数据进行逆量化。
IDCT 57用于通过对从逆量化单元56输出的块数据进行逆DCT变换来进行逆空间频率变换。
逆JEX处理单元58用于读出存储在头部信息存储器53中的JEX头部信息,并在从IDCT 57输出的像素块内进行逆列置换和逆行置换。
加法器59用于对从逆JEX处理单元58输出的数据与从运动校正单元61输出的预测信号进行相加,并将结果作为本地解码信号输出。
帧存储器60用于储存从加法器59输出的本地解码信号。
运动校正单元61用于对存储在帧存储器60中的本地解码信号进行运动校正。从该运动校正单元61输出的预测信号被分别输出到减法器51和加法器59。
可变长度编码单元62用于对从量化单元55输出的块数据进行诸如Z字形扫描、Huffman编码等的处理。
合成单元63用于合成诸如标记等的信息、从可变长度编码单元62输出的编码数据以及从头部信息存储器53读出的JEX头部信息数据,并将结果作为编码位串输出。
注意,在对运动图像进行解码时,应该使用JEX头部信息以几乎相同的方式进行JEX处理,从而省略对其的详细描述。
现在,例如,MPEG文件包括作为帧内编码图像(图像数据)的I图像、作为帧间前向预测编码图像(差别图像数据)的P图像、以及作为双向预测编码图像(差别图像数据)的B图像。
通过这种运动图像结构,对于如何将上述置换应用于哪个图像存在多种方法。
例如,可以设想这样的方法,其中,通过使用置换的编码来仅压缩I图像,而通过不使用置换的传统编码来压缩其它的P图像和B图像。在这种情况下,需要在I图像的头部部分中描述如在JPEG的情况下所述的预处理参数。采用这种方法尤其可以减少I图像的码量。
可以设想另一种方法,其中,通过使用对I图像进行分析而获得的置换的编码来压缩I图像,并使用和应用于与I图像相对应的像素块的置换相同的置换对其它的P图像和B图像进行预处理。采用这种方法可显著地减少码量。
此外,可以对P图像和B图像的差别信号像素块进行预处理,而不是对I图像进行预处理,这是非常有效的方法。这是因为在差别信号像素块中,几乎所有的信号都变为接近于0的小值,而只有包括运动的部分变为较大的信号值。因此,例如,通过只重新排列包括具有较大信号值的条目的列或行就可以容易地将具有较大信号值的条目集中在一个位置,可以减少DCT系数的高频分量,并且可以减少码量。此外,P图像和B图像包括所有差别信号都接近于0的像素块,对这些像素块根本不进行诸如DCT的空间频率变换。因此,对这些块也不进行作为空间频率变换的预处理的置换。此外,对于诸如MPEG 4等的运动图像压缩,对于各个图像不描述诸如注释、用户数据等的头部信息,但对于包括多个I图像、P图像和B图像的各个组(“视频对象平面组”)写入该头部信息。因此,对于根据第一实施例的参数,用于多个图像的预处理参数将被集中写入到该组的头部部分中。
注意,在利用传统的MPEG回放进行了置换处理的压缩运动图像数据的情况下,图像变形太明显,而不能忽略。因此,在对运动图像压缩进行置换处理的情况下,前提是通过利用置换处理的扩展MPEG解码器而不是通过传统的MPEG解码器来进行解码。例如,优选的是能够在压缩运动图像时选择压缩模式,并且在选择压缩模式时选择是进行置换处理来实现高压缩比(设置空间变换模式),还是因为假定通过传统MPEG进行了解码而不进行置换处理(不设置空间变换模式)。
根据这种结构,通过在与运动图像相关的解码时进行JEX处理,可获得具有更高图像质量和高压缩比的运动图像数据。
注意,在以上描述中,8×8像素块数据的像素的置换是通过组合行和列的置换来进行的。在这种情况下,变换后存在8!×8!种像素布置方式。另一方面,将64个像素设置到64个像素位置中存在64!种方式。因此,存在行和列的置换的组合不能涵盖的像素布置方式,因此,应该理解,不是总能获得具有最高压缩比的像素布置方式。理论上,可以将8×8像素块表示为64-D向量,以例如通过置换按降序(或升序)对将该向量的分量进行排序,利用由Z字形扫描单元11进行的相同方法将这样排序的结果以Z字形的方式从8×8块的左上角开始设置在该8×8块中,从而最终获得具有较高压缩比的像素布置方式。然而,在这种情况下,可以想到,要在头部部分中描述的JEX头部信息的大小变得较大,因此,图像文件的整个大小变大。
根据这样的第一实施例,在空间频率变换之前,在图像空间内对图像空间进行图像空间变换,这样,可以抑制进行空间频率变换之后的高频系数,从而可以进行具有高压缩比的编码,并且可以进行具有高质量并且图像劣化降低的编码。
因此,采用线性可逆映射作为空间变换,从而可以恢复图像,而不会由于解码时空间变换而丢失数据。
此外,在线性可逆映射中,具体地采用线性可逆置换,从而可以高速进行算术处理,而且还不改变像素的平均值和统计值等。
另一优点在于,还可以通过传统的JPEG解码处理来解码利用扩展JPEG(JEX)编码的图像文件,而且,即使在这情况下产生以块为增量的噪声,也仍然可以在毫无困难地获得图像概观的级别上再现图像。
[第二实施例]
图35至图59表示本发明的第二实施例,图35为表示扩展JPEG编码器的结构的框图。
在该第二实施例中,与上述第一实施例相同的部分附加有相同的附图标记,并且省略对它们的描述。将主要只针对不同之处进行描述。
根据上述第一实施例的扩展JPEG编码器进行置换作为普通JPEG编码处理的预处理,但根据本第二实施例的扩展JPEG编码器进行可逆低通滤波(LPF)处理(该处理也是可逆图像空间变换)作为普通JPEG编码处理的预处理。
具体地说,根据该第二实施例的扩展JPEG编码器是通过以下处理获得的编码器:去除第一实施例中的图1所示结构中的列操作确定单元4和行操作确定单元5,并提供滤波单元14作为空间变换装置来代替它们。将对编码进行控制所需的控制参数等从编码控制单元2输入到该滤波单元14中。
此外,从编码控制单元2输入用于控制由量化表产生单元9产生的量化表的下述比例因子SF等。该比例因子SF也通过量化表产生单元9输入到合成单元13,并被添加到头部信息中。
图36为表示扩展JPEG解码器的结构的框图。
图36所示的扩展JPEG解码器用于对图35所示的扩展JPEG编码器进行了编码的图像数据进行解码。
具体地说,根据本第二实施例的扩展JPEG解码器是通过以下处理获得的解码器:去除了第一实施例中的图2所示结构中的行操作单元31、列操作单元32以及解码控制单元30,并且提供逆滤波单元34作为逆空间变换装置来代替它们。将来自头部解释器29的用于控制解码所需的控制参数等输入到该逆滤波单元34中。
在该第二实施例中,整个JEX处理的流程在广义上与第一实施例中的图3所示的流程相同。
图37为表示与图3的步骤S2相关的JEX编码处理的概要的流程图。
第二实施例中的该JEX编码处理分两个阶段进行:JEX(LPF)预处理(步骤S61),其被执行用于确定低通滤波所需的控制参数;以及JEX(LPF)主处理(步骤S62),其用于根据所确定的控制参数对图像进行低通滤波。
图38为表示图37的步骤S61中的JEX(LPF)的细节的流程图。
在开始该处理时,进行用户输入(步骤S70)和数据输入(步骤S71)。要通过用户设置而输入的项包括被称为“Choice(选择)”的设置项和被称为“Method(方法)”的设置项。
后一设置项Method是用于在着重于提高压缩比或着重于提高图像质量的情况下以狭义JEX编码进行低通滤波处理之间进行选择的设置项。这里,在选择高压缩比时设置Method=1,而在选择高图像质量时设置Method=0。
前一设置项Choice表示在Method项选择的高压缩比或高图像质量要达到多高的级别。在选择Choice=0时,设置预定的标准级别,在选择Choice=1时设置比标准级别高的级别,而在选择Choice=2时设置最高级别。
另一方面,通过数据输入,例如输入预先存储在编码控制单元2中的基准块NTest的数量。如上所述,以8×8像素块为增量对图像进行处理,因此在由640×480像素构成的VGA图像的情况下,块的总数NTotal为80×60=4800。在该块总数NTotal的范围内将基准块的数量NTest设置为合适的值。
在下式46中示出了根据NTotal确定基准块数量NTest的方法。
[式46]
这里,式46中的方括号代表不超过方括号内的值的最大整数,max(A,B)表示A和B中的较大值。
在采用该式46时,对于以上VGA图像的示例,基准块数量NTest为17。
注意,该式46为示例,并且当然可以通过其它的方法来确定基准块数量NTest。
接下来,在构成图像的所有8×8像素块当中,随机选择在步骤S71中输入的基准块数量NTest个的8×8像素块(步骤S72)。注意,尽管随机地从所有像素块中进行选择,但不必限于此,而是可选择合适位置处的像素块。例如,如果在图像的中心存在主要对象,并且希望针对该主要对象对处理进行优化,则可以设想以较高的比率将待选择的像素块设置在图像中心附近。
随后,根据如图39所示的(η,SF)表,对在步骤S72中选择的每个8×8像素块图像数据进行包括低通滤波处理的广义JEX编码处理(步骤S73)。
图39为表示根据设置项Choice选择的控制参数的(η,SF)对的图表。在该图39中示出的控制参数中的η为用于设置低通滤波的强度的参数。也就是说,在该第二实施例中,在将8×8像素块图像数据f(k,l)表示为8行8列的矩阵时,通过乘以如下式47所示的LPF矩阵L(k,η)而来进行低通滤波处理。
[式47]
在该式47中,在沿从左上到右下的方向观察对角线元素时,第一个出现的1-η设置在第k行第k列(k=0,…,6)处。这里,η可以取(1/2)>η≥0的范围内的值。注意,排除了η=(1/2),这是因为逆矩阵不存在(不可逆),如可以从以下将描述的式48所示的那样。此外,排除了η>(1/2),这是因为如果不这样,则另一像素位置处的像素数据将以高于特定像素位置处的像素数据自身的比率添加到该特定像素位置处的像素数据,从而导致过量的低通滤波。
对于该η,在η为0时,矩阵L(k,η)变为单位矩阵,并且低通滤波效果变为0,在η接近于0时,该低通滤波效果变得较小,而在η接近于(1/2)时,该低通滤波效果变得较大。
注意,在对像素数据f(k,l)左乘LPF矩阵L(k,η)时,进行垂直滤波操作(用于减小相邻行之间的差别的算术运算),并且在对像素数据f(k,l)右乘LPF矩阵L(k,η)时,进行水平滤波操作(用于减小相邻列之间的差别的算术运算)。现在,假设像素数据f(k,l)的某一行中的第k列的元素为a,第(k+1)列的元素为b,并且对该像素数据右乘LPF矩阵L(k,η)。于是,算术运算后同一行的第k列的元素变为(1-η)a+ηb,并且算术运算后同一行的第(k+1)列的元素变为ηa+(1-η)b。因此,与算术运算前沿水平方向的差别为|a-b|相比,沿水平方向的差别在该算术运算后变为(1-2η)|a-b|。因此,考虑到η可以取值的上述范围1≥(1-2η)>0,可以容易地看到,抑制了沿水平方向的差别。注意,在左乘LPF矩阵L(k,η)的情况下,可以应用相同的论证,从而抑制了沿垂直方向的差别。
该低通滤波使DCT变换后的DC系数保持不变。
此外,使用式48表示用于进行逆LPF算术运算的矩阵。
[式48]
通过该式48(其为式47的逆矩阵),在沿从左上到右下的方向观察对角线元素时,第一次出现的因子(1-η)/(1-2η)出现在第k行第k列(k=0,…,6)。
注意,在这些式47和48中示出的矩阵是用于进行LPF和逆LPF的矩阵的示例,但不限于此。
在图39示出的示例中,η的值有5个:即,0、(1/8)、(1/6)、(1/5)、和(1/4)。这些是按照实际应用设置的,当然这些只是示例,可以采用其它的值作为η。
另一方面,图39示出的控制参数内的SF为用于与量化表(Q表)相乘来控制量化步长的参数。在图39示出的示例中,要取为SF的值有6种,1、(7/8)、(6/8)、(5/8)、(4/8)、和(3/8)。这里,SF=1表示采用原始的量化表本身。对于该比例因子SF,可以进行其中将其它值设为SF的设置。
在图39示出的表中,表示有○的(η,SF)对是在设置项Choice=0时的缺省值。此外,表示有□的(η,SF)对是在设置项Choice=1时,将针对表示有○的(η,SF)对另外选择的可选值。此外,表示有△的(η,SF)对是在设置项Choice=2时,将针对表示有□和○的(η,SF)对另外选择的可选值。
这样,对在步骤S72中选择的NTest个8×8像素块中的每一个ni(变量ni为在所有基准8×8像素块上取值的变量)进行广义JEX编码处理,该广义JEX编码处理包括利用根据设置项Choice的值选择的(η,SF)组合进行的低通滤波。这样,针对每个基准8×8像素块数据f(k,l)获得进行了低通滤波处理、DCT和Huffman编码的图像数据。
随后,利用广义JEX解码对编码图像数据进行解码,从而获得进行了Huffman解码、逆DCT和逆低通滤波处理的8×8像素块数据f′(k,l)。然后,从编码前的8×8像素块数据f(k,l)减去进行了编码和解码的8×8像素块数据f′(k,l),从而获得根据每个像素的绝对值的总和。这样,获得了差的绝对值的总和,Abs(ni,η,SF)。
此外,将通过广义JEX编码处理获得的Huffman编码的码长度与根据8×8像素块的头部信息的位长度相加,从而计算出Bit(ni,η,SF)(步骤S74)。
通过下式49和式50示出的方式利用这样获得的Abs(ni,η,SF)和Bit(ni,η,SF)计算出与所有基准8×8像素块ni相对应的图像质量估计值Abs(η,SF)以及码长度估计值Bit(η,SF)。
[式49]
[式50]
这里,符号“:=”表示代入(substitution)。
图像质量估计值Abs(η,SF)表示其值越小,则图像质量越高,码长度估计值Bit(η,SF)表示其值越小,则压缩比越高。
随后,确定是否已经对根据Choice的值从(η,SF)表中选择的所有(η,SF)对进行了处理(步骤S75),而且如果存在没有处理的(η,SF)对,则流程返回到步骤S73,其中针对下一个(η,SF)对进行处理。
这样,在步骤S75中,如果确定已经对所有的(η,SF)对进行了处理,则进一步确定Method项是否为1(步骤S76)。
这里,在Method=1(表示已经选择了高压缩比)的情况下,从所有满足Abs(0,1)≥Abs(η,SF)的(η,SF)对中选择使Bit(η,SF)最小的(η1,SF1)对。所施加的条件Abs(0,1)≥Abs(η,SF)是与通过普通JPEG处理的图像相比图像质量不会劣化的必要条件。注意,如果存在两个或更多个的(η1,SF1)对使Bit(η,SF)最小,则选择Abs(η,SF)具有较小值的(η1,SF1)对,从而不仅提高了压缩比,而且还提高了图像质量。另一方面,如果没有(η,SF)对满足Abs(0,1)≥Abs(η,SF),则自动取(0,1),其表示不进行低通滤波处理(步骤S77)。
此外,在步骤S76中,如果确定不满足Method=1(即,此时Method=0),这表示已经选择了高质量,则从所有满足Bit(0,1)≥Bit(η,SF)的(η,SF)对中选择使Abs(η,SF)最小的(η0,SF0)对。所施加的条件Bit(0,1)≥Bit(η,SF)是数据大小不超过使用普通JPEG压缩的数据的大小的必要条件。注意,如果使Abs(η,SF)最小的(η0,SF0)对的数量超过1,则选择Bit(η,SF)较小的(η0,SF0)对,从而不仅提高了图像质量,而且提高了压缩比。另一方面,如果没有(η,SF)对满足Bit(0,1)≥Bit(η,SF),则自动取(0,1),其表示不进行低通滤波处理(步骤S78)。
在完成步骤S77或步骤S78后,输出所选择的(η,SF)对(步骤S79),然后结束该JEX(LPF)处理。
图40为表示图37中的步骤S62的JEX(LPF)主处理的细节的流程图。
该JEX(LPF)主处理用于根据在图38中示出的JEX(LPF)预处理中设置的(η,SF)对,对整个图像进行低通滤波处理。
在该处理开始时,输入第n(n=1,…,NTotal)个8×8像素块f(k,l)(步骤S81)。
随后,输入数据集DA(步骤S82)。该数据集DA为包括前述η、Thc2、Thr2、Mode向量和Pos向量的数据集。这里,Thc2为一阈值,其用于确定以下将描述的沿水平方向的差的最大值Vsc是否足够大而需要应用水平滤波操作。同样地,Thr2为一阈值,其用于确定以下将描述的沿垂直方向的差的最大值Vsr是否足够大而需要应用垂直滤波操作。这里Mode向量为8-D向量,并被设置成表示是否进行了垂直滤波或水平滤波的值。例如,分别而言,“1”为表示垂直滤波操作的值,而“2”为表示水平滤波操作的值。注意,该向量的维数8表示由垂直滤波操作或水平滤波操作构成的低通滤波操作总共进行最多8次。如果多次重复进行低通滤波处理,则图像逐渐被平面化(planarize),从而这里将上限确定为8次以防止过分平面化。注意,当然该上限通常不限于8次。Pos向量是记录了要进行垂直滤波操作或水平滤波操作的8×8像素块的行号或列号的向量。下面将参照图55对这些Mode向量和Pos向量的具体示例进行描述。
接下来,将1代入循环计数变量Loop(步骤S83)。这里,如上所述“:=”表示代入。
随后,确定Loop是否大于8(步骤S84),而且如果Loop不大于8,则计算沿水平方向的差的最大值Vsc,以及提供该最大值Vsc的列号k中的最小值kc(步骤S85)。
随后,计算沿垂直方向的差的最大值Vsr,以及提供该最大值Vsr的行号l中的最小值lr(步骤S86)。
检查这样计算的最大值Vsc是否大于最大值Vsr(步骤S87),如果最大值Vsc大于最大值Vsr,则进一步确定最大值Vsc是否大于阈值Thc2(步骤S88)。如果Vsc大于阈值Thc2,则如下式51所示的那样执行水平滤波操作,而且设置Mode(Loop):=1并且Pos(Loop):=kc(步骤S90)。
[式51]
f(k,l)←[f*L(kr,η)]k,l
另一方面,在步骤S87中,如果最大值Vsc等于或小于最大值Vsr,则进一步检查最大值Vsr是否大于阈值Thr2(步骤S89)。如果最大值Vsr大于阈值Thr2,则如下式52所示的那样执行垂直滤波操作,而且设置Mode(Loop):=2并且Pos(Loop):=lr(步骤S91)。
[式52]
f(k,l)←[L(kr,η)*f]k,l
在完成步骤S90或步骤S91后,如果在步骤S88中最大值Vsc等于或小于阈值Thc2,或者如果在步骤S89中最大值Vsr等于或小于阈值Thr2,则使变量Loop递增(步骤S92),并且流程返回至步骤S84,其中重复进行上述处理。
这样,当在步骤S84中确认变量Loop大于8时,产生头部信息Phl(n)(步骤S93),输出头部信息Phl(n)和进行了LPF的f(k,l)(步骤S94),然后结束该JEX(LPF)主处理。
注意,图40描述了对一个(第n个)8×8像素块的处理。不用说,在实际处理中,针对NTotal个8×8像素块进行该处理。
图41为表示图40中的步骤S85中的Vsc和kc的计算处理的细节的流程图。
在该处理开始时,计算通过水平移位8×8像素块f(k,l)而获得的数据(步骤S101)。
随后,通过从原始数据f(k,l)中减去水平移位(左移位)的数据并取差的绝对值,来计算差的绝对值(步骤S102)。然而,尽管原始数据由8列(k=0,…,7)构成,但水平移位的数据由7列(k=0,…,6)构成,从而针对7列(k=0,…,6)进行了计算,所计算的差的绝对值的数量为7×8=56。
在所计算的差的绝对值中,查找最大值Vsc(步骤S103)。用于查找最大值Vsc的处理可以由下式53所示的表达式来表示。
[式53]
随后,查找提供最大值Vsc的列号k中的最小值kc(步骤S104),然后结束该处理。注意,仅当存在两个或更多个提供最大值Vsc的列号k时,才执行步骤S104中的处理,当仅存在一个列号k时在不进行查找的情况下选择列号k。
图42为表示图40的步骤S86中的Vsr和lr计算处理的细节的流程图。
在该处理开始时,计算通过垂直移位8×8像素块f(k,l)获得的数据(步骤S105)。
随后,通过从原始数据f(k,l)中减去垂直移位(向上移位)的数据并取差的绝对值,来计算差的绝对值(步骤S106)。然而,尽管原始数据由8行(k=0,…,7)构成,但垂直移位的数据由7行(k=0,…,6)构成,从而针对7行(k=0,…,6)进行了计算,并且所计算的差的绝对值的数量为7×8=56。
在所计算的差的绝对值中,搜索最大值Vsr(步骤S107)。用于查找该最大值Vsr的处理可由下式54所示的表达式来表示。
[式54]
随后,查找提供该最大值Vsr的行号1中的最小值lr(步骤S108),然后结束该处理。注意,仅当存在两个或更多个提供最大值Vsr的行号1时,才执行步骤S108中的处理,当仅存在一个行号1时在不进行查找的情况下选择行号1。
图43为表示JEX(LPF)解码处理的流程图。
在该处理开始时,输入第n个IDCT变换块f′(k,l)、头部信息Phl(n)以及表示LPF的强度的参数η(步骤S111)。
通过将0代入所有的Mode(1)、…、Mode(8)对该8-D向量Mode进行初始化(步骤S112)。注意,在图43中,附加在i前面的符号,即倒置的“A”为表示任意i的符号。
接着,将从头部信息Phl(n)的第二位直到分隔符“000”的位信息以2位为增量按顺序代入到Mode(1)、Mode(2)、…中,而且将从分隔符“000”直到最后的位的位信息以3位为增量按顺序代入到Pos(1)、Pos(2)、…中(参见图44、图45等)(步骤S113)。
随后,将1代入表示循环计数的变量Loop(步骤S114)。
接下来,确定与循环计数相对应的Mode向量分量Mode(Loop)是否为2(步骤S115)。如果Mode(Loop)为2,则利用下式55进行逆垂直滤波操作(步骤S116)。
[式55]
f′(k,l)←[L(Pos(Loop),η)-1*f′(k,l)]k,l
另一方面,在步骤S115中Mode(Loop)不为2的情况下,然后确定Mode(Loop)是否为1(步骤S117)。
如果Mode(Loop)为1,则利用下式56进行逆水平滤波算术运算(步骤S118)。
[式56]
f′(k,l)←[f′(k,l)*L(Pos(Loop),η)-1]k,l
在完成步骤S116或步骤S118的情况下,使变量Loop递增(步骤S119),然后确定变量Loop是否大于8(步骤S120)。
在变量Loop为8或小于8的情况下,流程返回到步骤S115,在步骤S115重复执行上述处理。
另一方面,如果变量Loop大于8,或者在步骤S117中Mode(Loop)不为1,则输出经变换的f′(k,l)(步骤S121),结束该JEX(LPF)解码。
注意,在图43中,示出了对一个(第n个)IDCT变换块的处理,但是不用说,在实际处理中对NTotal个IDCT变换块进行这种处理。
图44为表示Mode向量和Pos向量的示例的图表。
图44所示的示例为其中对一个8×8像素块进行8次LPF处理的示例。在该示例中,仅在i=4或8时,Mode(i)=2才成立,这表明进行了垂直滤波操作,所有其它的情况表示进行了水平滤波操作。该Mode(i)由每两个位构成。对于每个i进行了滤波算术运算的行号或列号被表示为Pos(i),而且还示出了其位表示。k和l在0到7之间的范围内,从而它们中的每一个都被表示为3位的值。
注意,LPF处理最多进行8次,但有时进行少于8次。例如,假设LPF处理进行了j(7≥j)次,则在Mode(j)后记录分隔符,而且在该分隔符后记录Pos(i)、…、Pos(j)。
图45为表示头部信息Phl(n)的示例的图。
如该附图所示,用于第n个8×8像素块的头部信息Phl(n)包括指示符Ind、Mode(i)、分隔符和Pos(i)。
指示符Ind为1位的数据,其表示数据开始位置,从而将数据与填充位区分开,而且对所有的8×8像素块都设置为1。
Mode(i)为将图44中的数据“1”或“2”记录为2位值的部分。
分隔符用于区分Mode(i)和Pos(i),而且为由3位值表示的0(即,用位表示的“000”)。
Pos(i)为其中按顺序记录图44所示的位表示的部分。
如果根本没有进行LPF处理,则Phl(n)变为“100”。
图46为表示用于整个图像的全局头部的示例的图表。
如上述第一实施例那样,该全局头部例如记录在图24所示的注释COM部分中,或者记录在EXIF文件的应用标记段中,等等。
该全局头部包括以二进制(ASCII数据)记录的“JEX”、被记录为4位值的类别、被记录为包括3个8位值的值的全局参数(即,总共24位)、以及用于所有块的头部Phl(n),此外,如果需要还添加有填充位。
图47为表示待记录在全局头部的类别中的位值的示例的图表。
在该示例中,将类别表示为4位值。首先,类别“0000”表示没有进行狭义JEX处理,并且在这种情况下,广义JEX处理与普通的JPEG处理相同。
接着,类别“0001”表示进行了如在第一实施例中描述的置换作为狭义JEX处理。
类别“0010”表示进行了在第二实施例中描述的可逆LPF处理作为狭义JEX处理。
类别“0011”表示一起采用了置换和可逆LPF处理作为狭义JEX处理。以下将作为第三实施例来描述这种情况。
注意,可以指定为类别的其它位值是用于其它JEX处理的保留区域。
图48为表示图46所示的全局参数的第一个8位值的示例的图表。
这里,记录了与作为全局参数的第一个8位值的参数η相对应的位值。例如,对于如图39所示的η的每个值,分别在η=0时记录“00000000”为位值,在η=(1/8)时记录“00000001”为位值,在η=(1/6)时记录“00000010”为位值,在η=(1/5)时记录“00000011”为位值,在η=(1/4)时记录“00000100”为位值。
图49为表示图46所示的全局参数的第二个8位值的示例的图表。
这里,记录了与作为全局参数的第二个8位值的比例因子SF相对应的位值。例如,对于如图39所示的SF的各个值,分别在SF=1时记录“00000000”为位值,在SF=(7/8)时记录“00000001”为位值,在SF=(6/8)时记录“00000010”为位值,在SF=(5/8)时记录“00000011”为位值,在η=(4/8)时记录“00000100”为位值,在SF=(3/8)时记录“00000101”为位值。
注意,图46所示的全局参数的第三个8位值为保留区域。
图50为表示从图像数据提取的原始8×8像素块的数据示例的图。
在该图50中示出的图像数据被划分为像素值“10”的区域以及像素值“222”的区域。其为具有相对强的对比度的图像数据(例如字符数据等)。
首先,将参照图51至图54对通过普通JPEG来处理图50所示的图像数据的情况进行描述。
图51为表示对图50所示的原始8×8像素块数据进行电平移位和DCT的结果的图表。
此外,图52为表示图51所示的块数据在量化后的结果的图表。
此外,图53为表示对图52所示的块数据依次进行逆量化、逆DCT、以及电平移位,并舍入到0至255范围内的数据的结果的图表。
图54为表示从图53所示的进行了解码的像素块数据中减去图50所示的原始像素块数据的结果的图表。
图54所示的差的绝对值的总和变为685,并且JPEG编码后的码长度为193位。
另一方面,图55至图59表示在利用可逆LPF进行JEX处理时的示例。
首先,图55为表示从头部信息中提取的模式信息和滤波位置信息的示例的图表。该图55中所示的示例与图44所示的示例相对应。
可以根据要从头部信息的Mode向量提取的模式信息对算术运算是垂直滤波算术运算还是水平滤波算术运算进行区分,而且还可以根据要从Pos向量提取的滤波位置kc和lr的信息确定进行滤波算术运算的位置。
接着,图56为表示对图50所示的原始8×8像素块数据进行图55所示的8次低通滤波处理的结果的图表。从该图56所示的结果可以发现,具有像素值“10”的像素较少,而且在整体上减少了高频部分。注意,如从图56可以理解的,低通滤波处理后的像素值变为具有小数点的值,这是由于通过浮点算术运算来执行低通滤波处理,从而以较高的精度对像素值进行了混和。
随后,图57为表示对图56所示的进行了低通滤波的8×8像素块数据进行电平移位和DCT的结果的图表。如可以看到的那样,将该图57与图51进行比较,DC分量在逆低通滤波的作用下保持不变为“116”。此外,可以看到明显地减小了高频系数。
随后,图58为表示对图57所示的块数据进行量化的结果的图表。
在该示例中,使用被设置为“1”的比例因子SF(即,使用原始量化表本身)来进行量化。可以看到,在比较该图58所示的结果与图52所示的结果时,具有“0”(零)高频系数的部分增加。因此,可以预期获得较高的压缩比。
此外,图59是其表示对图58所示的块数据进行逆量化、逆DCT和电平移位、并进行逆LPF并舍入为0至255范围内的数据的结果的图表。
从该图59所示的进行了解码的像素块数据中减去图50所示的原始像素块数据,而且其结果的绝对值的总和为522。这清楚地表明,与图53所示的JPEG解码的结果(差的绝对值的总和为685)相比,提高了图像质量。
此外,JEX编码后的码长度为125位,而且图45所示的头部信息的位长度为44位,从而总共为169位。即使包括头部信息部分,这也小于传统JPEG编码的193位的码长度,因而提供了压缩比。
根据这样的第二实施例,即使通过进行可逆低通滤波处理作为可逆图像空间变换,通常也可以提高与上述第一实施例相同的优点。
[第三实施例]
图60至图63表示本发明的第三实施例,图60为表示将低通滤波与置换进行组合的JEX主处理的示例的流程图。在该第三实施例中,与上述实施例1和2相同的部分附加有相同的附图标记,从而省略对它们的描述。描述将主要只针对不同之处。
在该第三实施例中,进行了这样的设置,其中可以选择性地进行如在第一实施例所述的置换以及如在第二实施例中所述的低通滤波处理中的任何有利的一种处理。因此,这表明在一个图像数据中,对一些8×8像素块进行置换,而对其他的8×8像素块进行低通滤波处理。
注意,进行该图60示出的JEX(LPF+置换)主处理,而不是上述第二实施例的图37所示的步骤S62中的JEX(LPF)主处理。因此,在进行该JEX(LPF+置换)主处理时,前提条件是已经完成了JEX(LPF)预处理。
在该处理开始时,计算头部信息Ph(n)以及基于JEX(置换)进行了置换的f(k,l)P,并且还计算差的绝对值的总和Abs(n)以及Huffman码长度Bit(n)(步骤S131)。
接下来,计算头部信息Phl(n)以及基于JEX(LPF)进行了LPF处理的f(k,l)L,并且还计算差的绝对值的总和Abs(n,η,SF)以及Huffman码长度Bit(n,η,SF)(步骤S132)。
随后,确定Method是否为1(步骤S133)。如果Method为1(即,选择了高压缩比),则确定置换的Huffman码长度Bit(n)是否小于LPF的Huffman码长度Bit(n,η,SF)(步骤S134)。
并且,在步骤S133中,如果Method不为1(即,选择了高图像质量),则确定置换的差的绝对值的总和Abs(n)是否小于LPF的差的绝对值的总和Abs(n,η,SF)(步骤S135)。
如果在步骤S134中,置换的Huffman码长度Bit(n)等于或大于LPF的Huffman码长度Bit(n,η,SF),或者在步骤S135中,置换的差的绝对值的总和Abs(n)等于或大于LPF的差的绝对值的总和Abs(n,η,SF),则输出经LPF处理的f(k,l)以及头部信息Phl(n)(步骤S136)。
另一方面,如果在步骤S134中,置换的Huffman码长度Bit(n)小于LPF的Huffman码长度Bit(n,η,SF),或者在步骤S135中,置换的差的绝对值的总和Abs(n)小于LPF的差的绝对值的总和Abs(n,η,SF),则输出置换后的f(k,l)以及头部信息Ph(n)(步骤S137)。
这样,在进行步骤S136或步骤S137后,结束该JEX(LPF+置换)主处理。
注意,如上所述,对每个8×8像素块进行如图60所示的处理。
接着,图61为表示将在图60的步骤S137中产生的头部信息的示例的图表,而图62表示将在图60的步骤S136中产生的头部信息的示例的图表。
在进行置换时产生的头部信息Ph(n)与第一实施例的图25所示的头部信息Ph(n)相同,而在进行LPF时产生的头部信息Phl(n)与第二实施例的图45所示的头部信息Phl(n)相同,除了在这两种情况下紧接着指示符Ind之后记录类别Cat以外。在图61和图62所示的示例中,类别Cat被记录为1位的信息,分别而言,在进行置换处理时,将“0”记录为位值,而在进行LPF处理时,将“1”记录为位值。
注意,在以上描述中,采用了诸如式47所示的LPF矩阵L(k,η),该LPF矩阵L(k,η)在应用于被表示为矩阵的f(k,l)时,对f(k,l)的特定行或特定列具有低通滤波效果。然而,用作LPF的矩阵不限于这样的矩阵,而是例如可以采用如下式57所示的LPF矩阵LT(χ)。
[式57]
这里,χ为表示滤波强度的参数,而ξ=1-2χ。此外,对参数χ施加条件(1/3)>χ≥0。
该LPF矩阵LT(χ)对整个8×8像素块具有低通滤波效果。其从左侧对f(k,l)进行矩阵运算时在行之间具有LPF效果,而从右侧对f(k,l)进行矩阵运算时在列之间具有LPF效果。而且,χ的典型值的示例包括(1/8)、(1/6)、(1/4)等。通过将χ限定为大约或等于0并小于(1/3),使得LT(χ)可逆。注意,在采用该LT(χ)的情况下,DC系数不再是恒定的,而是有一定程度的变化。
图63为表示在采用上述低通滤波时的头部信息的示例的图表。
对于采用上述LPF矩阵LT(χ)乘以总的LPF时的头部信息Phm(n),可以紧接着指示符Ind(=1)和类别Cat(=1)之后设置用于数据Mode的区域,并例如将“11”记录为其位值。
而且,参数χ被记录为全局参数,从而其不包括在每个块的头部信息Phm(n)内。因此,该示例被构造为滤波强度对于整个图像都是恒定的,并且不根据块而改变。
根据所描述的第三实施例,可以提供与实施例1和实施例2相同的优点。此外,因为可以针对每个块选择JEX置换和JEX LPF中的更合适的处理,从而可以实现较高的图像质量和较高的压缩比。
此外,通过采用用于对整个图像进行低通滤波的矩阵,使得该处理需要进行较少的算术运算。这使得处理能够更快,并且降低了该处理所需的算术运算负荷。
注意,本发明不限于上述实施例,并且不用说,在不脱离本发明的精神和范围的情况下可以进行各种修改和应用。
(按照条约第19条的修改)
1、一种图像编码方法,该图像编码方法包括:
对图像数据进行空间频率变换,以获得变换系数;
将所述变换系数编码为编码数据;
产生所述编码数据的头部部分,该头部部分包括与所述图像数据相关的信息;
其中,在进行所述空间频率变换之前,对所述图像数据进行适于所述图像数据的可逆空间变换;以及
将所述可逆空间变换的逆变换所需的头部信息添加到所述头部部分中。
2、根据权利要求1所述的图像编码方法,
其中,所述变换系数的编码总体上使高频变换系数的数据量减少得比低频变换系数的数据量多;并且
其中,所述可逆空间变换总体上抑制了所述高频变换系数。
3、根据权利要求2所述的图像编码方法,
其中,与用于对所述低频变换系数进行量化的量化步长相比,所述变换系数的编码通常应用较大的量化步长对所述高频变换系数进行量化;并且
响应于所述图像数据自适应地选择所述可逆空间变换,以抑制所述高频系数的值。
4、根据权利要求1所述的图像编码方法,
其中,所述图像数据被划分为或者包括多个图像块;并且其中
对所述图像块中的至少一个图像块进行所述可逆空间变换和所述空间频率变换。
5、根据权利要求4所述的图像编码方法,
其中,所述可逆空间变换包括多个块可逆空间变换,其中每一个块可逆空间变换都被应用于所述图像块中的相应的一个图像块;
对所述图像块进行所述空间频率变换;
所添加的头部信息包括所述块可逆空间变换的逆变换所需的信息;并且其中
所述块可逆空间变换适于所述相应的图像块。
6、根据权利要求5所述的图像编码方法,
其中,在对相应的图像块进行块可逆空间变换之前,确定是否要对所述相应的图像块进行所述块可逆空间变换;
如果所述确定是肯定的,则对所述图像块进行所述块可逆空间变换。
7、根据权利要求4所述的图像编码方法,
其中,所述图像块中的所述至少一个可以表示为矩阵M,并且其中
所述可逆空间变换可表示为包括所述矩阵M的行置换和列置换中的至少一种置换的运算。
8、根据权利要求4所述的图像编码方法,
其中,所述图像块中的所述至少一个可表示为矩阵M,并且其中
所述可逆空间变换可表示为线性矩阵运算
M→AMB,
其中,A和B表示可逆矩阵。
9、根据权利要求8所述的图像编码方法,
其中,所述矩阵A和矩阵B中的一个矩阵为用于通过矩阵运算对矩阵M进行行置换的矩阵,而另一个矩阵为用于通过矩阵运算对矩阵M进行列置换的矩阵。
10、根据权利要求7所述的图像编码方法,
其中,所述行置换的特征在于,对矩阵M的行进行置换,使得在列方向上以降序或升序排列各行中的矩阵元素的值的总和;并且
其中,所述列置换的特征在于,对矩阵M的列进行置换,使得在行方向上以降序或升序排列各列中的矩阵元素的值的总和。
11、根据权利要求4所述的图像编码方法,
其中,所述变换系数包括与所述至少一个图像块的平均值成比例的DC系数,并且
所述可逆空间变换由此保持所述DC系数不变。
12、根据权利要求5所述的图像编码方法,
其中,所述图像块可表示为矩阵;
从包括置换操作和可逆低通滤波操作的多种操作中选择将要对所述图像块中的至少一个进行的块可逆空间变换;并且其中
所添加的头部信息包括用来确定对所述至少一个图像块选择了所述操作中的哪一种操作所需的信息。
13、一种可应用于JPEG编码处理的图像编码方法,该图像编码方法包括
a)将图像划分为多个8×8图像块;
b)对所述8×8图像块中的每一个图像块进行离散余弦变换,从而获得DCT系数,所述DCT系数包括表示所述8×8像素块的平均值的DC系数、低频AC系数以及高频AC系数;
c)利用量化表对所述DCT系数进行量化;
d)利用游程长度编码以及随后的Huffman编码对所述量化DCT系数进行编码;以及
e)产生头部部分,
所述方法包括:
在进行所述离散余弦变换之前对至少一个8×8图像块进行可逆空间变换,由此响应于所述至少一个8×8图像块来自适应地选择所述可逆空间变换;
提取所述空间变换的逆变换所需的空间变换参数;以及
将表示所述空间变换参数的头部信息添加到所述头部部分中。
14、根据权利要求13所述的图像编码方法,
其中,所述自适应可逆空间变换的特征在于
不论是否进行所述空间变换,所述DC系数都保持不变;并且
通过进行所述空间变换来增大所述低频AC系数的幅值。
15、一种用于对包括头部部分和编码数据部分的编码图像数据进行解码的图像解码方法,该图像解码方法包括:
读出所述编码图像数据的所述头部部分,以提取与图像数据相关的信息;
对所述编码数据进行解码,以获得空间频率域内的变换系数;
对所述变换系数进行逆空间频率变换,从而获得第二图像数据;
所述解码方法还包括:
提取可逆空间变换的逆变换所需的信息;
对所述第二图像数据进行所述可逆空间变换的逆变换,以获得所述图像数据。
16、根据权利要求15所述的图像解码方法,该图像解码方法还包括:
在提取之前,识别在所述头部部分中是否存在逆变换所需的信息;以及
如果识别到所述信息,则对所述第二图像数据进行所述逆变换,以获得所述图像数据;并且
如果没有识别到所述信息,则不进行所述逆变换而输出所述第二图像数据作为所述图像数据。
17、一种运动图像压缩方法,该运动图像压缩方法用于利用基于一个图像帧内的图像数据的帧内压缩和基于多个图像帧的帧间压缩,对包括呈时间序列式关系的多个图像帧的运动图像数据进行编码,
其中,所述帧内压缩包括:将图像帧划分为多个图像块;对所述图像块进行空间频率变换,以获得变换系数;以及产生包括与所述图像帧相关的信息的头部部分,所述帧内压缩还包括:
在进行所述空间频率变换之前对所述图像块中的至少一个进行可逆空间变换;以及
将包括所述可逆空间变换的逆变换所需的空间变换参数的头部信息添加到所述头部部分中。
18、根据权利要求17所述的运动图像压缩方法,该运动图像压缩方法还包括:
在进行所述可逆空间变换之前,确定是否进行所述可逆空间变换。
19、一种运动图像压缩方法,该运动图像压缩方法用于利用基于一个图像帧内的图像数据的帧内压缩和基于多个图像帧的帧间压缩,对包括呈时间序列式关系的多个图像帧的运动图像数据进行编码,
其中,所述帧间压缩包括:将图像帧划分为多个像素块;通过获得所述像素块中的至少一个和与将要进行比较的图像帧相关的对应像素块之间的差值,来产生图像块;对所述图像块进行空间频率变换以获得变换系数;以及产生包括与所述图像帧相关的信息的头部部分,所述帧间压缩还包括:
在进行所述空间频率变换之前,对所述图像块中的至少一个图像块进行可逆空间变换;以及
将包括所述可逆空间变换的逆变换所需的空间变换参数的头部信息添加到所述头部部分中。
20、根据权利要求19所述的运动图像压缩方法,该运动图像压缩方法还包括:
在进行所述可逆空间变换之前,确定是否进行所述可逆空间变换。
21、根据权利要求19所述的运动图像压缩方法,
其中,所述头部部分包含与包括多个图像帧的组相关的信息;
并且其中,所述头部信息包含与来自所述组的多个图像帧相关的空间变换参数。
22、一种用于对编码运动图像数据进行解码以获得运动图像数据的运动图像解码方法,该编码运动图像数据包括头部部分和编码数据部分,所述运动图像解码方法包括:
读出所述头部部分,以提取与图像数据相关的信息,该图像数据与图像帧相关;
对所述编码数据部分进行解码,以获得与所述图像帧相关的变换系数;
对所述变换系数进行逆空间频率变换,从而获得第二图像数据;
所述解码方法还包括:
从所述头部部分提取可逆空间变换的逆变换所需的头部信息;
对所述第二图像数据进行所述可逆空间变换的逆变换,以获得与所述图像帧相关的图像数据。
23、一种可以由计算装置执行的图像编码程序,该图像编码程序包括用于进行以下步骤的操作指令:
对图像数据进行空间频率变换,以获得变换系数;
将所述变换系数编码为编码数据;
产生所述编码数据的头部部分,该头部部分包括与所述图像数据相关的信息;
其中,在进行所述空间频率变换之前,对所述图像数据进行适于所述图像的可逆空间变换;以及
将所述可逆空间变换的逆变换所需的头部信息添加到所述头部部分中。
24、一种可以由计算装置执行的图像解码程序,该图像解码程序用于对包括头部部分和编码数据部分的编码图像数据进行解码,所述图像解码程序包括用于进行以下步骤的操作指令:
读出所述编码图像数据的所述头部部分,以提取与图像数据相关的信息;
对编码数据进行解码,以获得变换系数;
对所述变换系数进行逆空间频率变换,从而获得第二图像数据;
所述解码程序还包括用于进行以下步骤的操作指令:
提取可逆空间变换的逆变换所需的信息;
对所述第二图像数据进行所述可逆空间变换的逆变换,以获得所述图像数据。
25、一种图像编码装置,该图像编码装置包括:
空间变换单元,用于对图像数据进行适于所述图像数据的可逆空间变换;
空间频率变换单元,用于对所述图像数据进行空间频率变换,从而获得变换系数;
头部部分产生器,用于产生包括与所述图像数据相关的信息的头部部分;以及
头部信息添加单元,用于将包括所述空间变换的逆变换所需的空间变换参数的信息添加到所述头部部分中。
26、一种图像解码装置,用于对包括头部部分和编码数据部分的编码图像数据进行解码,所述图像解码装置包括:
逆空间频率变换单元,用于对从所述编码图像数据产生的变换系数进行逆空间频率变换,从而获得第二图像数据,
头部解释器,用于从所述头部部分读出所述空间变换参数;以及
逆空间变换单元,用于根据所述空间变换参数对所述第二图像数据进行逆空间变换,从而获得图像数据。
27、一种图像编码-解码系统,该图像编码-解码系统包括:
根据权利要求25所述的图像编码装置;以及
根据权利要求26所述的图像解码装置;
其中
所述图像解码装置能够对通过所述图像编码装置进行了编码的编码图像数据进行解码。
28、一种图像编码-解码系统,该图像编码-解码系统包括:
第一图像编码装置,该第一图像编码装置包括:
1a)划分单元,用于将原始图像数据划分为多个图像块;
1b)空间频率变换单元,用于通过对所述图像块进行空间频率变换,来获得变换系数;
1c)量化器,用于对所述变换系数进行量化,以产生变换系数的整数值;
1d)编码器,用于对变换系数的这些整数值进行编码;以及
1e)编码图像文件产生装置,用于通过组合头部部分与根据所述编码器的结果而获得的数据,来产生第一编码图像文件;
第二图像编码装置,该第二图像编码装置用于产生第二编码图像文件,该第二图像编码装置是通过向所述第一图像编码装置添加以下单元而获得的:
2a)空间变换单元,用于在进行所述空间频率变换之前对所述图像块中的至少一个图像块进行可通过空间变换参数识别的可逆空间变换;以及
2b)头部信息添加单元,用于将所述空间变换参数添加到所述头部部分中;
第一图像解码装置,该第一图像解码装置包括:
3a)头部读取器,用于从所述第一编码图像文件读出头部部分;
3b)解码器,用于通过对从所述第一编码图像文件获得的码进行解码,来获得变换系数的整数值;
3c)逆量化器,用于对所述解码器产生的变换系数的整数值进行去量化,从而获得变换系数;
3d)逆空间频率变换单元,用于通过对来自所述逆量化器的变换系数进行逆空间频率变换,来获得以图像块为单位的图像数据;
以及
3e)再现装置,用于从以图像块为单位的所述图像数据产生原始图像数据;
以及
第二图像解码装置,该第二图像解码装置用于从第二编码图像文件获取原始图像数据,该第二图像解码装置是通过向所述第一图像解码装置添加以下单元而获得的:
4a)附加头部信息读取器,用于从所述头部部分读出所述空间变换参数;以及
4b)逆空间变换单元,用于根据由该附加头部信息读取器读出的空间变换参数进行所述空间变换的逆变换;
其中,在要解码的编码图像文件为所述第二编码图像文件的情况下,所述第一图像解码装置能够通过忽略在所述第二压缩图像文件的头部部分中描述的空间变换参数而无错误地恢复与所述原始图像数据不同的数据;
并且其中,在所述附加头部信息读取器不能从所述头部部分读出空间变换参数的情况下,所述第二图像解码装置通过只部分地进行由第一图像解码装置进行的解码而不进行由所述逆空间变换单元进行的处理,来恢复原始图像数据。
29、根据权利要求28所述的图像编码-解码系统,该图像编码-解码系统还包括:
图像采集装置,其具有所述第二图像编码装置;以及计算机,其具有所述第一图像解码装置。
30、根据权利要求1所述的图像编码方法,
其中,可以通过至少一个调节参数来调节所述可逆空间变换;并且其中,所述头部信息包括所述调节参数。
31、根据权利要求30所述的图像编码方法,
其中,所述图像数据被划分为或包括多个图像块;并且其中对所述图像块中的至少一个图像块进行所述可逆空间变换和所述空间频率变换。
32、根据权利要求31所述的图像编码方法,
其中,所述图像块中的所述至少一个可表示为矩阵M,并且其中
所述可逆空间变换可表示为以下线性矩阵运算之一:
M→AM
M→MB,以及
M→AMB,
其中A和B表示可逆矩阵。
33、根据权利要求32所述的图像编码方法,
其中,所述矩阵A和矩阵B为用于实现对由所述矩阵M表示的图像块的空间低通滤波的矩阵。
34、根据权利要求30所述图像编码方法,
其中,所述可逆空间变换对所述图像数据实现空间低通滤波;并且
其中,所述调节参数包括用于调节所述空间低通滤波的滤波强度的滤波调节参数。
35、根据权利要求34所述的图像编码方法,该图像编码方法还包括:
利用包括在所述头部部分内的量化参数对所述变换系数进行量化,其中;
响应于所述滤波调节参数调节所述量化参数。
36、根据权利要求30所述的图像编码方法,
其中,所述变换系数包括与所述图像数据的平均值成比例的DC系数,并且
所述可逆空间变换由此保持所述DC系数不变。
37、根据权利要求30所述的图像编码方法,该图像编码方法还包括:
在编码之前选择编码模式;以及
根据与所述编码模式中的所选择的一个编码模式相对应的标准来选择调节参数。
38、根据权利要求35所述的图像编码方法,该图像编码方法还包括:
在编码之前选择编码模式;以及
根据与所述编码模式中的所选择的一个编码模式相对应的标准来选择所述调节参数和所述量化参数。
39、根据权利要求38所述的图像编码方法,
其中,所述编码模式包括高压缩模式和高质量模式。
40、根据权利要求34所述的图像编码方法,
其中,所述可逆空间变换实现了具有可选择方向性特征的空间低通滤波;并且
所述头部信息还包括与已经实际选择的方向性特征相关的信息。
Claims (37)
1、一种图像编码方法,该图像编码方法被应用于基本编码方法,该基本编码方法包括:空间频率变换步骤,用于利用空间频率变换将图像数据或差分图像数据从图像空间变换为频率空间内的变换系数;以及头部产生步骤,用于将与所述图像数据或差分图像数据相关的信息添加到基于所述变换系数的数据中作为头部部分,所述图像编码方法包括:
空间变换步骤,用于在空间频率变换步骤之前对所述图像数据或差分图像数据进行可逆图像空间变换;
以及头部信息添加步骤,用于向所述头部部分添加进行所述图像空间变换的逆变换所需的空间变换参数。
2、根据权利要求1所述的图像编码方法,
其中,所述基本编码方法还包括编码步骤,该编码步骤用于对所述变换系数进行编码,使得低频系数的数据量总体上小于高频系数的数据量;
并且其中,在所述空间变换步骤中进行的可逆图像空间变换抑制了由于空间频率变换而导致的高频系数。
3、根据权利要求1所述的图像编码方法,
其中,所述基本编码方法还包括划分步骤,该划分步骤用于将图像数据或差分图像数据划分为多个像素块,并且所述空间频率变换步骤将在该划分步骤中划分的所述像素块变换到频率空间中;
并且其中,所述空间变换在空间频率变换步骤之前对所述像素块中的至少一个像素块进行可逆图像空间变换。
4、根据权利要求3所述的图像编码方法,
其中,在所述空间变换步骤中,将所述像素块表示为矩阵M,并且所述可逆空间变换包括M的行置换和列置换中的至少一种。
5、根据权利要求3所述的图像编码方法,
其中,在所述空间变换步骤中,将所述像素块表示为矩阵M,并且通过可逆线性矩阵运算
M→AMB来表示所述可逆空间变换,其中,A和B表示可逆矩阵。
6、根据权利要求5所述的图像编码方法,
其中,所述矩阵A和矩阵B中的一个矩阵为用于通过矩阵运算进行矩阵M的行置换的矩阵,而另一个矩阵为用于通过矩阵运算进行矩阵M的列置换的矩阵。
7、根据权利要求5所述的图像编码方法,
其中,用于进行行置换的矩阵被表示为用于将另一行添加到特定行的矩阵与用于将特定行乘以-1的矩阵的矩阵积;
并且其中,用于进行列置换的矩阵被表示为用于将另一列添加到特定列的矩阵与用于将特定列乘以-1的矩阵的矩阵积。
8、根据权利要求4至6中的任意一项所述的图像编码方法,
其中,进行矩阵M的行之间的置换,使得在行之间的置换后,沿行方向的像素值的总和在列方向上按照降序或升序排列;
并且其中,进行矩阵M的列之间的置换,使得在列之间的置换后,沿列方向的像素值的总和在行方向上按照降序或升序排列。
9、根据权利要求1所述的图像编码方法,
其中,在所述空间变换步骤中,通过改变所述图像数据或所述差分图像数据中的像素的布置来进行所述可逆空间变换。
10、根据权利要求1或2所述的图像编码方法,
其中,在所述空间频率变换步骤中获得的所述变换系数包括与所述图像数据的平均值或所述差分图像数据的平均值成比例的DC系数,
并且由此在所述空间变换步骤中进行的所述图像空间变换保持所述DC系数不变。
11、根据权利要求3所述的图像编码方法,
其中,在所述空间频率变换步骤中获得的所述变换系数包括与所述像素块的平均值成比例的DC系数,
并且由此在所述空间变换中进行的所述图像空间变换保持所述DC系数不变。
12、一种可应用于JPEG编码处理的图像编码方法,该图像编码方法包括:
空间变换步骤,用于在进行离散余弦变换之前对至少一个像素块进行可逆图像空间变换;
空间变换参数提取步骤,用于提取进行所述图像空间变换的逆变换所需的空间变换参数;以及
头部信息添加步骤,用于向JPEG文件的头部部分添加在所述空间变换参数提取步骤中提取的空间变换参数。
13、根据权利要求12所述的图像编码方法,
其中,所述图像空间变换保持通过进行离散余弦变换而获得的DCT系数中的DC系数不变,并增大所述DCT系数中的低频AC系数的幅值。
14、一种对图像数据或差分图像数据进行编码的图像编码方法,该图像编码方法包括:
空间变换步骤,用于在图像空间内对图像数据或差分图像数据进行可逆空间变换;
空间频率变换步骤,用于将图像数据或差分图像数据从图像空间变换至频率空间,从而获得变换系数;
编码步骤,用于将所述变换系数编码为编码数据;
头部信息产生步骤,用于向所述编码数据整体地添加进行所述空间变换的逆变换所需的信息作为头部信息;
其中,在所述编码步骤后,低频系数侧的数据量总体上小于高频系数侧的数据量;并且
其中,所述空间变换步骤总体上抑制了由于所述空间频率变换而导致的高频系数。
15、一种图像解码方法,该图像解码方法可应用于基本解码方法,该基本解码方法包括逆空间频率变换步骤,用于利用逆空间频率变换对根据编码图像数据或根据编码差分图像数据产生的变换系数进行变换,从而获得图像空间数据,该图像解码方法用于对利用根据权利要求1所述的图像编码方法进行了编码的编码图像数据或编码差分图像数据进行解码,所述图像解码方法包括:
头部信息读出步骤,用于从所述头部部分读出至少空间变换参数;以及
逆空间变换步骤,用于根据在所述头部信息读出步骤中读出的所述空间变换参数对由所述逆空间频率变换步骤产生的图像空间数据进行所述图像空间变换的逆变换。
16、根据权利要求15所述的图像解码方法,该图像解码方法还包括:
头部识别步骤,用于识别是否在所述头部部分中描述了所述空间变换参数;
其中,如果在所述头部识别步骤中识别到所述空间变换参数,则输出通过基于所述空间变换参数进行所述逆空间变换步骤而获得的图像数据或差分图像数据,而如果在所述头部识别步骤中没有识别到空间变换参数,则输出在没有进行所述逆空间变换步骤而获得的图像数据或差分图像数据。
17、一种运动图像压缩方法,该运动图像压缩方法用于利用基于一个图像帧内的图像数据的帧内压缩和基于多个图像帧的帧间压缩,对包括呈时间序列式关系的多个图像帧的运动图像数据进行编码,
其中,所述帧内压缩可应用于基本帧内压缩方法,该基本帧内压缩方法包括:划分步骤,用于将图像帧划分为多个像素块;空间频率变换步骤,用于对所述像素块进行空间频率变换以获得变换系数;以及头部信息产生步骤,用于将与所述图像数据相关的信息添加到基于在所述空间频率变换步骤中获得的所述变换系数的数据,作为头部部分,所述帧内压缩还包括:
空间变换步骤,用于在所述空间频率变换步骤之前对至少一个像素块进行可逆图像空间变换;以及
头部信息添加步骤,用于将进行所述图像空间变换的逆变换所需的空间变换参数添加到所述头部部分中。
18、根据权利要求17所述的运动图像压缩方法,该运动图像压缩方法还包括:
空间变换模式选择步骤,用于选择是否进行所述空间变换步骤和所述头部信息添加步骤。
19、一种运动图像压缩方法,该运动图像压缩方法用于利用基于一个图像帧内的图像数据的帧内压缩和基于多个图像帧的帧间压缩,对包括呈时间序列式关系的多个图像帧的运动图像数据进行编码,
其中,所述帧间压缩可应用于基本帧间压缩方法,该基本帧间压缩方法包括:划分步骤,用于将图像帧划分为多个像素块;差值计算步骤,用于通过获得在该划分步骤中划分的所述像素块中的至少一个像素块与要进行比较的图像帧内的对应像素块之间的差值,来产生差分像素块;空间频率变换步骤,用于对所述差分像素块进行空间频率变换;以及头部信息产生步骤,用于将与所述图像数据相关的信息添加到基于所述变换系数获得的数据中作为头部部分,所述帧间压缩还包括:
空间变换,用于在所述空间频率变换步骤之前对所述差分像素块中的至少一个差分像素块进行可逆图像空间变换;以及
头部信息添加步骤,用于将进行所述图像空间的逆变换所需的空间变换参数添加到所述头部部分中。
20、根据权利要求19所述的运动图像压缩方法,该运动图像压缩方法还包括:
空间变换模式选择步骤,用于选择是否进行所述空间变换步骤和所述头部信息添加步骤。
21、根据权利要求19所述的运动图像压缩方法,
其中,所述头部信息产生步骤产生用于包括多个帧的组的头部部分;
并且其中,所述头部信息添加步骤是用于将所述空间变换参数添加到对应组的头部部分中的步骤。
22、一种运动图像解码方法,该运动图像解码方法可应用于基本运动图像解码方法,该基本运动图像解码方法包括:逆空间频率变换步骤,用于利用逆空间频率变换对来自压缩运动图像数据的变换系数进行变换,从而获得像素块的图像空间数据,该运动图像解码方法用于对通过根据权利要求17的运动图像压缩方法进行了编码的运动图像数据进行解码,所述运动图像解压缩方法包括:
头部信息读出步骤,用于从所述头部部分读出至少所述空间变换参数;以及
逆空间变换步骤,用于根据在所述头部信息读出步骤中读出的所述空间变换参数,对由所述逆空间频率变换步骤产生的像素块进行所述图像空间变换的逆变换。
23、一种运动图像解压缩方法,该运动图像解压缩方法可应用于基本运动图像解码方法,该基本运动图像解码方法包括逆空间频率变换步骤,用于利用逆空间频率变换对来自压缩运动图像数据的变换系数进行变换,从而获得差分像素块的图像空间数据,该运动图像解压缩方法用于对通过根据权利要求19的运动图像压缩方法进行了编码的运动图像数据进行解码,所述运动图像解压缩方法包括:
头部信息读出步骤,用于从所述头部部分读出至少所述空间变换参数;以及
逆空间变换步骤,用于根据在所述头部信息读出步骤中读出的所述空间变换参数,对由所述逆空间频率变换步骤产生的差分像素块进行所述图像空间变换的逆变换。
24、一种图像编码程序,该图像编码程序由计算机执行以对图像数据或差分图像数据进行编码,所述图像编码程序包括:
空间变换步骤,用于在图像空间内对所述图像数据或差分图像数据进行可逆空间变换;
空间频率变换步骤,用于将图像数据或差分图像数据从图像空间变换至频率空间,从而获得变换系数;
编码步骤,用于将所述变换系数编码为编码数据;
头部信息产生步骤,用于向所述编码数据整体地添加进行所述空间变换的逆变换所需的信息作为头部信息。
25、一种图像编码装置,该图像编码装置用于对图像数据或差分图像数据进行编码,该图像编码装置包括:
空间变换单元,用于在图像空间内对图像数据或差分图像数据进行可逆图像空间变换;
空间频率变换单元,用于对图像数据或差分图像数据进行空间频率变换,从而获得变换系数;
头部信息产生器,用于将与图像数据或差分图像数据相关的信息添加到基于所述变换系数而获得的数据中;以及
头部信息添加单元,用于将进行所述图像空间变换的逆变换所需的空间变换参数添加到所述头部部分中。
26、一种图像解码装置,该图像解码装置用于对通过根据权利要求25的图像编码装置进行了编码的编码数据进行解码,所述图像解码装置包括:
逆空间频率变换单元,用于在图像空间中对根据所述编码数据产生的变换系数进行逆空间频率变换,从而获得像素数据,
头部解释器,用于从所述头部部分读出至少所述空间变换参数;以及
逆空间变换单元,用于根据由所述头部解释器读出的所述空间变换参数对图像中的像素数据进行所述图像空间变换的逆变换,从而获得图像数据或差分图像数据。
27、一种图像编码/解码系统,该图像编码/解码系统包括:
根据权利要求25所述的图像编码装置;以及
根据权利要求26所述的图像解码装置。
28、一种扩展图像编码/解码系统,其包括:
第一图像编码/解码系统,该第一图像编码/解码系统包括:
第一图像编码装置,该第一图像编码装置包括:划分单元,用于将原始图像数据划分为多个像素块;空间频率变换单元,用于对由所述划分单元产生的所述像素块进行空间频率变换,从而获得变换系数;量化器,用于对来自所述空间频率变换单元的所述变换系数进行量化,从而产生变换系数的整数值;熵编码器,用于对变换系数的这些整数值进行熵编码;以及压缩图像文件产生装置,用于通过将与所述图像数据相关的信息添加到基于所述熵编码器的结果而获得的数据中作为头部部分,来产生第一压缩图像文件;
第一图像解码装置,该第一图像解码装置包括:头部解释器,用于从所述第一压缩图像文件中读出所述头部部分;熵解码器,用于通过对从所述第一压缩图像文件获得的码进行熵解码来获得变换系数的整数值;逆量化器,用于对所述熵解码器产生的变换系数的整数值进行去量化,从而获得变换系数;逆空间频率变换单元,用于通过对来自所述逆量化器的变换系数进行逆空间频率变换,来获得以像素块为单位的像素数据;以及再现装置,用于通过将所述像素块组合到所述原始图像数据中来产生原始图像数据;
第二图像编码装置,该第二图像编码装置用于产生第二压缩图像文件,该第二图像编码装置是通过向所述第一图像编码装置添加以下单元而获得的:空间变换单元,用于在进行空间频率变换之前对所述像素块进行可通过空间变换参数识别的可逆图像空间变换;以及头部信息添加单元,用于将所述空间变换参数添加到所述头部部分中;以及
第二图像解码单元,用于从第二压缩图像文件获取原始图像数据,该第二图像解码单元是通过向所述第一图像解码装置添加以下单元而获得的:附加头部信息读取器,用于从所述头部部分读出所述空间变换参数;以及逆空间变换单元,用于根据由所述附加头部信息读取器读出的空间变换参数进行所述图像空间变换的逆变换;
其中,在要处理的压缩图像文件为第二压缩图像文件的情况下,所述第一图像解码装置能够通过忽略在所述第二压缩图像文件的头部部分中描述的空间变换参数来恢复与所述原始图像数据不同的数据;
并且其中,在所述附加头部信息读取器不能从所述头部部分读出所述空间变换参数的情况下,所述第二图像解码装置通过只进行由第一图像解码装置部分进行的解码而不进行所述逆空间变换单元进行的处理,来恢复原始图像数据。
29、根据权利要求28所述的扩展图像编码/解码系统,该扩展图像编码/解码系统还包括:
图像采集装置,其具有所述第二图像编码装置;以及
计算机,其具有所述第一图像解码装置。
30、根据权利要求1所述的图像编码方法,
其中,所述空间变换步骤为用于进行可以通过至少一个调节参数进行调节的图像空间变换的步骤;
并且其中,所述头部信息添加步骤为用于将所述调节参数添加到所述头部部分中的步骤。
31、根据权利要求30所述的图像编码方法,
其中,所述基本编码方法还包括用于将图像数据或差分图像数据划分为多个像素块的划分步骤,并且所述空间频率变换步骤为用于对在所述划分步骤中划分的所述像素块进行空间频率变换的步骤;
并且其中,所述空间变换步骤为用于在进行所述空间频率变换步骤之前对所述像素块中的至少一个像素块进行可逆图像空间变换的步骤。
32、根据权利要求31所述的图像编码方法,
其中,在所述图像变换步骤中,将所述像素块表示为矩阵M,并且对该矩阵M进行使用可逆矩阵A的被表示为
M→AM的可逆矩阵运算以及使用可逆矩阵B的被表示为
M→MB的可逆矩阵运算中的至少一种可逆矩阵运算。
33、根据权利要求32所述的图像解码方法,
其中,所述矩阵A和矩阵B为用于实现对由所述矩阵M表示的像素块的空间低通滤波的矩阵。
34、根据权利要求33所述的图像编码方法,
其中,所述调节参数包括用于调节所述空间低通滤波的强度的滤波调节参数。
35、根据权利要求34所述的图像编码方法,
其中,所述基本编码方法还包括量化步骤,用于利用特定的量化宽度对在所述空间频率变换中获得的变换系数进行量化;
其中,所述头部产生步骤为用于将与所述图像数据相关的信息添加到基于所述量化步骤的结果而获得的数据中作为头部部分的步骤;
并且其中,根据所述滤波调节参数来调节所述量化宽度。
36、根据权利要求30所述的图像编码方法,
其中,在所述空间频率变换步骤中获得的所述变换系数包括与像素块内的图像数据的平均值成比例的DC系数,并且所述空间变换步骤使所述DC系数保持不变。
37、一种图像编码方法,该图像编码方法用于选择性地执行以下方法:
根据权利要求6所述的图像编码方法;以及
根据权利要求33所述的图像编码方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004192110 | 2004-06-29 | ||
JP192110/2004 | 2004-06-29 | ||
JP275753/2004 | 2004-09-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1977540A true CN1977540A (zh) | 2007-06-06 |
CN100571389C CN100571389C (zh) | 2009-12-16 |
Family
ID=38126387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200580022133 Expired - Fee Related CN100571389C (zh) | 2004-06-29 | 2005-06-27 | 用于图像编码/解码和扩展图像压缩解压缩的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100571389C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102238381A (zh) * | 2010-04-29 | 2011-11-09 | 晨星软件研发(深圳)有限公司 | 加速游程长度编码的影像编码方法与影像编码装置 |
CN107592536A (zh) * | 2012-02-29 | 2018-01-16 | 索尼公司 | 图像处理装置和方法 |
CN111052742A (zh) * | 2017-09-30 | 2020-04-21 | 深圳市大疆创新科技有限公司 | 图像处理 |
CN111886871A (zh) * | 2018-03-28 | 2020-11-03 | 索尼公司 | 图像处理装置和图像处理方法 |
US10963429B2 (en) | 2017-10-11 | 2021-03-30 | Lognovations Holdings, Llc | Method and system for content agnostic file indexing |
US11138152B2 (en) | 2017-10-11 | 2021-10-05 | Lognovations Holdings, Llc | Method and system for content agnostic file indexing |
CN113557725A (zh) * | 2019-03-11 | 2021-10-26 | 佳能株式会社 | 图像解码设备、图像解码方法和程序 |
CN114787720A (zh) * | 2019-12-13 | 2022-07-22 | 丰达西翁必卡姆公司 | 用于对数字全息图进行编码的方法、用于对数字全息图的组进行编码的方法和相关联的编码设备 |
CN118055256A (zh) * | 2024-04-15 | 2024-05-17 | 浙江芯劢微电子股份有限公司 | 一种基于dct变换的图像压缩编码方法和系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105874718A (zh) * | 2014-09-03 | 2016-08-17 | 奥林巴斯株式会社 | 解码装置、摄像系统、解码方法、编解码方法以及解码程序 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6064450A (en) * | 1995-12-06 | 2000-05-16 | Thomson Licensing S.A. | Digital video preprocessor horizontal and vertical filters |
AU710565B2 (en) * | 1996-01-22 | 1999-09-23 | Matsushita Electric Industrial Co., Ltd. | Digital image encoding and decoding method and digital image encoding and decoding device using the same |
US6052490A (en) * | 1997-02-14 | 2000-04-18 | At&T Corp. | Video coder employing pixel transposition |
AUPO521897A0 (en) * | 1997-02-20 | 1997-04-11 | Telstra R & D Management Pty Ltd | Invisible digital watermarks |
JP2000333171A (ja) * | 1999-05-12 | 2000-11-30 | Neucore Technol Inc | 画像処理装置 |
US6460061B1 (en) * | 1999-10-29 | 2002-10-01 | Xilinx Inc. | 2-dimensional discrete cosine transform using a polynomial transform |
GB2378072B (en) * | 2001-07-24 | 2003-10-15 | Motorola Inc | Image and video coding arrangement and method |
-
2005
- 2005-06-27 CN CN 200580022133 patent/CN100571389C/zh not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102238381A (zh) * | 2010-04-29 | 2011-11-09 | 晨星软件研发(深圳)有限公司 | 加速游程长度编码的影像编码方法与影像编码装置 |
CN102238381B (zh) * | 2010-04-29 | 2013-06-19 | 晨星软件研发(深圳)有限公司 | 加速游程长度编码的影像编码方法与影像编码装置 |
CN107592536A (zh) * | 2012-02-29 | 2018-01-16 | 索尼公司 | 图像处理装置和方法 |
CN107592536B (zh) * | 2012-02-29 | 2020-02-11 | 索尼公司 | 图像处理装置和方法 |
CN111052742A (zh) * | 2017-09-30 | 2020-04-21 | 深圳市大疆创新科技有限公司 | 图像处理 |
US10963429B2 (en) | 2017-10-11 | 2021-03-30 | Lognovations Holdings, Llc | Method and system for content agnostic file indexing |
US11138152B2 (en) | 2017-10-11 | 2021-10-05 | Lognovations Holdings, Llc | Method and system for content agnostic file indexing |
CN111886871A (zh) * | 2018-03-28 | 2020-11-03 | 索尼公司 | 图像处理装置和图像处理方法 |
CN113557725A (zh) * | 2019-03-11 | 2021-10-26 | 佳能株式会社 | 图像解码设备、图像解码方法和程序 |
CN113557725B (zh) * | 2019-03-11 | 2024-04-02 | 佳能株式会社 | 图像解码设备、图像解码方法和存储介质 |
US11962806B2 (en) | 2019-03-11 | 2024-04-16 | Canon Kabushiki Kaisha | Image decoding apparatus, image decoding method, and storage medium |
CN114787720A (zh) * | 2019-12-13 | 2022-07-22 | 丰达西翁必卡姆公司 | 用于对数字全息图进行编码的方法、用于对数字全息图的组进行编码的方法和相关联的编码设备 |
CN118055256A (zh) * | 2024-04-15 | 2024-05-17 | 浙江芯劢微电子股份有限公司 | 一种基于dct变换的图像压缩编码方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100571389C (zh) | 2009-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1977540A (zh) | 用于图像编码/解码和扩展图像压缩解压缩的方法和设备 | |
CN1178458C (zh) | 图象解码装置和图象解码方法 | |
CN1545813A (zh) | 图象编码装置、图象译码装置、图象编码方法、图象译码方法、图象编码程序和图象译码程序 | |
CN1145360C (zh) | 利用与像素块分类信息对应的映射系数的图像编码和解码 | |
CN1315331C (zh) | 图像信号转换方法和设备以及图像提供系统 | |
CN1272967C (zh) | 视频编码方法和装置 | |
CN1294540C (zh) | 编解码坐标内插符关键字数据和关键值数据的装置 | |
CN1926576A (zh) | 用于数字编码3d立体视频图像的方法和系统 | |
CN1168322C (zh) | 图象编码和解码方法 | |
CN1857001A (zh) | 混合视频压缩方法 | |
CN1606351A (zh) | 用于数字视频加水印的色彩选择方案 | |
CN1161962C (zh) | 图象拾取装置 | |
CN1268135C (zh) | 编码方法、编码装置和记录媒体、以及解码方法、解码装置和记录媒体 | |
CN1379366A (zh) | 图像处理装置和方法 | |
CN1286575A (zh) | 噪声检测方法、噪声检测装置及图象编码装置 | |
CN1216199A (zh) | 数字图象填补方法、图象处理装置及数据记录媒体 | |
CN1645937A (zh) | 给数字视频加水印的方案 | |
CN1178461C (zh) | 图像编码装置、图像译码装置、传真装置 | |
CN1204753C (zh) | 基于相邻像素预测的帧内预测方法 | |
CN1957616A (zh) | 动图像编码方法和动图像解码方法 | |
CN1744720A (zh) | 可变长度解码装置 | |
CN1229758C (zh) | 正交变换图像的分辨率变换装置和方法 | |
CN1941910A (zh) | 编码坐标内插符、解码比特数据流的装置及方法 | |
CN1170437C (zh) | 图像信号混洗装置和方法 | |
CN1612132A (zh) | 视线诱导度算出系统、程序及方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091216 Termination date: 20190627 |