解码装置、逆量化方法及其程序的制作方法

文档序号:7621389阅读:93来源:国知局
专利名称:解码装置、逆量化方法及其程序的制作方法
技术领域
本发明涉及用于对通过编码处理生成的码数据进行解码的解码装置。更具体地,本发明涉及一种解码装置,该解码装置用于对通过编码处理生成的、包括量化数据在内的码数据进行逆量化,以对该码数据进行解码。
背景技术
例如,日本特开平5-14735A公开了一种仅对DCT(离散余弦变换)块之间的边界应用低通滤波器的方法。
此外,日本特开平5-316361A公开了一种方法,该方法确定图像中是否存在边缘,并根据确定结果来选择要采用的滤波器。
此外,日本特开平7-336684A公开了一种方法,其中当确定区域中的失真明显时,向DCT系数添加噪声。
另外,ITU-T建议T.81公开了JPEG标准。
此外,ITU-T建议T.800公开了JPEG2000标准。
此外,“Pyramid based texture analysis/synthesis”(D.Heegerand J.Bergen,Computer Graphics,pp.229-238,SIGGRAPH 95,1995)公开了一种方法,该方法通过调整变换系数的频率分布来生成具有相似纹理的图像。

发明内容
本发明提供了一种用于更有效地对码数据进行解码的解码装置。
根据本发明的一个实施例,解码装置包括分布生成部分和校正部分。该分布生成部分生成量化指数值的频率分布。校正部分根据由该分布生成部分生成的量化指数值的频率分布,对与这些量化指数值相对应的逆量化值进行校正。


