CN104050688A - 对数据进行编码和解码的方法和设备 - Google Patents
对数据进行编码和解码的方法和设备 Download PDFInfo
- Publication number
- CN104050688A CN104050688A CN201410096151.1A CN201410096151A CN104050688A CN 104050688 A CN104050688 A CN 104050688A CN 201410096151 A CN201410096151 A CN 201410096151A CN 104050688 A CN104050688 A CN 104050688A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- difference
- texture
- data 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.)
- Granted
Links
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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/34—Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及对数据进行编码和解码的方法和设备。为了对将在图形处理系统中使用的纹理进行编码,首先将纹理降尺度以产生纹理(41)的低分辨率表示。然后,将纹理的低分辨率版本的升尺度版本(42)与原始纹理进行比较,以确定为各个纹元指示纹理的升尺度版本中的纹元值与原始纹理(43)中的纹元值之差的差值集合。然后,针对原始纹理(44)中的各个8×8纹元块产生编码纹理数据块。各个编码纹理数据块包含基色值以及索引值集合,该基色值取自纹理的低分辨率表示,所述索引值指示来自确定的差数据集合的差数据,所述差数据将在对所述纹理数据块进行解码时使用,以产生将用于所述纹理数据块所表示的纹理数据元素的数据值。
Description
技术领域
本发明涉及对数据进行编码和解码的方法和设备,具体地讲,涉及这样一种用于在计算机图形系统中对纹理数据进行压缩和解压缩的方法和设备。
背景技术
在计算机图形系统中常见的是通过将所谓的纹理或纹理数据应用于待绘制的表面来为待显示的图像中的采样位置产生颜色。例如,可通过将预定义的“纹理”应用于表示对象的一组多边形以将该“纹理”的外观赋予对象的渲染图像,来产生对象上的表面细节。通常通过存储纹理元素或“纹元(texel)”的阵列(各个纹元表示给定的纹理数据(例如颜色、亮度和/或光/影等值)),然后将纹元映射到待显示的图像的对应元素(例如(其实通常为)一组采样位置)上,来应用这些纹理。存储的纹理元素阵列(数据)通常称作“纹理映射”。
这样的布置方式可提供较高的图像质量,但也具有许多缺点。具体地讲,存储纹理数据并在使用时访问它会给图形处理装置带来例如较高的存储量和带宽要求(或者相反,在不满足这些要求的情况下导致性能的损失)。这对于执行图形处理的移动和手持式装置而言尤其有重要影响,因为这些装置在其例如存储量、带宽和功率资源以及能力方面有固有局限。
因此,已知的是尝试以“压缩”形式对这种纹理数据进行编码,以尝试减小(例如)可能强加于装置的存储量和带宽负担。
一种已知的这种纹理数据压缩技术确定例如要用于给定纹理映射的一组颜色或一套调色板颜色,然后针对纹理映射中的各个纹理元素(纹元)将索引存储为该组颜色或该套调色板颜色,以指示要用于该纹元的颜色。这具有如下优点:针对各个纹元仅需存储索引,而非整个(例如)颜色值。这有助于降低(例如)纹理数据存储量要求,但仍在诸如降低的图像质量和必要的数据处理的方面具有一些缺点。
另一已知的纹理压缩技术是使用所谓的块截断编码(BTC:block truncationcoding)。在该技术中,总纹理阵列(纹理映射)被再分成更小的块,例如4×4纹元,并且针对各个这种块确定一定数量(通常为两个)的基色或原色值,使得块中的各个纹元被设置为所述基色值之一。这同样节省了必须存储和访问的数据,但代价是图像质量下降。
美国专利No.5047853描述了一种改进的块截断编码技术。在该技术中,针对各个纹元块同样存储两种基色,但还从这两种基色(例如,通这些颜色的线性共混)推导将用于该块的两种附加颜色。这样,提供四种颜色作为纹元块的“调色板”,但针对块仅需存储两种颜色值。然后,利用两个比特来对块中的各个纹元进行编码,以指示四种块“颜色”中的哪一种应该用于该纹元。这种系统所提供的图像质量优于基本块截断编码,但每一块需要更多数据。
申请人认为仍有余地改进尤其是用于图形处理的纹理数据的数据编码和压缩技术。
发明内容
根据本发明的第一方面,提供一种对将在图形处理系统中使用的纹理数据元素集合进行编码的方法,所述方法包括:
确定纹理数据元素集合的低分辨率表示;
确定全分辨率的差数据集合,所述差数据集合表示确定的纹理数据元素集合的低分辨率表示的升尺度(upscale)版本与原始纹理数据元素集合之差;以及
将纹理数据元素集合编码为表示纹理数据元素的一个或更多个纹理数据块,各个这种纹理数据块:
表示来自纹理数据元素集合的纹理数据元素块,并且包括:
指示所述块的基本数据值的数据,所述基本数据值取自确定的纹理数据元素集合的低分辨率表示;以及
指示来自确定的差数据集合的差数据的数据,所述差数据将在对纹理数据块进行解码时使用,以产生将用于纹理数据块所表示的纹理数据元素的数据值。
根据本发明的第二方面,提供一种对将在图形处理系统中使用的纹理数据元素集合进行编码的设备,所述设备包括:
用于确定纹理数据元素集合的低分辨率表示的装置;
用于确定全分辨率的差数据集合的装置,所述差数据集合表示确定的纹理数据元素集合的低分辨率表示的升尺度版本与原始纹理数据元素集合之差;以及
用于将纹理数据元素集合编码为表示纹理数据元素的一个或更多个纹理数据块的装置,各个这种纹理数据块:
表示来自纹理数据元素集合的纹理数据元素块,并且包括:
指示所述块的基本数据值的数据,所述基本数据值取自确定的纹理数据元素集合的低分辨率表示;以及
指示来自确定的差数据集合的差数据的数据,所述差数据将在对纹理数据块进行解码时使用,以产生将用于纹理数据块所表示的纹理数据元素的数据值。
根据本发明的第三方面,提供一种表示将在图形处理系统中使用的纹理数据元素集合的纹理数据块,所述纹理数据块包括:
指示所述块的基本数据值的数据,所述基本数据值取自确定的纹理数据元素集合的低分辨率表示;以及
指示差数据的数据,所述差数据取自全分辨率的差数据集合,所述差数据集合表示确定的纹理数据元素集合的低分辨率表示的升尺度版本与原始纹理数据元素集合之差,并且所述差数据将在对纹理数据块进行解码时用于纹理数据块所表示的纹理数据元素,以产生将用于纹理数据块所表示的纹理数据元素的数据值。
在本发明的纹理数据编码系统中,像已知的现有技术中一样,将纹理数据元素集合(例如,表示图像)编码为一个或更多个纹理数据块,使得各个纹理数据块表示相应的纹理数据元素块。
然而,本发明通过将原始纹理数据元素集合的低分辨率表示(版本)与表示纹理数据元素集合的低分辨率表示的升尺度版本与原始纹理数据元素集合之差的全分辨率的差数据集合(即,针对各个纹理数据元素存在单独的条目(entry)的差数据的集合(即,按照正被编码的原始纹理数据元素集合的分辨率(按照原始纹理(图像)的分辨率)的差数据集合)一起进行确定(并对进行表示的数据进行编码)来对纹理数据进行编码。换言之,本发明使用一个分辨率降低(减小)的数据集合(来自纹理数据元素集合的低分辨率表示的基本数据值)与一个全分辨率的数据集合(差数据集合)的组合来对图形纹理进行编码。
如将在下面进一步讨论的,在本发明的编码方案中,低分辨率数据集合将有效地表示纹理中的低频,全分辨率的差数据集合将有效地表示纹理中的高频。
申请人认识到,如果将纹理分成低频和高频数据集合,则可利用空间压缩有利地压缩低频分量,但仍将可取的是保持高频数据的全分辨率表示。此外,如将在下面进一步讨论的,申请人进一步认识到,仍可有效地对表示数据集合的这种全分辨率高频数据进行编码,因为纹理中的高频数据的短重复周期表明,即使当使用这种数据的全分辨率表示时,也可以有效的方式对该数据进行编码。本发明利用这一认识来提供改进的纹理压缩方案。
如将在下面进一步讨论的,申请人已发现,本发明的编码可提供相对高的纹理数据压缩率,同时仍提供可接受的再现图像质量。例如,可允许每8×8纹元(纹理数据元素)块仅使用64比特(即,1bpp,平均每像素(纹元)1比特)以许多使用情况可接受的质量进行全RGB纹理的编码。
本发明可相应地显著减少图形处理系统中的纹理映射时所需要并消耗的带宽等的量。这例如可允许嵌入式图形系统以高分辨率将纹理应用于视觉元素,同时消耗比当前工业标准纹理压缩方案少许多的带宽。本发明还可相应地允许纹理消耗更少的内存,从而例如允许更快地将它们上传(流传输)至GPU(图形处理单元)存储器(这对于流传输动画(视频)纹理而言尤其有用),并且给予游戏和其它图形应用更少的盘空间占用和更短的加载时间。
如将在下面进一步讨论的,本发明的编码格式还可用于针对1bpp格式以非常好的质量对单分量纹理进行编码。对应地,可针对编码的纹理的尺寸以很好的质量使用本发明的形式的两个编码的纹理来以2bpp对法向数据和RGB+alpha数据进行编码。
申请人还认为,随着移动和便携式装置的屏幕分辨率在将来进一步增加,本发明所提供的较低的纹理数据比特率会变得越来越有利。
本发明可用于对任何适当形式的纹理数据进行编码。如上所述,处于其原始的、未处理或未编码形式的这种数据通常按照纹理元素或纹元的阵列的形式排列,因此在特别优选的实施方式中,本发明用于对纹理数据元素(纹元)的阵列进行编码。如本领域已知的,这些阵列通常是2维的,但是也可使用本发明来对3维阵列进行编码。
待编码的纹理和纹理数据元素可表示任何合适的纹理数据。在一个优选实施方式中,如本领域中已知的,所述纹理是(例如,并且优选地)在渲染用于显示的图像和/或帧(例如将应用于待渲染的图元的图像、颜色(包括灰度)、亮度、凹凸映射、阴影映射(光照映射)等)时将用于图形处理的纹理。
然而,例如,在期望使用图形纹理(和图形纹理处理)来表示和处理其它形式的数据的情况下,本发明还可用于对将用于处理并且表示其它形式的数据的纹理进行处理并编码(和解码)。如本领域已知的,纹理可以用于并且用于图形处理中以表示并处理许多不同类型的数据,例如3D迷雾(3D fog)、流场(flow field)等,以及用于“传统”图形目的。本发明可同样应用于并扩展至图形处理系统中的纹理的这些类型和用途以及用于图形处理系统的纹理的这些类型和用途。因此,如果期望,本发明的纹理可表示将在图形处理系统中作为纹理被处理的其它形式的数据。
在特别优选的实施方式中,纹理数据元素各自表示纹理元素的颜色值,但这不是必要的。优选地,纹理数据元素表示:每纹元具有1、2、3或4个分量(分别为亮度、亮度alpha、RGB和RGB alpha)的低动态范围(LDR)纹理数据或者每纹元具有1、3或4个分量的高动态范围(HDR)纹理数据。
如本领域技术人员将理解的,纹理元素所赋予的实际数据值在其原始的、未编码的未处理形式下及在其编码的形式下(或者至少在编码的数据已被解码以再现原始数据的表示时)均将取决于纹理元素旨在定义或表示的“纹理”的形式。
因此,例如,如果纹理元素定义将使用的颜色,则处于其原始的未编码形式的纹理数据元素可各自包括颜色值的集合(红色、绿色、蓝色(RGB)、颜色和透明度值的集合(红色、绿色、蓝色、Alpha(RGBA))或者亮度和色度值的集合,并且编码的数据在被解码(再现)时将产生对应的颜色值集合。
在阴影(光照)映射的情况下,例如,纹理数据元素将各自包括或表示数据值集合,该数据值集合例如指示纹理元素处于光照中还是阴影中以及该纹理元素的光照或阴影的量(和/或颜色)。类似地,对于法向映射(凹凸映射),各个纹理元素的数据将是指示该纹理元素处光的反射方向的值的集合。
纹理数据元素例如还可表示z值(深度值)、模版值(stencil value)、亮度值(亮度纹理)、亮度alpha纹理和/或光泽映射(即,纹理元素位置处表面是否有光泽)等。
在适当的情况下,针对各个纹理数据块,可仅用剩余数据值对产生再现原始数据所需的一些(但非所有)数据值所需的数据进行编码,所述剩余数据值作为数据再现处理的一部分被推导出(例如,从产生再现原始数据所需的一些数据值所需的数据推导出)。因此,在一个优选实施方式中,编码的纹理数据对代表一些原始纹理数据的数据进行编码(用代表其他部分的原始数据的数据对代表这一些原始纹理数据的数据进行编码),代表所述其他部分的原始数据的数据是在解码处理期间从编码的数据推导的。
例如,在法向映射的情况下,编码的纹理数据例如可仅用第三分量(dz)对两个法向分量(例如,dx和dy)进行编码,所述第三分量是在对数据解码时从这两个值推导的(因为已知分量的平方和必须为1(因为它们定义了长度为1的法向向量):1=dx2+dy2+dz2)。
这里应该注意的是,如本领域技术人员将理解的,本文中提及“颜色”或“亮度”等相应地是指允许所关注的颜色或亮度等被再现于(例如)显示器上的数据值的集合。这些数据值可包括任何合适的颜色或亮度等数据的集合,例如如上所述的RGB值的集合。同样,在适当的情况下,对针对编码的纹理数据块产生数据值集合以及对各个纹理元素的数据值等的提及涵盖了各自包括或包含值的组合(如颜色值(RGB或RGBA)集合)的数据值。
依据本发明而编码的纹理数据元素的集合或阵列可以是任何合适的或期望的这种集合。其优选包括待编码的整个纹理映射(即,图像),但如果期望,其例如可仅包括纹理映射的部分。
如传统块编码技术中一样,产生的各个编码的纹理数据块优选对所关注的纹理映射的较小部分(或块)进行编码。在这种情况下,各个纹理数据块将对原始纹理数据元素集合中的多个纹理数据元素的选定子集或阵列进行编码和表示。各个纹理数据块优选地对较小的矩形纹元阵列(可为正方形或非正方形)进行编码。
在优选实施方式中,各个纹理数据块对正方形纹元阵列(优选地,8×8纹元块)进行编码。当然,其它布置方式(例如,块尺寸和/或配置)也将是可以的。
将理解,在这些布置方式中,多个这样的单独纹理数据块将需要对原始纹理数据(纹理数据元素)的整个集合(例如构成整个纹理映射的原始纹理数据(纹理数据元素)的整个集合)进行编码。因此,在特别优选的实施方式中,本发明包括将纹理数据元素集合(例如,用于纹理映射)再分为多个纹理数据元素子集,然后按照本发明的方式将纹理数据元素的各个子集编码为纹理数据块。因此,原始(初始)纹理数据元素集合将被编码为多个纹理数据块。
优选地将待编码的纹理分成等尺寸(和配置)的块,即,针对纹理映射的各个子集(针对该子集产生编码块)表示相同数量(和例如阵列)的纹理数据元素。这例如可简化寻找给定纹理数据元素在哪一块的任务。
在使用多个纹理数据块对较大的纹理映射(或者纹理元素集合或阵列)进行编码的情况下,可根据期望选择阵列向较小块的实际再分以及编码为纹理块的顺序。在优选实施方式中,按照光栅(raster)顺序对块(数据子集)进行编码,但是当然,其它布置方式也将是可以的,例如使用Morton顺序。
确定的待编码的纹理数据元素集合的低分辨率表示应该是原始纹理的适当低频表示。其优选为原始纹理数据元素集合的降尺度(downscale)(过滤)版本。因此,待编码的纹理数据元素集合的低分辨率表示优选为原始纹理(图像)的低分辨率版本。
待编码的纹理数据元素集合的低分辨率表示优选通过产生待编码的纹理数据元素集合的低分辨率表示来确定,但如果期望,也可使用其它布置方式,例如在逐块(block-by-block)基础上计算平均值。原始数据优选按照因子8(各个方向上1:8)降尺度,以确定纹理数据元素集合的低分辨率表示(版本)。因此,在RGB纹理的情况下,例如,纹理的低分辨率表示优选为低分辨率(各个方向上1:8)RGB图像。
确定并单独编码原始纹理数据元素集合的低分辨率表示(版本)有这样的效果:与高频数据分离地对编码的纹理中的低频数据(例如,在颜色的情况下,低频色调和亮度)进行编码。这于是允许使用不同的比特率对数据的低频和高频部分进行编码,这继而用于提供更有效的压缩(编码)方案。尤其是,如将在下面进一步讨论的,相对较低的比特率可用于数据的高频部分,因为人眼对图像的较高频中的噪声较不敏感(从而允许使用高频的精度较低的表示,而不会有太大的感知质量损失)。
包括在编码纹理块中的指示纹理数据块的来自原始数据的低分辨率表示的基本数据值的数据可采取任何期望且合适的形式,例如值的查找表中的索引。然而,其优选包括将用于纹理数据块的实际基本数据值。优选有且仅有一个包括在各个编码的纹理数据块中的这种数据值(或这种数据值的索引)(即,各个编码纹理数据块将具有包括在其中(与其关联)的单个基本数据值。该基本数据值(或这种值的索引)优选为16比特的值。
包括在编码的纹理数据块中的基本数据值优选为直接取自原始数据的低分辨率表示(版本)的数据值,最优选为直接取自原始数据的低分辨率表示(版本)中与编码纹理数据块所表示的原始数据中的纹理数据元素块对应的位置(数据元素)的数据值。例如,并且优选地,如果各个编码纹理数据块表示8×8纹元块,并且原始纹理按照因子8降尺度以产生纹理的低分辨率版本,则对于纹理映射为了编码而将分成的各个8×8纹元块在纹理的低分辨率版本中应该存在一个纹理元素值。
因此,用于确定原始数据的低分辨率版本的降尺度级别优选对应于(并等于)将被编码为单独的编码纹理数据块的各个纹理数据元素块的尺寸。因此,例如,如果各个编码纹理数据块将表示原始纹理的A×A纹元,则优选通过按照因子A(在各个方向)对原始纹理降尺度来确定原始纹理的低分辨率表示。
为此目的而包括在各个编码纹理数据块中的数据值例如可根据被编码的纹理数据的性质采取任何适合的形式。如上所述,其优选包括用于原始纹理数据的形式的单个纹理数据值。因此,例如,对于RGB565纹理,包括在纹理数据块中的用于指示将使用的来自低分辨率图像的基本数据值的基本数据值优选包括RGB565值(优选为单个RGB565值)。对于其它形式的纹理数据,基本数据值应该具有对应形式(这将在下面进一步讨论)。
确定的全分辨率的差数据集合可采取任何合适且期望的形式,所述差数据用于表示纹理的低分辨率表示的升尺度版本与原始纹理之差。此差数据集合为全分辨率形式的差数据集合,即,对于原始纹理的各个纹理数据元素具有单独(且相应)的一个或多个差数据值(即,是按照原始纹理(图像)的分辨率的差数据集合(其可相应地应用于通过将纹理的低分辨率版本升尺度至原始纹理的分辨率而产生的原始纹理的表示(应用于纹理的低分辨率表示的升尺度版本),以产生(再现)原始纹理的适当近似))。如上所述,该差数据集合将有效地表示原始纹理中的高频。
在特别优选的实施方式中,差数据集合是全分辨率差(Δ)掩码的形式,其对于原始纹理的各个纹理数据元素具有单独(且相应)的一个或多个差数据值。
在优选实施方式中,差数据集合包括这样的值的集合,所述值将与编码块所表示的纹理数据元素的对应基本数据值一起使用以能够产生编码块所表示的纹理数据元素的原始纹理数据元素值的适当近似。相应地,差数据集合优选包括带符号的整数值的集合,所述整数值将在对块进行解码时与编码纹理数据元素的基本数据值一起用于产生编码块所表示的纹理数据元素的数据值,所述集合包括用于编码块所表示的各个编码纹理数据元素的一个或多个带符号整数值。
因此,针对给定编码纹理数据块确定的用于表示纹理的低分辨率表示的升尺度版本与原始纹理之差的差数据集合优选包括这样的值的集合,所述值将与编码块所表示的纹理数据元素的对应基本数据值一起使用以产生编码块所表示的纹理数据元素的原始纹理数据元素值的适当近似,所述值的集合包括用于编码块所表示的各个编码纹理数据元素的一个或多个带符号的整数值。类似地,用于编码块的差数据集合相应地优选包括(全分辨率的)带符号整数值的集合,这些整数值将在对块进行解码时与块所表示的编码纹理数据元素的基本数据值一起用于产生编码块所表示的纹理数据元素的数据值。
如果纹理数据包括多个分量(例如,红、绿和蓝分量),则差数据集合对于纹理数据的各个不同分量包括单独的差值(使得对于RGB纹理,例如将存在“红”差值、“绿”差值和“蓝”差)。然而,在特别优选的实施方式中,对于纹理数据的每一分量(如果纹理数据包括多个分量)使用相同的差数据值。因此,例如,在RGB纹理中,对于给定纹理数据元素的红、绿和蓝值中的每一个,将使用用于该纹理数据元素的相同的单个差值。
因此,在特别优选的实施方式中,确定的差数据集合是差(Δ)掩码的形式,其包含用于原始纹理的各个相应纹理数据元素的相应的单个差数据值,所述单个差数据值将用于纹理数据元素的所有分量(如果适当的话)。
确定的差数据集合(例如,Δ掩码)应该被配置为针对在对编码的纹理进行解码时将使用的解码方案产生期望的纹理数据元素值,尤其是依据将用于在对编码的纹理进行解码时对纹理的低分辨率表示升尺度以产生编码的纹理的各个纹理数据元素的适当基本数据值的处理(这将在下面更详细地讨论)。
因此,例如,如果解码处理仅使用针对编码纹理数据块指示的基本数据值作为块所表示的各个纹理数据元素的基本数据值,然后将给定纹理数据元素的差值直接与如此确定的该纹理数据元素的基本数据值相加,则差数据集合应该表示(至少近似于)相应的来自纹理的低分辨率表示的相应编码块基本数据值与原始纹理中的对应(且适当)纹理数据元素的值之差。在这种情况下,差数据集合(例如,Δ掩码)应该(且优选地)针对原始纹理的各个相应纹理数据元素表示(取自)纹理的低分辨率版本的纹元值与原始纹理中(被编码的纹理中)的纹理数据元素的值之差。
在特别优选的实施方式中,如将在下面进一步讨论的,解码处理通过对纹理的低分辨率表示进行过滤(插值)来产生纹理的低分辨率表示的升尺度版本(即,将应用差数据的纹理的低分辨率表示的升尺度版本是纹理的低分辨率表示的升尺度、过滤版本)。换言之,要被解码的给定纹理数据元素的基本数据值(其然后将与该纹理数据元素的差值组合)并非简单地被取为表示该纹理数据元素的编码块的基本数据值,而是通过实际上以更复杂的方式对纹理的低分辨率表示进行采样或过滤而确定的值。
在这种情况下,相应地,差数据应该被配置为在应用于原始纹理的低分辨率表示的此形式的升尺度版本时提供原始纹理数据元素值的适当近似。
因此,在特别优选的实施方式中,差数据集合(例如,Δ掩码)针对原始纹理的各个相应纹理数据元素表示纹理数据元素的、从纹理的低分辨率版本产生的经过滤的(优选地经线性过滤的)样本(纹元值)与原始纹理中(被编码的纹理中)的纹理数据元素的值之差。
(如将在下面进一步讨论的,申请人认识到,在对编码纹理进行解码时使用线性过滤来将纹理的低分辨率版本升尺度可使得本发明的编码格式在保存低频梯度方面尤其好(从而在再现的纹理中保持平滑的梯度并减少条带(这对其它低比特率纹理压缩方案会是个问题))。因此,差数据(Δ掩码)优选被配置为用于这种解码处理)。
因此,在RGB565纹理的情况下,例如,确定的差数据集合优选地包括全分辨率亮度Δ掩码(带符号整数),表示来自纹理的低分辨率版本的(优选地经线性过滤的)样本与原始纹理之间的光度差(平均RGB差)。对应地,优选针对其它形式的纹理数据配置差数据集合。
确定的将用于对纹理进行编码的差数据集合例如可包括纹理的低分辨率表示的升尺度版本与原始纹理之间的实际(“真”)差。
然而,在特别优选的实施方式中,将用于所述块的差数据集合是被编码的纹理的“真”差值集合的近似。如将在下面进一步讨论的,使用差值集合的近似允许差数据以压缩形式被指示并存储在编码的纹理中,从而方便原始纹理映射的更有效的编码。此外,申请人已发现,这可以不用引起太多再现图像质量的损失。
可根据期望确定被编码的纹理的“真”差值集合的这种近似。例如,可首先确定实际差值(例如,通过将纹理的低分辨率表示的升尺度版本与原始纹理进行比较),然后产生该真差值集合的适当压缩的版本作为确定的将在对纹理进行编码时使用的差值集合。
在特别优选的实施方式中,用于被编码的纹理的“真”差值集合的近似包括取自预定义的参考差值集合的差值(并且该差值被确定为纹理的“真”差值集合的适当近似)。
在此布置方式中,相应地,将存在预定义(预定)的一个或多个参考差值集合,然后将使用适当的预定参考差值来近似待编码的纹理的“真”差值集合(并因此作为确定的在对纹理进行编码时将使用的差值集合)。
优选地,定义可使用的预定义的参考差值的调色板(palette),然后选择该调色板的适当部分来形成确定的将用于所关注的纹理的差值集合。
使用预定的参考差值集合(例如,调色板)有助于方便纹理数据的压缩,因为,例如,参考差值集合可为(实际上,优选地为)将用于表示纹理的差值的缩减的差值集合(reduced set of difference values)。
更优选地,使用被配置为多个不同差值块(Δ块)集合的预定义参考差值调色板,各个差值块包含差值(优选为带符号整数值的形式)的阵列,其然后例如可用于编码纹理数据元素的对应阵列。在此布置方式中,各个预定义参考差值块(阵列)优选地表示编码纹理数据块将表示的纹理数据元素阵列的部分(而非全部(即,子集)),例如编码纹理数据块将表示的纹理数据元素阵列的或。
因此,例如,如果各个编码纹理数据块将表示A×A纹理数据元素块,则预定义差数据值调色板中的差(Δ)块优选地各自表示A/n×A/n差值阵列,其中n是大于一的整数。在一个特别优选的实施方式中,例如,如果各个编码纹理数据块将表示8×8纹理数据元素块,则预定义差数据值调色板中的差(Δ)块优选地各自表示4×4差值阵列。在这种情况下,相应地,参考差数据调色板中的各个差(Δ)块将对应于编码的8×8纹理数据元素块的四分之一(4×4块)。
可根据期望确定和推导预定义参考差值调色板等(例如,构成该调色板的差(Δ)块的集合)。例如,可按照(例如)迭代训练方式编码和测试多个已知且典型的纹理(例如,代表典型的游戏内容的纹理),以推导合适的参考差值(例如,差值块)的调色板,其然后将适合用于待编码的多个不同纹理。然后应该存储如此确定的参考差值调色板(例如,预定义的差值块的调色板)(例如)作为查找表,编码器(和解码器)然后可在对纹理数据块进行编码(和解码)时使用并参考所述查找表。
在这些布置方式中,对于待编码的任何给定纹理,因此优选将纹理的实际的“真”差值集合与预定义参考差值集合(调色板)进行比较,然后基于比较选择参考差值集合的适当部分(例如,差值块)(例如并且优选地,与纹理的“真”差值集合最匹配的部分),作为参考差值集合的用于形成将在编码时用于纹理的确定的差值集合的部分。
例如,并且优选地,为了确定参考差值集合的哪些部分与“真”差值最匹配而在纹理的实际差值与参考差值集合之间进行的比较可根据期望并使用任何合适的比较和相似性评估技术(例如,使用误差比较技术)实现,以确定与确定的纹理的“真”差值最匹配的预定义参考差值。(例如可根据期望通过产生纹理的低分辨率表示的升尺度版本,然后将其与原始纹理进行比较,来确定纹理的实际的“真”差值。)
在特别优选的实施方式中,在逐块的基础上确定将使用的预定义参考差值。因此,优选针对预定参考差值(例如并且优选地,针对预定参考差值块)测试待编码的各个纹理数据块,以确定(选择)哪些预定参考差值(例如,差值块)将用于(最适合于)该块。
因此,在特别优选的实施方式中,将编码纹理数据块要表示的纹理数据元素集合的实际差值集合与参考差值块的预定义调色板进行比较,然后基于比较(优选地,基于那个(哪些)参考差值块与所关注的纹理数据元素块的实际差值集合最匹配)选择用于编码纹理数据块要表示的纹理数据元素集合的一个或多个参考差值块。
如上所述,各个参考差值块优选对应于(在尺寸方面)编码块要表示的纹理数据元素阵列的子集,因此优选地,基于“子块”进行相应的编码纹理数据块的比较。因此,在特别优选的实施方式中,将编码纹理数据块要表示的纹理数据元素集合的实际差值集合的相应子集各自与参考差值块的预定义调色板进行比较,然后基于比较(优选地,基于哪一参考差值块与所关注的纹理数据元素块的差值子集的“真”差值最匹配)选择针对编码纹理数据块要表示的纹理数据元素集合的各个相应子集使用的参考差值块。
包括在各个编码纹理数据块中的指示将用于该块的来自确定的差数据集合的差数据的数据可按照任何期望且合适的方式指示差数据。例如,其可包括相关差值本身或者指示将使用的值的索引(则其将取自(例如)查找表)。
如上所述,如果定义可能的差数据值集合的调色板,则包括在编码纹理数据块中的指示将使用的差数据的数据优选地指示预定义调色板的哪些元素或哪个(那些)部分将用于所关注的编码块。
因此,如果使用预定义的参考差值调色板,则包括在编码纹理数据块中的指示将用于编码纹理数据块的差值的数据优选为指示参考差值调色板的哪个或哪些部分将用于编码纹理数据块的数据值(例如并且优选地,索引值)的形式。
因此,在特别优选的实施方式中,如果预定义的参考差值调色板为预定义的差值块(阵列)的形式,则编码纹理数据块包括指示哪个或哪些预定义的差值块将用于编码纹理数据块的一个或多个索引值。因此,如果各个编码纹理数据块表示8×8纹理数据元素块,并且预定义的参考差值调色板为预定义的4×4差值块的形式,则各个编码纹理数据块优选包括指示哪个预定义的4×4差值块将用于8×8纹理数据元素块的各个相应的4×4块的4个索引值。
例如,预定义的参考差值调色板中的索引值例如可简单地在与被支持的唯一索引值的数量对应的参考差值块集合中进行索引。然而,在特别优选的实施方式中,索引值方案被配置为使得可使用存储的较小的预定义参考差值块集合产生可使用的较大的预定义参考差值块集合。这优选通过编码并利用可使用的差值块之间的对称性(例如,旋转对称)和其它关系的索引方案来进行。
例如,使用的索引值可指示(并优选地指示)存储的预定义参考差值块集合中的基本索引,以及下列项中的一个或更多个(优选为全部):要用于索引的存储块的取向(旋转);存储的块值的符号是否取非;以及存储的块值是否应该乘以比例因子(如果使用的话,优选比例因子的值)。
在特别优选的实施方式中,使用12比特索引值来指示要使用的参考差值集合,其优选如下配置:存储的预定义参考差值块集合的7比特基本索引;限定要用于索引的存储块的取向(旋转)的2比特值;限定存储的块值的符号的1比特值(如果设置,所有块值将取非);以及限定块的幅度(amplitude)的2比特值(所有块值将乘以一加此值)。
这将允许存储的128个预定义参考差值块的集合用于产生将用于待编码的纹理数据元素块的差值的4096个不同的参考差值块。
因此,在特别优选的实施方式中,各个编码纹理数据块表示8×8纹理数据元素块,预定义参考差数据值块包括4×4差值阵列,各个编码纹理数据块包括指示将用于该编码纹理数据块的参考差值块的4个索引值,各个索引值优选具有12比特,并且优选具有上述格式。
类似地,在特别优选的实施方式中,各个编码纹理数据块将包括(并且仅包括)所述块的基本数据(例如,颜色)值以及指示要用于所述块的参考差值块的四个索引值。在特别优选的实施方式中,基本数据值将为16比特值(例如,单个RGB565值),差块索引值将各自为12比特。在此格式中,将使用64比特对给定的8×8纹理数据元素阵列进行编码(即,每像素(每纹元)使用1比特)。
从以上可以看出,申请人认识到,仍可通过利用差值集合所有效表示的高频数据中通常将存在的短重复周期来以有效的方式对本发明的编码方案中所使用的差值集合进行编码。尤其是,申请人认识到,图形纹理上的差值块往往会重复,并且足够类似以使得可通过重复来自更有限的代表性的差值集合(差值块)的差值块(集合)来足够精确地对它们进行编码(和表示)。那么这意味着仍可以有效的方式对纹理进行编码,同时仍使用全分辨率的差值集合来表示纹理中的较高频(从而提高编码的纹理的精度)。
因此,在特别优选的实施方式中,编码纹理数据块中的差数据集合的编码利用针对被编码的纹理的差数据集合中的重复。最优选地,通过针对表示纹理的不同的编码纹理数据块再次使用(重复)相同的差数据集合(即,使得纹理的两个或更多个编码纹理数据块将使用相同的差数据集合),来对差数据集合进行编码。
类似地,在特别优选的实施方式中,通过使用共有的差数据集合的适当部分表示各个相应的纹理的差数据来使用共有的差数据集合,以对多个不同的纹理进行编码。因此,优选针对待编码的多个不同的纹理再次使用共有的参考差数据集合(相同集合)。
尽管上面主要参照对颜色、RGB、纹理映射的编码描述了本发明,申请人认识到,即使不表示光度时,本发明也可有利地用于表示单分量(灰度)纹理。这是因为本发明的格式可花费非常少的比特表示颜色,使得单分量纹理的再现纹理质量也可很好。
因此,本发明还可用于(并优选地还用于)单分量数据,例如(并且优选为)任何类型的单分量细节映射,例如(并且优选为)下列项中的一个或更多个(优选全部):光泽映射、alpha映射、置换映射和视差映射。在这种情况下,基本数据值将是适当的光泽或alpha等值,差值则将基本上表示(近似于)纹理数据元素的升尺度再现数据值与数据元素的“真”值之间的误差。
在一个特别优选的实施方式中,本发明的形式的两个编码纹理数据块集合(即,本发明的形式的两个编码纹理)一起(组合)使用以表示纹理数据元素集合(纹理映射)。例如,在法向映射的情况下,本发明的形式的两个单分量编码纹理可用于例如分别对法向映射的X和Y分量进行编码,Z分量则由解码器通过知道(X,Y,Z)为单位矢量来重构。那么这将按照2bpp的速率给予很好的法向映射编码。类似地,本发明的形式的两个单独的纹理可用于给予RGB+alpha纹理映射的2bpp编码。
本发明还可用于对HDR(高动态范围)纹理进行编码。例如,对于单分量HDR纹理,块的基色值可被编码为L8E8(8比特带符号亮度,8比特带符号指数)值,而不是RGB565值(其中使用16比特基本数据值),以给予编码块共有的基本亮度值和指数。
还可使用本发明的形式的两个纹理按照2bpp对HDR RGB数据+(0...1)alpha进行编码(在优选实施方式中,就这样做)。在这种情况下,可使用各个块的RGB565基色值对RGB数据进行编码,使用A8E8基本值在单独的纹理中对alpha数据进行编码,其中A是块的基本alpha值,但“alpha”编码纹理的指数(E)值用作对应RGB纹理块的RGB值的指数,而非用作alpha值的指数。
在这种情况下,如果本发明的形式的两个纹理组合使用,则本发明的形式的每一相应对的两个单独编码的例如64比特的块(例如,一个用于RGB值,一个用于Alpha值)优选组合成表示总纹理的相关部分的例如128比特的“巨型块(megablock)”(例如,原始纹理的对应8×8纹元块的RGB+Alpha)。
如将从上面理解的,优选地,利用本发明的编码方法产生的编码纹理数据块将各自包括(并且优选地仅包括):该块的(单个)基本数据值,其将用于确定块所表示的纹理数据元素的基本数据值(例如,颜色);以及指示参考差值块的一个或更多个(在优选实施方式中,四个)索引值,其将与纹理数据元素的基本数据值一起用于确定编码纹理数据块所表示的纹理数据元素的值。
该信息可按照任何期望的顺序和布置方式包括在编码纹理数据块中,但在优选实施方式中,针对各个编码纹理数据块使用特定(优选共有的)格式和组织(organisation)。
如将从上面理解的,本发明的编码处理将操作以生成表示(并对应于)原始纹理映射的编码纹理数据块的流或集合。本发明的编码处理可以任何合适的方式对待编码的原始纹理数据执行或使用待编码的原始纹理数据进行。
例如,待编码的原始纹理映射可被降尺度,然后如上所述确定用于待编码的给定纹理数据元素块的差值集合。这将针对原始数据(例如,纹理映射)所分成的各个不同的块重复,以生成表示(并对应于)原始数据集合(例如,纹理映射)的编码纹理数据块的流或集合。
然后可将编码纹理数据块集合存储在例如诸如DVD的便携式存储装置上,以便于以后使用,例如当期望将纹理应用于待渲染的图像时。优选地,纹理被编码为MIP映射集合,各个MIP映射优选以本发明的方式产生。
原始数据(例如,纹理映射)所分成的各个块优选为相同的尺寸和配置。优选将使用的块尺寸提供给解码器。块尺寸优选不包括在编码纹理数据块本身中,而是优选单独地提供给解码器。例如,块尺寸可由提供给解码器的另一参数(例如,图像类型)隐含地指示,或者被包括在与编码纹理数据块集合关联(附着到编码纹理数据块集合)的(全局)数据头中(并在其中被指示)。
以上主要描述了本发明的编码技术。如本领域技术人员将理解的,本发明还扩展至相反的解码处理,即,其中使用一个或多个编码纹理数据块来生成一个或更多个纹理数据元素或生成纹理数据元素阵列以供使用。解码处理可以任何合适且期望的方式执行。
解码处理优选地首先包括:确定表示要使用的纹理映射的编码纹理数据块集合中的哪一编码纹理数据块表示(包含)的纹理数据元素的值被需要(即,要被解码)。这可(例如,并且优选地)基于纹理数据元素的位置(以及例如对块尺寸和纹理尺寸的了解)进行。
然后,可使用识别的编码纹理数据块来确定将用于所关注的纹理数据元素的值。该处理将实质上是编码处理的逆处理,因此例如包括利用编码纹理数据块中的基本数据值确定针对块的一个或多个纹理数据元素要使用的基本数据值,从编码纹理数据块确定块的一个或多个差值,并利用确定的块的纹理数据元素的基本数据值和确定的差值来产生将用于块所表示的各个纹理数据元素的一个或多个数据值(例如,颜色)。
然后,如本领域已知的,可将如此产生的解码纹元值应用于正渲染的采样位置和/或片断,以针对那些采样位置和/或片断产生渲染的数据,然后将所述渲染的数据例如写到显示器的帧缓冲器,以显示“纹理化的”采样位置和/或片断。
因此,本发明还扩展至一种解码器和解码设备,该解码器和解码设备被配置为对以本发明的方式编码的纹理进行解码。
如果适当的话,解码处理可包括(实际上,优选地包括)本文所述的本发明的各种优选和可选特征中的一个或更多个或全部。
因此,根据本发明的第四方面,提供一种对纹理数据块进行解码以确定所述块所表示的纹理数据元素的值的方法,所述纹理数据块对将在图形处理系统中使用的纹理数据元素集合进行了编码,所述方法包括:
从编码纹理数据块确定所述编码纹理数据块的基本数据值,并使用确定的所述纹理数据块的基本数据值来确定将用于所述块所表示的、其值待确定的纹理数据元素的基本数据值,所述基本数据值取自所述块所表示的纹理数据元素集合的低分辨率表示;
从所述编码纹理数据块确定差数据值,所述差数据值将在对所述纹理数据块进行解码时使用,以产生将用于所述块所表示的、其值待确定的所述纹理数据元素的数据值;以及
将确定的所述纹理数据元素的基本数据值与确定的所述纹理数据元素的差值一起使用以产生将用于所述纹理数据元素的数据值。
根据本发明的第五方面,提供一种对纹理数据块进行解码以确定所述块所表示的纹理数据元素的值的设备,所述纹理数据块对将在图形处理系统中使用的纹理数据元素集合进行了编码,所述设备包括:
用于从编码纹理数据块确定所述编码纹理数据块的基本数据值、并用于使用确定的所述纹理数据块的基本数据值来确定将用于所述块所表示的、其值待确定的纹理数据元素的基本数据值的装置,所述基本数据值取自所述块所表示的纹理数据元素集合的低分辨率表示;
用于从编码纹理数据块确定差数据值的装置,所述差数据值将在对所述纹理数据块进行解码时使用,以产生将用于所述块所表示的、其值待确定的所述纹理数据元素的数据值;以及
用于将确定的所述纹理数据元素的基本数据值与确定的所述纹理数据元素的差值一起使用以产生将用于所述纹理数据元素的数据值的装置。
如本领域技术人员将理解的,如果适当的话,本发明的所有这些方面可包括(优选地包括)本文所述的本发明的优选和可选特征中的任一个或更多个或全部。因此,例如,编码纹理数据块优选表示8×8纹理数据元素阵列,尺寸优选为64比特。
在本发明的解码处理中,可以以任何期望且合适的方式利用编码纹理数据块的(从编码纹理数据块确定的)(即,由编码纹理数据块指示的)基本数据值来确定将用于给定纹理数据元素的基本数据值。例如,可将该基本数据值简单地看做为编码纹理数据块本身的(即,从编码纹理数据块确定的)基本数据值。
然而,在特别优选的实施方式中,通过利用所关注的(即,纹理数据元素所属的)编码纹理数据块的基本数据值,与取自纹理的低分辨率表示的表示纹理的一个或更多个其它编码纹理数据块的一个或更多个基本数据值组合,来确定将用于其值待确定的纹理数据元素的基本数据值(即,优选利用多个编码纹理数据块的、取自纹理的低分辨率表示的基本数据值来确定将用于其值待确定的纹理数据元素的基本数据值)。
优选地,这通过将所关注的多个编码纹理数据块的基本数据值组合以(例如,并且优选地)基于所关注的纹理数据元素的位置推导所关注的纹理数据元素的基本数据值来进行。最优选地,如上所述,基于其值待确定的纹理数据元素的位置对多个编码纹理数据块的基本数据值进行线性过滤,以确定将用于该纹理数据元素的基本数据值。如上所述,申请人已发现,使用这种线性过滤可有助于保护低频梯度并避免解码纹理中的条带。
因此,在特别优选的实施方式中,通过对来自多个编码纹理数据块的基本数据值进行线性过滤来确定将用于给定纹理数据块的纹理数据元素的基本数据值。
如果使用多个编码块的基本数据值来推导将用于待解码的纹理数据元素的基本数据值,则优选地,将该纹理数据元素所属的块的基本数据值与最靠近所关注的纹理数据元素的三个相邻块的基本数据值一起使用。那么这将有利于利用例如双线性过滤来确定将用于该纹理数据元素的基本数据值。当然,其它布置方式也是可以的。
如果多个编码块的基本数据值要按照这种方式使用,则相应地,解码处理应该包括(优选地包括):识别要使用其基本数据值的相关编码纹理数据块(例如并且优选地,包含待解码的纹理数据元素的块以及(例如)基于待解码的纹理数据元素的位置的相关相邻块);确定如此识别的各个块的基本数据值;然后利用那些确定的基本数据值来产生要用于所关注的纹理数据元素的基本数据值(例如并且优选地,通过依据所关注的纹理数据元素的位置对所述块的基本数据值进行线性过滤)。
根据例如编码纹理数据块如何指示(表示)差值,可类似地以任何期望且合适的方式从编码的纹理数据块来确定要被用于其值待确定的纹理数据元素的差数据值。例如,如果编码块直接包括差值,则可识别该块中的相关差值并接着使用。
在特别优选的实施方式中,如上所述,通过使用包括在块中的索引值来确定要被用于待解码的纹理数据元素的差数据值,以识别例如存储在查找表中的用于该块的预定义差数据集合(并且最优选地,预定义的差数据块)以用于该块。
该处理优选地还包括:从包括在块中的索引值来确定是否应该对预定义的差数据块执行(应用)诸如旋转、取非(negation)或缩放(放大)中的一个或更多个(优选为全部)的任何操作,以给出(产生)将用于该块的差数据集合。如果是,则所指示的操作被优选地应用于识别的差数据集合。
一旦识别出要被用于上述纹理数据元素的预定义的差数据值集合并根据需要对其进行了例如旋转、缩放等,则优选地基于上述纹理数据元素的位置从所述差数据值集合中选择(确定)要被用于上述纹理数据元素的特定差值。
如上所述,如果编码块中可能包括例如针对该块的不同象限(quadrant)的多个差数据索引值,则应该(例如,基于所关注的纹理数据元素的位置)识别所关注的块的部分(例如,象限),然后确定针对该块部分(例如,象限)的索引以及差数据集合。
一旦确定了要被用于待解码的纹理数据元素的差值和基本数据值,则可将它们用于给出要被用于该纹理数据元素的解码数据(例如,颜色)值。优选地,这通过将确定的差值和基本数据值组合(优选通过将它们相加)来进行。如果纹理数据包括多个分量(例如,RGB),则优选适当地将差值与基本数据值的各个分量组合(相加)。如果存在单个差值,则优选将相同的差值分别与基本数据值的各个分量相加,以给出解码的输出(例如,颜色)值。
如果期望或需要,在最终输出以使用之前,可以使利用基本数据值和差值确定的数据(例如,颜色)值经受进一步处理。
例如,如果需要,可将其例如固定(clamp)到期望且允许的值范围(例如并且优选地,在RGB颜色的情况下为(0,255))。在一个优选实施方式中,就这样做。
类似地,例如在单分量HDR纹理的情况下,通过组合基本值和差值而得到的值优选保持为带符号整数值,然后将该整数值乘以2的指数幂,然后除以255.0f以给出要被输出并被用于纹理数据元素的浮点值。
然后,可根据期望将所确定的(如果需要,被固定等)的纹理数据元素的数据值输出给例如图形处理器的片断着色器以便于使用。
针对块的需要其值的各个纹理数据元素(并且针对其它编码块中的纹理数据元素)(针对纹理的需要其值的各个纹理数据元素)重复该解码处理。
在优选实施方式中,解码器(解码设备)实现在使用编码纹理的装置中,例如图形处理器。解码器优选地实现为被配置为执行所述解码处理的专用硬件元件。
如从以上理解到的,在特别优选的实施方式中,本发明的针对编码纹理的各个纹理数据元素的解码处理将相应地包括:基于纹理数据元素的位置,从表示纹理的编码纹理数据块集合中识别表示所述纹理数据元素的编码纹理数据块和三个相邻的编码纹理数据块;针对所识别的各个纹理数据块确定取自纹理的低分辨率表示的基本数据值;基于所述纹理数据元素的位置,对所识别的纹理数据块的所确定的基本数据值进行线性过滤,以产生所述纹理数据元素的基本数据值;基于所述纹理数据元素的位置,识别表示所述纹理数据元素的编码纹理数据块中的索引值,所述索引值指示预定差数据值集合;利用所述索引值从存储器取得所述预定差数据值集合;从所述索引值确定是否需要对所述预定差值集合应用任何操作(诸如且优选地,旋转、取非或缩放),如果是,则向所述预定差值集合应用那些操作;基于所述纹理数据元素的位置,从所述预定差值集合中识别要用于所述纹理数据元素的所述纹理数据元素的差值;以及将所识别的所述纹理数据元素的差值与确定的所述纹理数据元素的基本数据值相加,以产生所述纹理数据元素的解码值(并且随后,例如,对所述解码值进行固定或以其它方式处理(如果需要的话),并将其输出以便于例如图形处理器使用。
因此,根据本发明的另一方面,提供一种对编码纹理进行解码的方法,所述编码纹理表示要在图形处理系统中使用的纹理数据元素阵列,所述编码纹理为编码纹理数据块集合的形式,各个块表示纹理的纹理数据元素的子集,并且所述方法包括通过以下步骤确定编码纹理所表示的个别纹理数据元素的值:
基于其值待确定的纹理数据元素的位置,从表示所述纹理的编码纹理数据块集合中识别表示其值待确定的所述纹理数据元素的编码纹理数据块以及三个相邻编码纹理数据块;
针对所识别的各个纹理数据块,确定取自纹理的低分辨率表示的基本数据值;
基于所述纹理数据元素的位置,对所识别的纹理数据块的确定的基本数据值进行线性过滤,以产生所述纹理数据元素的基本数据值;
基于所述纹理数据元素的位置,识别表示所述纹理数据元素的编码纹理数据块中的索引值,所述索引值指示预定差数据值集合;
利用所述索引值从存储器取得所述预定差数据值集合;
基于所述纹理数据元素的位置,从所述预定差值集合中确定要用于所述纹理数据元素的差值;以及
使用所述纹理数据元素的确定的差值与所述纹理数据元素的确定的基本数据值以给出所述纹理数据元素的解码值。
类似地,根据本发明的另一方面,提供一种对编码纹理进行解码以确定编码纹理所表示的各个纹理数据元素的值的方法,所述编码纹理表示要在图形处理系统中使用的纹理数据元素阵列,所述编码纹理为编码纹理数据块集合的形式,各个块表示纹理的纹理数据元素的子集,所述设备包括:
用于基于其值待确定的纹理数据元素的位置从表示纹理的编码纹理数据块集合中识别表示其值待确定的所述纹理数据元素的编码纹理数据块以及三个相邻编码纹理数据块的装置;
用于针对所识别的各个纹理数据块确定取自纹理的低分辨率表示的基本数据值的装置;
用于基于所述纹理数据元素的位置对所识别的纹理数据块的确定的基本数据值进行线性过滤以产生所述纹理数据元素的基本数据值的装置;
用于基于所述纹理数据元素的位置而识别表示所述纹理数据元素的编码纹理数据块中的索引值的装置,所述索引值指示预定差数据值集合;
用于利用所述索引值从存储器取得所述预定差数据值集合的装置;
用于基于所述纹理数据元素的位置从所述预定差值集合中确定要用于所述纹理数据元素的差值的装置;以及
用于使用所述纹理数据元素的确定的差值与所述纹理数据元素的确定的基本数据值以给出所述纹理数据元素的解码值的装置。
如本领域技术人员将理解的,如果适当的话,本发明的所有这些方面可包括(优选地包括)本文所述的本发明的优选和可选特征中的任一个或更多个或全部。
因此,例如,编码纹理数据块优选地各自表示8×8纹理数据元素阵列,并且优选地尺寸为64比特,所述处理优选地还包括在从所述预定差值集合确定要用于所述纹理数据元素的差值时,从所识别的索引值来确定是否需要对所述预定差值集合应用诸如(并且优选地)旋转、取非和/或缩放(放大)的操作,如果是,则将该操作应用于所述预定差值集合。优选地,在检索块值之前执行任何影响取向的操作(因为这将影响被查找的值),和/或在检索块值之后执行修改块值本身的任何操作。
类似地,所述处理优选地还包括:优选在首先使解码值经受某些进一步处理(例如,将其固定至允许的值范围)之后,输出所述纹理数据元素的解码值以便于例如由图形处理器使用。
同样,优选针对纹理的需要其值的各个纹理数据元素重复所述处理。
本发明还扩展至本发明的编码和解码处理的组合使用,并且类似地扩展至可执行本发明的编码和解码处理二者的设备。
尽管上面具体参照图形处理系统中的纹理数据的编码和解码描述了本发明,如本领域技术人员将理解的,其将同样适用于数据处理系统的其它形式的数据的编码和解码,特别适用于(相似)数据元素(例如,值遵循公共或相似格式的数据元素和/或将被或可被用于相似或相同目的的数据元素或表示相似信息的数据元素)的阵列或块形式(或者可以以该形式表达)的数据。其特别适用于期望随机访问所述数据的数据编码和解码。
这样的数据例如可以包括用于仿真的矢量场、表示流体的流动方向或碰撞的弹跳方向等的数据(所述数据例如将相似于上面与图形数据相关讨论的法向映射(凹凸映射))、热映射(heat-map)或声音数据等。
在这些布置方式中,所述数据可以按照与本文所述的纹理数据相似的方式被编码和解码。
因此,根据本发明的另一方面,提供一种对要在数据处理系统中使用的数据元素集合进行编码的方法,所述方法包括以下步骤:
确定数据元素集合的低分辨率表示;
确定全分辨率的差数据集合,所述差数据集合表示数据元素集合的确定的低分辨率表示的升尺度版本与原始数据元素集合之差;以及
将数据元素集合编码为表示所述数据元素的一个或更多个数据块,各个这种数据块:
表示来自数据元素集合的数据元素块,并且包括:
指示所述块的基本数据值的数据,所述基本数据值取自数据元素集合的确定的低分辨率表示;以及
指示来自确定的差数据集合的差数据的数据,所述差数据将在对数据块
进行解码时使用以产生要用于数据块所表示的数据元素的数据值。
根据本发明的另一方面,提供一种对要在数据处理系统中使用的数据元素集合进行编码的设备,所述设备包括:
用于确定数据元素集合的低分辨率表示的装置;
用于确定全分辨率的差数据集合的装置,所述差数据集合表示数据元素集合的确定的低分辨率表示的升尺度版本与原始数据元素集合之差;以及
用于将数据元素集合编码为表示数据元素的一个或更多个数据块的装置,各个这种纹理数据块:
表示来自数据元素集合的数据元素块,并且包括:
指示所述块的基本数据值的数据,所述基本数据值取自数据元素集合的确定的低分辨率表示;以及
指示来自确定的差数据集合的差数据的数据,所述差数据将在对数据块进行解码时使用以产生要用于数据块所表示的数据元素的数据值。
根据本发明的另一方面,提供一种对数据块进行解码以确定所述块所表示的数据元素的值的方法,所述数据块对将用在数据处理系统中的数据元素集合进行了编码,所述方法包括以下步骤:
从编码的数据块确定编码的数据块的基本数据值,所述基本数据值取自所述块所表示的数据元素集合的低分辨率表示,并且使用数据块的确定的基本数据值来确定要用于块所表示的其值待确定的数据元素的基本数据值;
从编码的数据块确定差数据值,所述差数据值将在对数据块进行解码时使用以产生将用于所述块所表示的其值待确定的所述数据元素的数据值;以及
将所述数据元素的确定的基本数据值与所述数据元素的确定的差值一起使用以产生将用于所述数据元素的数据值。
根据本发明的另一方面,提供一种对数据块进行解码以确定所述块所表示的数据元素的值的设备,所述数据块编码了要在数据处理系统中使用的数据元素集合,所述设备包括:
用于从编码的数据块确定编码的数据块的取自所述块所表示的数据元素集合的低分辨率表示的基本数据值,并使用数据块的确定的基本数据值来确定将用于所述块所表示的其值待确定的数据元素的基本数据值的装置;
用于从编码的数据块确定差数据值的装置,所述差数据值将在对数据块进行解码时使用以产生将用于块所表示的其值待确定的所述数据元素的数据值;以及
用于将所述数据元素的确定的基本数据值与所述数据元素的确定的差值一起使用以产生将用于所述数据元素的数据值的装置。
如本领域技术人员将理解的,如果适当的话,本发明的所有这些方面可包括(优选地包括)本文所述的本发明的优选和可选特征中的任一个或更多个或全部。因此,例如,编码数据块优选地表示8×8数据元素阵列,尺寸优选地为64比特。
本发明的方法和设备可以任何适当的方式(例如,以硬件或软件)实现于(包括在)任何适当的装置或部件中。在优选实施方式中,所述方法和设备可实现于图形处理器中,因此,本发明还扩展至被配置为使用本发明的方法或包括本发明的设备的图形处理器。在优选实施方式中,本发明的方法和设备以硬件实现,优选地在单个半导体平台上实现。
本发明可实现于任何合适的系统中,诸如基于适当配置的微处理器的系统。在优选实施方式中,本发明实现于基于计算机和/或微处理器的系统中。
本发明的各种功能可以按照任何期望和合适的方式实现。例如,本发明的功能可如期望那样以硬件或软件来实现。因此,例如,本发明的各种功能元件和“装置”可包括能够操作以执行各种功能等的合适的处理器、控制器、功能单元、电路、处理逻辑、微处理器架构等,诸如适当的专用硬件元件和/或或可被编程为按照期望的方式操作的可编程硬件元件。根据期望,各种功能元件等可彼此分立,或者可共享电路(例如,由同一个处理器执行)。
这里,还应该注意的是,如本领域技术人员将理解的,本发明的各种功能等可被复制和/或在给定处理器上并行地执行。
本发明适用于任何合适形式或配置的图形处理器和渲染器,例如基于瓦片的图形处理器、即时模式渲染器、具有“管线”渲染布置方式的处理器等。
如将从以上理解的,本发明尤其(但非排他地)适用于图形处理器和处理装置,并且相应地扩展至包括本文所述的本发明的任一个或更多个方面的设备或依据所述方法操作的图形处理器和图形处理平台。对于执行上述特定功能所需的任何硬件,这种图形处理器可包括图形处理器所包括的常见功能单元等中的任一个或更多个或全部。
在一些实施方式中,数据处理系统、图形处理系统、数据处理器、图形处理器、处理电路、设备等可与存储本文所述的数据和/或存储用于执行本文所述处理的软件的存储器和/或一个或更多个存储器装置通信,所述数据诸如是纹理数据(原始纹理和/或编码纹理)、纹理的降尺度版本、参考差数据集合(差数据块)、纹理数据元素的值、编码纹理数据块等。数据处理系统、图形处理系统、数据处理器、图形处理器、处理电路、设备等还可与用于显示基于所产生的纹理数据的图像的显示器进行通信。
本领域技术人员还将理解,如果适当的话,描述的本发明的所有方面和实施方式可包括本文所述的优选和可选特征中的任一个或多个或全部。
根据本发明的方法可至少部分地利用软件(例如,计算机程序)来实现。因此,可以看出,在从其它方面考虑时,本发明提供了在被安装在数据处理装置上时特别适于执行本文所述的方法的计算机软件、包括在数据处理装置上运行时用于执行本文所述的方法的计算机软件代码部分的计算机程序元素、以及包括当在数据处理系统上运行时用于执行本文所述的方法的所有步骤的代码装置的计算机程序。数据处理系统可以是微处理器、可编程FPGA(现场可编程门阵列)等。
本发明还扩展至包括这种软件的计算机软件载体,所述软件在用于操作图形处理器、渲染器或包括数据处理装置的其它系统时,与所述数据处理装置结合使所述处理器、渲染器或系统执行本发明的方法的步骤。这种计算机软件载体可以是物理存储介质,诸如ROM芯片、CD ROM、RAM、闪存或盘,或者可以是诸如电线上的电信号、光学信号或到卫星的无线电信号等的信号。
还将理解,并不是本发明的方法的所有步骤均需要通过计算机软件来执行,因此在更广的方面而言,本发明提供计算机软件,这种软件安装在计算机软件载体上以用于执行本文所阐述的方法的至少一个步骤。
相应地,本发明可适当地实施为用于计算机系统的计算机程序产品。这种实现方式可包括一系列计算机可读指令,所述指令固定于诸如计算机可读介质(例如,磁盘、CD ROM、ROM、RAM、闪存或硬盘)的有形的永久介质上,或者可通过有形介质(包括但不限于光学或类似通信线路)或无形地利用无线技术(包括但不限于微波、红外或其他传输技术)经由调制解调器或其它接口装置传输至计算机系统。这一系列计算机可读指令实施本文先前所述的所有或部分功能。
本领域技术人员将理解,这些计算机可读指令可以使用用于许多计算机架构或操作系统的许多编程语言来编写。另外,这些指令可利用任何存储器技术(当前或未来的,包括但不限于半导体、磁或光学)来存储,或者利用任何通信技术(当前或未来的,包括但不限于光学、红外或微波)来传输。可以想到,这种计算机程序产品可作为可移除介质随所附的打印文档或电子文档一起分发(例如,被热塑封(shrinkwrapping)的软件),被计算机系统预载到例如系统ROM或固定盘上,或经网络(例如,因特网或万维网)从服务器或电子公告牌分发。
附图说明
现在将仅通过示例方式并参照附图描述本发明的许多优选实施方式,在附图中:
图1示意性地示出依据本发明实施方式将图像数据阵列编码为多个编码数据块;
图2示出本发明的优选实施方式中所使用的编码处理;
图3示出所描述的本发明的优选实施方式的编码块布局;
图4是示意性地示出本发明的优选实施方式的编码处理的流程图;
图5是示意性地示出本发明的优选实施方式的解码处理的流程图;以及
图6示意性地示出可使用以本发明的方式编码的纹理数据的图形处理系统。
具体实施方式
现在将参照对用于在图形处理中使用的纹理数据(纹理映射)的编码描述本发明的优选实施方式。然而,如上所述,并且如本领域技术人员将理解的,本发明适用于一般的数据编码和解码,因此不应被认为限于当前的纹理数据编码示例。
图1示出该实施方式的基本编码处理。如图1所示,原始图像或纹理数据元素(纹元)阵列1(纹理“映射”)被再分成多个8×8纹理元素块2。如果期望,也可使用其它块尺寸。)
在本实施方式中,如图1所示,原始图像(纹理映射)1被分成相等尺寸的块。这简化了寻找给定纹理数据元素在哪一块的任务,并给予了恒定的数据速率。(使用的块尺寸被单独地传递给解码器,而非将块尺寸包括在编码的纹理数据块本身中。例如,块尺寸可整体作为纹理描述的部分来存储,或者由与纹理关联的另一参数(例如图像类型)来隐含地指示。在优选实施方式中,在与所关注的纹理的编码纹理数据块集合关联的数据头中(明确地)指示块尺寸。)
在此实施方式中,原始纹理映射数据阵列(图像)中的各个纹理元素(纹元)表示相应纹理元素的位置处将使用的颜色,因此其分配有包括一组颜色值(例如,红、绿、蓝(RGB)值)的数据值。换言之,在此实施方式中,编码并产生的数据值等各自对应于并表示颜色(一组颜色值)。因此为了方便,下面的描述将主要提及“颜色”,但应该理解,这种提及指示包括表示所关注的颜色的一组颜色值的数据值。
在本实施方式中,并非将颜色数据阵列以完整的原始形式存储,而是将各个8×8纹理元素块2编码为纹理数据块5,纹理数据块5与原始未编码形式的纹理数据相比尺寸减小。这实际上对原始纹理数据进行了压缩,从而使其存储和处理更容易更高效。在本实施方式,各个编码纹理数据块5使用64比特。当各个编码纹理数据块5使用64比特来对8×8纹元阵列进行编码时,按照1bpp(平均每像素1比特)速率进行编码。(其它布置方式也将是可能的。)
如将在下面进一步讨论的,各个尺寸减小的编码纹理数据块5包含适当的数据以允许再现对应于或表示所关注的8×8纹理元素块的原始未编码的数据的数据。
在本实施方式中,各个纹理映射被编码为纹理数据文件,该文件包括一系列单独的纹理数据块,所述纹理数据块对构成纹理映射的纹理数据元素阵列进行编码。
在本实施方式中按照光栅序(raster order)对构成纹理映射1的各个8×8纹元块进行编码。当然,其它布置方式也将是可能的,例如使用莫顿序(Morton order)。
编码的纹理文件中的纹理数据块的数量将取决于被编码的纹理映射(纹理数据阵列)的大小以及(例如)数据是否以MIP映射(MIP-map)形式存储。如果使用MIP映射,则如果利用“n”个纹理数据块对第一层次的纹理映射分辨率进行编码,将有“n/4”个纹理数据块用于下面的MIP映射层次,“n/16”个块用于下一MIP映射,“n/64”用于下一,“n/256”用于再下一MIP映射层次,等等(但每一层次不小于一个块),直到达到尺寸为1×1的MIP映射层次。
(在本实施方式中,编码的纹理数据可以并且优选以MIP映射(即,其中存储有原始纹理数据阵列的多个版本以供使用,各个版本具有不同的细节层次(分辨率))的形式存储。MIP映射优选一个接一个地存储在存储器中,如本领域所知的,各个MIP映射层次是原始阵列(图像)的(通过因子2)降尺度的表示(图像)。MIP映射按照分辨率的降序存储,即,n×n、...、16×16、8×8、4×4、2×2、1×1。较小的MIP映射(<8×8)各分别存储在单独的编码数据块中。)
现在将参照图2、图3和图4描述本实施方式中所使用的对纹理数据元素(纹元)的块进行编码的格式。在此实施方式中,假设待编码的原始纹理是RGB565图像。
本实施方式中在对纹理进行编码时所使用的基本处理是将待编码的纹理分成两个单独的逻辑部分:纹理的低分辨率表示(版本)以及表示纹理的低分辨率表示的升尺度版本与原始纹理之差的全分辨率差(Δ)掩码。
原始纹理的低分辨率版本有效地对原始纹理中的低频色调和亮度数据进行编码,而差(Δ)掩码表示纹理中的高频数据。通过以这种方式对原始纹理进行编码,编码的纹理格式可使用更少的比特来编码高频数据,而不会有太多感知质量的损失(因为人眼对较低频的噪声更敏感)。
那么,用于表示原始纹理1的各个编码纹理数据块5包括来自纹理的低分辨率版本的适当数据以及指示将用于所关注的块的差掩码值的数据。
在本实施方式中,由于待编码的纹理1是RGB图像,所以纹理的低分辨率表示是从原始纹理推导的低分辨率(在各个方向上1:8)RGB565图像,差(Δ)掩码表示低分辨率图像的升尺度版本与原始纹理之间的发光度差(平均RGB差)。
图2示出这种情况,并且示出待编码的原始纹理(图像)10、纹理的对应低分辨率RGB565版本11以及全分辨率亮度Δ掩码12。
图3则示出用于表示原始纹理10的相应8×8纹元(纹理数据元素)块而产生的各个64比特编码纹理数据块的布局。
如图3所示,为纹理10中的各个相应的8×8纹元块产生的各个编码纹理数据块5首先包括16比特RGB565基色值20,其取自原始纹理10的低分辨率表示11中与所关注的编码纹理数据块5所要表示的8×8纹元块的位置对应的位置。
各个编码纹理块5还包括四个12比特亮度Δ索引21,其指示将用于所关注的编码纹理块的亮度Δ掩码、高频、数据。各个这种12比特Δ索引21指示预定义的4×4带符号8比特整数差数据值块,其将用于相应编码纹理数据块5所表示的8×8纹元块的相应4×4纹元子块。
用于此目的的预定义的4×4差数据值块取自预定义的4×4差值块的调色板,所述调色板预先例如通过如下步骤确定:利用不同的4×4差值块集合对多个典型的(例如,游戏内容)纹理进行编码,从而确定(例如,利用适当的机器学习算法)使用可用于编码并且最佳地表示要使用的典型纹理的预定义的4×4差值块的合适调色板。如此推导的预定义的差值块的调色板中的一些或全部被存储,例如存储为查找表25以供使用(在编码侧使用以及由解码器使用)。
在本实施方式中,所使用的这些块的调色板中所包括的不同的预定义差值块之间的各种对称性用于允许使用较少数量存储块来产生可用于编码(和解码)纹理的较大的预定义差值块调色板。
尤其是,在本实施方式中,各个12比特索引值21的前7比特用于从128个预定义4×4的8比特带符号整数差值块的查找表25识别4×4差值块(用作其索引),12比特索引21中接下来的2比特用于限定将使用的块的取向(旋转)(即,来自查找表的块是否应该旋转以及如何旋转以给出实际将使用的差值块),12比特索引21中接下来的比特限定将使用的块值的符号(如果设置此比特,则所有查找到的块值应该取负),12比特索引中的最后2比特限定将应用于查找到的块值的缩放(即,块的幅度)(所有块值乘以一加此值)。
那么这允许使用128个存储的预定义块来产生4096个预定义4×4差值块的调色板以在对纹理进行编码和解码时使用。
图4示意性地示出本实施方式的编码处理。此处理可在任何合适的编码器(例如硬件编码器)或适当编程的通用处理器(例如,能够访问存储器中的原始纹理数据的PC)中进行。
首先,将原始纹理10输入到编码器(步骤40),然后进行降尺度以产生原始纹理10的对应低分辨率表示11(步骤41)。
然后,利用线性过滤产生纹理的所产生的低分辨率表示11的全分辨率升尺度版本(即,分辨率与原始纹理相同)(步骤42)。然后,将原始纹理的低分辨率版本11的该升尺度版本与原始纹理10进行比较,以确定针对各个纹元指示纹理的低分辨率表示11的升尺度版本中的纹元值与原始纹理10中的纹元值之间的差(即,误差)的差值集合(步骤43)。在本实施方式中,纹元的差值被推导为表示两个纹元值之间的平均RGB差的8比特带符号整数值。当然,其它布置方式也将是可能的。
一旦这完成,则可针对原始纹理10中的各个8×8纹元块产生编码纹理数据块5(步骤44)。
为此,首先确定将包括在编码纹理数据块5中的基色值20。这如此完成:通过在与编码纹理数据块5将表示的8×8纹元块对应的位置处对纹理11的低分辨率表示进行采样来从纹理10的低分辨率表示11确定基色值20,以包括在编码纹理数据块5中。
接下来,确定将包括在编码纹理数据块5中的亮度△索引值(delta index values)21。
这如此完成:针对编码纹理数据块5将表示的8×8纹元块识别纹理的升尺度纹理低分辨率表示11与原始纹理10之间的已确定的差值集合,然后将那些确定的差值与预定义的差值块集合进行比较。
在本实施方式中,将针对被编码的8×8纹元块的各个相应4×4纹元象限确定的不同值的各个相应4×4差值块与预定义4×4差值块的预定调色板中的4×4预定义差值块集合进行比较,以从预定义差值块调色板识别与针对所考虑的8×8纹元块的相应4×4纹元块确定的“真”差值最匹配的预定义4×4差值块。(匹配处理可使用任何期望的测试方案,例如,测量确定的块的“真”差值集合与可能的预定义差值集合之间的峰值信噪比。)然后,将与预定4×4差值块最匹配的对应亮度Δ索引21指派给并包括在编码纹理数据块5中。针对被编码的8×8纹元块的各个4×4象限这样做,以提供将包括在编码纹理数据块5中的4个亮度Δ索引值21。
针对原始纹理10的各个8×8纹元块重复该处理,以产生表示原始纹理10的编码纹理数据块5集合。然后可将此编码纹理数据块集合输出并存储(步骤45)以便于将来用作纹理,例如由图形处理器用作纹理。编码纹理数据块集合例如可存储在诸如DVD的便携式存储装置上,以便于稍后使用,例如当期望将纹理应用于待渲染的图像时。优选地,产生MIP映射集合以表示纹理,各个MIP映射优选以上述方式产生。
现在将参照图5描述在处理图形以便于显示时使用本实施方式的形式的编码纹理的解码处理。(解码器例如可以是将使用纹理的图形处理器。优选使用硬件解码器)。
该处理中的第一步骤是识别需要其值(其值待确定)的纹元的位置(u,v)(步骤50)。利用此步骤,然后识别包含该纹元的编码纹理数据块5以及在该纹元附近的三个最靠近的相邻块,并加载以便于处理(步骤51)。然后,确定这四个编码纹理数据块5中的每一个的基色值20,并基于所关注的纹元的位置进行线性过滤(即,双线性过滤),以推导其值待确定的纹元的基色值(步骤52)。
(对四个基色值进行线性过滤以推导所关注的纹元的基色值的效果是在对编码纹理进行解码时通过对从纹理的低分辨率版本11采样的值进行线性过滤来将纹理10的低分辨率表示11升尺度。这样在解码时使用线性过滤来将纹理的低分辨率表示升尺度有利于保护原始纹理的低频梯度,并且例如避免解码的纹理中的条带。)
接下来,基于编码纹理数据块5所表示的8×8纹元块中的关注纹元的位置(即,象限)来识别表示其值待确定的纹元的编码纹理数据块5中所包括的亮度Δ索引21(步骤53)。然后,从预定义4×4差值块的查找表25识别并取得由12比特索引21的前7比特指示的相关的预定义4×4差值块(步骤54)。(该查找表由解码器(例如,图形处理器)适当存储或者被适当存储以使得解码器在使用时(例如,图形处理器)能够访问)。然后,将由亮度Δ索引值21指示的任何需要的旋转、取非和缩放(放大)应用于该4×4差值块(步骤55)。随后,基于纹元的位置从4×4差值块识别将用于所关注的纹元的差值(步骤56)。
然后,将如此识别的带符号的整数差(Δ)值(分别)与针对纹元确定的基色值20的红、绿和蓝分量中的每一个相加,以给出纹元的解码RGB值(步骤57)。
在本实施方式中,由于编码的纹理是RGB565纹理,然后将解码纹元红、绿、蓝值固定(clamp)至范围(0,255)。然后,将所得颜色值(R/255.0f,G/255.0f,B/255.0f,1.0f)输出以供使用,例如返回给需要该纹元的片断着色器(步骤58)。
然后,针对需要其值的各个纹元重复该处理。
图6示意性地示出可使用依据本实施方式进行了编码的纹理的图形处理系统60的构造。在此实施方式中,图形处理系统60是基于瓦片的渲染(tile-based rendering)系统。然而,当然其它布置方式也是可能的。
如图6所示,图形处理系统60包括状态管理系统61、光栅化级(rasterising stage)62以及渲染管线形式的渲染级63。将理解,图6所示的图形处理器60的每一级、元件和单元等可根据期望实现,并且将相应地包括(例如)适当的电路和/或处理逻辑等,以执行必要的操作和功能。
如本领域已知的,状态管理系统61存储和控制状态数据以及图形处理单元的状态,以控制图形处理操作。
如本领域已知的,光栅化器62以待显示的图元(primitive)作为其输入,并将那些图元光栅化至采样位置并产生待渲染的片断。
渲染管线63获得来自光栅化器62的片断,并对那些片断进行渲染以便于显示。如本领域已知的,渲染管线63将包括许多不同的处理单元,例如片段着色器、混合器、纹理映射器等。
渲染管线63的输出(渲染的片断)被输出给瓦片缓冲器64(因为本实施方式是基于瓦片的系统)。然后,瓦片缓冲器的输出最终输出给帧缓冲器65以用于显示。
图6还示意性地示出图形处理系统60的为其使用以本实施方式的方式编码的纹理而提供的特定特征。
具体地讲,如图6所示,渲染管线63包括纹理映射级66,其被配置为能够访问纹理列表缓冲器67以确定将接收的用于渲染的片断纹理化所需的纹理。
纹理列表缓冲器67将指示需要的纹理,并且随后,如本领域已知的,纹理映射器66将从存储器68取得相关的纹理数据,并使用取得的纹理数据来处理所关注的片断。
存储在纹理存储器68中的纹理利用本实施方式的编码格式来存储。因此,当纹理映射器66需要给定的纹元(一个或多个)以应用于被渲染的片断时,其将确定其针对所关注的纹元所需要的纹理映射以及该映射内的编码块(例如,如本领域已知的,基于纹元的位置以及对块尺寸和纹理尺寸的了解),从存储器68检索那些块,然后以上述方式从编码块确定纹元的值(例如,颜色)。
纹理映射器66为此包括合适的解码器(解码电路)。此解码器例如可以是被配置为对以本实施方式的形式编码的纹理进行解码的专用硬件元件的形式,或者例如可包括已被适当编程以能够对以本实施方式的形式编码的纹理进行解码的可编程处理电路。优选使用专用硬件解码器。
针对需要的各个纹元值重复该处理,然后将如此产生的解码纹元值应用于被渲染的采样位置(片断)以产生那些采样位置(片断)的渲染数据,然后将所述渲染数据例如写到显示器的帧缓冲器以显示“纹理化的”采样位置和/或片断。
尽管参照RGB颜色形式的纹理数据描述了上述实施方式,如上所述,并且如本领域技术人员将理解的,本发明还适用于其它形式的纹理数据(例如,亮度映射或凹凸映射(bump-map)等)以及其它非纹理数据。在这些布置方式中,数据可以按照类似方式被编码或解码,但各个数据值例如将表示亮度值或法向向量等,而非颜色。
实际上,例如,本发明可有利地用于表示单分量(灰度级)纹理。这是因为本发明的格式可花费非常少的比特来表示颜色,使得单分量纹理的再现纹理质量也可以很好。
因此,在优选实施方式中,编码和解码处理可用于单分量数据,例如(并且优选地为)任何类型的单分量细节映射,如(并且优选地为)下列项中的一个或更多个(优选全部):光泽映射、alpha映射、置换映射和视差映射。在这种情况下,各个编码纹理数据块5中所包括的基本数据值20将是适当的光泽或alpha等值,差值则将实质上表示(近似于)纹理数据元素的升尺度再现数据值与数据元素的“真”值之间的误差。
在另一优选实施方式中,上述实施方式的形式的两个编码纹理数据块集合(即,上述实施方式的形式的两个编码纹理)一起(组合)使用以表示纹理数据元素集合(纹理映射)。例如,在法向映射的情况下,本实施方式的形式的两个单分量编码纹理可用于分别对(例如)法向映射的X和Y分量进行编码,Z分量则由解码器通过知道(X,Y,Z)为单位矢量来重构。那么这将按照2bpp的速率给予很好的法向映射编码。类似地,本实施方式的形式的两个单独的纹理可用于给予RGB+alpha纹理映射的2bpp编码。
本实施方式还可用于对HDR(高动态范围)纹理进行编码。例如,对于单分量HDR纹理,块5的基色值20可被编码为L8E8(8比特带符号亮度,8比特带符号指数)值,而不是RGB565值(其中使用16比特基本数据值),以给出块5共有的基本亮度值和指数。在这种情况下,在对纹理进行解码时通过组合基本值和差值而得到的值优选保持为带符号整数值,然后将该整数值乘以2的指数幂,然后除以255.0f以给出将输出并用作解码纹元的值的浮点值。
还可使用本实施方式的形式的两个纹理按照2bpp对HDR RGB数据+(0...1)alpha进行编码。在这种情况下,可使用各个块的RGB565基色值对RGB数据进行编码,使用A8E8基本值在单独的纹理中对alpha数据进行编码,其中A是块的基本alpha值,但“alpha”编码纹理的指数(E)值用作对应RGB纹理块的RGB值的指数,而非用作alpha值的指数。
在这种情况下,如果本实施方式的形式的两个纹理将组合使用,则本实施方式的形式的每对两个单独编码的64比特块(例如,一个用于RGB值,一个用于Alpha值)优选组合成表示总纹理的相关部分的(例如)128比特的“巨型块”(例如,原始纹理的对应8×8纹元块的RGB+Alpha)。
可从上面看出,至少在其优选实施方式中,本发明提供基于块的纹理编码方案,其可允许每8×8纹元块仅使用64比特(平均每纹元1比特)以许多使用情况可接受的质量进行完整的RGB纹理(以及其它纹理)的存储。
然后这可允许图形应用在实时地纹理映射图元时消耗较少带宽,并且这可相应地有利于允许嵌入式图形系统将纹理以非常高的分辨率应用于视觉元素,同时消耗比当前的工业标准纹理压缩方案少许多的带宽。本发明所实现的较低数据速率还使纹理消耗较少的内存并且允许将它们更快速地上传(流传输)至图形处理器存储器。(因此,至少在其优选实施方式中,本发明可尤其可用于流传输动画(视频)纹理)。至少在其优选实施方式中,本发明相应地还可给予游戏和其它图形应用更少的盘空间占用和更短的加载时间。本发明的格式还可用于针对每纹元1比特的格式以非常好的质量对单分量纹理进行编码,并且可针对尺寸以很好的质量使用本发明的形式的两个纹理以按照每纹元2比特例如对法向数据或RGB+alpha数据进行编码。
因此,本发明尤其可应用于移动游戏领域,因为它提供高压缩率,因此适合于具有有限的存储资源和存储带宽的装置。高压缩率例如还有利于游戏或其它应用的下载,因为它可缓解增加下载时间或与下载时间有关的网络带宽和用户成本问题。
至少在本发明的优选实施方式中,这全部通过将待编码的纹理分成两个逻辑部分,即,纹理的低分辨率表示以及表示纹理的低分辨率表示的升尺度版本与原始纹理之差的全分辨率差掩码,然后在各个编码纹理数据块中对来自纹理的低分辨率表示的适当基本数据值以及指示将用于编码纹理数据块的差掩码值集合的数据进行编码来实现。
Claims (24)
1.一种对将在图形处理系统中使用的纹理数据元素集合进行编码的方法,所述方法包括:
确定所述纹理数据元素集合的低分辨率表示;
确定全分辨率的差数据集合,所述差数据集合表示确定的所述纹理数据元素集合的低分辨率表示的升尺度版本与原始纹理数据元素集合之差;以及
将所述纹理数据元素集合编码为表示纹理数据元素的一个或更多个纹理数据块,各个这种纹理数据块:
表示来自所述纹理数据元素集合的纹理数据元素块,并且包括:
指示所述块的基本数据值的数据,所述基本数据值取自确定的所述纹理数据元素集合的低分辨率表示;以及
指示来自确定的所述差数据集合的差数据的数据,所述差数据将在对所述纹理数据块进行解码时使用,以产生将用于所述纹理数据块所表示的纹理数据元素的数据值。
2.根据权利要求1所述的方法,其中,包括在各个编码纹理块中的指示所述纹理数据块的来自原始数据的低分辨率表示的基本数据值的数据包括直接取自所述纹理数据元素集合的低分辨率表示的数据值。
3.根据前述权利要求中的任一项所述的方法,其中,针对所述纹理数据元素集合确定的差数据集合包括用于所述纹理数据元素集合的各个相应的纹理数据元素的相应单个差数据值,所述单个差数据值将用于所述纹理数据元素的所有分量。
4.根据前述权利要求中的任一项所述的方法,其中,确定的用于所述纹理数据元素集合的差值集合包括取自预定义参考差值集合的差值。
5.根据前述权利要求中的任一项所述的方法,其中,各个编码纹理数据块中所包括的指示将使用的差数据的数据包括一个或多个索引值,该一个或多个索引值指示来自多个预定义参考差值块集合中的将用于所述编码纹理数据块的预定义的一个或多个差值块。
6.根据权利要求5所述的方法,其中,所述索引值指示所述预定义参考差值块集合中的基本索引以及下列项中的一个或更多个:将用于被索引的块的取向;是否对被索引的块的值的符号取非;以及被索引的块的值是否应该乘以比例因子。
7.根据前述权利要求中的任一项所述的方法,所述方法包括:将两个编码纹理数据块集合组合使用以表示纹理数据元素集合。
8.一种对纹理数据块进行解码以确定所述块所表示的纹理数据元素的值的方法,所述纹理数据块对将在图形处理系统中使用的纹理数据元素集合进行了编码,所述方法包括:
从编码纹理数据块确定所述编码纹理数据块的基本数据值,并使用确定的所述纹理数据块的基本数据值来确定将用于所述块所表示的、其值待确定的纹理数据元素的基本数据值,所述基本数据值取自所述块所表示的纹理数据元素集合的低分辨率表示;
从所述编码纹理数据块确定差数据值,所述差数据值将在对所述纹理数据块进行解码时使用,以产生将用于所述块所表示的、其值待确定的所述纹理数据元素的数据值;以及
将确定的所述纹理数据元素的基本数据值与确定的所述纹理数据元素的差值一起使用以产生将用于所述纹理数据元素的数据值。
9.根据权利要求8所述的方法,所述方法包括使用下列项确定将用于其值待确定的所述纹理数据元素的基本数据值:
确定的所述纹理数据元素所属的编码纹理数据块的基本数据值,以及从表示所述纹理数据元素集合的一个或更多个其它编码纹理数据块确定的一个或多个基本数据值。
10.根据权利要求8或9所述的方法,所述方法包括通过下列步骤确定将用于待解码的纹理数据元素的差数据值:
基于所述纹理数据元素的位置在表示所述纹理数据元素的编码纹理数据块中识别指示预定差数据值集合的索引值;
利用所述索引值从存储器取得预定差数据值集合;以及
基于所述纹理数据元素的位置从所述预定差值集合确定将用于所述纹理数据元素的差值。
11.根据权利要求10所述的方法,所述方法还包括:
从所述索引值确定是否需要将任何操控应用于所述预定差值集合,并且如果是,则将那些操控应用于所述预定差值集合;以及
基于所述纹理数据元素的位置从被这样操控的预定差值集合识别将用于所述纹理数据元素的差值。
12.一种对将在图形处理系统中使用的纹理数据元素集合进行编码的设备,所述设备包括:
用于确定所述纹理数据元素集合的低分辨率表示的装置;
用于确定全分辨率的差数据集合的装置,所述差数据集合表示确定的所述纹理数据元素集合的低分辨率表示的升尺度版本与原始纹理数据元素集合之差;以及
用于将所述纹理数据元素集合编码为表示纹理数据元素的一个或更多个纹理数据块的装置,各个这种纹理数据块:
表示来自所述纹理数据元素集合的纹理数据元素块,并且包括:
指示所述块的基本数据值的数据,所述基本数据值取自确定的所述纹理数据元素集合的低分辨率表示;以及
指示来自确定的所述差数据集合的差数据的数据,所述差数据将在对所述纹理数据块进行解码时使用,以产生将用于所述纹理数据块所表示的纹理数据元素的数据值。
13.根据权利要求12所述的设备,其中,包括在各个编码纹理块中的指示所述纹理数据块的来自原始数据的低分辨率表示的基本数据值的数据包括直接取自所述纹理数据元素集合的低分辨率表示的数据值。
14.根据权利要求12或13所述的设备,其中,针对所述纹理数据元素集合确定的差数据集合包括用于所述纹理数据元素集合的各个相应的纹理数据元素的相应单个差数据值,所述单个差数据值将用于所述纹理数据元素的所有分量。
15.根据权利要求12至14中的任一项所述的设备,其中,确定的用于所述纹理数据元素集合的差值集合包括取自预定义参考差值集合的差值。
16.根据权利要求12至15中的任一项所述的设备,其中,各个编码纹理数据块中所包括的指示将使用的差数据的数据包括一个或多个索引值,该一个或多个索引值指示来自多个预定义参考差值块集合中的将用于所述编码纹理数据块的预定义的一个或多个差值块。
17.根据权利要求16所述的设备,其中,所述索引值指示所述预定义参考差值块集合中的基本索引以及下列项中的一个或更多个:将用于被索引的块的取向;是否对被索引的块的值的符号取非;以及被索引的块的值是否应该乘以比例因子。
18.一种对纹理数据块进行解码以确定所述块所表示的纹理数据元素的值的设备,所述纹理数据块对将在图形处理系统中使用的纹理数据元素集合进行了编码,所述设备包括:
用于从编码纹理数据块确定所述编码纹理数据块的基本数据值、并用于使用确定的所述纹理数据块的基本数据值来确定将用于所述块所表示的、其值待确定的纹理数据元素的基本数据值的装置,所述基本数据值取自所述块所表示的纹理数据元素集合的低分辨率表示;
用于从编码纹理数据块确定差数据值的装置,所述差数据值将在对所述纹理数据块进行解码时使用,以产生将用于所述块所表示的、其值待确定的所述纹理数据元素的数据值;以及
用于将确定的所述纹理数据元素的基本数据值与确定的所述纹理数据元素的差值一起使用以产生将用于所述纹理数据元素的数据值的装置。
19.根据权利要求18所述的设备,其中,用于确定将用于其值待确定的纹理数据元素的基本数据值的装置使用下列项确定将用于其值待确定的所述纹理数据元素的基本数据值:
确定的所述纹理数据元素所属的编码纹理数据块的基本数据值,以及从表示所述纹理数据元素集合的一个或更多个其它编码纹理数据块确定的一个或多个基本数据值。
20.根据权利要求18或19所述的设备,其中,用于确定将用于待解码的纹理数据元素的差数据值的装置通过下列步骤确定将用于待解码的所述纹理数据元素的差数据值:
基于所述纹理数据元素的位置在表示所述纹理数据元素的编码纹理数据块中识别指示预定差数据值集合的索引值;
利用所述索引值从存储器取得预定差数据值集合;以及
基于所述纹理数据元素的位置从所述预定差值集合确定将用于所述纹理数据元素的差值。
21.根据权利要求20所述的设备,所述设备还包括:
用于从所述索引值确定是否需要将任何操控应用于所述预定差值集合,并且如果是,则将那些操控应用于所述预定差值集合的装置;以及
用于基于所述纹理数据元素的位置从被这样操控的预定差值集合识别将用于所述纹理数据元素的差值的装置。
22.一种包括权利要求12至21中任一项所述的设备的图形处理器。
23.一种表示将在图形处理系统中使用的纹理数据元素集合的纹理数据块,所述纹理数据块包括:
指示所述块的基本数据值的数据,所述基本数据值取自确定的所述纹理数据元素集合的低分辨率表示;以及
指示取自全分辨率的差数据集合的差数据的数据,所述差数据集合表示确定的所述纹理数据元素集合的低分辨率表示的升尺度版本与原始纹理数据元素集合之差,并且所述差数据将在对纹理数据块进行解码时用于所述纹理数据块所表示的纹理数据元素,以产生将用于所述纹理数据块所表示的所述纹理数据元素的数据值。
24.一种包括计算机软件代码的计算机程序,当所述程序在数据处理装置上运行时执行根据权利要求1至11中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/836,887 | 2013-03-15 | ||
US13/836,887 US10147202B2 (en) | 2013-03-15 | 2013-03-15 | Methods of and apparatus for encoding and decoding data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104050688A true CN104050688A (zh) | 2014-09-17 |
CN104050688B CN104050688B (zh) | 2019-06-04 |
Family
ID=50634829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410096151.1A Active CN104050688B (zh) | 2013-03-15 | 2014-03-14 | 数据编码和解码方法和设备以及计算机可读记录介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10147202B2 (zh) |
KR (1) | KR102164847B1 (zh) |
CN (1) | CN104050688B (zh) |
GB (1) | GB2514653B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106548498A (zh) * | 2015-09-22 | 2017-03-29 | 三星电子株式会社 | 用于处理压缩纹理的方法和设备 |
CN110505395A (zh) * | 2018-05-20 | 2019-11-26 | 宏达国际电子股份有限公司 | 操作方法、头戴式装置及追踪系统 |
CN111818344A (zh) * | 2015-04-08 | 2020-10-23 | 寰发股份有限公司 | 视频编解码中调色板模式上下文编解码和二值化的方法 |
CN112868034A (zh) * | 2018-10-18 | 2021-05-28 | 索尼公司 | 用于放大的增强颜色再现 |
CN113518223A (zh) * | 2017-04-28 | 2021-10-19 | 想象技术有限公司 | 用于纹理解压缩的解码器单元 |
CN113678453A (zh) * | 2019-04-12 | 2021-11-19 | 北京字节跳动网络技术有限公司 | 基于矩阵的帧内预测的上下文确定 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9058637B2 (en) | 2011-05-05 | 2015-06-16 | Arm Limited | Method of and apparatus for encoding and decoding data |
US9578074B2 (en) | 2013-11-11 | 2017-02-21 | Amazon Technologies, Inc. | Adaptive content transmission |
US9634942B2 (en) | 2013-11-11 | 2017-04-25 | Amazon Technologies, Inc. | Adaptive scene complexity based on service quality |
US9374552B2 (en) | 2013-11-11 | 2016-06-21 | Amazon Technologies, Inc. | Streaming game server video recorder |
US9582904B2 (en) | 2013-11-11 | 2017-02-28 | Amazon Technologies, Inc. | Image composition based on remote object data |
US9641592B2 (en) | 2013-11-11 | 2017-05-02 | Amazon Technologies, Inc. | Location of actor resources |
US9805479B2 (en) | 2013-11-11 | 2017-10-31 | Amazon Technologies, Inc. | Session idle optimization for streaming server |
US9604139B2 (en) | 2013-11-11 | 2017-03-28 | Amazon Technologies, Inc. | Service for generating graphics object data |
US9679348B2 (en) * | 2014-05-15 | 2017-06-13 | Disney Enterprises, Inc. | Storage and compression methods for animated images |
KR102247565B1 (ko) * | 2014-09-12 | 2021-05-03 | 삼성전자 주식회사 | 렌더링 방법 및 장치 |
US20160112724A1 (en) * | 2014-10-15 | 2016-04-21 | Qualcomm Incorporated | Hrd descriptor and buffer model of data streams for carriage of hevc extensions |
US10212434B2 (en) | 2015-01-30 | 2019-02-19 | Qualcomm Incorporated | Palette entries coding in video coding |
US10880566B2 (en) * | 2015-08-28 | 2020-12-29 | Boe Technology Group Co., Ltd. | Method and device for image encoding and image decoding |
GB2552323B (en) * | 2016-07-18 | 2020-04-29 | Imagination Tech Ltd | Mip map compression |
KR20180056313A (ko) * | 2016-11-18 | 2018-05-28 | 삼성전자주식회사 | 텍스처를 처리하는 방법 및 장치 |
US10460502B2 (en) * | 2016-12-14 | 2019-10-29 | Samsung Electronics Co., Ltd. | Method and apparatus for rendering object using mipmap including plurality of textures |
US11049216B1 (en) | 2020-01-21 | 2021-06-29 | Arm Limited | Graphics processing systems |
US11030783B1 (en) | 2020-01-21 | 2021-06-08 | Arm Limited | Hidden surface removal in graphics processing systems |
EP4113382A4 (en) | 2020-09-15 | 2023-08-30 | Samsung Electronics Co., Ltd. | ELECTRONIC DEVICE, ITS CONTROL METHOD AND SYSTEM |
US11770584B1 (en) * | 2021-05-23 | 2023-09-26 | Damaka, Inc. | System and method for optimizing video communications based on device capabilities |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060269152A1 (en) * | 2001-12-03 | 2006-11-30 | Imagination Technologies Limited | Method and apparatus for compressing data and decompressing compressed data |
CN1898699A (zh) * | 2003-12-19 | 2007-01-17 | 艾利森电话股份有限公司 | 阿尔法图像处理 |
CN101447084A (zh) * | 2008-12-19 | 2009-06-03 | 北京师范大学 | 一种基于Quardtree的三维模型纹理压缩编/解码方法 |
CN101511017A (zh) * | 2009-03-20 | 2009-08-19 | 西安电子科技大学 | 基于网格的立体视频空间可分级编码器及其编码方法 |
US20100046846A1 (en) * | 2006-12-20 | 2010-02-25 | Sony Computer And/or Decompression | Image compression and/or decompression |
CN101710993A (zh) * | 2009-11-30 | 2010-05-19 | 北京大学 | 基于块的自适应超分辨率视频处理方法及系统 |
CN101911712A (zh) * | 2008-01-16 | 2010-12-08 | 索尼公司 | 可扩展编码框架中使用纹理分析和合成的视频编码系统 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2440768C3 (de) | 1974-08-26 | 1982-03-18 | Philips Patentverwaltung Gmbh, 2000 Hamburg | Verfahren und Vorrichtung zur Datenkompression für die Faksimile-Übertragung graphischer Information |
US4969204A (en) | 1989-11-29 | 1990-11-06 | Eastman Kodak Company | Hybrid residual-based hierarchical storage and display method for high resolution digital images in a multiuse environment |
US5047853A (en) | 1990-03-16 | 1991-09-10 | Apple Computer, Inc. | Method for compresssing and decompressing color video data that uses luminance partitioning |
US5046119A (en) | 1990-03-16 | 1991-09-03 | Apple Computer, Inc. | Method and apparatus for compressing and decompressing color video data with an anti-aliasing mode |
US5218431A (en) * | 1990-04-26 | 1993-06-08 | The United States Of America As Represented By The Secretary Of The Air Force | Raster image lossless compression and decompression with dynamic color lookup and two dimensional area encoding |
US5227789A (en) | 1991-09-30 | 1993-07-13 | Eastman Kodak Company | Modified huffman encode/decode system with simplified decoding for imaging systems |
US6236405B1 (en) | 1996-07-01 | 2001-05-22 | S3 Graphics Co., Ltd. | System and method for mapping textures onto surfaces of computer-generated objects |
US6738058B1 (en) | 1997-04-30 | 2004-05-18 | Ati Technologies, Inc. | Method and apparatus for three dimensional graphics processing |
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 |
JP2001507823A (ja) | 1997-10-28 | 2001-06-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 画像の圧縮及び復元 |
JP2000090249A (ja) * | 1998-09-14 | 2000-03-31 | Fujitsu Ltd | 画像処理装置および画像処理方法およびコンピュータを画像処理装置として動作させるためのプログラムが記録されたコンピュータ読み取り可能な記録媒体 |
US6298169B1 (en) | 1998-10-27 | 2001-10-02 | Microsoft Corporation | Residual vector quantization for texture pattern compression and decompression |
GB2348334A (en) | 1999-03-22 | 2000-09-27 | Videologic Ltd | A method of compressing digital image data |
US20040252900A1 (en) | 2001-10-26 | 2004-12-16 | Wilhelmus Hendrikus Alfonsus Bruls | Spatial scalable compression |
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 |
SE0401850D0 (sv) * | 2003-12-19 | 2004-07-08 | Ericsson Telefon Ab L M | Image processing |
SE0401852D0 (sv) | 2003-12-19 | 2004-07-08 | Ericsson Telefon Ab L M | Image processing |
GB2439481B (en) | 2005-03-04 | 2008-08-06 | Arm Norway As | Method of and apparatus for encoding data |
GB0504570D0 (en) | 2005-03-04 | 2005-04-13 | Falanx Microsystems As | Method of and apparatus for encoding data |
US7983498B1 (en) | 2007-08-06 | 2011-07-19 | Nvidia Corporation | Low dynamic range 3-channel color compression |
CN101953166B (zh) | 2008-02-21 | 2013-06-05 | 法国电信公司 | 被划分为像素块的图像或图像序列的编码和解码 |
JP4354510B1 (ja) | 2008-05-01 | 2009-10-28 | 株式会社コナミデジタルエンタテインメント | 画像処理装置、画像処理方法、ならびに、プログラム |
FR2947134A1 (fr) | 2009-06-23 | 2010-12-24 | France Telecom | Procedes de codage et de decodages d'images, dispositifs de codage et de decodage, flux de donnees et programme d'ordinateur correspondants. |
US9153064B2 (en) | 2009-12-23 | 2015-10-06 | Intel Corporation | Grouping pixels to be textured |
US8605104B1 (en) | 2009-12-31 | 2013-12-10 | Nvidia Corporation | Threshold-based lossy reduction color compression |
WO2012030262A1 (en) | 2010-09-03 | 2012-03-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Co-compression and co-decompression of data values |
US9058637B2 (en) | 2011-05-05 | 2015-06-16 | Arm Limited | Method of and apparatus for encoding and decoding data |
US9478069B2 (en) * | 2012-01-25 | 2016-10-25 | St-Ericsson Sa | Compression format conversion for texture data |
US9177415B2 (en) | 2013-01-30 | 2015-11-03 | Arm Limited | Methods of and apparatus for encoding and decoding data |
-
2013
- 2013-03-15 US US13/836,887 patent/US10147202B2/en active Active
-
2014
- 2014-03-10 KR KR1020140027512A patent/KR102164847B1/ko active IP Right Grant
- 2014-03-14 CN CN201410096151.1A patent/CN104050688B/zh active Active
- 2014-03-14 GB GB1404642.9A patent/GB2514653B/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060269152A1 (en) * | 2001-12-03 | 2006-11-30 | Imagination Technologies Limited | Method and apparatus for compressing data and decompressing compressed data |
CN1898699A (zh) * | 2003-12-19 | 2007-01-17 | 艾利森电话股份有限公司 | 阿尔法图像处理 |
US20100046846A1 (en) * | 2006-12-20 | 2010-02-25 | Sony Computer And/or Decompression | Image compression and/or decompression |
CN101911712A (zh) * | 2008-01-16 | 2010-12-08 | 索尼公司 | 可扩展编码框架中使用纹理分析和合成的视频编码系统 |
CN101447084A (zh) * | 2008-12-19 | 2009-06-03 | 北京师范大学 | 一种基于Quardtree的三维模型纹理压缩编/解码方法 |
CN101511017A (zh) * | 2009-03-20 | 2009-08-19 | 西安电子科技大学 | 基于网格的立体视频空间可分级编码器及其编码方法 |
CN101710993A (zh) * | 2009-11-30 | 2010-05-19 | 北京大学 | 基于块的自适应超分辨率视频处理方法及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111818344A (zh) * | 2015-04-08 | 2020-10-23 | 寰发股份有限公司 | 视频编解码中调色板模式上下文编解码和二值化的方法 |
CN106548498A (zh) * | 2015-09-22 | 2017-03-29 | 三星电子株式会社 | 用于处理压缩纹理的方法和设备 |
CN113518223A (zh) * | 2017-04-28 | 2021-10-19 | 想象技术有限公司 | 用于纹理解压缩的解码器单元 |
CN110505395A (zh) * | 2018-05-20 | 2019-11-26 | 宏达国际电子股份有限公司 | 操作方法、头戴式装置及追踪系统 |
CN112868034A (zh) * | 2018-10-18 | 2021-05-28 | 索尼公司 | 用于放大的增强颜色再现 |
CN112868034B (zh) * | 2018-10-18 | 2024-01-16 | 索尼公司 | 用于放大的增强颜色再现 |
CN113678453A (zh) * | 2019-04-12 | 2021-11-19 | 北京字节跳动网络技术有限公司 | 基于矩阵的帧内预测的上下文确定 |
CN113678453B (zh) * | 2019-04-12 | 2024-05-14 | 北京字节跳动网络技术有限公司 | 基于矩阵的帧内预测的上下文确定 |
Also Published As
Publication number | Publication date |
---|---|
GB2514653B (en) | 2017-07-26 |
KR20140113379A (ko) | 2014-09-24 |
CN104050688B (zh) | 2019-06-04 |
US20140267283A1 (en) | 2014-09-18 |
GB2514653A (en) | 2014-12-03 |
KR102164847B1 (ko) | 2020-10-14 |
GB201404642D0 (en) | 2014-04-30 |
US10147202B2 (en) | 2018-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104050688A (zh) | 对数据进行编码和解码的方法和设备 | |
US9582845B2 (en) | Method of and apparatus for encoding and decoding data | |
CN102521848B (zh) | 用于编码数据的方法和设备 | |
CN107273301B (zh) | 存储阵列的方法和设备、确定数据值的方法和设备、介质 | |
US9014496B2 (en) | Methods of and apparatus for encoding and decoding data in data processing systems | |
CN104012097B (zh) | 用于压缩和解压缩数据的方法与装置 | |
KR101464770B1 (ko) | 이미지 처리 | |
US20130084018A1 (en) | Method of and apparatus for encoding data | |
GB2503691A (en) | Determining endpoint values for encoding and decoding texture data | |
US8285063B2 (en) | Multi-mode vector-based image processing | |
Vaidyanathan et al. | Random-access neural compression of material textures | |
GB2439482A (en) | Encoding Texture Data | |
CN106717002B (zh) | 基于块的混合压缩 | |
Meyer | Real-Time Geometry Decompression on Graphics Hardware | |
Andujar | Topographic map visualization from adaptively compressed textures | |
Sun et al. | High-Quality Multi-Mode Mipmapping Texture Compression with Alpha Map | |
Chen et al. | An Improved Texture Compression Method for Graphics Hardware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |