进行数据编码和解码的方法和设备的制作方法

文档序号:8001836阅读:272来源:国知局
进行数据编码和解码的方法和设备的制作方法
【专利摘要】进行数据编码和解码的方法和设备。在对用于图形处理系统的纹理数据元素集合30进行编码时,利用颜色空间中的分割纹理数据元素的一个或更多个无限平面41估计颜色空间中的所关注的纹理数据元素集合的数据值呈现最大方差的方向。对于各个这样的平面,将平面各侧的纹理数据元素值相加以得到相应的和点48、49,确定这两个和点之间的向量50。然后,使用所确定的向量50中的一个在数据空间中的方向来推导将在对纹理数据元素集合进行编码时使用的端点颜色值。
【专利说明】进行数据编码和解码的方法和设备
【技术领域】
[0001]本发明涉及进行数据编码和解码的方法和设备,具体地讲,涉及在对用于计算机图形系统的纹理数据进行压缩和解压缩时使用的方法和设备。
【背景技术】
[0002]在计算机图形系统中常见的是通过将所谓的纹理或纹理数据应用于待绘制的表面来产生颜色以对要显示的图像中的位置进行采样。例如,对象的表面细节可这样产生:将预定义的“纹理”应用于表示对象的图元(graphics primitive)集合(例如,多边形),以赋予对象的渲染图像以“纹理”外观。通常,通过将纹理元素或“纹元”(各自表示给定纹理数据(例如,颜色、亮度和/或光照/阴影等值))的阵列存储在给定位置,然后将纹元映射到要显示的图像的对应元素上(例如(且通常为)采样位置集合),来应用这些纹理。所存储的纹理元素(数据)的阵列通常称为“纹理映射”。
[0003]这些布置方式可提供相对高的图像质量,但也具有许多缺点。具体地讲,存储纹理数据并在使用中访问这些纹理数据会给图形处理装置带来(例如)高的存储和处理要求(或者相反,在这些要求没有满足的情况下导致性能的降低)。这对于执行图形处理的低功率、移动和手持式装置而言尤其明显,因为这些装置在其(例如)存储、带宽和功率资源以及能力方面存在固有局限。
[0004]因此,已知的是,尝试以“压缩”方式对这种纹理数据进行编码,以尝试减小(例如)在使用纹理时可能强加于图形处理装置的存储和带宽负担。
[0005]对于纹理压缩技术而言常见的是使用基于块的编码,即,将待编码的纹理元素的总阵列(纹理映射)分割成较小的纹元块(例如,4X4纹元块)的阵列,然后分别对各个这种块进行编码(压缩)和解码的布置方式。这可以(例如)有助于使解码处理更高效,因为例如,解码器可能仅需要对一个或几个编码的块进行解码以确定感兴趣的纹元的值,而非对整个编码的纹理进行解码。
[0006]基于块的纹理压缩技术通常确定将用于给定纹元块的颜色(或其它数据)的缩减集或调色板,然后针对块中的各个纹理元素(纹元)将索引存储在所述颜色集或调色板中,以指示将用于所关注的纹理元素(纹元)的颜色。这具有如下优点:针对各个纹元仅需存储索引值,而非整个(例如)颜色值。
[0007]—种已知的基于块的纹理压缩技术是所谓的块截断编码(BTC)。在该技术中,总纹理阵列(纹理映射)被再分割成(例如)4 X 4纹元的较小块,针对各个这种块确定一定数量(通常为两个)的基色或原色值,并且将块中的各个纹元设定为所述基色值之一。这节省了必须存储和访问的数据,但代价是图像质量下降。
[0008]美国专利N0.5047853描述了一种改进的块截断编码技术。在该技术中,针对各个纹元块同样存储两种基色,但还从这两种基色(如,通这些颜色的线性混合)推导将用于该块的两种附加颜色。这样,提供四种颜色作为纹元块的“调色板”,但针对块仅需存储两种颜色值。然后,利用两个索引比特来对块中的各个纹元编码,以指示四种块“颜色”中的哪一种应该用于该纹元。这种系统所提供的图像质量优于基本块截断编码,但每一块需要更多数据。
[0009]还有其它基于块的纹理压缩方案,例如S3TC、BC6和BC7,其类似地将纹理分割成块,然后针对各个块定义两种“端点(endpoint)”基色,通过这两种端点颜色之间的插值来形成附加颜色,然后使用用于各个纹元的索引来从所得的颜色集为纹元选择颜色。
[0010]例如,在S3TC纹理压缩格式中,纹理被表示为4X4纹元块。对于各个块,确定两种端点颜色,通过这两个端点之间的插值来形成两种附加颜色。这样针对块得到四种颜色的调色板,这四种颜色在颜色空间中全部落在直线上。然后针对各个纹元使用纹元索引,以将纹元映射到这四种颜色中的一种。各个编码的块存储该块的两种端点颜色以及该块的4X4纹元索引的网格。
[0011]这些类型的纹理压缩处理中的最复杂的步骤通常是选择将使用的两种端点颜色。这通常通过确定可投影纹元值的颜色空间中的线来进行。该线通常通过针对所关注的纹元块计算平均颜色和方向向量来推导。然后,确定投影了块中的纹元的颜色空间中的线是穿过该平均颜色点并具有所确定的方向向量的方向的线。
[0012]在这些布置方式中,将使用的最佳方向向量是沿着颜色空间中纹元的值呈现最大方差的方向(即,纹元值在颜色空间中的主方向)的向量,因此传统上利用离散卡亨南-洛维(Karhunen-Loewe )变换(KLT)(也称为主分量分析)来计算。
[0013]因此,计算要在对纹元块进行编码时使用的两种端点颜色的标准方法(给定未压缩的纹理作为输入,其中每一纹元(例如)用(R,G,B)颜色元组来表示)如下:
[0014]1.计算待编码的纹元块上的平均颜色C
[0015]2.针对各个纹元,用纹元的颜色值减去平均颜色C:r =T-C
[0016]3.从步骤2的减法所得的纹元值,计算协方差矩阵M
[0017]4.计算M的特征值和特征向量,然后保留表示最大能量的特征向量V。这可通过计算与最大特征值对应的特征向量,或者利用“幂迭代”方法寻找主特征向量来进行。
[0018]5.定义颜色空间中穿过平均颜色值C并具有所确定的特征向量V的方向的参数线,L=C+t*V
[0019]6.将所有纹元投影到该线上(即,针对各个纹元,确定该线上最靠近该纹元的点)。这基本上等同于针对线L上最靠近纹元的点寻找参数值t:给定减法所得的纹元T’ =T-C,参数可被计算为t=dot(V,T')/dot (V, V),其中dot O表示通常的向量点积。
[0020]7.寻找投影了纹元的线上的最高点和最低点(值)。这基本上等同于寻找得自纹元的最低(t_low)和最高(t_high)参数值。
[0021]8.然后将端点颜色定义为投影了纹元的线上的最高和最低点(值)。这基本上等同于定义:El=C+t_low*V 和 E2=C+t_high*V
[0022]在计算出这两个端点值之后,通过从这些端点颜色的插值计算将用于编码的块的(例如)两个其它的颜色值(如,分别为1/3E1+2/3E2和2/3E1+1/3E2)。然后,向各个纹元分配与块的(例如)四个颜色当中的颜色值最接近的那一个对应的索引(对于快速编码,这可通过仅对上述步骤6中所计算出的参数值“ t ”重新缩放和量化来进行)。
[0023]在该处理中,步骤1-4构成卡亨南-洛维变换,剩余步骤利用KLT结果来执行实际纹理压缩。[0024]利用卡亨南-洛维变换(具体地讲,上述步骤3和4)来确定将使用的向量方向,同时为待编码的纹元块提供对期望的主方向的精确估计在计算上花费高,并且易于数值不稳定且需要处理特殊情况。
[0025]例如,当计算特征值时,必须求解3次多项式。这样做在分析上需要多次花费高的超越运算(立方根、正弦、余弦、反正切),并且这样做在数值上需要相对复杂的方法(如,詹金斯-特劳布(Jenkins-Traub))以确保在合理的时间内收敛。
[0026]使用幂迭代方法来寻找主特征向量较简单。然而,这仍然需要挑选随机向量,然后反复地将其乘以协方差矩阵,直到所得向量最终收敛于主特征向量为止。还需要注意确保这样的重复不会导致上溢或下溢。
[0027]还需要特别注意处理类似均匀颜色块(其导致全零协方差矩阵;这种矩阵没有特征向量)以及存在两个优势相等的方向的块(2重特征值)的情况。
[0028]这均表明,尽管推导在对纹元块编码时将使用的端点颜色,尤其是确定这样做时将使用的颜色空间中的线的方向的现有技术可精确地识别将用于此的好的方向(即,纹元值在颜色空间中的主方向(主轴)),那些现有技术在计算上花费高并且慢。

【发明内容】

[0029]因此, 申请人:认为仍有余地改进尤其是当确定(例如)要在对用于图形处理系统的纹理数据进行编码时使用的端点颜色时,估计待编码的纹元值集合(如,块)的主方向(即,纹元值被认为呈现最大方差的方向)的技术。
[0030]根据本发明的第一方面,提供了一种针对将用于图形处理系统的待编码的纹理数据元素集合,确定所述纹理数据元素在数据空间中的方向的方法,所述方向将在确定基础数据值时使用,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合,该方法包括以下步骤:
[0031]针对所述数据空间中将待编码的所述纹理数据元素集合分割成两组的至少一个平面,确定所述数据空间中从所述数据空间中基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面一侧的纹理数据元素的值的点到所述数据空间中基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面另一侧的纹理数据元素的值的点的向量方向;以及
[0032]利用针对所述数据空间中将所述纹理数据元素集合分割成两组的所述至少一个平面中的至少一个、所述纹理数据元素的在所述数据空间中确定的所述方向,来确定所述数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合。
[0033]根据本发明的第二方面,提供了一种针对将用于图形处理系统的待编码的纹理数据元素集合,确定所述纹理数据元素在数据空间中的方向的设备,所述方向将在确定基础数据值时使用,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合,该设备包括:
[0034]处理电路,其被配置为:
[0035]针对所述数据空间中将待编码的所述纹理数据元素集合分割成两组的至少一个平面,确定所述数据空间中从所述数据空间中基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面一侧的纹理数据元素的值的点到所述数据空间中基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面另一侧的纹理数据元素的值的点的向量方向;以及
[0036]利用针对所述数据空间中将所述纹理数据元素集合分割成两组的所述至少一个平面中的至少一个、所述纹理数据元素的在所述数据空间中确定的所述方向,来确定所述数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合。
[0037]本发明涉及一种确定待编码的纹理数据元素集合在数据空间(如,颜色空间)中的方向的技术和系统,所述方向将在确定基础(例如,端点)值时使用,所述基础值将在对纹理数据元素进行编码时使用。然而,为此并非使用(例如)基于特征向量的方法,本发明实际上通过在其数据空间中利用平面将纹理数据元素的值分割成两组,然后将使用的方向确定为从数据空间中基于值落在数据空间中的所述平面一侧的纹理数据元素的值的点到数据空间中基于值落在数据空间中的所述平面另一侧的纹理数据元素的值的点的方向,来确定使用的方向。
[0038]如下面将进一步讨论的, 申请人:发现这种布置方式可得到待编码的纹理数据元素集合在数据空间中的主方向(即,数据空间中纹理数据元素的值呈现最大方差的方向)的足够精确和可靠的估计,其将适用于纹理压缩方案。另外,这无需使用现有技术中所用的基于特征向量的方法。本发明无需使用诸如乘法、除法、求根的复杂计算技术,也不允许特殊情况处理,因此可比标准的基于特征向量的方法更快地估计待编码的纹理数据元素值集合在其数据空间中的主方向。因此,与传统基于KLT的方法不同,其还适用于直接硬件实现,并且由于本发明的相对低的计算负荷,其还适用于例如“超快”软件编码器。
[0039]因此,本发明提供了一种确定待编码的纹理数据元素值集合在数据空间中的主方向的方法和系统,其比KLT方法简单许多,因此,与KLT方法不同,其适合于“超快”纹理压缩和硬件纹理压缩,但其仍可保持纹理压缩质量。
[0040]本发明可用于需要数据(例如,颜色)空间中的纹元值的I维分区的任何纹理压缩方案,例如用于S3TC、BTC家族、ASTC等的压缩器。其尤其适用于基于块的编码方案,即,待编码的纹理为了编码目的而分割成较小的纹元块(阵列)。
[0041]估计了主方向的纹理数据元素集合可包括待编码的纹理的任何合适的纹理数据元素集合。在尤其优选的实施方式中,其包括待编码的纹理为了编码目的(如,在基于块的编码方案中)而分割成的单个纹理数据元素块的纹理数据元素集合。在这种情况下,纹理数据元素集合可包括该块的所有纹理数据元素(在一个优选实施方式中就是如此)。另选地,纹理数据元素集合可包括纹理为了编码目的而分割成的给定纹理数据元素块的纹理数据元素的子集。在(例如)待编码的纹理数据元素块为了编码目的而分割为多个纹理数据元素子集的情况下这可能是适当的。在这后一种情况下,优选地,针对块的纹理数据元素总集为了编码目的而分割成的各个子集(分区)分别以本发明的方式确定将使用的(主)方向。
[0042]因此,在一个优选实施方式中,编码的纹理数据元素集合包括纹理为了编码目的而分割成的纹理数据元素块的所有纹理数据元素。在另一优选实施方式中,纹理数据元素集合包括纹理为了编码目的而分割成的纹理数据元素块的纹理数据元素的子集。
[0043]如本领域已知的,确定方向时所考虑的纹理数据元素集合(如,块)的数据空间将是与纹理数据元素所表示的数据值对应的数据空间。因此,在纹理数据元素表示颜色值(如,RGB或RGBA值)的情况下,数据空间将是(纹理数据元素的)颜色空间。在一个优选实施方式中,数据空间是颜色空间。然而,如下面将进一步讨论的,纹理数据元素无需必须表示颜色值,因此在其它实施方式中数据空间不是颜色空间,而是一些其它数据空间。
[0044]在数据空间中用于将纹理数据元素分割成两组的平面可根据需要来选择。各个平面优选为穿过数据空间并将其分割成两部分的(优选无限的)平面。所述平面可基于纹理数据元素集合中的已知和/或预期的值(例如,纹理数据元素集合的平均值)来选择,在优选实施方式中,所述平面就是这样选择的。
[0045]在尤其优选的实施方式中,所述平面是预定义的(即,预定的),即,所述处理使用至少一个(使用一个或更多个)预定平面来分割数据空间中的纹理数据元素,并在数据空间中关于至少一个预定平面确定方向(针对一个或更多个预定平面确定方向)。
[0046]所述平面的形式将取决于数据空间(B卩,纹理数据元素的值)的维数。对于二维纹元值(数据空间),所述平面将是数据空间中的线,对于三维纹元值(数据空间),例如RGB值,所述平面将是数据空间中的二维表面,对于四维纹元值(数据空间),例如RGBA值,所述平面将是数据空间中的三维形状,以此类推。
[0047]无论纹理数据元素的值(因此,数据空间)所具有的维数如何均可使用本发明,但最适合于相对低维的数据空间(数据值),例如(优选地)2至4维的数据空间(数据值)。
[0048]如上所述,针对所考虑的相应平面确定的数据空间中的方向是从数据空间中基于落在数据空间中的所述平面一侧的纹理数据元素的值的点到数据空间中基于落在数据空间中的所述平面另一侧的纹理数据元素的值的点的方向。如下面将进一步讨论的, 申请人:已认识到,这可用于得到待编码的纹理数据元素值集合在数据空间中的主方向的合理且足够精确的估计。
[0049]为此可根据需要通过(例如,且优选地)将纹理数据元素的值与由所述平面限定的值(落在所述平面中的值)进行比较,以确定在数据空间中纹理数据元素落在该平面的哪一侦牝来确定值落在数据空间中的所述平面各侧的纹理数据元素。
[0050]用于确定所述方向的数据空间中的两点可基于所关注的平面一侧的纹理数据元素值中的一些(但非所有)。在优选实施方式中,其基于所关注的平面一侧的所有纹理数据元素值。
[0051]用于确定所述方向的数据空间中的两点可以按照任何合适和期望的方式基于所关注的平面一侧的纹理数据元素值。然而,在尤其优选的实施方式中,它们是表示或对应于落在所关注的平面一侧的纹理数据元素的平均值的点。
[0052]因此,在优选实施方式中,针对所考虑的相应平面确定的数据空间中的方向是从落在数据空间中的所述平面一侧的纹理数据元素的平均值在数据空间中的点到落在数据空间中的所述平面另一侧的纹理数据元素的平均值在数据空间中的点的方向。如下面将进一步讨论的, 申请人:已认识到,这可得到待编码的纹理数据元素值集合在数据空间中的主方向的足够精确的估计。
[0053]因此,在优选实施方式中,本发明包括下面的步骤,或者处理电路被配置为:针对数据空间中将待编码的纹理数据元素集合分割成两组的至少一个平面,确定数据空间中从待编码的纹理数据元素集合中的值落在数据空间中的所述平面一侧的纹理数据元素的平均值在数据空间中的点到待编码的纹理数据元素集合中的值落在数据空间中的所述平面另一侧的纹理数据元素的平均值在数据空间中的点的向量方向。
[0054]在这些布置方式中用于确定方向的数据空间中的两个平均值点可根据需要(基于所关注的平面的各侧的纹理数据元素值)确定。例如,可确定并使用纹理数据元素组的实际真正的平均值点,或者可根据需要使用真正平均值点的近似值,例如,所关注的平面一侧的纹理数据元素组的最小和最大纹理数据元素值之间的中间点,或者基于所关注的平面一侧的纹理数据元素值中的一些(但非所有)的平均值。使用实际平均值点将得到主方向的更好的估计。
[0055]因此,在尤其优选的实施方式中,确定了实际平均值点(而非平均值点的近似值)之间的方向。因此,在尤其优选的实施方式中,本发明包括下面的步骤,或者处理电路被配置为:针对数据空间中将待编码的纹理数据元素集合分割成两组的至少一个平面,确定数据空间中从待编码的纹理数据元素集合中的值落在数据空间中的所述平面一侧的纹理数据元素的平均值在数据空间中的点到待编码的纹理数据元素集合中的值落在数据空间中的所述平面另一侧的纹理数据元素的平均值在数据空间中的点的向量方向。
[0056]在这种情况下,数据空间中的平均值点可根据需要确定。例如(如,当使用穿过数据空间的任意平面时),平面各侧的数据元素的平均值可以按照正常方式通过求纹理数据元素的值之和并除以所关注的纹理数据元素数量来确定。
[0057]另选地,可确定平面的相应侧的所有值之和以得到总和值,然后,用平面一侧的总和值减去分割平面上的点的值(例如,在分割平面穿过平均值的情况下,纹理数据元素集合的平均值)乘以所关注的平面一侧的数据元素数量,以得到平面一侧的平均值点,其将用于确定所关注的平面的所述方向。(因此,如果在所考虑的平面一侧对η个纹理数据元素值求和,则应该用η个纹理数据元素值之和减去分割平面中的值的η倍,以得到将用于所关注的平面一侧的数据空间中的平均值点以用于方向确定处理。)
[0058]在需要(例如)平面给定侧的纹理数据元素的值之和的情况下,可根据需要通过(例如,且优选地)将相应纹理数据元素值简单地加在一起来确定该和。
[0059] 申请人:已认识到,如果纹理数据元素的值以及分割它们的平面在数据空间中偏移,使得分割平面穿过(偏移时)数据空间中的原点,则平面一侧的所有偏移纹理数据元素值之和在数据空间中的点与平面另一侧的所有偏移纹理数据元素值之和在数据空间中的点之间的方向将对应于所关注的纹理数据元素集合在平面各侧的平均值点之间的方向。(由于所有的数据值利用相同的值偏移,所以两个偏移值和点之间的方向将与平面各侧的平均数据值位置之间的方向相同。)
[0060]那么这意味着可通过首先使纹理数据元素的值偏移,使得穿过数据空间中的原点的平面将纹理数据元素分割成两组,然后对平面的各相应侧的偏移数据值求和以得到数据空间中的平面各侧的将用于确定方向的点,来确定平面各侧的平均数据值位置之间的方向。
[0061]那么这可使得能够仅通过将偏移数据值加在一起来确定数据空间中的方向,由此无需(潜在地)例如花费高的除法。
[0062](确实,在这种情况下确定的偏移和点之间的方向向量的大小可能不与考虑“未偏移”纹理数据元素值的情况下的大小相同。然而,这没有关系,因为感兴趣的是向量的方向,所确定的向量的大小不影响方向确定。)
[0063]在这些布置方式中,纹理数据元素值优选地基于所关注的纹理数据元素集合的平均值偏移,因为这意味着穿过原点的平面将有效地穿过纹理数据元素集合的平均值。
[0064]因此,在尤其优选的实施方式中,首先确定所考虑的纹理数据元素集合的平均纹理数据元素值(如,平均颜色值),然后,(例如,且优选地,通过用纹理数据元素的实际值减去该平均值)使各个纹理数据元素的值按照该平均值偏移。
[0065]然后,优选地利用偏移纹理数据元素值,而非原始(实际)纹理数据元素值,来确定纹理数据元素值和以及在数据空间中的方向。更优选地,这通过针对数据空间中将待编码的纹理数据元素集合的偏移值分割成两组的各个平面,确定数据空间中待编码的纹理数据元素集合中的偏移值落在数据空间中的所述平面一侧的一个或更多个(优选为多个,并且优选为所有)纹理数据元素的偏移值之和在数据空间中的点与待编码的纹理数据元素集合中的偏移值落在数据空间中的所述平面另一侧的一个或更多个(优选为多个,并且优选为所有)纹理数据元素的偏移值之和在数据空间中的点之间的向量的方向,来实现。
[0066]优选地,确定数据空间中的平面各侧的所有纹理数据元素的偏移值之和在数据空间中的点,因为这将得到主方向的更好的估计。然而,如果需要,也可对平面给定侧的并非所有(即,一些但非所有)值求和。
[0067]如下面将进一步讨论的,这有利于方向确定处理的许多优化。
[0068]在这些布置方式中,用于待编码的纹理数据元素集合的平均值可同样是(在优选实施方式中是)纹理数据元素的实际真正的平均值,或者如果需要,其可以是真正平均值的近似值,例如最小和最大纹理数据元素值之间的中间值。(用于确定实际平均值的任何除法可能相对花费低,尤其是如果除以2的幂,然后使用该值来使数据值偏移,仅需要一次除法,而非多次除法。)
[0069]可根据需要确定数据空间中的点(如,平均数据值点)之间的方向(向量)。例如,可用数据空间中的多个点之一的向量值减去另一点的向量值。
[0070]在使用平均值使数据值偏移的情况下,可优化方向确定处理。具体地讲,如果纹理数据元素值基于其平均值偏移,则两个偏移值和(平面的每一侧一个和)之差将等于穿过数据空间中的原点的平面的情况下的和值之一的两倍。那么这意味着,至少在穿过数据空间中的原点的平面的情况下,可仅从平面一侧的所有纹理数据元素的偏移值之和确定所述方向(而无需将该和加倍(尽管如果需要可以这样做))。
[0071]在这种情况下,使用的方向可被确定为(优选被确定为)纹理数据元素值的数据空间(如,颜色空间)中的原点与(偏移)值落在数据空间中的所述平面一侧的一个或更多个(优选为多个,并且优选为所有)纹理数据元素的偏移值之和在数据空间中的点之间的方向。优选地,使用(偏移)值落在数据空间中的所述平面一侧的所有纹理数据元素的偏移值之和在数据空间中的点。由于考虑原点,所以可仅将数据空间中的有关方向确定为落在所考虑的平面一侧的纹理数据元素值的(向量)和。
[0072]因此,在尤其优选的实施方式中,本发明的方法和设备包括下面的步骤,或者处理电路被配置为:首先确定待编码的纹理数据元素集合的平均数据值,然后按照该平均值使各个纹理数据元素的值偏移,然后通过针对数据空间中将偏移纹理数据元素分割成两组的至少一个平面,确定在数据空间中数据空间中的原点与待编码的纹理数据元素集合中的值落在数据空间中的所述平面一侧的一个或更多个(优选为多个,并且优选为所有)纹理数据元素的偏移值之和在所述数据空间中的点之间的向量的方向,来确定使用的方向。
[0073]类似地,根据本发明的另一方面,提供了一种针对将用于图形处理系统的待编码的纹理数据元素集合,确定所述纹理数据元素在数据空间中的方向的方法,所述方向将在确定基础数据值时使用,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合,该方法包括以下步骤:
[0074]确定待编码的纹理数据元素集合的平均数据值,然后按照该平均值使各个纹理数据元素的值偏移;
[0075]针对数据空间中将待编码的所述纹理数据元素集合的偏移值分割成两组的至少一个平面,确定在数据空间中数据空间中的原点与待编码的纹理数据元素集合中的值落在数据空间中的所述平面一侧的一个或更多个(优选为多个,并且优选为所有)纹理数据元素的偏移值之和在所述数据空间中的点之间的向量的方向;以及
[0076]利用针对将纹理数据元素集合的偏移值分割成两组的所述至少一个平面中的至少一个在纹理数据元素的数据空间中确定的所述方向,确定数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对纹理数据元素集合进行编码时用于纹理数据元素
隹A
口 O
[0077]根据本发明的另一方面,提供了一种针对将用于图形处理系统的待编码的纹理数据元素集合,确定所述纹理数据元素在数据空间中的方向的设备,所述方向将在确定基础数据值时使用,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合,所述设备包括:
[0078]处理电路,其被配置为:
[0079]确定待编码的纹理数据元素集合的平均数据值,然后按照该平均值使各个纹理数据元素的值偏移;
[0080]针对数据空间中将待编码的所述纹理数据元素集合的偏移值分割成两组的至少一个平面,确定在数据空间中数据空间中的原点与待编码的纹理数据元素集合中的值落在数据空间中的所述平面一侧的一个或更多个(优选为多个,并且优选为所有)纹理数据元素的偏移值之和在所述数据空间中的点之间的向量的方向;以及
[0081]利用针对将纹理数据元素集合的偏移值分割成两组的所述至少一个平面中的至少一个在纹理数据元素的数据空间中确定的所述方向,确定数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对纹理数据元素集合进行编码时用于纹理数据元素
口 O
[0082]本领域技术人员将理解,适当地,本发明的这些方面和实施方式可包括(优选地,包括)本文描述的本发明的优选和可选的特征中的任何一个或更多个或者所有。
[0083]在这些布置方式中,根据需要,方向向量可被确定为从原点到和点,或从和点到原点。同样,根据需要,和点可以是所有正纹元值(相对于所述平面)的和点,或者所有负纹元值的和点。在优选实施方式中,使用正值的和点。如上所述,由于考虑原点,可仅将方向计算为所有正(或所有负)纹元值(相对于所述平面)的向量和。
[0084]从以上内容将理解,因此,本发明可(优选地就是)主要仅利用纹理数据元素数据值的比较和加法来实现。那么这意味着与已知基于KLT的方法不同,本发明适合于直接硬件实现,并且适用于例如“超快”软件编码器。
[0085]针对确定了方向的平面优选全部穿过所考虑的纹理数据元素集合的平均位置(值)(该平均值可为真正的平均值,或者真正平均值的近似值,如上所述)。这有助于简化方向寻找处理。
[0086]因此,如果纹理数据元素的实际(B卩,未偏移)数据值将用于方向寻找处理,则针对确定了方向的平面或各个平面优选穿过在数据空间中确定的纹理数据元素集合的平均值(该平均值可为真正的平均值,或者真正平均值的近似值,如上所述)。
[0087]对应地,如果已基于所考虑的集合的纹理数据元素的平均值偏移的纹理数据元素的数据值将用于方向寻找处理,则针对确定了方向的平面或各个平面优选穿过数据空间的原点(因为在这种情况下,原点将对应于原始纹理数据元素值的考虑偏移的平均)。
[0088]尽管也可对待编码的给定纹理数据元素集合仅针对一个平面确定将使用的方向(如下面将进一步讨论的,在一个优选实施方式中,就是如此), 申请人:已认识到,如果以本发明的方式针对数据空间中分割纹理数据元素的多个不同的平面确定数据空间中的方向,则将趋于确定待编码的给定纹理数据元素集合的主方向的更好的估计。
[0089]因此,在尤其优选的实施方式中,本发明的方法包括下面的步骤,并且本发明的设备包括处理电路,该处理电路被配置为:
[0090]针对数据空间中将待编码的纹理数据元素集合分割成两组的多个不同的平面中的每一个,确定数据空间中从数据空间中基于待编码的纹理数据元素集合中的值落在数据空间中的所述平面一侧的纹理数据元素的值的点到数据空间中基于待编码的纹理数据元素集合中的值落在数据空间中的所述平面另一侧的纹理数据元素的值的点的向量的方向;以及
[0091]利用针对将纹理数据元素集合分割成两组的所述多个不同的平面中的至少一个在纹理数据元素的数据空间中确定的所述方向,确定数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对纹理数据元素集合进行编码时用于纹理数据元素集合。
[0092]如果考虑多个不同的平面,则使用的多个平面优选地在纹理数据元素的数据(如,颜色)空间中不相关,最优选地彼此正交(或者至少与所考虑的一个或更多个其它平面正交)。优选地,考虑多个相互正交的平面的集合。利用不相关且正交的平面增加了基于所述平面确定的方向之一将是所考虑的纹理数据元素值集合的主方向的好的估计的可能。
[0093]如果确定关于多个不同平面的方向,则优选针对至少与数据空间的维数一样多的平面(在优选实施方式中,针对与数据空间中的维数一样多的平面,即,对于N维数据空间(数据值),针对N个平面)来进行。这有助于进一步确保测试的至少一个平面将得到作为数据空间中的纹理数据元素值的主方向的好的估计的方向。
[0094]在这种情况下,各个平面优选与其它平面正交。最优选地,各个平面垂直于数据空间的多个轴之一(垂直于数据空间的各个不同的轴)(即,对于N维数据空间,所述处理优选地使用N轴对齐的平面)。
[0095]因此,在三维数据空间(如,RGB颜色空间)的情况下,优选考虑三个正交平面,最优选地,考虑垂直于X轴(R轴)的平面、垂直于I轴(G轴)的平面以及垂直于z轴(B轴)的平面中的每一个)。
[0096]如果在数据空间中执行方向确定之前数据值按照它们的平均值偏移,则优选考虑由x=0 (R=O)限定的平面、由y=0 (G=O)限定的平面以及由z=0 (B=O)限定的平面中的每一个。在这种情况下,方向向量计算将对于由红色=0限定的平面,等同于具有正红色分量的所有纹元的偏移值的(向量)和(即,在按照所关注的纹元集合的平均值偏移之后值具有正红色分量的所有纹元的偏移值的(向量)和),对于由绿色=0限定的平面,等同于具有正绿色分量的所有纹元的偏移值的(向量)和,对于由蓝色=0限定的平面,等同于具有正蓝色分量的所有纹元的偏移值的(向量)和(或者对应地,对于各个平面,分别等同于具有负红色、绿色或蓝色分量的所有纹元的偏移值的(向量)和)。
[0097]对于第四维,例如RGBA颜色空间,相应地,也应该优选使用垂直于第四轴(如,α轴)的第四平面(例如,由α=0限定的平面)。在这种情况下,由α=0限定的平面的第四估计向量将是具有正α分量的所有纹元的偏移值的(向量)和(或者对应地,具有负α分量的所有纹元的偏移值的(向量)和)。
[0098]如果考虑多个不同的平面,则针对各个平面确定数据空间中的方向。然后,应该使用所确定的方向来确定将在确定所考虑的纹理数据元素集合的基础数据值时使用的数据空间中的方向。
[0099]在一个优选实施方式中,这通过如下步骤来实现:对所考虑的一些或所有(优选为所有)平面的方向向量求和,从而得到所关注的平面集合的“总”方向向量,然后其将被用作将在确定所考虑的纹理数据元素集合的基础数据值时使用的数据空间中的方向。
[0100]在另一尤其优选的实施方式中,选择所确定的多个方向之一作为将在对纹理数据元素集合进行编码时使用的方向,即,选择所确定的多个方向之一作为将使用的方向。
[0101]因此,在优选实施方式中,如果考虑多个不同的平面,则选择针对多个平面之一确定的方向作为将在确定所考虑的纹理数据元素集合的基础数据值时使用的数据空间中的方向。
[0102]因此,在尤其优选的实施方式中,本发明包括下面的步骤,或者处理电路被配置为:使用和/或选择针对数据空间中将纹理数据元素分割成两组的所述至少一个平面之一在纹理数据元素的数据空间中确定的方向,作为数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对纹理数据元素集合进行编码时用于纹理数据元素集合。
[0103]类似地,在尤其优选的实施方式中,本发明的方法包括下面的步骤,并且本发明的设备包括处理电路,该处理电路被配置为:
[0104]针对数据空间中将待编码的纹理数据元素集合分割成两组的多个不同的平面中的每一个,确定数据空间中从数据空间中基于待编码的纹理数据元素集合中的值落在数据空间中的所述平面一侧的纹理数据元素的值的点到数据空间中基于待编码的纹理数据元素集合中的值落在数据空间中的所述平面另一侧的纹理数据元素的值的点的向量的方向;以及
[0105]选择针对将纹理数据元素集合分割成两组的所述多个不同的平面中的一个在纹理数据元素的数据空间中确定的方向,作为数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对纹理数据元素集合进行编码时用于纹理数据元素集合。
[0106]如果所考虑的多个平面之一的方向将被选择作为将使用的方向,则可根据需要选择将使用的方向。在尤其优选的实施方式中,数据空间中具有较长(优选地,具有最长)向量的方向(即,两个平均数据值点之间的距离,或者(偏移)数据值和点与原点之间的距离(如果数据值基于平均值而偏移的话)较大的方向(优选地,两个平均数据值点之间的距离,或者(偏移)数据值和点与原点之间的距离(如果数据值基于平均值而偏移的话)最大的方向))被选择作为将在确定纹理数据元素集合的基础数据值时使用的方向。 申请人:已认识到,所确定的方向向量越长,其落在数据空间中的纹理数据元素值的主方向上的可能性越高,因此选择较长或最长的方向向量作为将使用的方向应该得到比选择较短方向向量更好的主方向的估计。
[0107]因此,在优选实施方式中本发明包括以下步骤:基于方向向量的长度选择将在确定基础数据值时使用的方向(向量),所述基础数据值将在对所关注的纹理数据元素集合进行编码时使用(并且对应地,基于方向向量的长度,确定是否将针对已用于分割纹理数据元素值的平面确定的方向向量用作将在确定基础数据值时使用的方向(向量),所述基础数据值将在对所关注的纹理数据元素集合进行编码时使用)。
[0108]类似地,本发明优选包括以下步骤:以上述方式针对数据空间中将纹理数据元素值分割成两组的多个平面中的一个或更多个(在优选实施方式中,针对每一个)确定向量方向,然后基于方向向量的长度选择那些向量之一(的方向)作为将在确定基础数据值时使用的方向,所述基础数据值将在对所关注的纹理数据元素集合进行编码时使用。优选地,选择方向向量中足够长的一个(优选地,最长的一个)。
[0109]在这些布置方式中,可针对各个平面确定方向向量,然后例如通过比较各个向量的长度(在一个优选实施方式中,就是如此)来识别并使用所确定的所有方向向量中的最长向量。
[0110]另选地,例如,可设定优选预定的阈值向量长度,如果发现向量超过该长度,则使用该向量,尽管仍将确定和/或测试其它向量。在这种情况下,依次确定和/或测试各个平面的方向向量,将各个向量与阈值长度进行比较,如果该向量超过阈值长度,则使用该向量,而不再针对任何其它平面确定和/或测试向量(如果没有发现向量超过阈值长度,则优选地使用最长向量)。
[0111]在这种迭代处理中,优选地,按照最可能确定主方向的平面首先测试的顺序来测试平面(如,基于典型纹理(如游戏内容)的统计分析)。
[0112]可根据需要确定各个方向向量的长度。例如,可使用通常的利用点积的欧几里得方法。另选地,如果需要,可使用各个向量的曼哈顿长度,以避免不得不执行乘法。
[0113]尽管如上所述,使用多个平面可得到所关注的纹理数据元素集合在数据空间中的主方向的更精确的估计(因此,出于该原因而为优选的), 申请人:已发现,仅使用单个平面可能就足够了,尤其是在特定情况下(如,对于特定纹理内容形式)。仅考虑单个平面将降低方向估计的可能质量,但将更快地执行方向估计,因此可能适合于(例如)需要增加的速度并且可接受任何质量损失的“超快”编码实现。因此,在另一优选实施方式中,仅针对数据空间中的单个平面确定方向,然后将在对纹理数据元素进行编码时使用该方向。
[0114]因此,在优选实施方式中,本发明的方法包括下面的步骤,并且本发明的设备包括处理电路,该处理电路被配置为:
[0115]针对数据空间中将待编码的纹理数据元素集合分割成两组的一个且仅一个平面,确定数据空间中从数据空间中基于待编码的纹理数据元素集合中的值落在数据空间中的所述平面一侧的纹理数据元素的值的点到数据空间中基于待编码的纹理数据元素集合中的值落在数据空间中的所述平面另一侧的纹理数据元素的值的点的向量的方向;以及
[0116]利用针对数据空间中将待编码的纹理数据元素集合的值分割成两组的所述平面在纹理数据元素的数据空间中确定的所述方向,作为数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对纹理数据元素集合进行编码时用于纹理数据元素集合。
[0117]如果仅考虑数据空间中的单个平面,则优选地,选择将使用的平面以避免通常情况最佳方向(即,给定的典型和/或已知纹理内容的可能的主方向)落在数据空间中将用于分割纹理数据元素值的平面中。可通过(例如)预先测试典型纹理内容(如,游戏纹理)来确定这些通常情况最佳方向(以因此避免)。
[0118]例如, 申请人:已确定,对于RGB颜色内容,尤其是当数据值接近灰色时,纹理数据元素集合的主方向通常非常接近于(1,1,I)。因此,仅使用单个平面时RGB内容将使用的优选平面是由R+G+B=0限定的平面。在这种情况下,如果纹理数据元素值按照它们的平均值偏移,则将通过R+G+B和为正的集合中的各个纹理数据元素的R+G+B和之和(或者通过R+G+B和为负的集合中的各个纹理数据元素的R+G+B和之和)来给出和点(用于确定与RGB颜色空间中的原点之间的方向向量)。
[0119]一旦待编码的纹理数据元素集合在数据空间中的方向已确定,则该方向可用于(优选用于)产生将在对所关注的纹理数据元素集合(如,块)进行编码时使用的基础数据值(如,颜色)。
[0120]本发明因此还扩展至(优选包括):使用所确定和/或选择的纹理数据元素集合在数据空间中的方向来推导将在对纹理数据元素集合进行编码时使用的基础数据值。
[0121]例如取决于并根据所使用的编码方案,基础数据值可包括任何合适的数据值。在优选实施方式中,推导多个基础数据值,(如,颜色值)的集合。
[0122]在尤其优选的实施方式中,确定待编码的纹理数据元素集合的包括一对数据值的基础数据值集合。最优选地,针对所关注的纹理数据元素集合确定一对端点数据值(例如,一对端点颜色值),优选地从所述一对端点数据值(最优选地,通过确定端点值的加权和)来插值该集合的纹理数据元素的数据(如,颜色)值。如果需要,基础数据值对可相反包括(例如)基础值和差值,然后所述值可组合以得到纹理数据元素的值。
[0123]可利用所确定的数据空间中的方向以任何期望且合适的方式确定基础数据值,例如,取决于且根据所使用的纹理压缩方案。
[0124]在尤其优选的实施方式中,利用待编码的纹理数据元素集合的平均值(其根据需要可以是纹理数据元素集合的值的真正的平均值,或者是该平均值的近似值)以及所确定的(选择的)向量方向来确定将用于纹理数据元素集合的基础数据值。
[0125]优选使用这些值推导数据空间中可投影纹理数据元素值的线。优选地,利用待编码的纹理数据元素集合的平均值以及所确定的(选择的)向量方向来限定数据空间中的参数线。
[0126]L=C+t*V
[0127]其中:
[0128]L是数据空间中的参数线;
[0129]C是纹理数据元素集合的平均值;并且
[0130]V是所确定的向量方向。[0131]然后,优选使用如此推导的线来确定将使用的基础数据值。优选地,落在该线上的值被用作或用于推导将使用的基础数据值。
[0132]在一个优选实施方式中,数据空间中将投影纹理数据元素集合的纹理数据元素(在将纹理数据元素的值投影到该线上时)的确定的线上的最低和最高值点被用作或用于推导将使用的基础数据值(端点值)。例如,最高和最低值可直接用作端点值(例如),或者可调节那些值以得到将使用的端点值,以(例如)用端点处的准确度换取编码的数据值范围的中间处的更大的精度。
[0133]如果需要,另外或者作为替代,还可使用从数据空间中的线确定的值(如,最高和最低值)作为(例如)更复杂的基础数据值确定处理的起始值(作为其输入)。
[0134]如果在“偏移”数据值空间中推导所述线,则在确定将使用的实际基础(如,端点)数据值时,应该将平均数据值与从数据空间中推导出的线确定的数据值相加。
[0135]在优选实施方式中,首先将集合中的所有纹理数据元素投影到数据空间中的推导出的线上。这优选通过针对数据空间中的线L上最接近所关注的纹理数据元素的值的点求参数值t来完成。如果纹理数据值已利用编码的纹理数据元素集合的平均值偏移,则参数值t可以是(并且优选被计算为)t=dot(V,T')/dot (V, V)(其中dot O表示通常的向量点积,T’是偏移纹理数据元素值,V是所确定的向量方向)。
[0136]一旦这完成,优选确定针对纹理数据元素集合求出的最低和最高参数值t_low和t_high (即,投影了纹理数据元素集合的纹理数据元素的数据空间中的确定的线上的最低和最高值点的参数值)。然后,优选使用这些最低和最高参数值来定义将用于所关注的纹理数据元素集合的相应的基础(端点)数据值,优选如下:
[0137]端点颜色l=C+t_low*V
[0138]端点颜色2=C+t_high*V
[0139]其中C是纹理数据元素集合的平均值,V是所确定的向量方向,t_low是得自纹理数据元素的最低参数值,t_high是得自纹理数据元素的最高参数值。
[0140]一旦利用数据空间中的确定的方向确定了相应的基础(如,端点)数据值,则那些数据值可用于(优选用于)对所关注的纹理数据元素集合进行编码。
[0141]因此,尽管上面具体参照推导将在对纹理数据块进行编码时使用的基础数据值(如,端点颜色)的处理描述了本发明,本发明还扩展至(优选包括):利用所确定的基础数据值将纹理数据元素集合编码为表示纹理数据元素的纹理数据块。
[0142]因此,在尤其优选的实施方式中,本发明还包括下面的步骤,或者处理电路被配置为:利用所确定的基础数据值将纹理数据元素集合编码为表示纹理数据元素的纹理数据块。
[0143]类似地,本发明还扩展至(优选包括):利用所确定的基础数据值产生表示纹理数据元素块(其包括所关注的纹理数据元素集合)的编码的纹理数据块。
[0144]编码方式将取决于所使用的总纹理编码方案。
[0145]在一个优选实施方式中,首先使用所确定的基础数据值来通过所确定的基础(如,端点)值的插值确定将用于纹理数据元素集合的另外的(优选两个另外的)数据值。优选地,然后向集合中的各个纹理数据元素分配索引值,所述索引值将纹理数据元素映射至纹理数据元素集合的如此确定的颜色中的一个(即,最接近的一个)(即,端点颜色和插值的颜色中的最接近的一个)。例如,在使用的编码方案为S3TC、BC6或BC7的情况下将这样做。在优选实施方式中,通过在将纹理数据元素投影到数据空间中的确定的线上时重新缩放并量化针对纹理数据元素推导出的参数值“t”来完成纹理数据元素值到颜色的映射。
[0146]在另一优选实施方式中,向各个纹理数据元素分配索引值,所述索引值将用作(或者可用于推导)权重以用于使用针对纹理数据元素集合确定的基础数据值(如,端点颜色)对纹理数据元素的数据值插值。例如,在使用的编码方案为ASTC的情况下将这样做。
[0147]如果所关注的纹理数据元素集合对应于待编码的纹理数据元素块的所有纹理数据元素,则一旦确定纹理数据元素集合的基础数据值,可对纹理数据元素块编码以产生表示纹理数据元素集合的编码的纹理数据块。
[0148]另一方面,如果所关注的纹理数据元素集合仅对应于待编码的纹理数据元素块的纹理数据元素的子集或分区,则优选针对纹理数据元素块所分割成的各个相应的子集(分区)重复(主)方向和基础数据值确定处理,以针对纹理数据元素块所分割成的各个子集(分区)得到单独的基础数据值集合。这样做的优点在于,块内的不同分区可实际上使用不同的编码方案(在一个优选实施方式中,就是如此)。
[0149]如果给定纹理数据块中的待编码的纹理数据元素块被分割成多个纹理数据元素“子集”或“分区”,优选使用2、3或4个分区。
[0150]一旦确定了待编码的纹理数据元素块所需的所有的(主)方向和基础数据(如,端点)值,则优选产生表示所关注的纹理数据元素块的编码的纹理数据块。
[0151]所述编码处理可使用任何合适和需要的编码方案。其优选使用(优选已知的)基于块的编码方案,例如S3TC、BC6、BC7或ASTC。(本发明的优点在于其可与现有传统的基于块的编码方案一起使用)。
[0152]因此,本发明的方法和设备优选还包括下面的步骤,或者处理电路被配置为:优选使用基于块的编码方案对待编码的纹理所分割成的纹理数据元素块进行编码,以得到表示纹理数据元素块的编码的纹理数据块。
[0153]各个编码的纹理数据块应该包括解码器所需(和/或期望)的所有信息,以使得解码器能够对编码的纹理数据块进行解码,以(至少近似地)再现块所表示的纹理数据元素的原始阵列。为此编码的纹理数据块中应该包括的数据将取决于所关注的纹理数据编码(压缩)方案的确切性质。此数据可以按照任何合适和期望的方式(即,实践中,以解码器可识别并正确解释的方式)布置在编码的纹理数据块中。
[0154]通常,优选的是(在一个优选实施方式中就是如此)编码的纹理数据块至少包括指示(或使得能够推导)编码的纹理数据块的基础数据(如,颜色)值(例如,颜色端点值)的数据、以及使得解码器能够从块的基础数据值(如,端点颜色)确定给定纹理数据元素的值(至少其近似值)的信息。
[0155]在一个优选实施方式中,各个编码的纹理数据块包括(除了别的以外)指示(或者指示如何产生)将用于产生块所表示的纹理数据元素集合的数据值的基础数据值(如,颜色端点值)集合的数据、以及指示如何使用基础数据值(如,颜色端点值)集合来产生将使用基础数据值集合的纹理数据元素集合的纹理数据元素的数据值的数据。
[0156]在尤其优选的实施方式中,编码的纹理数据块包括指示如何利用编码在块中的整数值集合产生块的基础数据值集合的数据。在这种情况下,可执行使用所述整数值来产生基础数据值,和/或可从所述整数值推导将使用的一些或所有基础数据值。
[0157]在尤其优选的实施方式中,指示如何产生将使用的基础数据值集合的数据指示将使用多个选择的(优选预定的)基础数据值集合产生技术或方法中的哪一个。
[0158]如果使用分割,在一个实施方式中,纹理数据块的各个纹理数据元素分区共享相同的基础值(如,颜色端点值)、和/或指示如何产生基础数据值集合的数据集合,所述基础数据值集合将用于产生块的数据值。
[0159]在使用分割的另一实施方式中,纹理数据块的各个纹理数据元素分区具有其自己的基础值(如,颜色端点值)、和/或指示如何产生基础数据值集合的数据集合,所述基础数据值集合将用于产生分区所对应的特定纹理数据元素子集(即,分区所对应的子集)的数据值。如上所述,这样做的优点在于块内的不同分区实际上可使用不同的编码方案(在一个优选实施方式中,就是如此)。
[0160]如果编码的纹理数据块可包括(或者包括)多个分区,则编码的纹理数据块优选还包括指示该块所使用的分割图案的信息。此信息可采取任何合适和期望的形式,例如向解码器指示使用了存储的预定义的分割图案中的哪一个的索引。
[0161]在一个优选实施方式中,利用分割图案生成函数产生分割图案,那么编码的纹理数据块优选地包括将由解码器使用以配置分割图案生成函数的信息,以使得解码器能够产生所使用的特定分割图案。此信息优选包括分割图案生成函数索引或种子以及分区数量,其在编码阶段用作分割图案生成函数的输入以用于产生将使用的分割图案。(然后,解码器优选使用此信息以及待解码(即,待确认其值)的纹理数据元素的位置,作为分割图案生成函数的输入,以确定所关注的纹理数据元素属于编码的纹理数据块的哪一分区。一旦这完成,则解码器可(例如,且优选地)确定将用于纹理数据元素被确定所属于的分区的基础数据值(如,端点颜色),然后使用那些数据值来确定将用于纹理数据元素本身的数据值(如,颜色值)。)
[0162]如上所述,编码的纹理数据块优选包括指示如何使用块的相应的基础数据值(如,端点颜色)集合或产生的基础数据值集合来产生块的纹理数据元素的数据值的数据。
[0163]编码的纹理数据块中所包括的指示如何使用基础数据值(如,颜色端点值)集合来产生块的各个纹理数据元素的数据值的数据可以是这样的任何合适的数据。在优选实施方式中,其包括索引数据,其将索引赋予所关注的一些或所有纹理数据元素,并可用于从基础数据值推导纹理数据元素的数据值。
[0164]在一个优选实施方式中,所述索引将用于将所关注的纹理数据元素映射到块的颜色集合中的数据值(如,颜色)(例如,就像S3TC纹理编码方案中一样)。
[0165]在另一优选实施方式中,所述索引将用于从基础(如,端点)数据值对给定纹理数据元素的数据值进行插值。优选地,各个索引将用作(或用于推导)权重以计算基础数据值(如,端点值)的加权和(然后,该加权和被用作索引所涉及的纹理数据元素的数据值)。
[0166]因此,例如,如果产生两个端点数据值,则优选使用这两个端点数据值将用于的给定纹理数据元素的索引来从这两个端点值推导纹理数据元素的数据值(优选通过基于索引值在两个端点数据值之间插值)。
[0167]编码的纹理数据块优选包括(和/或使得能够推导)编码的纹理数据块所表示的各个单独的纹理数据元素的索引。在一些优选的布置方式中,这通过在编码的纹理数据块中为编码的纹理数据块所表示的每一纹理数据元素(明确地)提供索引值来完成。在其它优选布置方式中,编码的纹理数据块仅编码(明确包括)有限数量的索引值,在使用时(在解码时)从这些索引值推导将用于编码的块所表示的纹理数据元素的索引(优选通过从所提供的索引值适当插值)。
[0168]在优选实施方式中,可使用不同的“索引”编码方式,各个编码的纹理数据块包括指示块所使用的编码方式的信息(优选通过在编码的纹理数据块中包括指示块将使用(所使用)的预定“索引模式”的信息)。优选地,存在可使用的多个预定义的索引模式。
[0169]编码的纹理数据块中将包括的信息可按照任何期望的顺序和布置方式包括在编码的纹理数据块中。在优选实施方式中,各个编码的纹理数据块使用特定(优选常用的)格式和组织方式。
[0170]本发明可用于对任何合适形式的纹理数据进行编码。如上所述,这种数据在其初始、原始或未编码的形式下通常以纹理元素或纹元阵列的形式排列,因此在尤其优选的实施方式中,本发明用于对纹理数据元素(纹元)阵列进行编码。如本领域已知的,这些阵列通常为2维的,但也可使用本发明来对3维阵列编码(实际上,本发明的一个优点在于其可用于以高效的方式对3维纹理编码)。
[0171]待编码的纹理和纹理数据元素可表示任何合适的纹理数据。在一个优选实施方式中,所述纹理是(例如,且优选地)在渲染图像和/或帧以便于显示时将用于图形处理的纹理,例如,如本领域已知的,将应用于待渲染图元的图像、颜色(包括灰度)、亮度、凹凸映射、阴影映射(光照映射)等。
[0172]然而,(例如)如果期望使用图形纹理(以及图形纹理处理)来表示和处理其它形式的数据,则本发明还可用于处理和编码(解码)将用于处理(表示)其它形式的数据的纹理。如本领域已知的,除了“传统”图形目的之外,纹理还可用于(用于)图形处理以表示和处理许多不同类型的数据,例如,3D雾、流场等。本发明可同样适用于(扩展至)图形处理系统中的这些纹理类型和用途。因此,如果需要,本发明的纹理可表示在图形处理系统中将被处理为纹理的其它形式的数据。
[0173]在尤其优选的实施方式中,纹理数据元素各自表示纹理元素的颜色值,但这不是必要的。优选地,纹理数据元素表示:每纹元具有1、2、3或4个分量(分别为亮度、亮度α、RGB和RGB α )的低动态范围(LDR)纹理数据或者每纹元具有1、3或4个分量的高动态范围(HDR)纹理数据。
[0174]本领域技术人员将理解,与纹理元素一致的实际数据值(均在其初始未编码的原始形式及其编码的形式下(或者至少在编码的数据已解码以再现原始数据表示时))将取决于纹理元素旨在定义或表示的“纹理”的形式。
[0175]因此,例如,如果纹理元素定义将使用的颜色,则处于其初始未编码形式的纹理数据元素可各自包括颜色值集合(红色、绿色、蓝色(RGB)、颜色和透明度值集合(红色、绿色、蓝色、a (RGBA))或者亮度和色度值的集合,并且编码的数据在被解码(再现)时将产生对应的颜色值集合。
[0176]在阴影(光照)映射的情况下,例如,纹理数据元素将各自包括或表示指示(例如)纹理元素处于光照中还是阴影中以及该纹理元素的光照或阴影的量(和/或颜色)的数据值集合。类似地,对于法向映射(凹凸映射),各个纹理元素的数据将是指示该纹理元素处光的反射方向的值集合。
[0177]纹理数据元素还可(例如)包括z值(深度值)、模板值、亮度值(亮度纹理)、亮度α纹理和/或光泽度映射(即,纹理元素位置处表面是否有光泽)等。
[0178]在适当的情况下,各个纹理数据块可仅用剩余数据值对产生再现原始数据所需的一些(但非所有)数据值所需的数据编码,所述剩余数据值将作为数据再现处理的一部分推导(如,从其推导)。因此,在一个优选实施方式中,编码的纹理数据块用代表其它部分的原始数据的数据对代表一些原始纹理数据的数据进行编码,所述其它部分的原始数据将在解码处理期间从编码的数据推导出。
[0179]例如,在法向映射中,编码的纹理数据可(例如)仅用第三分量(dz)对两个法向分量(如,dx和dy)编码,所述第三分量将在对数据解码时从这两个值推导(因为已知的是分量的平方和必须为I (因为其定义长度I的法向向量):l=dx2+dy2+dz2)。
[0180]这里应该注意的是,如本领域技术人员将理解的,本文中提及“颜色”或“亮度”等相应地是指使得所关注的颜色或亮度等能够被再现于(例如)显示器上的数据值集合。这些数据值可包括任何合适的颜色或亮度等数据集合,例如如上所述的RGBA值集合。同样,提及产生编码的纹理数据块的数据值集合以及各个纹理元素的数据值适当地涵盖了各自包括值的组合(例如颜色值集合(RGB或RGBA))的数据值。
[0181]从上述内容将理解,本发明尤其适合于基于块的编码方式,其中各个编码的纹理数据块编码(表示)所关注的纹理映射的较小部分(块)(使得多个这样的单独的纹理数据元素块将被编码,以对待编码的整个纹理(纹理数据元素阵列)(如纹理映射)编码。因此,在尤其优选的实施方式中,本发明还包括:首先将待编码的纹理(如,纹理映射)再分割为多个纹理数据元素块,然后根据本发明确定各个纹理数据元素块的主方向并将各个纹理数据元素块编码为纹理数据块。
[0182]优选的是将编码的纹理分割成相等尺寸的块,S卩,使得各个编码的纹理数据块表示相同数量的纹理数据元素。这可(例如)简化寻找给定纹理数据元素位于哪一编码块的任务。在优选实施方式中,各个编码的纹理数据块对4X4、5X5、6X6、8X8、10X10、12X12、3X3X3、4X4X4、5X5X5或6X6X6纹元阵列(或其等同物)编码。(本发明可支持许多不同的块尺寸。)
[0183]还优选的是各个编码的纹理数据块具有相同的大小,S卩,对于所关注的纹理使用固定速率编码方案。如本领域已知的,这有利于编码和解码处理。
[0184]可根据需要选择将纹理实际再分割为较小的块以及编码为编码纹理数据块的顺序。在优选实施方式中,按照光栅顺序对块编码,尽管当然,其它布置方式也是可能的,例如使用莫顿(Morton)顺序。
[0185]将待编码的各个纹理数据元素块编码为编码数据块的编码处理可以按照任何合适的方式在待编码的初始(原始)纹理数据上进行或利用待编码的初始(原始)纹理数据来进行。例如,如已知的现有技术处理中一样,待编码的纹理数据元素块可(优选就是)首先利用可用的(即,编码的纹理数据块实际上可表示的)各种不同的编码可能中的一些或全部来编码。这将得到可能的编码块的集合,然后可将该集合与原始数据进行比较,以确定(例如)块的哪一编码版本与原始数据比较时误差(再现时)最小(然后,可选择该编码方式作为将在编码时用于该原始纹理数据块(纹元阵列)的编码方式)。[0186]然后,这将针对原始数据(如,纹理映射)所分割成的各个不同的纹理数据元素块重复,以生成表示(且对应于)原始数据集合(如,纹理映射)的编码纹理数据块流或集合。然后,可将此编码纹理数据块集合存储(例如)在诸如DVD的便携式存储装置上,以便于未来使用,例如,当期望将该纹理应用于待渲染的图像时。优选地,纹理被编码为Mip映射集合,各个Mip映射利用本发明来产生。
[0187]原始数据(如,纹理映射)为了编码目的而分割成的各个纹理数据元素块优选具有相同的尺寸。优选将使用的块尺寸提供给解码器。块尺寸优选不被包括在编码的纹理数据块本身中,而是优选单独地提供给解码器。例如,块尺寸可由提供给解码器的另一参数来隐含地指示(例如且优选地,图像类型),或者被包括在(指示在)与编码纹理数据块集合相关(附着)的(全局)数据头中。
[0188](本领域技术人员将理解,反转的解码处理,S卩,使用编码纹理数据块来生成一个或更多个纹理数据元素或者纹理数据元素阵列以便于使用,将基本上是编码处理的逆处理,因此包括(例如)确定表示所关注的纹理数据元素的编码纹理数据块,从识别出的编码纹理数据块确定将用于纹理数据元素的基础数据值(如,端点颜色)集合,然后相应地产生纹理数据元素的数据值(如,颜色)。)
[0189]尽管上面具体参照了用于图形处理系统的纹理数据的编码描述了本发明,但是本领域技术人员将理解,其同样适用于其它形式的数据的编码,尤其适用于(相似的)数据元素(如,值遵循共同或相似的格式和/或将是(或可用于)相似或相同的目的或者表示相似的信息的数据元素)阵列或块形式的(或能够以该形式表达的)数据。通常,只要期望估计给定点集合在(例如)低维空间(2至4维)中的主方向(即,点呈现最大方差的方向)就可使用本发明(如,用于对任何低维数据集合进行分割)。
[0190]例如,这样的“非图形”数据可包括用于医疗试验、生物分类性状测量等的多元统计数据集合、用于模拟的向量场、表示流体的流动方向或冲击的弹回方向等的数据(例如,该数据将类似于上面联系图形数据所讨论的法向映射(凹凸映射))、热图或声音数据等。
[0191]在这些布置方式中,可以按照类似于本文所述的纹理数据的方式对数据编码(解码)。
[0192]因此,根据本发明的一个方面,提供了一种针对待编码的数据元素集合,确定所述数据元素在数据空间中的方向的方法,所述方向将在确定基础数据值时使用,所述基础数据值将在对所述数据元素集合进行编码时用于所述数据元素集合,该方法包括以下步骤:
[0193]针对数据空间中将待编码的纹理数据元素集合分割成两组的至少一个平面,确定数据空间中从数据空间中基于待编码的数据元素集合中的值落在数据空间中的所述平面一侧的数据元素的值的点到数据空间中基于待编码的数据元素集合中的值落在数据空间中的所述平面另一侧的数据元素的值的点的向量的方向;以及
[0194]利用针对数据空间中将纹理数据元素集合分割成两组的所述至少一个平面中的至少一个在数据元素的数据空间中确定的所述方向,来确定数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对所述数据元素集合进行编码时用于所述数据元素
隹A
口 O
[0195]根据本发明的另一方面,提供了一种针对待编码的数据元素集合,确定所述数据元素在数据空间中的方向的设备,所述方向将在确定基础数据值时使用,所述基础数据值将在对所述数据元素集合进行编码时用于所述数据元素集合,该设备包括:
[0196]处理电路,其被配置为:
[0197]针对数据空间中将待编码的纹理数据元素集合分割成两组的至少一个平面,确定数据空间中从数据空间中基于待编码的数据元素集合中的值落在数据空间中的所述平面一侧的数据元素的值的点到数据空间中基于待编码的数据元素集合中的值落在数据空间中的所述平面另一侧的数据元素的值的点的向量的方向;以及
[0198]利用针对数据空间中将纹理数据元素集合分割成两组的所述至少一个平面中的至少一个在数据元素的数据空间中确定的所述方向,来确定数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对数据元素集合进行编码时用于数据元素集合。
[0199]根据本发明的另一方面,提供了一种针对待编码的数据元素集合,确定所述数据元素在数据空间中的方向的方法,所述方向将在确定基础数据值时使用,所述基础数据值将在对所述数据元素集合进行编码时用于所述数据元素集合,该方法包括以下步骤:
[0200]确定待编码的数据元素集合的平均数据值,然后按照该平均值使各个数据元素的值偏移;
[0201]针对数据空间中将待编码的所述纹理数据元素集合的偏移值分割成两组的至少一个平面,确定在数据空间中数据空间中的原点与待编码的纹理数据元素集合中的值落在数据空间中的所述平面一侧的一个或更多个(优选为多个,并且优选为所有)纹理数据元素的偏移值之和在数据空间中的点之间的向量的方向;以及
[0202]利用针对将纹理数据元素集合的偏移值分割成两组的所述至少一个平面中的至少一个在纹理数据元素的数据空间中确定的所述方向,来确定数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对纹理数据元素集合进行编码时用于纹理数据元素集合。
[0203]根据本发明的另一方面,提供了一种针对待编码的数据元素集合,确定所述数据元素在数据空间中的方向的设备,所述方向将在确定基础数据值时使用,所述基础数据值将在对所述数据元素集合进行编码时用于所述数据元素集合,该设备包括:
[0204]处理电路,其被配置为:
[0205]确定待编码的数据元素集合的平均数据值,然后按照该平均值使各个数据元素的值偏移;
[0206]针对数据空间中将待编码的所述纹理数据元素集合的偏移值分割成两组的至少一个平面,确定在数据空间中数据空间中的原点与待编码的纹理数据元素集合中的值落在数据空间中的所述平面一侧的一个或更多个(优选为多个,并且优选为所有)纹理数据元素的偏移值之和在数据空间中的点之间的向量的方向;以及
[0207]利用针对将纹理数据元素集合的偏移值分割成两组的所述至少一个平面中的至少一个在纹理数据元素的数据空间中确定的所述方向,来确定数据空间中将在确定基础数据值时使用的方向,所述基础数据值将在对纹理数据元素集合进行编码时用于纹理数据元素集合。
[0208]本领域技术人员将理解,适当地,本发明的这些方面可包括(优选包括)本文所述的发明的优选和可选特征中的任一个或更多个或全部。
[0209]本发明的方法和设备可以按照任何适当的方式(如,以硬件或软件)实现在(包括在)任何适当的装置或部件中。在优选实施方式中,它们可实现在处理器中,因此,本发明还扩展至被配置为使用本发明的方法或包括本发明的设备的处理器。在优选实施方式中,本发明的方法和设备实现在硬件中,优选实现在单个半导体平台上。
[0210]本发明可实现于任何合适的系统中,例如适当配置的基于微处理器的系统。在优选实施方式中,本发明实现于基于计算机和/或微处理器的系统中。
[0211]例如,本发明可实现于图形处理器或图形处理装置上,因此扩展至包括本文所述的发明的任一个或更多个方面的设备或根据这种方法来操作的图形处理器和图形处理平台。在执行上述特定功能所需的任何硬件的前提下,这种图形处理器可另外包括图形处理器所包括的一般功能单元中的任一个或更多个或全部。
[0212]本发明的各种功能可以按照任何期望和合适的方式实现。例如,本发明的功能可根据需要以硬件或软件来实现。因此,例如,本发明的各种功能元件和“装置”可包括能够操作以执行各种功能等的合适的处理器、控制器、功能单元、电路、处理逻辑、微处理器等,例如适当专用的硬件元件或处理电路和/或可被编程以按照期望的方式操作的可编程硬件元件或处理电路。
[0213]在一个优选实施方式中,本发明的设备包括被配置为以所述方式操作的专用(非可编程)处理电路。在另一优选实施方式中,其包括被编程为以所述方式操作的可编程处理电路。
[0214]这里还应该注意的是,本领域技术人员将理解,本发明的各种功能等可被复制和/或在给定处理器上并行执行。
[0215]本领域技术人员还将理解,适当地,描述的本发明的所有方面和实施方式可包括本文所述的优选和可选特征中的任一个或更多个或全部。
[0216]根据本发明的方法可至少部分地利用软件(如,计算机程序)来实现。因此,可以看出从未来方面考虑,本发明提供在安装在数据处理装置上时具体适于执行本文所述的方法的计算机软件、包括在程序元件在数据处理装置上运行时执行本文所述的方法的计算机软件代码部分的计算机程序元件、以及包括适于在程序在数据处理系统上运行时执行本文所述的方法的所有步骤的代码装置的计算机程序。数据处理系统可以是微处理器、可编程FPGA (现场可编程门阵列)等。
[0217]本发明还扩展至包括这样的软件的计算机软件载体,其在用于操作图形处理器、渲染器或包括数据处理装置的其它系统时,与所述数据处理装置结合使所述处理器、渲染器或系统执行本发明的方法的步骤。这种计算机软件载体可以是物理存储介质,例如ROM芯片、CD ROM或盘等,或者可以是信号,例如电线上的电信号、光学信号或卫星的无线电信
V寸ο
[0218]还将理解,并非本发明的方法的所有步骤均需要通过计算机软件来执行,因此从更广泛的方面讲,本发明提供计算机软件,这种软件安装在计算机软件载体上以用于执行本文所阐述的方法的至少一个步骤。
[0219]本发明因此可适当地实施为用于计算机系统的计算机程序产品。这种实现方式可包括一系列计算机可读指令,所述计算机可读指令固定于诸如计算机可读介质(例如,磁盘、⑶ROM、ROM或硬盘)的有形的永久介质上,或者可通过有形介质(包括但不限于光学或模拟通信线路)或无形地利用无线技术(包括但不限于微波、红外或其它传输技术)经由调制解调器或其它接口装置传输至计算机系统。这一系列计算机可读指令实施本文先前所述的所有或部分功能。
[0220]本领域技术人员将理解,这些计算机可读指令可以用许多计算机架构或操作系统所使用的许多编程语言来编写。另外,这些指令可利用任何存储器技术(目前或未来的)来存储,包括但不限于半导体、磁或光学,或者利用任何通信技术(目前或未来的)来传输,包括但不限于光学、红外或微波。可以想到,这种计算机程序产品可作为可移除介质随所附的印刷或电子文档一起分发(例如,紧缩套装软件),用计算机系统预先加载到(例如)系统ROM或固定盘上,或经由网络(例如,互联网或万维网)从服务器或电子公告牌分发。
【专利附图】

【附图说明】
[0221]现在将仅作为示例参照附图描述本发明的许多优选实施方式,附图中:
[0222]图1示意性地示出作为多个编码的数据块的图像数据阵列的编码;
[0223]图2示意性地示出在描述的本发明的优选实施方式中的分割数据块的编码;
[0224]图3至图11示出描述的本发明的优选实施方式的编码块布局;
[0225]图12示意性地示出可使用按照描述的本发明的优选实施方式的方式编码的纹理数据的图形处理系统;
[0226]图13至图18示出描述的本发明的优选实施方式的主方向估计处理。
[0227]附图中,类似的特征使用类似的标号(只要适当)。
【具体实施方式】
[0228]现在将参照用于颜色映射(B卩,颜色数据)形式的图形处理的纹理数据的编码描述本发明的优选实施方式。然而,如上所述,本领域技术人员将理解,本发明可普遍适用于数据编码,因此不应被认为限于这里所给出的纹理颜色数据编码的示例。
[0229]图1示出此实施方式的基本编码处理。如图1所示,原始图像或纹理数据元素(纹元)阵列I (纹理“映射”)被再分割成多个4X4纹理元素块2。(也可使用其它块尺寸,如下面将进一步讨论的。)
[0230]在本实施方式中,如图1所示,原始图像(纹理映射)1被分割成相等尺寸的块。这简化了寻找给定纹理数据元素所在的块的任务,并提供恒定的数据率。
[0231]在此实施方式中,原始纹理映射数据阵列(图像)中的各个纹理元素(纹元)表示相应纹理元素的位置处将使用的颜色,因此其分配有包括颜色值集合(如,红色、绿色、蓝色(RGB),以及可选地,α (透明度)值)的数据值。换言之,在此实施方式中,将要编码、产生等的数据值各自对应于并表示颜色(颜色值集合)。因此,为了方便,下面的描述将主要引用“颜色”,但是应该理解,这样的引用指示包括表示所关注的颜色的颜色值集合的数据值。
[0232]在本实施方式中,并非将颜色数据阵列I以完整的原始形式存储,而是将各个4X4纹理元素块2编码为纹理数据块5,纹理数据块5与原始未编码形式的纹理数据相比尺寸减小。这实际上对原始纹理数据进行了压缩,从而使其存储和处理更容易且更高效。在本实施方式中,各个编码的纹理数据块5使用128比特。(其它布置方式当然也是可能的。)
[0233]如下面将进一步讨论的,各个编码的尺寸减小的纹理数据块5包含足够且适当的数据以使得能够再现对应于或表示所关注的4X4纹理元素块的原始未编码的数据的数据。
[0234]对于原始图像(纹理映射)1的各个块2,产生对应的编码的纹理数据块5。在本实施方式中按照光栅顺序对构成纹理映射的各个纹理数据块进行编码。当然,其它布置方式也是可能的,例如使用莫顿顺序。
[0235]因此,在本实施方式中,各个编码的纹理数据文件包括对纹理数据元素阵列(图像数据)编码的各个纹理数据块的序列。
[0236]文件中的纹理数据块的数量将取决于被编码的纹理映射(纹理数据阵列)的大小以及(例如)数据是否以Mip映射形式存储。如果使用Mip映射,则如果利用“η”个纹理数据块对第一层次的纹理映射分辨率进行编码,则将有“η/4”个纹理数据块用于下面的Mip映射层次,“η/16”个块用于下一 Mip映射层次,“η/64”用于下一 Mip映射层次,“η/256”用于再下一 Mip映射层次,等等(但各个层次不小于一个块),直到达到尺寸为1X1的Mip映射层次为止。
[0237](在本实施方式中,编码的纹理数据可以是Mip映射(B卩,存储有原始纹理数据阵列的多个版本以便于使用,各个版本具有不同的细节层次(分辨率))的形式并优选以该形式存储。Mip映射优选逐个地存储在存储器中,如本领域所知的,各个Mip映射层次是原始阵列(图像)的按比例缩小(按照因子2)的表示(图像)。Mip映射按照分辨率的降序存储,即,ηΧη、...、16Χ16、8Χ8、4Χ4、2Χ2、1Χ1。较小的Mip映射(〈8X8)各自分别存储在单独的编码数据块中。)
[0238]如下面将进一步讨论的,本实施方式支持将待编码的给定纹元块中的纹理数据元素(纹元)分割成块内的不同的子集或分区的布置方式。这示出于图2中,图2示出4X4纹元块2,该纹元块2已分割成三个分区10、11和12。因此,图2中标记有“a”的纹元属于第一分区10,标记有“b”的纹元属于第二分区11,标记有“c”的纹元属于第三分区12。然后,以压缩形式将该块编码为编码的纹理数据块13,但如将在下面更详细说明的,该纹理数据块具有与原始4X4纹元块的分割有关的附加信息。
[0239]从上述内容将理解,在本实施方式中待编码的各个纹元块或者纹元块内的各个分区将对应于纹元的集合,各个纹元具有相应的颜色值。如下面将进一步讨论的,本发明的纹元块编码处理进行操作(除了别的以外)以确定一对端点颜色,所述端点颜色将用于对纹元块(或纹元块内的分区)所表示的纹元集合进行编码(以及解码)。因此,本实施方式的编码处理中的重要操作是确定将在对所关注的纹元集合进行编码(和解码)时使用的一对端点颜色。
[0240]本实施方式的纹理编码方案在确定将用于对纹理数据集合编码(和解码)的一对端点颜色时使用待编码的纹理数据元素集合在颜色空间中的选定方向。
[0241]本质上,本实施方式进行操作以估计颜色空间中所关注的纹理数据元素集合的数据值呈现最大方差的方向(即,进行操作以估计纹理数据元素的值在颜色空间中的主方向)。然后,使用所估计的主方向来推导将用于对所关注的纹理数据元素集合进行编码的端点颜色值。
[0242]这示出于图13和图14中。图13示意性地示出在二维颜色空间中的二十个纹理数据元素的集合30的值。图14示出图13的纹理数据值的集合30以及在颜色空间中通过那些颜色值示例性估计的主方向(最佳拟合)向量V31。本实施方式使用特定处理来针对颜色空间中的给定纹理数据元素值的集合估计主方向向量V。
[0243]图15至图18示意性地示出在本发明的优选实施方式中(并根据本发明)估计待编码的纹理数据元素集合在颜色空间中的主方向的方法(因此,在本发明的优选实施方式中(并根据本发明)确定将用于待编码的纹理数据元素集合的颜色空间中的方向的方法)。
[0244]图15至图17示出本实施方式的主方向估计处理,图18是示出在本实施方式中如何执行该处理的流程图。
[0245]图13至图17为了清晰起见示出二维颜色空间(如,RG),但是如本领域所知的,颜色空间通常将是3维或4维(RGB或RGBA)。无论所考虑的颜色空间的维数如何,均可使用本实施方式的技术。
[0246]这里还应该注意的是,如图13至图17所示,在颜色空间中对纹元值进行评估。因为在颜色空间中进行评估,所以待编码的纹元集合中的纹元的“空间”位置不影响主方向估计处理。
[0247]本实施方式的主方向估计处理的输入是期望在颜色空间中估计主方向的纹理数据元素(纹元)集合。因此对于RGB纹理,处理的输入将是各自用(R,G,B)颜色元组表示的纹元的集合。将相应地输入其它形式的纹理数据。
[0248]如上所述,输入的纹理数据元素集合可包括(例如)待编码的纹元块(如,4X4纹元块)的所有纹理数据元素。另选地,如果针对待编码的给定纹元块所分割成的各个不同的分区需要单独的一对端点颜色,则输入至主方向寻找处理的纹理数据元素集合应该是所关注的分区的纹理数据元素的集合,而非该块的所有纹理数据元素的集合。
[0249]本实施方式的估计主方向的处理的第一步骤是针对所考虑的纹理数据元素集合确定平均颜色值C。这可以是真正的平均值,或者该平均值的近似值。
[0250]然后,对于该集合中的各个纹理数据元素,用纹元的颜色值T减去平均颜色C,以得到纹元的偏移颜色值T’,T’ =T-C。
[0251]图15针对图13和图14中所示的纹理数据元素的集合30示意性地示出这一处理,其示出在将各个纹元值按照纹元集合的平均值偏移之后,将图13和图14所示的纹理数据元素值的集合重新映射到轴X’、Y’上。因此,图15中的原点对应于纹元集合的平均纹元值C0
[0252]然后,在颜色空间中使用一个或更多个无限平面将纹理数据元素分割成两组(SP,将颜色空间分割成两部分),并且针对各个这样的平面,(按照下述方式)确定方向向量V’,所述方向向量V’将是所关注的纹理数据元素值集合的主方向的估计。
[0253]在本实施方式中,使用穿过偏移颜色空间X’、Y’的原点的轴对齐无限平面(即,垂直于颜色空间的一个轴的无限平面)来将偏移颜色空间分割成两部分。(各个这样的平面可由其法向向量唯一地定义。)考虑与纹理数据元素的颜色空间中的维数一样多的平面。
[0254]因此,对于图15所示的二维颜色空间,定义并考虑穿过偏移颜色空间的原点的两个不同的轴对齐无限平面。
[0255] 申请人:已认识到,如果通过分割数据空间的给定平面生成的方向估计V’限定了几乎垂直于该平面的方向,则该平面所估计的方向V’将是所关注的纹理数据元素值集合的真正主方向的非常好的估计。另一方面,如果估计的方向V’限定了非常接近平行于该平面的方向,则其可能是所关注的纹理数据元素值集合的真正主方向的任意差的估计。[0256]因此,使用N维的至少N个平面以及不相关(例如,轴对齐)的平面,有助于确保至少一个“好”的方向估计(因为如果使用N-1或更少的平面,则颜色空间中将存在同时与每一平面平行的至少一个轴;该轴将导致差的估计)。
[0257]因此,例如对于3D空间,优选测试全部彼此垂直的三个平面(例如,三个轴对齐平面),因为这将确保对于这三个平面中的至少一个,真正主方向与平面之间的角度将超过54度。
[0258]这示出于图16和图17中。图16示出通过垂直于X轴并与Y轴对齐的平面40(即,平面X’ =0)分割的偏移颜色空间(因此,偏移纹元值),图17示出通过垂直于Y轴并与X轴对齐的平面41 (即,平面Y’ =0)分割的偏移颜色空间。
[0259]如果需要,也可使用将颜色空间中的纹元值分割成两组的其它平面布置方式。 [0260]对于各个这样的平面,将平面一侧的所有纹理数据元素值相加(得到和VI),同样将平面另一侧的所有纹理数据元素值相加(得到和V2)。然后,确定在颜色空间中的这两个和点之间的向量V’:V’=V1-V2 0^V2-V1)。这针对所考虑的分割颜色空间的各个平面得到候选方向向量V’。
[0261]这示出于图16和图17中。
[0262]图16示出对于与Y轴对齐的平面40,所得的正和点45和负和点46 (尽管和值被除以10以使其拟合到相同的轴上)以及所得的方向向量47。
[0263]图17示出对于与X轴对齐的平面41,所得的正和点48和负和点49 (尽管和值同样被除以10以使其拟合到相同的轴上)以及所得的方向向量50。
[0264]尽管如图16和图17所示,方向向量V’47、50被确定为颜色空间中的正和点与负和点之间的方向,但是因为纹理数据元素值已基于其平均值偏移,所以正和值的大小必须等于负和值的大小(即,和Vl+V2=0)。因此,给定平面的向量方向V’(B卩,差V1-V2)将等于正(或负)(向量)和值的两倍(即,2*V1或2*V2)。这意味着可将所关注的平面的方向向量V’确定为从原点到正和值的点(或者从原点到负和值的点)(或者反之亦然)。因此,本实施方式仅计算正(或负)(向量)和值以推导所考虑的各个平面的方向向量V’。
[0265]可从图16和图17看出,这一处理将针对所考虑的二维颜色空间得到两个可能的候选方向向量。然后,将这些候选方向向量中的一个选为所考虑的纹理数据元素集合在颜色空间中的估计的主方向。
[0266]在本实施方式中,基于所确定的候选方向向量的相应的长度来选择哪一候选方向向量将用作所考虑的纹理数据元素集合在颜色空间中的估计的主方向。 申请人:已认识到,基于正与负和位置(或者等同地,正和或负和位置与原点)的最长方向向量将是所考虑的纹理数据元素值集合的主方向的最精确的估计。这可从图16和图17看出,其中可以看出,图17中使用与X轴对齐的平面确定的更长的方向向量50更接近地匹配图14中所示的所考虑的纹理数据元素值集合的主方向向量V的“理想”估计31。
[0267](总体上, 申请人:已认识到,对于生成真正主方向的差估计的平面,应该在相同方向上起促进作用的纹元值相反将彼此抵消(这可从图16和图17看出)。因此,如果利用分割颜色空间的多个不同的平面计算出多个估计,则作为主方向的差估计的方向向量将表现为比主方向的好估计的和向量短的和向量。)
[0268]例如,可根据需要利用点积以通常的欧几里得方法,或者通过计算各个向量的曼哈顿长度,来确定所确定的估计向量中的最长的一个(以避免乘法)。[0269]因此,本实施方式的方法通过以下处理估计纹理数据元素值集合的主方向:对于N维空间,挑选N个轴对齐的平面,各个平面垂直于空间的一个轴,对于各个平面P1、P2、P3..,计算估计的方向向量VI’、V2’、V3’。然后,取估计的方向向量中的最长的一个作为用于表示所关注的纹理数据元素集合在颜色空间中的主方向的方向。
[0270]因此,例如,对于3维RGB (红色-绿色-蓝色)颜色空间,将执行下面的计算:
[0271]-对于由红色=0限定的平面Pl;推导方向估计VI’是具有正红色分量的所有偏移纹元值T’之和。
[0272]-对于由绿色=0限定的平面P2;推导方向估计V2’是具有正绿色分量的所有偏移纹元值T’之和。
[0273]-对于由蓝色=0限定的平面P3;推导方向估计V3’是具有正蓝色分量的所有偏移纹元值T’之和。
[0274]对于所有这三个方向估计,为了计算所述估计所需的仅有计算是比较和相加。
[0275]对于4维空间(如使用RGBA颜色而非RGB颜色时所遇到的;例如,这发生于BC7和ASTC纹理压缩格式),则应该如下推导第四估计向量V4’:
[0276]-对于由α=0限定的平面Ρ4 ;推导方向估计V4’是具有正α分量的所有偏移纹元值Τ’之和。
[0277]然后,应该将估计的向量中(B卩,VI’、V2’或V3’中,或者VI’、V2’、V3’或V4’中)最长的一个选择作为用于表示所关注的纹理数据元素集合的主方向的方向向量。
[0278]图18是示出本实施方式的主方向估计处理的流程图。这一处理的输入是期望确定主方向的估计的纹理数据元素集合。如上所述,这一纹理数据元素集合可包括待编码的纹理数据元素块的所有纹理数据元素,或者待编码的纹理数据元素块的分区或子集的纹理数据元素。
[0279]如图18所示,该处理以这一步骤开始:计算待估计主方向的纹元集合中的纹元的所有纹元颜色Ti的平均颜色C (步骤60)。
[0280]下一步骤是用所有纹元颜色Ti减去平均颜色值C,以生成各个纹元的偏移纹元值T' i (步骤 61)。
[0281]然后,针对纹理数据元素集合,通过将平面索引j和找到的最佳主方向估计V’(步骤62)以及纹元索引i和当前方向估计V (步骤63)设定为O来开始方向寻找处理。
[0282]然后,存在针对所考虑的将颜色空间中的纹元分割成两组(将纹元的颜色空间分割成两部分)的第一平面计算(向量)和值的循环。因此,在步骤64,估算所考虑的纹元相对于所考虑的平面Pj的位置T’ i;并且如果纹元的偏移值T’,为正(即,其在平面Pj的正侧)(步骤65),则将纹元的偏移值T’ i与当前方向估计V相加(步骤66)。如果在步骤65,发现纹元T’,在平面Pj的负侧,则跳过加法步骤66。
[0283]然后,在步骤67使纹元索引递增,以移到所考虑的集合中的下一纹元。如果还未到达最后的纹元(步骤68),则处理循环回到位置估算步骤64,并对集合中的下一纹元执行相同的处理,以此类推,直到到达所考虑的纹元集合中的最后的纹元为止(步骤68)。
[0284]一旦已考虑集合中的最后的纹元,计算当前所考虑的平面的所确定的估计向量V的长度以及现有最佳方向向量估计V’的长度(步骤69 )并进行比较(步骤70 )。
[0285]如果当前主方向估计向量V的长度比先前最长的方向向量估计V’的长度长,则将当前主方向估计向量V设定为目前为止找到的最佳主方向向量V’(步骤71)。如果并非如此,则将先前最长的主方向向量估计V’保留为最佳主方向估计V’。
[0286]然后,处理进行至待考虑的下一平面并针对该平面重复(步骤72和73),以此类推,直到已考虑最后的平面为止,此时将找到的最长主方向向量估计V’选为将用于所考虑的纹理数据元素集合的主方向的估计(步骤74)。
[0287]一旦将用于纹理数据元素集合的主方向(B卩,将在确定待编码的纹理数据元素集合的端点颜色时使用的颜色空间中的方向)的估计已确定,则利用所确定的方向来确定将用于所关注的纹理数据元素集合的端点颜色值。这在本实施方式中通过使用所关注的纹理数据元素集合的平均颜色C以及所确定(选择)的估计主方向向量V’以形成将投影所述集合的纹理数据元素的颜色空间中的线来进行,如下:
[0288]1.定义颜色空间中的参数线,L=C+t*V’
[0289]2.将所有纹理数据元素投影到该线上;这基本上等同于针对线L上最靠近纹元的点寻找参数值t ;给定偏移纹元值T’ =T-C,参数t可被计算为t=dot (V’,T’) /dot (V’,V’),其中dotO表示通常的向量点积。
[0290]然后,使用通过将纹理数据元素的值投影到所确定的颜色空间中的线上而获得的最低和最高参数值t_low和t_high来推导将用于所关注的纹理数据元素集合的两个端点颜色El、E2,如下:
[0291]El =C+t_low*V
[0292]E2=C+t_high*V。
[0293]当然,如果需要,可使用利用所估计的主方向确定将用于纹理数据元素集合的端点颜色(或其它基础数据值)的其它布置方式。
[0294]这些主方向和端点值估计和确定处理可根据需要(例如)利用适当配置的专用硬件元件(处理电路),或者通过对可编程通用处理器(处理电路)编程使其按照所描述的方式操作,来实现。
[0295]本领域技术人员将理解,除了确定将使用哪些端点颜色之外,纹理数据元素的集合和块将需要以合适的方式编码,以使得解码器能够对编码的纹元块进行解码,以再现(至少近似于)原始纹元值。
[0296]因此,现在将描述本实施方式中所使用的对纹理数据元素(纹元)块进行编码(和解码)的格式。
[0297]概述
[0298]本实施方式使用纹理压缩格式,该格式被设计为提供适用于各种各样不同类型的内容以及各种各样的质量/比特率权衡的有损纹理压缩。该格式具有以下主要特征:
[0299].128比特的块大小
[0300].编码的块自包含(任何给定纹元完全由单个块的内容来限定)
[0301].设计为用于以下类型的纹理数据的压缩:
[0302]-每纹元具有1、2、3或4个分量(分别为亮度、亮度-a、RGB和RGB-α)的LDR (低动态范围)纹理数据
[0303]-每纹元具有1、3或4个分量的HDR(高动态范围)纹理数据
[0304].索引比特与颜色端点比特之间细粒级每块可调节的比特分配。[0305].2D 和 3D 变型。
[0306].各个块表示纹元的矩形或立方形覆盖面积(footprint)。覆盖面积尺寸确定此纹理格式的比特率,并且对于纹理整体而言是全局的。
[0307]2D变型所支持的覆盖面积尺寸为:
[0308]-4X4 (8bpp)
[0309]-5X4 (6.40bpp)
[0310]-5X5 (5.12bpp)
[0311]-6X5 (4.27bpp)
[0312]-6X6 (3.56bpp)
[0313]-8X5 (3.20bpp)
[0314]-8X6 (2.67bpp)
[0315]-10 X 5 (2.56bpp)
[0316]-10X6 (2.13bpp)
[0317]-8X8 (2bpp)
[0318]-10X8 (1.60bpp)
[0319]-10X10 (1.28bpp)
[0320]-12X10 (1.07bpp)
[0321]-12X12 (0.88bpp)
[0322]3D变型所支持的覆盖面积尺寸为:
[0323]-3X3X3 (4.74bpp)
[0324]-4X3X3 (3.56bpp)
[0325]-4X4X3 (2.67bpp)
[0326]-4X4X4 (2bpp)
[0327]-5X4X4 (1.60bpp)
[0328]-5X5X4 (1.28bpp)
[0329]-5X5X5 (1.02bpp)
[0330]-6X5X5 (0.85bpp)
[0331]-6X6X5 (0.71bpp)
[0332]-6X6X6 (0.59bpp)
[0333]所支持的纹理数据的类型(分量计数,LDR对HDR)不取决于覆盖面积尺寸;所有类型在所有尺寸下均可用。
[0334].利用分割图案生成函数的块分割;各个分区具有单独的一对端点颜色。该格式使得单个块内的不同分区能够具有不同的端点类型。该格式支持每块I至4个分区。
[0335].索引抽取:该格式使得能够仅针对一些纹元指定索引,而剩余纹元使用填充程序;这在较低比特率下尤其有用。
[0336].空范围(Void Extent):该格式提供编码以指示纹理内的大的空区域。
[0337].能够针对不同的Mip映射层次使用不同的数据率。
[0338]块的布局
[0339]如果块禁用分割,则编码的块具有下面的格式:
【权利要求】
1.一种针对将用于图形处理系统的待编码的纹理数据元素集合,确定所述纹理数据元素在数据空间中的方向的方法,所述方向将在确定基础数据值时使用,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合,该方法包括以下步骤: 针对所述数据空间中的将待编码的所述纹理数据元素集合分割成两组的至少一个平面,确定所述数据空间中的从所述数据空间中的基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面一侧的纹理数据元素的值的点到所述数据空间中的基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面另一侧的纹理数据元素的值的点的向量的方向;以及 利用针对所述数据空间中的将所述纹理数据元素集合分割成两组的所述至少一个平面中的至少一个、所述纹理数据元素的在所述数据空间中确定的所述方向,来确定所述数据空间中的将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合。
2.根据权利要求1所述的方法,其中,被编码的所述纹理数据元素集合包括纹理为了编码目的而被分割成的纹理数据元素块的所有纹理数据元素,或者纹理为了编码目的而被分割成的纹理数据元素块的纹理数据元素的子集。
3.根据权利要求1或2所述的方法,其中,针对所述数据空间中的将待编码的所述纹理数据元素集合分割成两组的至少一个平面,确定所述数据空间中的从所述数据空间中的基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面一侧的纹理数据元素的值的点到所述数据空间中的基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面另一侧的纹理数据元素的值的点的向量的方向的步骤包括以下步骤: 针对所述数据空间中的将待编码的所述纹理数据元素集合分割成两组的至少一个平面,确定所述数据空间中的从`待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面一侧的纹理数据元素的平均值在所述数据空间中的点到待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面另一侧的纹理数据元素的平均值在所述数据空间中的点的向量的方向。
4.根据权利要求1、2或3所述的方法,该方法还包括以下步骤:首先确定所考虑的纹理数据元素集合的平均纹理数据元素值,然后按照所确定的平均值使各个纹理数据元素的值偏移。
5.根据权利要求4所述的方法,其中,以下步骤: 针对所述数据空间中的将待编码的所述纹理数据元素集合分割成两组的至少一个平面,确定所述数据空间中的从所述数据空间中的基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面一侧的纹理数据元素的值的点到所述数据空间中的基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面另一侧的纹理数据元素的值的点的向量的方向;以及 利用针对所述数据空间中的将所述纹理数据元素集合分割成两组的所述至少一个平面中的至少一个、所述纹理数据元素的在所述数据空间中确定的所述方向,来确定所述数据空间中的将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合, 包括以下步骤: 针对所述数据空间中的将待编码的所述纹理数据元素集合的偏移值分割成两组的至少一个平面,确定所述数据空间中的所述数据空间中的原点与待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面一侧的纹理数据元素的偏移值之和在所述数据空间中的点之间的向量的方向;以及 利用针对将所述纹理数据元素集合的偏移值分割成两组的所述至少一个平面中的至少一个、所述纹理数据元素的在所述数据空间中确定的所述方向,来确定所述数据空间中的将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合。
6.根据前述权利要求中的任一项所述的方法,其中,确定了所述数据空间中的所述向量的方向的、所述数据空间中的分割所述纹理数据元素的各个平面垂直于所述数据空间的多个轴中的一个。
7.根据前述权利要求中的任一项所述的方法,该方法还包括以下步骤: 基于所述数据空间中的所述向量的长度,确定是否将针对已用于分割所述纹理数据元素值的平面确定的方向用作将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时使用。
8.根据前述权利要求中的任一项所述的方法,该方法包括以下步骤:针对所述数据空间中的分割所述纹理数据元素的多个不同的平面中的每一个确定所述数据空间中的向量的方向。
9.根据权利要求8所述的方法`,该方法还包括以下步骤:基于用于确定所述数据空间中的所述方向的所述向量在所述数据空间中的长度,选择针对所述数据空间中的将所述纹理数据元素分割成两组的所述多个不同的平面中的一个、所述纹理数据元素的在所述数据空间中确定的所述方向,作为所述数据空间中的将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合。
10.一种对用于图形处理系统的纹理映射进行编码的方法,该方法包括以下步骤: 将待编码的纹理映射分割成多个纹理数据元素块;以及 针对各个纹理数据元素块: 利用前述权利要求中的任一项所述的方法确定所述数据空间中的将在确定基础数据值时使用的至少一个方向,所述基础数据值将在对所述纹理数据元素块进行编码时使用; 利用针对所述纹理数据元素块确定的所述数据空间中的所述至少一个方向来推导将在对所述纹理数据元素块进行编码时使用的至少一个基础数据值;以及 利用推导出的所述至少一个基础数据值将所述纹理数据元素块编码为表示所述纹理数据元素块的纹理数据块。
11.根据权利要求10所述的方法,其中,利用针对所述纹理数据元素块确定的所述数据空间中的所述至少一个方向来推导将在对所述纹理数据元素块进行编码时使用的至少一个基础数据值的步骤包括以下步骤: 利用针对所述纹理数据元素块确定的所述数据空间中的所述至少一个方向来推导将在对所述纹理数据元素块进行编码时使用的一对端点数据值。
12.一种用于针对将用于图形处理系统的待编码的纹理数据元素集合,确定所述纹理数据元素在数据空间中的方向的设备,所述方向将在确定基础数据值时使用,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合,该设备包括: 处理电路,其被配置为: 针对所述数据空间中的将待编码的所述纹理数据元素集合分割成两组的至少一个平面,确定所述数据空间中的从所述数据空间中的基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面一侧的纹理数据元素的值的点到所述数据空间中的基于待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面另一侧的纹理数据元素的值的点的向量的方向;以及 利用针对所述数据空间中的将所述纹理数据元素集合分割成两组的所述至少一个平面中的至少一个、所述纹理数据元素的在所述数据空间中确定的所述方向,来确定所述数据空间中的将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合。
13.根据权利要求12所述的设备,其中,被编码的所述纹理数据元素集合包括纹理为了编码目的而被分割成的纹理数据元素块的所有纹理数据元素,或者纹理为了编码目的而被分割成的纹理数据元素块的纹理数据元素的子集。
14.根据权利要求12或13所述的设备,其中,所述处理电路被配置为: 针对所述数据空间中的将待编码的所述纹理数据元素集合分割成两组的至少一个平面,确定所述数据空间中的从待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面一侧的纹理数据元素的平均值在所述数据空间中的点到待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面另一侧的纹理数据元素的平均值在所述数据空间中的点的向量的方向。
15.根据权利要求12、1`3或14所述的设备,其中,所述处理电路还被配置为:首先确定所考虑的纹理数据元素集合的平均纹理数据元素值,然后按照所确定的平均值使各个纹理数据元素的值偏移。
16.根据权利要求15所述的设备,其中,所述处理电路被配置为: 针对所述数据空间中的将待编码的所述纹理数据元素集合的偏移值分割成两组的至少一个平面,确定所述数据空间中的所述数据空间中的原点与待编码的所述纹理数据元素集合中的值落在所述数据空间中的所述平面一侧的纹理数据元素的偏移值之和在所述数据空间中的点之间的向量的方向;以及 利用针对将所述纹理数据元素集合的偏移值分割成两组的所述至少一个平面中的至少一个、所述纹理数据元素的在所述数据空间中确定的所述方向,来确定所述数据空间中的将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集合。
17.根据权利要求12至16中的任一项所述的设备,其中,确定了所述数据空间中的所述向量的方向的、所述数据空间中的分割所述纹理数据元素的各个平面垂直于所述数据空间的多个轴中的一个。
18.根据权利要求12至17中的任一项所述的设备,其中,所述处理电路被配置为:基于所述数据空间中的所述向量的长度,确定是否将针对已用于分割所述纹理数据元素值的平面确定的方向用作将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时使用。
19.根据权利要求12至18中的任一项所述的设备,其中,所述处理电路被配置为:针对所述数据空间中的分割所述纹理数据元素的多个不同的平面中的每一个确定所述数据空间中的向量的方向。
20.根据权利要求19所述的设备,其中,所述处理电路被配置为:基于用于确定所述数据空间中的所述方向的所述向量在所述数据空间中的长度,选择针对所述数据空间中的将所述纹理数据元素分割成两组的所述多个不同的平面中的一个、所述纹理数据元素的在所述数据空间中确定的所述方向,作为所述数据空间中的将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素集合进行编码时用于所述纹理数据元素集口 ο
21.一种用于对用于图形处理系统的纹理映射进行编码的设备,该设备包括: 处理电路,其被配置为: 将待编码的纹理映射分割成多个纹理数据元素块; 并且被配置为,针对各个纹理数据元素块: 针对所述数据空间中的将待编码的所述纹理数据元素块分割成两组的至少一个平面,确定所述数据空间中的从所述数据空间中的基于待编码的所述纹理数据元素块中的值落在所述数据空间中的所述平面一侧的纹理数据元素的值的点到所述数据空间中的基于待编码的所述纹理数据元素块中的值落在所述数据空间中的所述平面另一侧的纹理数据元素的值的点的向量的方向; 利用针对所述数据空间中的将所`述纹理数据元素块分割成两组的所述至少一个平面中的至少一个、所述纹理数据元素的在所述数据空间中确定的所述方向,来确定所述数据空间中的将在确定基础数据值时使用的方向,所述基础数据值将在对所述纹理数据元素块进行编码时用于所述纹理数据元素块; 利用针对所述纹理数据元素块确定的所述数据空间中的所述至少一个方向来推导将在对所述纹理数据元素块进行编码时使用的至少一个基础数据值;以及 利用推导出的所述至少一个基础数据值将所述纹理数据元素块编码为表示所述纹理数据元素块的纹理数据块。
22.根据权利要求21所述的设备,其中,所述处理电路被配置为:利用针对所述纹理数据元素块确定的所述数据空间中的所述至少一个方向来推导将在对所述纹理数据元素块进行编码时使用的一对端点数据值。
23.根据权利要求21或22所述的设备,该设备还包括权利要求13至20中的任一项所述的特征。
24.一种包括计算机软件代码的计算机程序,当所述程序在数据处理装置中运行时,所述计算机软件代码用于执行权利要求1至11中的任一项所述的方法。
【文档编号】H04N19/186GK103533364SQ201310279623
【公开日】2014年1月22日 申请日期:2013年7月4日 优先权日:2012年7月4日
【发明者】J·尼斯塔德 申请人:Arm有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1