下面将根据附图来说明本发明的实施例,附图中图1A是表示诸如JPEG和JPEG2000的变换编码方法的编码处理的示意性框图;图1B是表示诸如JPEG和JPEG2000的变换编码方法的解码处理的示意性框图;图2A表示该变换编码方法中的量化处理;图2B表示该变换编码方法中的量化处理;图2C表示该变换编码方法中的量化处理;图3A表示变换系数的分布;图3B表示变换系数的分布;图3C表示变换系数的分布;图3D表示变换系数的分布;图4表示应用了根据本发明实施例的解码方法的解码装置2的硬件构造,具有作为中心的控制器20;图5表示解码程序5的功能构造,该解码程序5由图4所示的控制器20来执行,并执行根据本发明实施例的逆量化方法;图6表示折线近似;图7A表示折线近似与直方图之间的面积差;图7B表示折线近似与直方图之间的面积差;图8A表示第一变型例中的折线近似;图8B表示第一变型例中的折线近似;图9A表示第二变型例中的折线近似;图9B表示第二变型例中的折线近似;图10表示第二解码程序52的构造;图11表示使用拉普拉斯分布(分布函数)的近似;以及图12表示第三解码程序54的构造。
具体实施例方式
首先,为了便于理解本发明的实施例,对本发明的背景和概况进行描述。
由于图像、音频等包含大量的数据,所以通常通过对其进行压缩,并随后进行存储或者发送经压缩的数据,来减少数据量。例如,在通过扫描仪将彩色文档或照片转换为电子格式,或者利用数码相机拍摄风景时生成的多值图像数据的量,可以通过使用诸如JPEG、JPEG2000等有损编码处理对数据进行压缩而显著减少。
然而,有损编码压缩处理导致编码失真的问题。具体地,JPEG处理存在以下问题在解码图像的DCT块边界处产生了块失真(编码失真)。
就此而言,下面首先描述有损编码处理的编码失真的生成机制。
图1A和1B表示诸如JPEG和JPEG2000的变换编码方法的示意性框图,其中图1A表示编码处理的概况,而图1B表示解码处理的概况。
图2A至2C表示该变换编码方法中的量化处理。图1A和1B中所示的变换系数T(c,i,j)和量化指数Q(c,i,j)是变量c、i和j的函数。变量c是表示变换系数的类型的指数。例如,在使用8×8块的DCT变换的情况下,变量c是表示64个(8×8)变换系数之一的值(1到64范围内的整数)。在小波变换的情况下,变量c是表示诸如1HH、1LH、1HL、2HH、2LH、2HL、…NLL的分量之一的值。另外,变换变量i和j是分别表示变换系数的位置的变量。例如,在DCT变换的情况下,位于上起第i行和左起第j列的块中的第c变换系数表示为T(c,i,j)。在小波变换的情况下,位于上起第i行和左起第j列的第c变换系数的数据表示为T(c,i,j)。
如图1A所示,在变换编码方法的编码处理中,对输入图像G进行诸如离散余弦变换(DCT)或小波变换的变换处理,以生成输入图像G的变换系数T。然后将该变换系数T量化为量化指数Q。将量化指数Q熵编码处理(无损编码处理)为压缩码F。
这里,量化指数是指用来区分量化值的信息。另外,量化值是指对特定范围(量化区间)内的一组数值进行退化而获得的值。例如,如图2A至2C所示,量化值是分别表示量化区间(A-2至A2)的离散值(在本示例中为-2×D(c)至2×D(c))。
如图1B所示,将通过这种方式生成的码数据(压缩码F)熵解码为量化指数Q。该量化指数Q与编码处理中的量化指数Q相当。
然后,将量化指数Q逆量化为变换系数R(即,逆量化值)。此后,对变换系数R进行逆变换,以生成解码图像H。
这里,逆量化值是指基于量化指数或者量化值生成的、用于对数据进行解码的值。例如,逆量化值是JPEG或JPEG2000的变换系数(与量化指数相关的变换系数)。
在上述处理中,在量化过程中出现了编码失真。通常,原始图像的变换系数T的精度高于量化指数Q的精度。因此,通过使用量化指数再生的变换系数R可能与原始变换系数T不同。这是导致编码失真的原因。
接下来,将参照图2A至2C来详细说明量化和逆量化。
使用为各个变换系数c准备的量化步长D(c)来执行量化。量化步长D(c)是变换系数c的类型的函数。例如,在JPEG的情况下,在量化过程中,根据以下公式来计算量化指数Q。
Q(c,i,j)=round(T(c,i,j)/D(c))其中“round()”是输出与输入值最接近的整数的函数。
另外,在逆量化过程中,根据以下公式(公式(1))来计算逆量化值R。
R(c,i,j)=Q(c,i,j)×D(c)在JPEG2000的情况下,根据以下公式(1)来计算量化指数Q和逆量化值R。
Q(c,i,j)=sign(T(c,i,j))×floor(|T(c,i,j)|/D(c))R(c,i,j)=(Q(c,i,j)+r)×D(c),如果Q(c,i,j)>0R(c,i,j)=(Q(c,i,j)-r)×D(c),如果Q(c,i,j)<0R(c,i,j)=0,如果Q(c,i,j)=0 (1)其中,“sign()”是输出正号或负号的函数,“floor()”是去除小数位的函数,而“||”是表示绝对值的符号。
另外,“r”是0到1范围内的数值,通常r=0.5。在JPEG2000中,可能存在不对低位进行编码的情况。这里,将通过示例的方式来说明其中对包括最低位在内的所有位进行编码的情况。另选地,在JPEG2000中,可以在解码过程中从码流获得在编码过程中未进行编码的位数。因此,通过将量化步长D向左偏移该位数,并将偏移后的量化步长设定为新的量化步长,JPEG2000可以具有与JPEG相同的操作。
在JPEG2000中,当适当地设定公式(1)所示的校正值r时,可以获得失真较少的解码图像。通过这种方式,在JPEG2000中,可以通过将逆量化值设定为逆量化范围内的中心值以外的值,来提高解码图像的质量。
类似地,在JPEG中,可以通过引入与JPEG2000相同的校正值r来提高解码图像的质量。具体地,使用以下公式(公式2)来计算逆量化值。
R(c,i,j)=(Q(c,i,j)+r-0.5)×D(c),如果Q(c,i,j)>0R(c,i,j)=(Q(c,i,j)-r+0.5)×D(c),如果Q(c,i,j)<0R(c,i,j)=0,如果Q(c,i,j)=0 (2)通过这种方式,通过使用适当的校正值r来计算逆量化值,可以执行具有较高再现性的解码处理。
接下来,将说明计算适当的校正值r的方法。
图2A至2C表示变换编码处理中的量化和逆量化。
如图2A至2C所示,变换系数T(原始数据)分布在X轴上,X轴为标有数值的直线。在JPEG中,将X轴分为区域A0、A1、…A-1、A-2、…(量化区间),如图2A所示。
如果变换系数T存在于量化区间A0中,则与该变换系数T相对应的量化指数Q变为0。类似地,如果变换系数T存在于量化区间Aq中,则与该变换系数T相对应的量化指数Q变为q。
此外,在JPEG2000中,如图2B所示,如果变换系数T存在于量化区间Aq中,则与该变换系数T相对应的量化指数Q变为q。
另外,在对逆量化指数进行逆量化后,采用图2B所示的逆量化值。
这里,为了简便,仅考虑其中量化指数Q变为q的量化区间Aq。假定变换系数T存在于量化区间Aq中。
在这种情况下,如图2C所示,逆量化区间Aq的范围是d1≤x<d2。此时,d1≤T<d2。
这里,考虑概率密度函数fT(x),其表示变换系数T出现在量化区间Aq中的概率。限定在d1≤x<d2范围内的概率密度函数fT(x)表示值x的概率。
另外,概率密度函数fT(x)被限定为当在量化区间的整个范围d1≤x<d2中对其进行积分时,积分值为1。
根据“Vector Quantization and Signal Compression,KluwerAcademic Publishers,pages 177-178”,当存在这种概率密度函数fT(x)时,使量化之前的变换系数T(原始数据)与逆量化值R之间的方差最小的逆量化值是使用以下公式(公式3)计算的逆量化值R。
R=∫d1d2xfT(x)dx---(3)]]>当将通过公式(3)计算出的值R代入公式(1)或(2)中时,可以确定使该方差最小的校正值r。
也就是,必须估计原始变换系数T的概率密度函数。
然后,根据本实施例的解码装置2根据逆量化指数Q(c,i,j)来估计变换系数T(c,i,j)的概率密度,并根据所估计的概率密度来确定校正值r。
图3A至3D表示变换系数T的频率分布。
通常,考虑DCT系数或者小波变换系数表现为拉普拉斯分布或者广义高斯分布,如图3A所示。当对表现为这种分布的概率变量进行逆量化时,对逆量化范围进行分割,如图3A所示。在这种情况下,各个逆量化范围内的概率密度具有如图3B、3C和3D中所示的形式。
解码装置2准备量化指数Q(c,i,j)的频率分布(例如,直方图),并使用所准备的直方图来估计变换系数T的分布。
以下将说明本发明的示例性实施例。
在本实施例中,将通过示例的方式来说明对根据JPEG2000进行了编码的码数据进行的解码。此外,本实施例中所说明的解码处理在总体构造上与ITU-T建议T.800中所说明的解码处理相似,但是区别在于,本实施例的解码处理采用了根据本发明实施例的逆量化处理。
首先,说明根据本实施例的解码装置2的硬件构造。
图4表示应用了根据本发明的解码方法的解码装置2的硬件构造,具有作为中心的控制器20。
如图4所示,解码装置2包括控制器20,其包括CPU 202、存储器204等;通信单元22;存储单元24,例如HDD、CD等;以及用户界面单元(UI单元)26,其包括LCD显示装置或CRT显示装置、键盘、触摸板等。
解码装置2是通用计算机,其中安装有稍后说明的解码程序5。解码装置2通过通信单元22、存储单元24等获得码数据,并对所获得的码数据进行解码。
图5表示解码程序5的功能构造,该解码程序5由图4所示的控制器20来执行,并实现根据本发明该实施例的逆量化方法。
如图5所示,解码程序5包括熵编码部分40、逆量化部分50,以及逆变换部分60。
另外,逆量化部分50包括直方图获取部分500、概率密度函数估计部分510、校正值估计部分540以及逆量化值输出部分550。概率密度函数估计部分510包括折线近似部分520和函数估计部分530。
在解码程序5中,熵解码部分40对输入码数据进行熵解码,并将解码数据输出给逆量化部分50。
本实施例的熵解码部分40对输入码数据进行解码,以生成量化指数Q(c,i,j),并将所生成的量化指数Q(c,i,j)输出给逆量化部分50。
逆量化部分50根据从熵解码部分40输入的量化指数Q生成逆量化值R,并将所生成的逆量化值R输出给逆变换部分60。
逆变换部分60根据从逆量化部分50输入的逆量化值R来执行逆变换,以生成解码图像。
在逆量化部分50中,直方图获取部分500根据从熵解码部分40输入的量化指数Q(c,i,j)来获取用于量化指数值q的直方图h(q)。
更具体地,直方图获取部分500对于c,、i和j的所有组合测量所输入的量化指数Q(c,i,j)的数量(这成为量化指数值q),并将成为q的量化矩阵值的量化指数Q的数量设定为h(q)。
折线近似部分520对直方图获取部分500所获取的直方图(频率分布)进行折线近似,以准备折线函数。即,折线近似部分520使用直方图获取部分500所获取的直方图,对变换系数T的概率密度函数进行近似。在以下说明中,将考虑T(c,i,j)/D(c)的概率密度函数,即通过量化步长D(c)对变换系数T进行归一化而得到的值,而不是变换系数T本身的概率密度函数。
此外,例如,当f(x)=h(q)(其中,x≥1并且q≤x<q+1,或者x≤-1并且q-1<x≤q),以及f(x)=h(0)(其中,-1<x<1)时,折线近似部分520可以将T(c,i,j)/D(c)的概率密度函数近似为f(x)/∫f(x)。然而,这种近似导致阶跃的离散概率密度函数,从而认为与变换系数T的实际概率密度不同。因此,本示例中的折线近似部分520估计连续的概率密度函数,这种概率密度函数被认为更加合适。
本示例中的折线近似部分520从直方图h(q)中提取分别与三个连续量化指数值q相对应的直方图值h(q-1)、h(q)和h(q+1),并使用所提取的直方图值h(q-1)、h(q)和h(q+1)来准备折线函数。
更具体地,折线近似部分520提取与满足|q|>0条件的各个q相邻的直方图值h(q-1)、h(q)和h(q+1)。
这里,如下设定用于生成q的量化指数值的x=T(c,i,j)/D(c)的范围(即,量化指数q的量化范围)M1(q)≤x<M2(q),当q>0时M1(q)<x≤M2(q),当q<0时并且,将M1(q)和M2(q)之间的中点设为M(q)。
另外,在JPEG2000中,M(q)=0,M1(q)=-1,并且M2(q)=1,当q=0时M(q)=1.5×q,M1(q)=q,并且M2(q)=q+1,当q>0时M(q)=1.5×q,M1(q)=q-1,并且M2(q)=q,当q<0时折线近似部分520对由M1(q)至M2(q)范围内的直方图表示的概率密度函数进行折线近似。
具体地,考虑连接坐标(M(q-1),h(q-1))和坐标(M(q),h(q))的线段A,以及连接坐标(M(q+1),h(q+1))和坐标(M(q),h(q))的线段B。折线近似部分520通过使用与这些线段A和B相对应的函数来对M1(q)至M2(q)的范围进行折线近似。将该折线近似函数定义为Fq(x)。
根据这种近似,例如,当如图6所示,存在直方图值h(q-1)、h(q)和h(q+1)时,使用连接这些直方图值的线段来估计概率密度。
函数估计部分530根据由折线近似部分520准备的折线函数来生成与量化指数值q相对应的部分概率密度函数fq(x)。
更具体地,函数估计部分530将折线近似部分520所生成的折线近似函数Fq(x)变换为部分概率密度函数fq(x)。
这里,如下来定义用于量化指数值q的部分概率密度函数fq(x)将线段A和线段B所限定的概率密度函数Fq(x)限定在M1(q)至M2(q)的范围内。这里,当可以将M1(q)至M2(q)的范围变换为0到1的范围时,可以使0到1的范围对应于以上公式(1)或(2)中的值r。从M1(q)至M2(q)的范围到0至1的范围的变换给出了部分概率密度函数fq(x)。另外,与公式(1)或(2)的对应关系使得q值为正值时与q值为负值时的对应关系相反。即,如下定义部分概率密度函数fq(x)当q>0时,取对应关系为M1→0和M2→1。
fq(x)=Fq{(M2(q)-M1(q))x+M1(q)}。
当q<0时,取对应关系为M1→1和M2→0。
fq(x)=Fq{(M1(q)-M2(q))x+M2(q)}。
函数估计部分530根据以上变换公式获得部分概率密度函数fq(x)。
校正值估计部分540使用由函数估计部分530生成的部分概率密度函数fq(x)来计算与各个量化指数(各个量化区间)相对应的校正值r。
本示例中的校正值估计部分540根据以下公式(公式4)进行计算,来计算校正值r。
r=∫01(Σqfq(x))dx∫01(Σqfq(x))dx---(4)]]>即,校正值估计部分540使用通过对x为0到1范围内的所有部分概率密度函数fq(x)求和并对和值进行归一化而获得的概率密度函数,计算x的期望值,并将所计算的期望值设定为校正值r。
逆量化值输出部分550使用由校正值估计部分540计算的校正值r来计算待应用的逆量化值,并将计算出的逆量化值输出给逆变换部分60。本示例中的逆量化值输出部分550将校正值r代入公式(1)或(2)中,来计算待应用的逆量化值。
如上所述,本实施例的解码装置2通过对量化指数的直方图执行折线近似来生成部分概率密度函数fq(x),并使用所生成的部分概率密度函数fq(x)来计算校正值r。
在以上实施例中,通过直接连接直方图值来估计变换系数的概率密度函数。这种估计具有简单易用的优点,但是也存在以下问题。
首先,假定好的估计系统满足以下条件使用各个量化范围内采取阶跃形式的直方图值进行了近似的概率密度函数的面积等于在各个量化范围内进行估计之后的概率密度函数的面积。
要实现的改进如下(1)在以上实施例的折线近似中,由于增加了图7A所示的阴影部分的面积,所以概率密度函数近似的面积变得大于原始阶跃形式的面积。为避免这个问题,当x=M(q)时Fq(x)的值可以小于h(q)。然而,如果相邻的直方图值h(q-1)和h(q)之间的差很大而h(q)的值很小,则校正具有局限性。
(2)在相邻的直方图值h(q-1)、h(q)和h(q+1)不单调增大或减小的情况下,由于减去了图7B所示的阴影部分的面积,所以概率密度函数近似的面积变得小于原始阶跃形式的面积。相反,当直方图值h(q-1)、h(q)和h(q+1)具有山谷形状时,概率密度函数近似的面积变得较大。
因此,在第一变型例中,为了克服这个问题,如下来执行不同的折线近似,尽管其在某种程度上比以上实施例的折线近似更加复杂。
该变型例中的解码程序5的构造基本上与以上实施例(图5)相似,不同之处在于折线近似部分520的操作。
以下将说明折线近似部分520的操作。
在该变型例中,折线近似部分520执行以下两个操作。
(第一操作)使量化范围的边界M1(q)和M2(q)中的估计值Fq(M1(q))和Fq(M2(q))为可校正的值。这里,该变型例中的校正是指对阶跃的概率密度函数的面积进行校正,使其尽可能在量化范围内变得基本上与估计之后的概率密度函数的面积相等。
(第二操作)对量化范围内的任意点x处的估计值Fq(x)进行限定,使其变化尽可能小。
以下将更详细地说明折线近似。
(1)首先,如图8A所示,折线近似部分520将量化范围的边界M1(q)处的估计值Fq(M1(q))定义为下述的点,该点将h(q)和h(q-1)之间的区间(即,线段AB)内分为比率h(q)∶h(q-1)。
具体地,折线近似部分520根据以下公式来计算估计值Fq(M1(q))。
Fq(M1(q))=2×h(q)×h(q-1)/(h(q)+h(q-1))类似地,折线近似部分520根据以下公式来计算量化范围的边界M2(q)处的估计值Fq(M2(q))(即,将h(q)和h(q+1)之间的区间内分为比率h(q)∶h(q+1)的点)。
Fq(M2(q))=2×h(q)×h(q+1)/(h(q)+h(q+1))通过这种计算,可以建立以下关系。
F(q(M1(q))-h(q)<h(q),当h(q-1)>h(q)时,或者F(q(M2(q))-h(q)<h(q),当h(q+1)>h(q)时因此,由于可以将Fq(M(q))的值设定为很小,所以可以充分校正图7A和7B中所示的阴影部分。
(2)接下来,折线近似部分520将量化范围M1(q)至M2(q)分为四个区域。换句话说,选取将量化范围M1(q)至M2(q)内分为比例1∶3的点(即,图8B所示的点C)作为M3(q),而选取将量化范围M1(q)至M2(q)内分为比例3∶1的点(即,图8B所示的点D)作为M4(q)。
M3(q)=M1(q)+(1/4)×(M2(q)-M1(q))M4(q)=M1(q)+(3/4)×(M2(q)-M1(q))此处,Fq(M3(q))=h(q)并且Fq(M4(q))=h(q)(3)接下来,当h(q-1)、h(q)和h(q+1)不单调增大或减小时,折线近似部分520使用上述四个点对直方图值h(q-1)、h(q)和h(q+1)进行折线近似。即,如图8B所示,如果假定点A=坐标(M1(q),2×h(q)×h(q-1)/(h(q)+h(q-1)))点B=坐标(M2(q),2×h(q)×h(q+1)/(h(q)+h(q+1)))点C=坐标(M3(q),h(q))点D=坐标(M4(q),h(q))以及点E=直线AC和直线BD的交叉点,由线段AE和线段BE表示折线近似。
当h(q-1)、h(q)和h(q+1)单调增大或减小时,假定点F的坐标为(M(q),h(q)),并且由线段AF和线段BF表示折线近似。
即,当h(q-1)、h(q)和h(q+1)单调增大或减小时,由于直线AC和直线BD在量化范围内并非总是有交叉点,所以需要折线近似部分520来分割量化范围。
通过上述折线近似,在量化范围内,阶跃的概率密度函数的面积可以变得基本上与估计后的概率密度函数的面积相等。
第一变型例对于获得直线AC和直线BD的交叉点具有很大的负担。另外,还存在确定直方图值h(q-1)、h(q)和h(q+1)是否单调增大或减小的负担。
因此,在第二变型例中,使用x=M(q)时直线AC的值的平均值以及x=M(q)时直线BD的值的平均值来进行折线近似,而不需要获得交叉点。
即,点A=坐标(M1(q),2×h(q)×h(q-1)/(h(q)+h(q-1)))点B=坐标(M2(q),2×h(q)×h(q+1)/(h(q)+h(q+1)))点G=坐标(M(q),h(q)+{h(q)-2×h(q)×h(q-1)/(h(q)+h(q-1))})即,点G取坐标(M(q),2×h(q)2/(h(q)+h(q-1))),点H取坐标(M(q),2×h(q)2/(h(q)+h(q+1))),而点I取线段GH的中点。
该点I的坐标变为(M(q),h(q)2{1/(h(q)+h(q-1))+1/(h(q)+h(q+1))})。
利用这些点的定义,本变型例中的折线近似部分520使用与线段AI和线段BI相对应的函数来执行折线近似。
图9A表示直方图h(q-1)、h(q)和h(q+1)具有山峰形状的情况,而图9B表示直方图h(q-1)、h(q)和h(q+1)单调增大的情况。
在这两种情况下,折线近似部分520都如下定义每个点,并使用与线段AI和线段BI相对应的函数来执行折线近似。
点A=坐标(M1(q),2×h(q)×h(q-1)/(h(q)+h(q-1)))点B=坐标(M2(q),2×h(q)×h(q+1)/(h(q)+h(q+1)))点I=坐标(M(q),h(q)2{1/(h(q)+h(q-1))+1/(h(q)+h(q+1))})此外,可以将该变型例分为多种情况。
具体地,当直方图h(q-1)、h(q)和h(q+1)不单调增大或减小时,折线近似部分520可以在点G和H之间引入中点I,如图9A所示,并使用与线段AI和线段BI相对应的函数来执行折线近似。另外,当直方图h(q-1)、h(q)和h(q+1)单调增大或减小时,折线近似部分520可以引入点F(即,坐标(M(q),h(q)))并使用与线段AF和线段BF相对应的函数来执行折线近似。
此外,尽管在该变型例中,如图9A和9B所示,通过使用点G和H之间的中点I使得概率密度函数连续,但是概率密度函数并非必须连续。
例如,折线近似部分520可以使用与图9A和9B所示的线段AG和线段GH相对应的函数来执行折线近似。即,如下定义函数fq(x)
fq(x)=线段AG(其中,M1(q)≤x<M(q))fq(x)=线段BH(其中,M(q)≤x<M2(q))此外,当直方图h(q-1)、h(q)和h(q+1)不单调增大或减小时,折线近似部分520可以使用以上函数fq(x)来执行离散折线近似,即fq(x)=线段AG(其中,M1(q)≤x<M(q))fq(x)=线段BH(其中,M(q)≤x<M2(q))另外,当直方图h(q-1)、h(q)和h(q+1)单调增大或减小时,折线近似部分520可以将点F设定为坐标(M(q),h(q)),并使用与线段AF和线段BF相对应的函数来执行折线近似。
尽管在以上实施例中对概率密度函数进行了折线近似,但是在第三变型例中,对概率密度函数进行曲线近似。
图10表示第三变型例中的解码程序52。在该图中,使用相同的标号来表示与图5基本相同的要素。
如图10所示,本变型例的解码程序52包括参数估计部分560,而不是图5所示的解码程序5的折线近似部分520。
参数估计部分560根据由直方图获取部分500获取的直方图h(q)对变换系数T的分布执行曲线近似。
本示例中的参数估计部分560根据量化指数的直方全息图(histogram hologram)将变换系数T的分布估计为拉普拉斯分布。
首先,拉普拉斯分布可以表示为以下公式。
L(x)=12σexp(-2|x|σ)---(5)]]>为了估计拉普拉斯分布的形状,参数估计部分560可以估计公式(5)中的σ。
首先,参数估计部分560使用以下公式(公式(6))根据直方图h(q)来计算概率密度函数fhc(x)。
fhc(x)=hc(q)Σqhc(q)---(6)]]>
在这种情况下,q=0对应于-1<x<1。另外,q=1,2,…对应于q≤x<q+1,而q=-1,-2,…对应于q-1≤x<q。
此时,如图11所示,获得了使拉普拉斯函数L(x)与概率密度函数fhc(x)之间的差别尽可能小的σ。
将以下误差函数Err(σ)定义为用于估计“使该差尽可能小”的函数。
Err(σ)=Σq|∫(q-0.5)×D(c)(q+0.5)×D(c){L(x)-fhc(x)}dx|---(7)]]>该误差函数Err(σ)是用于对为量化指数值q获得的概率密度函数的面积差的绝对值求和的函数。由于误差函数Err(σ)变得较小,所以可以认为fhc(x)接近于L(x)。参数估计部分560通过数字计算获得使Err(σ)最小的σ。
另选地,参数估计部分560可以准备多个σ值,并采用所准备的σ值中使Err(σ)最小的σ。
另选地,参数估计部分560可以通过对各个变换系数类型c计算量化指数Q(c,i,j)的标准偏差,来简单地获得σ。
在本变型例中通过示例的方式说明了对拉普拉斯分布的使用,但本发明并不限于此。可以采用任意函数,只要向其输入参数时可以确定其形状即可。如果参数的数量为N,则可以执行用于使多维最小的数值计算。
例如,参数估计部分560可以使用以下广义高斯分布GG(x)来对直方图进行近似。
GG(x)=β2αΓ(1β)exp{-(|x|α)β}---(8)]]>以上公式中的Γ()是伽马函数(gamma function)。这种分布的形状由参数α和β确定。例如,参数估计部分560可以通过将误差函数Err应用于伽马函数GG(x)(即,通过使用伽马函数GG(x)来替换公式(7)中的拉普拉斯函数L(x)),来获得使误差函数Err最小的参数α和β。
现将说明函数估计部分530。
这里,假定由参数估计部分560计算的概率密度函数为LL(x)。
函数估计部分530可以根据以下公式,假定Fq(x)=LL(x)来获得部分概率密度函数fq()。
当q>0时,取对应关系为M1→0并且M2→1。
fq(x)=Fq(M2(q)-M1(q))x+M1(q)当q<0时,取对应关系为M1→1并且M2→0。
fq(x)=Fq(M1(q)-M2(q))x+M2(q)。
在第三变型例中,如果使用预先假定的参数化分布函数来估计参数,则可以获得由曲线形成的更加精确的估计概率密度函数。然而,问题在于,预先假定的参数化分布函数并不总是等于变换系数的实际分布。例如,尽管拉普拉斯分布或者广义高斯分布对于|x|单调减小,但是并不能得出实际分布也单调减小的结论。
因此,在第四变型例中,同时使用了折线近似和使用分布函数的曲线近似。更具体地,对具有相对小的|q|值并具有多个信号(即,具有高的量化指数出现频率)的区域应用相对参数化分布函数近似。另一方面,对具有相对大的|q|值的区域应用折线近似,这是因为参数化分布函数近似可能不适于应用在具有相对大|q|值的区域,并且概率密度的变化在具有相对大的|q|值的区域中相对较小。
图12表示第四变型例中的解码程序54。在该图中,使用相同的标号来表示与图5或10基本相同的要素。
如图12所示,本变型例的解码程序54除了图5所示的解码程序5的构造以外,还包括参数估计部分560。
折线近似部分520准备阈值TH1,该阈值为正整数。通常,TH1=1或TH1=2,等等。
这里,假定由参数估计部分560估计的概率密度函数为LL(x)。
当|q|>TH1时,折线近似部分520通过执行以上实施例或变型例中所述的折线近似来获得Fq(x)。
此外,当|q|=TH1时,折线近似部分520定义左点和右点。即,当|q|=TH1时,折线近似部分520取左点的值Fq(M1(q))作为由参数估计部分560获得的函数的代入值LL(M1(q)),并取右点的值Fq(M2(q))作为由参数估计部分560获得的函数的代入值LL(M2(q))。
如以上实施例或变型例所示,折线近似部分520使用连接三个点(或四个点)的线段来执行折线近似。对于以上说明中未说明的其他点,折线近似部分520取与以上实施例或以上变型例相同的点,来执行折线近似。
函数估计部分530在|q|≥TH1时根据与以上实施例相同的方法将由折线近似部分520获得的Fq(x)变换为部分分布密度函数fq(),而在|q|<TH1时根据与第三变型例相同的方法来获得部分分布密度函数fq()。
在以上实施例和变型例中已经说明了获得值r的情况,该值r对于变换系数类型c和量化指数值q是公共的。另选地,可以对不同的量化指数q获得不同的值r。例如,如果r是q的函数,则可以将r表示为r(q)。
在这种情况下,校正值估计部分540可以根据以下公式获得用于各个量化指数值q的校正值r(q)。
r(q)=∫01xfq(x)dx∫01fq(x)dx---(9)]]>此时,逆量化值输出部分550使用与量化指数值q相对应的校正值r(q)来计算逆量化值。
类似地,对于不同的变换系数类型c可以获得不同的值。例如,如果r是c的函数,则r可以表示为r(c)。
在这种情况下,直方图获取部分500计算各个变换系数类型c的直方图值h(q),并将其视为hc(q)。
另外,通过hc(q)来替换以上实施例中的所有h(q),然后可以对各个变换系数类型c执行所有处理。
结果,也对各个变换系数类型c计算了部分概率密度函数fq(x)。假定与变换系数类型c相对应的部分概率密度函数为fcq(x)。
在这种情况下,校正值估计部分540获得用于各个变换系数类型c的r(c)。
此时,逆量化值输出部分550使用与变换系数类型c相对应的校正值r(c)来计算逆量化值。
类似地,对于变换系数类型c和量化指数值q的不同组合,可以获得不同的值r。例如,如果校正值r是变换系数类型c和量化指数值q的函数,则r可以表示为函数r(c,q)。
在这种情况下,直方图获取部分500可以为各个变换系数类型c计算直方图值h(q),并将其视为hc(q)。另外,通过hc(q)来替换所有h(q),然后可以对各个变换系数类型c执行所有处理。
此时,逆量化值输出部分550使用与量化指数值q和变换系数类型c的组合相对应的r(c,Q(c,i,j))来计算逆量化值。
此外,在以上实施例中,当测量直方图时,不考虑变换系数类型c来测量频率,并最终对部分概率密度函数求和,以估计值r。
然而,解码程序5可以使用对于变换系数类型c或者量化指数值q的估计值r,通过权重平均值来首先获得公共值r。
这里,假定分别具有变换系数类型c和量化指数q的信号的数量为p(c,q),则假定分别具有量化指数q的信号的数量为p(q),而分别具有变换系数类型c的信号的数量为p(c)。
在这种情况下,解码程序5使用以下公式来计算r、r(q)或者r(c)。
r=ΣcΣq≠0{p(c,q)×r(c,q)}ΣcΣq≠0p(c,q)]]>r=Σq≠0[{Σcp(c,q)}×r(q)]ΣcΣq≠0p(c,q)]]>r=Σc[{Σq≠0p(c,q)}×r(c)ΣcΣq≠0p(c,q)]]>r(c)=Σq≠0{p(c,q)×r(c,q)}Σq≠0p(c,q)]]>
r(q)=Σc{p(c,q)×r(c,q)}Σcp(c,q)---(10)]]>此外,尽管在以上实施例中首先获得Fq(),然后将其变换为fq(),但是解码程序5也可以首先将T(c,i,j)/D(c)的值变换为0到1的范围,然后直接获得fq()。
另外,尽管在以上实施例中将逆量化应用于JPEG2000,但是也可以将所述逆量化应用于JPEG。在这种情况下,可以进行以下的变型。
即,直方图获取部分500利用f(x)=h(q)(当x≥0.5并且q-0.5<x<q+0.5,或者x≤-0.5并且q-0.5<x<q+0.5时)和f(x)=h(0)(当-0.5<x<0.5时)来定义直方图函数,并且折线近似部分520利用M(q)=q、M1(q)=q-0.5以及M2(q)=q+0.5来执行折线近似。
此外,参数估计部分560通过使q=0对应于-0.5<x<0.5、q=1,2,…对应于q-0.5<x≤q+0.5,以及q=-1,-2,…对应于q-0.5<x≤q+0.5,将直方图h(q)变换为概率密度函数fhc(x)。
此外,对于第三变型例,将说明其中参数估计部分560通过对各个变换系数类型c简单地计算量化指数Q(c,i,j)的标准偏差来获得σ的方法。
参数估计部分560可以根据以下公式来获得部分概率密度函数fq(x)。
fq(x)=f(d1(q)+D(x+0.5))∫d1(q)d2(q)f(x)dx---(11)]]>这里,其中量化指数为q的x的范围是d1(q)到d2(q)。另外,假定对于量化指数q的值r为r(q)。
这里,假定以下公式。
G(q)=∫-0.50.5xfq(x)dx---(12)]]>于是,r(q)可以表示为以下公式。
r(q)=G(q)+0.5(13)当f(x)为拉普拉斯分布时,r(q)变为独立于q的常数(即,仅依赖于σ与D之比)。因此,函数G(q)可以表示为以下公式。
G(q)=1α+1eα-1-0.5---(14)]]>在上式(14)中,α=2Dσ---(15)]]>q=0和q≠0因此,参数估计部分560可以根据以下公式来计算校正值r。
r=1α+1eα-1]]>即,参数估计部分560根据量化指数Q的直方图来估计变换系数类型的标准偏差σ。可以使用JP 2004-80741A中公开的方法作为用于根据量化指数Q来估计变换系数类型的标准偏差的方法。
此外,参数估计部分560根据所估计的标准偏差(即,量化指数的标准偏差)来计算值r。
此外,可以在编码时计算该值r。在这种情况下,根据变换系数的实际标准偏差,根据公式(14)和(15)来计算值r,并将所计算的值r嵌入到码数据中。解码装置5可以根据嵌入在码数据中的值r来执行逆量化。
由于可以仅通过获得变换系数的标准偏差来简单地获得值r,所以该变型例是优选的。
如上所述,根据本发明的一个实施例,解码装置包括分布生成部分和校正部分。分布生成部分生成量化指数值的频率分布。校正部分根据由分布生成部分生成的量化指数值的频率分布,对与这些量化指数值相对应的逆量化值进行校正。
该解码装置还可以包括期望值计算部分,其根据由分布生成部分生成的频率分布,计算量化指数的概率密度函数的期望值。校正部分可以根据由该期望值计算部分计算出的期望值来校正逆量化值。
另外,期望值计算部分可以使用线性函数来近似由分布生成部分生成的频率分布的至少一部分,来生成所述概率密度函数。
另外,期望值计算部分可以通过折线来近似该频率分布,从而使其至少在与各个量化指数相对应的量化区间的边界处为连续函数。
另外,期望值计算部分使用连接两个相邻量化指数值的频率值的线性函数来生成概率密度函数的至少一部分。
另外,当期望值计算部分确定给定量化指数值的概率密度函数时,该期望值计算部分根据该给定量化指数值的频率值、该给定量化指数值与相邻量化指数值之比、以及该给定量化指数值的频率值与相邻量化指数值的频率值之差,来确定近似于该频率分布的线性函数。
另外,当期望值计算部分确定用于给定量化指数值的概率密度函数时,该期望值计算部分可以使用所述给定量化指数值和与该给定量化指数值相对应的量化区间的中值,来确定近似于该频率分布的线性函数。
另外,当期望值计算部分确定给定量化指数值的概率密度函数时,该期望值计算部分可以使用h(q)×h(q)1h(q)+h(q-1)+1h(q)+h(q+1)]]>的值来确定近似于该频率分布的线性函数,其中h(q)表示该给定量化指数值的频率值,而h(q-1)和h(q+1)表示相邻量化指数值的相应频率值。
另外,期望值计算部分可以生成形状由现有参数确定的分布函数,该分布函数近似于由分布生成部分生成的频率分布。期望值计算部分可以使用所生成的分布函数来生成该概率密度函数。
另外,期望值计算部分可以使用所述分布函数,对量化区间生成所述概率密度函数,在所述量化区间中,所述量化指数值的绝对值等于或小于预定值。期望值计算部分可以使用下述函数,对量化区间生成所述概率密度函数,该函数通过至少单条直线来近似由所述分布生成部分生成的频率分布,在所述量化区间中,所述量化指数值的绝对值超过该预定值。
另外,期望值计算部分可以使以下两者彼此连续地连接使用所述分布函数生成的概率密度函数;使用通过直线对频率分布进行近似的函数生成的概率密度函数。
另外,期望值计算部分可以生成所述分布函数,以使得该分布函数的面积与由所述分布生成部分生成的频率分布的面积之差等于或小于预定值。
另外,期望值计算部分可以根据由分布生成部分生成的频率分布来计算量化指数的标准偏差。期望值计算部分可以根据所计算的标准偏差来生成所述分布函数。
另外,分布生成部分可以计算标准偏差σ,该标准偏差σ表示量化指数值的频率分布。校正部分可以使用由分布生成部分计算的标准偏差σ、量化区间的宽度D,以及以下两个公式来计算校正值r。
σ=2Dσ;]]>和r=1α+1eα-1.]]>另外,该解码装置还可以包括期望值计算部分,其根据由所述分布生成部分生成的频率分布,对各个量化区间计算量化指数的概率密度函数的期望值。校正部分可以根据由期望值计算部分计算的各个量化区间的期望值,计算各个量化区间的单个校正值。校正部分可以根据所计算的单个校正值和与各个量化区间相对应的量化指数的编号,来确定要采用的校正值。
另外,量化指数可以与变换编码处理中生成的变换系数的类型相关联。分布生成部分可以对各个变换系数类型生成量化指数值的频率分布。所述解码装置还可以包括期望值计算部分,其根据由分布生成部分生成的频率分布,对各个变换系数类型计算量化指数的概率密度函数的期望值。校正部分可以根据由所述期望值计算部分计算的所述期望值,对各个变换系数类型计算单个校正值。校正部分可以根据所计算的单个校正值和与量化区间相对应的量化指数的编号,来确定要采用的校正值。
另外,该解码装置还可以包括期望值计算部分,其根据由所述分布生成部分生成的频率分布,对各个量化区间计算量化指数的概率密度函数的期望值。校正部分根据由期望值计算部分计算的各个量化区间的期望值,对各个量化区间计算校正值。所述解码装置还可以包括逆量化值计算部分,其使用由所述校正部分计算的校正值中的具有与待进行逆量化的量化指数相同的量化区间的校正值,来计算逆量化值。
另外,量化指数可以与变换编码处理中生成的变换系数的类型相关联。分布生成部分可以对各个变换系数类型生成量化指数值的频率分布。所述解码装置还可以包括期望值计算部分,其根据由所述分布生成部分生成的频率分布,对各个变换系数类型计算量化指数的概率密度函数的期望值。校正部分可以根据由期望值计算部分计算的期望值,对各个变换系数类型计算校正值。所述解码装置还可以包括逆量化值计算部分,其使用由所述校正部分计算的校正值中的具有与待进行逆量化的量化指数相同的量化区间的校正值,来计算逆量化值。
根据本发明的一个实施例,一种逆量化方法包括生成量化指数值的频率分布;以及根据所生成的量化指数值的频率分布,对与这些量化指数值相对应的逆量化值进行校正。
根据本发明的一个实施例,一种存储介质,其可以由计算机来读取。该存储介质存储有可以由计算机执行,以执行逆量化功能的指令程序,该逆量化功能包括以下步骤生成量化指数值的频率分布;以及根据所生成的量化指数值的频率分布,对与这些量化指数值相对应的逆量化值进行校正。
根据以上所述的解码装置,可以更加有效地对码数据进行解码。
权利要求
1.一种解码装置,其包括分布生成部分,其生成多个量化指数值的频率分布;以及校正部分,其根据由所述分布生成部分生成的多个量化指数值的频率分布,对与这些量化指数值相对应的逆量化值进行校正。
2.根据权利要求1所述的解码装置,还包括期望值计算部分,其根据由所述分布生成部分生成的频率分布,计算所述量化指数的概率密度函数的期望值,其中所述校正部分根据由所述期望值计算部分计算的期望值,对所述逆量化值进行校正。
3.根据权利要求2所述的解码装置,其中所述期望值计算部分使用一线性函数来生成所述概率密度函数,该线性函数近似于由所述分布生成部分生成的频率分布的至少一部分。
4.根据权利要求3所述的解码装置,其中所述期望值计算部分通过折线对所述频率分布进行近似,以使其成为至少在与各个量化指数相对应的的量化区间的边界处连续的函数。
5.根据权利要求3所述的解码装置,其中所述期望值计算部分使用连接两个相邻量化指数值的频率值的线性函数来生成所述概率密度函数的至少一部分。
6.根据权利要求3至4中的任意一项所述的解码装置,其中当所述期望值计算部分确定给定量化指数值的概率密度函数时,所述期望值计算部分根据该给定量化指数值与相邻量化指数值的频率值之比,以及该给定量化指数值与相邻量化指数值的频率值之差,来确定近似于所述频率分布的线性函数。
7.根据权利要求3至5中的任意一项所述的解码装置,其中当所述期望值计算部分确定给定量化指数值的概率密度函数时,所述期望值计算部分使用所述给定量化指数值和与所述给定量化指数值相对应的量化区间的中值,来确定近似于所述频率分布的线性函数。
8.根据权利要求3至5中的任意一项所述的解码装置,其中当所述期望值计算部分确定给定量化指数值的概率密度函数时,所述期望值计算部分使用h(q)×h(q)1h(q)+h(q-1)+1h(q)+h(q+1)]]>的值来确定近似于所述频率分布的线性函数,其中h(q)表示所述给定量化指数值的频率值,而h(q-1)和h(q+1)表示相邻量化指数值的相应频率值。
9.根据权利要求2所述的解码装置,其中所述期望值计算部分生成形状由现有参数确定的分布函数,该分布函数近似于由所述分布生成部分生成的频率分布;并且所述期望值计算部分使用所生成的分布函数来生成所述概率密度函数。
10.根据权利要求9所述的解码装置,其中所述期望值计算部分使用所述分布函数,对量化区间生成所述概率密度函数,在所述量化区间中,所述量化指数值的绝对值等于或小于一预定值;并且所述期望值计算部分使用下述函数,对量化区间生成所述概率密度函数,所述函数通过至少单条直线来近似由所述分布生成部分所生成的频率分布,在所述量化区间中,所述量化指数值的绝对值超过所述预定值。
11.根据权利要求10所述的解码装置,其中所述期望值计算部分使以下两者彼此连续地连接使用所述分布函数生成的概率密度函数;使用通过直线对所述频率分布进行近似的所述函数生成的概率密度函数。
12.根据权利要求10所述的解码装置,其中所述期望值计算部分生成所述分布函数,以使得所述分布函数的面积与由所述分布生成部分生成的频率分布的面积之差等于或小于一预定值。
13.根据权利要求9所述的解码装置,其中所述期望值计算部分根据由所述分布生成部分所生成的频率分布来计算所述量化指数的标准偏差;并且所述期望值计算部分根据所计算的标准偏差来生成所述分布函数。
14.根据权利要求1所述的解码装置,其中所述分布生成部分计算标准偏差σ,该标准偏差σ表示所述量化指数值的频率分布;并且所述校正部分使用由所述分布生成部分计算的所述标准偏差σ、量化区间的宽度D以及以下两个公式来计算校正值rα=2Dσ;]]>和r=1α+1eα-1.]]>
15.根据权利要求1所述的解码装置,还包括期望值计算部分,其根据由所述分布生成部分生成的频率分布,对各个量化区间计算量化指数的概率密度函数的期望值,其中所述校正部分根据由所述期望值计算部分计算的各个量化区间的期望值,计算各个量化区间的单个校正值;并且所述校正部分根据所计算的单个校正值和与各个量化区间相对应的量化指数的编号,来确定要采用的校正值。
16.根据权利要求1所述的解码装置,其中所述量化指数与在变换编码处理中生成的变换系数的类型相关联;并且所述分布生成部分对各个变换系数类型生所述成量化指数值的频率分布,所述解码装置还包括期望值计算部分,其根据由所述分布生成部分生成的频率分布,对各个变换系数类型计算量化指数的概率密度函数的期望值,其中所述校正部分根据由所述期望值计算部分计算的所述期望值,对各个变换系数类型计算单个校正值;并且所述校正部分根据所计算的单个校正值和与量化区间相对应的量化指数的编号,来确定要采用的校正值。
17.根据权利要求1所述的解码装置,还包括期望值计算部分,其根据由所述分布生成部分生成的频率分布,对各个量化区间计算量化指数的概率密度函数的期望值;其中所述校正部分根据由所述期望值计算部分计算的各个量化区间的期望值,对各个量化区间计算校正值,所述解码装置还包括逆量化值计算部分,其使用由所述校正部分计算的校正值中的具有与待进行逆量化的量化指数相同的量化区间的校正值,来计算逆量化值。
18.根据权利要求1所述的解码装置,其中所述量化指数与在变换编码处理中生成的变换系数的类型相关联;并且所述分布生成部分对各个变换系数类型生成量化指数值的频率分布,所述解码装置还包括期望值计算部分,其根据由所述分布生成部分生成的频率分布,对各个变换系数类型计算量化指数的概率密度函数的期望值;其中所述校正部分根据由所述期望值计算部分计算的期望值,对各个变换系数类型计算校正值,所述解码装置还包括逆量化值计算部分,其使用由所述校正部分计算的校正值中的具有与待进行逆量化的量化指数相同的量化区间的校正值,来计算逆量化值。
19.一种逆量化方法,包括生成多个量化指数值的频率分布;以及根据所生成的量化指数值的频率分布,对与这些量化指数值相对应的逆量化值进行校正。
20.一种计算机可读存储介质,该存储介质存储有可由计算机执行的、用于执行逆量化功能的指令程序,该逆量化功能包括以下步骤生成多个量化指数值的频率分布;以及根据所生成的量化指数值的频率分布,对与这些量化指数值相对应的逆量化值进行校正。
全文摘要
解码装置、逆量化方法及其程序。一种解码装置,包括分布生成部分和校正部分。该分布生成部分生成多个量化指数值的频率分布。该校正部分根据所生成的量化指数值的频率分布,对与这些量化指数值相对应的逆量化值进行校正。
文档编号H04N7/28GK1838776SQ20051008750
公开日2006年9月27日 申请日期2005年7月20日 优先权日2005年3月23日
发明者木村俊一 申请人:富士施乐株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1