图像处理的制作方法

文档序号:7609618阅读:280来源:国知局
专利名称:图像处理的制作方法
技术领域
一般来说,本发明涉及图像处理,以及更具体来说,涉及用于对图像编码和解码的方法及系统。
背景图像和图形在数据处理系统及用户终端、如计算机上、特别是在移动终端上的呈现和渲染在近些年来极大地增加。例如,三维(3D)图形和图像在这类终端上具有许多吸引人的应用,其中包括游戏、3D地图和消息传递、屏幕保护程序及人机界面。
3D图形渲染过程通常包括三个子阶段。简言之,第一阶段即应用阶段创建若干三角形。这些三角形的角在第二阶段、即几何阶段被变换、投影及变亮。在第三阶段即光栅化阶段,通常称为纹理的图像可“粘合”到三角形上,从而增加渲染图像的真实性。第三阶段还采用z缓冲器来执行分类。
但是,图像和纹理、特别是3D图像和图形的渲染在图形系统所需的存储器带宽及处理能力方面是计算费用高的任务。例如,纹理在两个方面都是高费用的在存储器方面,纹理必须放入快速片上存储器,在存储器带宽方面,纹理可能被存取多次以绘制单个像素。
为了减小带宽和处理能力要求,通常采用图像(纹理)编码方法或系统。这种编码系统应当在渲染过程中产生昂贵片上存储器的更有效利用和较低存储器带宽,因而产生更低功耗和/或更快渲染。带宽和处理能力要求的这种减小对于具有少量存储空间、极少存储器带宽和有限电力(电池供电)的瘦客户机、如移动单元和电话特别重要。
Delp和Mitchell[1]描述一种称作块截取编码(BTC)、用于图像编码的简单方案。他们的方案通过一次考虑4像素×4像素的块对灰度图像进行编码。对于每个这样的块,产生两个8位灰度值,以及块中的各像素则采用单个位对这些灰度之一进行索引。这产生每个像素2位(bpp)的压缩率。但是,首先是在边缘周围的区域中以及包含坡降灰度的低对比度区域中,BTC受到伪像产生的损害。此外,BTC所处理的灰度图像中的边缘具有参差不齐的趋势。
一种称作色彩单元压缩(CCC)的BTC的简单扩展由Campbell等人提出[2]。不是对各图像块采用两个8位灰度值,而是将两个8位值作为索引用于调色板。这种调色板包括用于R、G和B分量的每个的由8位表示的256种色彩。8位索引则指向调色板中的一种(24位)色彩。这允许图像以2bpp进行的压缩。但是,这要求调色板中的存储器查找。另外,调色板的大小受到限制。CCC方案还引入大的色彩“锯齿”,并且在图像块中存在两种以上色彩的情况中的编码较差。
在专利说明[3]中,Iourcha等人公开一种称作S3TC(S3纹理压缩)或DXTC(DirectX纹理压缩)的纹理压缩方案,它可看作是CCC的扩展。图像被分解为4像素×4像素的多个图像块。每个这样的图像块被编码为64位的位序列,因而产生4bpp的压缩率。64位序列包括两个基本色或色彩码字(各16位)以及2位索引的32位序列,图像块中的每个像素用一个索引。在解码期间,产生四种色彩的调色板。调色板的前两个RGB(红、绿和蓝)色彩对应于两种基本色(码字)。处于RGB空间中的基本色之间的两种附加色则从其内插。每个2位索引则对于各像素标识要用于那个像素的调色板的四种色之一。
虽然S3TC方案对于计算机终端相当适用,但它不太适合于移动单元和其它瘦客户机。这类移动单元通常仅具有最多16或32位的存储总线。因此,如果在移动单元中实现S3TC,则要求至少两次、可能多达四次的存储器存取来读出图像块的64位压缩形式。另外,在调色板的两种附加色的内插期间,执行1/3和2/3的乘法,这在硬件中不理想。采用S3TC的压缩至少在移动终端上还比较费时。
Akenine-Mller和Strm[4]开发了S3TC的一种变体,称作POOMA,它专门针对移动电话。在POOMA中,3像素×2像素的图像块被编码为32位,从而提供5.33bpp。图像块的已编码32位表示适合于通常最多32位的移动电话的存储总线。因此,与S3TC的两次存取相比,像素可以仅采用一次存储器存取来呈现。POOMA采用两种基本色,但是只有一种附加色内插于基本色之间,从而产生三色调色板。
POOMA的主要缺点是3×2像素的块大小。因此,特定像素或纹素(纹理元素)的块地址的计算要求除以3,这对于硬件设计不是理想的。此外,图形中纹理(图像)的宽度和高度通常始终为二的幂,这表示3的块宽度是不便的。对于S3TC,采用POOMA的编码比较费时,尤其是在移动终端上实现时。
Fenny[5]公开一种用于移动电话的MBX图形硬件平台中的图像编码方案。这种方案采用两个低分辨率图像,在其中,一个图像一般为原始图像的低通滤波形式。在解码期间,创建这两个图像的双线性扩大(放大)。各像素还存储这两个放大图像之间的混合因子。64位用于对各图像块进行编码,以及描述2bpp和4bpp的压缩率。需要来自相邻图像块的信息,它使解码复杂化。

发明内容
本发明克服了先有技术方案的这些及其它缺陷。
本发明的一个一般目的是提供一种有效的图像处理。
本发明的另一个目的是提供一种有效的图像编码和图像解码。
本发明的又一个目的是提供适合用于具有低存储器和存储器带宽容量的瘦客户机的图像编码及解码。
本发明的另一个目的是提供适合用于三维(3D)图形和图像的图像编码及解码。
由所附专利权利要求所定义的本发明满足这些及其它目的。
简言之,本发明涉及对图像进行编码(压缩)以及对编码(压缩)图像进行解码(解压缩)的形式的图像处理。
根据本发明,要编码的图像被分解为包含多个图像元素(像素或纹理元素、纹素)的多个图像块。图像块优选地包括八个图像元素,并且具有2m×2n个图像元素的大小,其中m=3-n且n=0,1,2,3。块中的各图像元素由色彩、例如12位RGB(红、绿、蓝)色来表征。然后,图像块被编码。
在这种有损块编码中,为图像块确定色彩码字。色彩码字是图像块的图像元素的色彩的表示。一种优选表示是块中的图像元素的色彩的平均值,量化为12位(RGB色彩的三色分量的每个4位)。因此,对于图像块、即对于图像块的所有图像元素产生同一个色彩码字(即色彩表示)。此后,为图像块提供强度码字。这种强度码字是(在解码期间)用于修改或调制图像块中的图像元素的强度的多个强度修改符的集合的表示。一旦提供了强度码字,则选择图像块中的图像元素的强度表示。每个这种强度表示与来自强度修改符集合的强度修改符关联。换言之,强度表示允许从集合中标识哪个强度修改符用于块的特定图像元素。
所得编码图像块则包括优选为12位的色彩码字、优选为4位的强度码字以及优选为8×2=16位的强度表示序列。因此,编码图像块的所得大小仅为32位,得到每个像素(图像元素)4位的压缩率。这个小的32位大小极适合于通常具有16或32位的存储总线的瘦客户机,如移动单元和电话。因此,则仅需要一次或者最坏情况下为两次存储器存取从存储单元读出编码图像块。
在本发明的一个优选实施例中,强度码字为允许标识强度修改符集合的强度索引。这个索引则可标识或指向包含若干不同的强度修改符集合的表或码本中的集合。每个集合优选地包括四个(数学上)互补的修改符值。在这种情况中,表中存储的修改符集合仅需要各包括两个不同的强度修改符值,然后,集合的另外两个(互补)值可从其中计算。另外,强度表优选地包括其中包含适合允许表示平滑变化表面的小强度修改符值的集合以及其中包含适合允许表示陡沿的大强度修改符值的集合。
在解码期间,应当被解码的编码图像块被识别并且例如从存储单元中取出。一旦识别了正确的编码图像块,则提供强度修改符集合。这个修改符集合根据编码图像块中的强度码字来提供。这种集合提供优选地通过借助于强度码字从包含多个修改符集合的强度表中识别强度修改符集合来执行。
此后,对于图像块的图像元素的至少一个产生色彩表示。这个色彩生成根据编码块表示中的色彩码字来执行。然后选择要用于应当被解码的图像元素的强度修改符。根据与图像元素关联并在编码图像块的表示序列中找到的强度表示从所提供的修改符集合中选择修改符值。一旦选择了正确的强度修改符值,则采用这个值来修改图像元素的强度。
优选地对于应当在当前编码图像块中被解码的所有图像元素来执行强度修改符的选择以及强度的修改。然后,优选地对于包含应当被解码的图像元素的所有图像块重复进行块解码。此后,原始图像或者其部分的解码表示可根据解码图像元素和块来产生。
色彩表示优选地通过将色彩码字的三个4位色彩分量扩大为三个8位分量来产生。所得24位色彩则被分配给要被解码的图像块的图像元素。图像元素的强度优选地通过将强度修改符与各色彩分量相加或相乘来修改,或者各色彩分量以其它方式采用强度修改符来调制。此后,所得的强度修改后的色彩分量被钳制在最小与最大门限值之间。
本发明的图像编码和解码可适用于几种不同类型的图像,其中包括1D、2D和3D“合成”图像、照片、文本、游戏、3D地图和画面、3D消息,例如动画消息、屏幕保护程序、人机界面(MMI)等。
由于编码图像块的小(32位)大小,本发明极适合于具有有限存储器容量和带宽的瘦客户机。另外,编码极为迅速,使得它还可在具有低时钟频率的终端中执行。此外,解码可极简单地通过例如仅使用几个标准组件的硬件来实现。
本发明提供以下优点-极适合于人类视觉系统,因为亮度分量比色度分量更好地被保留;-为不同的图像类型提供高质量(峰值信号/噪声比);-解码的硬件实现极为简单;-编码极为迅速,它还允许在具有低时钟频率的终端中实现;-在计算机上以可行速度进行穷举编码是可能的;以及-编码图像数据的大小适合具有有限存储器容量和带宽的瘦客户机。
通过阅读以下对本发明的实施例的描述,将会了解本发明提供的其它优点。
附图概述通过以下参照附图进行的描述,可以极好地理解本发明以及其它目的和优点,附图包括

