CN101010699A - 纹理编码装置、纹理解码装置、方法及程序 - Google Patents
纹理编码装置、纹理解码装置、方法及程序 Download PDFInfo
- Publication number
- CN101010699A CN101010699A CNA200680000717XA CN200680000717A CN101010699A CN 101010699 A CN101010699 A CN 101010699A CN A200680000717X A CNA200680000717X A CN A200680000717XA CN 200680000717 A CN200680000717 A CN 200680000717A CN 101010699 A CN101010699 A CN 101010699A
- Authority
- CN
- China
- Prior art keywords
- data item
- data
- blocks
- texture
- unit
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/94—Vector quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
纹理编码装置包括:纹理数据采集单元,其被配置为采集在多种不同条件下提供的纹理集的纹理数据;块分割单元,其被配置为将纹理数据分割为多个块数据项,块数据项中的每一个包含多个像素数据项,像素数据项的、与条件对应的值属于纹理集中的第一范围,且其像素位置属于纹理集中的第二范围;块数据编码单元,其被配置为对各个块数据项进行编码,以便产生多个编码块数据项;块数据连结单元,其被配置为对编码块数据项进行连结,以便产生纹理集的编码数据项。
Description
技术领域
本发明涉及三维(3D)计算机图形领域中具有高品质纹理映射技术(mapping technique)的纹理编码装置、纹理解码装置、方法和程序,尤其涉及纹理编码装置、纹理解码装置、方法和程序,它们通过对在多种条件下被采集或被创建的纹理数据进行编码来压缩数据量,或者在图形LSI上的纹理映射中有效率地对纹理数据进行解码和映射。
背景技术
近些年来,3D计算机图形(CG)技术取得了飞速的发展,使得看起来像实际拍摄的场景的、非常逼真的图形渲染成为可能。然而,用于电影或者电视的大多数高品质CG是以巨大的成本由其制作者长时间的体力劳动手工制成的。由于未来可能需要更多样的CG渲染,挑战在于以低成本容易地制作高品质的CG。
在CG渲染中,对织物、皮肤或头发进行渲染尤其困难。在这类有柔软质感的材料中,对物体的色彩或物体的自影(self shadow)进行表现非常重要,其取决于观看该物体的方向(视点方向)和光照的方向(光源方向)而变化。在近来常用的一种方法中,对实际存在的材料进行拍摄并对其特征进行再现,以便制作出逼真的CG。对于与视点方向或光源方向对应的表面质感的渲染,正在研究和开发被称为双向基准分布函数(bi-directional reference distribution function)(BRDF)、双向纹理函数(BTF)和多项式纹理映射(PTM)的建模方法(例如美国专利No.6,297,834)
当使用纹理数据对根据视点方向或光源方向变化的物体表面的光学特性进行渲染时,视点方向或光源方向的不同条件下的、数量庞大的纹理图像是必需的。因此,目前没有可以使用的实际系统。
这些方法都采用了通过对所采集的数据进行分析来得到函数模型的方法。然而,在对实际存在的材料的阴影或辉度的不规则变化进行转换时存在限制,并且,有很多问题还没有得到解决。最大的问题之一在于庞大的数据量。
发明内容
本发明的第一实施形态提供了一种纹理编码装置,该装置包括:纹理数据采集单元,其被配置为采集在多种不同条件下所提供的纹理集的纹理数据;块分割单元,其被配置为将纹理数据分割为多个块数据项,每个块数据项包含多个像素数据项,其中,像素数据项的、与所述条件对应的值属于纹理集中的第一范围,且其像素位置属于纹理集中的第二范围;块数据编码单元,其被配置为对各个块数据项进行编码,以便产生多个编码块数据项;块数据连结单元,其被配置为对编码块数据项进行连结,以便产生纹理集的编码数据项。
本发明的第二实施形态提供了一种纹理编码装置,该装置包括:纹理数据采集单元,其被配置为采集在多种不同条件下所提供的纹理集的纹理数据;块分割单元,其被配置为将纹理数据分割为多个块数据项,每个块数据项包含多个像素数据项,其中,像素数据项的、与所述条件对应的值属于纹理集中的第一范围,且其像素位置属于纹理集中的第二范围;块数据编码单元,其被配置为对各个块数据项进行编码,以便产生多个编码块数据项;误差计算单元,其被配置为计算各个编码块数据项的编码误差;比较单元,其被配置为对于各个编码块数据项将计算得到的编码误差与容许条件进行比较,其中,容许条件表示某个范围内的编码误差;块数据连结单元,其被配置为对计算所得的编码误差满足容许条件的编码块数据项进行连结,其中,将计算所得的编码误差不满足容许条件的各个块数据项分割为这样的块数据项:其与由块分割单元分割的块数据相比具有较小的数据量。
本发明的第三实施形态提供了一种纹理解码装置,该装置包括:编码数据采集单元,其被配置为采集在多种不同条件下所提供的纹理集的编码数据;指定数据采集单元,其被配置为采集用于指定像素位置的多个纹理坐标以及用于在所述条件中指定条件的条件参数;块数据载入单元,其被配置为从编码数据中载入与纹理坐标以及条件参数对应的块数据项;块数据解码单元,其被配置为对所载入的块数据项进行解码;像素数据计算单元,其被配置为基于解码得到的数据项计算多个像素数据项。
本发明的第四实施形态提供了一种纹理解码装置,该装置包括:编码数据采集单元,其被配置为采集在多种不同条件下所提供的纹理集的编码数据;编码数据转换单元,其被配置为将编码数据中包含的块的尺寸转换成固定的块尺寸;指定数据采集单元,其被配置为采集用于指定像素位置的多个纹理坐标以及用于在所述条件中指定条件的条件参数;块数据载入单元,其被配置为从转换得到的编码数据中载入与纹理坐标以及条件参数对应的块数据项;块数据解码单元,其被配置为对所载入的块数据项进行解码;像素数据计算单元,其被配置为基于解码得到的块数据项计算出多个像素数据项。
附图说明
图1为根据本发明第一实施例的纹理编码装置的框图;
图2为一流程图,其示出了根据本发明第一实施例的纹理编码装置的操作;
图3为示出了角度参数的视图,角度参数表示当图1所示输入单元采集纹理时的视点和光源位置;
图4示出了像素数据和代表矢量的分布;
图5示出了由对应于图4的编码方法进行编码的块数据的编码格式;
图6示出了使用矢量差的块数据编码;
图7示出了用对应于图6的编码方法进行编码的块数据的编码格式;
图8示出了使用内插比(interpolation ratio)的块数据编码;
图9示出了用对应于图8的编码方法进行编码的块数据的编码格式;
图10示出了使用索引(index)的块数据编码,其中,索引仅指示内插;
图11示出了用对应于图10的编码方法进行编码的块数据的编码格式;
图12示出了使用整个纹理的代码本(code book)或宏块(macro block)的块数据的编码格式;
图13示出了为各个矢量分量被分割的块数据的编码格式;
图14示出了纹理集的编码数据结构;
图15示出了图1所示纹理编码装置的处理概要;
图16示出了与图15对应的常规处理的概要;
图17为一流程图,其示出了在图2的步骤S203中计算的代表矢量的计算方法;
图18为一流程图,其示出了由根据本发明第二实施例的纹理编码装置进行的块分割方法;
图19为本发明第二实施例中的纹理编码装置的框图,该装置通过使用编码误差对块进行分割;
图20示出了编码数据结构,其包括在图19所示的纹理编码装置中使用的块寻址数据(block addressing data);
图21为根据本发明第三实施例的纹理解码装置的框图;
图22为一流程图,其示出了图21所示纹理解码装置的操作;
图23A和23B示出了基于
u和
v方向的纹理数据布局方法;
图24A和24B示出了基于θ方向的纹理数据布局方法;
图25A和25B示出了基于φ方向的纹理数据布局方法;
图26A和26B示出了一种方法,该方法对图24A和25A中的纹理数据布局略作修改;
图27为根据本发明第四实施例的纹理解码装置的框图;以及
图28示出了从可变块尺寸到固定块尺寸的转换。
具体实施例
下面参照附图详细介绍根据本发明的实施例的纹理编码装置、纹理解码装置、方法及程序。
根据实施例中的纹理编码装置、方法和程序,数据量能够得到压缩。根据该纹理解码装置、方法和程序,载入所需像素数据的处理速度也能得到提高。
根据本发明的实施例的纹理编码装置、纹理解码装置、方法及程序是这样的装置、方法及程序:其对在包括不同视点和光源在内的多种条件下采集或创建的纹理集进行编码或解码,并进行用于图形数据的纹理映射处理。
根据本发明的实施例的纹理编码装置、纹理解码装置、方法及程序能对根据视点方向或者光源方向变化的材料表面有效率地实施纹理渲染,并能适用于不同的条件或不同的分量。
适用于不同的条件表示本发明的实施例也能用于这样的信号:该信号不仅依赖于视点条件或光源条件而改变,也依赖于例如自然界中的时间、速度、加速度、压力、温度、湿度等不同的条件而改变。
适用于不同的分量表示本发明的实施例不仅能用于作为像素数据的色彩分量(color component),也能用于例如法向矢量分量、深度分量、透明度分量或照明效果分量。
(第一实施例)
在第一实施例中,将介绍纹理编码装置的一系列处理操作的实例。本实施例中的块分割单元以固定的块尺寸进行分割。将详细介绍用于对以固定尺寸分割的块数据进行编码的多种块数据编码装置的处理过程。
参照图1介绍根据本实施例的纹理编码装置的布置。
图1所示的纹理编码装置接收在多种不同的条件下采集或创建的纹理集,在像素位置方向和条件改变方向(例如光源方向和视点方向)上将该数据进行分割为块,并对各个块进行编码。
本实施例的纹理编码装置包括:输入单元101、块分割单元102、块数据编码单元103、块数据连结单元104和输出单元105。
输入单元101输入在多种不同的条件下采集或创建的纹理集的数据。
通过形成包含在由输入单元101输入的纹理集中具有接近的采集条件和接近的像素位置的多个像素数据的块,块分割单元102将纹理集的数据分割为多个块数据。
块数据编码单元103对由块分割单元102分割得到的各个块数据进行编码。
块数据连结单元104将由块数据编码单元103编码得到的块数据进行连结,以便产生纹理集的编码数据。
输出单元105输出由块数据连结单元104产生的、纹理集的编码数据。
参照图2介绍根据本实施例的纹理编码装置的操作。
<步骤S201>
输入单元101输入纹理集的数据。在图3所示的空间中,在以预定间隔改变视点和光源位置(即图3所示的θc、φc、θl和φl)的同时对纹理进行采集。
输入单元101在如表1所示改变角度的同时采集纹理。单位为度。在这种情况下,通过以20°的间隔改变视点和光源,在θ方向采集到18个纹理样本,同时,通过以10°的间隔改变视点和光源、直到70°,在φ方向采集到8个纹理样本。因此,总共采集到20,736(18×8×18×8)个纹理。如果纹理尺寸为256×256像素(24位彩色),数据量大约为3.8GB,实际上不能作为用于纹理映射的纹理材料得到处理。
表1
可以使用例如借助更高阶的纹理产生技术以小的纹理数据来表达任意尺寸的纹理的方法。在这种更高阶的纹理产生技术中,使用在多种不同的条件下采集或创建的纹理集,仅通过产生具有与各条件对应的任意尺寸的纹理集并保持小纹理集的数据来再现任意尺寸的纹理。如果纹理尺寸可以为32×32个像素,数据量大约为60MB。然而,该纹理数据还没被充分压缩,必须进一步受到压缩。
<步骤S202>
然后,块分割单元102将采集到的纹理集分割为块。在这种块分割处理中,具有接近的参数数值的像素数据被看作一个集合并被放入一个块中。这里的参数是指表示载入像素数据的位置或者条件的变量,包括表示水平纹理坐标的
u、表示垂直纹理坐标的
v、表示视点方向条件的θc或φc以及表示光源方向条件的θl或φl。在本实施例中,像素数据可通过使用六维参数载入:(u,v,θc,φc,θl,φl)。
可以任意地决定包含在一个块中的像素数据的数量。在本实施例中,数据被分割为具有固定尺寸的块。例如,假设在四维θc,φc,θl和φl中的每一个上两次在相同像素位置上对像素数据进行采样,将所采集的像素数据放在一个块中。在这种情况下,一个块数据具有表2所示的结构。
表2
u | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
v | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
θc | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 |
φc | 0 | 0 | 0 | 0 | 10 | 10 | 10 | 10 | 0 | 0 | 0 | 0 | 10 | 10 | 10 | 10 |
θl | 0 | 0 | 20 | 20 | 0 | 0 | 20 | 20 | 0 | 0 | 20 | 20 | 0 | 0 | 20 | 20 |
φl | 0 | 10 | 0 | 10 | 0 | 10 | 0 | 10 | 0 | 10 | 0 | 10 | 0 | 10 | 0 | 10 |
表2显示,16个像素数据被放在一个块中,包括在条件(u,v,θc,φc,θl,φl)=(0,0,0,0,0,0)下载入的像素数据和满足相应列的组合的像素数据。当块分割单元102完成这样的块构造时,例如,各自具有32×32像素的尺寸的20,736个纹理即21,233,644(=20,736×32×32)个像素数据被分割为1,327,104(=21,233,644÷16)个块数据。
块分割单元102也可以在u和v的维度上即在纹理空间方向上进行块分割。然而,在本实施例中,只有在相同像素位置上的像素数据被包含在一个块中。这是因为在相同像素位置上编码适用于上述更高阶的纹理产生技术。采用这种分割方法,能在编码数据中大致检查各个像素的特征,故而像素之间的相似性能被容易地检查出。因此,在对纹理集进行编码后,可在产生任意尺寸的纹理后完成到图形数据的映射。
<步骤S203和S204>
接着,块数据编码单元103对各个块数据进行编码。一直执行步骤S203,直到所有的块数据都被编码(步骤S204)。例如,在块数据编码处理中,使用矢量量化,从16个像素数据(色彩矢量数据)计算得到四个代表矢量。后文中将参照图17介绍这种代表矢量计算方法。将称作K-均值或LBG的公知矢量量化用作计算方法。
如果16个像素数据(阴影圆)具有如图4所示的分布,可通过矢量量化得到由实心圆表示的代表矢量。这样得到的代表矢量<C0>、<C1>、<C2>和<C3>被定义为块中的代码本数据(<A>表示“矢量A”;下文中将按照这种标记法表示矢量)。索引数据用2个比特表示[FC1],其表示由16个像素数据中的每个选中哪个代表矢量。
图5示出了编码块数据的格式。根据该规则,如果索引数据为“00”则选中<C0>、“01”选中<C1>、“10”选中<C2>、“11”选中<C3>。通过这种方式,根据索引数据的值选择用于解码的代表矢量。这是最为基本的编码方法。作为替代的是,可以使用下面所介绍的编码方法。这里介绍五个实例。
1.<<使用矢量差进行编码>>
用与上面介绍的相同的方法执行处理,直到得到四个代表矢量。然后,将代表矢量中的一个定义为基准矢量。将其余的代表矢量转换成为表示从基准矢量的变化量的矢量。图6示出了这种状态。在得到代表矢量<C0>、<C1>、<C2>和<C3>后,得到由
<S1>=<C1>-<C0>
<S2>=<C2>-<C1>
<S3>=<C3>-<C2>。
给出的三个矢量差<S1>、<S2>和<S3>。图7示出了具有代码本的编码数据,该代码本包含如此计算得到的代表矢量和矢量差。对于色彩随视点方向或光源方向的改变变化不大的材料来说,使用矢量差对数据进行编码的方法是非常有效的。这是因为矢量差仅需要表示一种变化量,并且,为了做到这一点,分配少量的比特就足够了。代表矢量的数量和矢量差的数量之间的平衡可以取决于色彩矢量分布而变化。当从代表矢量<C0>、<C1>、<C2>和<C3>中选出能够将矢量差最小化的基准矢量时,可进一步减少分配给每个矢量差的比特的数量。
2.<<使用内插比进行编码>>
用与上面介绍的相同的方法进行处理,直到得到四个代表矢量。然后,通过对其余代表矢量中的两个进行内插,进行近似表达一个代表矢量的计算。图8给出了详细的实例。在这种情况下,使用<C0>和<C1>,计算近似表示<C3>的内插比。从点<C3>到线段<C0><C1>画一条垂线,其垂足被定义为点<C3>’。内插比r3由下面的计算得到:
r3=|<C0><C3>’|/|<C0><C1>|
图9示出了具有代码本的编码数据,该代码本包含这样计算得到的代表矢量和内插比。对色彩根据视点方向或光源方向的变化线性改变的材料来说,使用内插比对数据进行编码的方法非常有效。这是因为,即使是在使用内插比对代表矢量进行近似时,误差非常小。另外,即使是在近似情况下也能使误差最小化的代表矢量被选作通过内插比进行近似的代表矢量。
3.<<使用仅指示内插的索引进行编码>>
假设16个像素数据(阴影圆)具有如图10所示的分布,矢量<P0>、<P1>和<P2>为能在下列条件(u,v,θc,φc,θl,φl)下载入的像素数据:
<P0>:(0,0,0,0,0,0)
<P1>:(0,0,0,10,0,0)
<P2>:(0,0,0,20,0,0)
也就是说,矢量<P0>、<P1>和<P2>是通过将作为视点方向条件的φc改变为0°、10°和20°得到的三个像素数据。在得到代表矢量前对这种分布进行检查。色彩矢量<P1>根本不是必要的,并可通过基于<P0>和<P2>的条件参数进行内插得到。因此,可仅使用基于条件参数指示内插的索引数据再现色彩矢量<P1>。即:
<P1>=0.5×<P0>+0.5×<P2>
实际上,通过使用代表矢量<C0>和<C2>再现<P0>和<P2>。
图11示出了由此编码的块数据的格式。可对索引数据进行分配,使得:如果索引数据为“00”则选中C0,“01”则选中C1,“10”则选中C2。如果索引数据为“11”,通过基于条件参数对其他像素数据进行内插得到代表矢量。在基于例如视点方向和光源方向等条件维度进行块构造时,这种方法可被视为非常有特色的编码。
4.<<使用整个纹理的代码本或宏块进行编码>>
上面已经介绍了几种编码方法。在某些情况下,块数据中计算得到的代码本数据的一部分与外围的块数据的一部分共有。在这种情况下,可对多个块数据所共有的代码本数据进行设置。几个外围块的集合称作宏块。宏块可具有整个纹理的代码本数据或共有的代码本数据。例如,假设在给定块中得到代表矢量C0、C1、C2、C3,且四个外围块也将C3用作代表矢量。这时,通过使用图12所示的格式进行编码,并将C3存储为宏块的代码本数据而不是块数据。这种编码方法必须谨慎使用,因为尽管可提高数据量压缩效率,但解码速度下降。
5.<<为各矢量分量分割的数据的编码>>
将参照图13介绍为每个矢量分量分割的数据的编码。每个像素的色彩矢量不仅可以用RBG表色系表示,也可以用不同的表色系表示。这里把能将色彩矢量分为辉度分量和色差分量的YUV表色系作为例子。根据视点方向或光源方向,像素的色彩取决于材料发生各种各样的变化。在某些材料中,辉度分量变化剧烈,色差分量变化缓和。在这种情况下,可进行如图13所示的编码。Y0、Y1、Y2或Y3被用作辉度分量。UV0被用作色差分量。由于色差分量在一个块中很少改变,总是不依赖于索引数据的值地使用UV0。辉度分量在一个块中变化很大。因此,用通常的方法存储四个代表矢量(在本实例中为标量值),并基于索引数据选择其中的一个。
如上面的实例所示,通过将大的代码量分配给变化剧烈的分量并将小的代码量分配给变化缓和的分量,可进行有效率的编码。
可用上面介绍的方式设置几种编码格式。通过适当地组合这些编码方法,可设置更加多样的编码格式。
在纹理数据中,编码格式可以是固定的,也可以是灵活可变的。当使用可变的格式时,作为头信息(header information)的、表示各块数据中所用格式的标识符是必需的。
<步骤S205和S206>
块数据连结单元104对编码块数据进行连结。当对用不同方法编码的块数据进行连结时,得到如图14所示的数据结构。头信息被存储在编码纹理数据中。头信息包括纹理尺寸、纹理集采集条件和编码格式。接着存储被连结到头信息的宏块数据。如果编码格式对每个宏块不变或不设置表示宏块的代码本,则不对宏块而是对块数据直接进行连结。如果为每个宏块指定编码格式,则在每个宏块的开始处存储头信息。如果设置代表宏块的代码本,则代码本数据紧接着头信息被存储。于是,每个宏块数据项中的块数据被连接起来。如果为每个块改变格式,首先存储头信息,接着存储代码本数据和索引数据。
最后,输出由此连结的纹理数据(步骤S206)。
图15示出了参照图2所介绍的纹理编码装置的处理概要。图16示出了常规纹理编码装置的处理概要,其与本实施例中的纹理编码装置的处理形成对比。从图15和图16之间的对比可以明显看出,本发明的实施例的纹理编码装置不仅进行纹理空间的块构造,还在考虑采集条件的维度的情况下进行块构造。因此,按照本实施例的纹理编码装置,通常可减小具有大负荷的纹理载入的频率。
接下来参照图17介绍步骤S203中的代表矢量计算方法。更详细的信息参见例如日本专利申请KOKAI No.2004-104621。
在初始设置(m=4,n=1,δ)(步骤S1701)后的处理中,进行集群(cluster)以便计算四个代表矢量。在连续将集群分为两部分时,计算出各个集群的分散(variance),并优先将具有大的分散的集群分为两部分(步骤S1702)。为了将给定集群分为两个部分,确定两个初始质心(centroid)(集群中心)(步骤S1703)。按照下面的步骤确定质心。
1.获取集群的重心(barycenter)g。
2.将距离g最远的元素定义为d0。
3.将距离d0最远的元素定义为d1。
4.分别将g与d0之间的1∶2内分点以及g与d1之间的1∶2内分点定义为C0和C1。
将RGB 3D空间中的欧几里德几何学距离用作两元素之间的距离。在步骤S1704到S1706的循环处理中,执行与作为公知集群算法的K-均值算法相同的处理。
采用上面介绍的过程,可以得到四个代表矢量<C0>、<C1>、<C2>和<C3>(步骤S1710)。
根据上面介绍的第一实施例,当在纹理数据中进行固定块分割时,通过对根据例如视点方向或光源方向等条件变化的纹理集进行编码,可对数据量进行压缩。另外,通过根据材料特性改变块分割方法,可提高压缩效果。
(第二实施例)
在第二实施例中,将介绍基于可变块尺寸对数据进行分割的纹理编码装置。特别地,将介绍如何由块分割单元102适应性地进行块分割。
在本实施例中,将介绍由图1所示纹理编码装置的块分割单元102进行的块分割(步骤S202)处理的实例。在第一实施例中,在纹理数据中进行基于固定块尺寸的块分割。在第二实施例中,对块尺寸进行适应性的改变。例如,下面两种方法可用于可变块分割。
1.<<基于分散值的可变块分割>>
第一种方法在不改变图1所述装置布置的情况下实现。块分割单元102首先执行这样的处理:检查应该执行哪些类型的块分割。图18示出了处理过程的实例。
首先,将纹理集的全部数据设置为一个大的块数据(步骤S1801)。计算出块数据项中存在的所有像素数据的分散值(步骤S1802)。判定分散值是否小于预设的阈值(步骤S1803)。如果步骤S1803中为是,则结束块分割处理而不改变当前的块分割状态。如果步骤S1803中为否,检测出增大块的分散的维度(步骤S1804)。具体而言,选出这样的维度:其依赖于该维度的变化的矢量差最大。在该维度上,将块分割为两部分(步骤S1805)。然后,流程回到步骤S1802中的处理。当所有的分割块具有小于阈值的分散值时,处理结束。
这是最基本的处理方法。初始状态的块可以是具有在某种程度上预定的尺寸的固定块。可将最小块尺寸而不是分散值的上限指定为结束条件。
2.<<基于编码误差的可变块分割>>
在第二种方法中,使用块分割单元102和块数据编码单元103确定分割方法。在这种情况下,必须对图1所示的装置布置略作修改。图19示出了修改后的装置布置。与图1所示的装置不同,将编码误差计算单元1901和编码误差比较单元1902添加到块数据编码单元103的后级。在图19中,与已经介绍的部件相同的参考数字表示相同的部分,并将省略对其的介绍。
编码误差计算单元1901执行与块数据编码单元103相同的处理,并通过将原始数据与解码数据进行比较来计算编码误差。
编码误差比较单元1902将编码误差计算单元1901计算出的编码误差与表示编码误差容许范围的容许条件进行比较。例如,容许条件定义为编码误差小于阈值。在这种情况下,由编码误差计算单元1901计算得到的编码误差小于阈值的块被输出到块数据连结单元104。对于编码误差等于或者大于阈值的块,处理返回到块分割单元102。也就是说,块分割单元102将该块分割为更小的块,并接着重新进行编码。换句话说,各个块数据被分割为与前一次相比具有较小数据量的数据,并被重新编码。
上面已经介绍了两种可变块分割方法。当用这种方法对块进行分割时,表示像素数据属于哪个块的“块寻址数据”是必须的,因为没有进行有规律的块分割。图20示出了包含块寻址数据的编码数据结构。为简化起见,不考虑块数据之外的代码本数据和宏块的概念。块寻址数据被存储在头信息和块数据之间。块寻址数据存有表示载入像素数据的参数和被分配给块数据的ID号(块号)之间的对应性的表数据。在对基于可变块尺寸编码的数据进行解码的处理中,块寻址数据对访问块数据起着重要的作用,下文将在第四实施例中对其进行介绍。
根据上面介绍的第二实施例,当在纹理数据中进行可变块分割时,通过对根据例如视点方向或光源方向等条件而改变的纹理集进行编码,数据量能够得到压缩。
由根据本发明第一或第二实施例的纹理编码装置编码的纹理集数据能被存储在数据库中,并通过网络向公众公开。
(第三实施例)
在第三实施例中,输入基于固定块尺寸编码的纹理集的数据。下面介绍如何对所输入的编码数据进行解码并将之映射到图形数据。在本实施例中,将介绍纹理解码装置(包括映射单元)的一系列处理操作的实例。
参照图21介绍根据本实施例的纹理解码装置。
首先介绍概要。图21所示的纹理解码装置接收由第一或第二实施例中所介绍的纹理编码装置编码的纹理数据,基于所指定的纹理坐标和条件参数对特定像素数据进行解码,并将解码数据映射到图形数据。
纹理解码装置包括输入单元2101、块数据载入单元2102、块数据解码单元2103、像素数据计算单元2104、映射单元2105和输出单元2106。
输入单元2101输入在多种不同条件下采集或创建的纹理集的编码数据。
块数据载入单元2102接收指定像素位置的纹理坐标和指定条件的条件参数,并从由输入单元2101输入的编码数据载入包含所指定数据的块数据。
块数据解码单元2103将由块数据载入单元2102所载入的块数据解码为第一或者第二实施例中所介绍的纹理编码装置的块数据编码单元103对其进行编码前的原始数据。
基于由块数据解码单元2103解码的数据,像素数据计算单元2104计算像素数据。
映射单元2105接收作为纹理映射目标的图形数据和指定纹理映射方法的映射参数,基于接收到的映射参数,将由像素数据计算单元2104计算得到的像素数据映射到所接收到的图形数据。
输出单元2106输出由映射装置映射的图形数据。
接下来参照图22介绍图21所示的纹理解码装置的操作。
<步骤S2201>
在本实施例的纹理解码装置中,首先,输入单元2101输入纹理集的编码数据。在输入时,输入单元2101读出编码数据的头信息,并检查纹理尺寸、纹理集采集条件和编码格式。
<步骤S2202>
接下来,块数据载入单元2102接收纹理坐标和条件参数。这些参数是从为图形数据的各顶点设置的纹理坐标以及例如相机位置或光源位置等场景信息(scene information)得到的。
<步骤S2203>
块数据载入单元2102载入块数据。在本实施例中,块分割是通过使用固定块尺寸进行的。因此,块数据载入单元2102能够基于接收到的纹理坐标
u和
v以及条件参数θc、φc、θl和φl访问包含像素数据的块数据。
注意,在某些情况下,所获得的条件参数并不完全匹配于纹理采集的原始条件。在这种情况下,有必要提取具有接近条件的所有现存像素数据并对它们进行内插。例如,将小于θc的最接近的纹理采样的条件定义为θc0,并将等于或大于θc的最接近的纹理采样的条件定义为θc1。类似地定义φc0,φc1,θl0,θl1,φl0和φl1。载入满足这些条件的所有像素数据。要载入的像素数据是下面的16个像素数据c0至c15。
c0=getPixel(θc0,φc0,θl0,φl0,us,vs)
c1=getPixel(θc0,φc0,θl0,φl1,us,vs)
c2=getPixel(θc0,φc0,θl1,φl0,us,vs)
c3=getPixel(θc0,φc0,θl1,φl1,us,vs)
c4=getPixel(θc0,φc1,θl0,φl0,us,vs)
c5=getPixel(θc0,φc1,θl0,φl1,us,vs)
c6=getPixel(θc0,φc1,θl1,φl0,us,vs)
c7=getPixel(θc0,φc1,θl1,φl1,us,vs)
c8=getPixel(θc1,φc0,θl0,φl0,us,vs)
c9=getPixel(θc1,φc0,θl0,φl1,us,vs)
c10=getPixel(θc1,φc0,θl1,φl0,us,vs)
c11=getPixel(θc1,φc0,θl1,φl1,us,vs)
c12=getPixel(θc1,φc1,θl0,φl0,us,vs)
c13=getPixel(θc1,φc1,θl0,φl1,us,vs)
c14=getPixel(θc1,φc1,θl1,φl0,us,vs)
c15=getPixel(θc1,φc1,θl1,φl1,us,vs)
其中,us和vs是本实例中输入的纹理坐标,getPixel是基于纹理坐标的6维参数和条件参数提取像素数据的函数。当按以下方式对16个像素数据进行内插时,最终能载入像素数据
c。
c=(1-∈0)×(1-∈1)×(1-∈2)×(1-∈3)×c0
+(1-∈0)×(1-∈1)×(1-∈2)×∈3×c1
+(1-∈0)×(1-∈1)×∈2×(1-∈3)×c2
+(1-∈0)×(1-∈1)×∈2×∈3×c3
+(1-∈0)×∈1×(1-∈2)×(1-∈3)×c4
+(1-∈0)×∈1×(1-∈2)×∈3×c5
+(1-∈0)×∈1×∈2×(1-∈3)×c6
+(1-∈0)×∈1×∈2×∈3×c7
+∈0×(1-∈1)×(1-∈2)×(1-∈3)×c8
+∈0×(1-∈1)×(1-∈2)×∈3×c9
+∈0×(1-∈1)×∈2×(1-∈3)×c10
+∈0×(1-∈1)×∈2×∈3×c11
+∈0×∈1×(1-∈2)×(1-∈3)×c12
+∈0×∈1×(1-∈2)×∈3×c13
+∈0×∈1×∈2×(1-∈3)×c14
+∈0×∈1×∈2×∈3×c15
内插比∈0、∈1、∈2和∈3按以下方法计算。
∈0=(θc-θc0)/(θc1-θc0),
∈1=(φc-φc0)/(φc1-φc0),
∈2=(θl-θl0)/(θl1-θl0),
∈3=(φl-φl0)/(φl1-φl0)
如上所述,为了计算出一个像素数据,必须装入16个像素数据并对之进行内插。值得注意的一点是,本实施例中所建议的编码数据是在同一块数据中存在邻近的条件的像素数据。因此,所有的16个像素数据有时包含在同一块数据中。在这种情况下,能够仅通过载入一个块数据计算内插的像素数据。然而,某些情况下,必须提取2到16个块数据。因此,必须根据条件参数改变提取次数。
已经知道,纹理载入指令(提取像素数据或块数据的处理)的数量通常影响图形LSI中的执行速度。当使得纹理载入指令的数量尽可能少时,能够提高渲染速度。因此,本发明的实施例中所建议的编码方法是一种实现更快速的纹理映射的方法。
<步骤S2204>
块数据解码单元2103对块数据进行解码。对块数据进行解码并提取特定像素数据的方法根据编码格式稍有改变。然而,解码方法基本上是参照要提取的像素的索引数据来确定的。直接提取由索引数据指示的代表矢量,或提取从基准矢量改变了矢量差的矢量。作为替代的是,提取通过对两个矢量进行内插得到的矢量。基于在编码时确定的规则对矢量进行解码。
<步骤S2205>
像素数据计算单元2104提取像素数据。如上所述,使用上述方程式对16个像素数据进行内插。
<步骤S2206、S2207和S2208>
映射单元2105接收图形数据和映射参数(步骤S2206),并根据映射参数映射像素数据(步骤S2207)。最后,输出单元2106输出经过纹理映射的图形数据(步骤S2208)。
下面参照图23A、23B、24A、24B、25A、25B、26A和26B介绍取决于纹理布局方法的纹理映射处理速度(渲染性能)的变化。
图形LSI上的渲染性能在很大程度上依赖于纹理布局方法。在本实施例中,将用6维参数(u,v,θc,φc,θl,φl)表示的纹理取作更高阶纹理的实例。像素数据载入的次数或对硬件上的纹理缓冲的命中率(hit ratio)取决于图形LSI的存储器中存储的纹理数据的布局而改变。渲染性能也取决于纹理布局而变化。即使在对更高阶纹理进行编码时,有必要在考虑到这一点的情况下对块数据进行分割和连结。这也适用于无压缩的更高阶纹理。
下面介绍纹理布局方法之间的不同。图23A示出了2D纹理,其中,具有
u和
v方向的变化总和的纹理(所谓的正常纹理)依照θ方向的变化块状(as tiles)布置,并依照φ方向的变化块状布置。在这种布局方法中,与
u和
v方向的变化对应的像素数据被存储在邻近的像素位置上。因此,通过使用图形LSI的双线性函数,可高速提取内插的像素数据。然而,如果产生更高阶的纹理并由小的纹理采样表示任意尺寸的更高阶纹理,
u和
v位置由索引确定。不总是指定连续的
u或
v值。因此,不能使用图形LSI的双线性函数。
另一方面,与θ或φ方向的变化对应的像素数据被存储在单独的像素位置上。因此,必1须通过计算纹理坐标多次提取像素数据,且必须在软件上进行内插计算。纹理缓冲命中率将被考虑。命中率依赖于在获取被渲染帧的邻近像素值时参照的纹理坐标的接近度来确定。因此,在图23A所示的布局方法中能够容易地命中纹理缓冲。这是因为
u和
v方向上的邻近像素在大多数情况下具有相似的θ或φ条件。
图23B示出了3D纹理,其中,具有
u和
v方向的变化总和的纹理按照φ方向的变化块状布置,并按照θ方向的变化在层方向(高度方向)上堆叠。在这种布局中,除
u和
v方向上的双线性外,θl方向的内插也可以由硬件完成。也就是说,可以执行使用3D纹理的三线性函数的内插计算。因此,与图23A相比,纹理载入的频率可被降低。纹理缓冲命中率与图23A并非那么不同。由于纹理载入的频率降低,因此,更快的渲染成为可能。
图24A和25A示出了2D纹理,其中,在θ和φ方向具有变化总和的纹理按照φ和θ方向的变化块状布置,并沿
u和
v方向的变化块状布置。在这些布局方法中,与θ和φ方向的变化对应的像素数据被存储在邻近的像素位置上。因此,通过使用图形LSI的双线性函数,可高速提取内插像素数据。另一方面,与
u或
v方向、φ方向、θ方向的变化对应的像素数据被存储在单独的像素位置上。因此,必须通过计算纹理坐标多次提取像素数据,且内插计算必须在软件中进行。
纹理缓冲命中率比图23A所示的布局方法要低,这是因为与
u或
v方向的变化对应的像素数据被存储在单独的像素位置上。为了对之进行改进,将布局改为如图26A或26B所示。于是,纹理缓冲命中率提高,且渲染性能能够得到改善。由于与
u或
v方向的变化对应的块被布置在更近的位置上,在获取被渲染帧的邻近像素值时参照更近的纹理坐标。
图24B和25B示出了3D纹理,其中,具有θ和φ方向的变化总和的纹理按照
u和
v方向的变化块状布置,并按照φ和θ方向的变化在层方向(高度方向)上堆叠。在这些布局方法中,除θ和φ方向上的双线性之外,也能由硬件完成φl和θl方向上的内插。也就是说,可进行使用3D纹理的三线性函数的内插计算。因此,参照图24B和25B,与图25A和26A相比,纹理载入的频率可被降低。与图25A和26A相比,能使纹理缓冲命中率更高。在2D纹理中,与
u和
v方向的变化对应的块位于单独的位置。在3D纹理中,存在具有接近层方向(高度方向)的uv以及接近的θl和φl的像素数据。
如上所述,纹理缓冲命中率或纹理载入的频率取决于纹理布局方法而变化,因此渲染性能发生很大变化。当在考虑到这种特性的情况下确定纹理布局方法并执行块构造方法判定、编码以及块数据连结时,能更有效率地进行更高阶纹理的映射。
例如,在图24A中,当数据在θc和θl方向按二维方式被分割为块并被编码时,通过图24A所示的布局方法,编码数据可被存储在图形LSI的存储器中。在映射时,可使用硬件的双线性函数。
根据上面介绍的第三实施例,当输入基于固定块尺寸进行编码的纹理集的数据时,通过对按照例如视点方向或光源方向等条件变化的纹理集进行编码,可以提高图形LSI上的纹理映射处理速度。
(第四实施例)
在第四实施例中,将介绍纹理解码装置(包括映射单元)在基于可变块尺寸编码的纹理集数据被输入时的处理。尤其是将介绍如何使块数据载入单元访问块数据。
将介绍根据本实施例的纹理解码装置的操作。纹理解码装置中包括的块与图21中所示的相同。将介绍由块数据载入单元2102进行的块数据载入(步骤S2203)的处理实例。
在第三实施例中,对基于固定块尺寸编码的纹理数据进行处理。在第四实施例中,对基于可变块尺寸编码的纹理数据进行处理。例如,下面两种方法可用于适当地访问并载入基于可变块尺寸编码的纹理数据中的块数据。
1.<<使用块寻址数据进行块数据载入>>
如第二实施例中所介绍,当进行基于可变块尺寸的编码时,块寻址数据被包含在编码数据中。因此,在纹理坐标和条件参数被输入后,块数据载入单元2102可以通过将所输入的六维参数与块寻址数据进行对照来检查将被访问的块数据。访问了指定的块数据之后的处理与第三实施例中所介绍的相同。
2.<<使用编码数据转换进行块数据载入>>
在第二种方法中,在编码数据转换处理后载入块数据。在这种情况下,必须对图22所示的装置布置稍加修改。图27示出了修改后的装置布置。图27中仅编码数据转换单元2701与图21不同。编码数据转换单元2701被设置在块数据载入单元2102的前级和输入单元2101的后级。
编码数据转换单元2701将基于可变块尺寸编码的纹理数据转换为固定块尺寸的编码数据。编码数据转换单元2701使用块寻址数据访问可变尺寸的块数据。在转换成固定尺寸之后,块寻址数据不是必需的,因此被删除。
图28原理性地示出了从可变块尺寸到固定块尺寸的转换。为了将基于可变尺寸分割的块数据转换成较大尺寸,必须进行与重新编码处理具有相同量的计算。另一方面,通过如同解码处理一样简单的计算,可实现向与基于可变尺寸分割的块相比具有较小尺寸的转换。因此,进行后一种转换。在转换为固定尺寸的编码数据之后的处理与第三实施例中所介绍的相同。
已经介绍了可变块尺寸的编码数据的两种块数据载入方法。在使用块寻址数据的方法中,可以用小的数据量完成映射。然而,在每个像素处理中,必须参照块寻址数据。这表明,纹理载入指令的数量增加了一个,影响了渲染速度。
在使用编码数据转换的方法中,在将数据存入图形LSI的内部视频存储器的前一刻进行向固定块尺寸数据的转换。因此,能用相对较高的速度进行渲染。然而,当使用固定块尺寸时,数据量变得相对较大。由于所有这些方法既有优点又有缺点,必须根据纹理材料的复杂性或图形LSI的规格适当地对它们进行选择。
根据上面介绍的第四实施例,当基于可变块尺寸编码的纹理集数据被输入时,通过对根据例如视点方向或者光源方向等条件改变的纹理集进行编码,可提高图形LSI上的纹理映射处理速度。
本领域技术人员可容易地想到另外的优点和修改。因此,本发明在其更宽的实施形态上不限于这里示出和介绍的具体细节和代表性实施例。因此,在不脱离所附权利要求及其等同物所限定的一般发明构思的精神或范围的情况下,可做出各种不同的修改。
Claims (41)
1.一种纹理编码装置,该装置包括:
纹理数据采集单元,其被配置为采集在多种不同条件下所提供的纹理集的纹理数据;
块分割单元,其被配置为将所述纹理数据分割为多个块数据项,所述块数据项中的每一个包含多个像素数据项,所述像素数据项的、与所述条件对应的值属于所述纹理集的第一范围,且所述像素数据项的像素位置属于所述纹理集的第二范围;
块数据编码单元,其被配置为对各个所述块数据项进行编码,以便产生多个编码块数据项;以及
块数据连结单元,其被配置为对所述编码块数据项进行连结,以便产生所述纹理集的编码数据项。
2.如权利要求1所述的装置,其中,基于所述条件以及在其中像素位置具有值的像素数据项,所述块分割单元对块进行构造,所述块包含所述像素数据项和固定数量的、具有所述像素位置且其条件在一范围内变化的像素数据项。
3.如权利要求1所述的装置,其中,所述块分割单元包括:
计算单元,其被配置为计算所述像素数据项的分散值;
比较单元,其被配置为将各个所述分散值与给定值进行比较,以便确定各个所述分散值是否小于所述给定值;
检测单元,其被配置为:当所述块包含具有不小于所述给定值的分散值的像素数据项时,检测出所述像素数据项的维度中的一个,所述一个维度与所述条件中的一个对应并具有最大的分散值;以及
划分单元,其被配置为在所述检测到的一个维度上将所述纹理数据分为两个部分,
所述计算单元为各自被分为两部分的所述纹理数据中的每一个计算分散值。
4.如权利要求1所述的装置,其中,所述块数据编码单元通过矢量量化对各个所述块数据项进行编码。
5.如权利要求1所述的装置,其中,所述块数据编码单元包括:
矢量计算单元,其被配置为通过矢量量化由各个所述块数据项计算多个代表矢量;以及
创建单元,其被配置为创建多个代码本数据项和索引数据项,所述多个代码本数据项包含与各个所述块数据项对应的所述多个代表矢量,所述索引数据项各自作为表示对应性的信息,其中,所述对应性是在各个所述块数据项中的各个所述像素数据项与各个所述代表矢量之间的。
6.如权利要求1所述的装置,其中,所述块数据编码单元包括创建单元,所述创建单元被配置为创建多个代码本数据项以及多个索引数据项,且所述编码块数据包含所述代码本数据项和所述索引数据项,其中,所述多个代码本数据项被用作解码用的原始数据,所述多个索引数据项用于识别各个像素的解码方法。
7.如权利要求6所述的装置,其中,所述创建单元在各个所述代码本数据项中包括代表矢量、矢量差和内插比,所述代表矢量指定所述块数据项中的代表性像素数据项,所述矢量差含有与一代表矢量的差,所述内插比用于对所述代表矢量进行内插。
8.如权利要求7所述的装置,其中,所述创建单元在所述索引数据项中包含:表示所述代表矢量的索引;表示通过将所述矢量差加到一代表矢量所得到的矢量的索引;表示代表矢量的内插矢量的索引,其是通过使用所述内插比得到的;在不指出解码方法的情况下,表示来自相邻像素数据项的内插的索引。
9.如权利要求5所述的装置,其中,所述块数据编码单元包括:
附加单元,其被配置为将所述代码本数据项附加到宏块或所述纹理集,所述宏块包括多个块;以及
创建单元,其被配置为创建各像素的多个索引数据项,所述索引数据项指出解码方法,所述解码方法使用所述纹理集的所述代码本数据项以及各个宏块的所述代码本数据项中的一个,所述索引数据项被加到所述块中的所述代码本数据项。
10.如权利要求5所述的装置,其中,所述块数据编码单元对所述块数据项进行编码,其中,各个所述像素数据项的矢量的分量包括用于创建图形数据项的矢量信息、色彩信息、透明度信息、法向矢量信息、深度信息及照明效果信息中的一个。
11.如权利要求10所述的装置,其中,所述块数据编码单元对所述分量的至少两个不同分量的组合进行矢量化,根据各个所述分量的变化特性,将所述索引数据项分配给所述分量或将所述代码本数据项分配给所述分量。
12.如权利要求10所述的装置,其中,所述块数据编码单元将一代码量分配给所述分量中以不小于变化量变化的一个,该代码量大于向所述分量中以小于所述变化量变化的分量分配的代码量。
13.一种纹理编码装置,该装置包括:
纹理数据采集单元,其被配置为采集在多种不同条件下提供的纹理集的纹理数据;
块分割单元,其被配置为将所述纹理数据分割为多个块数据项,所述块数据项中的每一个包含多个像素数据项,所述像素数据项的、与所述条件对应的值属于所述纹理集的第一范围,且所述像素数据项的像素位置属于所述纹理集的第二范围;
块数据编码单元,其被配置为对各个所述块数据项进行编码,以便产生多个编码块数据项;
误差计算单元,其被配置为计算各个所述编码块数据项的编码误差;
比较单元,其被配置为:对于各个所述编码块数据项,将所述计算得到的编码误差与容许条件进行比较,其中,所述容许条件表示一范围内的编码误差;以及
块数据连结单元,其被配置为对计算得到的编码误差满足所述容许条件的所述编码块数据项进行连结,
其中,将计算得到的编码误差不满足所述容许条件的各个所述块数据项分割为这样的块数据项:其与由所述块分割单元分割的块数据相比具有较小的数据量。
14.如权利要求13所述的装置,其中,所述块数据编码单元通过矢量量化对各个所述块数据项进行编码。
15.如权利要求13所述的装置,其中,所述块数据编码单元包括:
矢量计算单元,其被配置为通过矢量量化由各个所述块数据项计算多个代表矢量;以及
创建单元,其被配置为创建多个代码本数据项以及索引数据项,所述多个代码本数据项包含与各个所述块数据项对应的所述多个代表矢量,所述索引数据项各自用作表示对应性的信息,其中,所述对应性是在各个所述块数据项中的各个所述像素数据项与各个所述代表矢量之间的。
16.如权利要求13所述的装置,其中,所述块数据编码单元包括创建单元,所述创建单元被配置为创建多个代码本数据项以及多个索引数据项,且所述编码块数据包括所述代码本数据项和所述索引数据项,其中,所述多个代码本数据项被用作用于解码的原始数据,所述多个索引数据项用于识别各个像素的解码方法。
17.如权利要求16所述的装置,其中,所述创建单元在各个所述代码本数据项中包括:表示所述块数据项中的代表性像素数据项的代表矢量、含有与一代表矢量的差的矢量差、用于对所述代表矢量进行内插的内插比。
18.如权利要求17所述的装置,其中,所述创建单元在所述索引数据项中包括:表示所述代表矢量的索引;表示将所述矢量差加到一代表矢量所得到的矢量的索引;表示代表矢量的内插矢量的索引,其是通过使用所述内插比得到的;在不指出解码方法的情况下,表示来自相邻像素数据项的内插的索引。
19.如权利要求15所述的装置,其中,所述块数据编码单元包括:
附加单元,其被配置为将所述代码本数据项附加到宏块或所述纹理集,所述宏块包括多个块;以及
创建单元,其被配置为创建各个像素的多个索引数据项,所述索引数据项指出解码方法,所述解码方法使用所述纹理集的所述代码本数据项以及各个宏块的所述代码本数据项中的一个,所述索引数据项被加到所述块中的所述代码本数据项中。
20.如权利要求15所述的装置,其中,所述块数据编码单元对所述块数据项进行编码,其中,各个所述像素数据项的矢量的分量包括用于创建图形数据项的矢量信息、色彩信息、透明度信息、法向矢量信息、深度信息以及照明效果信息中的一个。
21.如权利要求20所述的装置,其中,所述块数据编码单元对所述分量的至少两个不同分量的组合进行矢量化,并根据各个所述分量的变化特性,将所述索引数据项分配给所述分量或将所述代码本数据项分配给所述分量。
22.如权利要求20所述的装置,其中,所述块数据编码单元将一代码量分配给所述分量中以不小于变化量变化的一个,该代码量大于向所述分量中以小于所述变化量变化的分量分配的代码量。
23.一种纹理解码装置,该装置包括:
编码数据采集单元,其被配置为采集在多种不同条件下提供的纹理集的编码数据;
指定数据采集单元,其被配置为采集用于指定像素位置的多个纹理坐标以及用于在所述条件中指定条件的条件参数;
块数据载入单元,其被配置为从所述编码数据中载入与所述纹理坐标以及所述条件参数对应的块数据项;
块数据解码单元,其被配置为对所述载入的块数据项进行解码;以及
像素数据计算单元,其被配置为基于所述解码得到的数据项计算多个像素数据项。
24.如权利要求23所述的装置,该装置还包括:
采集单元,其被配置为采集作为纹理映射的目标的图形数据项以及指定所述纹理映射的方法的映射参数;
映射单元,其被配置为通过参照所述映射参数将所述像素数据项映射到所述图形数据项;以及
图形数据输出单元,其被配置为输出所述映射得到的图形数据项。
25.如权利要求23所述的装置,其中:
所述编码数据采集单元采集由纹理编码装置使用权利要求2所述的块分割单元进行编码的所述数据项,且
所述块数据载入单元访问按照权利要求2所述的块构造的所述块数据项。
26.如权利要求23所述的装置,其中:
所述编码数据采集单元采集由纹理编码装置使用权利要求3所述的块分割单元进行编码的所述数据项,且
除所述纹理坐标和所述条件参数外,所述块数据载入单元采集作为表数据项的块寻址数据项,并基于所述纹理坐标、所述条件参数和所述块寻址数据项,通过确定所述块数据项来载入所述块数据项,其中,所述表数据项用于基于所述纹理坐标和所述条件参数确定将被访问的所述块数据项。
27.如权利要求23所述的装置,其中,如果指定所述条件的所述条件参数与所述编码纹理集中的采集条件或创建条件不一致,所述块数据载入单元访问至少两个块数据项,基于所述纹理坐标、所述条件参数和块寻址数据项确定将被访问的块数据项的数量,并载入所有必要的块数据项,且当所述编码数据在块中被构造时,载入与所述条件对应的所述像素数据项,其中,所述块寻址数据项作为基于所述纹理坐标和所述条件参数确定将被访问的所述块数据项的表数据项。
28.一种纹理解码装置,该装置包括:
编码数据采集单元,其被配置为采集在多种不同条件下提供的纹理集的编码数据;
编码数据转换单元,其被配置为将所述编码数据中包含的块的尺寸转换成固定的块尺寸;
指定数据采集单元,其被配置为采集用于指定像素位置的多个纹理坐标和用于在所述条件中指定条件的条件参数;
块数据载入单元,其被配置为从所述转换得到的编码数据中载入与所述纹理坐标以及所述条件参数对应的块数据项;
块数据解码单元,其被配置为对所述载入的块数据项进行解码;以及
像素数据计算单元,其被配置为基于所述解码得到的块数据项计算多个像素数据项。
29.如权利要求28所述的装置,其中,所述编码数据转换单元将根据权利要求3被分割的所述编码数据转换成根据权利要求2在块中被构造的所述编码数据。
30.如权利要求28所述的装置,该装置还包括:
采集单元,其被配置为采集作为纹理映射的目标的图形数据项和指定所述纹理映射的方法的映射参数;
映射单元,其被配置为通过参照所述映射参数将所述像素数据项映射到到所述图形数据项;
图形数据输出单元,其被配置为输出所述映射得到的图形数据项。
31.如权利要求28所述的装置,其中:
所述编码数据采集单元采集由纹理编码装置使用权利要求2所述的块分割单元进行编码的数据,且
所述块数据载入单元访问按照权利要求2所述的块构造的所述块数据项。
32.如权利要求28所述的装置,其中:
所述编码数据采集单元采集由纹理编码装置使用权利要求3所述的块分割单元进行编码的数据,且
除所述纹理坐标和所述条件参数之外,所述块数据载入单元采集作为表数据项的块寻址数据项,并基于所述纹理坐标、所述条件参数和所述块寻址数据,通过确定所述块数据项来载入所述块数据项,其中,所述表数据项用于基于所述纹理坐标和所述条件参数确定将被访问的所述块数据项。
33.如权利要求28所述的装置,其中,如果指定所述条件的所述条件参数与所述编码纹理集中的采集条件或创建条件不一致,所述块数据载入单元访问至少两个块数据项,基于所述纹理坐标、所述条件参数和块寻址数据项确定将被访问的块数据项的数量,并载入所有必要的块数据项,且当所述编码数据在块中被构造时,载入与所述条件对应的所述像素数据项,其中,所述块寻址数据项作为基于所述纹理坐标和所述条件参数确定将被访问的所述块数据项的表数据项。
34.一种纹理编码方法,该方法包括:
采集在多种不同条件下提供的纹理集的纹理数据;
将所述纹理数据分割为多个块数据项,所述块数据项中的每一个包含多个像素数据项,所述像素数据项的、与所述条件对应的值属于所述纹理集的第一范围,且所述像素数据项的像素位置属于所述纹理集的第二范围;
对各个所述块数据项进行编码;以及
对所述编码块数据项进行连结,以便产生所述纹理集的编码数据项。
35.一种纹理编码方法,该方法包括:
采集在多种不同条件下提供的纹理集的纹理数据;
将所述纹理数据分割为多个块数据项,所述块数据项中的每一个包含多个像素数据项,所述像素数据项的、与所述条件对应的值属于所述纹理集的第一范围,且所述像素数据项的像素位置属于所述纹理集的第二范围;
对各个所述块数据项进行编码,以便产生多个编码块数据项;
计算各个所述编码块数据项的编码误差;
为所述编码块数据项中的每一个将所述计算得到的编码误差与容许条件进行比较,其中,所述容许条件表示一范围内的编码误差;以及
对计算得到的编码误差满足所述容许条件的所述编码块数据项进行连结,
其中,将计算得到的编码误差不满足所述容许条件的各个所述块数据项分割为这样的块数据项:其与被分割的块数据相比具有较小的数据量。
36.一种纹理解码方法,该方法包括:
采集在多种不同条件下提供的纹理集的编码数据;
采集用于指定像素位置的多个纹理坐标和用于在所述条件中指定条件的条件参数;
从所述编码数据中载入与所述纹理坐标以及所述条件参数对应的块数据项;
对所述载入的块数据项进行解码;以及
基于所述解码得到的数据项,计算多个像素数据项。
37.一种纹理解码方法,该方法包括:
采集在多种不同条件下提供的纹理集的编码数据;
将包括在所述编码数据中的块的尺寸转换成固定的块尺寸;
采集用于指定像素位置的多个纹理坐标和用于在所述条件中指定条件的条件参数;
从所述转换得到的编码数据中载入与所述纹理坐标以及所述条件参数对应的块数据项;
对所述载入的块数据项进行解码;以及
基于所述解码得到的块数据项,计算多个像素数据项。
38.一种存储在计算机可读介质中的纹理编码程序,该程序包括:
指示计算机采集在多种不同条件下提供的纹理集的纹理数据的装置;
指示所述计算机将所述纹理数据分割为多个块数据项的装置,所述块数据项中的每一个包含多个像素数据项,所述像素数据项的、与所述条件对应的值属于所述纹理集的第一范围,且所述像素数据项的像素位置属于所述纹理集的第二范围;
指示所述计算机对各个所述块数据项进行编码以便产生多个编码块数据项的装置;以及
指示所述计算机对所述编码块数据项进行连结以便产生所述纹理集的编码数据项的装置。
39.一种存储在计算机可读介质中的纹理编码程序,该程序包括:
指示一计算机采集在多种不同条件下提供的纹理集的纹理数据的装置;
指示所述计算机将所述纹理数据分割为多个块数据项的装置,所述块数据项中的每一个包含多个像素数据项,所述像素数据项的、与所述条件对应的值属于所述纹理集的第一范围,且所述像素数据项的像素位置属于所述纹理集的第二范围;
指示所述计算机对各个所述块数据项进行编码以便产生多个编码块数据项的装置;
指示所述计算机计算各个所述编码块数据项的编码误差的装置;
指示所述计算机为各个所述编码块数据项将所述计算得到的编码误差与容许条件进行比较的装置,其中,所述容许条件表示一范围内的编码误差;以及
指示所述计算机对计算得到的编码误差满足所述容许条件的所述编码块数据项进行连结的装置,
其中,计算得到的编码误差不满足所述容许条件的各个所述块数据项被分割为这样的块数据项:其与被分割的块数据相比具有较小的数据量。
40.一种存储在计算机可读介质中的纹理解码程序,该程序包括:
指示一计算机采集在多种不同条件下提供的纹理集的编码数据的装置;
指示所述计算机采集用于指定像素位置的多个纹理坐标和用于在所述条件中指定条件的条件参数的装置;
指示所述计算机从所述编码数据中载入与所述纹理坐标以及所述条件参数对应的块数据项的装置;
指示所述计算机对所述载入的块数据项进行解码的装置;以及
指示所述计算机基于所述解码得到的数据项计算多个像素数据项的装置。
41.一种存储在计算机可读介质中的纹理解码程序,该程序包括:
指示一计算机采集在多种不同条件下提供的纹理集的编码数据的装置;
指示所述计算机将所述编码数据中包括的块的尺寸转换成固定的块尺寸的装置;
指示所述计算机采集用于指定像素位置的多个纹理坐标和用于在所述条件中指定条件的条件参数的装置;
指示所述计算机从所述转换得到的编码数据中载入与所述纹理坐标以及所述条件参数对应的块数据项的装置;
指示所述计算机对所述载入的块数据项进行解码的装置;以及
指示所述计算机基于所述解码得到的块数据项计算多个像素数据项的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005210318A JP4444180B2 (ja) | 2005-07-20 | 2005-07-20 | テクスチャ符号化装置、テクスチャ復号化装置、方法、およびプログラム |
JP210318/2005 | 2005-07-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101010699A true CN101010699A (zh) | 2007-08-01 |
Family
ID=37059896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200680000717XA Pending CN101010699A (zh) | 2005-07-20 | 2006-03-24 | 纹理编码装置、纹理解码装置、方法及程序 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20070018994A1 (zh) |
EP (1) | EP1908018A1 (zh) |
JP (1) | JP4444180B2 (zh) |
KR (1) | KR100903711B1 (zh) |
CN (1) | CN101010699A (zh) |
WO (1) | WO2007010648A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104365098A (zh) * | 2012-06-01 | 2015-02-18 | 阿尔卡特朗讯公司 | 用于视频流编码的方法与装置 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0504570D0 (en) | 2005-03-04 | 2005-04-13 | Falanx Microsystems As | Method of and apparatus for encoding data |
JP4802676B2 (ja) * | 2005-11-17 | 2011-10-26 | 大日本印刷株式会社 | レンダリング用テクスチャデータの作成方法 |
JP4594892B2 (ja) * | 2006-03-29 | 2010-12-08 | 株式会社東芝 | テクスチャマッピング装置、方法およびプログラム |
JP4224093B2 (ja) * | 2006-09-25 | 2009-02-12 | 株式会社東芝 | テクスチャフィルタリング装置、テクスチャマッピング装置、方法およびプログラム |
JP4266233B2 (ja) * | 2007-03-28 | 2009-05-20 | 株式会社東芝 | テクスチャ処理装置 |
CA2683841A1 (en) * | 2007-04-04 | 2008-10-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Vector-based image processing |
US8582908B2 (en) * | 2007-08-07 | 2013-11-12 | Texas Instruments Incorporated | Quantization method and apparatus |
KR101159162B1 (ko) | 2008-12-01 | 2012-06-26 | 한국전자통신연구원 | 측정 재질감을 지원하는 영상 생성 장치 및 방법 |
US8791951B2 (en) | 2008-12-01 | 2014-07-29 | Electronics And Telecommunications Research Institute | Image synthesis apparatus and method supporting measured materials properties |
EP3703369B1 (en) | 2010-04-13 | 2024-07-24 | GE Video Compression, LLC | Sample region merging |
CN106231337B (zh) | 2010-04-13 | 2020-06-19 | Ge视频压缩有限责任公司 | 解码器、解码方法、编码器以及编码方法 |
BR122020008249B1 (pt) | 2010-04-13 | 2021-02-17 | Ge Video Compression, Llc | herança em amostra de arranjo em subdivisão multitree |
CN106067983B (zh) | 2010-04-13 | 2019-07-12 | Ge视频压缩有限责任公司 | 解码数据流的方法、生成数据流的方法及解码器 |
CN102231155A (zh) * | 2011-06-03 | 2011-11-02 | 中国石油集团川庆钻探工程有限公司地球物理勘探公司 | 三维地震数据管理及组织方法 |
TWI661711B (zh) * | 2011-11-08 | 2019-06-01 | 三星電子股份有限公司 | 視訊解碼方法、視訊編碼方法、裝置及非暫態電腦可讀儲存媒體 |
WO2013162252A1 (ko) * | 2012-04-23 | 2013-10-31 | 삼성전자 주식회사 | 슬라이스 헤더를 이용하는 3차원 비디오 부호화 방법 및 그 장치, 3차원 비디오 복호화 방법 및 그 장치 |
JP5926626B2 (ja) * | 2012-06-11 | 2016-05-25 | キヤノン株式会社 | 画像処理装置及びその制御方法、プログラム |
KR101477665B1 (ko) * | 2013-04-04 | 2014-12-30 | 한국기술교육대학교 산학협력단 | 불균일한 텍스쳐 표면의 불량 검출방법 |
US9141885B2 (en) * | 2013-07-29 | 2015-09-22 | Adobe Systems Incorporated | Visual pattern recognition in an image |
US10332277B2 (en) | 2016-04-13 | 2019-06-25 | Samsung Electronics Co., Ltd. | Low complexity optimal decimation grid selection in encoding applications |
US10075716B2 (en) | 2016-04-21 | 2018-09-11 | Samsung Electronics Co., Ltd. | Parallel encoding of weight refinement in ASTC image processing encoders |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5467136A (en) * | 1991-05-31 | 1995-11-14 | Kabushiki Kaisha Toshiba | Video decoder for determining a motion vector from a scaled vector and a difference vector |
US5889891A (en) * | 1995-11-21 | 1999-03-30 | Regents Of The University Of California | Universal codebook vector quantization with constrained storage |
US6097394A (en) * | 1997-04-28 | 2000-08-01 | Board Of Trustees, Leland Stanford, Jr. University | Method and system for light field rendering |
US6459433B1 (en) * | 1997-04-30 | 2002-10-01 | Ati Technologies, Inc. | Method and apparatus for compression of a two dimensional video object |
US6762768B2 (en) * | 1998-06-01 | 2004-07-13 | Ati Technologies, Inc. | Method and apparatus for rendering an object using texture variant information |
US6243081B1 (en) * | 1998-07-31 | 2001-06-05 | Hewlett-Packard Company | Data structure for efficient retrieval of compressed texture data from a memory system |
US6298169B1 (en) * | 1998-10-27 | 2001-10-02 | Microsoft Corporation | Residual vector quantization for texture pattern compression and decompression |
GB2343599B (en) * | 1998-11-06 | 2003-05-14 | Videologic Ltd | Texturing systems for use in three dimensional imaging systems |
JP3350654B2 (ja) * | 1999-12-03 | 2002-11-25 | 株式会社ナムコ | 画像生成システム及び情報記憶媒体 |
US6452602B1 (en) * | 1999-12-13 | 2002-09-17 | Ati International Srl | Method and apparatus for storing compressed data |
US6959110B1 (en) * | 2000-08-17 | 2005-10-25 | Nvidia Corporation | Multi-mode texture compression algorithm |
US7649947B2 (en) * | 2001-06-05 | 2010-01-19 | Qualcomm Incorporated | Selective chrominance decimation for digital images |
US7292731B2 (en) * | 2001-06-29 | 2007-11-06 | Ntt Docomo, Inc. | Image encoder, image decoder, image encoding method, and image decoding method |
US6700585B2 (en) * | 2001-08-03 | 2004-03-02 | Hewlett-Packard Development Company, L.P. | System and method for synthesis of parametric texture map textures |
US7136072B2 (en) * | 2001-08-03 | 2006-11-14 | Hewlett-Packard Development Company, L.P. | System and method for performing texture synthesis |
US6968092B1 (en) * | 2001-08-21 | 2005-11-22 | Cisco Systems Canada Co. | System and method for reduced codebook vector quantization |
JP4220182B2 (ja) * | 2002-05-31 | 2009-02-04 | 株式会社東芝 | 高次元テクスチャ描画装置、高次元テクスチャ圧縮装置、高次元テクスチャ描画システム、高次元テクスチャ描画方法並びにプログラム |
US6940511B2 (en) * | 2002-06-07 | 2005-09-06 | Telefonaktiebolaget L M Ericsson (Publ) | Graphics texture processing methods, apparatus and computer program products using texture compression, block overlapping and/or texture filtering |
US6891548B2 (en) * | 2002-08-23 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | System and method for calculating a texture-mapping gradient |
JP2004172689A (ja) * | 2002-11-18 | 2004-06-17 | Tomoyasu Kagami | 本画像用画面の周囲に残像もしくは先駆画像を表示できるテレビモニタ |
JP3901644B2 (ja) * | 2003-01-30 | 2007-04-04 | 株式会社東芝 | テクスチャ画像圧縮装置及び方法、テクスチャ画像抽出装置及び方法、データ構造、記憶媒体 |
SE0401850D0 (sv) * | 2003-12-19 | 2004-07-08 | Ericsson Telefon Ab L M | Image processing |
US20060075092A1 (en) * | 2004-10-06 | 2006-04-06 | Kabushiki Kaisha Toshiba | System and method for determining the status of users and devices from access log information |
JP4282587B2 (ja) * | 2004-11-16 | 2009-06-24 | 株式会社東芝 | テクスチャ・マッピング装置 |
-
2005
- 2005-07-20 JP JP2005210318A patent/JP4444180B2/ja not_active Expired - Fee Related
-
2006
- 2006-03-24 EP EP06730720A patent/EP1908018A1/en not_active Withdrawn
- 2006-03-24 WO PCT/JP2006/306772 patent/WO2007010648A1/en active Application Filing
- 2006-03-24 KR KR1020077004713A patent/KR100903711B1/ko not_active IP Right Cessation
- 2006-03-24 CN CNA200680000717XA patent/CN101010699A/zh active Pending
- 2006-07-21 US US11/490,149 patent/US20070018994A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104365098A (zh) * | 2012-06-01 | 2015-02-18 | 阿尔卡特朗讯公司 | 用于视频流编码的方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4444180B2 (ja) | 2010-03-31 |
KR20070069139A (ko) | 2007-07-02 |
EP1908018A1 (en) | 2008-04-09 |
US20070018994A1 (en) | 2007-01-25 |
WO2007010648A1 (en) | 2007-01-25 |
JP2007026312A (ja) | 2007-02-01 |
KR100903711B1 (ko) | 2009-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101010699A (zh) | 纹理编码装置、纹理解码装置、方法及程序 | |
CN101154291B (zh) | 图像数据压缩方法、图像显示方法及其相应装置 | |
EP4006839B1 (en) | Device for transmitting point cloud data, method for transmitting point cloud data, device for receiving point cloud data, and method for receiving point cloud data | |
CN103703779B (zh) | 使用次分辨率图像的图像压缩 | |
JP4452242B2 (ja) | 漸進的な三次元メッシュ情報の符号化/復号化方法及びその装置 | |
CN103765481B (zh) | 用于3-d场景加速结构创建和更新的系统和方法 | |
US8949092B2 (en) | Method and apparatus for encoding a mesh model, encoded mesh model, and method and apparatus for decoding a mesh model | |
CN1681330B (zh) | 自适应2n叉树生成方法及3D体数据编码和解码方法和设备 | |
Knoll et al. | Interactive isosurface ray tracing of large octree volumes | |
US9245383B2 (en) | Accelerated three-dimensional intersection testing using compressed volumes | |
CN104012097A (zh) | 用于压缩和解压缩数据的方法与装置 | |
CA2373707A1 (en) | Method and system for processing, compressing, streaming and interactive rendering of 3d color image data | |
KR20140089426A (ko) | 예측성 위치 디코딩 | |
KR20140096298A (ko) | 복제 포인트를 갖는 공간 트리에 기초한 위치 코딩 | |
KR20080094542A (ko) | 3차원 메쉬 정보의 부호화/복호화 방법 및 장치 | |
CN116235497A (zh) | 一种用于用信号通知基于多平面图像的体积视频的深度的方法和装置 | |
EP2145316A1 (en) | Vector-based image processing | |
Tsai et al. | Improved coding for image feature location information | |
WO2023179710A1 (zh) | 编码方法及终端 | |
KR102624994B1 (ko) | 포인트 클라우드 데이터를 위한 파일 형식 | |
Scandolo et al. | Compressed Multiresolution Hierarchies for High‐Quality Precomputed Shadows | |
Abadjev et al. | MetaStream | |
Molenaar et al. | Editing Compressed High‐resolution Voxel Scenes with Attributes | |
Dolonius | Sparse Voxel DAGs for Shadows and for Geometry with Colors | |
KR20100114468A (ko) | 3차원 컨텐츠 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20070801 |