用于计算机图形的图像压缩的制作方法

文档序号:6453700阅读:217来源:国知局

专利名称::用于计算机图形的图像压缩的制作方法
技术领域
:本发明涉及计算机图形,并且更具体地涉及对通常在三维计算机图形中使用的紋理和其他类似图像进行的压缩。
背景技术
:在渲染三维(3D)场景以具有更逼真的外观中通常使用的技术是在3D对象的表面应用紋理。紋理可以被定义为普通二维图像,诸如照片,其作为像素(或紋理元素(texel),以将它们与屏幕像素相区分)阵列存储在存储器中。随着显示器和显示驱动的质量以及计算机中使用的图像加速器的处理能力的增加,对于计算机图像方面的更好图像质量的需求也继续增长。作为一般规则,在紋理上花费的存储器空间和带宽越多,则在最终的3D场景中可以获得的图像质量越好。表示紋理的传统方式是将每个像素的色彩作为三原色的组合来存储,三原色为红、绿和蓝(RGB)。通常为每个分量分配8比特,从而产生每像素24比特(24bpp)。这称作RGB8格式。其他常见的格式包括RGB4和RGB565,RGB4和RGB565使用更少的存储器空间从而牺牲了色域。表示色彩的传统格式的问题在于它们为色彩提供相当受限的动态范围,例如相较于人类同时察觉超过4dB亮度的能力(即,对比度为1:104=1:10000)。因而,利用这些传统方法产生的紋理通常称作低动态范围(LDR)紋理。LDR紋理领域中的实际标准是DXTC(DirectX紋理压缩),也称为S3TC,其在US6,658,146中进一步描述。其他类似方法包括FXT、FLXTC和ETC(爱立信紋理压缩),最后一个方法ETC也在WO05/059836中公开。为了满足对计算机图形方面更好图像质量的需求,已经开发了能够表示真实世界中亮度的全部动态范围的图像格式。这些图像格式称作高动态范围(HDR)格式。新兴的用于存储和操作高动态范围图像的实际标准是OpenEXR,其针对色彩分量使用了16比特或32比特的浮点表示。OpenEXR的动态范围在使用16比特变量时超过lldB,而在使用32比特变量时高达76dB。16比特格式对于大部分目的是足够的,其产生48bpp的实际比特率。HDR紋理的问题在于对比于传统LDR格式,它们消耗了双倍量的存储器和总线带宽。而且,对于LDR紋理存在非常有效的压缩格式可以使比特率下降到原始比特率的六分之一。因此,HDR和LDR紋理之间在存储器和总线带宽消耗上的差异是12倍或更多倍。OpenEXR标准支持多种压缩方法,例如PIZ、ZIP、RLE和PXR24,但是它们都包括技术性缺点,即它们都不允许随机访问压缩的数据,这对于向3D对象上映射紋理来说绝对关键。需要图形硬件能够在不必对全部图像进行解压缩的情况下解压缩图像中任何给定像素。而且,解压缩必须非常快,因为当前的硬件可以每秒获取并且解压缩数十亿的LDR紋理元素,所以任何建议的HDR紋理压缩机制应该达到至少足够接近于上述标准的性能。也可应用于HDR图像的普通图像压缩技术(诸如JPEG和PNG)与OpenEXR的相似之处在于同样不可能随才几访问独立J象素。为了访问例如JPEG图像中的单个像素,该像素为止的全部图像必须被解压缩。这显然太慢了,因为在当前的计算机图形中,比如在3D游戏中,每秒必须访问数百万或甚至数十亿紋理元素。因而,传统图像压缩技术在减小用于永久存储以及通过网络传输的紋理的大小是有用的,但是,它们极少可应用于减少解压缩器中的运行时存储器空间和带宽消耗。本申请人之前的专利申请US11/241,854描述了一种图像压缩方法,其中适当地对HDR紋理图像进行了缩放,从而根据已知的LDR技术可以压缩并且解压缩该图像数据。然而,在某些情况中,缩放将太多的误差引入图像数据中。因此,需要更准确的图像压缩方法。
发明内容现在,发明了一种改进的方法和实现该方法的技术设备,通过该方法和设备,实现了对HDR紋理的有效压缩,而同时允许在^_件中运行时更准确地对每像素进行解压缩。本发明的各种方面包括编码和解码方法、编码器、解码器、编码系统、编码/解码装置和用于执行编码和解码的计算机程序,这些方面的特征在独立权利要求中进行了陈述。本发明的各种实施方式在从属权利要求中进行了公开。根据第一方面,根据本发明的方法基于以下思想对具有由高动态范围的值表示的每个图像像素的色彩分量的图像进行编码,从而图像首先被分解为多个图像块;从每个像素的高动态范围值中,分离出所述图像块中的像素的色彩信息和亮度信息;以及彼此独立地压缩所述图像块中的像素的色彩信息和所述图像块中的像素的亮度信息,从而提供压缩的图像数据。根据一个实施方式,针对所述图像块中的每个像素单独地压缩像素的亮度信息。根据一个实施方式,识别整个图像块内的最小亮度,以及将所述最小亮度的浮点指数作为偏置值存储在压缩块数据表中。根据一个实施方式,所述方法进一步包括将所述偏置值从图像块内的所有亮度值的指数中减去以为每个像素提供偏置的亮度值;以及将最大偏置的亮度值的浮点比特模式的前导零比特的数量存储在压缩块数据表中,从而从所述前导零比特的数量中忽略符号比特。根据一个实施方式,所述方法进一步包括从每个像素的偏置的亮度值的浮点比特模式的前导零比特中移除最大偏置的亮度值的浮点比特模式的前导零比特的数量;以及将得到的每个像素的偏置的亮度值的浮点比特模式中的固定数量的前导比特存储在压缩块数据表中。根据一个实施方式,所述方法进一步包括将所述图像块中的图像数据划分成子块;以及平均所述子块中的像素的色彩信息,以便确定所述子块中的每个像素具有相同的平均色彩值。根据一个实施方式,通过将平均色彩信息除以其色彩分量的和对平均色彩信息进行标准化,从而在所述压缩过程中可以忽略所述标准化的色彩分量中的一个。根据一个实施方式,将剩余的色彩分量编码为7比特定点数。根据一个实施方式,图像块的大小为4x4像素,并且子块的大小为2x2i象素。根据本发明的编码方法提供了显著的优势。主要优势在于在处理HDR紋理时,在存储器容量和所需的总线带宽方面,获得了显著的存储器节省。例如,使用16比特OpenEXR图像格式的非压缩HDR紋理具有48bpp的实际比特率。上迷过程允许将比特率转换为8bpp,从而对比于16比特OpenEXR非压缩的HDR紋理节省了将近85%的存储器。进一步优势在于在解码时,正常图像的图像质量下降非常小或根本不下降。进一步的优势在于可以仅利用对于现有硬件实现的最小修改就可以实现实施方式。根据第二方面,提供一种用于从编码图像数据中解码图像的方法,所述方法包括将所述编码的图像数据分解为多个编码的图像块;对所述图像块的子块中的像素的平均色彩信息进行解码;对所述图像块中的像素的亮度信息进行解码;利用对应的像素的所述平均色彩信息对每个像素的亮度信息进行调制;以及将解码的图像块组成具有原始动态范围的图像。根据一个实施方式,以16比特或32比特的浮点运算表示所述像素的所述色彩分量的所述原始动态范围值。根据一个实施方式,对所述图像块中的像素的亮度信息进行解码的步骤进一步包括为每个像素解码固定数量的亮度值比特;为每个像素解码将要被包括在亮度值比特中的多个前导零比特;以及解码偏置值,所述偏置值被添加到每个像素的亮度值比特中。根据一个实施方式,为了解码编码的图像数据的任何像素,该方法进一步包括识别至少一个将要解码的像素;在将所述编码的图像数据分解为图像块之后,确定包括至少一个将要解码的像素的至少一个图像块的地址;仅取回包括至少一个像素的至少一个图像块以用于解码;以及解码所述至少一个图像块的图像数据以输出所述至少一个像素的经解码的图像数据。有利地,图形子系统的紋理处理硬件解释解码的图像数据,就好像其已经从浮点紋理中直接读出那样。根据本发明的解码方法提供的动态范围以及因此带来的图像质量比传统LDR格式好很多。而且,根据实施方式的随机访问性质使得能够随机地访问任何图像块的任何像素,从而可以有益地仅选择需要的图像段用于解码。本发明的其他方面包括配置为执行上述方法的发明性步骤的各种装置。在下文中,本发明的各种实施方式将参考附图更详细地描述,附图中图1在简化框图中示出了根据本发明实施方式的编码/解码装置;图2在简化框图中示出了根据实施方式的图像处理系统;图3在简化框图中示出了根据实施方式的图像编码器系统;图4在简化框图中示出了根据实施方式的图像解码器系统;以及图5在简化框图中示出了根据实施方式的图像解码器的随机访问子系统。具体实施例方式现在将参考图l说明根据本发明优选实施方式的编码/解码装置的结构。将利用编码配置的功能块来说明该结构。对于技术人员,可以以单个物理设备执行多个功能是显而易见的,例如如果需要,可以在单个处理器中执行所有计算过程。根据图1的示例的编码/解码装置的数据处理系统包括处理单元100、存储器102、存储设备104、输入设备106、输出设备108和图形子系统110,这些都经由数据总线112彼此连接。处理单元100是常规处理单元,诸如IntelPentium处理器、SunSPARC处理器或AMDAthlon处理器。处理单元100在数据处理系统内处理数据。存储器102、存储设备104、输入设备106和输出设备108是本领域的技术人员熟知的常规组件。在数据处理系统100内存储器102和存储设备104存储数据。输入设备106将数据输入到该系统中,而输出i殳备108从该凄t据处理系统接收数据。数据总线112是常规数据总线并且虽然将其示出为单条线段,但是其可以是处理器总线、PCI总线、图像总线和ISA总线的组合。因此,技术人员容易地认识到编码/解码装置可以是任何常规的数据处理设备,比如计算机设备或通信系统的无线终端,该设备包括根据以下进一步描述的实施方式的图像编码器系统和/或图像解码器系统。在图2的框图中进一步描述根据实施方式的图像处理系统200。该图像处理系统200包括图像编码器系统202和图像解码器系统204。图像编码器系统202耦合以从图像源206接收图像。图像解码器系统204耦合到输出208,处理过的图像转发至输出208以用于存储或进一步处理。图像处理系统200可以在图l的数据处理系统内运行,从而该图像编码器系统202通过数据线耦合至图像解码器系统204,并且例如可以经由存储设备104和/或存储器102来耦合。图像处理系统200还可以分布在分离的单元中,包括图像编码器系统202的第一单元和用于经由通信信道发送该编码的图像的发射器,以及包括图像解码器系统204的第二单元和用于接收该编码的图像的接收器。在图像编码器系统202内,将图像分成独立的块并且在作为压缩的或编码的图像数据转发到例如存储设备104之前进行处理。当编码的图像数据准备用于进一步处理时,将该编码的图像数据转发至图像解码器系统204。图像解码器系统204接收该编码的图像数据并且将其解码以生成作为原始图像表示的输出,其中原始图像接收自图像源206。根据现有技术,对每个像素的色彩分量的16比特浮点表示根据表1进行传统地编码。<table>tableseeoriginaldocumentpage15</column></row><table>表l通常基于表l的科学计数法对浮点数进行编码,其中最高的比特是符号,次高的比特(例如,在16比特格式中的5个比特)表示指数,将其偏置以便最小的负值映射为0,并且比特模式的最低部分(8比特十进制部分减去前导的一个比特)是尾数。为每个色彩分量(RGB)产生16比特表示,从而产生了48bpp的实际比特率。目前很多图形硬件还支持所谓的"半浮点,,格式,其具有64bpp的比特率,其中每个像素包括确定像素透明度的阿尔法值。在图3的框图中进一步示出根据实施方式的图像编码器系统202。根据实施方式的图像编码器系统202的操作起源于上述16比特浮点表示。编码的基本思想包括将HDR图像分成合适的块(例如,4x4像素),将色彩和亮度信息从图像数据的浮点格式中分离出来,并且使用有损压缩方案独立地对色彩和亮度信息进行编码。根据此类编码,具有48bpp比特率的HDR图像可以被二进制编码为8bpp的实际比特率,从而保持了视觉保真度并且可能用于硬件实现的随机访问。因而,图像编码器系统包括图像分解器300,头部转换器302、一个或多个块编码器304以及编码的图像组合器306。对于HDR图像的处理,图像分解器300耦合以从源(诸如图像源206)接收原始HDR图像。图像分解器300将来自于原始HDR图像的头部的信息转发至头部转换器302,其修改该原始头部以产生修改的头部。然后,图像分解器300将原始HDR图像分裂或分解为N个图像块IB^其中N是某个整数值。优选地,分解图像以便每个图像块是4像素乘以4像素(16个像素)。技术人员应该理解像素数量或图像块大小可以改变,例如n^n个4象素,其中m和n是正整凝:值。将这些图像块馈送至一个或多个块编码器304中,其中将每个图像块IB,(优选地是4x4像素块)独立编码以支持随机访问。为了对图像块编码,该图像块的每个像素的亮度首先计算为原始数据的红、绿和蓝(RGB)分量的和。根据实施方式,亮度也可以使用整数值划分以扩展数字范围,但是这是以较低端的精度代价而得到的。然后,识别整块内的最小亮度,即具有最小指数的块内的像素,并且将最小亮度的浮点指数存储在压缩块数据的表中。该表优选地包括用于最小指数值的单独字段,在这里称作"expBias(指数偏置)"字段。一旦确定了偏置,从图像块内的所有亮度值的指数中减去该偏置。根据浮点指数(其被创建作为该减法的结果),然后识别该块内具有最大值的像素。然后,识别最大比特值中的不必要的零比特的数量,即具有比特值为零的前导比特,包括符号比特、指数比特和尾数比特的。应该注意,取决于图像块数据,不必要零比特的数量可以在0和7之间变化。最大比特值中的不必要零比特的数量减去一(由于符号比特总是零)存储在压缩块数据表中。该字段在这里称作"bitShift(比特移位),,字段。然后,从该图像块内的每个像素的前导比特中移除所述数量的不必要零比特。根据实施方式,压缩块数据的表包含用于该图像块的每个像素的亮度信息的仅4比特字段。因此,在极端情况中,不可能对块的原始数字范围编码。根据实施方式,编码器包括用于处理情况的预定设置,其中图像块数据包含非常暗的值和非常亮的值。取决于选择的方法,编码器继而可以调节"expBias"值,这导致剪裁了暗值,或将指数值箝位于允许的最大值,从而剪裁了亮值。为了对去偏置的像素亮度编码,每个亮度值的指数字段的最低比特和/或尾数字段的最高比特,共4比特存储在每个像素的亮度字段中。应该注意,在公共浮点比特布局中,比特与原始值相邻,这有利地支持了对编码和解码的简化。通过以下示例进一步说明对图像块的亮度值进行编码的上述过程,其中,出于简化和清楚的目的,仅关于四个像素来讨论编码。表2示出了所述4像素(Pl-P4)的色彩分量的16比特浮点表示。比<table>tableseeoriginaldocumentpage17</column></row><table><table>tableseeoriginaldocumentpage18</column></row><table>表4从剩余比特中,每个像素的4个最高有效位作为亮度值存储在压缩块数据表中。在该示例中,针对每个像素,从指数比特导出两个比特并且从尾数比特导出两个比特。因此,像素P1的亮度比特值是(l,l,l,O),并且其余像素的亮度比特值是P2(0,1,0,0)、P3(0,1,0,0)和P4(0,0,0,1)。技术人员应该理解,取决于图像块数据,不必要零比特("bitShift,,)的数量可以改变,从而在某些其他情况中,可以分别从指数比特或从尾数比特导出所有四个比特。因而,执行上述过程从而有效地对图像数据的动态范围进行编码,以便使得即使丢失某些准确度,也保留HDR图像的高动态范围。压缩效率主要通过色彩编码获得。为了对色彩进行编码,每个图像块IB^(4x4像素块)首先被分成2x2像素的子块,从而每个4x4图像块IB^包括4个2x2像素的子块。然后,确定每个2x2像素的子块的平均色彩。确定平均色彩所使用的方法并不重要,并且该平均例如可以是RGB值的直线平均、由像素亮度加权的平均或编码器认为对于该子块最佳的任何其他RGB色彩。通过除以每个平均色彩的R、G和B分量的和来标准化该平均色彩,这产生了标准化的色彩坐标r,、g,、b,。由于标准化坐标加起来为1,标准化色彩坐标r,、g,、b,中的一个是冗余的。从而,例如g,坐标可以省略,并且对于每个2x2子块^f义将r,和b,坐标编码为7比特定点数。这些7比特定点数存储在压缩块数据表的特定字段中。这些字段在这里称作"colorR"和"colorB,,字段。因而,通过三个步骤在色彩编码方面获得了显著的压缩效率在2x2像素块中进行色彩值平均来取代使每个像素独立地具有色彩值;标准化色彩坐标,这样就能够在编码中忽略一个色彩坐标;并且将剩余的色彩坐标仅编码为7比特定点数。作为整个编码方案的结果,4x4像素图像块的图像数据将导致压缩块数据表包括128比特,产生8bpp的比特率。如表5所示,分配每个压缩图像块中的128比特。<table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table>表5自然地,上述比特分配仅是适当的编码方案的一个示例,并且技术人员应该理解也可以使用可替换的比特分配。例如,如果考虑到亮度值需要更精确,则每个像素的亮度比特的数量可以以色彩比特为代价而增加。从而,例如可以使用具有每像素五个亮度比特和针对每个2x2像素子块的两个色彩坐标仅五个色彩比特的可替换的比特分配方案。表6示出了该可替换方案中128个比特的分配。<table>tableseeoriginaldocumentpage20</column></row><table><table>tableseeoriginaldocumentpage21</column></row><table>表6然后,将编码的图像块插入编码图像组合器306中,其在数据文件中安排编码的块,编码的图像块与来自于头部转换器302的修改的头部相拼接从而产生编码的图像数据文件。由头部转换器302产生的修改的头部包括关于文件类型、原始图像的每个像素的比特数量、对原始图像的寻址、其他混合的编码参数的信息以及指示原始图像大小的宽度和高度信息。修改的头部和编码的图像块一起形成了表示原始图像的编码的图像数据,然而是以高度压缩的格式形成的。技术人员应该理解,上述编码方案可以以除所公开的4x4图像块和2x2子块以外的某些其他图像块大小和子块大小来实现。如果使用较大的块大小,则甚至可以达到更大的压缩效率,但是这自然地减小了视觉保真度。如果希望不产生或仅产生很小的图像质量下降,可以通过使用具有2x2像素子块的4x4像素的图像块大小来获得良好的结果。对于技术人员,实施方式提供的优势是明显的。主要优势在于,在处理HDR紋理时,在存储器容量和所需的总线带宽方面获得了显著的存储器节省。例如,使用16比特OpenEXR图像格式的非压缩HDR紋理具有48bpp的实际比特率。上述过程允许将比特率转换为8bpp,从而相较于16比特OpenEXR非压缩的HDR紋理而言节省了接近85。/。的存储器。进一步的优势在于,在解码时正常图像的图像质量下降非常小或根本不下降。进一步的优势在于,可以仅对现有硬件实现进行较小修改就实现实施方式。在图4的框图中进一步示出根据实施方式的图像解码器系统204。图像解码器系统204包括编码图像分解单元400、头部转换器402、一个或多个块解码器404和图像组合器406。编码的图像数据输入到编码器系统204中。编码图像分解单元400将该编码的图像数据分解或分裂为其头部和编码的图像块IBW。将修改的头部转发至头部转换器402。将单独的编码的图像块IBJ争发至一个或多个块解码器404以用于解压缩。同时,头部转换器402将修改的头部转换为输出头部。块解码器404通过首先对每个2x2子块的标准化色彩坐标(r,,g,,b,)进行解码来解压缩。在该过程中,相应"colorR,,和"colorB"字段的值与g,=l-(r,+b,)一起使用,从而可以从两个编码的色彩分量中导出缺少的色彩分量。然后,块解码器404通过提取"bitShift"字段的值并且从包含指数比特和/或尾数比特的每个亮度字段中提取4比特来解码每像素亮度值。将由"bitShift,,字段的值加1(符号比特为零)指示的零比特的数量包括在每个亮度字段的所述4比特中作为最高有效位,之后,将缺少的最低有效位设置为零,从而产生16比特表示。随后,将存储在"expBias,,字段中的最小亮度指数加上每个指数。这产生了每个像素的原始灰阶亮度的非常好的近似。通过参考上述编码示例可以示出涉及每个像素的亮度值的解码过程。在该示例中,像素的编码亮度比特值是P1(1,1,1,0)、P2(O,l,O,O)、P3(O,l,O,O)和P4(O,O,O,l)。"bitShift"字段的值是3;因此3+1结果为4个零比特将包括在每个亮度比特值中作为最高有效位,并且将缺少的最低有效位设置为零。表7示出了该过程的结果。<table>complextableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table>现在,通过将表8中的每个像素的解码的亮度值的结果与表2中每个像素的色彩分量的原始16比特浮点表示进行比较,可以看到指数字段在两个表中是相等的,并且尾数字段的两个MSB也是相等的。因而,可以做出以下结论,由于浮点算术的性质,在很大程度上每个像素的解码的亮度值的量级是正确的,即使某些微小的细节可能丟失。当每个像素的灰阶亮度值已经解码时,每个像素的灰阶亮度利用像素所属子块的(r,,g,,b,)色彩坐标进行调制。作为该过程的结果,获得对应于解码的图像块IBw的RGB紋理采样。解码的图像块IBw继而被插入图像组合器406,该图像组合器406在文件中重安排该解码的图像块。而且,图像組合器406从头部转换器402中接收转换的头部,转换的头部与编码的图像块放置在一起,从而生成表示原始HDR图像数据的输出数据。因此,可以以非常直接的方式实现解码过程,这简化了解码所需的硬件逻辑。有利地,图形子系统的紋理处理硬件解释图像数据,好像将图像数据从浮点紋理中直接读出一样。技术人员容易地认识到,上述图像数据压缩过程使得原始HDR图像的某些细节丟失,但是这种丟失发生在所有有损压缩方案中。而且,由于HDR数据中使用的浮点算术的性质,在典型应用中,大值通常主导于小细节。因此,由偏置调节动态性以及平均色彩编码引起的细节丟失不一定非常明显。应该注意,可以在紋理高速緩存中每次针对一个块执行解码,也可以在块数据的子集仅需要按像素进行访问的情况下每次针对一个像素执行解码。因此,根据实施方式,图像解码器系统204进一步包括对图像内的任何希望的像素或图像块提供随机访问的子系统。图5中示出的随机访问子系统在图4中的图像解码器系统中实现,并且其包括块地址计算模块408和块获取模块410,其连接至一个或多个块解码器404。块地址计算模块408从编码的图像分解器400中接收编码的图像数据的头部信息。块获取模块410接收编码的图像数据的编码的图像块部分。通常通过识别将要解码的特定像素开始对图像内的一个或多个像素的随机访问过程。当图像解码器系统接收编码的图像数据时,将编码的图像数据的修改的头部转发至块地址计算模块408并且将编码的图像数据的经编码的图像块部分转发至块获取模块410。块地址计算模块408推导出包括希望的像素的经编码的图像块部分的地址(即,像素坐标),并且块获取模块410基于该地址识别包括希望的像素的经编码的图像块。然后,仅将识别的编码的图像块转发至块解码器404以用于解码。而且,块解码器404为每个2x2子块解码标准化色彩坐标(r,,g,,b,),之后,通过提取"bitShift"字段的值并且从每个亮度字段中提取4比特来解码每像素亮度值。将所需数量的零比特包括在每个亮度字段的所述4比特中作为最高有效位,并且将存储在"expBias"字段中的最小亮度指数加上每个指数。最后,利用相应的子块(r,,g,,b,)色彩坐标来调制每个像素的灰阶亮度,从而为每个图像块IB^获得具有高动态范围的RGB紋理采样。然后,根据像素值选择希望的像素的色彩并且从图像解码器系统中输出该希望的像素。根据实施方式,图像解码器系统包括缓冲存储器,即紋理高速緩存,可以在其中临时存储最频繁使用的编码图像块,并且随机访问过程可以仅被应用于存储的图像块的希望的像素。换言之,全部编码图像数据不需要插入分解单元400,但是仅希望的编码的图像块可以从紋理高速緩存中提取。因而,由于可以随机访问任何图像块的任何像素,所以有益地,可以仅选才奪所需的图像部分用于解码。随机访问还允许以任何希望的顺序解码图像的不同部分,这是优选的,例如,在三维紋理映射中,其中可能仅需要紋理的某些部分并且可能以某些非连续的顺序需要这些部分。根据实施方式的步骤可以主要以将要在数据处理设备的处理单元中执行的程序命令来实现,该数据处理设备为编码和/或解码装置进行操作。因此,用于执行上述方法的所述装置可以实现为计算机软件代码,即使至少解码器中的硬件方案可以更优选。计算机软件可以存储在任何存储器装置中,诸如PC的硬盘或CD-ROM盘中,从中可以将计算机软件加载到数据处理设备的存储器中。例如使用TCP/IP协议栈通过网络也可以加载该计算机软件。使用硬件和软件方案的组合来实现本发明的装置也是可能的。显而易见,本发明不仅仅限于上述实施方式,而是可以在所附权利要求书的范围内进行修改。权利要求1.一种用于对图像进行编码的方法,所述图像具有由高动态范围的值表示的每个图像像素的色彩分量,所述方法包括:将所述图像分解为多个图像块;从每个像素的所述高动态范围值中,分离出所述图像块中的像素的色彩信息和亮度信息;以及彼此独立地压缩所述图像块中的所述像素的所述色彩信息和所述图像块中的所述像素的所述亮度信息,以提供压缩的图像数据。2.根据权利要求1所述的方法,所述方法进一步包括针对所述图像块中的每个像素单独地压缩所述像素的所述亮度信息。3.根据权利要求2所述的方法,所述方法进一步包括识别整个图像块内的最小亮度;以及将所述最小亮度的浮点指数作为偏置值存储在压缩块数据表中。4.根据权利要求3所述的方法,所述方法进一步包括将所述偏置值从所述图像块内的所有亮度值的指数中减去,从而为每个像素提供偏置的亮度值;以及将最大偏置的亮度值的浮点比特模式的前导零比特的数量存储在所述压缩块数据表中,从而从所述前导零比特的数量中忽略符号比特。5.根据权利要求4所述的方法,所述方法进一步包括从每个像素的所述偏置的亮度值的所述浮点比特模式的前导零比特中移除所述最大偏置的亮度值的所述浮点比特模式的前导零比特的数量;以及将得到的每个像素的偏置的亮度值的浮点比特模式中的固定数量的前导比特存储在所述压缩块数据表中。6.根据权利要求1-5中任意一项所述的方法,所述方法进一步包括将所述图像块中的所述图像数据划分成子块;平均所述子块中的所述像素的色彩信息,以便确定所述子块中的每个像素具有相同的平均色彩值。7.根据权利要求6所述的方法,所述方法进一步包括通过将所述平均色彩信息除以其色彩分量的和对平均色彩信息进行标准化,以及在所述压缩过程中忽略所述标准化的色彩分量中的一个。8.根据权利要求7所述的方法,所述方法进一步包括将剩余的色彩分量编码为7比特定点数。9.根据权利要求1-8中任意一项所述的方法,其中所述图像块的大小为4x4像素。10.根据权利要求6-9中任意一项所述的方法,其中所述子块的大小为2x24象素。11.一种用于从编码图像数据中解码图像的方法,所述方法包括将所述编码的图像数据分解为多个编码的图像块;对所述图像块的子块中的像素的平均色彩信息进行解码;对所述图像块中的所述像素的亮度信息进行解码;利用对应的像素的所述平均色彩信息对每个像素的亮度信息进行调制;以及将所述解码的图像块组成具有原始动态范围的图像。12.根据权利要求11所述的方法,所述方法进一步包括以16比特或32比特的浮点运算表示所述像素的所述色彩分量的所述原始动态范围值。13.根据权利要求11或12所述的方法,其中对所述图像块中的所述像素的亮度信息进行解码的步骤进一步包括为每个像素解码固定数量的亮度值比特;为每个像素解码将要包括在所述亮度值比特中的多个前导零比特;以及解码偏置值,将所述偏置值添加到每个像素的所述亮度值比特中。14.根据权利要求11-13中任意一项所述的方法,其中为了解码所述编码的图像数据的任何像素,所述方法进一步包括识别至少一个将要解码的像素;在将所述编码的图像数据分解为所述图像块之后,确定包括所述至少一个将要解码的像素的所述至少一个图像块的地址;仅取回包括所述至少一个像素的所述至少一个图像块以用于解码;以及解码所述至少一个图像块的所述图像数据以输出所述至少一个像素的经解码的图像数据。15.—种图像编码器,包括图像分解器,用于接收具有由高动态范围值表示的每个图像像素的色彩分量的图像,并且用于将所述图像分解为多个图像块;至少一个块编码器,用于将所述图像块中的所述像素的色彩信,包、和亮度信息从每个像素的所述高动态范围值中分离出来,并且用于彼此独立地压缩所述图像块中的所述像素的所述色彩信息和所述图像块中的所述像素的所述亮度信息,以提供压缩的图像数据;以及编码图像组合器,用于从所述多个编码的图像块的所述压缩的图像数据中组成编码的图像文件。16.根据权利要求15所述的图像编码器,其中所述至少一个块编码器被配置为针对所述图像块中的每个像素单独地压缩所述像素的所述亮度牧自、17.根据权利要求16所述的图像编码器,其中所述至少一个块编码器被配置为识别整个图像块内的最小亮度;以及将所述最小亮度的浮点指数作为偏置值存储在压缩块数据表中。18.根据权利要求17所述的图像编码器,其中所述至少一个块编码器被配置为将所述偏置值从所述图像块内的所有亮度值的指数中减去,从而为每个像素提供偏置的亮度值;以及将最大偏置的亮度值的浮点比特模式的前导零比特的数量存储在所述压缩块数据表中,从而从所述前导零比特的数量中忽略符号比特。19.根据权利要求18所述的图像编码器,其中所述至少一个块编码器被配置为从每个像素的所述偏置的亮度值的所述浮点比特模式的前导零比特中移除所述最大偏置的亮度值的所述浮点比特模式的前导零比特的数量;以及将得到的每个像素的偏置的亮度值的浮点比特模式中的固定数量的前导比特存储在所述压缩块数据表中。20.根据权利要求15-19中任意一项所述的图像编码器,所述至少一个块编码器被配置为将所述图像块中的所述图像数据划分成子块;平均所述子块中的所述像素的色彩信息,以便确定所述子块中的每个像素具有相同的平均色彩值。21.根据权利要求20所述的图像编码器,其中所述至少一个块编码器被配置为通过将所述平均色彩信息除以其色彩分量的和对平均色彩信息进行标准化,以及在所述压缩过程中忽略所述标准化的色彩分量中的一个。22,根据权利要求21所述的图像编码器,其中所述至少一个块编码器被配置为将剩余的色彩分量编码为7比特定点数。23.根据权利要求15-22中任意一项所述的图像编码器,其中所述图像块的大小为4x4像素。24.根据权利要求20-23中任意一项所述的图像编码器,其中所述子块的大小为2x2像素。25.—种图像解码器,包括图像分解器,用于接收编码的图像数据,并且用于将所述编码的图像数据分解为多个编码的图像块;至少一个块解码器,用于对所述图像块的子块中的像素的平均色彩信息进行解码;用于对所述图像块中的所述像素的亮度信息进行解码;以及用于利用对应的像素的所述平均色彩信息对每个像素的亮度信息进行调制;以及图像组合器,将所述解码的图像块组成具有原始动态范围的图像。26.根据权利要求25所述的图像解码器,进一步包括用于以16比特或32比特的浮点运算表示所述像素的所述色彩分量的所述原始动态范围值的装置。27.根据权利要求25或26所述的图像解码器,其中所述至少一个块解码器进一步被配置为为每个像素解码固定数量的亮度值比特;为每个像素解码将要包括在所述亮度值比特中的多个前导零比特;以及解码偏置值并且将所述偏置值添加到每个像素的所述亮度值比特中。28.根据权利要求25-27中任意一项所述的图像解码器,进一步包括用于识别至少一个将要解码的像素的装置;块地址计算装置,用于在将所述编码的图像数据分解为所述图像块之后,确定包括所述至少一个将要解码的像素的所述至少一个图^象块的地址;块获取装置,用于仅取回包括所述至少一个像素的所述至少一个图像块以用于解码;其中所述至少一个块解码器被配置为解码所述至少一个图像块的所述图像数据以输出所述至少一个像素的经解码的图像数据。29.—种用于对图像进行编码的图像处理设备,所述图像具有由高动态范围的值表示的每个图像像素的色彩分量,包括图像编码器的所述设备包括图像分解器,用于接收所述图像的图像数据,并且用于将所述图像分解为多个图像块;至少一个块解码器,用于将所述图像块中的像素的色彩信息和亮度信息从每个像素的所述高动态范围值中分离出来;以及用于彼此独立地压缩所述图像块中的所述像素的所述色彩信息和所述图像块中的所述像素的所述亮度信息,以提供压缩的图像数据;以及编码图像组合器,用于从所述多个编码的图像块的所述压缩的图像数据中组成编码的图像文件。30.—种用于解码已编码的图像数据的图像处理设备,包括图像解码器的所述设备包括图像分解器,用于接收编码的图像数据,并且用于将所述编码的图像数据分解为多个编码的图像块;至少一个块解码器,用于对所述图像块的子块中的像素的平均色彩信息进行解码;用于对所述图像块中的所述像素的亮度信息进行解码;以及用于利用对应的像素的所述平均色彩信息对每个像素的所述亮度信息进行调制;以及图像组合器,将所述解码的图像块组成具有原始动态范围的图像。31.—种计算机程序产品,其存储在计算机可读介质上并且可在数据处理设备中执行,用于对图像进行编码,所述图像具有由高动态范围的值表示的每个图像像素的色彩分量,所述计算机程序产品包括计算机程序代码段,用于接收所述图像的图像数据,并且用于将所述图像分解为多个图像块;计算机程序代码段,用于将所述图像块中的像素的色彩信息和亮度信息从每个像素的所述高动态范围值中分离出来;计算机程序代码段,用于彼此独立地压缩所述图像块中的所述像素的所述色彩信息和所述图像块中的所述像素的所述亮度信息,以提供压缩的图像数据;以及计算机程序代码段,用于从所述多个编码的图像块的所述压缩的图像数据中组成编码的图像文件。32.—种计算机程序产品,其存储在计算机可读介质上并且可在数据处理设备中执行,用于解码已编码的图像数据,所述计算机程序产品包括计算机程序代码段,用于将所述编码的图像数据分解为多个编码的图像块;计算机程序代码段,用于对所述图像块的子块中的像素的平均色彩信息进行解码;计算机程序代码段,用于对所述图像块中的所述像素的亮度信息进行解码;计算机程序代码段,用于利用对应的像素的所述平均色彩信息对每个像素的所述亮度信息进行调制;以及计算机程序代码段,将所述解码的图像块组成具有原始动态范围的图像。全文摘要一种对图像进行编码的方法,其中该图像具有由高动态范围的值表示的每个图像像素的色彩分量,该方法包括将图像分解为多个图像块;将所述图像块中的像素的色彩信息和亮度信息从每个像素的高动态范围值中分离出来;并且彼此独立地压缩所述图像块中的像素的色彩信息和所述图像块中的像素的亮度信息,以提供压缩的图像数据。文档编号G06T9/00GK101375313SQ200780003310公开日2009年2月25日申请日期2007年1月23日优先权日2006年1月24日发明者J·伊塔朗塔,K·罗伊梅拉,T·阿尔尼奥申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1