图1是流程图,说明根据本发明的图像编码方法;图2说明根据本发明的图像块的一个实施例;图3说明根据本发明的图像块的另一个实施例;图4说明根据本发明的图像块的编码表示的一个实施例;图5是流程图,更详细地说明图1的色彩码字确定步骤;图6是流程图,更详细地说明图1的强度码字提供步骤和强度表示选择步骤;图7是流程图,说明根据本发明的图像解码方法;图8是流程图,更详细地说明图7的提供强度修改符集合和产生色彩表示的步骤;
图9是流程图,更详细地说明图7的强度修改步骤;图10示意说明具有根据本发明的图像编码器和解码器的用户终端的一个实例;图11是框图,示意说明根据本发明的图像编码器的一个实施例;图12是框图,示意说明根据本发明的图像编码器的另一个实施例;图13是框图,示意说明根据本发明的块编码器的一个实施例;图14是框图,示意说明根据本发明的块编码器的另一个实施例;图15是框图,更详细地示意说明图13和图14的块编码器的色彩量化器;图16是框图,示意说明根据本发明的图像解码器的一个实施例;图17是框图,示意说明根据本发明的图像解码器的另一个实施例;图18是框图,示意说明根据本发明的块解码器的一个实施例;图19是硬件框图,示意说明根据本发明的块解码器的一个实施例;图20是硬件框图,更详细地说明图19的位扩展器的一个实施例;图21是硬件框图,更详细地说明图19的表查找的一个实施例;以及图22是硬件框图,更详细地说明图19的钳位器的一个实施例。
详细说明在所有图中,相同的参考标号将用于相应或相似的元件。
本发明涉及图像和图形处理,以及具体来说,涉及对图像进行编码或压缩以及对编码(压缩)图像进行解码或解压缩。
一般来说,根据本发明,在图像编码期间,图像被分解或分为多个图像块。每个这样的图像块则包括其中还具有某种色彩的多个图像元素。然后,可对图像块编码以产生图像的编码表示。
当编码图像或图形图元随后要呈现、例如显示在屏幕上时,编码图像块的相干图像元素被识别和解码。这些解码图像元素则用来产生原始图像或图形图元的解码表示。
本发明极适合与三维(3D)图形配合使用,例如游戏、3D地图和画面、3D消息,例如动画消息、屏幕保护程序、人机界面(MMI)等,但是不限于此。因此,本发明还可用于对其它类型的图像或图形进行编码,例如一维(1D)或二维(2D)图像。
在3D图形处理中,通常创建若干三角形,并确定这些三角形的角的相应屏幕坐标。图像(或图像的一部分)或者所谓的纹理被映射(“粘合”)到每个三角形上。但是,在纹理的存储所使用的存储器方面以及当从存储器取纹理时在存储器存取期间在存储器带宽方面,对于图形系统,纹理的管理是高成本的。特别对于具有有限存储容量和带宽的瘦客户机、如移动单元和电话,这是一个问题。因此,往往采用纹理或图像编码方案。在这种方案中,纹理通常被分解或分为多个包含多个纹素的图像块。然后,图像块被编码并存储在存储器中。注意,编码图像块(图像块的编码形式)的大小比图像块的未编码形式的相应大小更小。
在本发明中,表达“图像元素”表示图像块中的元素或者图像块的编码表示。这种图像块又对应于图像或纹理的一部分。因此,根据本发明,图像元素可能是(1D、2D或3D)纹理的纹素(纹理元素)或(1D、2D或3D)图像的像素。一般来说,图像元素由某些图像元素属性、如色值来表征。此外,以下的术语“图像”用来表示可通过本发明来编码和解码的任何1D、2D或3D图像或纹理,其中包括但不限于照片、游戏类型纹理、文本、制图等。
图1说明根据本发明对图像进行编码的(有损)方法。在第一步骤S1,图像被分解或分为多个图像块。每个这样的图像块则包括多个图像元素。在本发明的一个优选实施例中,图像块包括八个图像元素(像素或纹素),并且具有2m×2n个图像元素的大小,其中m=3-n且n=0,1,2,3。更优选地,n为1或2。图2和图3示意说明根据本发明、具有八个图像元素610的图像块600的两个实例。在图2中,高度为两个图像元素610,以及宽度为四个图像元素610,即m=1和n=2,而对于图3中的图像块600,m=2和n=1。再看图1,整个图像块优选地在步骤S1中分解为(非重叠)图像块。但是,在一些应用中,只有图像的一部分被编码,因而只有这个部分才被分解为图像块。
以下步骤S2到S4执行图像块的编码或压缩。首先,在步骤S2,对图像块确定色彩码字。这个色彩码字是图像块中的图像元素的色彩的表示。在一个优选实施例中,色彩码字是块的图像元素的平均色的表示。色彩可能是RGB(红、绿、蓝)色,即YUV空间或者YCrCb空间或者用于图像和图形处理及管理的其它任何专有色彩空间中的色彩。色彩码字优选地采用与图像相同的色彩格式(空间)。但是,在一些情况中,将图像转换为不同的色彩格式可能是有用的,即,具有第一色彩空间中的色彩码字以及第二个不同的色彩空间中的原始图像。色彩码字优选地为12位色彩表示序列。例如,RGB色彩码字可包括红色分量的4位、绿色分量的4位以及蓝色分量的4位。
相应地,YUV色彩码字可分别包括三种不同分量的6位、3位和3位。
注意,对于图像块、即对于图像块的所有图像元素产生同一个色彩码字(即色彩表示)。
此后,在步骤S3提供强度码字。这种强度码字是(在解码期间)用于修改图像块中的图像元素的强度的多个强度修改符的集合的表示。
在本发明的一个优选实施例中,强度码字为允许标识强度修改符集合的强度索引。这个索引则可标识或指向包含若干不同的强度修改符集合的表或码本中的集合。每个集合包括两个或两个以上强度修改符值,优选地至少四个修改符值。另外,集合的修改符值优选地为数学上互补的值,即每个集合优选地是对称的。例如,一种可能的强度修改符集合可能是[-a,-b,b,a],其中a和b是正整数,且a>b。
强度表优选地包括一些集合,其中包含适合允许平滑变化表面的表示的小强度修改符值。另外,表优选地还包括一些集合,其中包含适合陡沿的表示的大强度修改符值。
表中的集合的实际强度修改符值可通过从随机值开始、然后采用本领域的技术人员已知的诸如LBG算法的一些版本(Linde、Buzo和Gray)[6]、模拟退火和坐标搜索之类的多个不同优化方案及算法对这些值进行优化来找出。例如照片、游戏类型纹理、文本等的不同类型的少量图像可用作训练数据。
为了使强度表的硬件实现费用更低,如上所述,集合的强度修改符可能必需是对称的,和/或给定集合的强度修改符可能是通过某个因子、例如二进行修改的另一个集合的强度修改符的副本。
表1说明包含强度修改符的16个集合的强度表的一个当前优选实例,其中每个集合中有四个修改符值。
表1

