CN102542579B - 用于编码数据的方法和设备 - Google Patents
用于编码数据的方法和设备 Download PDFInfo
- Publication number
- CN102542579B CN102542579B CN201110453513.4A CN201110453513A CN102542579B CN 102542579 B CN102542579 B CN 102542579B CN 201110453513 A CN201110453513 A CN 201110453513A CN 102542579 B CN102542579 B CN 102542579B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- path
- texel
- texturing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 299
- 230000008569 process Effects 0.000 claims abstract description 75
- 239000003086 colorant Substances 0.000 description 67
- 238000005516 engineering process Methods 0.000 description 17
- 238000005562 fading Methods 0.000 description 13
- 238000007906 compression Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 10
- 238000003491 array Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 7
- 238000009795 derivation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000001105 regulatory effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000001143 conditioned effect Effects 0.000 description 4
- 238000013144 data compression Methods 0.000 description 4
- 230000002349 favourable effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000012447 hatching Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000037452 priming Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 210000003462 vein Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种编码将用于图形处理的纹理数据元素集合的方法,包括:把纹理数据元素集合编码为纹理数据块;以及在纹理数据块中包括指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理元素的数据值。
Description
本案是名为“用于编码数据的方法和设备”,申请日为2006年3月3日,申请号为200680015405.6的专利发明申请的分案申请。
技术领域
本发明涉及用于编码数据的方法和设备,具体地,涉及在计算机图形系统中使用来压缩(解压缩)纹理数据的方法和设备。
背景技术
在计算机图形系统中通常通过把所谓的纹理或纹理数据施加到要绘制的表面上来为在要被显示的图像中的像素生成纹理和颜色。例如,在三维(3D)计算机图形中,在目标上的表面细节通过把诸如编织物图像那样的“纹理”加到表示目标的一组多边形,以便给予目标的渲染图像以纹理结构(例如,编织物)的外貌。这样的纹理典型地通过存储纹理元素阵列或“纹理像素”而被应用,每个纹理像素表示给定的纹理(例如,颜色、亮度、和/或光亮/阴影等等)数值,然后把纹理像素映射到要被显示的图像上的相应的元素,诸如(和,实际上,典型地)像素。
这样的安排可以提供高图像质量,但具有许多缺点。具体地,纹理数据的贮存和在使用时接入它,例如会对于图像处理设备提出例如高贮存量和带宽要求(或相反,在不满足这样的要求的场合下,导致性能损失)。这对于执行图像处理的移动和手持设备是特别重要的,因为这样的设备例如在它们的贮存、带宽与功率资源和能力方面是固有地有限的。
所以,众所周知,尝试以“压缩的”形式编码这样的纹理数据,以便试图减小例如加到设备上的贮存和带宽负担。
一个已知的这样的纹理数据压缩技术确定例如对于给定的情景要使用的一组调色板,然后对于情景中的每个纹理元素(纹理像素)存储一个索引号到调色板组,指示将用于该纹理像素的颜色。这具有优点:对于每个纹理像素只需要一个索引号,而不是全部(例如)颜色值。这有助于减小例如纹理数据贮存要求,但仍旧具有某些缺点,诸如在减小图像质量和必须的数据处理方面。
另一个已知的纹理压缩技术是要使用所谓的块截断编码(BTC)。在这个技术中,用于整个情景或图像的纹理阵列被自划分成较小的块,例如4x4纹理像素,和对于每个这样的块确定多个(典型地两个)基色值,在块中的每个纹理像素被设置为基色值之一。这再次节省了必须被存储或接入的数据,但以较低的图像质量为代价。
美国加州的S3公司,在它们的美国专利No.5956431中建议改进的块截断编码技术。在这个技术中,对于每个纹理像素块再次存储两个基色,但从这两个基色也得到将用于块的两个附加颜色(例如,通过线性混合这些颜色)。这样,四种颜色被提供作为用于纹理像素块的“调色板”,但对于块只需要存储两个颜色值。在块中的每个纹理像素然后通过使用两个比特被编码,以指示四个块颜色的哪个颜色应当用于纹理像素。这个系统比起基本块截断编码提供改进的图像质量,但需要每个块更多的数据。
申请人相信,仍旧有用于改进的数据编码和压缩技术的空间,特别是在用于图形处理的纹理数据方面。
发明内容
按照本发明的第一方面,提供了编码将用于图形处理的纹理数据元素集合的方法,包括:
把纹理数据元素集合编码为纹理数据块;以及
在纹理数据块中包括:
指示如何生成数据值集合的数据,该数据值集合将用于所述块表示的纹理元素;以及
指示一个方法的数据,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个纹理数据元素生成数据值。
按照本发明的第二方面,提供了用于编码将用于图形处理的纹理数据元素集合的设备,包括:
用于把纹理数据元素集合编码为纹理数据块的装置;
用于在纹理数据块中包括指示如何生成数据值集合的数据的装置,该数据值集合将用于所述块表示的纹理元素;以及
用于在纹理数据块中包括指示一个方法的数据的装置,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个纹理数据元素生成数据值。
按照本发明的第三方面,提供了表示将用于图形处理的纹理数据元素集合的纹理数据块,包括:
指示如何生成数据值集合的数据,该数据值集合将用于所述块表示的纹理元素;以及
指示一个方法的数据,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个纹理数据元素生成数据值。
在本发明的纹理数据编码系统中,纹理数据元素集合被编码为纹理数据块,如在已知的块截断编码技术中那样。然而,在本发明中,每个纹理数据块尤其包括指示如何为所讨论的块生成数据值集合的数据,和指示一个方法的数据,该方法将用于通过使用所生成的数据值集合来为由纹理数据块表示的每个纹理元素生成数据值。
正如下面进一步说明的,本申请人发现,这种编码形式易于实现良好的重现的图像质量,而仍旧允许相当且足够高的数据压缩速率。以这种方式编码纹理数据允许例如当从编码的数据重现图像时,逐块地调制和改变要被使用的数据值,诸如颜色值。这在可被重现的数据值,例如,颜色值中,提供更大的灵活性,即使仅仅提供有限的总的数据值(例如颜色)组或调色板。
本发明可被使用来编码任何适当的形式的纹理数据。正如以上讨论的,这样的数据,以它的原先的、原始的或未编码的形式,被典型地安排成纹理元素或纹理像素的阵列的形式,因此,在具体的优选实施例中,本发明被使用来编码纹理数据元素(纹理像素)的阵列。这样的阵列典型地是二维的,正如在技术上已知的,虽然也有可能使用本发明来编码3维阵列(或事实上编码不是常规阵列的形式的数据(例如只要编码和译码处理过程被安排成使得能够以正确的次序和/或位置重现数据))。
纹理数据元素可以表示任何适当的纹理数据,诸如,例如颜色、亮度、黑白图、阴影图(明亮图)、等等,正如本领域已知的。在具体的优选实施例中,纹理数据元素均表示纹理元素的颜色值,但这不是本质的。
正如本领域技术人员将会看到的,实际数据值以纹理元素的原先的、未编码的原始形式和以纹理元素的编码形式与纹理元素相一致(或至少当编码的数据被译码以重现原先的数据的表示时),将取决于纹理元素打算规定或表示的“纹理”的形式。
因此,例如,在纹理元素规定要被使用颜色的场合下,以它们的原先的、未编码形式的纹理数据元素都将包括颜色值集合(红色、绿色、蓝色(RGB),或颜色和透明度值集合(红色、绿色、蓝色、α(RGBa))),以及编码的数据,当被译码(重现)时,将生成相应的颜色值集合。
在阴影(明亮)图的情形下,例如,纹理数据元素都将包括或表示数据值集合,例如指示纹理元素是明亮还是阴影,以及该纹理元素的明亮或阴影的量(和/或颜色)。同样地,对于标准图(黑白图),每个纹理元素的数据将是指示在该纹理元素处光被反射的方向的值集合。
纹理数据元素例如也可以表示z值(深度值)、模板值、亮度值(亮度纹理)、亮度-α-纹理、和/或光泽图(即,在纹理元素位置处表面是否光亮)。
在适当的场合,有可能的是,对于每个纹理数据块只编码对于生成某些但不是全部数据值所须的数据,这些数据值是对于重现原先的数据所必须的,并且剩余的数据值(例如,由此)被导出,以作为数据重现处理过程的一部分。因此,在优选实施例中,编码的纹理数据块编码表示某些原先的纹理数据的数据,表示原先的数据的其它部分的数据在译码过程期间从编码的数据导出。
例如,在标准图的情形下,编码的纹理数据有可能例如仅仅编码两个法线方向分量(例如,dx和dy),第三分量(dz)在译码时由这两个数值导出(由于已经知道,分量的平方和必须是1(因为它们规定长度1的法向量):1=dx2+dy2+dz2)。
每个纹理元素编码和表示的实际数据值,以及被生成为纹理数据块的数据值集合和对于每个编码的纹理元素重现的数据值将因此取决于编码的纹理元素表示的纹理数据。
因此,例如,在颜色数据的情形下,每个数据值例如将包括和表示颜色值集合(即,RGB或RGBa值),即,以使得对于纹理数据块将生成“颜色”集合和对于每个译码的纹理元素将生成颜色(即,RGB或RGBa值)。在亮度纹理的情形下,数据值将表示亮度值,即,以使得对于纹理数据块将生成亮度值集合和对于每个译码的纹理元素将生成亮度值。对于标准图,每个数据值对应于法向量(即,向量分量dx,dy,dz),因此,对于纹理数据块将生成法向量集合和对于每个译码的纹理元素将生成法向量(即,向量分量组:dx,dy,dz),等等。
这里应当指出,这里谈到的“颜色”或“亮度”,正如本领域技术人员将会看到的,因此,是指允许所讨论的颜色或亮度在显示器上重现的数据值集合。这些数据值可包括任何适当的颜色或亮度等数据集合,诸如上述的RGBa值。同样地,这里谈到的生成对于编码的纹理数据块的数据值集合,和对于各个纹理元素的数据值,含有这样的数据值,每个数据值包括或包含数值的组合,诸如颜色值集合(RGB或RGBa),如果适当的话。
按照本发明被编码的纹理数据元素集合或阵列可以是任何适当的或想要的这样的集合。例如,编码的纹理数据块,如果想要的话,可表示要被重现的整个情景或图像(或纹理图)。
然而,在具体的优选实施例中,每个纹理数据块编码所讨论的情景或图像或纹理图的较小的部分(或块),如在传统的块编码技术中那样。在这样的情形下,纹理数据块将编码和表示原先的纹理数据元素的所选择的集合或阵列,诸如纹理像素的4x4阵列。
将会看到,在这样的实施例中,将需要多个这样的各个纹理数据块来编码全部原先的纹理数据集合(纹理数据元素)。因此,在具体的优选实施例中,本发明还包括把一组纹理数据元素(例如,对于一个情景)再划分成多个纹理数据元素子集,然后按照本发明编码每个纹理数据元素子集为纹理数据块。在这样的安排中,优选地,每个子集表示相同的数目的纹理数据元素(和,例如阵列),以及每个纹理数据块具有相同的尺寸,即,使用固定的速率的编码方案。这使得易于实行编码和译码处理过程,正如本领域已知的。因此,例如一个情景可被划分成多个4x4纹理像素阵列,每个这样的阵列被编码为分开的纹理数据块。
在多个纹理数据块是要编码的场合下,因此也优选地,各个块具有共同的格式,例如在块内它们的数据(比特位置)次序等等方面,因为这再次使得易于实行编码和译码处理过程。
在多个纹理数据块被使用来编码更大的情景和图像(或纹理元素集合或阵列)(或它们的一部分)的场合下,情景或图像实际上再划分成更小的块,和编码成纹理块的次序可以按希望的那样被选择,在优选实施例中,块(数据的子集)以Morton次序被编码,虽然其它安排当然也是可能的。
在具体的优选实施例中,被编码为单个纹理数据块的纹理元素集合在纹理数据块内被再划分成例如纹理数据“子块”。例如,纹理数据块可被使用来编8x4纹理元素阵列,但编码将是使得纹理元素阵列实际上被编码为在纹理数据块内的两个4x4纹理元素子块。事实上,在本发明的优选实施例中,每个纹理数据块从原先的纹理元素集合(例如,情景或图像)编码(表示)两个纹理元素阵列(即,8x4纹理元素)。
在具体的这样的优选实施例中,纹理数据块的子块共享指示如何为块生成数据值集合(例如,颜色)和将用于为纹理元素生成数据值(例如,颜色)的方法的相同数据,但是被分开地重现(即,对于由纹理数据块表示的纹理元素(当块被译码时)逐个子块地生成数据值,而不是对于块整个地生成)。
这些安排具有优点:在纹理数据块内的子块可以有效地共享某些块信息,由此易于实行较高的数据压缩率,而不需要整个地译码较大的纹理元素阵列。
可以相信,这样的安排对其本身可以是新的和有利的。因此,按照本发明的第四方面,提供了编码将用于图形处理的纹理数据元素集合的方法,包括:
把纹理数据元素集合划分成这种元素的多个子集;以及
把两个或更多纹理数据元素子集编码为单个纹理数据块,其中每个纹理数据元素子集是与其它的纹理数据元素子集无关地被重现。
按照本发明的第五方面,提供了用于编码将用于图形处理的纹理数据元素集合的设备,包括:
用于把纹理数据元素集合划分成这种元素的多个子集的装置;以及
用于把两个或更多纹理数据元素子集编码为单个纹理数据块的装置,其中每个纹理数据元素子集是与其它的纹理数据元素子集无关地被重现。
按照本发明的第六方面,提供了表示将用于图形处理的纹理数据元素集合的编码的纹理数据块,包括:
表示纹理数据元素集合中要彼此无关地重现的两个或更多子集的数据。
本发明的这些方面和实施例,正如本领域技术人员将会看到的,可包括这里描述的本发明的一个或多个或全部优选的和任选的特性。因此优选地,例如,对于纹理数据块,编码两个(和仅仅两个)纹理数据元素子集。类似地,编码的纹理数据块优选地包括指示如何生成将用于块的数据值集合(例如,颜色)和将用于为块的纹理元素生成数据值的方法的共同的单个数据集合,该数据对于块的纹理数据元素子集被共享(即,以使得相同的这样的数据用于由块被编码的纹理数据元素的每个子集)。
在编码的纹理数据块中包括的用于指示如何生成将用于所述块表示的纹理元素的数据值集合(例如,颜色)的数据可以是任何适当的这样的数据。例如,它可以指示将用于生成数据值的计算或算法。
在具体的优选实施例中,这个数据指示数据值集合如何从数据值的基本或初步集合或表(调色板)中被生成。这有助于实行纹理数据的压缩,因为例如数据值的基本或初步集合可以是(和事实上,优选地是)表示在原先的未编码的纹理数据集合中的数据值的减小的数据值集合,和/或例如可以被多个各个纹理数据块共享。例如,在颜色纹理的情形下,数据值的基本或初步组可包括表示在原先的图像或纹理图中所使用颜色的减小的颜色集合(调色板)。
在这个安排中,要被使用的数据值的基本集可以按希望的那样被生成,例如,正如本领域已知的,通过评估在原先的纹理数据(即,要被编码和压缩的数据)中存在的数据值和由此导出表示原先的数据值的和/或可以被使用来导出原先的数据值的数据值集合。最优选地,减小的数据值集合(即,它包括比起原先的数据更少的数据值,例如,它是在原先的数据中使用的数据值集合的子集)被导出和被用于数据值基本集,因为它易于实行原先的数据的压缩。任何适当的技术可被使用于此,诸如,例如使用误差比较技术来确定最好地匹配于原先的数据值集合的减小的数据值集合。这实际上将提供将用于纹理数据块的数据值的预定的基本组。
数据值的预定的基本组例如逐块地被确定。例如,在颜色数据的情形下,正如传统的块截断编码技术那样,可以对于纹理块确定一个或两个(或多个)基本的表示性颜色,这些颜色然后当重现纹理块时用作为生成颜色集合时要使用的基本调色板。在这种情形下,在数据值调色板中对于块的基本数据值例如可被提供作为用于纹理块的数据的一部分(即,本身被包括在纹理数据块中),正如在传统的技术中那样。
然而,在具体的优选实施例中,单个数据值基本集(例如,颜色调色板)被确定和通常被共同用于多个纹理块(即,以使得多个纹理块共享和使用同一个数据值基本集)。最优选地,数据值基本集(例如,颜色)对于要被成像的整个纹理(例如,纹理图)被确定。这实际上确定要由纹理块(例如,用于情景)共享的“全局”数据值基本集(颜色调色板),各个纹理块的数据值(例如,颜色)然后可以从纹理块生成(以及例如,被逐块地改变或调制)。
使用对于多个纹理数据块的(例如,整个情景)“共享的”数据值基本集具有优点:各个块可以允许从更大范围的数据值进行选择,用于生成它自己的数据值集合(由此,例如提供更大的数据值灵活性和图像质量),而仍旧达到相当高的纹理压缩率。例如在颜色的情形下,它也易于实行α(透明度)梯度,因为使用“全局”颜色调色板易于使用例如更复杂的α值。
在使用这样的“全局”的或共享的数据值调色板(例如,颜色)的场合下,在调色板中的数据值的数目可以按希望那样被选择。优选地,使用在1和128之间的数据值,最优选地,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值。另一方面,对于亮度图,每个数据值可包括和表示单个亮度值。对于标准图(黑白图),每个数据值将包括表示法向量的分量组,以及对于阴影(光亮)图,每个数据值将包括和表示指示例如光亮或阴影量的存在与否、和光亮或阴影的量等等的值集合。
在编码的纹理数据块中包括的用于指示一个方法的数据,其中该方法将用于通过使用为块生成的数据值集合来为块被编码的每个纹理元素生成数据值(例如,颜色),类似地可以是任何适当的这样的数据。例如,它可以指示将用于生成数据值的计算或算法。
在具体的优选实施例中,这个数据指示用于每个纹理元素要的数据值(例如,颜色)是直接从为纹理数据块生成的数据值集合(例如,颜色)中取得的,或以某种形式从这些数据值被内插或导出。
在例如颜色的情形下(即,在编码的纹理数据表示每个纹理元素的颜色的场合下),其中颜色(数据值)是直接从为纹理数据块生成的颜色集合取得的安排,被发现为具有许多不同的颜色和高频的纹理数据提供更好的图像重现,诸如典型地在伪像中发现的。另一方面,其中从为纹理数据块生成的颜色集合内插纹理元素的颜色的安排,被发现为对于具有许多类似的颜色和较低的频率的纹理数据提供更好的图像重现,诸如典型地在照片逼真纹理中发现的。
在给定的纹理元素的数据值是要以某种方式从纹理数据块生成的数据值集合被内插或导出的场合下,那可以通过例如混合或调节一个或多个这些数据值,例如以与以上讨论的用于从数据值基本集生成纹理数据块数据值集合的方式相类似的方式来完成。
然而,在具体的优选的这样的安排中,将用于纹理元素要的数据值通过沿覆盖由所述块表示的多个纹理元素的一条或多条路径内插这些数据值而被生成。最优选地,规定覆盖多个纹理元素的纹理元素路径以及它的末端点数据值(例如,颜色),然后,在通过以适当的或选择的方式内插在对于所讨论的纹理元素的位置的末端点数据值之间来确定路径的末端点中间的纹理元素的数据值(例如,颜色)。例如,可以规定覆盖一行四个纹理元素的直线纹理元素路径,末端纹理元素把它们的数据值设置成直接从为纹理数据块生成的数据值集合取得的数据值,以及两个中间的纹理元素把它们的数据值从两个末端点数据值被内插(例如,通过简单的线性内插)。
实际上,这样的安排把褪色(fading)路径或方案应用到纹理元素,以及本申请人发现至少在颜色数据的情形下为照片逼真的纹理提供特别良好的颜色重现。
因此可以相信,这样的安排对于其本身可以是新的和有利的。因此,按照本发明的第十三方面,提供了编码将用于图形处理的纹理数据元素集合的方法,包括:
把纹理数据元素集合编码为纹理数据块;以及
在纹理数据块中包括指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理元素的数据值。
按照本发明的第十四方面,提供了用于编码将用于图形处理的纹理数据元素集合的设备,包括:
用于把纹理数据元素集合编码为纹理数据块的装置;以及
在纹理数据块中包括指示一条或多条路径的数据的装置,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理元素的数据值。
按照本发明的第十五方面,提供了编码将用于图形处理的纹理数据元素集合的纹理数据块,包括:
指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理数据元素的数据值。
本发明的这些方面和实施例再次包括这里讨论的本发明的任何一个或多个或全部优选的和任选的特性。因此,例如,指示覆盖多个纹理元素的路径的数据优选地规定或指示覆盖多个纹理元素的路径,和路径的末端点数据值,和任选地,要沿路径使用的内插方案。
在要使用这样的内插安排的场合下,编码的纹理数据块优选地指示要被使用的内插路径覆盖的纹理元素。这优选地是通过指示内插路径的末端点和在这些末端点之间而行的路径(例如,是直线还是来回的z字形曲线等等)而完成的。
优选地还指示了为由内插路径覆盖的纹理元素确定数据值的方式。在优选实施例中,这是通过直接从为纹理数据块生成的数据值集合取得末端点数据值而完成的,中间的纹理元素的数据值优选地是从这些数据值线性地内插。然而如果想要的话,其它的,例如更复杂的安排是可能的。优选地,该安排是使得对于给定的内插路径,一半纹理元素直接从为纹理数据块生成的数据值集合选择它们的数据值,以及另一半纹理元素从那些选择的数据值内插它们的数据值。
因此,在优选实施例中,对于纹理数据块编码的一个或一个以上的纹理元素的数据值(例如,颜色)是基于沿覆盖多个纹理元素的路径的纹理元素的位置和例如为该路径规定的末端点数据值(例如,颜色)。在这种情形下,对于给定的纹理元素的数据值可以通过确定路径的末端点数据值、确定沿路径的纹理元素的位置、并接着随之内插或导出给定的纹理元素的数据值而被确定。
由内插路径覆盖的纹理元素的数目可以按希望那样被选择,而且,例如应当基于每个纹理数据块编码的纹理元素的数目。在优选实施例中,每个内插路径覆盖该块的四个纹理元素(例如,以使得,优选地,对于四个纹理元素,两个将是内插路径的末端点和直接从为纹理数据块生成的数据值集合取得的它们的数据值,以及两个将是“中间的”元素,“中间的”元素因此从末端点数据值内插的它们的数据值)。
在具体的优选实施例中,可以优选地规定用于施加到纹理数据块的纹理数据元素(或纹理数据元素子集)的内插路径集合。这可包括例如规定有关的内插路径集合,该有关的内插路径一起覆盖给定的纹理数据块表示的所有纹理数据元素或纹理数据元素子集。例如,对于4x4纹理数据块,四个内插路径的一个集合,每个路径覆盖块中的一行四个纹理元素,可被规定为要被施加到该块的内插路径集合。这实际上规定要被施加到由纹理数据块表示(编码)的纹理元素的褪色或阴影图案。
因此,在具体的优选实施例中,指示一种方法的数据,其中该方法将用于为该块的纹理元素生成数据值,指示将用于该块的具体的褪色图案,该褪色图案规定要被施加到该块表示的纹理元素的内插路径集合。在这样的安排中,每个内插路径优选地覆盖相同的数目的纹理元素(例如,4个)。在这样的安排中,还优选地,由褪色图案覆盖的一半纹理元素直接从为纹理数据块生成的数据值集合取它们的数据值,以及其余的纹理元素从这些数据值内插的它们的数据值。
在具体的优选实施例中,可以使用和例如预先规定多个内插方案和多个褪色图案,指示如何为块中的每个纹理元素生成数据值的数据,然后例如指示要使用哪个这样的预先规定的或预定的褪色图案和/或内插方案。例如,每个这样的褪色图案可以使用(实际上,优选地使用)不同的内插(褪色)路径或不同的内插(褪色)路径集合。在优选实施例中,使用八个褪色图案,每个褪色图案具有内插路径的不同的组合。这在至少颜色数据的情形下被发现用于易于实行例如照片逼真的图像的特别好的重现。
在使用多个内插方案和/或褪色图案的场合下,每个褪色图案等等优选地覆盖相同数目的纹理元素,和使用相同的数据值内插过程(即,以使得例如褪色图案仅仅在它们的褪色方向和路径方面是不同的)。这有助于简化编码和译码处理过程。
在使用褪色图案(或内插方案)的场合下,褪色图案(或内插方案)可以覆盖纹理数据块表示的所有的纹理元素,或例如仅仅这些元素的一个子集。在如上讨论的,纹理数据块编码要被独立地重现的纹理数据元素子集的场合下,褪色图案(或内插方案)优选地覆盖纹理元素的单个子集,即,以使得褪色图案(或内插方案)需要被独立地应用到纹理元素的每个子集。
最优选地,在这样的安排中,编码的纹理数据块可以指示不同的褪色图案(或内插方案)要独立地被应用到纹理元素的每个子集。这将允许例如把不同的褪色图案应用到纹理数据块的不同的子块。因此,例如,在纹理数据块编码8×4纹理像素阵列为两个4×4子块的场合下,优选地,它有可能把不同的褪色图案应用到两个4×4子块的每个子块。
在具体的优选实施例中,指示将用于为纹理数据块的纹理元素生成数据值的方法的数据指示多个所选的优选预定的数据值生成方法中的哪个方法将用于该块。这具有优点:在纹理数据块中包括的用于这个用途的数据仅仅需要指示要使用哪个数据值生成方法,即,实际上用作为引导到要被使用的数据值生成方法的索引号,而不是例如纹理数据块必须包括更全面地描述如何生成数据值的数据。
在这样的安排中,预定的数据值生成方法优选地包括上述的一个或多个或全部方法。因此,它们优选地包括直接从为块生成的数据值集合取得的用于块的纹理元素的数据值,和/或从为块生成的(例如,优选地,褪色图案要应用到块的)数据值集合导出或内插的纹理元素的数据值,和/或这些技术的组合。最优选地,纹理数据块可以从其中选择的预定数据值生成方法包括至少一个方法,其中纹理元素的数据值是直接从为块生成的数据值集合取得的,以及另一个方法,其中纹理元素的数据值包括直接从生成的数据值集合取得的一个或多个数据值,和从生成的数据值集合导出的一个或多个数据值(诸如,例如,施加如上所述的褪色图案)。
在具体的优选的这样的实施例中,有两种基本的预定规定的(预先的)数据值生成方法。最优选地,这些方法之一使用直接来自为纹理数据块生成的颜色集合的数据值,以及另一个方法使用从为该块生成的数据值集合导出的至少某些数据值。在具体的优选实施例中,使用导出的数据值的方法使用或可以使用一个或多个(和优选地多个,最优选地八个)以上讨论的那种类型的预定的褪色图案,纹理数据块包括指示要使用哪个这样的褪色图案的数据。
如上面所讨论的,为每个纹理元素生成的实际数据值(例如,在它们的格式和它们所表示的内容方面)将再次取决于正被编码的纹理数据的特性。因此,例如如上面所讨论的,颜色数据和颜色图的情形下,每个数据值将表示给定的颜色,和例如包括颜色值集合,诸如RGB或RGBa值。另一方面,对于亮度图,每个数据值可包括和表示单个亮度值。对于标准图(黑白图),每个数据值将包括表示法向量的分量组,以及对于阴影(光亮)图,每个数据值将包括和表示指示例如光亮或阴影的存在与否和光亮或阴影的量等等的值集合。
在具体的优选实施例中,指示如何生成将用于被纹理数据块编码的纹理元素的数据值集合的数据和指示将用于为每个纹理元素生成数据值的方法的数据,分别指示将用于纹理数据块的预定义数据值集合生成模式和数据值生成方法。
在具体的优选的这样的安排中,一个或多个预定义的数据值集合生成模式(即,用于生成将用于块的数据值集合)是与一个或多个预定义的数据值生成方法有关的(即,用于从对于块生成的数据值集合生成纹理元素的数据值),以及编码的纹理数据块包括指示要使用数据值集合生成模式和纹理元素数据值生成方法的哪种组合的数据。最优选地,预先规定数据值集合生成模式和纹理元素数据值生成方法的四种组合。这允许通过使用在编码的纹理数据块中的2比特索引号来指示要被使用的组合。
在这样的安排中,数据值集合生成模式和纹理元素数据值生成方法的组合可以按希望被选择。在优选实施例中,数据值集合生成模式,如以上所讨论的,包括其中将用于块的数据值是直接从数据值基本集取得的模式和其中数据值是从数据值基本集导出的模式。类似地,纹理元素数据值生成方法优选地包括其中数据值是直接从由块生成的数据值集合取得的方法和其中数据值是从为纹理块生成的数据值集合内插或导出的方法。
在具体的优选实施例中,可被选择的数据值集合生成模式和纹理元素数据值生成方法的预定义组合之一包括其中数据值是直接从数据值基本集取得的数据值集合生成方法和其中数据值是直接从为块生成的数据值集合取得的数据值集合生成方法,以及可被选择的另一个预定的组合(和优选地,全部其余的预定义组合)包括其中一个或多个数据值是从数据值基本集导出的数据值集合生成方法和其中至少某些数据值是从为块生成的数据值集合导出或内插的纹理元素数据值集合生成方法。
正如本领域技术人员将会看到的,除了以上讨论的数据展示如何生成纹理数据块数据值集合和将用于为各个纹理元素生成数据值的方法以外,还可能(并且实际上通常)需要把其它数据包括在编码的纹理数据中,例如,精确地指示如何通过使用为块生成的数据值集合和为块规定的用于纹理元素数据值生成的方法来生成各个纹理元素的数据值。例如,正如以上讨论的,在2比特索引号被使用来指示数据值集合生成模式和纹理元素数据值生成方法的场合下,可能需要提供另外的信息,以允许导出对于给定的纹理元素的实际数据值。
因此,在具体的优选实施例中,本发明的编码方法和设备还包括用于在纹理数据块中包括数据的步骤或装置,用于允许通过使用为块生成的数据值集合和为块规定的纹理元素数据值生成方法,来生成所述块编码的各个纹理元素的数据值。
这个数据的真正的特性将变化,例如取决于将用于从为块生成的数据值集合生成纹理元素的数据值的方法。例如,在各个纹理元素的数据值是要直接从对于块生成的数据值集合取得的场合下,这个数据例如可包括指示哪个这样的数据值将用于每个纹理元素的数据(该数据例如可以(和实际上,优选地)对于每个纹理元素把索引号包括到为纹理数据块生成的数据值集合,或至少允许导出索引号)。另一方面,在例如褪色图案将用于导出由块编码的纹理元素的数据值的场合下,例如,可能也必须,或代之以,包括指示要被使用的精确褪色图案和例如褪色方向的数据(例如,在指示将用于生成数据值的方法的数据的场合下,该数据值仅仅规定褪色图案是要被使用的,但没有规定褪色图案细节)。
在具体的优选实施例中,这个数据至少指示来所生成的自数据值集合的数据值,该数据值集合将用于所述块表示的纹理元素。最优选地,指示了将用于由块编码的多个纹理元素的数据值。在一个实施例中,指示了对于由块表示(编码)的所有纹理元素的数据值。这是适当的,例如在所有纹理元素的数据值是直接从对于块生成的数据值集合取得的场合下。在另一个安排中,仅仅指示了由块编码的所选数目的纹理元素的数据值(例如,“末端点”纹理元素,在褪色图案或内插路径将用于导出各个纹理元素的数据值)。可以为每个这样的纹理元素再次以数据值索引号的形式提供这个数据,或至少允许导出这样的索引号。
因此,在具体的优选实施例中,本发明的纹理数据块包括指示如何生成数据值集合(例如,颜色)的数据,其中该数据值集合将用于块表示的纹理元素,还包括指示来自生成的数据值集合(例如,颜色)的哪些数据值集合(例如,颜色)将用于由块表示的所规定的一个或多个纹理元素的数据,以及包括指示一个方法的数据,该方法将用于通过使用为块生成的数据值集合(例如,颜色)和为规定的一个或多个纹理元素所指示的数据值(例如,颜色)来为由块表示的每个纹理元素生成数据值(例如,颜色)。
在具体的优选实施例中,纹理数据块被编码为64比特块,它把8×4纹理元素阵列优选地编码为两个4×4子阵列(或块)。编码的数据优选地包括一个2比特索引号,指示预定义数据值生成模式和纹理元素数据值生成方法的预定义四组合的集合中的哪个组合将用于重现由块编码的纹理元素,其余的62比特然后指示将用于各个纹理元素的数据值,以及如有必要,当重现编码的纹理元素时使用其它数据,诸如内插(褪色)路径或方向。最优选地,这样的纹理数据块流被编码,并且例如与数据块相组合地被提供,该数据块规定当生成纹理数据块数据值(组)时要被使用的数据值基本集或调色板。
本发明的编码处理过程(即,生成以上讨论的形式的编码的数据块组)可以以任何适当的方式,或通过使用要被编码的原先的纹理数据,来实行。例如,正如在已知的现有技术处理过程中那样,原先的数据可被划分成块,然后通过使用可得到的(即,实际上,编码的纹理数据块可表示的)各种不同的编码可能性来编码每个块。这提供一组可能的编码块,然后把它与原先的数据相比较,以便确定数据的哪个编码的版本(块)当与原先的数据相比较时给出最小的错误(在重现时)(该编码安排然后可被选择为当原先的纹理数据块被编码时用于该原先的纹理数据块的安排)。
虽然本发明在以上是具体地参照纹理数据的编码来描述的,正如本领域技术人员将会看到,本发明也扩展到相反的译码处理过程,即,在其中编码纹理数据块被使用来产生在图形处理中使用的纹理数据元素的阵列。这个处理过程实际上是编码处理过程的颠倒过程,因此,例如包括,从编码的纹理数据块确定如何生成用于块的数据值集合(例如,颜色)、生成该数据值集合(例如,颜色)、从编码的纹理数据块确定如何从所生成的数据值集合(例如,颜色)生成每个纹理元素的数据值(例如,颜色)、接着随之生成各个纹理元素的数据值(例如,颜色)。这个处理过程也可以,和实际上优选地,包括这里讨论的本发明的各种优选的和任选的特性,诸如例如使用内插路径或褪色图案来导出将用于纹理元素的数据值。
因此,按照本发明的第十六方面,提供了一种译码纹理数据块的方法,该码纹理数据块编码将用于图形处理的纹理数据元素集合,该方法包括:
从纹理数据块确定如何生成将用于所述块表示的纹理元素的数据值集合;
根据该确定,生成将用于所述块表示的纹理元素的数据值集合;
从纹理数据块确定一种方法,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个纹理数据元素生成数据值;以及
通过使用为所述块生成的数据值集合和所确定的将用于为每个纹理数据元素生成数据值的方法,来为所述块表示的每个纹理数据元素生成数据值。
按照本发明的第十七方面,提供了一种译码纹理数据块的设备,该码纹理数据块编码将用于图形处理的纹理数据元素集合,该设备包括:
用于从纹理数据块确定如何生成将用于所述块表示的纹理元素的数据值集合的装置;
用于根据该确定,生成将用于所述块表示的纹理元素的数据值集合的装置;
用于从纹理数据块确定一种方法的装置,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个纹理数据元素生成数据值;以及
用于通过使用为所述块生成的数据值集合和所确定的将用于为每个纹理数据元素生成数据值的方法,来为所述块表示的每个纹理数据元素生成数据值的装置。
按照本发明的第十八方面,提供了一种译码纹理数据块的方法,该码纹理数据块编码将用于图形处理的多个纹理数据元素子集,该方法包括:
与其它纹理数据元素子集无关地重现每个纹理数据元素子集。
按照本发明的第十九方面,提供了一种译码纹理数据块的设备,该码纹理数据块编码将用于图形处理的多个纹理数据元素子集,该设备包括:
用于与其它纹理数据元素子集无关地重现每个纹理数据元素子集的装置。
按照本发明的第二十方面,一种译码纹理数据块的方法,该纹理数据块编码将用于图形处理的多个纹理数据元素子集,该方法包括:
从已被编码为分开的数据块的数据值集合导出将用作为纹理数据块的数据值的数据值集合。
按照本发明的第二十一方面,一种译码纹理数据块的设备,该纹理数据块编码将用于图形处理的多个纹理数据元素子集,该设备包括:
用于从已被编码为分开的数据块的数据值集合导出将用作为纹理数据块的数据值的数据值集合的装置。
按照本发明的第二十二方面,提供了一种译码纹理数据块的方法,该纹理数据块编码将用于图形处理的多个纹理数据元素子集,该方法包括:
从已被编码为分开的数据块的数据值集合导出将用作为纹理数据块的数据值的数据值集合;以及
从编码的纹理数据块导出对于由纹理数据块编码的每个纹理数据子集特定的数据和要由纹理数据块编码的纹理数据子集共享的数据。
按照本发明的第二十三方面,提供了一种译码纹理数据块的设备,该纹理数据块编码将用于图形处理的多个纹理数据元素子集,该设备包括:
用于从已被编码为分开的数据块的数据值集合导出将用作为纹理数据块的数据值的数据值集合的装置;以及
用于从编码的纹理数据块导出对于由纹理数据块编码的每个纹理数据子集特定的数据和要由纹理数据块编码的纹理数据子集共享的数据的装置。
按照本发明的第二十四方面,提供了一种译码纹理数据块的方法,该纹理数据块编码将用于图形处理的纹理数据元素集合,该方法包括:
通过根据纹理元素沿覆盖纹理数据块编码的多个纹理元素的路径的位置对该纹理元素的数据值进行内插,来确定将用于纹理数据块编码的至少一个纹理元素的数据值。
按照本发明的第二十五方面,提供了一种译码纹理数据块的设备,该纹理数据块编码将用于图形处理的纹理数据元素集合,该设备包括:
用于通过根据纹理元素沿覆盖纹理数据块编码的多个纹理元素的路径的位置对该纹理元素的数据值进行内插,来确定将用于纹理数据块编码的至少一个纹理元素的数据值的装置。
本发明的这些方面和安排可包括这里描述的本发明的任一个或多个或全部优选的特性和实施例,如适当的话。例如,可以通过直接从数据值基本集取这些数据值,和/或通过从数据值基本集导出数据值,来生成已译码的块的数据值集合。同样地,可以通过直接从对于该块生成的数据值集合取得这些数据值,和/或通过从该数据值集合导出这些数据值,来生成各个纹理元素的数据值。
正如从以上将会看到的,在这些译码安排中,对于将用于纹理数据块和为每个纹理元素的数据值集合生成的实际数据值(例如,在它们的格式和它们表示的内容方面)将再次取决于将被编码的纹理数据的特性。因此,例如,在颜色数据和颜色图的情形下,每个数据值将表示给定的颜色,例如包括颜色值集合,诸如RGB或RGBa数值,而对于亮度图,每个数据值可包括和表示单个亮度值等等。
本发明的方法和设备可以以任何适当的方式,例如以硬件或软件,和以(和被包括在)任何适当的器件或部件被实施。在优选实施例中,它们可以在图形处理器中被实施,因此,本发明也扩展到被配置成图形处理器,该图形处理器使用本发明的方法或包括本发明的设备。在优选实施例中,本发明的方法和设备以硬件,优选地在单个半导体平台上被实施。
虽然本发明在以上是具体地参照用于图形处理器的纹理数据的编码被描述的,正如本领域技术人员将会看到,本发明同样可应用于其它形式的数据的编码和译码,具体地,具有(类似的)数据元素的阵列或块的形式(或可被指示为这种形式)的数据(例如,其数值遵循通常的或类似的格式,和/或将被或可被使用于类似的或相同的用途,或表示类似的信息的数据元素)。它尤其可应用于在想要随机接入的场合下这样数据的编码。
这样的“非图形”数据可包括,例如,用于仿真的向量场,表示流体的流动方向或撞击的反弹方向等等的数据(该数据例如是类似于以上相对于图像数据讨论的标准图(黑白图))、热量图、或声音数据等等。
在这样的安排中,可以以类似于如这里描述的纹理数据的方式来编码和译码数据。
因此,按照本发明的第二十六方面,提供了编码数据元素集合的方法,包括:
把数据元素集合编码为数据块;以及
在数据块中包括:
指示如何生成数据值集合的数据,该数据值集合将用于所述块表示的数据元素;以及
指示一个方法的数据,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个数据元素生成数据值。
按照本发明的第二十七方面,提供了用于编码数据元素集合的设备,包括:
用于把数据元素集合编码为数据块的装置;
用于在数据块中包括指示如何生成数据值集合的数据的装置,该数据值集合将用于所述块表示的数据元素;以及
用于在数据块中包括指示一个方法的数据的装置,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个数据元素生成数据值。
按照本发明的第二十八方面,提供了表示数据元素集合的数据块,包括:
指示如何生成数据值集合的数据,该数据值集合将用于所述块表示的数据元素;以及
指示一个方法的数据,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个数据元素生成数据值。
按照本发明的第二十九方面,提供了编码数据元素集合的方法,包括:
把数据元素集合划分成这种元素的多个子集;以及
把数据元素集合编码为单个数据块,其中每个数据元素子集是与其它数据元素子集无关地被重现的。
按照本发明的第三十方面,提供了用于编码数据元素集合的设备,包括:
用于把数据元素集合划分成这种元素的多个子集的装置;以及
用于把数据元素集合编码为单个数据块的装置,其中每个数据元素子集是与其它数据元素子集无关地被重现的。
按照本发明的第三十一方面,提供了表示数据元素集合的编码的数据块,包括:
两个或更多数据集合,每个数据集合表示要与其它数据元素子集无关地被重现的数据元素集合的子集。
按照本发明的第三十二方面,提供了编码数据的方法,包括:
确定表示数据的数据值集合和编码该数据集合为数据块;
把数据划分成多个块;以及
把每个数据块编码为分开的编码的数据块,和在每个这样的数据块中包括指示来自数据值数据块的一个或多个数据值的数据,该数据值数据块将用于所讨论的编码的数据块。
按照本发明的第三十三方面,提供了用于编码数据的设备,包括:
用于确定表示数据的数据值集合和编码该数据集合为数据块的装置;
用于把数据划分成多个块的装置;以及
用于把每个数据块编码为分开的编码的数据块,和在每个这样的数据块中包括指示来自数据值数据块的一个或多个数据值的数据的装置,该数据值数据块将用于所讨论的编码的数据块。
按照本发明的第三十四方面,提供了编码数据集合,包括:
编码将用于编码数据集合的数据值集合的数据块;以及
多个数据块,每个数据块编码数据集合的子集,并且每个数据块包括来自数据值块的一个或多个数据值,该数据值块将用于所涉及的纹理数据块。
按照本发明的第三十五方面,提供了编码数据的方法,包括:
把数据划分成多个数据子集;
把数据编码为多个数据块,每个数据块编码两个或更多数据子集,并且包括对于每个数据子集特定的数据和由数据块编码的数据子集被共享的数据;以及
编码包括由数据块共享的数据的数据块。
按照本发明的第三十六方面,提供了用于编码数据的设备,包括:
用于把数据划分成多个数据子集的装置;
用于把数据编码为多个数据块的装置,每个数据块编码两个或更多数据子集,并且包括对于每个数据子集特定的数据和由数据块编码的数据子集被共享的数据;以及
用于编码包括由数据块共享的数据的数据块的装置。
按照本发明的第三十七方面,提供了编码数据集合,包括:
多个数据块,每个数据块编码两个或更多数据子集,并且包括对于每个数据子集特定的数据和由数据块编码的数据子集被共享的数据;以及
包括由数据块共享的数据的数据块。
按照本发明的第三十八方面,提供了编码数据元素集合的方法,包括:
把数据元素集合编码为纹理数据块;以及
在纹理数据块中包括指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理数据元素的数据值。
按照本发明的第三十九方面,提供了用于编码数据元素集合的设备,包括:
用于把数据元素集合编码为数据块的装置;以及
用于在纹理数据块中包括指示一条或多条路径的数据的装置,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理数据元素的数据值。
按照本发明的第四十方面,提供了编码数据元素集合的数据块,包括:
指示一条或多条路径的数据,该一条或多条路径覆盖纹理数据块编码的多个纹理数据元素并且将在该一条或多条路径上内插纹理数据元素的数据值。
按照本发明的第四十一方面,提供了对于编码数据元素集合的数据块进行译码的方法,包括:
从数据块确定如何生成将用于所述块表示的数据元素的数据值集合;
根据该确定,生成将用于所述块表示的数据元素的数据值集合;
从数据块确定一个方法的数据,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个数据元素生成数据值;以及
通过使用为所述块生成的数据值集合和所确定的将用于为每个数据元素生成数据值的方法,来为所述块表示的每个数据元素生成数据值。
按照本发明的第四十二方面,提供了用于对于编码数据元素集合的数据块进行译码的设备,包括:
用于从数据块确定如何生成将用于所述块表示的数据元素的数据值集合的装置;
用于根据该确定,生成将用于所述块表示的数据元素的数据值集合的装置;
用于从数据块确定一个方法的数据的装置,该方法将用于通过使用为所述块生成的数据值集合来为所述块表示的每个数据元素生成数据值;以及
用于通过使用为所述块生成的数据值集合和所确定的将用于为每个数据元素生成数据值的方法,来为所述块表示的每个数据元素生成数据值的装置。
按照本发明的第四十三方面,提供了对于编码多个数据元素子集的数据块进行译码的方法,包括:
与其它数据元素子集无关地重现每个数据元素子集。
按照本发明的第四十四方面,提供了用于对于编码多个数据元素子集的数据块进行译码的设备,包括:
用于与其它数据元素子集无关地重现每个数据元素子集的装置。
按照本发明的第四十五方面,提供了对于编码多个数据的数据块进行译码的方法,包括:
从已被编码为分开的数据块的数据值集合导出将用作为数据块的数据值的数据值集合。
按照本发明的第四十六方面,提供了用于对于编码多个数据的数据块进行译码的设备,包括:
用于从已被编码为分开的数据块的数据值集合导出将用作为数据块的数据值的数据值集合的装置。
按照本发明的第四十七方面,提供了对于编码多个数据子集的数据块进行译码的方法,包括:
从已被编码为分开的数据块的数据值集合导出将用作为数据块的数据值的数据值集合;以及
从编码的数据块导出对于由数据块编码的每个数据子集特定的数据和要由数据块编码的数据子集共享的数据。
按照本发明的第四十八方面,提供了用于对于编码多个数据子集的数据块进行译码的设备,包括:
用于从已被编码为分开的数据块的数据值集合导出将用作为数据块的数据值的数据值集合的装置;以及
用于从编码的数据块导出对于由数据块编码的每个数据子集特定的数据和要由数据块编码的数据子集共享的数据的装置。
按照本发明的第四十九方面,提供了对于编码数据元素集合的数据块进行译码的方法,包括:
通过根据纹理元素沿覆盖纹理数据块编码的多个纹理元素的路径的位置对该纹理元素的数据值进行内插,来确定将用于纹理数据块编码的至少一个纹理元素的数据值。
按照本发明的第五十方面,提供了用于对于编码数据元素集合的数据块进行译码的设备,包括:
用于通过根据纹理元素沿覆盖纹理数据块编码的多个纹理元素的路径的位置对该纹理元素的数据值进行内插,来确定将用于纹理数据块编码的至少一个纹理元素的数据值的装置。
本发明的这些方面和实施例再次可包括这里描述的本发明的任一个或多个或全部优选的和任选的特性,如适当的话。因此例如,可以通过直接从数据值基本集取得这些数据值,和/或通过从数据值基本集导出数据值,来生成已译码的块的数据值集合。同样地,可以通过直接从为该块生成的数据值集合取得这些数据值,和/或通过从该数据值集合导出这些数据值,来生成各个数据元素的数据值。
正如本领域技术人员将会看到的,这里描述的本发明的所有的方面和实施例可包括这里描述的本发明的任一个或多个或全部优选的和任选的特性,如适当的话。
按照本发明的方法至少部分可以通过使用软件,例如计算机程序,被实施。因此,将会看到,当从另外的方面观看时,本发明提供计算机软件,当被安装在数据处理装置时,特别适合于实行这里描述的方法,计算机程序单元包括计算机软件代码部分,当程序单元在数据处理装置上运行时用于执行这里描述的方法,以及计算机程序包括代码装置,适于当程序在数据处理系统上运行时执行这里描述的方法的所有步骤。本发明还扩展到包括这样的软件的计算机软件载体,该软件在被使用来操作包括数据处理装置的数据编码或译码系统时,使得所述系统与所述数据处理装置相结合实行本发明的方法的步骤。这样的计算机软件载体可以是诸如ROM芯片、CDROM或盘那样的物理贮存媒体,或可以是诸如通过电线的电子信号、光学信号或诸如到卫星的射频信号那样的信号。
还将会看到,不是本发明的所有的步骤都必须由计算机软件实行,因此,从广义看来,本发明提供计算机软件和被安装在计算机软件载体上的这样的软件,用于实行这里阐述的方法的至少一个步骤。
本发明因此可以适当地被体现为由计算机系统使用的计算机程序产品。这样的实施方案可包括一系列计算机可读的指令,或是被固定在有形的媒体,诸如计算机可读媒体,例如软盘、CD-ROM、ROM、或硬盘;或是经由调制解调器或其它接口设备传送到计算机系统,或通过有形的媒体,包括但不限于,光学或模拟通信线路,或无形地使用无线技术,包括但不限于,微波、红外、或其它传输技术。计算机可读指令的系列体现这里在前面描述的全部或部分功能。
本领域技术人员将会看到,这样的计算机可读指令可以以多种编程语言被编写,在许多计算机结构或操作系统中使用。而且,这样的指令可以通过使用任何存储器技术被存储,当前的或将来的,包括但不限于,半导体、磁的、或光学的,或通过使用任何通信技术传输,当前的或将来的,包括但不限于,光学,红外、或微波。可以预期,这样的计算机程序指令可以作为可拆卸的媒体与所附印刷的或电子的文件一起被分发,例如收缩包装的软件与计算机系统一起预先加载到例如在系统ROM或固定盘上,或通过例如互联网或3W网的网络,从服务器或电子公告板分发。
附图说明
现在参照附图仅仅作为例子描述本发明的多个优选实施例,其中:
图1示意地显示按照本发明的实施例的把图像数据阵列编码为多个编码的数据块;
图2示意地显示在本发明的描述的优选实施例中,图像被划分成的块的编码次序;
图3显示本发明的优选实施例的用于所编码数据的基本译码过程;
图4示意地显示在本发明的优选实施例中使用的颜色生成过程;以及
图5示意地显示在本发明的优选实施例中使用的颜色内插过程。
具体实施方式
现在参照在以颜色图(即,颜色数据)形式进行的图形处理中使用的纹理数据的编码来描述本发明的优选实施例。然而,正如以上讨论的,和正如本领域技术人员将会看到,本发明总的可应用于数据编码和译码,所以,不应当被看作为限于本例的纹理颜色数据编码。
图1显示本实施例的基本编码过程。如图1所示,原先的图像或纹理数据元素(纹理像素)的阵列1(纹理“图”)被再划分成多个8×4纹理元素块2,每个8×4纹理元素块2编码两个4×4纹理元素子块3,4。
在本实施例中,在原先的纹理图数据阵列(图像)中的每个纹理元素表示在各个纹理元素的位置处要被使用的颜色,以及因此分配给它一个数据值,包括颜色值集合(例如,红色、绿色、蓝色(RGB))和可选的α(透明度)值。换句话说,在本实施例中,编码和生成等等的数据值都对应于和表示颜色(颜色值集合)。为了方便起见,以下的说明所以主要是指“颜色”,但应当看到,这样的参考指示包括表示所讨论的颜色的颜色值集合的数据值。
在本实施例中,不是以它的完全的、原先的形式存储颜色数据阵列,每个8×4纹理元素块2被编码为纹理数据块5,纹理数据块5比起它原先未编码形式的纹理数据,具有减小的尺寸。这实际上压缩原先的纹理数据,由此使得它的贮存和处理更容易和更有效。
正如在技术上已知的,每个编码的、减小尺寸的、纹理数据块5必须包含足够的和适当的数据,以允许对应于或表示所讨论的8×4纹理元素块的原先的未编码数据的数据被重现。
这在本实施例中尤其是按照本发明是通过以下操作实现的,即在每个编码的纹理数据块5中包括:指示一个用于生成颜色集合(即,颜色值)的方法的数据,其中该颜色集合将用于纹理数据块5表示的纹理元素要,和指示另一个方法的数据,该方法用于通过使用该生成的颜色集合来生成各个纹理元素的颜色。每个纹理数据块5还包括为了允许由该块编码的各个纹理元素的颜色在译码过程中被重现所必须的其它信息,如下面讨论的。
因此,如图1所示,每个编码的纹理数据块5包括多个数据区,即,规定方法和颜色模式的2比特、规定颜色数据的22或24比特、规定用于8x4纹理元素块的第一个4x4子块的数据的20或19比特、和规定用于由纹理数据块5编码的第二个4x4子块的数据的20或19比特。
正如下面进一步说明的,在本实施例中的每个编码的纹理数据块的方法和颜色模式区规定如何生成将用于编码的块的颜色集合,和将用于通过使用该颜色集合来为由块编码的各个纹理元素生成颜色的方法。颜色数据区规定颜色表(调色板)索引号和缺省值(见下面),该索引号和缺省值由纹理数据块编码的(用于二者的)4×4子块(典型地)共享,以及子块数据区规定对于每个编码的4×4子块特定的数据(诸如,正如下面讨论的,对于纹理元素颜色的褪色方向和颜色索引号)。在本实施例中,在颜色模式0(见下面),在颜色数据区中有22比特,以及在每个子块数据区中有20比特。在其它的颜色模式下,在颜色数据区中有24比特,以及在每个子块数据区中有19比特。
每个编码的纹理数据块5使用64比特来编码它的8×4纹理元素块,因此编码速率是每个原先的纹理元素2比特。(然而,其它安排当然也是可能的)。
除了如以上讨论的把纹理数据元素1的原先的纹理图(阵列)再划分成多个8×4块2以外,这些块然后都被编码为各个纹理数据块5,在本实施例中,对于要被编码的纹理数据阵列(图)生成基本的或主要的颜色集合(颜色表)。这个基色表规定64个颜色的集合,已经发现64个颜色的集合最好地表示在原先的数据中出现的颜色,以及将被使用来当重现各个编码的纹理数据块5时生成要被使用的颜色,正如下面进一步讨论的。
可以通过分析在原先的纹理元素阵列中存在的颜色和从其中选择64颜色的适当代表集合来按想要的那样选择和生成在基色表中规定的64个颜色。
在本实施例中,基色表是从整个图像(包括所有的mip图)导出的,即,以使得整个图像,包括所有的mip图(mip-map),都使用相同的单个基色表。
这个基色表被存储在编码的纹理数据块系列的标题数据块中,该标题数据块表示图像的纹理数据元素,这个基色表包含64个“基色”,每个基色以16比特精度被规定。在颜色数目和颜色精度方面的其它安排当然也是可能的。
在本实施例中,规定基色表的标题包括136字节,以及具有以下的基本格式:
在这个标题中,数据区“Magic(魔幻)”被使用于文件识别。
第三字节“Fileformatversion(文件格式版本)”规定文件格式,和特别地,如何规定基色。在本实施例中,这个“Fileformatversion”数据区具有以下数值之一:
文件格式版本 | 名称 | 说明 |
0x00 | FLXTC Version 1 Opaque | RGB565基色类型 |
0x01 | FLXTC Version 1 Alpha | RGBA4444基色类型 |
因此,基色表中的基色可以被规定为RGB565数值,或RGBA4444数值。
第四字节规定mip图尺寸。
这里应当指出,在本实施例中,编码的纹理数据可以,和优选地,以mip图被存储(即,在原先的纹理数据阵列的多个版本被存储以供使用的情形,每个版本具有不同的细节程度(分辨率))。mip图优选地一个接一个地存储在存储器,正如本领域已知的,每个mip图级别是优选地阵列(图像)的缩小尺寸(除以2)的表示。mip图以递减分辨率的次序被存储,即,nxn,…,16x16,8x8,4x4,2x3,1x1。最小的mip图(<8x8)都被单独地存储在分开的编码的数据块中。
mip图尺寸被定义为log2(宽度)。mip图高度被设置为等于规定的宽度(以使得在本实施例中只支持方形mip图)。
第五字节是“mip图存在”区,它可以具有“0”或“1”的数值(其它数值是非法的)。如果这个“mip图存在”字节具有“1”的数值,则这指示具有逐渐降低的分辨率的一系列编码纹理图(即,纹理数据阵列)就跟随在本文件的末端的后面,一直降低到1x1的分辨率(即,存在一组mip图)。
字节6和7被保留,它被设置为具有“0”的数值。
其余的字节然后规定组成基色表的64个基色。
当然有可能使用用于规定基色表和作为数据块提供它的其它安排。
因此,在本实施例中,每个编码的纹理数据文件包括上述的形式的标题,尤其是,规定将用于编码的纹理数据的基色表,然后各个纹理数据块序列编码纹理数据元素阵列(图像数据)。这被显示为如下:
在文件中的纹理数据块的数目将取决于被编码的纹理图(纹理数据阵列)的尺寸,以及例如,数据是否以mip图形式被存储。如果mip图被使用,则如果通过使用“n”个纹理数据块编码第一级别的纹理图分辨率,那么对于mip图级别以下,将有“n/4”纹理数据块,对于下一个mip图有“n/16”,对于下一个有“n/64”,对于再一个有“n/256”,等等(但对于每个级别不小于一个块),直至达到具有尺寸1x1的mip图等级为止。
因此,例如,对于包括256x256纹理数据元素(纹理像素)阵列的纹理图,该阵列用现在的mip图来编码,编码的纹理数据文件将包括标题数据块,标题数据块尤其是编码基本或最初数据值集合(例如颜色),以及包括4096纹理数据块的序列,该序列编码完全尺寸的纹理图(256x256阵列),后面跟着的是编码128x128mip图的1024纹理数据块,编码64x64mip图的256纹理数据块,编码32x32mip图的64纹理数据块,编码16x16mip图的8纹理数据块,编码8x8mip图的2纹理数据块,编码4x4mip图的1纹理数据块,编码2x2mip图的1纹理数据块,以及编码1x1mip图的1纹理数据块。
在本实施例中,在数据块中所有的多字节数值以小端(endian)字节次序被存储。因此例如,每个纹理数据元素块作为小端64标题数值被存储。然而,其它安排当然也是可能的。
各个纹理数据块在本发明中还被安排成以使得由纹理数据块编码的4x4纹理元素子块是以Morton次序。因此,如果纹理像素位置是x,y,以及x15-x0和y15-y0是在x,y处的比特,块位置(以字节计)是x15y15x14y14…y3x3y2<<2,以及在块里面的纹理像素位置是x2y1x1y0x0。对于32x32阵列(图)的这个块布局的例子被显示于图2。
现在转到各个编码的纹理数据块,正如以上讨论的,包括在这些块中的方法和颜色模式数据区是2比特区,该2比特区首先规定如何生成将用于编码的纹理数据块的颜色集合,其次规定当颜色要被重现时(即,当块被译码时),将用于通过使用为纹理数据块生成的颜色集合来生成将用于各个纹理元素的颜色的方法。在本实施例中,可以指示四种不同的颜色集合生成模式,以及用于生成各个纹理元素的颜色的两种不同的基本方法。要使用这四种颜色集合生成模式和两种颜色生成方法中的哪种模式和方法由2比特的方法和颜色模式数据区指示为如下:
2比特区 | 方法 | 颜色模式 |
00 | 0 | 0 |
01 | 1 | 1 |
10 | 1 | 2 |
11 | 1 | 3 |
正如下面更详细地描述的,由2比特的方法和颜色模式数据区指示的颜色模式基本上指示将用于生成当重现由所涉及的纹理数据块5编码的纹理元素时要使用的四色组的处理过程。四种颜色模式的每种模式基本上通过使用从基色集合中选择的一个或多个颜色来生成四色组(正如下面讨论的),已经为要被编码的图像或纹理数据元素阵列规定了基色组。
在本实施例中,颜色模式0通过直接从预定义基色表取得这些颜色(即,使用到颜色表中的直接映射)来生成纹理数据块的颜色集合,而颜色模式1-3通过直接从基色表取二、三或四种颜色并通过内插或调节直接从基色表取得的颜色以生成一个或多个附加颜色,来生成它们的四颜色集合。对于每个编码的纹理数据块使用这些不同的颜色集合生成模式的可能性允许译码处理过程重建具有比起在基色表中的颜色表示有精度更高的颜色。
正如以上讨论的,在纹理数据块的方法和颜色模式数据区中规定的方法被使用来生成将用于由纹理数据块编码的各个纹理元素的颜色(一旦已经按照规定的颜色模式生成将用于重现由纹理数据块编码的纹理元素的四颜色集合)。
在本实施例中,可以规定两种颜色生成方法。第一种这样的方法,方法0,对于每个纹理元素使用直接从为纹理数据块生成的颜色集合中取得的颜色。在这种情形下,每个纹理数据元素实际上具有被使用来在为纹理数据块生成的四种颜色之间进行选择的索引号。已发现,该各个纹理元素颜色生成方法对于具有许多不同的颜色和高频率的安排是非常有效的,诸如典型地在人造图画中发现的高频,以及该纹理元素颜色生成方法在本实施例中与颜色集合生成模式0相组合地被使用。
第二种纹理元素颜色生成方法,方法1,使用从为纹理数据块生成的四种颜色内插或导出的颜色。具体地,在本实施例中,在由纹理数据块编码的每个4x4纹理元素子块中,一半的纹理元素直接从为纹理数据块生成的四颜色集合中选择它们的颜色,但对于其余纹理元素的颜色是通过对于子块已规定的在褪色图案中的这些颜色之间进行内插而生成的。(实际上,八个不同的预定的褪色图案之一。)已发现,这种颜色生成方法对于重建具有许多类似的颜色和较低的频率的纹理元素块,诸如照片逼真的纹理,是更好的,以及这种颜色生成方法在本实施例中与颜色集合生成模式1-3相组合地被使用。
下面将更详细地讨论这些安排。
颜色集合生成模式与纹理元素颜色生成方法的这种组合因此允许通过使用四种不同的方式之一来编码任何给定的8×4纹理元素块,该四种不同的方式用于通过使用基色表来重现最能表示的原先的纹理元素颜色的颜色,而且进一步的选项:或者将颜色从为编码的纹理数据块生成的颜色集合直接映射到纹理数据块编码的各个纹理元素(例如,对于具有陡峭的边缘的图像),或者使用从重建的颜色和在为各个纹理数据块生成的四颜色集合中的附加颜色中选择的多个阴影或褪色图案之一。
当然也有可能使用其它安排,诸如规定更多的颜色集合生成模式,和纹理元素颜色生成方法,或这样的模式和方法的不同的组合的可能性。
正如从上面可以看到的,在本实施例中的基本译码过程包括首先通过使用由编码的纹理数据块的方法和颜色数据模式区指示的颜色集合生成模式来生成编码的纹理数据块的颜色集合,然后使用该生成的颜色集合来通过使用由方法和颜色模式数据区指示的纹理元素颜色生成方法来生成由块编码的各个纹理元素的颜色。
图3显示这个译码处理过程。
译码处理过程的第一级是颜色设置级10,它使用由在编码的纹理数据块5中的方法和颜色模式数据区所指示的颜色模式,连同在纹理数据块5中规定的颜色数据一起,来生成对于由纹理数据块5编码的各个纹理元素使用的四颜色集合。这一级10的结果是四个颜色,已经发现这四个颜色在编码级最好地表示由纹理块5编码的8×4纹理元素阵列。
一旦用于编码的8×4纹理元素阵列的这个四颜色集合被生成(被重建),由该块编码的各个纹理元素的数据就通过使用所生成的四颜色集合作为基础而被重建。如图3所示,通过使用由方法和颜色模式数据区指示的纹理元素颜色生成方法和在编码的纹理数据块5中规定的相关的子块数据来独立地译码由纹理数据块5编码的每个4×4纹理元素子块。这然后提供重建的8×4阵列纹理元素13,它然后可被用来呈现要被显示的图像,正如本领域已知的。
被提供用于图像的每个模板得纹理数据块以这样的方式被译码。这样做的效果在于,每个8×4纹理元素块被独立地译码。这允许编码过程充分利用所有的不同编码任选项,并且发现它提供高质量图像,而不需要损害纹理压缩比。
现在将更详细地描述在本实施例中使用的该四个颜色模式(即,用于为纹理数据块生成颜色集合的方法)。
正如上面讨论的,在本实施例中使用的每个颜色集合生成模式从在分开的标题数据块中提供的基色表中导出四颜色集合,该四颜色集合用于由纹理数据块编码的纹理元素。实际上,通过从基色表获取颜色来生成给定的纹理数据块的颜色集合,和在必要的场合下,调节这些颜色到更精确的颜色,以提供四颜色集合(指示为col[0-3]),该四颜色集合将用于为每个块生成各个纹理元素的颜色。
取决于颜色模式,为此从基色表中摘取2,3,或4个颜色。这是通过使用识别要从基色表摘取的颜色的两个或三个索引号(priindex[0]和priindex[2](和priindex[3],在适当的场合下)),以及在适当的场合下,通过将与其它基本索引号相组合使用的两个差值(pridelta[1]和pridelta[3]),来完成的,从而导出识别要从基色表摘取的其它颜色的索引号。所使用的索引号和delta值的实际组合取决于颜色模式,如下:
通过使用这些索引号,从基色表(被称为“primaries”)中选择将用于纹理数据块的2-4个初始颜色:
x∈{0,1,2,3}其中颜色模式=0
pri[x]=primaries[priindex[x]]其中x∈{0,2,3}其中颜色模式=1
x∈{0,2}其中颜色模式∈{2,3}。
在颜色模式0,直接使用从基色表(颜色的基本组)中选择的初始(基本)颜色,即,
col[x]=pri[x]其中x∈[0-3]。
这被显示于图4。因此,如图4所示,为纹理数据块规定的priindex[0]和priindex[2]使来直接从基色表20选择将用于块的颜色col[0]和col[2]。priindex[0]和pridelta[1]用来导出priindex[1],priindex[1]然后用来从基色表中选择col[1],以及priindex[2]和pridelta[3]用来导出priindex[3],priindex[3]然后用来从基色表20中选择col[3]。
另一方面,颜色集合生成模式1到3使用调节技术得到更精确的颜色,该颜色来自从基色表选择的颜色。为了做到这一点,2比特的每个分量带符号值(coldelta-bits[0]和coldelta-bits[2],6比特5:0RRGGBB格式)被扩展,以形成完整的每分量delta值(coldelta[0]和coldelta[2])。这是通过以下操作来完成的:把属于每个分量的2比特放置在每个分量的最高比特位置,用0填充为所有的较低的比特,然后把结果右移(保留正负号)颜色模式特定的比特量:
例如,如果coldelta-bits[0]=0x36,则对于每个RGB分量(R:G:B2:2:2-格式),这将被分割成0x3,0x1,0x2。在8比特分量值的情况,这将扩展到:对于颜色模式1和3是0xF8,0x08,0xF0;以及对于颜色模式2是0xF0,0x10,0xE0。从coldelta-bits[0]重建的delta值作为coldelta[0]被存储,以及从coldelta-bits[2]重建的delta值作为coldelta[2]被存储。
这些delta值被直接加到基色值(固定到各个分量最小/最大值)。(α值不是给定任何的delta值。)
在颜色模式1,来自基色表的三个颜色被选择,然后用于生成将用于纹理数据块的四颜色集合。在这种情形下,两个选择的颜色被直接用于提供集合中的两个颜色,一个通过使用差值被调节,以为该组提供另一个颜色,然后所调节的颜色与另外的一个颜色相混合,以为该组提供第四种颜色。因此,在这个颜色模式下:
在颜色模式2下,来自基色表的两个颜色被选择。这两个颜色然后被调节,提供将用于纹理数据块的四颜色集合的两个颜色。调节的颜色然后以不同的比例被混合,以提供将用于块的另外两种颜色。
在这个模式下,通过右移每个分量2比特来从coldelta-bits[0]构建coldelta[0],以及通过右移每个分量3比特来从coldelta-bits[2]构建coldelta[2]。
因此:
颜色模式3类似于颜色模式2。
因此,再次地,
然而,在这个模式下,通过右移每个分量3比特来从coldelta-bits[0]构建coldelta[0],以及通过右移每个分量4比特来从coldelta-bits[2]构建coldelta[2]。
现在更详细地描述在本实施例中可用来当重现编码的纹理元素时通过使用为纹理数据块生成的四颜色集合来为各个纹理元素生成颜色的方法。
正如上面讨论的,在本实施例中,两个这样的方法可被规定来生成对于各个纹理元素的颜色,以及指示用于纹理数据块的方法被独立地应用到每个4×4纹理元素子块(即,以使得相同的颜色生成方法用于由纹理数据块编码的每个4×4子块,但分开地应用到每个4×4纹理元素子块)。
第一个纹理元素颜色生成方法,方法0,使用直接从为纹理数据块生成的颜色集合取得的颜色,以及打算被使用于重现图画。
在这个纹理元素颜色生成方法中,在编码的4×4纹理元素块里面的纹理元素按以下的次序排列:
0 | 1 | 4 | 5 |
2 | 3 | 6 | 7 |
8 | 9 | 12 | 13 |
10 | 11 | 14 | 15 |
这些纹理元素位置在这里被称为像素号(pixelnr)。每个这些纹理元素被指定一个比特,称为该纹理元素的低索引号。这些低索引号比特被存储在称为indexlow的阵列中,以及表示为indexlow[pixelnr]。
4×4纹理元素块然后被再划分成2×2纹理元素块,按以下的次序排列:
0 | 1 |
2 | 3 |
每个这样的2×2纹理元素块然后被指定另一个比特,称为高索引号。这个索引号对于在2×2块中的所有4个纹理元素是相同的。这些高索引号被存储在称为indexhigh的阵列中,以对于每个纹理元素表示为indexhigh[pixelnr>>2]。
为了生成在重现时将用于特定的纹理元素的颜色,该纹理元素的高索引号与它的低索引号相组合,得到完全的颜色索引号:
。
这个索引号然后被使用来查找在为所涉及的纹理数据块生成的4颜色查找表(即,颜色集合)中使用的颜色:
。
在本实施例中使用的第二纹理元素颜色生成方法,方法1,通过直接从为纹理数据块生成的四颜色集合中选择它们的颜色来生成在每个4×4子块中编码的一半纹理像素的颜色,但其余纹理元素的颜色是通过在子块特定的褪色图案中的纹理元素数值之间进行内插而被生成的。总共有8个褪色方向在本方法中使用。这个纹理元素颜色生成方法用于照片逼真的纹理。
在这个纹理元素颜色生成方法中,规定包括多个内插路径的子块特定的褪色图案,该多个内插路径覆盖在块中的多个纹理元素,该子块特定的褪色图案被应用到由纹理数据块编码的纹理元素。具体地,对于褪色图案的每个内插路径,用于在内插路径的末端点处的纹理元素的颜色是直接从为纹理数据块生成的四颜色集合取得的,以及对于沿内插路径的中间纹理元素的颜色是从末端点颜色线性内插的。
图5显示在本实施例中可使用的可能的褪色图案。正如可以看到的,每个褪色图案包括一组四条内插路径,每条路径单独地覆盖在4×4纹理元素子块中的四个纹理元素(四条内插路由此总共覆盖4×4阵列中的所有的纹理元素)。
正如从图5上可以看到的,总共有八个褪色图案,它们由两个主要方向,即水平和垂直方向,以及四个子方向来规定。在这个安排中,除了在纹理元素阵列里面的每个纹理元素的x和y分量交换以外,褪色图案的“垂直”方向是与“水平”方向完全相同的。
为了编码褪色方向以便与这个纹理元素颜色生成方法一起使用,在纹理数据块中识别和编码褪色图案的方向。这个编码包含:在纹理数据块中包括在褪色图案中每个末端点处的颜色和褪色图案的方向(即,如图5所示,要使用哪个主要方向和哪个子方向)。对于这种编码,一个比特被使用于指示褪色图案的主要方向,以及两个比特被使用于指示子方向(即,作为引导到要使用的四个子方向的哪个方向的索引号)。然后,对于在褪色方向内的内插路径的每个末端点,借助于引导到要为纹理数据块生成的四颜色集合的二比特索引号来编码将用于该末端点纹理元素的的颜色。
为了做到这一点,如图5所示,内插路径的每个末端点被给予一个号(nr)。有8个末端点数字,0到7。用于末端点的颜色索引号然后被存储在每元素2比特阵列中,被称为indexes,以及用indexes[nr]作为索引,其中indexes[0]指示两个最低位。这两个比特用于指示在为纹理数据块生成的4颜色(表)中的末端点颜色的索引号。用于末端点的最后末端点颜色是endpointcolor[nr]=col[indexes[nr]]。
通过在内插路径的每个末端点之间进行线性内插来生成在每条内插路径的中间部分的其余两个纹理元素的颜色。因此,在所有的情形下(任何褪色方向或图案),由给定的内插路径覆盖的4个纹理元素的最终得到的颜色将是:
因此,例如,对于具有末端点2和6的方向1(见图5),以下的纹理元素将得到以下的数值:
纹理元素坐标 | 纹理元素颜色 |
(0,1) | endpointcolor[2] |
(1,2) | (endpointcolor[2]*5/3)+(endpointcolor[6]*3/8) |
(2,2) | (endpointcolor[2]*3/3)+(endpointcolor[6]*5/3) |
(3,3) | endpointcolor[6] |
正如从上面可以看到的,在纹理数据块5中编码的实际的数据将尤其是取决于将用于所涉及的纹理数据块的颜色集合生成模式和纹理元素颜色生成方法。然而,在编码的纹理数据块中比特的次序如此的以使得在每个32比特4×4编码的纹理元素子块中,所有的比特位置是相同的。这使得译码过程更简单。
在本实施例中使用的用于纹理数据块5的实际比特布局为如下:
其它安排当然也是可能的。
以上主要描述了在本发明的这个优选实施例中使用的译码过程。正如本领域技术人员将会看到的,编码过程可以以相应的相反方式实行。因此,正如本领域已知的,例如可以通过使用每个可能的编码安排编码阵列,然后重现这样编码的纹理数据块和比较重现的数据与原先的数据,以查看哪种编码安排提供与原先的数据最接近的匹配,来选择编码任何给定的纹理数据元素阵列的实际方式。该编码过程然后将用于为所讨论的纹理数据元素阵列生成编码的纹理数据块。
虽然如上面讨论的,以上的实施例是参照具有颜色形式的纹理数据来描述的,但正如本领域技术人员将会看到的,本发明也可以应用于其它形式的纹理数据,诸如亮度图或黑白图等等,以及应用于其它非纹理数据。在这样的安排中,数据可以以有利的方式被编码或译码,但每个数据值例如将表示亮度值或法向量等等,而不是颜色。
正如从上面可以看到的,本发明至少在它的优选实施例中提供数据压缩格式,例如使用于在硬件图形加速时的纹理图,硬件图形加速具体地适用于希望随机接入到编码数据的应用。它提供高的压缩率(例如,至少在它的优选实施例中,固定压缩率为2比特每纹理元素格式),因此这对于其中功率、带宽和贮存空间是有限的手持式应用是有利的。不管本发明的数据压缩格式的相对较高的压缩率和较小的紧凑特性,仍旧非常能够例如压缩不同种类的图形,尤其是真实世界图像和图画,而只有很小的质量损失。
因此,本发明对于移动游戏市场具有特别的应用,因为它提供高的压缩率,所以适于具有有限的存储器资源和存储器带宽的设备。高压缩率也例如易于实行游戏下载或其它应用,因为它可以减轻网络带宽和最终用户花费问题,这些问题增加或涉及到下载时间。
而且,这是可以达到的同时仍旧提供高的图像质量(正如本领域已知的,这对于具有有限的屏幕尺寸的小型移动设备是关键的(正如本领域已知的,屏幕的尺寸和分辨率越小,噪声和其它误差对于感觉到的图像质量的影响就越大))。本发明的技术也可以被应用于各种各样的纹理图,诸如包括高的对比度情景(例如,图画)和具有α(透明度)数值的纹理。
这至少在优选实施例中是通过在各个编码的纹理数据块包括以下信息而达到的,该信息允许以创建将用于块的实际的数据值的不同方式来改变或调制基本数据值表(例如,颜色)。这允许由基本或最初数据值(例如,颜色)表提供的数据值(例如,颜色)的范围按希望那样逐块地被扩展。
而且,至少在它的优选实施例中,每个编码的纹理数据块可以使用从基本数据值表重建能最好地表示原先的块的数据值的四种方式之一。到数据值表的直接映射用于具有锐边的图像,而提供阴影图案和可以生成附加数据值以表示照片逼真性图像。已发现,这可以提供高质量重现的图像,而不会严重损害在纹理压缩比。
Claims (29)
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.一种图形处理器,包括权利要求17到28的任一项的设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0504570.3A GB0504570D0 (en) | 2005-03-04 | 2005-03-04 | Method of and apparatus for encoding data |
GB0504570.3 | 2005-03-04 | ||
CN2006800154056A CN101203886B (zh) | 2005-03-04 | 2006-03-03 | 用于编码数据的方法和设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800154056A Division CN101203886B (zh) | 2005-03-04 | 2006-03-03 | 用于编码数据的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102542579A CN102542579A (zh) | 2012-07-04 |
CN102542579B true CN102542579B (zh) | 2016-04-20 |
Family
ID=34451857
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110453513.4A Active CN102542579B (zh) | 2005-03-04 | 2006-03-03 | 用于编码数据的方法和设备 |
CN201110453503.0A Active CN102521848B (zh) | 2005-03-04 | 2006-03-03 | 用于编码数据的方法和设备 |
CN2006800154056A Active CN101203886B (zh) | 2005-03-04 | 2006-03-03 | 用于编码数据的方法和设备 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110453503.0A Active CN102521848B (zh) | 2005-03-04 | 2006-03-03 | 用于编码数据的方法和设备 |
CN2006800154056A Active CN101203886B (zh) | 2005-03-04 | 2006-03-03 | 用于编码数据的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8102402B2 (zh) |
JP (3) | JP4897709B2 (zh) |
CN (3) | CN102542579B (zh) |
GB (2) | GB0504570D0 (zh) |
WO (1) | WO2006092616A2 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7714873B2 (en) * | 2006-06-29 | 2010-05-11 | Microsoft Corporation | Strategies for compressing textures |
US9418450B2 (en) | 2006-08-31 | 2016-08-16 | Ati Technologies Ulc | Texture compression techniques |
KR100967701B1 (ko) * | 2007-02-26 | 2010-07-07 | 한국외국어대학교 연구산학협력단 | 3차원 유화 데이터의 복원 |
JP4978598B2 (ja) * | 2008-09-17 | 2012-07-18 | コニカミノルタビジネステクノロジーズ株式会社 | 画像処理方法、画像処理装置、および画像処理プログラム |
EP2556492A4 (en) | 2010-04-07 | 2016-08-31 | Ericsson Telefon Ab L M | COMPRESSION AND DECOMPRESSION OF TEXTURE |
US8751687B2 (en) * | 2010-04-30 | 2014-06-10 | Microsoft Corporation | Efficient encoding of structured data |
GB2483502B (en) * | 2010-09-10 | 2014-05-07 | Imagination Tech Ltd | Random accessible lossless parameter data compression for title based 3D computer graphics system |
GB2487717B (en) * | 2011-01-25 | 2017-06-21 | Advanced Risc Mach Ltd | Image encoding method |
US20120242664A1 (en) * | 2011-03-25 | 2012-09-27 | Microsoft Corporation | Accelerometer-based lighting and effects for mobile devices |
GB2491688B (en) | 2011-05-05 | 2014-08-27 | Advanced Risc Mach Ltd | Method of and apparatus for encoding and decoding data |
GB2495301B (en) | 2011-09-30 | 2018-01-17 | Advanced Risc Mach Ltd | Method of and apparatus for encoding data |
GB201122022D0 (en) | 2011-12-20 | 2012-02-01 | Imagination Tech Ltd | Method and apparatus for compressing and decompressing data |
GB2503691B (en) * | 2012-07-04 | 2019-08-14 | Advanced Risc Mach Ltd | Methods of and apparatus for encoding and decoding data |
US9177415B2 (en) | 2013-01-30 | 2015-11-03 | Arm Limited | Methods of and apparatus for encoding and decoding data |
US10147202B2 (en) | 2013-03-15 | 2018-12-04 | Arm Limited | Methods of and apparatus for encoding and decoding data |
US11223832B2 (en) | 2014-07-24 | 2022-01-11 | Qualcomm Incorporated | Methods and apparatus for encoding video data using block palettes and sub-block and pixel scanning orders |
KR102477264B1 (ko) * | 2015-09-22 | 2022-12-13 | 삼성전자주식회사 | 텍스쳐를 처리하는 방법 및 장치 |
GB2562041B (en) * | 2017-04-28 | 2020-11-25 | Imagination Tech Ltd | Multi-output decoder for texture decompression |
GB2584764B (en) * | 2017-04-28 | 2021-12-29 | Imagination Tech Ltd | Decoder unit for texture decompression |
US10559093B2 (en) * | 2018-01-13 | 2020-02-11 | Arm Limited | Selecting encoding options |
JP7081805B2 (ja) | 2018-06-21 | 2022-06-07 | 日本電気通信システム株式会社 | 情報処理装置、ロードモジュール生成方法及びプログラム、並びに、動的プログラム更新システム及び方法 |
CN110275722B (zh) | 2019-06-21 | 2023-08-08 | 北京百度网讯科技有限公司 | 用于升级应用的方法、装置、设备和存储介质 |
WO2021002443A1 (ja) * | 2019-07-02 | 2021-01-07 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
US10891766B1 (en) * | 2019-09-04 | 2021-01-12 | Google Llc | Artistic representation of digital data |
US11665358B2 (en) * | 2020-04-28 | 2023-05-30 | Adobe Inc. | Generating multi-pass-compressed-texture images for fast delivery |
US20230164616A1 (en) * | 2021-11-24 | 2023-05-25 | Qualcomm Incorporated | Estimation and utilization of a block fading wireless channel |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1189654A (zh) * | 1996-09-20 | 1998-08-05 | 索尼计算机娱乐公司 | 发送图像数据和处理图像的方法和装置及其记录介质 |
CN1235324A (zh) * | 1998-03-06 | 1999-11-17 | 松下电器产业株式会社 | 图像译码合成方法及图像译码合成装置 |
CN1339142A (zh) * | 1999-02-03 | 2002-03-06 | 伊瑟夫电视公司 | 使用通用3d图形管道进行成本低廉的数字图像和视频编辑的方法和装置 |
US6819793B1 (en) * | 2000-06-30 | 2004-11-16 | Intel Corporation | Color distribution for texture and image compression |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100276427B1 (ko) * | 1993-01-30 | 2000-12-15 | 윤종용 | 화상데이타의 압축 및 복원장치 |
US6292191B1 (en) * | 1996-12-30 | 2001-09-18 | Cirrus Logic, Inc. | Dynamically selectable MIP map blending for a software graphics engine |
US20020154132A1 (en) * | 1997-07-30 | 2002-10-24 | Alain M. Dumesny | Texture mapping 3d graphic objects |
US6775417B2 (en) | 1997-10-02 | 2004-08-10 | S3 Graphics Co., Ltd. | Fixed-rate block-based image compression with inferred pixel values |
US5956431A (en) | 1997-10-02 | 1999-09-21 | S3 Incorporated | System and method for fixed-rate block-based image compression with inferred pixel values |
US6683978B1 (en) | 1997-10-02 | 2004-01-27 | S3 Graphics Co., Ltd. | Fixed-rate block-based image compression with inferred pixel values |
US6658146B1 (en) | 1997-10-02 | 2003-12-02 | S3 Graphics Co., Ltd. | Fixed-rate block-based image compression with inferred pixel values |
US6452602B1 (en) * | 1999-12-13 | 2002-09-17 | Ati International Srl | Method and apparatus for storing compressed data |
US6618053B1 (en) * | 2000-01-10 | 2003-09-09 | Vicarious Visions, Inc. | Asynchronous multilevel texture pipeline |
US6593925B1 (en) | 2000-06-22 | 2003-07-15 | Microsoft Corporation | Parameterized animation compression methods and arrangements |
JP4086520B2 (ja) * | 2001-03-19 | 2008-05-14 | 株式会社リコー | 多値画像の符号化及び復号化方法並びに装置 |
GB0128888D0 (en) | 2001-12-03 | 2002-01-23 | Imagination Tech Ltd | Method and apparatus for compressing data and decompressing compressed data |
US6975773B1 (en) * | 2002-07-30 | 2005-12-13 | Qualcomm, Incorporated | Parameter selection in data compression and decompression |
JP3790728B2 (ja) * | 2002-09-11 | 2006-06-28 | 株式会社東芝 | 画像符号化装置、画像復号化装置及びそれらの方法 |
JP3938534B2 (ja) | 2002-09-19 | 2007-06-27 | 株式会社リコー | 画像処理装置及び方法、画像形成装置、並びにプログラム |
DE60315407D1 (de) * | 2003-02-06 | 2007-09-20 | St Microelectronics Srl | Verfahren und Vorrichtung zum Komprimierung von Texturen |
JP3906170B2 (ja) * | 2003-03-07 | 2007-04-18 | 株式会社東芝 | 高次元テクスチャを合成する装置および方法およびプログラム |
JP4444180B2 (ja) * | 2005-07-20 | 2010-03-31 | 株式会社東芝 | テクスチャ符号化装置、テクスチャ復号化装置、方法、およびプログラム |
US9418450B2 (en) * | 2006-08-31 | 2016-08-16 | Ati Technologies Ulc | Texture compression techniques |
-
2005
- 2005-03-04 GB GBGB0504570.3A patent/GB0504570D0/en not_active Ceased
-
2006
- 2006-03-03 CN CN201110453513.4A patent/CN102542579B/zh active Active
- 2006-03-03 WO PCT/GB2006/000769 patent/WO2006092616A2/en active Application Filing
- 2006-03-03 CN CN201110453503.0A patent/CN102521848B/zh active Active
- 2006-03-03 JP JP2007557593A patent/JP4897709B2/ja active Active
- 2006-03-03 US US11/885,442 patent/US8102402B2/en active Active
- 2006-03-03 GB GB0604343A patent/GB2423906B/en active Active
- 2006-03-03 CN CN2006800154056A patent/CN101203886B/zh active Active
-
2011
- 2011-10-28 JP JP2011237035A patent/JP5419947B2/ja active Active
- 2011-10-28 JP JP2011237034A patent/JP5341968B2/ja active Active
- 2011-12-08 US US13/314,985 patent/US8289343B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1189654A (zh) * | 1996-09-20 | 1998-08-05 | 索尼计算机娱乐公司 | 发送图像数据和处理图像的方法和装置及其记录介质 |
CN1235324A (zh) * | 1998-03-06 | 1999-11-17 | 松下电器产业株式会社 | 图像译码合成方法及图像译码合成装置 |
CN1339142A (zh) * | 1999-02-03 | 2002-03-06 | 伊瑟夫电视公司 | 使用通用3d图形管道进行成本低廉的数字图像和视频编辑的方法和装置 |
US6819793B1 (en) * | 2000-06-30 | 2004-11-16 | Intel Corporation | Color distribution for texture and image compression |
Also Published As
Publication number | Publication date |
---|---|
US8102402B2 (en) | 2012-01-24 |
JP2012022718A (ja) | 2012-02-02 |
US8289343B2 (en) | 2012-10-16 |
CN102542579A (zh) | 2012-07-04 |
WO2006092616A2 (en) | 2006-09-08 |
JP5341968B2 (ja) | 2013-11-13 |
GB0604343D0 (en) | 2006-04-12 |
CN102521848A (zh) | 2012-06-27 |
WO2006092616A3 (en) | 2006-11-16 |
CN101203886A (zh) | 2008-06-18 |
US20120081384A1 (en) | 2012-04-05 |
JP2012048734A (ja) | 2012-03-08 |
JP4897709B2 (ja) | 2012-03-14 |
US20090021521A1 (en) | 2009-01-22 |
CN102521848B (zh) | 2015-11-18 |
GB2423906B (en) | 2007-11-28 |
JP5419947B2 (ja) | 2014-02-19 |
GB2423906A (en) | 2006-09-06 |
JP2008532165A (ja) | 2008-08-14 |
CN101203886B (zh) | 2012-03-14 |
GB0504570D0 (en) | 2005-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102542579B (zh) | 用于编码数据的方法和设备 | |
CN104050688B (zh) | 数据编码和解码方法和设备以及计算机可读记录介质 | |
US8855410B2 (en) | Method and apparatus for compressing and decompressing data | |
US10291926B2 (en) | Method and apparatus for compressing and decompressing data | |
ES2569419T3 (es) | Procesamiento de imágenes basado en peso | |
US20040151372A1 (en) | Color distribution for texture and image compression | |
CA2618686A1 (en) | Texture compression based on two hues with modified brightness | |
US9177415B2 (en) | Methods of and apparatus for encoding and decoding data | |
CA2545414A1 (en) | Image processing | |
GB2439481A (en) | Encoding Texture Data | |
CA2683841A1 (en) | Vector-based image processing | |
KR102531605B1 (ko) | 하이브리드 블록 기반 압축 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |