用于编码数据的方法和设备的制作方法

文档序号:6444318阅读:133来源:国知局
专利名称:用于编码数据的方法和设备的制作方法
技术领域
本发明涉及用于编码数据的方法和设备,具体地,涉及在计算机图形系统中使用来压缩(解压缩)纹理数据的方法和设备。
背景技术
在计算机图形系统中通常通过把所谓的纹理或纹理数据施加到要绘制的表面上来为在要被显示的图像中的像素生成纹理和颜色。例如,在三维(3D)计算机图形中,在目标上的表面细节通过把诸如编织物图像那样的“纹理”加到表示目标的一组多边形,以便给予目标的渲染图像以纹理结构(例如,编织物)的外貌。这样的纹理典型地通过存储纹理元素阵列或“纹理像素”而被应用,每个纹理像素表示给定的纹理(例如,颜色、亮度、和/或光亮/阴影等等)数值,然后把纹理像素映射到要被显示的图像上的相应的元素,诸如(和,实际上,典型地)像素。这样的安排可以提供高图像质量,但具有许多缺点。具体地,纹理数据的贮存和在使用时接入它,例如会对于图像处理设备提出例如高贮存量和带宽要求(或相反,在不满足这样的要求的场合下,导致性能损失)。这对于执行图像处理的移动和手持设备是特别重要的,因为这样的设备例如在它们的贮存、带宽与功率资源和能力方面是固有地有限的。所以,众所周知,尝试以“压缩的”形式编码这样的纹理数据,以便试图减小例如加到设备上的贮存和带宽负担。一个已知的这样的纹理数据压缩技术确定例如对于给定的情景要使用的一组调色板,然后对于情景中的每个纹理元素(纹理像素)存储一个索引号到调色板组,指示将用于该纹理像素的颜色。这具有优点对于每个纹理像素只需要一个索引号,而不是全部(例如)颜色值。这有助于减小例如纹理数据贮存要求,但仍旧具有某些缺点,诸如在减小图像质量和必须的数据处理方面。另一个已知的纹理压缩技术是要使用所谓的块截断编码(BTC)。在这个技术中,用于整个情景或图像的纹理阵列被自划分成较小的块,例如4x4纹理像素,和对于每个这样的块确定多个(典型地两个)基色值,在块中的每个纹理像素被设置为基色值之一。这再次节省了必须被存储或接入的数据,但以较低的图像质量为代价。美国加州的S3公司,在它们的美国专利No. 5956431中建议改进的块截断编码技术。在这个技术中,对于每个纹理像素块再次存储两个基色,但从这两个基色也得到将用于块的两个附加颜色(例如,通过线性混合这些颜色)。这样,四种颜色被提供作为用于纹理像素块的“调色板”,但对于块只需要存储两个颜色值。在块中的每个纹理像素然后通过使用两个比特被编码,以指示四个块颜色的哪个颜色应当用于纹理像素。这个系统比起基本块截断编码提供改进的图像质量,但需要每个块更多的数据。
申请人相信,仍旧有用于改进的数据编码和压缩技术的空间,特别是在用于图形处理的纹理数据方面。