在表1中,强度修改符集合9-16是与因子二相乘的集合1-8的副本。
如果强度表包括最多16个不同的强度修改符集合,则强度码字优选地为4位索引(0000bin-1111bin),标识表的(16个)集合之一,例如[-8,-2,2,8]用于码字0000bin(0000基数2)。由于集合中的修改符值的仔细选择(对称集合以及集合的一半是另一半的二倍),整个表1可以仅采用16个修改符值来重构,其余48个值可从其中计算。
但是,本发明不限于表1的使用,而是可采用具有其它强度修改符集合和值的其它表。此外,对于表中多于或少于16个集合,强度码字的大小可能必需改变。例如,如果表包括两个(3-4、5-8或者多于16)强度修改符集合,则码字大小可限制为一位(两位、三位或多于四位)。另外,每个集合的强度修改符值的数量可能不同于四,例如每个集合可能使用五个值,给出[-8,-2,0,2,8]的实例。表中的集合的强度值可采用若干不同类型的图像作为训练数据来确定,如以上所述。但是,如果只有一个特定图像类型要被编码,则修改符值可采用对应于那个图像类型的训练数据来确定,即给出专用于特定图像类型的强度表。还可能能够具有含适合于特定图像的强度修改符值的强度表。在这些情况、即专用于图像或图像类型的表中,可能必需在编码图像块的压缩文件中包含表的强度修改符值,或者将它们与其关联。
另外,强度码字也不必是指向表中的强度修改符集合的索引或指针,而是实际上可能是强度修改符集合本身,例如包含两个修改符值、如2和8,以及其中其它修改符值、如-2和-8可从这两个值确定。
注意,同一个强度修改符集合用于图像块。
一旦在步骤S3中提供了强度码字,则下一个步骤S4选择图像块中的图像元素的强度表示。每个这种强度表示与来自步骤S3所提供的强度修改符集合的一个强度修改符值关联。换言之,强度表示允许标识集合的哪个强度修改符要用于块的特定图像元素。
在强度修改符集合包含四个修改符值、如-8、-2、2、8的情况中,强度表示可能是标识这四个值之一的2位序列,例如11bin对应于-8,10bin对应于-2,00bin对应于2,以及01bin对应于8。如果每个集合使用四个以上强度修改符值,则对于各强度元素需要两个以上位来标识正确的修改符。
步骤S4优选地对于图像块中的所有图像元素重复进行(由线条1示意表示)。步骤S2到S4的编码的结果是编码图像块,或者更准确地说,是图像块的编码(压缩)表示。这种编码块表示700如图4所示。表示700(编码图像块)包括色彩码字710、强度码字720以及强度表示的序列或位图730(对于块中的每个图像元素优选地为一个强度表示)。注意,编码图像块700的色彩码字710、强度码字720和强度表示序列730的相互顺序可能与图中所示不同。
如果图像块包括八个图像元素(例如参见图2和图3),并且各强度表示为2位,则序列730的大小为16位。此外,假定色彩和强度码字的相应大小分别为12和4位。图像块的编码表示700的总大小则为32位,并得到每个像素(图像元素)4位(bpp)的压缩率。表示700的这个小(32位)大小极适合于通常具有16或32位的存储总线的瘦客户机,如移动单元。因此,则仅需要一次或者最坏情况下为两次存储器存取来读出编码表示700。
再参照图1,步骤S2到S4优选地对于步骤S 1的分解期间所提供的所有图像块重复进行(由线条2示意表示)。结果则是编码图像块的序列或文件。所得编码图像块(图像块的编码表示)可在文件中从左到右以及从上到下以它们在步骤S1的块分解中被分解的相同顺序来排序。然后,该方法结束。
编码图像则可提供给存储器以便在其中存储,直到图像的后续呈现、例如显示为止。此外,编码图像可作为编码块表示的信号被提供给发射器,以便(无线或有线)传送给另一个单元。
图5更详细地说明图1的步骤S2的一个实施例。在步骤S10,确定图像块中的图像元素的平均色。下面假定图像的像素或纹素(图像元素)的色彩由RGB色的24位来表示,即红色分量的8位、绿色分量的8位以及蓝色分量的8位。但是,本发明不限于这个具体实例,而是可适用于像素和纹素的任何色彩表示。平均色(B,G,B)则被确定为R‾=1NΣi=1NRi]]>G‾=1NΣi=1NGi]]>B‾=1NΣi=1NBi]]>其中,Ri、Gi、Bi是图像元素i的R、G、B分量,以及N是图像块中的图像元素的总数。
一旦在步骤S10中确定了平均色(R,G,B),则下一个步骤S11对平均色进行量化。(24位)平均色优选地量化为12位序列(色彩码字)。换言之,每个8位平均分量被量化为4位平均分量。例如,如果平均色R、G、B被计算为1788821=B25815hex=101100100101100000010101bin]]>4位量化形式 可由下式产生1708517=AA5511hex=101010100101010100010001bin]]>即,[A,5,1]hex=[1010,0101,0001]bin可用作(12位)色彩码字。然后,该方法继续进行到图1的步骤S3。
图6更详细地说明图1的步骤S3和S4的一个实施例。步骤S20调查表的不同强度修改符集合和集合的不同修改符值,以及对于每个这种修改符集合和修改符值测试计算误差值。根据这些误差值,在步骤S21中选取产生最小误差值的修改符集合和集合的强度修改符值。下面更详细地描述这种情况。然后,该方法结束。
下面结合三个不同实例更详细地论述图像块的编码。在这些实例中,采用对应于表1的强度表。
简单编码为了根据本发明的这个实施例对图像块进行编码,主要选取色彩码字和正确的强度修改符集合。一旦进行了这个步骤,图像块中的各图像元素的编码通过尝试集合的所有四个强度修改符并计算误差来进行。假定图像元素的原始(24位)色彩为(R,G,B),色彩码字(量化平均色,12位)为 以及所选修改符集合为[-a,-b,b,a]。误差值则可确定为ϵ2=(R‾^+α-R)2+(G‾^+α-G)2+(B‾^+α-B)2---(2)]]>
其中,α∈[-a,-b,b,a]。对于图像块中的图像元素的每个,选取使误差ε2为最小的α。这可通过计算图像元素的修改符值的第一选择的误差值并存储这个第一误差值(以及修改符值的所选选择)来实现。此后,对于修改符值的不同选择来计算误差值。这个误差值则与存储值进行比较。如果它小于存储值,则存储值由这个新的误差值取代,并且还存储用于计算这个误差值的修改符值。然后,对于修改符和集合的所有组合重复进行这个步骤。
等式(2)将提供峰值信号/噪声比(PSNR)方面的最佳性能,因为它将使图像中的均方误差为最小。但是,在感知上,它可能不会产生最佳结果。对于其中的p1在原始图像中似乎比p2更亮的某些像素(图像元素)p1和p2,p2可能在图像的解码形式中看来比p1更亮。其原因在于,红、绿和蓝色分量没有对人类视觉系统感知为强度的方面起相等的作用。由于绿色分量对强度的感知提供不成比例的作用,因此它的近似值应当比红色和蓝色更准确(更精确)地表示。因此,可采用加权误差值,例如ϵ2=wR(R‾^+α-R)2+wG(G‾^+α-G)2+wB(B‾^+α-B)2---(3)]]>其中,WR、WG、WB是色彩分量的不同权。另外,WG还优选地大于WR和WB。例如,WR=516,WG=916]]>以及WB=216,]]>或者WR=0.299,WG=0.587以及WB=0.114。
在这种简单编码中,量化为每个色彩分量4位的块中的八个图像元素的平均色用作色彩码字。然后,正确的强度修改符集合通过穷举搜索来选择,即尝试表中的全部16个集合,并选取使误差值为最小的集合。这对于每个图像元素需要16×4=64次计算。如果权为WR=516,WG=916]]>以及WB=216,]]>则可采用整数算法,并且编码变得更快。对于权的这种选择,采用简单编码的128×128个像素(图像元素)的图像的编码在1.2GHz膝上型个人计算机上花费大约60ms。
穷举编码在以上所述简单编码中,量化平均色只是用作图像块中的图像元素的色彩的表示(色彩码字)。在根据本发明的穷举编码的这个实施例中,色彩以及强度修改符集合(包括修改符值)被选择,即尝试每种可能的组合。对于给定图像元素,除了强度修改符集合的全部4位和强度表示的2位的先前迭代之外,通过色彩的全部12位的进一步迭代也被添加,它共同提供218个步骤。对128×128个像素的图像进行编码采用与简单压缩相同的膝上型个人计算机大约花费5分钟。虽然这对于运行时应用可能太长,但对于离线编码并不是不容许的。将来自穷举编码的结果与来自以上简单编码的结果进行比较表明近似1.5dB的PSNR的差异。图像在视觉上的不同在于,采用简单编码方案进行编码的图像中的某些区域显示色移。其它灰度区域中的单图像块突然得到轻微的绿色阴影。其原因在于,在简单方案中,色彩码字的R、G和B分量被分别量化,它是未达最佳标准的。
组合量化对于简单编码方案,本发明的这个实施例以(24位)平均色(R,G,B)开始,但是,这个平均色的色彩分量与强度分量共同量化,即强度修改符集合和值的选择。
如果Rlow和Rhigh表示直接分别低于和高于R的4位量化等级或值,则使得Rlow≤R≤Rhigh。任务则是选择 作为Rlow或Rhigh。对于绿色和蓝色分量,情况也是这样。
首先,误差值采用(R‾^,G‾^,B‾^)=(Rlow,Glow,Blow)]]>来计算ε2=(Rlow+α-R)2+(Glow+α-G)2+(Blow+α-B)2(4)这可简化为ε2=(δR+α)2+(δG+α)2+(δB+α)2(5)其中,δR=Rlow-R,δG=Glow-G以及δB=Blow-B。此外,假定α(强度修改符)可随意选取,即等于最佳α=-δR+δG+δB3.]]>将这个最佳α插入等式(5),简化后得ϵ2=23(δR2+δG2+δB2-δRδG-δRδB-δGδB)=23ξ---(6)]]>其中,ξ是括号中的表达式。
但是,如果对于红色分量选择较高的值,即(R‾^,G‾^,B‾^)=(Rhigh,Glow,Blow),]]>以及采用Rhigh-R=17+δR的事实,则等式(5)可重写作ε2=((δR+17)+α)2+(δG+α)2+(δB+α)2(7)对于这种情况,通过将最佳α=-δR+17+δG+δB3]]>插入下式,这个表达式可进一步简化ϵ2=23(δR2+δG2+δB2-δRδG-δRδB-δGδB+172+17×2δR-δG-δB)]]>=23(ξ+17[17+2δR-δG-δB])]]>(8)为了确定这两种量化色彩(色彩码字)(Rlow,Glow,Blow)或(Rhigh,Glow,Blow)中的哪一种为最佳、即提供最小误差值,研究等式(8)的中括号内的额外表达式。换言之,如果17+2δR-δG-δB<0,则(Rhigh,Glow,Blow)应当被选取,否则选取(Rlow,Glow,Blow)(在17+2δR-δG-δB=0的情况下,可选取任一码字)。然后,对于三种色彩分量的低和高量化的所有可能的组合、即对于平均色的所有相邻量化色重复这个程序。结果如下表2所示。
表2
注意,不要求ξ被明确计算,只有表2的中括号内的表达式(误差表示)才必须被计算,以便选择要使用的量化等级(色彩码字)。还要注意,色彩码字(Rlow,Glow,Blow)和(Rhigh,Ghigh,Bhigh)提供相同的误差值。这是在假定可达到任何α(强度修改符值)的情况下。但是,实际上,α限制为所使用修改符集合的强度修改符值、例如表1的修改符值。根据表1,更小的修改符值(α)可被指定比更大的值更大的精度,它意味着,如果比起(Rlow,Glow,Blow),(R,G,B)更接近(Rhigh,Ghigh,Bhigh),则选择(Rhigh,Ghigh,Bhigh)比选择(Rlow,Glow,Blow)更好,或者反之。与简单编码相比,本发明的这个实施例的组合量化使PSNR增加大约1dB。因此,PSNR比来自(最佳)穷举编码方案的结果只低大约0.5dB。
与简单编码相比,总编码时间没有显著改变,即128×128个像素的图像仍然在大约60ms被压缩。
还能够采用来自等式(3)的感知加权误差量度来构建对应于表2的表。对于(R‾^,G‾^,B‾^)=(Rlow,Glow,Blow)]]>最佳α则为α=-wR2δR+wG2δG+wB2δBwR2+wG2+wB2.]]>如果Rlow、Glow、Blow和Rhigh、Ghigh、Bhigh的误差值“归一化”为0(基本上对应于对于表2中的R、G和B的所有不同变化从误差值ε2中减去

),则得到以下归一化误差值的表。注意,与表3的Rlow、Glow、Blow和Rhigh、Ghigh、Bhigh不同的色彩码字的归一化误差值对应于表2的中括号内的表达式。
表3

