图象编码/解码方法以及记录该程序的记录媒体的制作方法

文档序号:7586170阅读:220来源:国知局
专利名称:图象编码/解码方法以及记录该程序的记录媒体的制作方法
技术领域
本发明涉及图象编码/解码方法以及记录该程序的记录媒体,更详细地说,涉及能够用游戏机等性能较低的硬件(CPU、存储器等)来高速再现高质量的图象(CG图象、动画片图象、自然图象等)的图象编码/解码方法以及记录该程序的记录媒体。
背景技术


图16、图17是说明现有技术的图(1)、(2),图16表示由JPEG所产生的图象压缩处理的图象。
在图16(A)中,在目前成为静止图象压缩方式的主流的JPEG中,把图象分割成8×8象素的块,把其通过二维DCT(离散余弦变换)变换为DC(平均值)和从基本频率至63倍频率的各个系数值。而且,利用自然图象的频率成分集中在低频区域的特点,在画面质量不会降低的范围内,用不同的量化幅度对各系数值进行量化,以削减信息量,然后进行可变长度编码(霍夫曼编码)。
另一方面,当在家用的游戏机等中利用这样的图象编码数据时,由于受CPU性能和存储器容量上的限制,当用软件对解码运算负荷较大的图象压缩法(JPEG等)进行解码时,会产生各种缺点。例如,在JPEG中,对于8×8象素的块,必须生成应进行64个可变长度编码的代码,因此,引起解码时的计算负荷增大。
图16(B)表示霍夫曼代码的一部分。
在霍夫曼编码中,出现频率高的系数值H13等以相对短的代码长度比特进行编码,出现频率低的系数值H6等以相对长的代码长度比特进行编码,因此,这些代码在各个八位(字节)上如图所示的那样封装得参差不齐,使解码时的计算负荷变得非常大。因此,在现有的游戏系统中,存在为了以作为活动图象能够容忍的程度的速度来复原图象,而不得不过于牺牲图象质量的情况。
而且,对于图象质量,频率成分越高,量化的精度就越低。因此轮廓部分的图象信息丢失,而发生蚊噪声,不适合于文字和动画图象的压缩。特别是,在游戏软件中,大多使用人工图象(CG图象、动画图象等),因此,由蚊噪声所引起的主观的图象质量变差成为较大的问题。
对此,近年来,报告了以下文献〔1〕~〔5〕〔1〕Michael F.Barnsley,Lyman P.Hurd“FRACTAL IMAGECOMPRESSION(分图像压缩)”AK Peters Ltd.,1993〔2〕Takashi Ida,Takeshi Datake“Image compression by IterativeTransformation Coding(通过迭代转换编码进行图像压缩)”,《第五届电路和系统Karuizawa工作站论文集》,第.137-142页,1992〔3〕Hyunbea You,Takashi Takahashi,Hiroyuki Kono,RyujiTokunaga“Improving LIFS Image Coding Scheme by Applying GramSchmidt Orthogonalization(通过采用Gram Schmidt正交方法改进LIFS图像编码方案)”,《电子、信息和通信学会技术研究報告》,第NLP-98卷,第146期,第37-42页,1998年〔4〕Toshiaki Watanabe,Kazuo Ozeki“Study of AC ComponentPrediction Scheme Using Mean Values(采用平均值的交流成分预测方式的研讨)”图像编码研讨会(PCSJ89),第29-30,1989年10月;和〔5〕Takashi Takahashi,Ryuji Tokunaga“High-Speed ComputationAlgorighm for predicting AC Components from Block Mean Values ofImages(用于从图像的块平均值预测交流成分的高速计算算法)”电子信息通信工程学会论文集,第J81-D-II卷,第4期,第778-780页1998年4月。
其中,方案〔1〕,〔2〕涉及作为解码运算负荷较小的压缩方式的分形(fractal)编码,方案〔3〕涉及具有与JPEG相同程度的编码效率的自适应正交变换的改进,而且,方案〔4〕,〔5〕涉及根据块平均值(DC值)的交流成分预测。
其中,方案〔3〕是这样的块编码法把图象分割成K×K象素的正方形块,根据允许误差Z,用交流成分预测法、分形变换法、自适应正交变换中的任一种来近似全部的块。交流成分预测法被用于平均值分离方式从包围自身(local)块的周围块的平均值(DC值)来求出自身块的交流成分(相加数据),对其与对象图象的残差进行编码。而且,自适应正交变换是这样的方式利用图象具有的自相似性,从相当于矢量量化的代码簿的图象(嵌套)抽出用于近似块图象的基底矢量,通过GRAM SCHMIDT法来构成必要的最小维数的正交基底系统。
但是,上述方式〔1〕,〔2〕的分形变换,在解码中需要进行反复计算,并且,需要消耗图象平面规模的工作空间,因此,不利于视频游戏机等。
而且,在方式〔3〕的自适应正交变换中,利用与对象图象同等大小的加法运算数据作为嵌套,在解码时,需要非常大的工作空间。而且,在解码时,把被解冻的块依次地写回到嵌套上的对应块上,因此,使画面质量得到改善,但是,地址计算和数据传送的负荷加重。而且,在方式〔3〕中,在基底的坐标和取样系数的压缩中使用霍夫曼代码,但是,在自然图象中,在哪种基底的出现频率上,没有较大的偏向,因此,压缩效率不会提高,或者,消费了霍夫曼解码的计算量。而且,在自适应正交变换中,随图象会存在必要的最小维数的正交基底数变多的情况,则当基底数变多时,就需要使用比对残差矢量进行直接编码时更多的比特数,则编码效率降低。
而且,在方式〔4〕的交流成分预测法中,存在在图象中的轮廓部分周边产生过冲和下冲的倾向,存在在亮度急剧增加的人工图象中,反而会使图象质量变差的倾向。
而且,在方式〔5〕的分段交流成分预测方式中,不仅CPU负担加重,而且需要中间生成的插补值的存储区域。
在图17中表示分段的交流成分预测方式的图象。
在图17(A)中,在分段的交流成分预测方式中,通过下式从包含注目块的周围4块的各DC值(S,U,R,B,L)推断所注目块S上的小块S1~S4的各DC值S1=S+(U+L-B-R)/8S2=S+(U+R-B-L)/8S3=S+(B+L-U-R)/8S4=S+(B+R-U-L)/8在图17(B)中,通过重复使用上述方式,能够进一步通过下式推断出小块S1上的四个象素P1~P4的各象素值P1=S1+(U3+L2-S3-S2)/8P2=S1+(U3+S2-S3-L2)/8P3=S1+(S3+L2-U3-S2)/8P4=S1+(S3+S2-U3-L2)/8同样,通过下式能够推断出小块S2上的4象素P1~P4的各象素值P1=S2+(U4+S1-S4-R1)/8P2=S2+(U4+R1-S4-S1)/8
P3=S2+(S4+S1-U4-R1)/8P4=S2+(S4+R1-U4-S1)/8同样,能够推断出小块S3、S4上的各4象素P1~P4的各象素值但是,为了从最初的DC值(S,U,R,B,L)出发,得到原图象的全部预测值P1~P4,不但需要分段地使用上述方式而不进行细分,不仅需要保持中间值的存储器,而且,CPU的运算负荷增大。
发明概述鉴于上述现有技术的问题,本发明的目的是提供图象编码/解码方法及记录该程序的记录媒体,对于可以在计算机上使用的图象数据,在保持较高的图象质量的同时,提高图象数据的压缩率,而且,能够减轻解码时的计算负荷。
通过例如图1(A)的构成来解决上述问题。即,本发明方案(1)的图象编码方法,把图象数据分割成多个象素的块,而生成由各个块的平均值组成的DC图象,从各个象素块分离出对应的块平均值,来求出每个块的残差矢量,同时,当残差矢量的幅值为允许值以上时,通过使用DC图象的嵌套的自适应正交变换,来求出用于近似残差矢量的一个或者两个以上的正交基底,对由它们的线性组合组成的正交基底系统进行编码。
在本发明(1)中,通过从DC图象的嵌套求出一个或者两个以上的正交基底的构成,而大幅度减轻了图象编码/解码时的CPU和存储器的负荷。而且,平坦的亮度成分较多,则在与DC图象的相关较强的CG图象和动画图象等人工图象中,可以期望提高图象质量。
优选地,在本发明方案(2)中,在上述本发明(1)中,当残差矢量的幅值小于允许值时,对基底数=0的信息进行编码,以取代求出正交基底的过程。
例如,一般对于亮度急剧增加的人工图象,对于不存在于轮廓部分附近的(即,残差矢量的幅值小于允许值的)象素块,有限制地生成基底数=0的代码。这样,对于这样的象素块,能够得到高的图象压缩率。
另一方面,在解码侧,对于对应的象素块,通过有限制地使用分段的交流成分预测法或者本发明的不分段的交流成分预测法,能够以较少的CPU和存储器量来再现象素块。
优选地,在本发明方案(3)中,在上述本发明(1)中,当求出的正交基底系统的总代码量成为残差矢量的总代码量以上时,对残差矢量进行编码,以取代正交基底系统的编码。这样,不会无意中降低图象压缩率。
优选地,在本发明方案(4)中,在上述本发明(1)中,通过预先求出的基底数nk,当与残差矢量<d>的第一误差<dnk>小于允许值时,把按上述所求出的顺序使用m(0≤m<nk)个基底之后的第二误差矢量<dm>,用对应于未使用的其余基底数yk(=nk-m)所预先决定的量化系数Qyk来进行标量量化,并且,把其进行标量逆量化,从用上述第二误差矢量<dm>减去标量逆量化后的第二误差矢量而得到的nk种类的第三误差矢量<d’m>和上述第一误差<dnk>之中,选择最小的误差,同时将对应的基底和成为必要的第二误差矢量合并使用来进行编码。
下面参照图12(A)的(c),(d)来具体说明一个例子的编码方法。在图12(A)的(c)中,现在,求出使与残差矢量<d>的误差的幅值‖<dnk>‖成为小于允许值Z这样的由nk(例如nk=3)个基底组成的线性结合
<d>≈β1<v1>+β2<v2>+β3<v3>(nk=3)其中,<v>表示v是矢量。
对于使用上述nk=3个基底时的第一误差矢量<d1>=<dnk>和以上述求出的顺序使用m(0≤m<nk)个基底之后的第二误差矢量<d0>~<d2>,具有下列关系<d0>=<d> (m=0,yk=3)<d1>=<d>-β1<v1>(m=1,yk=2)<d2>=<d>-β1<v1>-β2<v2> (m=2,yk=1)<d3>=<d>-β1<v1>-β2<v2>-β3<v3>(m=3,yk=0)在图12(A)的(d)中,通过对应于未使用的其余基底数yk=3,2,1所预先决定的量化系数Qyk(例如,Q3=6,Q2=7,Q1=8),分别对上述第二误差矢量<d0>~<d2>进行标量量化(并进行剪切),并且,使用相同的量化系数Qyk分别对它们进行逆量化,来求出逆量化后的第二误差矢量<d0Q’>~<d2Q’>。
<d0Q’>=[<d0>/Q3]×Q3<d1Q’>=[<d1>/Q2]×Q2<d2Q’>=[<d2>/Q1]×Q1其中,记号[]表示将运算结果取整数。
接着,求出从上述第二误差矢量<d0>,<d1>,<d2>分别减去它们而得到的第三误差矢量<d’0>~<d’2>。
<d’0>=<d0>-<d0Q’>
<d’1>=<d1>-<d1Q’>
<d’2>=<d2>-<d2Q’>
但是,这些第三误差矢量<d’0>~<d’2>的幅值并不一定大于上述第一误差矢量<d3>。即,对三个基底β1<v1>+β2<v2>+β3<v3>进行编码,其结果,该解码后的误差成为上述第一误差矢量=<d3>,与之相比,例如,对两个基底β1<v1>+β2<v2>进行编码,并且,利用其剩余的一个基底的代码量来对第二误差矢量<d2>进行标量量化,其结果,该解码后的误差成为上述第三误差矢量=<d’2>,采用这样的方法,最终的解码误差可能较小。
因此,在本发明方案(4)中,在第三误差矢量<d’0>,<d’1>,<d’2>与第一误差矢量<d3>之间,选择误差最小的那个,来对对应的基底和必要时的第二误差矢量进行编码。
在上述例子中,在第三误差矢量<d’2>的误差是最小的情况下,采用{β1<v1>+β2<v2>}作为正交基底系统,把它们进行编码,同时,并行地对第二误差矢量<d2>来进行编码(标量量化)。确定量化系数Qyk,以使这样生成的代码不会大于使用nk个基底时的总代码量,因此,不会使每个象素块的代码量增加,但又能够提高图象质量。
这样,在本发明(4)中,通过同时使用自适应正交变换和在使用必要时的m个基底后的第二误差矢量的标量量化的构成,就能以更高精度对残差矢量<d>进行编码。而且,此时,用与其余基底数yk(=nk-m)相对应的量化系数Qyk来对第二误差矢量进行标量量化,并且,把其编码为与其余基底数yk相同的代码量,因此,不会使与该象素块相对应的总代码量增加,但又提高了图象质量,而且,能够使每个象素块的代码长度成为容易解码的形态(预定比特数的倍数),这样,能够大幅度减轻解码时的运算负荷。
由图1(B)的构成所产生的本发明方案(5)的图象编码/解码方法,根据包含由K×K象素的块平均值组成的自身块S的上下左右U,B,L,R的共计5个DC图象数据,按下式求出自身块S上的左上的第一小块S1的(K/2)×(K/2)的各象素数据P1~P4P1=S+(2U+2L-2S-B-R)/8P2=S+(2U-B-R)/8P3=S+(2L-B-R)/8P4=S+(2S-B-R)/8并且,按下式求出自身块S上的右上的第二小块S2的(K/2)×(K/2)的各象素数据P1~P4P1=S+(2U-B-L)/8P2=S+(2U+2R-2S-B-L)/8P3=S+(2S-B-L)/8P4=S+(2R-B-L)/8并且,按下式求出自身块S上的左下的第三小块S3的(K/2)×(K/2)的各象素数据P1~P4P1=S+(2L-U-R)/8P2=S+(2S-U-R)/8P3=S+(2B+2L-2S-U-R)/8P4=S+(2B-U-R)/8并且,按下式求出自身块S上的右下的第四小块S4的(K/2)×(K/2)的各象素数据P1~P4P1=S+(2S-U-L)/8P2=S+(2R-U-L)/8P3=S+(2B-U-L)/8P4=S+(2B+2R-2S-U-L)/8在本发明(5)中,通过从包含自身块的附近的DC图象数据S,U,B,L不分段地直接求出自身块S上的K×K象素的象素数据的构成,能够大幅度减轻图象编码/解码时的CPU和存储器负荷。而且,本发明(5)的方法,在图象编码时,可以用于交流成分的预测等,而在图象解码时,能够用于交流成分的再现等。
本发明(6)的记录媒体,是能够进行计算机读取的记录媒体,记录用于由计算机执行上述本发明(1)~(5)任一项所记载的处理的程序。
附图的简要说明图1是说明本发明的原理的图;图2是表示根据实施例的图象编码/解码方式的构成图;图3是表示根据实施例的图象编码处理的流程图(1);图4是表示根据实施例的图象编码处理的流程图(2);图5是表示根据实施例的图象编码处理的流程图(3);图6是表示根据实施例的图象编码处理的流程图(4);图7是表示根据实施例的图象编码处理的流程图(5);图8是说明由实施例所产生的图象编码处理的表的图;图9是表示根据实施例的图象编码处理的图象(1);图10是表示根据实施例的图象编码处理的图象(2);图11是表示根据实施例的图象编码处理的图象(3);图12是表示根据实施例的图象编码处理的图象(4);图13是表示根据实施例的图象编码处理的流程图;图14是表示根据实施例的不分段的交流成分预测处理的图象;图15是根据实施例的编码效率的曲线图;图16是说明现有技术的图(1);图17是说明现有技术的图(2)。
用于实施发明的最佳方案下面按照附图来详细说明本发明的最佳实施例。并且,在全部附图中,相同的标号表示相同或者相当的部分。
图2是表示根据实施例的图象编码/解码方式的构成图,表示适用于游戏系统的例子。
在图2中,10是游戏机本体;11是CPU(游戏处理器),进行游戏机的主控制(游戏程序、3D CG和纹理数据TXD的读入控制、由用户所进行的游戏操作数据的读入控制等)以及与3D CG动画相关的游戏处理(游戏字符的移动处理等);12是由CPU 11使用的RAM、ROM、EEPROM等组成的主存储器(MM);13是CPU 11的本机(主机)总线;14是能够高速传送数据的总线;15是进行总线间的连接(以及竞争裁决控制)的桥路;16是操作面板,包括用于用户进行游戏操作和参数设定的各种控制键(开始键、选择键、十字键等)以及鼠标器、游戏棒等位置输入装置;17是把操作面板16容纳在游戏系统中的周边接口(PIF);18是把游戏程序(处理程序、游戏参数、3DCG模型数据、纹理数据等)记录在屏蔽ROM等中的ROM卡盒(ROM-C);19是能够把ROM卡盒18装卸自如地装入游戏系统中的ROM卡盒接口(ROM-CIF);20是记录上述游戏程序的光盘ROM(CD-ROM);21是能够把光盘ROM 20装卸自如地装入游戏系统中并进行驱动的CD-ROM驱动器;22是把本系统连接到未图示的公众网上的通信控制部(COM),用于进行游戏程序的在线下载和与其他游戏机之间的对抗游戏;23是通信线。
而且,30是用于把输入的3D CG模型数据透视变换为2D画面的3D加速器;31是几何图形处理器;32是模型变换部,根据字符、背景等各基准位置数据及其形状模型数据,在3D空间上的各对应位置上生成和展开由多边形等集合组成的实际尺寸的3D CG模型;33是给上述生成的模型附加考虑光线效果(太阳光、照明光等)的阴影的阴影处理部;34是视点变换部,把世界坐标系XYZ中的3D CG图象数据变换为符合摄象机视点信息的视点坐标系xyz的3D CG图象数据;35是透视变换部,根据摄象机的视点信息(视点坐标系xyz)来进行3D CG生成模型的透视变换。
36是进行与显示光栅同步的处理的透视图(光栅)处理器;37是跟据CRT 45的扫描线地址x,y而抽出透视变换后的各象素数据的扫描线分解部;38是Z缓冲器;39是隐藏面消去部,使用Z缓冲器38,用在画面45A上所见到部分的象素数据替换在画面45A上不应当看到的部分的象素数据;40是纹理解码部,对本发明的输入的纹理压缩数据进行解冻(解码);41是暂时存储纹理数据的纹理缓冲器;42是给在画面45A上见到的部分的各象素数据粘贴纹理缓冲器41的各个对应的纹理数据的纹理处理部;43是存储输出的彩色图象数据(R,G,B)的帧存储器;44是D/A变换部(DAC),把帧存储器43的彩色象素数据变换为模拟象素信号,并给CRT 45提供视频信号VS;45是作为显示部的例如彩色CRT监视器;45A是其显示画面;46是发生CRT 45的水平垂直同步信号H,V以及3D加速器30的x,y同步信号的CRT控制部(CRTC)。
外部的游戏制作装置50制作游戏程序(处理程序、游戏参数、3DCG模型数据、纹理数据等),并记录在ROM卡盒18或者CD-ROM20中。而且,在制作纹理数据时,执行本发明的图象编码方式,进行了图象压缩的纹理数据TXD被记录在ROM卡盒18或者CD-ROM 20中。接着,该被图象压缩的纹理数据TXD由纹理解码部40进行高速解码,并且,被粘贴到2D透视图象上,在画面45A上进行显示。以下,说明游戏制作装置50中的图象编码(压缩)处理。
图3~图7是根据一实施例的图象编码处理的流程图(1)~(5),图8是说明该图象编码处理的表的图,图9~图12是该图象编码处理的图形(1)~(4),以下参照这些图来说明图象编码处理的详细情况。
在整个说明书中,记号<>表示矢量,记号‖‖表示矢量的幅值,记号·表示矢量的内积,记号[运算]表示运算结果的整数化。其中,当在不同意义下使用记号[运算]时,附加其意思。此外,用加粗的字符来表示图和等式中的矢量。
在流程图中,使原始图象的尺寸为横向n、纵向m个象素。而且,记号Tm,n表示从图象T的m行n列取出4×4象素的正方形块的部分图象数据,记号By,x,sy,sx表示从DC图象的y行,x列在横向上以sx步幅、在纵向上以sy步幅取出4×4的共计16象素的数据的块。
图3表示图象编码处理的主处理。
在步骤S1中,读入原始图象数据。
在图9(A)中表示原始图象数据T的图形。把RGB系的对象图象变换为YUV系来读入。Y对应于亮度数据,U,V对应于色差数据,使用横向2象素的亮度平均来对U、V进行降频取样(downsample)。一个例子的亮度数据Y由纵960×横1280象素组成,U、V分别由纵960×横640象素组成。给Y、U、V的各个象素数据分别分配例如8比特。
以下以亮度数据Y的处理为中心进行描述,但是,对于U、V,可以进行同样的处理。
回到图3,在步骤S2中,执行DC图象制作处理。DC图象制作处理是这样的处理把原始图象分割成每个4×4象素的块,制作由各块的平均值M组成的DC图象。
在图4中表示了DC图象制作处理的流程图。在步骤S21中,把原始图象的地址寄存器i,j同时初始化为「0」。在步骤S22中,把DC图象的地址寄存器I,J中设置为i/4,j/4。在步骤S23中,从原始图象取出4×4象素的块数据Tj,i。在步骤S24中,求出在块数据Tj,i中包含的16象素数据的平均值M。在步骤S25中,把该平均值M存储到DC图象的存储位置DCJ,I中。在步骤S26中,执行i+4,在步骤S27中,判别是否i>n。当不是i>n时,返回步骤S22,这次求出下一列的块数据Tj,i的平均值M,存储到下一列的DCJ,I中。以此类推,即,在步骤S27的判别中,当为i>n时,在步骤S28中,把i初始化为「0」,且执行j4。在步骤S29中,判别是否j>m,当不是j>m时,返回步骤S22,这次求出下一行的块数据Tj,i的平均值M,存储到下一行的DCJ,I中。以此类推,即,在步骤S29的判别中,当为j>m时,退出该处理。
在图9(B)中表示DC图象数据DC的图形。一个例子的DC图象由纵240×横320的DC值构成。
返回图3,在步骤S3中,通过二维DPCM对DC图象进行编码并输出。
在图10(A)中表示二维DPCM的处理图形。当DC图象的J行,I列的DC值为DCJ,I时,通过例如DC’J,I=(DCJ,I-1+DCJ-1,I)/2来求出该DCJ,I的预测值DC’J,I,通过量化系数Qs来对其预测误差ΔDCJ,I=DCJ,I-DC’J,I进行标量量化{即,[ΔDCJ,I/Qs]},并输出。其中,在此情况下的记号[a]表示对实数a进行四舍五入的结果。而且,仅在预测误差ΔDCJ,I为「0」的情况下,考虑扫描宽度,分别独立地对预测误差ΔDCJ,I和扫描宽度进行霍夫曼编码。
在图8(A)中表示量化系数Qs的表。量化系数Qs的值与多段的允许误差Z相对应。使用者在要求高画面质量时允许误差Z范围选择得小些,在较低的画面质量也可以时,允许误差Z范围选择得大些。据此,量化系数Qs在1~8的范围内进行变化。
返回图3,在步骤S4中,原始图象的地址寄存器i,j同时初始化为「0」。在步骤S5中,把DC图象的地址寄存器I,J中设置为i/4,j/4。在步骤S6中,通过下式来求出与4×4象素的象素块相对应的16维的残差矢量<d><d>=Tj,i-DCJ,I在图10(B)中表示残差矢量<d>的图形。给残差矢量<d>的各个部分分别分配8字节。
返回图3,在步骤S7中,判别残差矢量<d>的幅值(平方)是否小于允许误差Z。在小于允许误差Z的情况下,在解码侧,能够通过后述的不分段的交流成分预测法来高精度地复原该部分的块图象数据Tj,i,因此,流程进到步骤S18,将基底数「0」作为代码F1输出。在不小于允许误差Z的情况下,应当搜索用于近似残差矢量<d>的基底矢量,为此进到步骤S8,执行自适应正交化处理。
在图11中表示了适当正交化处理的图形。适当正交化处理是这样的处理为了在允许近似误差Z以内近似残差矢量<d>,而求出必要的基底矢量的个数nk和各基底矢量<vnk>。在本实施例中,提取出以纵横1K(例如K=4)压缩原始图象的DC图象的一部分,而作为嵌套使用,来谋求嵌套的轻量化。
在图11(A)中,从DC图象切出例如纵39×横71的DC值的区域,来作为嵌套。而且,基底矢量<vnk>的搜索,在每个纵横1DC值上,设定顶点(x,y)∈
×0,31],并且,该二次取样间隔为(sx,sy)∈{(1,1),(1,2),(2,1),(2,2)}共计4种。而且,这是一个例子,嵌套的尺寸、切出位置、基底矢量的二次取样间隔等可以任意设定。
图11(B)表示从嵌套以各种图形所取样的各DC值集中在基底矢量<vnk>的4×4的存储区域中的状态。即,当(sx,sy)=(1,1)时,从嵌套上的4×4的区域,搜集4×4的DC值,并且,当(sx,sy)=(1,2)时,从在嵌套上的y方向上延伸的区域,搜集4×4的DC值,并且,当(sx,sy)=(2,1)时,从在嵌套上的x方向上延伸的区域,搜集4×4的DC值,并且,当(sx,sy)=(2,2)时,从在嵌套上的x和y方向上延伸的区域,集中4×4的DC值,并存储到基底矢量<vnk>的存储区域中。这是这样的处理利用原始图象具有的自相似性,从嵌套上的DC图象以各种角度搜索与原始图象的象素块近似的图象。
图5和图6是实施例的适当正交化处理的流程图。在图5中,在步骤S31中,在误差寄存器Err中设定较大的值(例如,100000),并且,把基底数寄存器nk初始化为「1」。在步骤S32中,把嵌套图象的开始地址寄存器x,y同时初始化为「0」。在步骤S33中,把嵌套图象的二次取样间隔寄存器sx,sy同时初始化为「1」。
在步骤S34中,从嵌套图象取出4×4的DC块图象By,x,sy,sx,来制成基底矢量<vnk>{相当于后述的图11(C)中的基底矢量<unk>},并且,在nk>1的情况下,通过GRAM SCHMIDT正交化法,来与其以前的基底矢量正交化。
所谓GRAM SCHMIDT正交化法是这样的方法由n维内积空间V的一个基底{v1,…,vn}来构成V的正规正交基底{v’1,…,v’n},以下参照图11(C)来简要说明gram schmidt的正交化法。当为第一基底矢量<v1>(其中,相当于<u1>)时,第一正规化基底矢量<v’1>是单位矢量,因此,具有v1′=v1||v1||=α11u1]]>接着,当从嵌套图象抽出第二基底矢量<u2>时,假定将与上述第一正规化基底矢量<v’1>正交的第二基底矢量<u2>设置为v2=u2+kv2
这样,从<v2>·<v’1>=0,而得到这样的关系v2·v1’=(u2+kv1’)·v1’=u2·v1-k(v1’·v1’)=u2·v1’+k=0此时,标量系数k为k=-(u2·v1’)而且,当把系数k代入上式时,第二正交基底矢量<v2>用下式表示v2=u2-(u2·v1’)v1’而且,第二正规化基底矢量(v’2)也是单位矢量,因此,具有v2′=v2||v2||=u2-(u2•v1′)v1′||u2-(u2•v1′)v1′||=α21u1+α22u2]]>类似地,第n正规化基底矢量<v’n>为vn′=vn||vn||=un-(un•v1′)v1′-···-(un•vn-1′)vn-1′||un-(un•v1′)v1′-···-(un•vn-1′)vn-1′||=Σi=1nαniui]]>在步骤S35中,使用正规化基底矢量<v’nk>,来求出与残差矢量(d)的距离成为最小的基底矢量的展开系数αnk。
在图12(A)的(a)中,表示使用正规化基底矢量<v’nk>来近似残差矢量<d>的处理的图形。在图12(A)的(a)中,残差矢量<d>与乘以了展开系数αnk的基底矢量αnk<v’nk>的差矢量{<d>-αnk<v’nk>}的幅值为最小的,这是因为基底矢量αnk<v’nk>与差矢量{<d>-αnk<v’nk>}正交时(内积=0),而求出符合下式的正规化基底矢量<v’nk>的展开系数αnk。(d-αnkvnk’)αnkvnk’=0αnkd•vnk′-αnk2vnk′•vnk′=0]]>αnk=d•vnk′||vnk′||2]]>下面对图12(A)的(b)进行说明。
返回图5,在步骤S36中,求出用基底矢量αnk<v’nk>近似残差矢量<d>时的误差矢量的幅值εr。在步骤S37中,判别是否εr<Err。当εr<Err时,在步骤S38中,在用于存储与εr的最小值相关的各种信息的寄存器Err,X,Y,SX,SY中分别保持此时的εr,x,y,sx,sy。而且,在寄存器α中存储此时的展开系数αnk,在基底矢量的存储区域<v>中存储此时的基底矢量<vnk>,在正交化基底矢量的存储区域<v’>中存储此时的正交化基底矢量<v’nk>。而且,当不是εr<Err时,跳过上述步骤S38的处理。
在步骤S39中,使取样间隔sx+1,在步骤S40中,判别是否sx>2。当不是sx>2时,返回步骤S34,此时,对以不同的取样间隔sx所抽出的基底矢量<vnk>进行与上述相同的处理。以此类推,也就是,当在步骤S40的判别中是sx>2时,在步骤S41中,把sx初始化为「1」,并且,使取样间隔sy+1,在步骤S42中,判别是否sy>2。当结果不是sy>2时,返回步骤S34,此时,对以不同的取样间隔sy所抽出的基底矢量<vnk>进行与上述相同的处理。以此类推,也就是,当在步骤S41的判别中是sy>2时,首先,对于嵌套图象的开始位置(x,y)=(0,0),尝试具有不同的取样间隔(sx,sy)=(1,1),(1,2),(2,1),(2,2)的共计4种的各基底矢量<vnk>。处理进行到图6的步骤S43。
在步骤S43中,使嵌套上的开始位置x+1,在步骤S44中,判别是否x>p(例如,p=63)。在不是x>p的情况下,返回步骤S33(②),此时,对在x方向上进行了1DC值移位的开始位置的各基底矢量<vnk>进行与上述相同的处理。这样一来,当在步骤S44的判别中是x>p时,在步骤S45中,把开始位置x初始化为「0」,并且,在开始位置y+1。在步骤S46中,判别是否y>q(例如,q=31)。在不是y>q的情况下,返回步骤S33(②),此时,对在y方向上进行了1DC值移位的开始位置的各基底矢量<vnk>进行与上述相同的处理。以此类推,当在步骤S46的判别中是y>q时,对于嵌套图象的全部开始位置(x,y)∈
×
,尝试全部取样间隔(sx,sy)∈(1,1),(1,2),(2,1),(2,2)的各基底矢量<vnk>。处理进到步骤S47。
在步骤S47中,从残差矢量<d>减去在此时刻造成最小的近似误差εr的正交基底矢量α<v’>,求出误差的幅值,判别该幅值是否小于允许值Z。在不小于的情况下,在步骤S48中,用{<d>-α<v’>}来置换残差矢量<d>,进行更新。而且,设在此时刻造成最小的近似误差εr的展开系数α、基底矢量<v>、正交基底矢量<v’>的内容为αnk、<vnk>、<v’nk>退避·保持在存储区域中。因此,当nk=1时,保存·保持α1、<v1>、<v’1>。并且,在nk上+1,返回步骤S32(①)。
以此类推即,当在步骤S47中的判别是近似残差小于允许值Z时,进到步骤S49,把由各正交基底矢量αnk<v’nk>(其中,nk=1,2,…)的线性组合组成的矢量变换为由各基底矢量βnk<βnk>{相当于图11(C)的各基底矢量<unk>}的线性组合组成的矢量。以下把系数β称为基底矢量<v>的展开系数。
在此,具体说明上述步骤S49的变换方法。当k=1~nk时,当由基底矢量<vk>{其中,相当于上述图11(C)的基底矢量<unk>}组成的矩阵为V,由标量展开系数βk组成的矩阵为B,由正规化正交基底矢量<v’k>组成的矩阵为V’,由标量系数αk组成的矩阵为A时,把它们分别设置为
V=[v1,v2,…,vnk] V‘=[v1’,v2’,…’vnk’]A=α1α2...αnk]]>上述步骤S49的变换可以通过设置为VB=V’A来得到。为了对矩阵B来求解其,首先,把矩阵V变换为正方矩阵,把矩阵VT(VT是V的转置矩阵)从左乘以矩阵V,而得到VTVB=VTV’A该矩阵(VTV)被展开为这样VTV=v1v2...vnk[v1,v2,…,vnk]=v1•v1v1•v2…v1•vnkv2•v1v2•v2…v2•vnk............vnk•v1vnk•v2…vnk•vnk]]>其中,<vi>·<vj>表示内积,并且,由于<vi>·<vj>=<vj>·<vi>,对于对角要素,得到对称的正方矩阵,并且,由于<vi>与<vj>不相同,而存在逆矩阵。因此,进一步从左乘以矩阵(VTV)的逆矩阵(VTV)-1,而得到(VTV)-1VTVB=B=(VTV)-1VTV’A这样,在本实施例中,为使与残差矢量<d>的误差近似于小于允许值Z,在探索了所需要的最低限度个数nk的正交化基底矢量<v’nk>之后,用原来的基底矢量<vnk>(=<unk>)的线性结合来表示它们,并且,求出各基底矢量<vnk>的展开系数βnk,把它们进行编码,通过这样的构成,在解码时,就不需要GRAM SCHMIDT的正交化计算。并且,省略了把范数正规化为1的处理。
图12(A)的(b)表示了基底数nk=3时的残差矢量的近似图形。最初,求出使与残差矢量<d>的误差εr成为最小的第一基底矢量α1<v’1>。接着,与该矢量<v’1>正交,并且求出使与所更新的其余的残差矢量<d’>的误差εr成为最小的第二正交基底矢量α2<v’2>。接着,与该矢量<v’2>正交,并且求出使与所更新的其余的残差矢量<d’’>的误差εr成为最小的第三正交基底矢量α3<v’3>。
返回图3,在步骤S9中,判别是否使用的基底数nk>7。当nk>7(8以上)时,即使使用基底矢量也不会产生图象压缩的优点,因此,进到步骤S19,将基底数「8」作为代码F1,将使用基底数「0」作为代码F2,以及将残差矢量<d>本身作为代码F3,分别输出。当nk≤7时,进到步骤S10,与上述基底矢量的使用一起来执行以下的标量量化处理。
在标量量化处理中,首先,通过下式来求出以所选择的nk个之内所选择的顺序采用各个m个(0≤m≤nk)的基底时的误差矢量<dm>dm=d-Σi=1mβivi]]>并且,m=0时的 代表零矢量。而且,用相当于没有被采用的其余基底数yk=nk-m的代码量来对该误差矢量<dm>进行标量量化。即,用与其余基底数yk相对应的量化系数Qyk对误差矢量<dm>进行标量量化,用[-2yk-1,2yk-1-1]的值域来对该值限幅。
因此,这样标量量化·限幅的误差矢量<d’m>在其解码后并不限于与原来的误差矢量<dm>相同。因此,预先对各个m(m=1,2,…,nk),用分别与各量化误差矢量<d’m>相对应的量化系数Qyk进行逆量化,来求出各逆量化误差矢量<d’’m>,寻找误差‖<dm>-<d’’m>‖成为最小的m,最终,生成采用该m个基底时的代码。
在图8(B)中显示了标量量化表。
当nk=8时,使用一个基底时(m=1)的其余基底数yk=7,以此类推使用7个基底时(m=7)的其余基底数yk=1。
而且,在后述中,在本实施例中,对于一个基底,在其代码中使用2字节,因此,当使用八个基底时,总的代码长度为16字节。但是,如果有16字节的容量,能够直接对16维的残差矢量<d>进行编码,因此,就没有进行适当正交化处理的质量。所以,在0~7个的范围内使用基底,据此,其余基底数yk为7~1。
各量化系数Qyk根据其余基底数yk而预先决定。优选地,对各量化系数Qyk做这样的选择把误差矢量<dm>容纳在其余基底数yk的代码量内。
当其余基底数yk=1时,可以在误差矢量<dm>的标量量化中使用16×1比特。这是误差矢量<dm>的每个要素中1比特的代码量。即,在此情况下,用Qyk=8来对误差矢量<dm>进行标量量化,把其值限幅为[-21-1,21-1-1]=[-1,0]。其中,例如,代码的比特「0」对应于幅值「-1」,比特「1」对应于幅值「0」。以此类推,当其余基底数yk=7时,可以在误差矢量<dm>的标量量化中使用16×7比特。这是误差矢量<dm>的每个要素中7比特的代码量。在此情况下,用Qyk=2来对误差矢量<dm>进行标量量化,把其值限幅为[-27-1,27-1-1]=[-64,63]。这样,通过同时使用m个基底和标量量化的误差,能够不改变代码量而提高图象质量。由于不需要其余基底数yk部分的展开系数β,则减少了若干代码量。
图7是标量量化处理的流程图。在步骤S61中,把使用基底数计数用的寄存器m初始化为「0」。在步骤S62中,求出采用m个基底后的误差矢量<dm>。而且,m=0时的∑项表示零矢量。即,误差矢量<d0>=<d>(残差矢量)。在步骤S63中,通过nk(1≤nk≤7)个之中的这次的尝试,用yk=nk-m来求出未被使用的其余基底数yk。在步骤S64中,用Qyk对误差矢量<dm>进行标量量化,将所得结果的误差矢量<d’m>的各元素限幅在[-2yk-1,2yk-1-1]的范围内。
在步骤S65中,用相同的Qyk对上述量化(并且限幅)后的误差矢量<d’m>进行标量逆量化。在步骤S66中,求出把原来的误差矢量<dm>与上述逆量化的误差矢量<d’’m>进行比较时的误差εrm,把其保存在预定区域内。在步骤S67中,在寄存器m上+1。在步骤S68中,判别是否m>nk(1≤nk≤7)。当不是m>nk时,返回步骤S62,进行上述同样的处理。
在上述步骤S68的判别中,当m>nk时,求出采用各m(m=0,1,2,3,…,nk)个基底时的误差εr0~εrnk。在步骤S69中,从误差εr0~εrnk中抽出最小的误差εrmk。在步骤S70中,将基底数nk作为代码F1输出。在步骤S71中,将使用基底数(有效基底数)mk作为代码F2输出。在步骤S72中,把用Q(例如8)对各使用基底的嵌套上的开始位置(x,y)、二次取样间隔(sx,sy)以及各使用基底的展开系数β进行量化的剩余在每个基底中压缩为16比特,而作为代码F4输出。
代码F4的细目为在嵌套上的开始位置(x,y)中的横6比特和纵5比特的共计11比特、4种之中的任一个二次取样间隔中的2比特、在展开系数β的剩余中的3比特,总共16比特。这样,代码F4在每个使用基底中占用2字节。
在步骤S73中,将用Q(例如8)对上述基底的展开系数β进行量化的商作为代码F5而输出。在步骤S74中,把成为上述最小的逆量化误差εrmk时的误差矢量<d’mk>分配到相当于其余基底数yk的16×(nk-mk)比特的区域中,而作为代码F3输出。接着,退出该处理。
返回图3,在此时刻,原始图象的残差矢量<d>的编码结束。而且,在步骤S11中,使地址寄存器i+4,在步骤S12中,判别是否i>n。当不是i>n时,返回步骤S5,对于下一个离开在i轴方向上偏移了4比特的位置的1残差矢量<d>,进行上述相同的处理,进行编码。以此类推,在上述步骤S12的判别中,当i>n时,在步骤S13中,把i初始化为「0」,并且,使j+4。在步骤S14中,判别是否j>m,当不是j>m时,返回步骤S5,对于下一个在j轴方向上偏移了4比特的残差矢量<d>,进行上述相同的处理,进行编码。以此类推即,在上述步骤S14的判别中,当j>m时,对全部图象的残差矢量<d>的上述编码处理结束。
在图12(B)中表示图象压缩编码的表。在以下的说明中,参照该表。
返回图3,在步骤S15中,对可变长度代码F1,F2,F5进行霍夫曼编码,并输出。但是,对于代码F1的基底数「nk」,仅在nk=0时,考虑扫描宽度,来进行霍夫曼编码。对于代码F2的使用基底数「mk」,同样进行考虑。对于代码F5,对用常数Q(例如8)对展开系数β进行量化的商进行霍夫曼编码。而且,在其余基底数yk≠0的情况下,写入用于表示象素块的切换的代码EOB。
在步骤S16中,对可变长度代码F6进行霍夫曼编码,并输出。代码F6是用量化系数Qs对由DC值的2维DPCM所产生的预测残差ΔDCJ,I进行量化的。但是,仅在预测残差ΔDCJ,I=0时,考虑扫描宽度,而分别独立地对预测残差ΔDCJ,I和扫描宽度进行霍夫曼编码。
在步骤S17中,对可变长度代码F3,固定长度代码F4进行霍夫曼编码,并输出。代码F3是用Qyk对使用基底数mk>0时的最终误差矢量<d’mk>进行标量量化[<d’mk>/Qyk]的代码,当使用基底数mk=0时,为原始的残差矢量<d>的代码。代码F4在每个基底中由嵌套的开始位置(x,y)的11比特、二次取样系数(sx,sy)的2比特、在展开系数β的剩余(β/Q)的3比特,总共16比特固定组成,它们按使用基底的出现顺序一个接一个地构成。
而且,作为上述代码的全体,以象素块为单位,按出现顺序一个接一个地构成代码串。实际上,在大半的块中,基底数nk变成为2个左右,并且所得到的少量可变长度代码仅是作为用Q对基底的展开系数β进行量化的商和DC图象的DPCM代码以及基底数「nk」,以及所使用的基底数「mk」本身。
图13是实施例的图象解码处理的流程图。在步骤S81中,读入图象编码数据。在步骤S82中,对Y,U,V的各DC值进行解冻(解码)。因此,通过DC’’J,I=DC’J,I+[ΔDCJ,I/Qs]Qs,来得到解码结果的DC值DC’’J,I。在此,DC’J,I是解码侧的DC的预测值,由DC’J,I=(DC’’J,I-1+DC’’J-1,I)/2来提供。在步骤S83中,从Y成分的DC值来生成嵌套。嵌套可以通过另外收取DC图象上的开始位置和尺寸的信息来生成。在步骤S84中,把解码(再现)图象的地址寄存器i,j共同初始化为「0」。
在步骤S85中,输入与块图象(即残差矢量)相关的编码数据。在步骤S86中,判别是否基底数nk>0。当nk=0时,在步骤S97中,通过后述的不分段的交流成分预测法来求出16象素的亮度数据。当nk>0时,进一步在步骤S87中判别是否使用基底数mk>0。
当mk=0时,在步骤S96中,对残差矢量<d>进行逆量化。在步骤S90中,把解码DC与求得的残差矢量<d>相加。当mk>0时,在步骤S88中,求出其余基底数yk(=nk-mk),用Qyk对误差矢量<d’mk>进行逆量化。在步骤S89中,从符合各基底的开始位置(x,y)、二次取样间隔(sx,sy)的嵌套来制作mk个基底矢量,取与展开系数β的积,来形成由它们的线性组合构成的近似矢量(正交基底系统),误差矢量<d’mk>与其进行合成,而再现原来的残差矢量<d>。在步骤S90中,把解码DC值与求出的残差矢量<d>相加。这样,通过上述任一种方法来再现4×4的块图象Tj,i。在步骤S91中,把再现图象Tj,i存储在图象存储器中。
在步骤S92中,使地址寄存器i+4,在步骤S93中,判别是否i>n。当不是i>n时,返回步骤S85,此时,对下一列的块图象数据Tj,i进行解码,并存储在图象存储器中。以此类推,在步骤S93的判别中,当i>n时,在步骤S94中,把i初始化为「0」,并且使j+4。在步骤S95中,判别是否j>m,当不是j>m时,则返回步骤S85,此时,对下一行的各块图象数据Tj,i进行解码,并将其存储在图象存储器中。以此类推即,在步骤S93的判别中,当i>n时,就结束图象解码处理。
而且,虽未图示,将从YUV系统变换为RGB系统。此时,在U,V的上取样中,不利用插补滤波器,把相同的值代入横向2象素。
图14是实施例的不分段的交流成分预测处理的图形。在本实施例中,通过不分段的交流成分预测法来从附近的DC图象一举生成原始象素块的近似图象(AC图象)。
因此,根据上述现有的分段的交流成分预测法,通过下式从包含注目块的周围4块的各DC值(S,U,R,B,L)推定有关的块S上的小块S1~S4的各DC值S1=S+(U+L-B-R)/8S2=S+(U+R-B-L)/8S3=S+(B+L-U-R)/8S4=S+(B+R-U-L)/8
在图14(A)中再次表示了与上述图17(B)相同的图。同样,在该第一段中,推定U1~U4,L1~L4,R1~R4,B1~B4等。而且,通过循环使用上述方法,通过下式推定出S1上的4象素P1~P4的各象素值P1=S1+(U3+L2-S3-S2)/8P2=S1+(U3+S2-S3-L2)/8P3=S1+(S3+L2-U3-S2)/8P4=S1+(S3+S2-U3-L2)/8通过下式推定出小块S2上的4象素P1~P4的各象素值P1=S2+(U4+S1-S4-R1)/8P2=S2+(U4+R1-S4-S1)/8P3=S2+(S4+S1-U4-R1)/8P4=S2+(S4+R1-U4-S1)/8通过下式推定出小块S3上的4象素P1~P4的各象素值P1=S3+(S1+L4-B1-S4)/8P2=S3+(S1+S4-B1-L4)/8P3=S3+(B1+L4-S1-S4)/8P4=S3+(B1+S4-S1-L4)/8通过下式推定出小块S4上的4象素P1~P4的各象素值P1=S4+(S2+S3-B2-R3)/8P2=S4+(S2+R3-B2-S3)/8P4=S4+(B2+S3-S2-R3)/8P3=S4+(B2+R3-S2-S3)/8图14(B)表示本实施例的不分段的交流成分预测法。在以下的说明中,参照图14(A)。首先,当求出S1上的4象素P1~P4时,进行S2≈S3≈S,U3≈U,L2≈L的各个近似。当把该近似用于上述S1上的P1的式中时,得到P1=S1+(U3+L2-S3-S2)/8=S1+(U+L-S-S)/8而且,当把上述S1的式S1=S+(U+L-B-R)/8代入该式时,S1上的P1最终用P1=S+(2U+2L-2S-B-R)/8来表示。
并且,对于上述S1上的P2,得到P2=S1+(U3+S2-S3-L2)/8=S1+(U+S-S-L)/8进而,当把上述S1的式S1=S+(U+L-B-R)/8代入该式时,S1上的P2最终用P2=S+(2U-B-R)/8来表示。
并且,对于上述S1上的P3,得到P3=S1+(S3+L2-U3-S2)/8=S1+(S+L-U-S)/8进而,当把上述S1的式S1=S+(U+L-B-R)/8代入该式时,S1上的P3最终用P3=S+(2L-B-R)/8来表示。
并且,对于上述S1上的P4,得到P4=S1+(S3+S2-U3-L2)/8=S1+(S+S-U-L)/8进而,当把上述S1的式S1=S+(U+L-B-R)/8代入该式时,S1上的P4最终用P4=S+(2S-B-R)/8来表示。
这样,S1上的P1~P4最终用下式表示
P1=S+(2U+2L-2S-B-R)/8P2=S+(2U-B-R)/8P3=S+(2L-B-R)/8P4=S+(2S-B-R)/8接着,当求出S2上的4象素P1~P4时,进行S1≈S4≈S,R1≈R,U4≈U的各个近似。当把该近似用于上述S2上的P1的式中时,得到P1=S2+(U4+S1-S4-R1)/8=S2+(U+S-S-R)/8而且,当把上述S2的式S2=S+(U+R-B-L)/8代入该式时,S2上的P1最终用P1=S+(2U-B-L)/8来表示。
并且,对于上述S2上的P2,得到P2=S2+(U4+R1-S4-S1)/8=S2+(U+R-S-S)/8进而,当把上述S2的式S2=S+(U+R-B-L)/8代入该式时,S2上的P2最终用P2=S+(2U+2R-2S-B-L)/8来表示。
并且,对于上述S2上的P3,得到P3=S2+(S4+S1-U4-R1)/8=S2+(S+S-U-R)/8进而,当把上述S2的式S2=S+(U+R-B-L)/8代入该式时,S2上的P3最终用P3=S+(2S-B-L)/8来表示。
并且,对于上述S2上的P4,得到P4=S2+(S4+R1-U4-S1)/8=S2+(S+R-U-S)/8进而,当把上述S2的式S2=S+(U+R-B-L)/8代入该式时,S2上的P4最终用P4=S+(2R-B-L)/8来表示。
这样,S2上的P1~P4最终用下式表示P1=S+(2U-B-L)/8P2=S+(2U+2R-2S-B-L)/8P3=S+(2S-B-L)/8P4=S+(2R-B-L)/8接着,当求出S3上的4象素P1~P4时,进行S1≈S4≈S,L4≈L,B1≈B的各个近似。当把该近似用于上述S3上的P1的式中时,得到P1=S3+(S1+L4-B1-S4)/8=S3+(S+L-B-S)/8而且,当把上述S3的式S3=S+(B+L-U-R)/8代入该式时,S3上的P1最终用P1=S+(2L-U-R)/8来表示。
并且,对于上述S3上的P2,得到P2=S3+(S1+S4-B1-L4)/8=S3+(S+S-B-L)/8进而,当把上述S3的式S3=S+(B+L-U-R)/8代入该式时,S3上的P3最终用P2=S+(2S-U-R)/8来表示。
并且,对于上述S3上的P3,得到P3=S3+(B1+L4-S1-S4)/8=S3+(B+L-S-S)/8进而,当把上述S3的式S3=S+(B+L-U-R)/8代入该式时,S3上的P3最终用P3=S+(2B+2L-2S-U-R)/8来表示。
并且,对于上述S3上的P4,得到P4=S3+(B1+S4-S1-L4)/8=S3+(B+S-S-L)/8进而,当把上述S3的式S3=S+(B+L-U-R)/8代入该式时,S3上的P4最终用P4=S+(2B-U-R)/8来表示。
这样,S3上的P1~P4最终用下式表示P1=S+(2L-U-R)/8P2=S+(2S-U-R)/8P3=S+(2B+2L-2S-U-R)/8P4=S+(2B-U-R)/8接着,当求出S4上的4象素P1~P4时,进行S2≈S3≈S,R3≈R,B2≈B的各个近似。当把该近似用于上述S4上的P1的式中时,得到P1=S4+(S2+S3-B2-R3)/8=S4+(S+S-B-R)/8而且,当把上述S4的式S4=S+(B+R-U-L)/8代入该式时,S4上的P1最终用P1=S+(2S-U-L)/8来表示。
并且,对于上述S4上的P2,得到P2=S4+(S2+R3-B2-S3)/8=S4+(S+R-B-S)/8进而,当把上述S4的式S4=S+(B+R-U-L)/8代入该式时,S4上的P2最终用P2=S+(2R-U-L)/8来表示。
并且,对于上述S4上的P3,得到P3=S4+(B2+S3-S2-R3)/8=S4+(B+S-S-R)/8进而,当把上述S4的式S4=S+(B+R-U-L)/8代入该式时,S4上的P3最终用P3=S+(2B-U-L)/8来表示。
并且,对于上述S4上的P4,得到P4=S4+(B2+R3-S2-S3)/8=S4+(B+R-S-S)/8进而,当把上述S4的式S4=S+(B+R-U-L)/8代入该式时,S4上的P4最终用P4=S+(2B+2R-2S-U-L)/8来表示。
这样,S4上的P1~P4最终用下式表示P1=S+(2S-U-L)/8P2=S+(2R-U-L)/8P3=S+(2B-U-L)/8P4=S+(2B+2R-2S-U-L)/8这样一来,根据本实施例,从包含自己的附近的各DC值(S,U,R,B,L)直接(不分段)地求出4×4象素的近似象素。
图15是实施例的编码效率的曲线图。使用取样图象(320×240象素,1象素的RGB各成分为8比特精度),用BPP(Bit Per Pixel每象素的比特)、与BPR=[压缩后的总数据量(比特)]/[原图象的象素数]相对应的PSNR(峰-峰信噪比)、PSNR[dB]=20log10(255ϵ2),]]>来评价编码性能。其中,ε2表示每个象素的均方误差。
图15(A)表示使用动画图象的情况,实线表示本实施例的情况,虚线表示JPEG的情况,如图所示的那样,得到大大高于JPEG的效率的编码性能。图15(B)是使用CG图象的情况,得到与上述相同的倾向。但是,在本方式中,没有见到在正交变换编码法中所特有的蚊噪声和块噪声,则认为本方式对人工图象是有效的。虽未图示,对于自然图象也能得到与JPEG大致相同的性能。
虽然在上述实施例中描述了适用对游戏系统的例子,但是,本发明也可以用于照片图象、动画图象等通常的帧图象的编码/解码。
再有,虽然描述了适用于上述本发明的实施例,但是,在不脱离本发明思想的范围内,可以进行各个部分的构成、处理以及它们的组合的各种变更。
如上述那样,根据本发明,使嵌套轻量化,并且,能够削减可变长度代码量,因此,能够大幅度减轻解码时的计算负荷,即使在性能比较低的系统中,也能在不降低图象质量的情况下利用活动图象和静止图象的图象数据。而且,即使在轮廓部分也不会发生蚊噪声,而能够提供文字和动画图象等的再现性良好的高压缩率的图象数据。
权利要求
1.一种图象编码方法,其特征在于,把图象数据分割成多个象素块,而生成由各个块的平均值组成的DC图象,从各个象素块分离出对应的块平均值,来求出每个块的残差矢量,同时,当残差矢量的幅值大于或等于允许值时,通过使用DC图象的嵌套的自适应正交变换,来求出用于近似残差矢量的一个或者两个以上的正交基底,对由它们的线性组合组成的正交基底系统进行编码。
2.根据权利要求1所述的图象编码方法,其特征在于,当残差矢量的幅值小于允许值时,对基底数=0的信息进行编码,以取代求出正交基底的过程。
3.根据权利要求1所述的图象编码方法,其特征在于,当求出的正交基底系统的总代码量大于等于残差矢量的总代码量时,对残差矢量进行编码,以取代正交基底系统的编码。
4.根据权利要求1所述的图象编码方法,其特征在于,通过预先求出的基底数nk,当与残差矢量<d>的第一误差<dnk>成为小于允许值时,把按上述所求出的基底顺序使用m(0≤m<nk)个基底之后的第二误差矢量<dm>,用根据未使用的其余基底数yk(=nk-m)而预先决定的量化系数Qyk来进行标量量化,并且,把其进行标量逆量化;从用上述第二误差矢量<dm>减去标量逆量化的第二误差矢量而得到的nk种类的第三误差矢量<d’m>和上述第一误差<dnk>之中,选择最小的误差;同时将对应的基底以及必要时的第二误差矢量来进行编码。
5.一种图象编码/解码方法,其特征在于,根据包含由K×K象素的块平均值组成的自身块S的上下左右U,B,L,R的共计5个DC图象数据,按下式求出自身块S上的左上的第一小块S1的(K/2)×(K/2)的各象素数据P1~P4P1=S+(2U+2L-2S-B-R)/8P2=S+(2U-B-R)/8P3=S+(2L-B-R)/8P4=S+(2S-B-R)/8并且,按下式求出自身块S上的右上的第二小块S2的(K/2)×(K/2)的各象素数据P1~P4P1=S+(2U-B-L)/8P2=S+(2U+2R-2S-B-L)/8P3=S+(2S-B-L)/8P4=S+(2R-B-L)/8并且,按下式求出自身块S上的左下的第三小块S3的(K/2)×(K/2)的各象素数据P1~P4P1=S+(2L-U-R)/8P2=S+(2S-U-R)/8P3=S+(2B+2L-2S-U-R)/8P4=S+(2B-U-R)/8并且,按下式求出自身块S上的右下的第四小块S4的(K/2)×(K/2)的各象素数据P1~P4P1=S+(2S-U-L)/8P2=S+(2R-U-L)/8P3=S+(2B-U-L)/8P4=S+(2B+2R-2S-U-L)/8。
6.一种能够进行计算机读取的记录媒体,记录用于由计算机执行权利要求1至5任一项所记载的处理的程序。
全文摘要
本发明涉及图象编码/解码方法以及记录其程序的记录媒体,保持图象数据的高图象质量并且提高数据压缩率,同时能够减轻解码时的计算负荷。在图1(A)中,分割图象数据来生成由各块平均值组成的DC图象,从各象素块分离出对应的块平均值,来求出每块的残差矢量,当残差矢量的幅值为允许值以上时,通过使用DC图象的嵌套的适当正交变换,来求出用于近似残差矢量的正交基底,进行编码。在图1(B)中,当残差矢量小于允许值时,取代对正交基底进行编码,在解码侧,根据包含由4×4象素的块平均值组成的块S的上下左右U,B,L,R的共计5组DC图象数据,通过不分段的交流成分预测法来直接再现块S上的4×4象素的各象素数据。
文档编号H04N7/30GK1307782SQ99808012
公开日2001年8月8日 申请日期1999年6月3日 优先权日1998年7月3日
发明者三浦高志, 板垣史彦, 川岛深雪 申请人:株式会社哈德森
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1