发明内容
按照本发明的第一方面,提供了编码将用于图形处理的纹理数据元素集合的方法,包括
把纹理数据元素集合编码为纹理数据块;以及在纹理数据块中包括
指示如何生成数据值集合的数据,该数据值集合将用于所述块表示的纹理元素;以及指示一个方法的数据,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个纹理数据元素生成数据值。按照本发明的第二方面,提供了用于编码将用于图形处理的纹理数据元素集合的设备,包括
用于把纹理数据元素集合编码为纹理数据块的装置;
用于在纹理数据块中包括指示如何生成数据值集合的数据的装置,该数据值集合将用于所述块表示的纹理元素;以及
用于在纹理数据块中包括指示一个方法的数据的装置,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个纹理数据元素生成数据值。按照本发明的第三方面,提供了表示将用于图形处理的纹理数据元素集合的纹理数据块,包括
指示如何生成数据值集合的数据,该数据值集合将用于所述块表示的纹理元素;以及指示一个方法的数据,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个纹理数据元素生成数据值。在本发明的纹理数据编码系统中,纹理数据元素集合被编码为纹理数据块,如在已知的块截断编码技术中那样。然而,在本发明中,每个纹理数据块尤其包括指示如何为所讨论的块生成数据值集合的数据,和指示一个方法的数据,该方法将用于通过使用所生成的数据值集合来为由纹理数据块表示的每个纹理元素生成数据值。正如下面进一步说明的,本申请人发现,这种编码形式易于实现良好的重现的图像质量,而仍旧允许相当且足够高的数据压缩速率。以这种方式编码纹理数据允许例如当从编码的数据重现图像时,逐块地调制和改变要被使用的数据值,诸如颜色值。这在可被重现的数据值,例如,颜色值中,提供更大的灵活性,即使仅仅提供有限的总的数据值(例如颜色)组或调色板。本发明可被使用来编码任何适当的形式的纹理数据。正如以上讨论的,这样的数据,以它的原先的、原始的或未编码的形式,被典型地安排成纹理元素或纹理像素的阵列的形式,因此,在具体的优选实施例中,本发明被使用来编码纹理数据元素(纹理像素)的阵列。这样的阵列典型地是二维的,正如在技术上已知的,虽然也有可能使用本发明来编码3 维阵列(或事实上编码不是常规阵列的形式的数据(例如只要编码和译码处理过程被安排成使得能够以正确的次序和/或位置重现数据))。纹理数据元素可以表示任何适当的纹理数据,诸如,例如颜色、亮度、黑白图、阴影图(明亮图)、等等,正如本领域已知的。在具体的优选实施例中,纹理数据元素均表示纹理元素的颜色值,但这不是本质的。正如本领域技术人员将会看到的,实际数据值以纹理元素的原先的、未编码的原始形式和以纹理元素的编码形式与纹理元素相一致(或至少当编码的数据被译码以重现原先的数据的表示时),将取决于纹理元素打算规定或表示的“纹理”的形式。因此,例如,在纹理元素规定要被使用颜色的场合下,以它们的原先的、未编码形式的纹理数据元素都将包括颜色值集合(红色、绿色、蓝色(RGB),或颜色和透明度值集合 (红色、绿色、蓝色、α (RGBa))),以及编码的数据,当被译码(重现)时,将生成相应的颜色值
皇A
朱口 ο在阴影(明亮)图的情形下,例如,纹理数据元素都将包括或表示数据值集合,例如指示纹理元素是明亮还是阴影,以及该纹理元素的明亮或阴影的量(和/或颜色)。同样地, 对于标准图(黑白图),每个纹理元素的数据将是指示在该纹理元素处光被反射的方向的值
皇A
朱口 ο纹理数据元素例如也可以表示ζ值(深度值)、模板值、亮度值(亮度纹理)、亮度-α -纹理、和/或光泽图(S卩,在纹理元素位置处表面是否光亮)。在适当的场合,有可能的是,对于每个纹理数据块只编码对于生成某些但不是全部数据值所须的数据,这些数据值是对于重现原先的数据所必须的,并且剩余的数据值(例如,由此)被导出,以作为数据重现处理过程的一部分。因此,在优选实施例中,编码的纹理数据块编码表示某些原先的纹理数据的数据,表示原先的数据的其它部分的数据在译码过程期间从编码的数据导出。例如,在标准图的情形下,编码的纹理数据有可能例如仅仅编码两个法线方向分量(例如,dx和dy),第三分量(dz)在译码时由这两个数值导出(由于已经知道,分量的平方和必须是1 (因为它们规定长度1的法向量):l=dx2+ dy2+ dz2)。每个纹理元素编码和表示的实际数据值,以及被生成为纹理数据块的数据值集合和对于每个编码的纹理元素重现的数据值将因此取决于编码的纹理元素表示的纹理数据。因此,例如,在颜色数据的情形下,每个数据值例如将包括和表示颜色值集合(即, RGB或RGBa值),S卩,以使得对于纹理数据块将生成“颜色”集合和对于每个译码的纹理元素将生成颜色(即,RGB或RGBa值)。在亮度纹理的情形下,数据值将表示亮度值,即,以使得对于纹理数据块将生成亮度值集合和对于每个译码的纹理元素将生成亮度值。对于标准图, 每个数据值对应于法向量(即,向量分量dx,dy, dz),因此,对于纹理数据块将生成法向量集合和对于每个译码的纹理元素将生成法向量(即,向量分量组dx,dy, dz),等等。这里应当指出,这里谈到的“颜色”或“亮度”,正如本领域技术人员将会看到的,因此,是指允许所讨论的颜色或亮度在显示器上重现的数据值集合。这些数据值可包括任何适当的颜色或亮度等数据集合,诸如上述的RGBa值。同样地,这里谈到的生成对于编码的纹理数据块的数据值集合,和对于各个纹理元素的数据值,含有这样的数据值,每个数据值包括或包含数值的组合,诸如颜色值集合(RGB或RGBa),如果适当的话。按照本发明被编码的纹理数据元素集合或阵列可以是任何适当的或想要的这样的集合。例如,编码的纹理数据块,如果想要的话,可表示要被重现的整个情景或图像(或纹理图)。
然而,在具体的优选实施例中,每个纹理数据块编码所讨论的情景或图像或纹理图的较小的部分(或块),如在传统的块编码技术中那样。在这样的情形下,纹理数据块将编码和表示原先的纹理数据元素的所选择的集合或阵列,诸如纹理像素的4x4阵列。将会看到,在这样的实施例中,将需要多个这样的各个纹理数据块来编码全部原先的纹理数据集合(纹理数据元素)。因此,在具体的优选实施例中,本发明还包括把一组纹理数据元素(例如,对于一个情景)再划分成多个纹理数据元素子集,然后按照本发明编码每个纹理数据元素子集为纹理数据块。在这样的安排中,优选地,每个子集表示相同的数目的纹理数据元素(和,例如阵列),以及每个纹理数据块具有相同的尺寸,即,使用固定的速率的编码方案。这使得易于实行编码和译码处理过程,正如本领域已知的。因此,例如一个情景可被划分成多个4x4纹理像素阵列,每个这样的阵列被编码为分开的纹理数据块。在多个纹理数据块是要编码的场合下,因此也优选地,各个块具有共同的格式,例如在块内它们的数据(比特位置)次序等等方面,因为这再次使得易于实行编码和译码处理过程。在多个纹理数据块被使用来编码更大的情景和图像(或纹理元素集合或阵列)(或它们的一部分)的场合下,情景或图像实际上再划分成更小的块,和编码成纹理块的次序可以按希望的那样被选择,在优选实施例中,块(数据的子集)以Morton次序被编码,虽然其它安排当然也是可能的。在具体的优选实施例中,被编码为单个纹理数据块的纹理元素集合在纹理数据块内被再划分成例如纹理数据“子块”。例如,纹理数据块可被使用来编8x4纹理元素阵列,但编码将是使得纹理元素阵列实际上被编码为在纹理数据块内的两个4x4纹理元素子块。事实上,在本发明的优选实施例中,每个纹理数据块从原先的纹理元素集合(例如,情景或图像)编码(表示)两个纹理元素阵列(即,8x4纹理元素)。在具体的这样的优选实施例中,纹理数据块的子块共享指示如何为块生成数据值集合(例如,颜色)和将用于为纹理元素生成数据值(例如,颜色)的方法的相同数据,但是被分开地重现(即,对于由纹理数据块表示的纹理元素(当块被译码时)逐个子块地生成数据值,而不是对于块整个地生成)。这些安排具有优点在纹理数据块内的子块可以有效地共享某些块信息,由此易于实行较高的数据压缩率,而不需要整个地译码较大的纹理元素阵列。可以相信,这样的安排对其本身可以是新的和有利的。因此,按照本发明的第四方面,提供了编码将用于图形处理的纹理数据元素集合的方法,包括
把纹理数据元素集合划分成这种元素的多个子集;以及
把两个或更多纹理数据元素子集编码为单个纹理数据块,其中每个纹理数据元素子集是与其它的纹理数据元素子集无关地被重现。按照本发明的第五方面,提供了用于编码将用于图形处理的纹理数据元素集合的设备,包括
用于把纹理数据元素集合划分成这种元素的多个子集的装置;以及用于把两个或更多纹理数据元素子集编码为单个纹理数据块的装置,其中每个纹理数据元素子集是与其它的纹理数据元素子集无关地被重现。按照本发明的第六方面,提供了表示将用于图形处理的纹理数据元素集合的编码的纹理数据块,包括
表示纹理数据元素集合中要彼此无关地重现的两个或更多子集的数据。本发明的这些方面和实施例,正如本领域技术人员将会看到的,可包括这里描述的本发明的一个或多个或全部优选的和任选的特性。因此优选地,例如,对于纹理数据块, 编码两个(和仅仅两个)纹理数据元素子集。类似地,编码的纹理数据块优选地包括指示如何生成将用于块的数据值集合(例如,颜色)和将用于为块的纹理元素生成数据值的方法的共同的单个数据集合,该数据对于块的纹理数据元素子集被共享(即,以使得相同的这样的数据用于由块被编码的纹理数据元素的每个子集)。在编码的纹理数据块中包括的用于指示如何生成将用于所述块表示的纹理元素的数据值集合(例如,颜色)的数据可以是任何适当的这样的数据。例如,它可以指示将用于生成数据值的计算或算法。在具体的优选实施例中,这个数据指示数据值集合如何从数据值的基本或初步集合或表(调色板)中被生成。这有助于实行纹理数据的压缩,因为例如数据值的基本或初步集合可以是(和事实上,优选地是)表示在原先的未编码的纹理数据集合中的数据值的减小的数据值集合,和/或例如可以被多个各个纹理数据块共享。例如,在颜色纹理的情形下, 数据值的基本或初步组可包括表示在原先的图像或纹理图中所使用颜色的减小的颜色集合(调色板)。在这个安排中,要被使用的数据值的基本集可以按希望的那样被生成,例如,正如本领域已知的,通过评估在原先的纹理数据(即,要被编码和压缩的数据)中存在的数据值和由此导出表示原先的数据值的和/或可以被使用来导出原先的数据值的数据值集合。最优选地,减小的数据值集合(即,它包括比起原先的数据更少的数据值,例如,它是在原先的数据中使用的数据值集合的子集)被导出和被用于数据值基本集,因为它易于实行原先的数据的压缩。任何适当的技术可被使用于此,诸如,例如使用误差比较技术来确定最好地匹配于原先的数据值集合的减小的数据值集合。这实际上将提供将用于纹理数据块的数据值的预定的基本组。数据值的预定的基本组例如逐块地被确定。例如,在颜色数据的情形下,正如传统的块截断编码技术那样,可以对于纹理块确定一个或两个(或多个)基本的表示性颜色, 这些颜色然后当重现纹理块时用作为生成颜色集合时要使用的基本调色板。在这种情形下,在数据值调色板中对于块的基本数据值例如可被提供作为用于纹理块的数据的一部分 (即,本身被包括在纹理数据块中),正如在传统的技术中那样。然而,在具体的优选实施例中,单个数据值基本集(例如,颜色调色板)被确定和通常被共同用于多个纹理块(即,以使得多个纹理块共享和使用同一个数据值基本集)。最优选地,数据值基本集(例如,颜色)对于要被成像的整个纹理(例如,纹理图)被确定。这实际上确定要由纹理块(例如,用于情景)共享的“全局,,数据值基本集(颜色调色板),各个纹理块的数据值(例如,颜色)然后可以从纹理块生成(以及例如,被逐块地改变或调制)。使用对于多个纹理数据块的(例如,整个情景)“共享的”数据值基本集具有优点 各个块可以允许从更大范围的数据值进行选择,用于生成它自己的数据值集合(由此,例如提供更大的数据值灵活性和图像质量),而仍旧达到相当高的纹理压缩率。例如在颜色的情形下,它也易于实行α (透明度)梯度,因为使用“全局”颜色调色板易于使用例如更复杂的α值。在使用这样的“全局”的或共享的数据值调色板(例如,颜色)的场合下,在调色板中的数据值的数目可以按希望那样被选择。优选地,使用在1和1 之间的数据值,最优选地,22-64的数据值。在具体的优选实施例中,在整个情景共享单个数据值基本集的场合下, 使用64个数据值(例如,颜色),虽然诸如32,16,8或4那样的其它的安排也是可能的。这里应当指出,本发明的重要优点在于,它易于实行以较低的精度(例如,比起原先的图像)存储这样的基本数据值(例如,颜色),而仍旧达到相当且足够高的重现的图像质量,本申请人例如发现,以16比特精度(RGB565或RGBA4444)存储64个基色,仍旧将提供非常好的图像重建。所以,本发明实际上易于实行使用包含相当高数目的数据值项的“全局” 或共享的基本数据值调色板,从而实行可提供的增强的图像质量。因此,在优选实施例中,基本数据值(例如,颜色)以比起在原先的数据中更低的精度被编码。这再次易于实行原先的数据的压缩。在要被多个各个纹理数据块共享的数据值基本集(例如,颜色)被使用的场合下, 该数据值基本集优选地被编码和被分开地提供到各个纹理数据块(而不是例如被包括在各个纹理数据块)。这个数据值基本集例如可被编码和被提供(和实际上,优选地被提供)为例如与共享它的纹理数据块组有关的分开的数据块。因此,它例如可以作为标题(或页脚)数据块被提供到共享它的纹理数据块流。可以相信,这样的安排对于其本身可以是新的和有利的。因此,按照本发明的第七方面,提供了编码将用于图形处理的纹理数据的方法,包括
确定表示纹理数据的数据值集合和把该数据值集合编码为数据块; 把纹理数据划分成多个块;以及
把每个纹理数据块编码为数据块,并且在每个这样的数据块中包括指示来自数据值块的一个或多个数据值的数据,该数据值块将用于所涉及的纹理数据块。按照本发明的第八方面,提供了用于编码将用于图形处理的纹理数据的设备,包括
用于确定表示纹理数据的数据值集合和编码该数据值集合成为数据块的装置; 用于把纹理数据划分成多个块的装置;以及
用于把每个纹理数据块编码为数据块,并且在每个这样的数据块中包括指示来自数据值块的一个或多个数据值的数据的装置,该数据值块将用于所涉及的纹理数据块。按照本发明的第九方面,提供了编码将用于图形处理的纹理数据的编码的纹理数据集合,包括
数据块,编码将用于编码的纹理数据集合的数据值集合;以及多个数据块,每个数据块编码纹理数据集合的子集,以及每个数据块包括指示自数据值块的一个或多个数据值的数据,该数据值块将用于所涉及的纹理数据块。再次地,正如本领域技术人员将会看到的,本发明的以上的实施例和方面可包括这里描述的本发明的任何一个或多个或全部优选的和任选的特性,如合适的话。因此,例如,每个纹理数据块优选地编码两个(和仅仅两个)要分开重现的纹理数据子块。在这个安排中,事实上因此有三个级别的编码的纹理数据,即,具有基本数据值块的形式的“全局”数据、具有在每个纹理数据块中共享的数据的形式的半局部数据、和具有在每个纹理数据块中用于各个子块的数据的形式的局部数据。按照本发明的第十方面,提供了编码将用于图形处理的纹理数据的方法,包括 把纹理数据划分成多个纹理数据子集;
编码纹理数据成为多个纹理数据块,每个纹理数据块编码两个或更多纹理数据子集并且包括对于每个纹理数据子集特定的数据和要由纹理数据块编码的纹理数据子集共享的数据;以及
编码包括要被纹理数据块共享的数据的数据块。按照本发明的第十一方面,提供了用于编码将用于图形处理的纹理数据的设备, 包括
用于把纹理数据划分成多个纹理数据子集的装置;
用于编码纹理数据成为多个纹理数据块的装置,每个纹理数据块编码两个或更多纹理数据子集并且包括对于每个纹理数据子集特定的数据和要由纹理数据块编码的纹理数据子集共享的数据;以及
用于编码包括要被纹理数据块共享的数据的数据块的装置。按照本发明的第十二方面,提供了将用于图形处理的编码的纹理数据集合,包括
多个纹理数据块,每个纹理数据块编码两个或更多纹理数据子集并且包括对于每个纹理数据子集特定的数据和要由纹理数据块编码的纹理数据子集共享的数据;以及包括要被纹理数据块共享的数据的数据块。本发明的这些方面和实施例再次包括这里描述的本发明的任何一个或多个或全部优选的和任选的特性。在本发明的这些方面和实施例的优选的安排中,由纹理数据子集共享的数据表示或规定(或允许人们生成)例如引导到将用于纹理数据子集(子块)的数据值集合(例如,颜色)的索引号。对于给定的子集特定的数据可以类似地规定引导到数据值的索引号,或它也可以或代之以规定其它信息,诸如对于子集的纹理元素,数据值如何被内插或如何从其它数据值导出。在要从数据值基本集生成(无论是逐块地还是更全局地被规定)将用于纹理数据块的数据值的场合下,则包括在纹理数据块中用于指示如何生成要被使用的数据值集合的数据可以以任何适当的或想要的方式指示在数据值基本集中的数据值是如何被用于生成将用于该块的数据值集合。因此,这个数据例如可以,和事实上优选地,指示用于该块的数据值集合是要包括直接从数据值基本集中取得的一个或多个数据值,和/或应当包括从数据值基本集中的数据值或从这样的数据值的组合中导出或内插的数据值。在数据值是要从数据值基本集中导出的场合下,则这可以通过混合从数据值基本集中取的数据值,和/或通过调节从数据值基本集中取的数据值,和/或通过组合这些技术来完成。在优选实施例中,指示如何生成用于块的数据值集合的数据可以指示这些替换品的任一项。在具体的优选实施例中,指示如何生成将用于纹理数据块的数据值集合的数据指示多个所选择的、优选地预定的数据值集合生成技术或方法中的哪个方法将用于该块。这具有优点用于这个目的的包括在纹理数据块中的数据只需要指示要使用哪个数据值集合生成方法,即实际上用作为引导到要被使用的数据值集合生成方法的索引号,而不是例如纹理数据块必须包括更加全面地描述数据值集合应当如何被生成的数据。在这样的安排中,预定的数据值生成方法优选地包括上述的一个或多个或全部方法。因此,它们优选地包括用于块的数据值集合,所述块包括直接从规定的数据值基本集中取得的一个或多个数据值,和/或通过混合从数据值基本集中取的一个或多个数据值所生成的一个或多个数据值,和/或通过调节从数据值基本集中取的一个或多个数据值,和/或通过组合这些技术而生成的一个或多个数据值。最优选地,纹理数据块可以从其中进行“选择”的预定义数据值生成方法包括至少一个模式,其中包括数据值直接从数据值基本集中取得;以及另一个模式,数据值包括直接从数据值基本集中取得的一个或多个数据值,和通过(例如,通过混合和/或调节)从数据值基本集中取得的一个或多个数据值而导出的一个或多个数据值。在具体的优选的这样的实施例中,有四种预先规定的(预定的)数据值生成方法。 更优选地,这些方法中的一个方法使用直接来自数据值基本集的数据值,以及另外三个方法使用至少某些根据数据值基本集导出的(优选地混合的或调节的)数据值。更优选地,后三种数据值生成方法使用某些混合的数据值和某些调节的数据值。这个安排具有优点被包括在纹理数据块中的数据值输出数据可包括2比特索引号(指示四种数据值集合生成方法的哪种方法是要使用的),由此需要相对较小的数据容量,而仍旧允许达到相对较高的重现图像质量。在用于纹理数据块的数据值集合中要被使用的数据值是通过混合从数据值基本集中取得的一个或多个数据值而形成的场合下,则这样的混合可以以任何想要的和适当的方式实行。例如,可以使用两个数据值的简单的线性混合(例如,50:50,1/3 :2/3,或3/8 :5/8,(以及反之亦然))。要被混合的数据值例如可包括,或全部包括,直接从数据值基本集中取得的一个或多个数据值,对于块生成的一个或多个数据值(例如,已经对于块生成的、 混合的或调节的数据值),和/或它们的组合。因此,例如,混合的数据值可包括直接从数据值基本集中取得的数据值的混合,以及已对于所讨论的纹理块生成的另一个混合的或调节的数据值。在要使用混合的数据值的场合下,指示如何为纹理数据块生成数据值集合的数据优选地指示如何生成任何的混合的数据值。在使用以上讨论的预定的数据值生成方法的场合下,混合模式可以是,和优选地被预先规定为数据值生成方法的一部分。在纹理数据块的数据值集合中要使用的数据值是要通过调节数据值而被生成的场合下,这样的调节优选地包括修改一个或多个数据值(例如在颜色的情形下,RGB或RGBz 值集合),用于要以具体的、优选地预定的方式所调节的数据值。例如,所选择的数值可以被加到(相减)要被调节的数据值的数据值集合,以给出调节的数据值(组)。要被调节的数据值,例如可以直接从数据值基本集中取得,或例如,可以是为纹理数据块生成或已经生成的所混合的或调节的数据值。再次地,在要使用“调节的”数据值的场合下,指示如何为纹理块生成数据值集合的数据优选地指示任何这样的“调节的”数据值是如何生成的。在使用预定的数据值生成方法的场合下,要进行的调节可以是,和优选地再次被预先规定为数据值生成方法的一部分。对于给定的纹理块生成的数据值集合可包括任何想要的和适当的数目的数据值。它应当再次包括和优选地包括有限的或减小的数据值集合(例如,与在原先的数据中使用的数据值集合相比较)。因此,例如,为纹理数据块生成的数据值集合优选地包括,比起诸如原先的数据值子集和/或在数据值基本集中的数据值子集(在提供的场合下)更少的数据值。这再次便于实行原先的数据的压缩。优选地,1与8之间的数据值,最优选地,2-4个数据值被包括在为纹理数据块生成的数据值集合中。在具体的优选实施例中,生成四个数据值。申请人发现,为给定的纹理块生成四数据值的集合,可以提供足够高的重现图像质量,而不会过分增加设备的数据贮存和处理资源的负担。优选地对于每个纹理数据块生成相同的数目的数据值。正如以上讨论的,为将用于纹理数据块的数据值集合所生成的、和在适当的场合下用于数据值基本集的实际数据值(例如,在它们的格式和它们表示的内容方面),将取决于被编码的纹理数据的特性。例如,正如以上讨论的,在颜色数据和颜色图的情形下,每个数据值将表示给定的颜色,例如,包括颜色值集合,诸如RGB或RGBa值。另一方面,对于亮度图,每个数据值可包括和表示单个亮度值。对于标准图(黑白图),每个数据值将包括表示法向量的分量组,以及对于阴影(光亮)图,每个数据值将包括和表示指示例如光亮或阴影量的存在与否、和光亮或阴影的量等等的值集合。在编码的纹理数据块中包括的用于指示一个方法的数据,其中该方法将用于通过使用为块生成的数据值集合来为块被编码的每个纹理元素生成数据值(例如,颜色),类似地可以是任何适当的这样的数据。例如,它可以指示将用于生成数据值的计算或算法。在具体的优选实施例中,这个数据指示用于每个纹理元素要的数据值(例如,颜色)是直接从为纹理数据块生成的数据值集合(例如,颜色)中取得的,或以某种形式从这些数据值被内插或导出。在例如颜色的情形下(S卩,在编码的纹理数据表示每个纹理元素的颜色的场合下),其中颜色(数据值)是直接从为纹理数据块生成的颜色集合取得的安排,被发现为具有许多不同的颜色和高频的纹理数据提供更好的图像重现,诸如典型地在伪像中发现的。另一方面,其中从为纹理数据块生成的颜色集合内插纹理元素的颜色的安排,被发现为对于具有许多类似的颜色和较低的频率的纹理数据提供更好的图像重现,诸如典型地在照片逼真纹理中发现的。在给定的纹理元素的数据值是要以某种方式从纹理数据块生成的数据值集合被内插或导出的场合下,那可以通过例如混合或调节一个或多个这些数据值,例如以与以上讨论的用于从数据值基本集生成纹理数据块数据值集合的方式相类似的方式来完成。然而,在具体的优选的这样的安排中,将用于纹理元素要的数据值通过沿覆盖由所述块表示的多个纹理元素的一条或多条路径内插这些数据值而被生成。最优选地,规定覆盖多个纹理元素的纹理元素路径以及它的末端点数据值(例如,颜色),然后,在通过以适当的或选择的方式内插在对于所讨论的纹理元素的位置的末端点数据值之间来确定路径的末端点中间的纹理元素的数据值(例如,颜色)。例如,可以规定覆盖一行四个纹理元素的直线纹理元素路径,末端纹理元素把它们的数据值设置成直接从为纹理数据块生成的数据值集合取得的数据值,以及两个中间的纹理元素把它们的数据值从两个末端点数据值被内插(例如,通过简单的线性内插)。实际上,这样的安排把褪色(fading)路径或方案应用到纹理元素,以及本申请人发现至少在颜色数据的情形下为照片逼真的纹理提供特别良好的颜色重现。因此可以相信,这样的安排对于其本身可以是新的和有利的。因此,按照本发明的第十三方面,提供了编码将用于图形处理的纹理数据元素集合的方法,包括
把纹理数据元素集合编码为纹理数据块;以及
在纹理数据块中包括指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理元素的数据值。按照本发明的第十四方面,提供了用于编码将用于图形处理的纹理数据元素集合的设备,包括
用于把纹理数据元素集合编码为纹理数据块的装置;以及
在纹理数据块中包括指示一条或多条路径的数据的装置,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理元素的数据值。按照本发明的第十五方面,提供了编码将用于图形处理的纹理数据元素集合的纹理数据块,包括
指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理数据元素的数据值。本发明的这些方面和实施例再次包括这里讨论的本发明的任何一个或多个或全部优选的和任选的特性。因此,例如,指示覆盖多个纹理元素的路径的数据优选地规定或指示覆盖多个纹理元素的路径,和路径的末端点数据值,和任选地,要沿路径使用的内插方案。在要使用这样的内插安排的场合下,编码的纹理数据块优选地指示要被使用的内插路径覆盖的纹理元素。这优选地是通过指示内插路径的末端点和在这些末端点之间而行的路径(例如,是直线还是来回的ζ字形曲线等等)而完成的。优选地还指示了为由内插路径覆盖的纹理元素确定数据值的方式。在优选实施例中,这是通过直接从为纹理数据块生成的数据值集合取得末端点数据值而完成的,中间的纹理元素的数据值优选地是从这些数据值线性地内插。然而如果想要的话,其它的,例如更复杂的安排是可能的。优选地,该安排是使得对于给定的内插路径,一半纹理元素直接从为纹理数据块生成的数据值集合选择它们的数据值,以及另一半纹理元素从那些选择的数据值内插它们的数据值。因此,在优选实施例中,对于纹理数据块编码的一个或一个以上的纹理元素的数据值(例如,颜色)是基于沿覆盖多个纹理元素的路径的纹理元素的位置和例如为该路径规定的末端点数据值(例如,颜色)。在这种情形下,对于给定的纹理元素的数据值可以通过确定路径的末端点数据值、确定沿路径的纹理元素的位置、并接着随之内插或导出给定的纹理元素的数据值而被确定。由内插路径覆盖的纹理元素的数目可以按希望那样被选择,而且,例如应当基于每个纹理数据块编码的纹理元素的数目。在优选实施例中,每个内插路径覆盖该块的四个纹理元素(例如,以使得,优选地,对于四个纹理元素,两个将是内插路径的末端点和直接从为纹理数据块生成的数据值集合取得的它们的数据值,以及两个将是“中间的”元素,“中间的”元素因此从末端点数据值内插的它们的数据值)。在具体的优选实施例中,可以优选地规定用于施加到纹理数据块的纹理数据元素(或纹理数据元素子集)的内插路径集合。这可包括例如规定有关的内插路径集合,该有关的内插路径一起覆盖给定的纹理数据块表示的所有纹理数据元素或纹理数据元素子集。例如,对于4x4纹理数据块,四个内插路径的一个集合,每个路径覆盖块中的一行四个纹理元素,可被规定为要被施加到该块的内插路径集合。这实际上规定要被施加到由纹理数据块表示(编码)的纹理元素的褪色或阴影图案。因此,在具体的优选实施例中,指示一种方法的数据,其中该方法将用于为该块的纹理元素生成数据值,指示将用于该块的具体的褪色图案,该褪色图案规定要被施加到该块表示的纹理元素的内插路径集合。在这样的安排中,每个内插路径优选地覆盖相同的数目的纹理元素(例如,4个)。在这样的安排中,还优选地,由褪色图案覆盖的一半纹理元素直接从为纹理数据块生成的数据值集合取它们的数据值,以及其余的纹理元素从这些数据值内插的它们的数据值。在具体的优选实施例中,可以使用和例如预先规定多个内插方案和多个褪色图案,指示如何为块中的每个纹理元素生成数据值的数据,然后例如指示要使用哪个这样的预先规定的或预定的褪色图案和/或内插方案。例如,每个这样的褪色图案可以使用(实际上,优选地使用)不同的内插(褪色)路径或不同的内插(褪色)路径集合。在优选实施例中, 使用八个褪色图案,每个褪色图案具有内插路径的不同的组合。这在至少颜色数据的情形下被发现用于易于实行例如照片逼真的图像的特别好的重现。在使用多个内插方案和/或褪色图案的场合下,每个褪色图案等等优选地覆盖相同数目的纹理元素,和使用相同的数据值内插过程(即,以使得例如褪色图案仅仅在它们的褪色方向和路径方面是不同的)。这有助于简化编码和译码处理过程。在使用褪色图案(或内插方案)的场合下,褪色图案(或内插方案)可以覆盖纹理数据块表示的所有的纹理元素,或例如仅仅这些元素的一个子集。在如上讨论的,纹理数据块编码要被独立地重现的纹理数据元素子集的场合下,褪色图案(或内插方案)优选地覆盖纹理元素的单个子集,即,以使得褪色图案(或内插方案)需要被独立地应用到纹理元素的每个子集。最优选地,在这样的安排中,编码的纹理数据块可以指示不同的褪色图案(或内插方案)要独立地被应用到纹理元素的每个子集。这将允许例如把不同的褪色图案应用到纹理数据块的不同的子块。因此,例如,在纹理数据块编码8X4纹理像素阵列为两个4X4子块的场合下,优选地,它有可能把不同的褪色图案应用到两个4X4子块的每个子块。在具体的优选实施例中,指示将用于为纹理数据块的纹理元素生成数据值的方法的数据指示多个所选的优选预定的数据值生成方法中的哪个方法将用于该块。这具有优点在纹理数据块中包括的用于这个用途的数据仅仅需要指示要使用哪个数据值生成方法,即,实际上用作为引导到要被使用的数据值生成方法的索引号,而不是例如纹理数据块必须包括更全面地描述如何生成数据值的数据。在这样的安排中,预定的数据值生成方法优选地包括上述的一个或多个或全部方法。因此,它们优选地包括直接从为块生成的数据值集合取得的用于块的纹理元素的数据值,和/或从为块生成的(例如,优选地,褪色图案要应用到块的)数据值集合导出或内插的纹理元素的数据值,和/或这些技术的组合。最优选地,纹理数据块可以从其中选择的预定数据值生成方法包括至少一个方法,其中纹理元素的数据值是直接从为块生成的数据值集合取得的,以及另一个方法,其中纹理元素的数据值包括直接从生成的数据值集合取得的一个或多个数据值,和从生成的数据值集合导出的一个或多个数据值(诸如,例如,施加如上所述的褪色图案)。在具体的优选的这样的实施例中,有两种基本的预定规定的(预先的)数据值生成方法。最优选地,这些方法之一使用直接来自为纹理数据块生成的颜色集合的数据值,以及另一个方法使用从为该块生成的数据值集合导出的至少某些数据值。在具体的优选实施例中,使用导出的数据值的方法使用或可以使用一个或多个(和优选地多个,最优选地八个) 以上讨论的那种类型的预定的褪色图案,纹理数据块包括指示要使用哪个这样的褪色图案的数据。如上面所讨论的,为每个纹理元素生成的实际数据值(例如,在它们的格式和它们所表示的内容方面)将再次取决于正被编码的纹理数据的特性。因此,例如如上面所讨论的,颜色数据和颜色图的情形下,每个数据值将表示给定的颜色,和例如包括颜色值集合, 诸如RGB或RGBa值。另一方面,对于亮度图,每个数据值可包括和表示单个亮度值。对于标准图(黑白图),每个数据值将包括表示法向量的分量组,以及对于阴影(光亮)图,每个数据值将包括和表示指示例如光亮或阴影的存在与否和光亮或阴影的量等等的值集合。在具体的优选实施例中,指示如何生成将用于被纹理数据块编码的纹理元素的数据值集合的数据和指示将用于为每个纹理元素生成数据值的方法的数据,分别指示将用于纹理数据块的预定义数据值集合生成模式和数据值生成方法。在具体的优选的这样的安排中,一个或多个预定义的数据值集合生成模式(S卩,用于生成将用于块的数据值集合)是与一个或多个预定义的数据值生成方法有关的(即,用于从对于块生成的数据值集合生成纹理元素的数据值),以及编码的纹理数据块包括指示要使用数据值集合生成模式和纹理元素数据值生成方法的哪种组合的数据。最优选地,预先规定数据值集合生成模式和纹理元素数据值生成方法的四种组合。这允许通过使用在编码的纹理数据块中的2比特索引号来指示要被使用的组合。在这样的安排中,数据值集合生成模式和纹理元素数据值生成方法的组合可以按希望被选择。在优选实施例中,数据值集合生成模式,如以上所讨论的,包括其中将用于块的数据值是直接从数据值基本集取得的模式和其中数据值是从数据值基本集导出的模式。 类似地,纹理元素数据值生成方法优选地包括其中数据值是直接从由块生成的数据值集合取得的方法和其中数据值是从为纹理块生成的数据值集合内插或导出的方法。在具体的优选实施例中,可被选择的数据值集合生成模式和纹理元素数据值生成方法的预定义组合之一包括其中数据值是直接从数据值基本集取得的数据值集合生成方法和其中数据值是直接从为块生成的数据值集合取得的数据值集合生成方法,以及可被选择的另一个预定的组合(和优选地,全部其余的预定义组合)包括其中一个或多个数据值是从数据值基本集导出的数据值集合生成方法和其中至少某些数据值是从为块生成的数据值集合导出或内插的纹理元素数据值集合生成方法。正如本领域技术人员将会看到的,除了以上讨论的数据展示如何生成纹理数据块数据值集合和将用于为各个纹理元素生成数据值的方法以外,还可能(并且实际上通常)需要把其它数据包括在编码的纹理数据中,例如,精确地指示如何通过使用为块生成的数据值集合和为块规定的用于纹理元素数据值生成的方法来生成各个纹理元素的数据值。例如,正如以上讨论的,在2比特索引号被使用来指示数据值集合生成模式和纹理元素数据值生成方法的场合下,可能需要提供另外的信息,以允许导出对于给定的纹理元素的实际数据值。因此,在具体的优选实施例中,本发明的编码方法和设备还包括用于在纹理数据块中包括数据的步骤或装置,用于允许通过使用为块生成的数据值集合和为块规定的纹理元素数据值生成方法,来生成所述块编码的各个纹理元素的数据值。这个数据的真正的特性将变化,例如取决于将用于从为块生成的数据值集合生成纹理元素的数据值的方法。例如,在各个纹理元素的数据值是要直接从对于块生成的数据值集合取得的场合下,这个数据例如可包括指示哪个这样的数据值将用于每个纹理元素的数据(该数据例如可以(和实际上,优选地)对于每个纹理元素把索引号包括到为纹理数据块生成的数据值集合,或至少允许导出索引号)。另一方面,在例如褪色图案将用于导出由块编码的纹理元素的数据值的场合下,例如,可能也必须,或代之以,包括指示要被使用的精确褪色图案和例如褪色方向的数据(例如,在指示将用于生成数据值的方法的数据的场合下,该数据值仅仅规定褪色图案是要被使用的,但没有规定褪色图案细节)。在具体的优选实施例中,这个数据至少指示来所生成的自数据值集合的数据值, 该数据值集合将用于所述块表示的纹理元素。最优选地,指示了将用于由块编码的多个纹理元素的数据值。在一个实施例中,指示了对于由块表示(编码)的所有纹理元素的数据值。这是适当的,例如在所有纹理元素的数据值是直接从对于块生成的数据值集合取得的场合下。在另一个安排中,仅仅指示了由块编码的所选数目的纹理元素的数据值(例如,“末端点”纹理元素,在褪色图案或内插路径将用于导出各个纹理元素的数据值)。可以为每个这样的纹理元素再次以数据值索引号的形式提供这个数据,或至少允许导出这样的索引号。因此,在具体的优选实施例中,本发明的纹理数据块包括指示如何生成数据值集合(例如,颜色)的数据,其中该数据值集合将用于块表示的纹理元素,还包括指示来自生成的数据值集合(例如,颜色)的哪些数据值集合(例如,颜色)将用于由块表示的所规定的一个或多个纹理元素的数据,以及包括指示一个方法的数据,该方法将用于通过使用为块生成的数据值集合(例如,颜色)和为规定的一个或多个纹理元素所指示的数据值(例如,颜色)来为由块表示的每个纹理元素生成数据值(例如,颜色)。在具体的优选实施例中,纹理数据块被编码为64比特块,它把8 X 4纹理元素阵列优选地编码为两个4X4子阵列(或块)。编码的数据优选地包括一个2比特索引号,指示预定义数据值生成模式和纹理元素数据值生成方法的预定义四组合的集合中的哪个组合将用于重现由块编码的纹理元素,其余的62比特然后指示将用于各个纹理元素的数据值,以及如有必要,当重现编码的纹理元素时使用其它数据,诸如内插(褪色)路径或方向。最优选地,这样的纹理数据块流被编码,并且例如与数据块相组合地被提供,该数据块规定当生成纹理数据块数据值(组)时要被使用的数据值基本集或调色板。本发明的编码处理过程(S卩,生成以上讨论的形式的编码的数据块组)可以以任何适当的方式,或通过使用要被编码的原先的纹理数据,来实行。例如,正如在已知的现有技术处理过程中那样,原先的数据可被划分成块,然后通过使用可得到的(即,实际上,编码的纹理数据块可表示的)各种不同的编码可能性来编码每个块。这提供一组可能的编码块,然后把它与原先的数据相比较,以便确定数据的哪个编码的版本(块)当与原先的数据相比较时给出最小的错误(在重现时)(该编码安排然后可被选择为当原先的纹理数据块被编码时用于该原先的纹理数据块的安排)。虽然本发明在以上是具体地参照纹理数据的编码来描述的,正如本领域技术人员将会看到,本发明也扩展到相反的译码处理过程,即,在其中编码纹理数据块被使用来产生在图形处理中使用的纹理数据元素的阵列。这个处理过程实际上是编码处理过程的颠倒过程,因此,例如包括,从编码的纹理数据块确定如何生成用于块的数据值集合(例如,颜色)、 生成该数据值集合(例如,颜色)、从编码的纹理数据块确定如何从所生成的数据值集合(例如,颜色)生成每个纹理元素的数据值(例如,颜色)、接着随之生成各个纹理元素的数据值 (例如,颜色)。这个处理过程也可以,和实际上优选地,包括这里讨论的本发明的各种优选的和任选的特性,诸如例如使用内插路径或褪色图案来导出将用于纹理元素的数据值。因此,按照本发明的第十六方面,提供了一种译码纹理数据块的方法,该码纹理数据块编码将用于图形处理的纹理数据元素集合,该方法包括
从纹理数据块确定如何生成将用于所述块表示的纹理元素的数据值集合; 根据该确定,生成将用于所述块表示的纹理元素的数据值集合; 从纹理数据块确定一种方法,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个纹理数据元素生成数据值;以及
通过使用为所述块生成的数据值集合和所确定的将用于为每个纹理数据元素生成数据值的方法,来为所述块表示的每个纹理数据元素生成数据值。按照本发明的第十七方面,提供了一种译码纹理数据块的设备,该码纹理数据块编码将用于图形处理的纹理数据元素集合,该设备包括
用于从纹理数据块确定如何生成将用于所述块表示的纹理元素的数据值集合的装
置;
用于根据该确定,生成将用于所述块表示的纹理元素的数据值集合的装置; 用于从纹理数据块确定一种方法的装置,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个纹理数据元素生成数据值;以及
用于通过使用为所述块生成的数据值集合和所确定的将用于为每个纹理数据元素生成数据值的方法,来为所述块表示的每个纹理数据元素生成数据值的装置。按照本发明的第十八方面,提供了一种译码纹理数据块的方法,该码纹理数据块编码将用于图形处理的多个纹理数据元素子集,该方法包括
与其它纹理数据元素子集无关地重现每个纹理数据元素子集。按照本发明的第十九方面,提供了一种译码纹理数据块的设备,该码纹理数据块编码将用于图形处理的多个纹理数据元素子集,该设备包括
用于与其它纹理数据元素子集无关地重现每个纹理数据元素子集的装置。按照本发明的第二十方面,一种译码纹理数据块的方法,该纹理数据块编码将用于图形处理的多个纹理数据元素子集,该方法包括
从已被编码为分开的数据块的数据值集合导出将用作为纹理数据块的数据值的数据值集合。按照本发明的第二十一方面,一种译码纹理数据块的设备,该纹理数据块编码将用于图形处理的多个纹理数据元素子集,该设备包括
用于从已被编码为分开的数据块的数据值集合导出将用作为纹理数据块的数据值的数据值集合的装置。按照本发明的第二十二方面,提供了一种译码纹理数据块的方法,该纹理数据块编码将用于图形处理的多个纹理数据元素子集,该方法包括
从已被编码为分开的数据块的数据值集合导出将用作为纹理数据块的数据值的数据值集合;以及
从编码的纹理数据块导出对于由纹理数据块编码的每个纹理数据子集特定的数据和要由纹理数据块编码的纹理数据子集共享的数据。按照本发明的第二十三方面,提供了一种译码纹理数据块的设备,该纹理数据块编码将用于图形处理的多个纹理数据元素子集,该设备包括
用于从已被编码为分开的数据块的数据值集合导出将用作为纹理数据块的数据值的数据值集合的装置;以及
用于从编码的纹理数据块导出对于由纹理数据块编码的每个纹理数据子集特定的数据和要由纹理数据块编码的纹理数据子集共享的数据的装置。按照本发明的第二十四方面,提供了一种译码纹理数据块的方法,该纹理数据块编码将用于图形处理的纹理数据元素集合,该方法包括
通过根据纹理元素沿覆盖纹理数据块编码的多个纹理元素的路径的位置对该纹理元素的数据值进行内插,来确定将用于纹理数据块编码的至少一个纹理元素的数据值。按照本发明的第二十五方面,提供了一种译码纹理数据块的设备,该纹理数据块编码将用于图形处理的纹理数据元素集合,该设备包括
用于通过根据纹理元素沿覆盖纹理数据块编码的多个纹理元素的路径的位置对该纹理元素的数据值进行内插,来确定将用于纹理数据块编码的至少一个纹理元素的数据值的
直ο本发明的这些方面和安排可包括这里描述的本发明的任一个或多个或全部优选的特性和实施例,如适当的话。例如,可以通过直接从数据值基本集取这些数据值,和/或通过从数据值基本集导出数据值,来生成已译码的块的数据值集合。同样地,可以通过直接从对于该块生成的数据值集合取得这些数据值,和/或通过从该数据值集合导出这些数据值,来生成各个纹理元素的数据值。正如从以上将会看到的,在这些译码安排中,对于将用于纹理数据块和为每个纹理元素的数据值集合生成的实际数据值(例如,在它们的格式和它们表示的内容方面)将再次取决于将被编码的纹理数据的特性。因此,例如,在颜色数据和颜色图的情形下,每个数据值将表示给定的颜色,例如包括颜色值集合,诸如RGB或RGBa数值,而对于亮度图,每个数据值可包括和表示单个亮度值等等。本发明的方法和设备可以以任何适当的方式,例如以硬件或软件,和以(和被包括在)任何适当的器件或部件被实施。在优选实施例中,它们可以在图形处理器中被实施,因此,本发明也扩展到被配置成图形处理器,该图形处理器使用本发明的方法或包括本发明的设备。在优选实施例中,本发明的方法和设备以硬件,优选地在单个半导体平台上被实施。
虽然本发明在以上是具体地参照用于图形处理器的纹理数据的编码被描述的,正如本领域技术人员将会看到,本发明同样可应用于其它形式的数据的编码和译码,具体地, 具有(类似的)数据元素的阵列或块的形式(或可被指示为这种形式)的数据(例如,其数值遵循通常的或类似的格式,和/或将被或可被使用于类似的或相同的用途,或表示类似的信息的数据元素)。它尤其可应用于在想要随机接入的场合下这样数据的编码。这样的“非图形”数据可包括,例如,用于仿真的向量场,表示流体的流动方向或撞击的反弹方向等等的数据(该数据例如是类似于以上相对于图像数据讨论的标准图(黑白图))、热量图、或声音数据等等。在这样的安排中,可以以类似于如这里描述的纹理数据的方式来编码和译码数据。因此,按照本发明的第二十六方面,提供了编码数据元素集合的方法,包括 把数据元素集合编码为数据块;以及
在数据块中包括
指示如何生成数据值集合的数据,该数据值集合将用于所述块表示的数据元素;以及指示一个方法的数据,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个数据元素生成数据值。按照本发明的第二十七方面,提供了用于编码数据元素集合的设备,包括 用于把数据元素集合编码为数据块的装置;
用于在数据块中包括指示如何生成数据值集合的数据的装置,该数据值集合将用于所述块表示的数据元素;以及
用于在数据块中包括指示一个方法的数据的装置,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个数据元素生成数据值。按照本发明的第二十八方面,提供了表示数据元素集合的数据块,包括
指示如何生成数据值集合的数据,该数据值集合将用于所述块表示的数据元素;以及指示一个方法的数据,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个数据元素生成数据值。按照本发明的第二十九方面,提供了编码数据元素集合的方法,包括 把数据元素集合划分成这种元素的多个子集;以及
把数据元素集合编码为单个数据块,其中每个数据元素子集是与其它数据元素子集无关地被重现的。按照本发明的第三十方面,提供了用于编码数据元素集合的设备,包括 用于把数据元素集合划分成这种元素的多个子集的装置;以及
用于把数据元素集合编码为单个数据块的装置,其中每个数据元素子集是与其它数据元素子集无关地被重现的。按照本发明的第三十一方面,提供了表示数据元素集合的编码的数据块,包括 两个或更多数据集合,每个数据集合表示要与其它数据元素子集无关地被重现的数据
元素集合的子集。按照本发明的第三十二方面,提供了编码数据的方法,包括 确定表示数据的数据值集合和编码该数据集合为数据块;把数据划分成多个块;以及
把每个数据块编码为分开的编码的数据块,和在每个这样的数据块中包括指示来自数据值数据块的一个或多个数据值的数据,该数据值数据块将用于所讨论的编码的数据块。按照本发明的第三十三方面,提供了用于编码数据的设备,包括 用于确定表示数据的数据值集合和编码该数据集合为数据块的装置; 用于把数据划分成多个块的装置;以及
用于把每个数据块编码为分开的编码的数据块,和在每个这样的数据块中包括指示来自数据值数据块的一个或多个数据值的数据的装置,该数据值数据块将用于所讨论的编码的数据块。按照本发明的第三十四方面,提供了编码数据集合,包括 编码将用于编码数据集合的数据值集合的数据块;以及
多个数据块,每个数据块编码数据集合的子集,并且每个数据块包括来自数据值块的一个或多个数据值,该数据值块将用于所涉及的纹理数据块。按照本发明的第三十五方面,提供了编码数据的方法,包括 把数据划分成多个数据子集;
把数据编码为多个数据块,每个数据块编码两个或更多数据子集,并且包括对于每个数据子集特定的数据和由数据块编码的数据子集被共享的数据;以及编码包括由数据块共享的数据的数据块。按照本发明的第三十六方面,提供了用于编码数据的设备,包括 用于把数据划分成多个数据子集的装置;
用于把数据编码为多个数据块的装置,每个数据块编码两个或更多数据子集,并且包括对于每个数据子集特定的数据和由数据块编码的数据子集被共享的数据;以及用于编码包括由数据块共享的数据的数据块的装置。按照本发明的第三十七方面,提供了编码数据集合,包括
多个数据块,每个数据块编码两个或更多数据子集,并且包括对于每个数据子集特定的数据和由数据块编码的数据子集被共享的数据;以及包括由数据块共享的数据的数据块。按照本发明的第三十八方面,提供了编码数据元素集合的方法,包括 把数据元素集合编码为纹理数据块;以及
在纹理数据块中包括指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理数据元素的数据值。按照本发明的第三十九方面,提供了用于编码数据元素集合的设备,包括 用于把数据元素集合编码为数据块的装置;以及
用于在纹理数据块中包括指示一条或多条路径的数据的装置,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理数据元素的数据值。按照本发明的第四十方面,提供了编码数据元素集合的数据块,包括
指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理数据元素的数据值。
按照本发明的第四十一方面,提供了对于编码数据元素集合的数据块进行译码的方法,包括从数据块确定如何生成将用于所述块表示的数据元素的数据值集合; 根据该确定,生成将用于所述块表示的数据元素的数据值集合; 从数据块确定一个方法的数据,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个数据元素生成数据值;以及通过使用为所述块生成的数据值集合和所确定的将用于为每个数据元素生成数据值的方法,来为所述块表示的每个数据元素生成数据值。
按照本发明的第四十二方面,提供了用于对于编码数据元素集合的数据块进行译码的设备,包括用于从数据块确定如何生成将用于所述块表示的数据元素的数据值集合的装置; 用于根据该确定,生成将用于所述块表示的数据元素的数据值集合的装置; 用于从数据块确定一个方法的数据的装置,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个数据元素生成数据值;以及用于通过使用为所述块生成的数据值集合和所确定的将用于为每个数据元素生成数据值的方法,来为所述块表示的每个数据元素生成数据值的装置。
按照本发明的第四十三方面,提供了对于编码多个数据元素子集的数据块进行译码的方法,包括与其它数据元素子集无关地重现每个数据元素子集。
按照本发明的第四十四方面,提供了用于对于编码多个数据元素子集的数据块进行译码的设备,包括用于与其它数据元素子集无关地重现每个数据元素子集的装置。
按照本发明的第四十五方面,提供了对于编码多个数据的数据块进行译码的方法,包括从已被编码为分开的数据块的数据值集合导出将用作为数据块的数据值的数据值集I=I O
按照本发明的第四十六方面,提供了用于对于编码多个数据的数据块进行译码的设备,包括用于从已被编码为分开的数据块的数据值集合导出将用作为数据块的数据值的数据值集合的装置。
按照本发明的第四十七方面,提供了对于编码多个数据子集的数据块进行译码的方法,包括从已被编码为分开的数据块的数据值集合导出将用作为数据块的数据值的数据值集合;以及从编码的数据块导出对于由数据块编码的每个数据子集特定的数据和要由数据块编码的数据子集共享的数据。
按照本发明的第四十八方面,提供了用于对于编码多个数据子集的数据块进行译码的设备,包括用于从已被编码为分开的数据块的数据值集合导出将用作为数据块的数据值的数据值集合的装置;以及用于从编码的数据块导出对于由数据块编码的每个数据子集特定的数据和要由数据块编码的数据子集共享的数据的装置。
按照本发明的第四十九方面,提供了对于编码数据元素集合的数据块进行译码的方法,包括通过根据纹理元素沿覆盖纹理数据块编码的多个纹理元素的路径的位置对该纹理元素的数据值进行内插,来确定将用于纹理数据块编码的至少一个纹理元素的数据值。
按照本发明的第五十方面,提供了用于对于编码数据元素集合的数据块进行译码的设备,包括用于通过根据纹理元素沿覆盖纹理数据块编码的多个纹理元素的路径的位置对该纹理元素的数据值进行内插,来确定将用于纹理数据块编码的至少一个纹理元素的数据值的直ο
本发明的这些方面和实施例再次可包括这里描述的本发明的任一个或多个或全部优选的和任选的特性,如适当的话。因此例如,可以通过直接从数据值基本集取得这些数据值,和/或通过从数据值基本集导出数据值,来生成已译码的块的数据值集合。同样地, 可以通过直接从为该块生成的数据值集合取得这些数据值,和/或通过从该数据值集合导出这些数据值,来生成各个数据元素的数据值。
正如本领域技术人员将会看到的,这里描述的本发明的所有的方面和实施例可包括这里描述的本发明的任一个或多个或全部优选的和任选的特性,如适当的话。
按照本发明的方法至少部分可以通过使用软件,例如计算机程序,被实施。因此, 将会看到,当从另外的方面观看时,本发明提供计算机软件,当被安装在数据处理装置时, 特别适合于实行这里描述的方法,计算机程序单元包括计算机软件代码部分,当程序单元在数据处理装置上运行时用于执行这里描述的方法,以及计算机程序包括代码装置,适于当程序在数据处理系统上运行时执行这里描述的方法的所有步骤。本发明还扩展到包括这样的软件的计算机软件载体,该软件在被使用来操作包括数据处理装置的数据编码或译码系统时,使得所述系统与所述数据处理装置相结合实行本发明的方法的步骤。这样的计算机软件载体可以是诸如ROM芯片、⑶ROM或盘那样的物理贮存媒体,或可以是诸如通过电线的电子信号、光学信号或诸如到卫星的射频信号那样的信号。
还将会看到,不是本发明的所有的步骤都必须由计算机软件实行,因此,从广义看来,本发明提供计算机软件和被安装在计算机软件载体上的这样的软件,用于实行这里阐述的方法的至少一个步骤。
本发明因此可以适当地被体现为由计算机系统使用的计算机程序产品。这样的实施方案可包括一系列计算机可读的指令,或是被固定在有形的媒体,诸如计算机可读媒体, 例如软盘、CD-ROM、ROM、或硬盘;或是经由调制解调器或其它接口设备传送到计算机系统, 或通过有形的媒体,包括但不限于,光学或模拟通信线路,或无形地使用无线技术,包括但不限于,微波、红外、或其它传输技术。计算机可读指令的系列体现这里在前面描述的全部或部分功能。
本领域技术人员将会看到,这样的计算机可读指令可以以多种编程语言被编写, 在许多计算机结构或操作系统中使用。而且,这样的指令可以通过使用任何存储器技术被存储,当前的或将来的,包括但不限于,半导体、磁的、或光学的,或通过使用任何通信技术传输,当前的或将来的,包括但不限于,光学,红外、或微波。可以预期,这样的计算机程序指令可以作为可拆卸的媒体与所附印刷的或电子的文件一起被分发,例如收缩包装的软件与计算机系统一起预先加载到例如在系统ROM或固定盘上,或通过例如互联网或3W网的网络,从服务器或电子公告板分发。