然后,可通过比较“归一化”误差值或表示并且选取产生最小误差值的相邻量化色作为色彩码字,来确定相邻量化色(RXGYBZ,其中X、Y、Z分别表示低或高)中哪一个用作色彩码字。
在相邻量化色当中选择色彩码字的另一种方式是以每个这种量化色压缩图像块,并选取与最小误差关联的那一个。但是,这种方式与只采用表2或3的误差表示来确定适当的色彩码字相比略微慢些,因为与一次相比,块必须压缩八次。
图7说明根据本发明、对原始图像的编码图像或编码形式进行解码的方法的流程图。编码图像基本上包括图像块的若干编码表示,例如图4的表示700。这些编码块表示优选地通过以上结合图1所述的图像编码方法来产生。
该方法一般通过识别要解码的编码图像块开始。可能的是,编码图像的所有编码图像块应当经过解码,以便产生原始图像的解码表示。或者,只有原始图像的一部分将被访问。因此,只有所选数量的图像块必须被解码(或者更准确地说,某些图像块的所选数量的图像元素必须被解码)。
一旦识别了正确的编码图像块(图像块的编码表示),则步骤S30提供强度修改符集合。这个修改符集合根据编码表示中的强度码字来提供。这种集合提供优选地通过借助于强度码字从包含多个修改符集合的表、如以上表1中识别强度修改符集合来执行。但是,在一些应用中,可能的是,强度码字本身包括修改符集合,并且不需要表查找。
在下一个步骤S31,对于图像块的图像元素的至少一个(即对于应当被解码的图像元素)产生色彩表示。这个色彩生成根据编码块表示中的色彩码字来执行。在步骤S32,选择要用于应当被解码的图像元素的强度修改符。根据与图像元素关联并在编码块表示的表示序列中找到的强度表示从步骤S30所提供的修改符集合中选择修改符值。一旦在步骤S32选择了正确的强度修改符值,则在步骤S33采用这个值来修改或调制图像元素的强度。根据本发明的强度修改指的是根据(可能加权的)强度修改符值对色彩表示的所有色彩分量进行修改、例如相加或相乘。
步骤S32和S33可对图像块中的若干图像元素执行(由线条3示意表示)。本发明预计,在一些应用中,只有单图像元素从特定图像块中被解码,特定图像块的多个图像元素被解码,和/或特定块的所有图像元素被解码。
然后,步骤S30到S33优选地对于包含应当被解码的图像元素的所有图像块重复进行(由线条4示意表示)。这意味着,步骤S30到S33的循环可执行一次,但是对于不同的编码图像块往往执行若干次,和/或对于特定编码图像块执行若干次。
在可选步骤S34,原始图像或者它的一部分的解码表示根据解码图像元素和块来产生。注意,在一些应用中,若干图像元素必须被解码,以便呈现解码表示的单像素。例如,在三线性内插中,八个相邻图像元素被解码,以及对于双线性内插,相应数量为四个图像元素,这是本领域的技术人员众所周知的。然后,该方法结束。
图8更详细地说明图7的步骤S30和S31的一个实施例。在步骤S40,通过强度码字从强度表中识别并选取正确的强度修改符集合。如果强度表中存储的强度修改符集合包括修改符值的第一子集、如[a,b],则强度修改符值的第二子集可从第一子集的值来确定,例如[-a,-b]。在下一个步骤S41,优选为12位的色彩码字的量化色优选地扩大或扩展为24位。对于采用RGB色的情况,色彩码字的每个量化的4位色彩分量则扩大为8位色彩分量。对于采用256种不同色彩的实现,这种色彩扩大可通过将量化的4位色彩分量与17相乘来实现(256-116-1=17).]]>这与把4位图案复制到扩大的8位色彩字的前(上)和后(下)4位是相同情况。换言之,1010bin的4位色彩分量扩大为10101010bin。如果色彩码字而是包括15位(每个R、G、B分量5位),则扩大将产生30位色彩。这可通过将(5位)色彩分量乘以33(1024-132-1=33)]]>或者将5位图案复制到扩大的10位色彩字的上和下5位来实现。在步骤S42,扩大的色彩则被分配给要被解码的图像块的图像元素。然后,该方法继续进行到图7的步骤S32。
图9更详细地说明图7的步骤S33的一个实施例。在步骤S50,已识别和选取的强度修改符值被加到扩大的色彩。因此,这个修改符值被加至图像元素的色彩的所有分量(对于RGB色为全部三种)。这可实现为修改符值与所有色彩分量的单一加法。但是,在一些应用中,可能优选在将修改符值加至分量之前对它进行加权。在这种情况中,不同的权可用于不同的色彩分量。在一个备选实施例中,可采用不同于简单加法的另一种类型的修改,例如乘法、XOR或另一个修改。在这种情况中,采用同一个强度修改符值来对扩大的色彩的所有分量执行同样的调制,但是,这个值可能对于分量进行不同的加权。在下一个步骤S51,所得强度修改色彩分量值钳制在最小色彩门限与最大色彩门限之间。例如,如果在将(可能加权的)强度修改符值加至色彩分量之后,所得值小于最小门限,则该值被钳制为这个门限的值。相应地,如果所得值大于最大门限,则门限的值应当用于那个分量。对于具有256种不同色彩的情况,最小和最大门限的一个非限制实例分别为0和255。1024种色彩的对应门限可能是0和1023。然后,该方法继续进行到图7的步骤S34。
下面将通过实例进一步说明对编码图像块的解码。在这个实例中,假定图4所示的编码块表示以及图2所示的图像块。
图像块的编码表示依照1010 0101 0001 0111 11 01 10 00 10 01 0000bin(a517D890hex),其中位0-3是色彩码字的红色分量,位4-7是色彩码字的绿色分量,位8-11是色彩码字的蓝色分量,位12-15是强度码字,以及位16-31是块的图像元素的强度表示序列。
色彩码字则经过解码(扩大),以便产生图像块的色彩表示。色彩码字中的各色彩分量处于4位中,但是通过与17(17=11hex)相乘来扩大为8位,这与将4位图案复制到8位字的上和下4位是相同的情况。
红ahex×11hex=aahex1010 1010bin170绿5hex×11hex=55hex0101 0101bin85蓝1hex×11hex=11hex0001 0001bin17这个扩大的色彩则被分配给图像块的图像元素,得到

要使用的正确强度修改符集合根据强度码字从表1中选取。在表1中看到,0111bin的强度码字对应于强度修改符[-127,-42,42,127]。
强度表示序列使得能够根据下式来标识这四个修改符值中哪一个要用于不同的图像元素
11bin10bin00bin01bin=-127-4242127]]>第一强度表示为11bin,它表示第一强度标识符值-127应当被加入第一图像元素的所有三个分量1708517+-127-127-127=43-42-110]]>所得分量则被钳制在0与255之间,因而得出(43,0,0)。部分解码图像块这时依照

对于下一个图像元素,强度表示为01bin,即强度修改符127应当加至所有三种色彩分量。钳制之后的结果为(255,212,144)。对于块中的所有图像元素重复这种程序将创建如下所示的最终解码图像块