现在参照附图仅仅作为例子描述本发明的多个优选实施例,其中图1示意地显示按照本发明的实施例的把图像数据阵列编码为多个编码的数据块; 图2示意地显示在本发明的描述的优选实施例中,图像被划分成的块的编码次序; 图3显示本发明的优选实施例的用于所编码数据的基本译码过程; 图4示意地显示在本发明的优选实施例中使用的颜色生成过程;以及图5示意地显示在本发明的优选实施例中使用的颜色内插过程。
具体实施方式
现在参照在以颜色图(S卩,颜色数据)形式进行的图形处理中使用的纹理数据的编码来描述本发明的优选实施例。然而,正如以上讨论的,和正如本领域技术人员将会看到, 本发明总的可应用于数据编码和译码,所以,不应当被看作为限于本例的纹理颜色数据编码。
图1显示本实施例的基本编码过程。如图1所示,原先的图像或纹理数据元素(纹理像素)的阵列1 (纹理“图”)被再划分成多个8X4纹理元素块2,每个8X4纹理元素块 2编码两个4X4纹理元素子块3,4。
在本实施例中,在原先的纹理图数据阵列(图像)中的每个纹理元素表示在各个纹理元素的位置处要被使用的颜色,以及因此分配给它一个数据值,包括颜色值集合(例如, 红色、绿色、蓝色(RGB))和可选的α (透明度)值。换句话说,在本实施例中,编码和生成等等的数据值都对应于和表示颜色(颜色值集合)。为了方便起见,以下的说明所以主要是指 “颜色”,但应当看到,这样的参考指示包括表示所讨论的颜色的颜色值集合的数据值。
在本实施例中,不是以它的完全的、原先的形式存储颜色数据阵列,每个8X4纹理元素块2被编码为纹理数据块5,纹理数据块5比起它原先未编码形式的纹理数据,具有减小的尺寸。这实际上压缩原先的纹理数据,由此使得它的贮存和处理更容易和更有效。
正如在技术上已知的,每个编码的、减小尺寸的、纹理数据块5必须包含足够的和适当的数据,以允许对应于或表示所讨论的8X4纹理元素块的原先的未编码数据的数据被重现。
这在本实施例中尤其是按照本发明是通过以下操作实现的,即在每个编码的纹理数据块5中包括指示一个用于生成颜色集合(即,颜色值)的方法的数据,其中该颜色集合将用于纹理数据块5表示的纹理元素要,和指示另一个方法的数据,该方法用于通过使用该生成的颜色集合来生成各个纹理元素的颜色。每个纹理数据块5还包括为了允许由该块编码的各个纹理元素的颜色在译码过程中被重现所必须的其它信息,如下面讨论的。
因此,如图1所示,每个编码的纹理数据块5包括多个数据区,即,规定方法和颜色模式的2比特、规定颜色数据的22或M比特、规定用于8x4纹理元素块的第一个4x4子块的数据的20或19比特、和规定用于由纹理数据块5编码的第二个4x4子块的数据的20或 19比特。
正如下面进一步说明的,在本实施例中的每个编码的纹理数据块的方法和颜色模式区规定如何生成将用于编码的块的颜色集合,和将用于通过使用该颜色集合来为由块编码的各个纹理元素生成颜色的方法。颜色数据区规定颜色表(调色板)索引号和缺省值(见下面),该索引号和缺省值由纹理数据块编码的(用于二者的)4X4子块(典型地)共享,以及子块数据区规定对于每个编码的4X4子块特定的数据(诸如,正如下面讨论的,对于纹理元素颜色的褪色方向和颜色索引号)。在本实施例中,在颜色模式0 (见下面),在颜色数据区中有22比特,以及在每个子块数据区中有20比特。在其它的颜色模式下,在颜色数据区中有M比特,以及在每个子块数据区中有19比特。
每个编码的纹理数据块5使用64比特来编码它的8X4纹理元素块,因此编码速率是每个原先的纹理元素2比特。(然而,其它安排当然也是可能的)。
除了如以上讨论的把纹理数据元素1的原先的纹理图(阵列)再划分成多个8X4 块2以外,这些块然后都被编码为各个纹理数据块5,在本实施例中,对于要被编码的纹理数据阵列(图)生成基本的或主要的颜色集合(颜色表)。这个基色表规定64个颜色的集合, 已经发现64个颜色的集合最好地表示在原先的数据中出现的颜色,以及将被使用来当重现各个编码的纹理数据块5时生成要被使用的颜色,正如下面进一步讨论的。
可以通过分析在原先的纹理元素阵列中存在的颜色和从其中选择64颜色的适当代表集合来按想要的那样选择和生成在基色表中规定的64个颜色。
在本实施例中,基色表是从整个图像(包括所有的mip图)导出的,S卩,以使得整个图像,包括所有的mip图(mip-map),都使用相同的单个基色表。
这个基色表被存储在编码的纹理数据块系列的标题数据块中,该标题数据块表示图像的纹理数据元素,这个基色表包含64个“基色”,每个基色以16比特精度被规定。在颜色数目和颜色精度方面的其它安排当然也是可能的。
在本实施例中,规定基色表的标题包括136字节,以及具有以下的基本格式
权利要求
1.一种编码将用于图形处理的纹理数据元素集合的方法,包括把纹理数据元素集合编码为纹理数据块;以及在纹理数据块中包括指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理元素的数据值。
2.根据权利要求1的编码将用于图形处理的纹理数据元素集合的方法,包括在纹理数据块中包括为所述一条或多条路径指示末端点数据值的数据,将在该一条或多条路径上内插纹理数据元素的数据值。
3.根据权利要求1的编码将用于图形处理的纹理数据元素集合的方法,包括在纹理数据块中包括指示要沿所述一条或多条路径使用的内插方案的数据,将在该一条或多条路径上内插纹理数据元素的数据值。
4.根据权利要求1的编码将用于图形处理的纹理数据元素集合的方法,其中对覆盖纹理数据块编码的多个纹理元素的一条或多条路径进行指示的数据用于指示所述一条或多条内插路径的末端点数据和要跟随在这些末端数据点之间的一条或多条路径。
5.根据权利要求1的编码将用于图形处理的纹理数据元素集合的方法,其中存在预定义的一个或多个内插路径集合,以应用于纹理数据块的纹理数据元素,并且对覆盖纹理数据块编码的多个纹理元素的一条或多条路径进行指示的数据用于指示哪个内插路径集合将应用于纹理数据块的纹理数据元素。
6.根据权利要求1的编码将用于图形处理的纹理数据元素集合的方法,其中纹理数据块表示要彼此无关地重现的多个不同纹理数据元素子集,并且该方法包括在纹理数据块中包括指示要应用于每个纹理元素子集的内插路径的数据。
7.根据权利要求1的编码将用于图形处理的纹理数据元素集合的方法,其中纹理数据元素均表示纹理元素的颜色值。
8.根据权利要求1的编码将用于图形处理的纹理数据元素集合的方法,其中每个纹理数据块编码一部分纹理图。
9.一种译码纹理数据块的方法,该纹理数据块编码将用于图形处理的纹理数据元素集合,该方法包括通过根据纹理元素沿覆盖纹理数据块编码的多个纹理元素的路径的位置对该纹理元素的数据值进行内插,来确定将用于纹理数据块编码的至少一个纹理元素的数据值。
10.根据权利要求9的译码纹理数据块的方法,该纹理数据块编码将用于图形处理的纹理数据元素集合,该方法包括从纹理数据块中确定为所述一条或多条路径指示末端点数据值的数据,将在该一条或多条路径上内插纹理数据元素的数据值。
11.根据权利要求9的译码纹理数据块的方法,该纹理数据块编码将用于图形处理的纹理数据元素集合,该方法包括从纹理数据块中确定指示要沿所述一条或多条路径使用的内插方案的数据,将在该一条或多条路径上内插纹理数据元素的数据值。
12.根据权利要求9的译码纹理数据块的方法,该纹理数据块编码将用于图形处理的纹理数据元素集合,该方法包括从纹理数据块中确定指示所述一条或多条内插路径的末端点数据和要跟随在这些末端数据点之间的一条或多条路径。
13.根据权利要求9的译码纹理数据块的方法,该纹理数据块编码将用于图形处理的纹理数据元素集合,其中存在预定义的一个或多个内插路径集合,以应用于纹理数据块的纹理数据元素,并且该方法包括从纹理数据块中确定哪个内插路径集合将应用于纹理数据块的纹理数据元素。
14.根据权利要求9的译码纹理数据块的方法,该纹理数据块编码将用于图形处理的纹理数据元素集合,其中纹理数据块表示要彼此无关地重现的多个不同纹理数据元素子集,并且该方法包括从纹理数据块中确定指示要应用于每个纹理元素子集的内插路径的数据。
15.根据权利要求9的译码纹理数据块的方法,该纹理数据块编码将用于图形处理的纹理数据元素集合,其中纹理数据元素均表示纹理元素的颜色值。
16.根据权利要求9的译码纹理数据块的方法,该纹理数据块编码将用于图形处理的纹理数据元素集合,其中每个纹理数据块编码一部分纹理图。
17.一种用于编码将用于图形处理的纹理数据元素集合的设备,包括用于把纹理数据元素集合编码为纹理数据块的装置;以及用于在纹理数据块中包括指示一条或多条路径的数据的装置,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理元素的数据值。
18.根据权利要求17的用于编码将用于图形处理的纹理数据元素集合的设备,包括 用于在纹理数据块中包括为所述一条或多条路径指示末端点数据值的数据的装置,将在该一条或多条路径上内插纹理数据元素的数据值。
19.根据权利要求17的用于编码将用于图形处理的纹理数据元素集合的设备,包括 用于在纹理数据块中包括指示要沿所述一条或多条路径使用的内插方案的数据的装置,将在该一条或多条路径上内插纹理数据元素的数据值。
20.根据权利要求17的用于编码将用于图形处理的纹理数据元素集合的设备,其中对覆盖纹理数据块编码的多个纹理元素的一条或多条路径进行指示的数据用于指示所述一条或多条内插路径的末端点数据和要跟随在这些末端数据点之间的一条或多条路径。
21.根据权利要求17的用于编码将用于图形处理的纹理数据元素集合的设备,其中存在预定义的一个或多个内插路径集合,以应用于纹理数据块的纹理数据元素,并且对覆盖纹理数据块编码的多个纹理元素的一条或多条路径进行指示的数据用于指示哪个内插路径集合将应用于纹理数据块的纹理数据元素。
22.根据权利要求17的用于编码将用于图形处理的纹理数据元素集合的设备,其中纹理数据块表示要彼此无关地重现的多个不同纹理数据元素子集,并且该设备包括用于在纹理数据块中包括指示要应用于每个纹理元素子集的内插路径的数据的装置。
23.一种用于译码纹理数据块的设备,该纹理数据块编码将用于图形处理的纹理数据元素集合,该设备包括用于通过根据纹理元素沿覆盖纹理数据块编码的多个纹理元素的路径的位置对该纹理元素的数据值进行内插,来确定将用于纹理数据块编码的至少一个纹理元素的数据值的装置。
24.根据权利要求23的用于译码纹理数据块的设备,该纹理数据块编码将用于图形处理的纹理数据元素集合,该设备包括用于从纹理数据块中确定为所述一条或多条路径指示末端点数据值的数据的装置,将在该一条或多条路径上内插纹理数据元素的数据值。
25.根据权利要求23的用于译码纹理数据块的设备,该纹理数据块编码将用于图形处理的纹理数据元素集合,该设备包括用于从纹理数据块中确定指示要沿所述一条或多条路径使用的内插方案的数据的装置,将在该一条或多条路径上内插纹理数据元素的数据值。
26.根据权利要求23的用于译码纹理数据块的设备,该纹理数据块编码将用于图形处理的纹理数据元素集合,该设备包括用于从纹理数据块中确定指示所述一条或多条内插路径的末端点数据和要跟随在这些末端数据点之间的一条或多条路径的装置。
27.根据权利要求23的用于译码纹理数据块的设备,该纹理数据块编码将用于图形处理的纹理数据元素集合,其中存在预定义的一个或多个内插路径集合,以应用于纹理数据块的纹理数据元素,并且该设备包括用于从纹理数据块中确定哪个内插路径集合将应用于纹理数据块的纹理数据元素的装置。
28.根据权利要求23的用于译码纹理数据块的设备,该纹理数据块编码将用于图形处理的纹理数据元素集合,其中纹理数据块表示要彼此无关地重现的多个不同纹理数据元素子集,并且该设备包括用于从纹理数据块中确定指示要应用于每个纹理元素子集的内插路径的数据的装置。
29.一种图形处理器,被配置来使用权利要求1到16的任一项的方法或包括权利要求 17到28的任一项的设备。
30.一种计算机程序单元,包括计算机软件代码部分,当程序单元在数据处理装置中运行时,用于执行权利要求1到16的任一项的方法。
全文摘要
一种编码将用于图形处理的纹理数据元素集合的方法,包括把纹理数据元素集合编码为纹理数据块;以及在纹理数据块中包括指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理元素的数据值。
文档编号G06T9/00GK102542579SQ20111045351
公开日2012年7月4日 申请日期2006年3月3日 优先权日2005年3月4日
发明者B.乔斯兰德, E.索加德, F.赫格亀|德, J.恩斯塔德, M.布拉泽维 申请人:Arm挪威股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1