根据本发明的图像编码(图像块编码)和图像解码(图像块解码或处理)方案可在一般数据处理系统中提供,例如在配置用于处理和/或呈现图像的用户终端或其它单元中提供。这种终端可能是计算机。但是,本发明很适合于瘦客户机,例如个人数字助理(PDA)、移动单元和电话。这类终端的特征通常在于有限存储容量和存储带宽,并且由电池供电,即还具有有限电源。由于根据本发明的编码以及解码可以极简单地以硬件、软件或者硬件和软件的组合来实现,以及编码图像块优选地仅具有32位的最大大小,因此,本发明可有利地应用于瘦客户机。
图10说明由移动单元表示的用户终端100。但是,本发明不限于移动单元,而是可通过其它终端和数据处理单元来实现。只有直接涉及本发明的移动单元100中的部件和元件才在图中示出。
移动单元100包括移动单元100中用于处理包括图像数据在内的数据的(中央)处理器(CPU)200。在移动单元100中提供图形系统130用于管理图像和图形数据。具体来说,图形系统130适合在所连接屏幕120或其它显示单元上呈现或显示图像。移动单元100还包括用于在其中存储数据的存储装置或存储器140。在这个存储器140中,可存储图像数据,具体来说是根据本发明的编码图像数据(编码图像块)。由于图像块的小的总大小(32位)以及高压缩率(4bpp),在移动单元100具有有限存储容量的情况中,图像数据也可有效地存储在存储器140中。
根据本发明的图像编码器210在移动单元100中提供。这个编码器210配置用于将图像或纹理编码为图像(或纹理)的编码表示。如上所述,这种编码表示包括多个解码图像块的序列或文件。这个图像编码器210可作为在CPU 200上运行的软件来提供,如图所示。作为补充或替代,编码器210可设置在图形系统130中或者设置在移动单元100中的其它位置。
来自块编码器210的图像的编码表示可通过(存储)总线150提供给存储器140以便在其中存储,直到图像的后续呈现为止。作为补充或替代,编码图像数据可被转发给输入/输出(I/O)单元110,用于(无线或有线)传送给其它外部终端或单元。这个I/O单元110还可适合从外部单元接收图像数据。这个图像数据可能是应当由图像编码器210编码的图像,或者是应当被解码的编码图像数据。还能够将编码图像表示存储在所提供的专用纹理存储器中,例如存储在图形系统130中。此外,作为补充或替代,编码图像的部分可能(暂时)存储在纹理高速缓冲存储器、如图形系统130中。
如果(存储)总线150具有32位的最大带宽,则需要单一存储器存取从存储器140中取出或读出本发明的编码图像表示。但是,如果总线150具有更大的带宽容量、例如64位或者甚至128位,则多个编码图像表示可在单一存储器存取中取出。例如,假定根据图2的64位总线150和图像块大小。如果图像块“一个在另一个之上”堆叠,则图像块与存储器140中的后续图像块共同组成图像元素的4×4正方形。但是,如果块被“并排”设置,则图像块与后续块共同组成2×8的框。4×4正方形更为优选,因为如果采用某种形式的纹理高速缓存系统,则查找4×4正方形中的预期图像元素的概率大于2×8框,这是本领域的技术人员众所周知的。
在移动单元100中提供根据本发明的图像解码器220,用于对编码图像进行解码,以便产生解码图像表示。这个解码表示可对应于整个原始图像或者它的一部分。图像解码器220将解码图像数据提供给图形系统130,它通常又当数据在屏幕120上呈现或表示之前对数据进行处理。图像解码器220可设置在图形系统130中,如图所示。作为补充或替代,解码器200可作为在CPU 200上运行的软件来提供,或者在移动单元100中的其它位置上提供。
移动单元100可配备图像编码器210以及图像解码器220,如图所示。但是,对于一些终端100,可能仅包括图像编码器210。在这种情况中,编码图像数据可被传递给执行图像的解码以及可能的图像呈现的另一个终端。相应地,终端100可能仅包括图像解码器220,即没有编码器。这种终端100则从另一个终端接收包含编码图像数据的信号,并对它进行解码以便产生解码图像表示。因此,编码图像信号可在终端之间采用无线电发射器和接收器以无线方式传送。或者,可采用用于根据本发明在终端之间分发图像和编码图像表示的其它技术,例如采用IR端口的IR-技术以及终端之间的图像数据的有线传递。可在终端之间连接及交换的存储卡或芯片还可用于这种图像数据终端间分发。
移动单元100的单元110、130、200、210和220可作为软件、硬件或者它们的组合来提供。
图11说明根据本发明的图像编码器210的一个实施例的框图。编码器210通常包括用于将输入图像分解或分为若干图像块的图像分解器215。分解器215优选地配置用于将图像分解为图像块,其中包括八个图像元素(像素或纹素),即具有8×1或8×1个图像元素的一般大小,更优选地为4×2或2×4个图像元素。这个分解器215可适合于将不同的输入图像分解为具有不同大小的图像块。例如,对于第一图像类型,采用4×2个图像元素的图像块大小,而对于第二类型,则可采用8×1的块大小。在这种情况中,分解器215优选地接收输入信息,使得能够标识哪一个图像块格式要用于给定图像。
图像编码器210的这个实施例包括单个块编码器300。这个块编码器300对于从图像分解器所接收的图像块进行编码,以便产生编码块表示。这种图像块表示包括色彩码字、强度码字和强度表示序列。块表示的整体大小远远小于未编码图像块的相应大小。块编码器300优选地配置用于依次对来自分解器215的各图像块进行处理(编码)。
块编码器300优选地包括或者有权使用包含多个强度修改符集合的强度表500。表500的修改符集合在编码期间用于强度以及可能的色彩码字的生成。强度表500可设置在块编码器300中,或者设置在图像编码器210中的其它位置。
图像编码器210可包括单个强度表500。或者,若干不同的表可设置在编码器210中,在其中,表的强度修改符适合用于不同的图像类型,或者表可适合特定图像。例如,第一强度表可在第一图像类型、如照片的编码期间被使用,而第二表则用于对第二类型的图像、如文本进行编码。但是,为了节省存储器,采用来自若干不同图像类型的训练数据所产生的单个强度表500优选地用于编码器210。
图像编码器210的单元215和300可作为软件、硬件或者其组合来提供。单元215、300和500可在图像编码器210中共同实现。或者,分布式实现也是可行的,其中的一部分单元在移动单元中的其它位置上提供。
图12说明根据本发明的图像编码器210的另一个实施例的框图。这个图像编码器210包括如图11的实施例所述的图像分解器215,不作进一步论述。但是,编码器210包括多个(M个,其中的M为大于一的正整数)块编码器300-1到300-M。每个这种块编码器300-1到300-M基本上对应于图11中的图像编码器的块编码器。通过在图像编码器210中提供多个块编码器300-1到300-M,来自分解器215的多个图像块可经过并行处理(编码),这减少总图像编码时间。
每个块编码器300-1到300-M可包括强度表500。不同编码器300-1到300-M中的强度表500均可包括相同的强度修改符值。或者,不同的块编码器可包括不同的表。在这种情况中,一个或数个块编码器可适合于某种图像类型,而其它块编码器则适合于其它图像类型。在一个备选实现中,单个强度表500设置在图像编码器210中,并且连接到所有块编码器300-1到300-M。
图像编码器210的单元215和300-1到300-M可作为软件、硬件或者其组合来提供。单元215、300-1到300-M和500可在图像编码器210中共同实现。或者,分布式实现也是可行的,其中的一部分单元在移动单元中的其它位置提供。
图13说明根据本发明的块编码器300的一个实施例的框图,例如图11中的图像编码器的块编码器或者图12的图像编码器中的块编码器之一。编码器300包括色彩量化器310,它确定图像块中的图像元素的色彩的色彩表示,并对这个色彩表示进行量化。色彩表示优选地为图像元素的24位平均色,并且由量化器310依次量化为12位色彩表示、即色彩码字。
强度量化器320在块编码器300中提供,用于识别要用于当前图像块的强度修改符集合。量化器320优选地配置用于从关联强度表500中选择这个修改符集合。然后,量化器320产生与所选修改符集合关联的强度码字。编码器300还包括强度选择器330,它对于图像块中的图像元素从已识别强度修改符集合中选择强度修改符。色彩量化器310、强度量化器320和强度选择器330优选地配置用于色彩和强度码字的组合量化,如前面进行的详细论述。
块编码器300的单元310、320和330可作为软件、硬件或者它们的组合来提供。单元310、320、330和500可共同在块编码器300中实现。或者,分布式实现也是可行的,其中的一部分单元在图像编码器中的其它位置上提供。
图14说明根据本发明的块编码器300的另一个实施例的框图。这个块编码器300包括误差估算器340用于估算误差值,为了选择要用于图像块的强度修改符集合和值以及可能的量化色值。这个估算器340优选地配置用于计算图像块中的图像元素所用的强度修改符集合和值(以及在穷举编码中的色彩)的第一选择的误差值。然后存储这个第一误差值。然后,对于修改符集合和值(以及色彩)的所有可能选择重复进行误差计算,以及在每个计算之后,估算误差值与存储误差进行比较。如果它小于存储值,则它替代先前存储的误差。另外,还存储与误差值关联的修改符集合和值(以及色彩)的选择。一旦已经测试所有组合,产生最小误差的选择用于产生强度(和色彩)码字及强度表示。强度修改符集合选择器322和强度选择器330则选择与最小误差关联的修改符集合和修改符值。块编码器300的其余单元在图13中具有对应性,并且不作进一步论述。或者,块编码器300的这个实施例可根据以上所述的组合量化工作。在这种情况中,色彩量化器310提供图像块的所计算平均色的相邻量化色。误差估算器340确定每个这种相邻量化色的误差表示、如表2或表3中所示,以及产生最小误差表示的相邻量化色被选作图像块的色彩码字。
块编码器300的单元310、320、322、330和340可作为软件、硬件或者它们的组合来提供。单元310、320、322、330、340和500可共同在块编码器300中实现。或者,分布式实现也是可行的,其中的一部分单元在图像编码器中的其它位置上提供。
根据本发明的色彩量化器310的一个优选实现如图15的框图所示。量化器310包括配置用于确定图像块中的图像元素的色彩的平均值的部件312。这个平均色优选地为RGB色,但是可能是用于图像处理的其它任何色彩格式。这个已确定平均色则被提供给量化部件314,它对平均色进行量化。量化器314优选地配置用于将来自色彩平均器312的24位平均RGB色量化为12位RGB色。
色彩量化器310的单元312和314可作为软件、硬件或者其组合来提供。单元310和314可在色彩量化器310中共同实现。或者,分布式实现也是可行的,其中的一部分单元在块编码器中的其它位置上提供。
图16说明根据本发明的块解码器220的一个实施例的框图。块解码器220优选地包括块选择器222,它适合于例如从存储器中选择哪一个编码图像块应当提供给块解码器400用于解码。块选择器222优选地例如从头部或呈现引擎中接收与编码图像数据关联的输入信息。具有预期图像元素的编码图像块的地址则根据输入信息来计算。这个计算地址优选地取决于图像中的图像元素(像素或纹素)坐标。采用该地址,块选择器222从存储器识别编码图像块。这个已识别编码图像块则从存储装置中取出,并提供给块解码器400。
对图像块的图像元素的(随机)存取有利地实现仅对所需的图像的那些部分的有选择解码。此外,图像还可按照需要数据的任何顺序来解码。例如,在纹理映射中,可能仅需要纹理的一部分,以及一般将以非连续顺序来要求这些部分。因此,本发明的图像解码可有利地适用于仅处理图像的一部分。所选编码图像块则被转发给块解码器400。除了图像块之外,解码器400还优选地接收指定块的哪些图像元素应当被解码的信息。信息可指定整个图像块、即其中的所有图像元素应当被解码。但是,所接收信息可以仅标识应当被解码的图像元素中的单个或者几个。块解码器400则产生块中的图像元素的解码表示。这个解码表示优选地为P位色彩,其中的P是原始图像中的每个图像元素的位数、如24位RGB色。块解码器400优选地包括在解码程序中使用的强度表500。或者,这个强度表500可在图像解码器220中的其它位置上提供。以上结合图11所述的对于不同图像类型的不同强度表的使用也适用于图像解码器220。
可选图像合成器224可在解码器220中提供。这个合成器接收来自块解码器400的解码图像元素,并将它们合成以便产生可在屏幕上呈现或显示的像素。合成器224可能需要若干输入图像元素来产生单个像素。这个图像合成器224或者可在图形系统中提供。
块解码器220的单元222、224和400可作为软件、硬件或者它们的组合来提供。单元222、224、400和500可共同在块解码器220中实现。或者,分布式实现也是可行的,其中的一部分单元在移动单元中的其它位置上提供。
图17说明根据本发明的图像解码器220的另一个实施例的框图。块选择器222和图像合成器224与图16中的对应单元相似,并且不作进一步论述。
图像解码器220包括多个块解码器400-1到400-Q(Q为大于一的正整数)。通过有权访问多个块解码器400-1到400-Q,图像解码器220可并行处理(解码)多个编码图像块。这些多个块解码器400-1到400-Q允许提高图像解码器220的处理性能及效率的并行处理。例如,一个解码图像元素一般足以用于最近邻域内插,而对于双线性(三线性)内插则需要四个(八个)图像元素。每个块解码器400-1到400-Q可包括用于解码的强度表500。或者,单个表500设置在图像解码器220中,并且连接到所有块解码器400-1到400-Q。参见以上结合图12所述,采用不同类型的强度表的进一步论述也适用于图像解码器220。
图像解码器220的单元222、224和400-1到400-Q可作为软件、硬件或者它们的组合来提供。单元222、224、400-1到400-Q和500可共同在图像解码器220中实现。或者,分布式实现也是可行的,其中的一部分单元在移动单元中的其它位置上提供。
图18是根据本发明的块解码器400的一个实施例的说明。块解码器400包括用于根据强度码字从关联强度表500提供强度修改符集合的部件410。这个提供器410可配置用于从强度表500中取出修改符值的第一子集,并根据第一子集来确定修改符的第二子集。色彩生成器420根据色彩码字对图像块中的所有图像元素产生单个色彩表示。这个生成器420优选地将码字的12位色彩扩大为24位(RGB)色彩。
强度修改符选择器430设置用于从部件410所提供的修改符集合中选择强度修改符值中的一个。修改符选择器430配置用于根据强度表示序列对编码图像块中的图像元素选择正确修改符值。来自色彩生成器420的扩大色彩以及来自修改符选择器430的修改符值被转发给强度调制器或修改器440,它采用修改符值来修改扩大色彩的色彩分量的强度。修改器440可采用加权强度修改符值,其中的不同权用于不同的色彩分量。此外,一旦色彩分量经过强度修改,则修改器440优选地将分量钳制在最大与最小门限之间、如0与255之间。
块解码器400的单元410、420、430和440可作为软件、硬件或者它们的组合来提供。单元410、420、430、440和500可共同在块解码器400中实现。或者,分布式实现也是可行的,其中的一部分单元在图像解码器中的其它位置上提供。
图19示意说明根据本发明的块解码器400的一个可能的硬件实现。对块解码器400的输入是编码块表示700,其中包括12位色彩码字710(红色、绿色和蓝色分量的每个4位)、4位强度码字720以及16位强度序列730。
色彩码字被提供给色彩生成器420,它通过三位扩展器422到426来实现。第一位扩展器422接收4位红色分量,第二424和第三426扩展器分别接收4位绿色和蓝色分量。来自相应扩展器422到426的输出为8位色彩分量。这个8位分量只通过将输入分量与17相乘、或者将分量与16相乘再加上该分量来获得。或者,扩展器422到426可作为移位器和OR门来实现,例如,(1011bin<<4)OR 1011bin=10110000binOR 1011bin=1011 1011bin,其中,<<4对应于将字向左移动四位。
修改符选择器430作为多路转接器435来实现。3位地址索引被输入到这个多路转接器435。根据地址索引,多路转接器435选择八个图像元素中哪一个要解码。与所选图像元素关联的2位强度表示则被转发给表查找415。这个表查找对应于图18的修改符集合提供器410和强度表500。采用输入强度码字和强度表示,查找415从表中的修改符集合之一中取出正确的强度修改符值。这个9位有符号(正或负)修改符值则被提供给强度修改器440。在这个硬件实现中,修改器440包括三个加法器441到443以及三个钳位器444到446。修改符值被输入相应的加法器441到443。第一加法器441将强度修改符值加到来自位扩展器422的8位红色分量。相应地,加法器442和加法器443分别将修改符值加到来自位扩展器424和426的8位绿色和蓝色分量。在一个备选实现中,加法器441到443可用其它修改元件、如乘法器或XOR门来替代。来自加法器441到443的输出被转发给钳位器444到446,它们将强度修改色彩分量钳制在0与255之间。来自钳位器444到446的输出是图像元素的解压缩或解码的24位色彩。
图20示意说明图19的位扩展器422、424、426的可能硬件实现。这些扩展器接收4位(红、绿或蓝)色彩分量,并输出扩展的对应8位色彩分量。在输出的8位色彩分量中,四个最高有效位(MSB)构成输入的4位色彩分量,“第五MSB”对应于输入分量的MSB,“第六MSB”对应于输入分量的“第二MSB”,以及其它两个最低有效位(LSB)对应于输入分量的两个LSB。
图21示意说明图19的表查找415的可能硬件实现。4位输入强度码字的三个LSB输入到两个多路转接器411和412,用于从每个多路转接器411和412的八个可能的修改符值中选择一个7位强度修改符值。如果采用根据表1的强度表,则从这16个强度修改符中,可计算其余48个值。来自多路转接器411和412的所选强度修改符值输入到另一个多路转接器413,它根据来自图19中的多路转接器435的1位输入数据(2位强度表示中的1位)来选择这些值之一。所选修改符值则被转发给多路转接器416以及转发给对修改符值求反的求反部件414。这个求反值也被转发给多路转接器416。这个多路转接器416根据来自图19的多路转接器435的强度表示的其余位来选择正的7位强度修改符值或者求反值。所选(8位)修改符值则被送到多路转接器418以及送到移位器417,它将修改符值向左移动一位,从而产生9位强度修改符(对应于基数十的值与二的乘积)。多路转接器418则根据来自强度码字的MSB来选择8位修改符值或者9位修改符值。来自选择的结果是用于特定图像元素的来自64个可能的修改符值的9位强度修改符值。
图22示意说明图19的钳位器444、445、446的可能硬件实现。对钳位器444、445、446的输入为10位强度修改后的色彩分量值。这个输入值的八个LSB被送到多路转接器447。对多路转接器的另一个输入为最大门限值(255;8位)。多路转接器447根据强度修改后的色彩分量的第二MSB来选择8位输入值或者最大门限值。换言之,如果这个第二MSB等于一,则多路转接器447输出门限值,否则(第二MSB等于零),8位输入值输出到第二多路转接器448。这个第二多路转接器448根据色彩分量的MSB,把来自第一多路转接器447的输出与最小门限值(0;8位)进行比较。如果这个MSB或符号位等于一,则来自第一多路转接器447的输出为负,以及最小门限值应当由第二多路转接器448来选取。但是,如果符号位为零,则来自第一多路转接器447的输出也应当从第二多路转接器448中输出。
图19的块编码器400的硬件解决方案极为简单,如果位扩展器422、424、426、表查找415以及钳位器444、445、446分别根据图20、图21和图22来实现,则它基本上仅包括三个加法、一个求反以及12个多路转接器。
这应当与采用S3TC方案[3]的解压缩进行比较,后者需要多达42个加法以及两个多路转接器。
本领域的技术人员会理解,可以对本发明进行各种修改和变更,而没有背离所附权利要求定义的本发明的范围。
参考文献[1]E.J.Delp和O.R.Mitchell的“采用块截取编码的图像压缩”,IEEE Transaction on Communications,Vol.COM-2,No.9,第1335-1342页,1979年9月[2]G.Campbell、T.A.DeFanti、J.Frederiksen、S.A.Joyce、L.A.Leske、J.A.Lindberg和D.J.Sandin的“二位/像素全色编码”,SIGGRAPH’86 Conference Proceedings,Vol.20,No.4,第215-223页,1986年8月[3]美国专利No.5956431[4]T.Akenine-Mller和J.Strm的“大量的图形移动电话的硬件体系结构”,ACM Transactions on Graphics,Vol.22,No.3,Proceedings of ACM SIGGRAPH 2003,第801-808页,2003年7月[5]S.Fenney的“采用低频信号调制的纹理压缩”,GraphicsHardware 2003,第84-91页,2003年7月[6]Y.Linde、A.Buzo和R.Gray的“用于向量量化器设计的算法”,IEEE Transactions on Communications,Vol.28,第84-94页,1980年1月
权利要求
1.一种压缩包括多个图像元素(610)的图像块(600)的方法,所述方法包括以下步骤-确定作为所述图像块(600)中的所述图像元素(610)的色彩的表示的色彩码字(710);-提供作为用于修改所述图像块(600)中的所述图像元素(610)的强度的多个强度修改符的集合的表示的强度码字(720);以及-对于所述图像块(600)中的各图像元素(610),选择与来自所述强度修改符集合的强度修改符关联的强度表示(730)。
2.一种对图像进行编码的方法,所述方法包括以下步骤-将所述图像分解为图像块(600),各图像块(600)包括多个图像元素(610);以及-对于至少一个图像块(600),通过以下步骤来确定编码表示(700)-确定作为所述图像块(600)中的所述图像元素(610)的色彩的表示的色彩码字(710);-提供作为用于修改所述图像块(600)中的所述图像元素(610)的强度的多个强度修改符的集合的表示的强度码字(720);以及-对于所述图像块(600)中的各图像元素(610),选择与来自所述强度修改符集合的强度修改符关联的强度表示(730)。
3.如权利要求2所述的方法,其特征在于,确定所述编码表示(700)的所述步骤对每个图像块(600)执行。
4.如权利要求1至3中的任一项所述的方法,其特征在于,确定所述色彩码字(710)的所述步骤包括以下步骤-确定所述图像块(600)中的所述图像元素(610)的平均色;以及-对所述平均色进行量化。
5.如权利要求4所述的方法,其特征在于,对所述平均色进行量化的所述步骤包括以下步骤-对于所述平均色的各相邻量化色确定误差表示;以及-选择与最小误差表示关联的相邻量化色作为所述量化平均色。
6.如权利要求5所述的方法,其特征在于,所述误差表示是加权误差表示。
7.如权利要求5或6所述的方法,其特征在于,确定所述误差表示的所述步骤包括以下步骤-对于各相邻量化色,压缩所述图像块(600);以及-对于各相邻量化色,根据所述图像块(600)与所述图像块(600)的所述压缩表示的比较来确定所述误差表示。
8.如权利要求1至7中的任一项所述的方法,其特征在于,所述强度修改符集合包括数学上互补的强度修改符值。
9.如权利要求1至8中的任一项所述的方法,其特征在于,所述强度码字(720)提供步骤包括从包含多个强度修改符集合的强度表(500)中选择所述强度修改符集合,由此所述强度码字(720)使得能够从所述表(500)中标识所述所选强度修改符集合。
10.如权利要求9所述的方法,其特征在于,选择所述强度修改符集合以及选择所述强度表示(730)的所述步骤包括以下步骤-对于所述图像块(600)中的各图像元素(610),确定原始色值与采用来自所述强度表(500)的强度修改符集合的强度修改符修改强度的平均色之间的差值;-根据所述已确定差值来估算误差值;以及-选择使所述误差值最小的强度修改符集合和强度修改符。
11.如权利要求10所述的方法,其特征在于,所述误差值是加权误差值,用于给定色彩分量的权对于所述原始色和所述平均色是相等的。
12.如权利要求9所述的方法,其特征在于,确定所述色彩码字(710)、选择所述强度修改符集合以及选择所述强度表示(730)的所述步骤包括以下步骤-对于所述图像块(600)中的各图像元素(610),确定原始色值与采用来自所述强度表(500)的强度修改符集合的强度修改符修改强度的量化色之间的差值;-根据所述已确定差值来估算误差值;以及-选择使所述误差值最小的量化色、强度修改符集合和强度修改符,由此所述色彩码字(710)包括所述所选量化色。
13.如权利要求12所述的方法,其特征在于,所述误差值是加权误差值,用于给定色彩分量的权对于所述原始色和所述量化色是相等的。
14.如权利要求1至13中的任一项所述的方法,其特征在于,所述图像块(600)包括2m×2n个图像元素(610),其中m=3-n以及n=0,1,2,3。
15.如权利要求1所述的方法,其特征在于,所述图像块(600)的压缩表示(700)为32位序列,其中,所述色彩码字(710)包括12位,所述强度码字(720)包括4位,以及所述强度表示序列(730)包括16位。
16.如权利要求2所述的方法,其特征在于,所述图像块(600)的所述编码表示(700)为32位序列,其中,所述色彩码字(710)包括12位,所述强度码字(720)包括4位,以及所述强度表示序列(730)包括16位。
17.一种处理包括多个图像元素(610)的图像块(600)的压缩表示(700)的方法,所述压缩表示(700)包括色彩码字(710)、强度码字(720)以及强度表示序列(730),以及所述方法包括以下步骤-根据所述强度码字(720)提供多个强度修改符的集合;对于所述图像块(600)中的至少一个图像元素(610)-根据所述色彩码字(710)产生色彩表示;-根据所述强度表示序列(730)从所述强度修改符集合中选择强度修改符;以及-根据所述所选强度修改符来修改所述至少一个图像元素(610)的强度。
18.一种对包括包含多个图像元素(610)的图像块(600)的编码表示(700)的编码图像进行解码的方法,编码表示(700)包括色彩码字(710)、强度码字(720)以及强度表示序列(730),以及对于图像块(600)的至少一个编码表示(700),所述方法包括以下步骤-根据所述强度码字(720)提供多个强度修改符的集合;对于所述图像块(600)中的至少一个图像元素(610)-根据所述色彩码字(710)产生色彩表示;-根据所述强度表示序列(730)从所述强度修改符集合中选择强度修改符;以及-根据所述所选强度修改符来修改所述至少一个图像元素(610)的强度;以及-通过合成多个色彩的和强度修改的图像元素(610)来产生所述编码图像的解码表示。
19.如权利要求17或18所述的方法,其特征在于,所述强度修改符集合包括数学上互补的强度修改符值。
20.如权利要求17至19中的任一项所述的方法,其特征在于,提供所述强度修改符集合的所述步骤包括根据所述强度码字(720)从包含多个强度修改符集合的强度表(500)中选择所述强度修改符集合。
21.如权利要求20所述的方法,其特征在于,所述表(500)包括强度修改符集合的第一子集,所述方法还包括根据所述第一子集中的强度修改符集合的强度修改符来为第二子集确定强度修改符集合的强度修改符。
22.如权利要求17至21中的任一项所述的方法,其特征在于,所述强度表示序列(730)是对于所述图像块(600)的所述表示(700)中的各图像元素(610)包含使得能够标识所述强度修改符集合的所述多个强度修改符中哪一个要用于所述图像元素(610)的强度索引的序列。
23.如权利要求17至22中的任一项所述的方法,其特征在于,所述强度修改步骤包括把所选强度修改符值加至所述色彩表示的所有色彩分量值。
24.如权利要求17至22中的任一项所述的方法,其特征在于,所述强度修改步骤包括把与分量特定权相乘的所选强度修改符值加至所述色彩表示的所有色彩分量值。
25.如权利要求23或24所述的方法,其特征在于,还包括将所述强度修改符值与所述色彩分量值之和钳制在最小门限值与最大门限值之间。
26.如权利要求17至25中的任一项所述的方法,其特征在于,所述图像块(600)包括2m×2n个图像元素(610),其中m=3-n以及n=0,1,2,3。
27.如权利要求17至26中的任一项所述的方法,其特征在于,所述图像块(600)的所述表示(700)为32位序列,其中,所述色彩码字(710)包括12位,所述强度码字(720)包括4位,以及所述强度表示序列(730)包括16位。
28.一种包括多个图像元素(610)的图像块(600)的信号表示(700),所述信号表示(700)包括-作为所述图像块(600)中的所述图像元素(610)的色彩的表示的色彩码字(710);-作为用于修改所述图像块(600)中的所述图像元素(610)的强度的多个强度修改符的集合的表示的强度码字(720);以及-强度表示序列(730),其中,强度表示对于所述图像块(600)中的图像元素(610)与来自所述强度修改符集合的强度修改符关联。
29.如权利要求28所述的信号表示,其特征在于,所述图像块(600)包括2m×2n个图像元素(610),其中m=3-n以及n=0,1,2,3。
30.如权利要求28所述的信号表示,其特征在于,所述信号表示(700)为32位序列,其中,所述色彩码字(710)包括12位,所述强度码字(720)包括4位,以及所述强度表示序列(730)包括16位。
31.一种用于压缩包括多个图像元素(610)的图像块(600)的系统(300),所述系统(300)包括-色彩量化器(310),用于确定作为所述图像块(600)中的所述图像元素(610)的色彩的表示的色彩码字(710);-强度量化器(320),用于提供作为用于修改所述图像块(600)中的所述图像元素(610)的强度的多个强度修改符的集合的表示的强度码字(720);以及-强度表示选择器(330),用于对于所述图像块(600)中的各图像元素(610)选择与来自所述强度修改符集合的强度修改符关联的强度表示(730)。
32.一种图像编码系统(210),包括-图像分解器(215),用于将图像分解为图像块(600),各图像块(600)包括多个图像元素(610);以及-块编码器(300),用于对图像块(600)进行编码以产生所述图像块(600)的编码表示(700),所述块编码器(300)包括-色彩量化器(310),用于确定作为所述图像块(600)中的所述图像元素(610)的色彩的表示的色彩码字(710);-强度量化器(320),用于提供作为用于修改所述图像块(600)中的所述图像元素(610)的强度的多个强度修改符的集合的表示的强度码字(720);以及-强度表示选择器(330),用于对于所述图像块(600)中的各图像元素(610)选择与来自所述强度修改符集合的强度修改符关联的强度表示(730)。
33.如权利要求30或31所述的系统,其特征在于,所述色彩量化器(310)包括-用于确定所述图像块中的所述图像元素的平均色的部件(312);以及-用于对所述平均色进行量化的部件(314)。
34如权利要求32所述的系统,其特征在于,所述量化部件(314)配置用于提供所述平均色的相邻量化色,所述系统(210;300)还包括误差估算器(340),用于对于所述平均色的各相邻量化色来确定误差表示,并且用于选择与最小误差表示关联的相邻量化色作为所述量化平均色。
35.如权利要求33所述的系统,其特征在于,所述误差表示是加权误差表示。
36.如权利要求33或34所述的系统,其特征在于,所述块编码器(300)配置用于对于各相邻量化色来压缩所述图像块(600),以及所述误差估算器(340)配置用于对于各相邻量化色,根据所述图像块(600)与所述图像块(600)的所述压缩表示的比较来确定所述误差表示。
37.如权利要求30至35中的任一项所述的系统,其特征在于,所述强度修改符集合包括数学上互补的强度修改符值。
38.如权利要求30或31所述的系统,其特征在于,还包括其中包含多个强度修改符集合的强度表(500),以及所述强度量化器(320)包括选择器(322),用于从所述强度表(500)中选择所述强度修改符集合,由此所述强度码字(720)使得能够从所述表(500)中标识所述所选强度修改符集合。
39.如权利要求37所述的系统,其特征在于,还包括-用于对于所述图像块(600)中的各图像元素(610)来确定原始色值与采用来自所述强度表(500)的强度修改符集合的强度修改符修改强度的平均色之间的差值的部件(340);以及-误差估算器(340),用于根据所述已确定差值来估算误差值,以及所述修改符集合选择器(322)和所述表示选择器(330)配置用于选择使所述误差值为最小的强度修改符集和强度修改符。
40.如权利要求38所述的系统,其特征在于,所述误差估算器(340)适合于估算加权误差值,给定色彩分量的加权等于所述原始和所述平均色。
41.如权利要求37所述的系统,其特征在于,还包括-用于对于所述图像块(600)中的各图像元素(610)来确定原始色值与采用来自所述强度表(500)的强度修改符集的强度修改符修改的量化色强度之间的差值的部件(340);以及-误差估算器(340),用于根据所述已确定差值来估算误差值,以及所述色彩量化器(310)、所述修改符集合选择器(322)和所述表示选择器(330)配置用于选择使所述误差值最小的量化色、强度修改符集合和强度修改符,由此所述色彩码字(710)包括所述所选量化色。
42.如权利要求40所述的系统,其特征在于,所述误差估算器(340)适合于估算加权误差值,用于给定色彩分量的权对于所述原始色和所述量化色是相等的。
43.如权利要求30至41中的任一项所述的系统,其特征在于,所述图像块(600)包括2m×2n个图像元素(610),其中m=3-n以及n=0,1,2,3。
44.如权利要求30所述的系统,其特征在于,所述图像块(600)的压缩表示(700)为32位序列,其中,所述色彩码字(710)包括12位,所述强度码字(720)包括4位,以及所述强度表示序列(730)包括16位。
45.如权利要求31所述的系统,其特征在于,所述图像块(600)的所述编码表示(700)为32位序列,其中,所述色彩码字(710)包括12位,所述强度码字(720)包括4位,以及所述强度表示序列(730)包括16位。
46.一种用于处理包括多个图像元素(610)的图像块(600)的压缩表示(700)的系统,所述压缩表示(700)包括色彩码字(710)、强度码字(720)以及强度表示序列(730),以及所述系统(400)包括-用于根据所述强度码字(720)提供多个强度修改符的集合的部件(410);-色彩生成器(420),用于根据所述色彩码字(710)来产生所述图像块(600)中的至少一个图像元素(610)的色彩表示;-选择器(430),用于对于所述至少一个图像元素(610),根据所述强度表示序列(730)从所述标识的强度修改符集合中选择强度修改符;以及-强度修改器(440),用于根据所述所选强度修改符来修改所述至少一个图像元素(610)的强度。
47.一种用于对包括包含多个图像元素(610)的图像块(600)的编码表示(700)的编码图像进行解码的系统(220),编码表示(700)包括色彩码字(710)、强度码字(720)以及强度表示序列(730),所述系统(220)包括-用于根据所述强度码字(720)为图像块(600)提供多个强度修改符的集合的部件(410);-色彩生成器(420),用于根据所述色彩码字(710)来产生所述图像块(600)中的至少一个图像元素(610)的色彩表示;-选择器(430),用于对于所述至少一个图像元素(610)根据所述强度表示序列(730)从所述标识的强度修改符集合中选择强度修改符;-强度修改器(440),用于根据所述所选强度修改符来修改所述至少一个图像元素(610)的强度;以及-用于合成多个色彩的和强度修改的图像元素(610)以产生所述编码图像的解码表示的部件(225)。
48.如权利要求45或46所述的系统,其特征在于,还包括其中包含多个强度修改符集合的强度表(500),以及用于提供所述强度修改符集合的所述部件配置用于根据所述强度码字(720)从所述强度表(500)中选择所述强度修改符集合。
49.如权利要求45至47中的任一项所述的系统,其特征在于,所述强度修改符集合包括数学上互补的强度修改符值。
50.如权利要求45至48中的任一项所述的系统,其特征在于,所述强度表示序列(730)是对于所述图像块(600)的所述表示(700)中的各图像元素(610)包含使得能够标识所述强度修改符集合的所述多个强度修改符中哪一个要用于所述图像元素(610)的强度索引的序列。
51.如权利要求45至49中的任一项所述的系统,其特征在于,所述强度修改器(440)配置用于把所选强度修改符值加至所述色彩表示的所有色彩分量值。
52.如权利要求45至49中的任一项所述的系统,其特征在于,所述强度修改器(440)配置用于把与分量特定权相乘的所选强度修改符值加至所述色彩表示的所有色彩分量值。
53.如权利要求50或51所述的系统,其特征在于,所述强度修改器(440)配置用于将所述强度修改符值与所述色彩表示值之和钳制在最小门限值与最大门限值之间。
54.如权利要求45至52中的任一项所述的系统,其特征在于,所述图像块(600)包括2m×2n个图像元素(610),其中m=3-n以及n=0,1,2,3。
55.如权利要求45至53中的任一项所述的系统,其特征在于,所述图像块(600)的所述表示(700)为32位序列,其中,所述色彩码字(710)包括12位,所述强度码字(720)包括4位,以及所述强度表示序列(730)包括16位。
全文摘要
在图像编码方案中,输入图像被分解为包括多个图像元素(610)、例如像素或纹素的若干图像块(600)。然后,图像块(600)被编码为编码块表示(700)。这种块表示(700)包括色彩码字(710)、强度码字(720)和强度表示序列(730)。色彩码字(710)是块(600)的图像元素(610)的色彩的表示。强度码字(720)是用于修改块(600)中的图像元素(610)的强度的多个强度修改符的集合的表示。表示序列(730)包括块(600)中的各图像元素(610)的强度表示,其中,表示标识强度修改符集合中的强度修改符中的一个。在解码期间,色彩和强度码字(710,720)以及强度表示(730)用来产生块(600)中的图像元素(610)的解码表示。
文档编号H04N7/30GK1898700SQ200480038094
公开日2007年1月17日 申请日期2004年7月8日 优先权日2003年12月19日
发明者J·斯特伦, T·阿克尼内-默勒 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1