CN101816021B - 用于使用行和列斜率码字对像素块值进行无损压缩的方法、压缩器、解压缩器 - Google Patents

用于使用行和列斜率码字对像素块值进行无损压缩的方法、压缩器、解压缩器 Download PDF

Info

Publication number
CN101816021B
CN101816021B CN2007801009533A CN200780100953A CN101816021B CN 101816021 B CN101816021 B CN 101816021B CN 2007801009533 A CN2007801009533 A CN 2007801009533A CN 200780100953 A CN200780100953 A CN 200780100953A CN 101816021 B CN101816021 B CN 101816021B
Authority
CN
China
Prior art keywords
row
slope
pixel
code word
pattern
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.)
Expired - Fee Related
Application number
CN2007801009533A
Other languages
English (en)
Other versions
CN101816021A (zh
Inventor
斯特罗姆·雅各布
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN101816021A publication Critical patent/CN101816021A/zh
Application granted granted Critical
Publication of CN101816021B publication Critical patent/CN101816021B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Generation (AREA)

Abstract

本发明涉及对深度值的像素块(300)的压缩。确定作为参考深度值的表示的参考码字(410)。分别确定作为针对块(300)中的行(310)和列(320)的基本深度斜率的表示的行(420)和列(430)斜率。至少针对行(310)或列(320)的子集,确定指示沿至少该行(310)或列(320)的一部分发生斜率改变的像素位置的表示。确定作为由多个斜率校正样式构成的集合的表示的模式码字(440)。接着,针对行(310)或列(320)选择相应的样式码字(450),作为斜率校正样式之一的标识符。

Description

用于使用行和列斜率码字对像素块值进行无损压缩的方法、压缩器、解压缩器
技术领域
本发明总体涉及对像素参数值的无损压缩和解压缩,具体涉及适于深度缓冲压缩和解压缩的这样的压缩和解压缩。 
背景技术
三维图形的实时呈现在移动终端上具有多种吸引人的应用,包括游戏、人机接口、消息收发和m商务。由于三维呈现是计算量大的任务,通常必须构建专用硬件以满足足够的性能。因此,降低该硬件架构的复杂度和带宽使用的新颖方式是十分重要的。主要的瓶颈(尤其对于移动终端)是存储器带宽。用于降低存储器带宽使用的常见技术是深度缓冲压缩。 
通常以非排序顺序绘制诸如三角形等基元。为了确保书写离眼睛最近的三角形,通常使用深度缓冲器。深度缓冲器针对每像素,保持对于该特定像素的深度(即到眼睛的距离)。在书写新像素之前,首先从深度缓冲器中读取相应深度。如果新深度小于前一书写深度,才书写新像素。接着,必须将新深度值写入深度缓冲器。深度值的这种读写将产生大量存储器存取,从而限制了性能。 
深度缓冲压缩通过将深度缓冲器划分为片或像素块,并存储压缩格式的片来工作。当读取深度缓冲值时,读取并解压缩整个深度片。接着,修改深度值,并在将该片再次写入存储器之前,对其进行压缩。由于通常逐片进行光栅化(rasterization),一次读取和写入一个整片而不是逐像素读取和写入通常不成问题。 
由于该解压缩和压缩可以针对特定片发生多次,压缩是无损的(即非破坏性的)是重要的。 
深度缓冲器包括各像素的深度,并且由于场景是由平面三角形组成的,源自特定三角形的片中的所有像素将是共线的。特别地,如果片中所 有像素来自同一三角形,片中的所有像素将是共线的。在这样的情况下,可以通过仅仅存储所考虑的三角形的平面方程而不存储独立的像素深度来获得片的无损表示。许多深度缓冲算法以该方式工作。Hasselgren和 
Figure GPA00001081531600021
在他们的论文[1]中提供了对已知深度缓冲压缩方案的全面回顾。 
Hasselgren和 
Figure GPA00001081531600022
还在该论文[1]中给出了采用差分差分脉冲脉冲编码调制(DDPCM)的现有技术方案的改进。他们的关键贡献在于,可以不使用{-1,0,1}的校正值,而对每像素仅采用一比特。他们作出的发现在于,由于沿x方向的斜率在两个值间交变,始终可以使用较小的斜率,然后针对每个像素使用1比特的斜率校正值。 
与校正值为{-1,0,1}之一因而针对每像素使用两比特进行编码的先前的DDPCH方案相比,Hasselgren和 使用每像素一比特校正值,因此每像素节省了一比特。这意味着在4×4像素的片中节省13比特,或针对8×8片节省61比特。然而,即使具有该比特节省,Hasselgren和 
Figure GPA00001081531600024
也只能在无损方式下压缩可能深度范围的大约93%。如果目标过于接近摄像机或观察者,深度缓冲压缩压缩将失效,并且必须不压缩地存储深度片。 
发明内容
因此,需要能够以更高效的方式利用经压缩的片的比特,以增加能够以无损方式压缩的片的数目,从而降低存储器带宽。 
本发明克服了现有技术配置的上述和其他缺陷。 
本发明的总体目的是,提供一种对像素块的高效的压缩和解压缩。 
本发明的另一目的是,提供一种适于深度缓冲值的压缩和解压缩。 
这些和其它目的由所附权利要求所定义的发明满足。 
简言之,本发明涉及对具有相关像素参数值(如深度缓冲值)的像素的块进行压缩和解压缩。所述压缩涉及:确定参考码字,作为针对块的参考像素参数值的表示。确定行斜率码字,作为针对所述块中行的基本参数斜率的表示。相应地,确定列斜率码字,作为针对列的基本参数斜率的表示。 
基于所述行/列的所述像素参数值的至少一部分,确定指示沿所述行/列的至少一部分发生斜率改变的像素位置的表示。这样的表示是针对所述块中的多个行/列(优选地针对所有行/列)产生的。确定模式码字,模式码字是由多个斜率校正样式构成的集合的表示。每个这样的校正样式是特定的预定义表示,指示可沿行/列应用的位置相关斜率校正符。基于所产生的位置指示表示,针对行/列选择相应的样式码字。样式码字是来自由所述模式码字定义的样式集合中的斜率校正样式的表示。 
在对压缩块的解压缩中,基于压缩块中的参考码字,确定参考像素参数值。基于(行和/或列)斜率码字产生基本参数斜率,如行和/或列参数斜率。利用压缩块中的模式码字来提供包括由多个斜率校正样式构成的样式集合。包括所要解码的像素的行/列具有相关的样式码字。该样式码字被用于标识所提供的样式集合的斜率校正样式之一。接着,可以利用参考参数值、基本参数斜率和斜率校正样式,来计算像素的像素参数值。 
本发明还涉及分别用于对像素块进行压缩和解压缩的压缩器和解压缩器,以及经压缩的像素块的信号表示。 
附图说明
通过参考结合附图的以下说明可以最佳地理解本发明及其其他目的和优点,附图中: 
图1是根据本发明实施例的压缩方法的流程图; 
图2A和2B示出了可以根据本发明使用在逐行或逐列压缩中的像素块; 
图3是根据本发明实施例的像素块的压缩表示的示意图; 
图4是更详细地示出了图1的产生步骤的实施例的流程图; 
图5A至5C示意性地示出了在本发明的压缩方法中产生分布表示的实施例; 
图6示出了根据本发明的所使用的预定义分布样式的可用集合; 
图7A示出了可以根据本发明使用的另一像素块; 
图7B示意性地示出了在针对图7A所示的像素块的本发明的压缩方法中处理像素行的实施例; 
图8示出了包括两个平面的像素块; 
图9示出了根据本发明的所使用的预定义分布样式的另一可用集合; 
图10示出了根据本发明的所使用的预定义分布样式的又一可用集合; 
图11A至11C示出了根据本发明的所使用的预定义分布样式的再一可用集合; 
图12A至12E示意性地示出了在针对图10所示的像素块的本发明的压缩方法中处理像素行的实施例; 
图13是根据本发明实施例的解压缩方法的流程图; 
图14是可以应用本发明的教导的深度缓冲架构的示意框图; 
图15是根据本发明实施例的压缩器的示意框图; 
图16是根据本发明实施例的压缩器的表示生成器的示意框图; 
图17是根据本发明实施例的解压缩器的示意框图;以及 
图18A至18M示出了根据本发明用于8像素行或列实现的可能的分布样式的示例。 
具体实施方式
在附图中,对相应或相似的元件使用相同的参考标记。 
本发明总体涉及对像素参数值的无损压缩和解压缩,具体涉及适于深度缓冲压缩和解压缩的这样的压缩和解压缩。 
本发明还适于与诸如游戏、3D地图和场景、3D消息(如动画消息)、屏保、人机接口(MMI)等三维(3D)图形一起使用,但不限于此。因此,本发明还可用于对其他类型的图像或图形(如一维(1D)、二维(2D)或3D图像)进行编码。 
在本发明中,压缩和解压缩共同地处理多个像素,通常以像素块或像素片的形式处理像素。在本发明的优选实施例中,像素块具有M×N像素的尺寸,其中M、N是整数,且M和N不同时为1。优选地,M=2m且N=2n,其中m、n是零或整数,且m和n不同时为0。在典型实现中,M=N,并且优选的这样的块实施例可以是4×4像素、8×8像素或16×16像素。 
表述像素或“图像元素”指块或块的编码表示中的元素。继而,该块 对应于图像、纹理或缓冲器的部分。因此,根据本发明,图像元素可以是(1D、2D、3D)纹理的texel(纹理元素),(1D或2D)图像的像素或3D图像的voxel(体元素)。一般地,以相关像素参数值或特征来表征像素。在本发明的优选实施例中,像素参数值是深度值或所谓Z值。该特征代表针对特定像素的到眼睛的深度或距离,并控制在呈现期间将实际显示哪个像素。 
尽管本发明特别适于压缩和解压缩像素块的这样的深度值,但本发明不限于此,并且还可以结合其他类型的像素参数值和特征来使用。这些特征包括颜色分量值,如红(R)、绿(G)或蓝色(B)颜色分量,或在如YUV或YCrCb的其他颜色空间中的颜色分量。另外的示例包括像素的透明度或alpha值。 
然而,压缩和解压缩适于处理共线像素参数值,即位于平面中的参数。因此,要压缩的块的像素参数值都位于参数空间的单个平面中,或位于多个平面的集合(典型地两个平面)之一中。这种要求暗示,可以使用比像素参数值的原始比特数少的比特来实现像素块的无损压缩。 
此外,以下,术语“图像”用于表示可以按照本发明编码和解码的任意1D、2D或3D图像或纹理,包括但不限于凸凹位图、常规位图、相片、游戏型纹理、文本、绘图、高动态范围图像和纹理等。 
压缩 
图1是示出了根据本发明的像素块压缩方法的流程图。该方法起始于步骤S1,确定参考码字,作为参考像素参数值的表示。优选地,该码字是存在于要压缩的块中的像素参数值之一的表示。在第一实施例中,参考码字可以是参数值的非量化版本。例如,如果特定参数值是230=0000000011100110bin(采用24比特分辨率)并且参考码字具有相同的比特分辨率,值0000000011100110bin可以直接被用作参考码字。然而,在其他实施例中,原始像素参数值可能具有比参考码字可以表示的精度更高的精度。在这样的情况下,参考码字可以是原始像素参数值的量化或舍入版本的表示。例如,参考码字0000000011100110bin可以被用作原始像素参数值229.8的表示。此外,注意到,参考码字可以获得比原始像素参数值少的比特。例 如,可以用21比特码字来表示24比特原始值,同时假设起始比特是已知的。 
码字确定步骤S1优选地涉及:获取在块中所选像素位置中的像素的像素参数值,并可选地由此计算(量化)码字,或将所获取的值直接用作参考码字。所选像素位置优选地是块中预定义的位置,这暗示着,根据本发明,对于要压缩的所有块在码字确定步骤S1中使用相同的像素位置。优选位置是位于块的角落之一的像素。传统地,在现有技术的深度缓冲值压缩的情况下使用左上角中的像素。然而,本发明不限于该特定像素位置,并且可以使用任一角落像素,或者甚至块中的任意像素,但是帧像素、特别是角落像素是优选的。图2A和2B示出了要编码的像素330的4×4块300。在这些图中,以实心圆标记在确定参考码字中使用的像素位置,即左上角中的像素。 
下一步骤S2确定块的行斜率码字,作为针对块的行的基本参数斜率的表示。在优选实现中,块的(至少一部分)的像素参数值是共线的,因此至少对于原始未量化的参数值具有相同的原始行斜率。例如,像素行可能具有以下原始值[109.8,112.6,115.4,118.2]。此处,斜率是该行中相邻参数值间的逐对差异118.2-115.4=115.4-112.6=112.6-109.8=2.8。只要参数值是共线的,对于块的其他行,相同行斜率也是有效的。 
行斜率码字优选地是原始行斜率的整数部分的表示,即以上示例中的2。如果原始未量化的参数值在压缩中可用,步骤S2的码字确定可以计算在块的任意行中任意相邻像素参数值对间的差异。接着,将行斜率码字确定为所计算的斜率(差异)的整数部分的表示。 
如果对参数值进行了量化,如舍入为整数值,典型地在步骤S2中采用另一方法。以上给出的参数值的舍入版本将是[110,113,115,118]。此处,行中相邻值间的逐对差异将给出2或3的值。在这样的情况下,行斜率码字被一致地确定为最小斜率值的表示或一致地确定为最大斜率值的表示。此处重要的是,必须对要编码的所有块取最小或最大斜率值。优选地,将所计算的最小斜率值一致地用于行斜率码字确定步骤的基础。在负斜率的情况下这同样适用。例如,在原始值的情况下,斜率可以是-1.6,从而当使用舍入值时为-1或-2。在这样的情况下,优选地,将最小值-2用 作行斜率码字确定的基础。 
下一步骤S3对块的列执行类似的过程。此外,结果是列斜率码字,列斜率码字是针对块的列的基本参数斜率的表示。以步骤S2相同的方式执行该步骤S3,但此时使用列中的参数值而不是行中的参数值。 
可以以任意顺序或者甚至并行地执行步骤S1至S3。 
此时,可以逐行310地执行像素块300的压缩(如图2A中示意的),或者逐列320地执行像素块300的压缩(如图2B中示意的)。从质量的观点来看,两种可能是等效的。以下,结合逐行压缩大体描述本发明(参见图2A)。然而,本发明的教导还可适用于逐列压缩。在后一情况下,简单地将以下描述中的表述“行”替换为“列”并将“列”替换为“行”。 
下一步骤S4产生指示沿当前行(或在图2B的情况下当前列)的至少一部分发生斜率改变的像素位置的表示。该步骤S4可以通过记录在哪些像素位置处斜率与在步骤S2中确定的行斜率码字表示的块的基本行斜率不同来实现。因此,假设如上的一行像素值[110,113,115,118],基本参数斜率为2。在该示例中,相邻参数值间的差(即斜率)是[-,3,2,3]。在该情况下,像素位置1和3具有与2不同的斜率,因此在这两个像素位置发生了斜率改变。然而,在像素位置2的斜率与基本行斜率相等,在此处未发生斜率改变。如果将基本行斜率值从以上列出的斜率值减去,得到[-,1,0,1]。作为结果,指示沿当前行出现斜率改变的像素位置的表示可以是101的形式,其中1bin表示斜率改变,反之,0bin意味着在该位置的相邻参数值间的差等于基本行斜率。 
优选地,位置指示表示是基于该行的所有像素参数值产生的。然而,对于特定实施例,仅仅采用该行中像素值的子集可能就足够了。当沿行/列的至少一部分行进时,这些表示可以被看作指示了参数值的相对分布。 
如线L1示意性示出的,至少重复一次步骤S4。这意味着,针对像素块的至少两行来确定位置指示表示。但在优选实施例中,步骤S4是针对块的每行来执行的。 
下一步骤S5确定块的模式码字。该码字是由多个斜率校正样式构成的集合的表示。每个这样的样式是指示沿行可应用的位置相关斜率校正符的特定的预定义表示。因此,这样的样式是比特序列,具有在解压缩期间 可应用于基本行斜率以获取针对行中不同像素位置的正确斜率值的斜率校正符。对于四像素行,样式可以从000bin到111bin。优选地,存在多种不同的可用样式集合,其中每个集合包括可用斜率校正样式的不同子集。 
在行斜率码字是可以通过使用原始未量化像素参数值获得的行斜率的整数部分的表示的情况下,样式集合可适于处理行斜率的不同小数部分。例如,如果原始行斜率的小数部分是区间[0,k1],将对该块使用第一样式集合,如果小数部分是区间[k1,k2],使用第二集合等等,直到适于对小数斜率在区间[ki,1]中的块进行处理的最后的样式集合。 
因此,模式码字确定步骤S5涉及:从多个预定义集合中选择样式集合。如果可以使用原始未量化参数值并且可以计算原始未量化行斜率,可以基于所计算的行斜率的特定小数部分,选择样式集合。然而,在其他应用中,仅仅量化参数值可以结合块压缩使用。在这样的情况下,优选地,基于在步骤S4中产生的位置指示表示选择所要使用的特定样式集合。接着,使用至少两个或优选地所有位置指示表示,并将它们与可用于不同集合的不同斜率校正样式进行比较。选择包含与位置指示表示相对应样式的集合。优选地,每个样式集合与一个集合标识符相关联。此时,将与所选择的样式集合相关的该标识符用作步骤S5中的模式码字。例如,如果存在多达4个不用的可用集合,可以使用2比特模式码字,3比特模式码字可以处理多达8个不同的集合,如此等等。 
步骤S6确定样式码字,作为来自由所确定的模式码字表示的样式集合中的斜率校正样式的表示。该样式码字是基于在步骤S4中针对当前行产生的位置指示表示执行的。因此,步骤S6涉及从所选集合选择与针对行计算的位置指示表示相对应的斜率校正样式之一。样式码字被确定为所选斜率校正样式的指示符。 
优选地,针对块中的所有行或者至少针对在步骤S4中对其产生了位置指示表示的那些行,执行步骤S6,线L2示意性示出了这点。因此,每个这样的行具有与由所确定的模式码字表示的样式集合中校正样式之一相关的所分配的样式码字。 
方法可选地,但优选地包括确定当走向下一行时可应用的斜率或像素修正符。这样的斜率修正符是当走向下一行时可以被应用以获得正确列斜 率的单个校正项。例如,假设第一列的量化像素参数值是[110,231,351,472]。在这种情况下,基本列斜率将是两个相邻像素值间最小的差异,即120。那么,为斜率确实为120的那些行(在该示例中从行1到行2)分配斜率或像素修正符0bin,而对于斜率为121而不是120的行转移使用修正符1bin。在此处示例中,斜率修正符将是101。如果块包括N行,那么优选地确定N-1个斜率修正符。 
因此,该方法优选地包括针对块中至少一行(或者在图2B的情况下至少一行)确定可应用于列的基本参数斜率的斜率修正符的附加部分。此外,基于列的像素参数值的至少一部分执行修正符确定。接着,方法终止。 
压缩的结果是原始像素块的压缩表示。图3示意了这样的压缩块400。压缩块300包括:参考码字410、行斜率码字420、列斜率码字430、模式码字440和多个样式码字450,优选地每个这样的码字450对应块中的一行(或列)。优选地,压缩块400还包括如前所述针对列方向的像素或斜率修正符460。由本发明可以预计,包括压缩块400的包含分量的实际顺序可以不同于图中所示的顺序。 
图4是更详细地示出了产生位置指示表示的实施例的流程图。该方法从图1的步骤S3起继续。下一步骤S10对原始参数值进行量化,除非该参数值已被量化。量化的典型示例是将该值舍入为整数。一般地,量化涉及将原始参数值写为具有所定义的有限比特尺寸的量化值。此时,优选地,量化值是原始值的最佳Q比特表示,其中Q是量化值的比特尺寸。下一步骤S11执行一行(或列)中相邻量化像素参数值和针对行(或列)的基本参数斜率的逐对减法。因此,该计算涉及确定Pi+i-Pi-R,其中Pi是行中位置i处的经量化的像素参数值,R是该行的基本参数斜率。接着,该方法继续图1的步骤S5或返回步骤S10以确定下一行的位置指示表示。 
图5A至5C示出了根据本发明的确定位置指示表示背后的原理。例如,4像素行可以具有以下原始参数值[109.8,112.6,115.4,118.2]。如可以在图5A中看出的,这将等效于以斜率2.8绘制一条线。 
在图5A中,标记了像素的中点线与所绘制的线交叉的像素。所标记的像素还表示通过量化原始值获得的值,即[110,113,115,118]。 
通过从未量化的参数值中移除斜率2.8的整数部分(即2),得到以下 值[109.8,110.6,111.4,112.2]。这是附图5B的等效,其中此时线的斜率一定小于1,这是由于仅保留了小数斜率部分。在这种情况下,小数斜率是2.8-2.0=0.8。 
由图5B的图,可以识别在其中发生斜率改变的那些像素位置。这对应于当沿行行进时必须提高一个步长的那些位置。像素0是锚或参考值,不具有校正值。像素1是比前一像素高一个步长。这意味着,在该位置发生行斜率改变,从而得到值1bin。像素2具有与前一值相同的高度,并且不发生斜率改变。因此,像素获得值0bin。最终,像素3获得校正值1bin。图5C示出了最终位置指示表示101bin,并且可以看到该表示可以被看作不同段长度的步长样式。 
此处,本发明的关键是注意到,所有行将具有完全相同的小数斜率,在该例中为0.8。这意味着行间的差异是线的位置而不是其斜率。那么,该对应于具有不同步长的不同步长样式。 
图6示出了针对四像素行的可能的所有校正样式,即位置指示表示。该样式被组织为4个不同的样式集合。第一样式集合具有所分配的模式码字00bin,并且包括样式000bin、001bin、010bin和100bin。这些样式对应于长度为3和4的段。模式涵盖从0到1/3的小数斜率。下一集合具有模式码字01bin,并且包括校正样式101bin、001bin、010bin和100bin。该集合包括段长度为2和3个像素的样式,并涵盖1/3和1/2间的小数斜率。第三集合具有模式码字10bin,并包括样式101bin、110bin、010bin和011bin。该样式在长度为2像素的段间具有0或1个长度为1像素的段。可以使用该集合来处理区间1/2和2/3间的小数斜率。最终集合分配了码字11bin,并且包括校正样式101bin、110bin、111bin和011bin。这些样式在长度2像素的段间具有1或2个长度为1的段,并且涵盖小数区间2/3至1。 
由Hasselgren和 
Figure GPA00001081531600101
[1]提出的现有技术DDPCM过程在它们的校正矩阵中针对4×4块花费15比特。对于该块尺寸,本发明只需要2比特模式码字、4个2比特样式码字(每行或列一个)以及3个1比特斜率修正符,总计13比特。这意味着,同现有技术相比节省了2比特。该2比特节省可以用于减少压缩块总尺寸的目的。可选地,如果采用与现有技术相同的总压缩块尺寸将是有利的,则两个自由比特可以被用于提高 参考码字和/或斜率码字的分辨率。这样的增强意味着,同使用现有技术相比,可以以无损方式压缩的块的百分比增加。 
压缩示例 
以下是压缩示例,用以示意本发明的进行。假设具有以下参数值的经量化的输入像素块: 
110 113 115 118 231 233 236 239 351 354 357 359 472 475 477 480
首先选择参考参数像素值并确定参考码。码字可以是左上角中像素值的比特表示,即110。在该示例中,如图2A所示对块进行逐行压缩。基本行参数斜率被定义为当在行中行进一个步长时的最小斜率。在该示例中,不同的行斜率为2和3,意味着行斜率码字被确定为2的比特表示。对应的列斜率是120和121,意味着列斜率码字被确定为120的比特表示。此后,执行逐对减法,其中从下一参数值中减去同一行中的前一相邻参数值。此外,从结果差异中减去基本行参数斜率2,以获得位置指示表示。对于第一行的结果为: 
113-110-2=1 
115-113-2=0 
118-115-2=1 
该行的位置指示表示为101bin。针对其他三行执行相同过程,给出: 
- 1 0 1 - 0 1 1 - 1 1 1 - 1 1 0
接着,基于这四个位置指示表示选择用于该块的有关样式集合。通过参考图6,看到具有模式码字11bin的样式集合包含所有所需校正样式。接着,针对该行确定与位置指示表示相对应的特定校正样式。第一行具有表示101bin。这对应于具有图6中样式码字00bin的校正样式。剩下的行具有码字11bin、10bin和01bin。 
最后,通过第一列中相邻像素参数值的逐对减法并通过减去基本列参 数斜率来确定该列的斜率修正符。结果变为: 
231-110-120=1 
351-231-120=0 
472-351-120=1 
因此,斜率修正符是101bin。因此,最终压缩块包括: 
i)比特表示110-参考码字 
ii)比特表示2-行斜率码字 
iii)比特表示120-列斜率码字 
iv)11bin-模式码字 
v)00bin、11bin、10bin、01bin-样式码字 
vi)101bin-斜率修正符 
同文献[1]中的现有技术相比,针对4×4块,采用本发明的增益为2比特。这看似仅仅是一个很小的优势。然而,应当注意该2比特节约是没有代价的,不会造成压缩质量的任何降低。对于较大块尺寸(如8×8块),同现有技术相比该增益极大增加。 
同4×4块相比,对8×8块需要更多的样式模式以允许更多的小数斜率。其原因在于,由于此时每行具有8个像素而不是4个像素,更细粒度的表示是可能的。 
对可能的校正样式的分析显示出8种样式模式将涵盖所有情况: 
模式A:具有长度1或2的段的校正样式(四个或更多个连续的1)
模式B:具有长度1或2的段的校正样式(三个或四个连续的1)
模式C:具有长度1或2的段的校正样式(两个或三个连续的1)
模式D:具有长度1或2的段的校正样式(一个或两个连续的1)
模式E:具有长度1或2的段的校正样式(零个或更多个连续的1)
模式F:具有长度2或3的段的校正样式。 
模式G:具有长度3、4或5的段的校正样式。 
模式H:具有长度5、6、7或8的段的校正样式。 
对于这些模式,为了对8像素的整行进行编码仅仅4个比特是必须的,参见附录。因此,在8×8块中,模式码字变为3比特,样式码字为4比特。这意味着,除了参考码字、行和列斜率码字之外,经压缩的8×8块包 括3+8×4+7=42比特,其中最后7比特是针对第一列的7个1比特斜率修正符。应当将此与文献[1]中的现有技术方案进行比较,现有技术方案对于它们的校正矩阵需要63比特。作为结果,每个压缩块节省了21比特,节省的比特可用于提高参考码字、行斜率码字和/或列斜率码字的分辨率。可选地,可减小压缩块的整体尺寸。 
然而,该方案在理论上是有利的,也许从实现的角度看不是最佳的。在16个7比特样式(校正样式)间选择就表面面积而言可能变得过大。其次,在8×8情况下我们实际不需要如此多的额外比特。如果以全分辨率对所有参数进行编码,得到: 
参考码字:      24比特 
行和列斜率码字:2×25比特 
模式码字:      3比特 
样式码字:      8×4比特 
斜率修正符:    7比特 
总计:          116比特 
这远远小于128,因此其可能对于使用稍稍更加低效的编码来减少实现负担是有意义的。通常压缩块的期望比特尺寸是由深度缓冲架构中使用的总线的带宽限定的。在单个存储器存取中获取压缩块,或者在尽可能少的这样的存取中获取压缩块。目前,深度缓冲架构的总线带宽典型地是64或128比特。作为结果,具有128比特或比116比特稍少的压缩块可能是更好的,这是由于116比特块将需要与128比特块相同的存储器存取次数。然而,如果就硅面积而言116比特版本实现负担显著高于128比特版本,则后者是最可能希望看到的。 
一种可选方案是将8像素行(7个校正比特)编码为两个4像素行(3个校正比特加1比特斜率修正符)。那么,我们可以使用与4×4情况中相同的编码。此时,每行需要5比特,这是由于每行需要两个2比特样式码字加1比特斜率修正符。8×8块将使用: 
参考码字:      24比特 
行和列斜率码字:2×25比特 
模式码字:      2比特 
样式码字:  8×5比特 
斜率修正符:7比特 
总计:      123比特 
来编码。 
这仍低于被看作优选压缩块尺寸的128比特的预算。 
在这样的情况下,图1的步骤S4涉及针对行/列并基于行/列的像素参数值的第一部分,产生第一位置指示表示。步骤S4还包括基于行/列的像素参数的第二(剩下)的部分,产生第二位置指示表示。接着,步骤S6包括针对每行/列的两个像素位置中的每一个确定样式码字。 
在上述本发明的示例中,块的所有像素参数值在一个平面内。这涵盖了深度缓冲器中非常多的不同的块。然而,有时两个或更多个三角形可能至少部分位于给定块中。在这样的情况下,块的像素参数值将属于多个不同平面之一。如果允许每块一个平面或每块两个平面,则可以处理大多数块。以下,介绍这样的每块两平面方案。该方案假设线可以被用于提供两个平面间的划分。利用用于划分的线无法涵盖所有情况,如当三角形的顶点位于块内时,并且这样的片必须不被压缩。然而,使用该简单划分可以处理大多数情况。如图8所示,使用直线将像素分为两个划分,其中第一像素划分位于第一平面,另一划分位于第二平面。注意,本发明不限于图8所示的特定划分,还可以处理具有可以用块中的线分离的两个平面的任意块。 
通常,依赖于实际像素参数值,两个平面具有相同的样式模式是不可能的。这是由于样式模式依赖于小数斜率,而典型地小数斜率对于两个平面是不同的。 
所述线可以使用左上角像素(以实心圆标记)和右下角像素(以实心圆标记)作为参考参数值或锚点,或右上角和左下角。在压缩块中存储表示对角比特的一个比特,以在这两种配置间选择。优选地,以与Hasselgren和 
Figure GPA00001081531600141
[1]所教导的相同的方式对划分进行编码。简言之,针对行或列的至少一部分计算位置指示表示。如果行或列部分的两个相邻像素的舍入像素参数值间的差异超过基本行(列)参数斜率大于1的量,则已经到达断点。接着,存储该像素的横(纵)坐标。仅存储沿每行或列的第一 个这样的断点。如果当沿列而不是行行进时发现断点,则将所有剩下的行赋予0断点坐标。 
在图8中,用粗的锯齿线标记划分。因此,在该示例中,第一行完全属于最左边的平面,反之,对于第二条线,头7个像素属于最左边的平面,最后的像素属于最右边的平面,等等。 
为了同上述仅存储比特样式相比节约比特,需要能够存储每行(或列,在采用逐列压缩的情况下)两段,所述两段的长度合计为8。为此,引入针对3、5和6像素的多种样式模式。 
图9是可用于三比特的行段的校正样式集合的示意图。如图中可见,存在两种样式模式,每种包括3个校正样式:针对模式0bin的00bin、01bin、10bin和针对模式1bin的11bin、01bin、10bin。 
由于每个集合中存在三种样式,将需要两比特样式码字。然而,如以下进一步描述的,可以更高效地在特定的3像素行部分中存储模式码字和样式码字。 
图10示出了5像素的行部分情况下可用的6个样式集合。每个这样的样式集合包括如图所示的5种不同的校正样式。3比特的样式码字尺寸可用于表示不同的校正样式。然而,如以下进一步示出的,此处一种更高效的方式是可行的。 
图11A-11C共同地示意了7个样式集合,每个集合有6个斜率校正样式,可用于6像素的行部分。 
观察图8,存在9种对行进行划分的可能。例如,第一行将8个像素分配给最左边的平面,并且没有像素被分配给最右边的平面。最后一行将1个像素分配给最左边的平面,7个像素分配给最右边的平面。未示出的最后的(第九)组合将所有8个像素分配至最右边的平面。 
8像素左-0像素右划分
如在图12A中可见,8像素310在边界左侧,将行310处理为6像素行部分312加3像素行部分314。因此,当前行需要一个1比特斜率修正符、针对6像素行部分312的3比特第一样式码字、以及针对3像素位置314的2比特第二样式码字,给出总共6个比特。 
7像素左-1像素右划分
图12B示出了该情形。再次,使用针对左斜率修正符(y分量)的1比特、针对6像素行部分312的3比特样式码字加针对到边界左侧的剩余像素330的单个斜率修正符。对于边界右侧,有单个斜率修正符(y分量)。总计,针对左侧1+3+1个比特以及针对右侧1个比特,总共产生6比特。 
6像素左-2像素右
如在图12C中可见,使用针对左斜率修正符(y分量)的1比特和针对到边界左侧的6像素行部分312的3比特样式码字。对于右侧,具有斜率修正符(y分量)和针对单个像素330的1比特斜率修正符。因此,对左侧1+3个比特以及对右侧1+1个比特,总共给出6比特。 
5像素左-3像素右
如图12D所示,直接方案为使用到边界左侧的5像素行部分310以及到右侧的3像素段312。 
然而,该方案的问题在于,如果独立存储,用需要3比特的五元变量来表示5像素条。此外,3段是三元变量,需要两比特。与两个斜率修正符(y分量)比特结合,为7比特。由于仅用6比特就能够管理所有其他组合,因此这是不方便的。然而,实际上可以减小针对此情况的比特使用。 
在这样的情况下,五元变量与三元变量一起存储。由于5×3=15<16,仅需要4比特来存储两个段。例如,可以使用表I的编码: 
表I-3和5斜率校正样式的共同编码(collective coding) 
Figure GPA00001081531600161
Figure GPA00001081531600171
表I表示图9和10中示出的斜率校正样式。 
采用这种方法,需要针对斜率修正符(y分量)的2个比特和针对样式码字的4个比特,总共产生6比特。 
4像素左-4像素右
这是一种简单的情况,如图12E所示,可以对边界任一侧上的像素行部分312和314使用4像素样式。 
因此,在左侧,针对斜率修正符(y分量)的1个比特和针对样式码字的3比特,在右侧也是同样的。总共6比特。 
对于那些在行边界左侧采用3、2、1和0个像素以及在右侧使用5、6、7和8像素的情况,虽然交换了两个像素位置,但采用以上述相同的编码。 
此外,注意,虽然可以针对不同的行使用不同的行段长度,但也可以针对所有行使用相同的模式。然而,可能发生一种情况,其中行包括6像素行段并且同一平面的另一行包含3像素行段,并且6像素行段需要110bin。对于3像素行部分,仅具有可以从中选择的两种模式0bin和1bin。 在这样的情况下,因此,可以根据以下表II执行模式(码字)和样式集合的选择。在表II中,针对条长度列出的不同模式对应于图6、9、10和11A至11C中示出的编号。 
表II-模式选择 
Figure GPA00001081531600181
因此,仅需要使用3比特存储每平面的一个模式码字。由于有两个平面,这意味着针对行码字的6个比特。总计,如上所述每行需要6比特,并且有8行,得到针对样式码字和斜率修正符的8×6=48比特。然而,不需要针对左上角和右下角(或右上角和左下角)y坐标的斜率修正符,针对样式码字和斜率修正符产生46比特。与模式码字一起,总计46+6=52比特。应当将此与文献[1]中介绍的基于矩阵的解决方案进行比较,文献[1]中介绍的基于矩阵的解决方案需要62比特。因此,与现有技术相比,本发明针对具有两个平面的每块节省了10个比特。 
观察来自文献[1]的2平面8×8系统的192比特版本,呈现出以下比特布局: 
对角比特:    1比特 
锚点:        21+22=43比特 
Deltas:      4×15=60 
比特划分比特:26比特 
校正比特:    62比特 
总计:        192比特 
利用本发明,可以使用52比特而不是62比特对校正比特进行编码。如果针对该块期望类似的总比特尺寸,那么可能的比特分布可以如下: 
对角比特:    1比特 
参考码字:    2×24=48比特 
行斜率码字:    2×16=32比特 
列斜率码字:    2×16=32比特 
划分比特:      26比特 
校正比特*:     52比特 
总计:          191比特 
*校正比特代表模式码字、样式码字和斜率修正符。 
在该示例性示例中,同文献[1]相比花在参考码字和斜率码字上的比特数量增加了。可选地,可以在斜率码字上花费更多的比特,而仅仅稍稍增加或不增加花在参考码字上的比特数量。在任一情况下,针对其他参数的比特的增加量意味着本发明能够将深度缓冲器中的块压缩更高的百分比,意味着存储器带宽降低。 
同文献[1]中的4×4系统相比,本发明以2比特或3%的比特改进了一平面模式。这两个比特可用于扩展某些参数的范围,使得可以将片压缩更高的百分比,从而降低存储器带宽需求。同文献[1]中的8×8系统相比,本发明以14至20比特或11-16%的比特改进了一平面模式。因此,一平面模式此时可以处理所有可能的一平面块,提高了可以使用该模式进行压缩的片的百分比。两平面模式改进了10比特或8%的比特。这些比特也被花费在用于提高参数的范围,使得可以将块压缩更高的百分比。 
因此,本发明能够通过确定参考码字、行斜率码字、列斜率码字和修正符码字来压缩M×N像素的块,其中,修正符码字是可应用于基本行参数斜率和基本列参数斜率中至少一个的多个斜率修正符或校正符的表示。该修正符码字共同地表示模式码字、样式码字和斜率修正符。与现有技术形成明显对比,本发明可以确定这样的修正符码字具有小于M×N-1比特的总长度。例如,Haselgren和 
Figure GPA00001081531600191
需要15比特来表示4×4块的校正矩阵,而本发明只需要13比特。相应地,现有技术针对8×8块的校正矩阵需要至少63比特,并且本发明可以以43比特来处理这样的块。 
简要地,返回图1。如果如上所述块包括两个平面,步骤S1包括针对第一平面的像素确定第一参考码字并针对第二平面的像素确定第二参考码字。优选地,两个码字代表块的左上角和右下角位置的像素参数值或块的右上角和左下角位置的像素参数值。相应地,步骤S2和S3包括针对块 中两平面中每一个确定相应的行和列斜率码字。如上所述执行这些步骤,但使用仅属于块中相应平面的像素。 
步骤S4包括:针对行或列并基于行/列的像素参数的第一部分,产生第一表示,所述第一表示指示沿第一行/列部分发生斜率改变的像素位置。步骤S4还涉及:针对行/列并基于行/列的像素参数的第二部分,产生第二表示,所述第二表示指示沿第二部分发生斜率改变的像素位置。在这种情况下,第一行/列部分属于第一平面,第二行/列部分属于第二平面。优选地,针对块中的所有行/列重复该步骤S4。注意,对于行/列中的每一个,所述像素可以仅属于平面之一。在这样的情况下,此时,针对该行/列产生单个位置指示表示。 
步骤S5针对块中的第一平面确定第一模式码字并针对第二平面确定第二模式码字。优选地,针对属于不同平面的行/列、基于所产生的位置指示表示(并且优选地基于上述列出的表II)执行码字确定。在大多数实际情况下,两个模式码字将具有不同的比特值,因此表示不同的样式集合。 
步骤S6将针对不同行/列部分确定样式码字,作为从用于块中每个平面的样式集合选出的斜率校正样式的表示。因此,第一平面一般可以从第一样式集合中选择校正样式,而对于第二平面的行/列部分来自第二不同样式集合的斜率校正样式是可用的。样式码字确定是基于针对不同行/列部分产生的位置指示表示执行的。注意,可以在单个操作中对整个块进行编码,使得一起产生两个样式码字。 
最后,基本上通过对每个平面执行一个前述过程针对两个平面确定斜率修正符。 
图1所示的方法还涉及确定行/列的划分像素。接着,可以基于划分像素来定义属于第一平面的行/列的部分以及属于第二平面的行/列的部分。优选地,针对块中多个行/列确定这样的划分像素。 
解压缩 
图13示出了示意了对经压缩的像素块中的像素进行解压缩的方法的流程图。该方法起始于步骤S20,其中基于参考码字产生参考像素参数值。在典型实现中,在参考值和码字间存在一一对应关系,并且步骤S20仅涉 及从压缩块获取与参考码字相对应的比特。然而,在其他应用中,可以例如通过复制符号位来获得Y比特值或通过向X比特码字添加预定义比特字(如仅仅1bin的字)作为最高有效比特,获得Y比特值,来将参考码字的X比特扩展至Y比特值,其中X≠Y,从而获得参考值。 
在步骤S21中确定基本参数斜率。该步骤可以涉及:基于块中的行斜率码字确定基本行参数斜率;基于列斜率码字确定基本列参数斜率,但优选地涉及确定行和列参数斜率。该产生可以通过简单的比特获取过程或上述针对参考值的扩展过程来执行。 
下一步骤S22基于压缩块中的模式码字提供校正样式的集合。块的每行/列与在步骤S23中用于选择在步骤S22中提供的样式集合中的斜率校正样式之一的样式码字相关联。 
可以以任意顺序或者甚至并行地执行步骤S20至S22。 
接着,在步骤S24中,基于来自步骤S20的参考像素参数值、来自步骤S21的基本参数斜率(即基本行参数斜率和/或基本列参数斜率)、以及所选择的斜率校正样式,来计算块中的像素的参数值。 
可选地,并且根据块中像素的特定位置,可以在步骤S24的值计算中使用可应用于基本列/斜率参数斜率的一个或多个斜率修正符。 
接着该方法结束。 
在步骤S23中选择的校正样式包括多个斜率校正符。用于步骤S24的参数值计算中的特定斜率校正符依赖于像素在像素块的行或列中的位置。 
以下等式1可以用于表示在逐行解压缩情况下(参见图2A)步骤S24的像素参数值的计算: 
Value ( x , y ) = R + x × Δ x + y × Δ y + Σ i = 0 x P i x + Σ j = 0 y S j y - - - ( 1 )
其中Value(x,y)代表块中像素位置(x,y)处的所计算的参数值,x=0,1,...,M并且y=0,1,...,N(M、N是正数,且M和N不同时为1),R是参考参数值,Δx是基本行参数斜率,Δy是基本列参数斜率,Pi x是行中像素位置i处的斜率校正符,并且从斜率校正样式中获得,Sj y是被分配给第j行的斜率修正符。在等式1中,P0 x=0且S0 y=0。在逐列解压缩情况下,参见图2B,等式1被重写为: 
Value ( x , y ) = R + x × Δ x + y × Δ y + Σ i = 0 y P i y + Σ j = 0 x S j x - - - ( 2 )
其中Pi y是列中像素位置i处的斜率校正符,并且从斜率校正样式中获得,Sj x是被分配给第j列的斜率修正符。在等式2中,P0 y=0且S0 x=0。 
解压缩示例 
例如,假设以下压缩块表示: 
参考码字:  000000000010010001101001 
行斜率码字:0000000000000000110110000 
列斜率码字:1111111111111111110010111 
模式码字:  10 
样式码字:  00011101 
斜率修正符:101 
那么,参考参数值是:9321 
基本行参数斜率:432 
基本列参数斜率:-105 
使用的特征样式集合是来自图6的样式2(10bin)。在第一行中,校正样式应是101。那么第一行的参数值是: 
Value(0,0)=9321 
Value(1,0)=9321+432+1=9754 
Value(2,0)=9754+432+0=10186 
Value(3,0)=10186+432+1=10619 
第二行的校正样式应是110,这是由于该行的样式码字是01bin。第二行的参数值变为: 
Value(1,0)=9321-105+1=9217 
Value(1,1)=9217+432+1=9650 
Value(1,2)=9650+432+1=10083 
Value(1,3)=10083+432+0=10515 
接着,可以针对剩下的行执行类型的过程。 
实现方面 
图14是可以应用本发明的教导的深度缓冲架构1的示意总览。该架构包括随机存取器(RAM)50,用于存储包括深度值等的像素块。深度单元10包括根据本发明的用于对从RAM 50获取的压缩块进行解压缩的解压缩器200。经解压缩或解码的块临时存储在深度单元10的相关片高速缓冲存储器14中。还在深度单元10中提供根据本发明的压缩器100,用于对存在于高速缓冲存储器14中的像素块进行压缩以存储在RAM 50中。 
在优选实施例中,深度单元10还包括片表高速缓冲存储器12。该表高速缓冲存储器12存储与像素块相关的头部信息,但与深度缓冲数据分别保存。片表条目典型地包含标记,指示相关像素块是以未经压缩的形式还是以压缩形式存储在RAM 50中的。在后一情况下,标记优选地还指示压缩块的尺寸,这是由于不同的压缩块可能具有不同的总比特长度。例如,2比特标记可用于指示未压缩块、压缩为原始尺寸的75%、压缩为原始尺寸的50%或压缩为原始尺寸的25%。 
光栅器(rasterizer)20连接至深度单元10并执行像素的实际光栅化。光栅器20连接至一个或多个像素管道30,像素管道30被用于计算像素的深度和颜色。每个像素管道30连接至深度测试单元40,深度测试单元40负责丢弃被先前绘制的几何形状遮蔽的(即具有较大的深度值的)像素。 
压缩器 
图15是根据本发明的压缩器100的示意框图。压缩器100包括参考量化器110,参考量化器110被配置为确定参考码字,作为要压缩的像素块的参考像素参数值的表示。行斜率量化器120如前所述,确定该块的行斜率码字,作为该块的该行的基本参数斜率的表示。相应的列斜率量化器130被配置为确定块列的基本参数斜率。 
压缩器100还包括:表示生成器140,用于针对块的至少一部分中的每行/列(优选地,块中的所有行/列),产生位置指示表示。生成器140优选地基于行/列(的部分)的像素参数值的至少一部分来执行表示生成。在压缩器100中提供模式选择器150,用于确定模式码字,作为可沿行/列应用的特定预定义斜率校正符的由多个斜率校正样式构成的集合的表示。模 式选择器150优选地基于生成器140所产生的位置指示表示执行从多个所定义的样式集合中选择这样的集合。一旦选择了这样的样式集合,模式选择器150就提供模式码字,作为所选样式集合的表示。 
样式管理器160被配置为连接至模式选择器150,用于针对至少一行/列(优选地块中所有行/列)确定样式码字,作为模式选择器150所选择的样式集合中的斜率校正样式之一的表示。管理器160还连接至表示生成器140并针对行/列使用特定的位置指示表示,来决定针对不同的行/列使用集合中的哪个斜率校正样式。 
虽然未在图中示出,但压缩器100优选地还包括修正符生成器,用于产生在解压缩期间可应用于基本列/行参数斜率的至少一个斜率修正符。 
如前所述,样式管理器160可以实际针对每个块行/列确定两个样式码字,具体地,如果8像素行/列被管理为两个4像素条。此外,在块中的像素不共线而是属于两个平面之一的情况下,量化器110确定第一和第二参考码字,即块中每个平面一个参考码字。斜率量化器120、130同样分别确定第一和第二行和列斜率码字。表示生成器140将针对块中的某些行/列确定两个位置指示表示,而对于其他行/列,其根据相应行/列包括多少个比特而仅仅确定一个这样的表示。模式选择器150针对第一平面确定第一模式码字并针对第二平面确定第二模式码字。接着,样式管理器160选择样式码字,所述样式码字表示第一模式码字针对存在于第一平面中的行/列条定义的集合的斜率校正样式;并选择样式码字,所述样式码字表示第二模式码字针对存在于第二平面中的行/列条定义的集合的斜率校正样式。 
压缩器100的单元110至160可以被提供为软件、硬件或其组合。单元110至160可以一起被实现在压缩器100中。可选地,分布式实现也是可行的,其中在深度缓冲架构中别处提供某些单元。 
图16是表示生成器140的实施例的示意框图。该生成器140包括可选的值量化器142,值量化器142被配置为将原始参数值量化(如舍入)为量化值。如果输入参数值已被量化,可以省略该单元142。计算器144被配置在生成器140中,用于针对行/列至少一部分中的每个像素,从当前像素的量化参数值中减去行/列中前一像素的量化参数值或参考参数值和行/列的基本参数斜率。一旦针对行/列(部分)中的所有像素执行了该过 程,就确定了位置指示表示。 
表示生成器140的单元142和144可以被提供为软件、硬件或其组合。单元142和144可以一起被实现在表示生成器140中。可选地,分布式实现也是可行的,其中在压缩器中别处提供某些单元。 
解压缩器 
图17是根据本发明的解压缩器200的示意框图。解压缩器200包括参考生成器210,用于基于经压缩的像素块中的参考码字产生参考像素参数值。生成器210可以被配置为:简单地获取码字的比特序列,以提供参考值,或对比特序列进行进一步处理(如将其扩展),以获得目标值。在解压缩器220中提供斜率生成器220,以基于压缩块的斜率码字确定基本参数斜率。在第一实施例中,生成器220仅基于行斜率码字确定基本行斜率。第二实施例涉及使用列斜率码字来确定基本列斜率。然而,在第三和优选实施例,斜率生成器220分别基于行和列斜率码字来确定基本行斜率和基本列斜率。 
解压缩器200还包括:集合供应器230,用于基于压缩块的模式码字来提供由多个斜率校正样式构成的集合。优选地,供应器230从包含多个不同的这样的样式集合在内的存储单元(未示出)中选择该集合。 
样式选择器240被配置为,基于与包含所要解码的像素的行/列相关的样式码字,从所提供的集合中选择斜率校正样式。值确定器250连接至参考生成器210、斜率生成器220和样式选择器240。确定器250基于来自参考生成器210的参考参数值、来自斜率生成器220的基本(行和/或列)参数斜率和来自选择器240的斜率校正样式,来计算像素的像素参数值。确定器250可以被实现为执行上面的等式1或2中的计算中的任一个,以确定像素参数值。在可选计算中,确定器250简单地将基本参数斜率和从斜率校正样式中选择的斜率校正符加至由确定器250针对行/列的前一相邻像素确定的像素参数值或参考像素参数值。在这样的情况下,解压缩器200可以包括修正符选择器260,修正符选择器260被配置为基于块中或块的行/列中当前像素的位置,从样式中选择特定斜率校正符。 
根据块是否包括属于不同平面的像素或行/列是否被作为两个行/列条进行处理,参考生成器210可以确定两个基本参考值(每个平面一个),斜 率生成器220产生两个行或两个列参数斜率(每个平面一个行和列斜率),集合供应器230提供两个样式集合(每个平面一个),样式选择器240针对每行/列选择1个或2个斜率校正样式(取决于划分位置)。 
解压缩器200的单元210至260可以被提供为软件、硬件或其组合。单元210至260可以一起被实现在解压缩器200中。可选地,分布式实现也是可行的,其中在深度缓冲架构中别处提供某些单元。 
所属领域技术人员将理解,可以在不背离由所附权利要求限定的本发明的范围对本发明进行各种修改和改变。 
参考文献 
[1]Haselgren和 
Figure GPA00001081531600261
″Efficient Depth Buffer Compression″,Graphic Hardware,2006,pp.103-110 
附录 
本附录提供了针对每行或列具有8个像素的块确定样式码字的信息。前面公开了,存在8种具有不同段长度的校正样式的不同模式(模式A至H)。 
模式A
该模式指具有2像素长度的段和1像素长度的段的校正样式,其中在长度2的段之间存在4个或更多个长度1的段。头3个比特表示沿行或列的第一个2像素段的位置。如果不存在2像素段将使用位置7。最后一比特告知在下一长度2的段前是存在4个长度1的段(“0bin”)还是在下一长度2的段前是存在5个或更多个长度1的段(“1bin”)。根据第一个2段的位置,这比特是不必要的。在这样的情况下,可以省去该比特,或者将该比特设置为任意值。图18A以1111011bin示意性地示出了该情形。2像素段出现在该行中5号像素位置。作为结果,可以将样式码字的头3比特设置为101bin=5。可以省去最后一比特,并且可以将101bin用作校正样式1111011bin的表示。可选地,可以添加任意比特,并且可以将1010bin或1011bin用作校正样式1111011bin的表示。 
图18B中是另一示例。此处,样式码字的头3比特是010bin,指示第 一个2像素段位于位置2。由于该2段后是否接着4个或更多个1段无关紧要,所以可以省去样式码字的最后一比特,或将其设置为任意值。 
第三示例是图18中的样式0111110bin。此处,头3个比特是000bin,指示第一个2像素段位于位置0。最后一比特为0,指示在下一2段之前存在4个1像素段。因此,样式码字0000bin可以被用于表示样式011110bin。这样,该原理可以扩展至该模式的第一2像素段的其他像素位置。 
模式B
该模式涵盖段长度为1或2像素并且具有3或4个连续的1像素段的校正样式。可以用4比特样式码字来表示该模式的不同校正样式。再次,可以用4比特中的3比特来定义行或列中第一个2像素段的位置。对于图18C,这将是位置0,因此3比特位置表示是000bin。用单个比特来区分第一个2像素段紧接着3个还是4个1像素段。在图18C中,存在4个这样的段,意味着完整的样式码字将是0001bin。在这种情况下,最后的1bin指示存在4个1像素段。可选地,由于在模式B中仅存在8种可能的校正样式,可以使用3比特样式码字。 
模式C
模式C涉及段长度为1或2像素并且在2像素段间具有2或3个连续的1像素段的校正样式。4比特样式码字能够表示模式C下可用的校正样式。4比特中的3个比特专用于表示第一个2像素段在行或列中的位置。剩下的比特用于指示在行或列中的下一2像素段前存在2个连续1还是3个连续的1像素段。图18D示出了校正样式0111011bin。第一个2像素段的位置是0号像素,并且该2像素段之后下一2像素段前是2个1像素段。因此,在这种情况下,样式码字可以是0000bin。此处注意,没必要指定第二个2像素段后1段的数量,这是由于其不会影响校正样式。可选地,由于在模式B下仅存在8种可能的校正样式,可以使用3比特样式码字。 
模式D
该模式涉及段长度为1或2像素并且具有1或2个连续1像素段的校正样式。4比特样式码字中的两个比特被用于定义行或列中第一个2像素段前连续1像素段的数量。(00bin至11bin,用于区分0至3个1像素段)。下一比特指示第一个2像素段后接着1个还是2个连续的1像素段,并且 最终比特定义第二个2像素段后接着1个还是2个连续的1像素段,参见图18E。该图示出了校正样式0110110bin。在第一个2像素段前存在0个1像素段,给出00bin。在第一和第二像素段后都接着单个1像素段,得到例如0bin和0bin。因此,在该模式下最终样式码字变为0000bin。 
模式E
该模式指具有1或2像素段长度并且具有0或1个连续1像素段的校正样式。4比特样式码字中的一比特定义行或列中的第一段是1还是2像素段。剩下的比特中的每个比特指示在后一2像素段前存在0个还是1个1像素段。图18F和18G示出了根据该模式的2种可能的校正样式。图18F具有校正样式0101010bin,图18G具有1101101bin。在图18G中,第一段是2像素段,在图18F中第一段是1像素段。因此,样式码字的第一比特分别为1bin和0bin。图18G中任一2像素段前不存在1像素段,这可以用0bin、0bin和0bin来表示。在图18F中,所有2像素段具有相应的在先1像素段,给出1bin、1bin和1bin。因此,图18G的校正样式的最终样式码字为1000bin并且对于图18F为0111bin。 
模式F
模式F具有段长度为2或3的像素校正样式。样式码字的头两个比特表示以下情形。如果行或列中的第一段是1像素段后接2像素段,则使用00bin。01bin表示1像素段后接3像素段。如果第一段是2像素段,则使用比特组合10bin,11bin定义了第一像素段是3像素段。样式码字中的第三比特定义了由头两个比特定义的段后接着2像素段还是3像素段,并且第四比特指示该2或3像素段之后接着2像素段还是3像素段。 
图18H至18K示出了针对该模式的不同校正样式。在图18H中,第一段是根据以上给出10bin的2像素段。该2像素段之后接着两个2像素段,给出0bin和0bin。最终段是2像素段还是3像素段无关紧要,这是由于校正样式将是相同的。因此,样式0101010bin被表示为1000bin。 
图18I具有后接2像素段的1像素段,得到00bin。之后的两段的长度均是2像素(最后一段是2像素还是3像素无关紧要,这是由于仅仅第一像素在行或列的8像素内)。此处,样式码字是0000bin。 
图18J具有1像素段、然后是3像素段。因此,头两个比特应是01bin。 这些段之后接着2像素段。在这种情况下,样式码字仅有3比特,即010bin,这是由于最后两比特属于2像素段还是3像素段无关紧要。因此,可以省略第四比特,或将其设置为任意值。 
图18K具有后接2像素段(得到0bin和0bin)的3像素段(得到11bin)。最终像素属于2像素段还是3像素段无关紧要。因此,在该模式下,校正样式001010bin被表示为码字1100bin。 
模式G
该模式涉及段长度为3、4或5像素的校正样式。在这种情况下,在以下表III中可以找到所有可能的校正样式: 
表III-模式G下的样式码字 
Figure GPA00001081531600291
由表III可见,在该模式下仅有13种校正样式是可能的。因此,4比特足以指定这些校正样式,例如使用表III右栏中建议的样式码字。 
图18L示出了校正样式1001001bin。根据表III,因此在这种情况下样式码字是0001bin。图18M示出了根据表III可以由4比特码字1000bin表示的校正样式0001000bin。 
模式H
模式H指具有5像素段、6像素段、7像素段或8像素段的校正样式。在以下表IV中,在左栏列出了针对该模式的所有可能的校正样式: 
表IV-模式H下的样式码字 
Figure GPA00001081531600301
可以看到,仅有11种不同的校正样式是可能的,因此可以用4比特的样式码字来表示它们,例如用在表IV的右栏中指定的比特样式。图18M示出了有比特样式0110bin表示的校正样式0001000bin。 

Claims (32)

1.一种对具有相关像素参数值的像素的块进行压缩的方法,所述方法包括以下步骤:
确定参考码字,作为参考像素参数值的表示;
确定行斜率码字,作为针对所述块的行的基本参数斜率的表示;
确定列斜率码字,作为针对所述块的列的基本参数斜率的表示;
针对所述块中的行或列、并基于所述行或所述列的所述像素参数值的至少一部分,产生指示沿所述行或所述列的所述像素参数值的所述至少一部分发生斜率改变的像素位置的位置指示表示;
针对所述块中所述行或所述列的所述像素参数值的至少一部分重复所述产生步骤;
确定模式码字,作为由多个斜率校正样式构成的集合的表示,每个斜率校正样式是特定的预定义表示,指示能沿行或列应用的位置相关斜率校正符;以及
针对所述块中所述至少一行或列,基于针对所述行或所述列而产生的所述位置指示表示,确定样式码字,作为所述集合的斜率校正样式的表示。
2.根据权利要求1所述的方法,其中,至少部分地基于所产生的位置指示表示来执行所述模式码字确定步骤。
3.根据权利要求1或2所述的方法,其中,所述产生步骤包括以下步骤:
对所述行或所述列的参数值进行量化;以及
针对所述行或所述列的所述像素参数值的所述至少一部分中的每个像素,从所述像素的量化参数值中减去所述行或列中前一像素的量化参数值或所述参考像素参数值和所述行或所述列的所述基本参数斜率。
4.根据权利要求1所述的方法,其中,所述模式码字确定步骤包括以下步骤:
从多个预定义集合中选择集合,其中每个集合包括多个斜率校正样式;以及 
基于所选择的集合确定所述模式码字。
5.根据权利要求1所述的方法,其中,所述行斜率码字是针对所述块的所述行的参数斜率的整数部分的表示,所述列斜率码字是针对所述块的所述列的参数斜率的整数部分的表示,所述多个预定义集合中的每个集合与针对所述块的所述行或所述列的参数斜率的小数部分的范围有关。
6.根据权利要求1所述的方法,其中,所述产生步骤包括以下步骤:
针对所述行或所述列、并基于所述行或所述列的所述像素参数值的第一部分,来产生第一位置指示表示,所述第一位置指示表示指示沿所述行或所述列的所述像素参数值的所述第一部分发生斜率改变的像素位置;以及
针对所述行或所述列、并基于所述行或所述列的所述像素参数值的第二部分,来产生第二位置指示表示,所述第二位置指示表示指示沿所述行或所述列的所述像素参数值的所述第二部分发生斜率改变的像素位置。
7.根据权利要求6所述的方法,其中,所述模式码字确定步骤包括:基于所产生的第一和第二位置指示表示,确定模式码字,作为由多个斜率校正样式构成的集合的表示。
8.根据权利要求6或7所述的方法,其中,所述样式码字确定步骤包括以下步骤:
针对所述块中的至少一行或列,基于针对所述行或所述列而产生的所述第一位置指示表示,确定第一样式码字,作为所述集合的第一斜率校正样式的表示;以及
针对所述块中的至少一行或列,基于针对所述行或所述列而产生的所述第二位置指示表示,确定第二样式码字,作为所述集合的第二斜率校正样式的表示。
9.根据权利要求6所述的方法,其中,所述模式码字确定步骤包括以下步骤:
基于所产生的第一位置指示表示,确定第一模式码字,作为由多个斜率校正样式构成的第一集合的表示;以及 
基于所产生的第二位置指示表示,确定第二模式码字,作为由多个斜率校正样式构成的第二集合的表示。
10.根据权利要求9所述的方法,其中,所述样式码字确定步骤包括以下步骤:
针对所述块中至少一行或列,基于针对所述行或所述列而产生的所述第一位置指示表示,确定第一样式码字,作为所述第一集合的第一斜率校正样式的表示;以及
针对所述块中至少一行或列,基于针对所述行或所述列而产生的所述第二位置指示表示,确定第二样式码字,作为所述第二集合的第二斜率校正样式的表示。
11.一种对来自经压缩的像素块的像素进行解压缩的方法,所述方法包括以下步骤:
基于所述经压缩的像素块的参考码字,产生参考像素参数值;
基于所述经压缩的像素块的斜率码字,产生基本参数斜率;
基于所述经压缩的像素块的模式码字,提供由多个斜率校正样式构成的集合,每个斜率校正样式是特定的预定义表示,指示能沿行或列应用的位置相关斜率校正符;
基于与所述像素相关的且包括在所述经压缩的像素块中的样式码字,从所提供的集合中选择斜率校正样式;以及
基于所述参考像素参数值、所述基本参数斜率和所选择的斜率校正样式,来确定所述像素的像素参数值。
12.根据权利要求11所述的方法,其中,所述确定步骤包括:将所述基本参数斜率、从所述斜率校正样式中选择的斜率校正符加至针对所述行或所述列中的前一像素确定的像素参数值或加至所述参考像素参数值。
13.根据权利要求12所述的方法,还包括:基于所述行或所述列中所述像素的位置,来选择所述斜率校正符。
14.根据权利要求11至13中任一项所述的方法,其中,所述产生步骤包括以下步骤:
基于所述经压缩的像素块的行斜率码字,产生针对所述像素块的行 的基本参数斜率;以及
基于所述经压缩的像素块的列斜率码字,产生针对所述像素块的列的基本参数斜率。
15.根据权利要求14所述的方法,其中,所述像素参数值确定步骤包括:基于所述参考像素参数值、针对所述行的所述基本参数斜率、针对所述列的所述基本参数斜率、所选择的斜率校正样式以及所述经压缩的像素块的至少一个斜率修正符,来确定所述像素参数值。
16.根据权利要求15所述的方法,其中,所述确定步骤包括以下步骤:
将针对所述列的所述基本参数斜率和所述至少一个斜率修正符加至针对所述列中前一像素确定的像素参数值,以形成中间值;以及
将针对所述行的所述基本参数斜率和从所述斜率校正样式中选择的斜率校正符加至针对所述行中前一像素确定的像素参数值或加至所述中间值。
17.根据权利要求15所述的方法,其中,所述确定步骤包括以下步骤:
将针对所述行的所述基本参数斜率和所述至少一个斜率修正符加至针对所述行中前一像素确定的像素参数值,以形成中间值;以及
将针对所述列的所述基本参数斜率和从所述斜率校正样式中选择的斜率校正符加至针对所述列中前一像素确定的像素参数值或加至所述中间值。
18.根据权利要求11所述的方法,其中,所述提供步骤包括:基于所述模式码字,提供来自多个预定义集合的集结的所述集合。
19.一种对具有相关像素参数值的像素的块进行压缩的压缩器,所述压缩器包括:
参考量化器,用于确定参考码字,作为参考像素参数值的表示;
行斜率量化器,用于确定行斜率码字,作为针对所述块的行的基本参数斜率的表示;
列斜率量化器,用于确定列斜率码字,作为针对所述块的列的基本参数斜率的表示; 
表示生成器,用于针对所述块的至少一部分中的每一行或列、并基于所述行或所述列的所述像素参数值的至少一部分,产生指示沿所述行或所述列的所述像素参数值的所述至少一部分发生斜率改变的位置指示表示;
模式选择器,用于确定模式码字,作为由多个斜率校正样式构成的集合的表示,每个斜率校正样式是特定的预定义表示,指示能沿行或列应用的位置相关斜率校正符;以及
样式选择器,用于针对所述块中的所述至少一行或列,基于针对所述行或所述列而产生的所述位置指示表示,确定样式码字,作为所述集合的斜率校正样式的表示。
20.根据权利要求19所述的压缩器,其中,所述模式选择器被配置为:至少部分地基于所产生的位置指示表示来确定所述模式码字。
21.根据权利要求19或20所述的压缩器,还包括:
值量化器,用于对所述行或所述列的参数值进行量化;以及
计算器,用于针对所述行或所述列的所述像素参数值的所述至少一部分中的每个像素,从所述像素的所述量化参数值中减去所述行或列中前一像素的量化参数值或所述参考像素参数值和所述行或所述列的所述基本参数斜率。
22.根据权利要求19或20所述的压缩器,其中,所述表示生成器被配置为:
i)针对所述行或所述列、并基于所述行或所述列的所述像素参数值的第一部分,来产生第一位置指示表示,所述第一位置指示表示指示沿所述行或所述列的所述像素参数值的所述第一部分发生斜率改变的像素位置;以及
ii)针对所述行或所述列、并基于所述行或所述列的所述像素参数值的第二部分,来产生第二位置指示表示,所述第二位置指示表示指示沿所述行或所述列的所述像素参数值的所述第二部分发生斜率改变的像素位置。
23.根据权利要求22所述的压缩器,其中,所述模式选择器被配置为:基于所产生的第一和第二位置指示表示,确定模式码字,作为由多 个斜率校正样式构成的集合的表示。
24.根据权利要求22所述的压缩器,其中,所述样式选择器被配置为:
i)针对所述块中的至少一行或列,基于针对所述行或所述列而产生的所述第一位置指示表示,确定第一样式码字,作为所述集合的第一斜率校正样式的表示;以及
ii)针对所述块中的至少一行或列,基于针对所述行或所述列而产生的所述第二位置指示表示,确定第二样式码字,作为所述集合的第二斜率校正样式的表示。
25.根据权利要求24所述的压缩器,其中,所述模式选择器被配置为:
i)基于所产生的第一位置指示表示,确定第一模式码字,作为由多个斜率校正样式构成的第一集合的表示;以及
ii)基于所产生的第二位置指示表示,确定第二模式码字,作为由多个斜率校正样式构成的第二集合的表示。
26.根据权利要求25所述的压缩器,其中,所述样式选择器被配置为:
i)针对所述块中至少一行或列,基于针对所述行或所述列而产生的所述第一位置指示表示,确定第一样式码字,作为所述第一集合的第一斜率校正样式的表示;以及
ii)针对所述块中至少一行或列,基于针对所述行或所述列而产生的所述第二位置指示表示,确定第二样式码字,作为所述第二集合的第二斜率校正样式的表示。
27.一种对来自经压缩的像素块的像素进行解压缩的解压缩器,所述解压缩器包括以下步骤:
参考生成器,用于基于所述经压缩的像素块的参考码字,产生参考像素参数值;
斜率生成器,用于基于所述经压缩的像素块的斜率码字,产生基本参数斜率;
集合供应器,用于基于所述经压缩的像素块的模式码字,提供由多 个斜率校正样式构成的集合,每个斜率校正样式是特定的预定义表示,指示能沿行或列应用的位置相关斜率校正符;
样式选择器,用于基于与所述像素相关的且包括在所述经压缩的像素块中的样式码字,从所提供的集合中选择斜率校正样式;以及
值确定器,用于基于所述参考像素参数值、所述基本参数斜率和所选择的斜率校正样式,来确定所述像素的像素参数值。
28.根据权利要求27所述的解压缩器,其中,所述值确定器被配置为:将所述基本参数斜率、从所述斜率校正样式中选择的斜率校正符加至针对所述行或所述列中的前一像素确定的像素参数值或加至所述参考像素参数值。
29.根据权利要求28所述的解压缩器,还包括:修正符选择器,用于基于所述行或所述列中所述像素的位置,来选择所述斜率校正符。
30.根据权利要求27至28中任一项所述的解压缩器,其中,所述斜率生成器被配置为:
i)基于所述经压缩的像素块的行斜率码字,产生针对所述像素块的行的基本参数斜率;以及
ii)基于所述经压缩的像素块的列斜率码字,产生针对所述像素块的列的基本参数斜率。
31.根据权利要求30所述的解压缩器,其中,所述值确定器被配置为:基于所述参考像素参数值、针对所述行的所述基本参数斜率、针对所述列的所述基本参数斜率、所选择的斜率校正样式以及所述经压缩的像素块的至少一个斜率修正符,来确定所述像素参数值。
32.一种对具有相关像素参数值的M×N像素的块进行压缩的方法,所述方法包括以下步骤:
确定参考码字,作为参考像素参数值的表示;
确定行斜率码字,作为针对所述块的行的基本参数斜率的表示;
确定列斜率码字,作为针对所述块的列的基本参数斜率的表示;
确定修正符码字,作为能应用于针对所述行的所述基本参数斜率和针对所述列的所述基本参数斜率中的至少一个的多个斜率修正符的表示,其中,所述修正符码字包括少于M×N-1个比特。 
CN2007801009533A 2007-10-03 2007-10-03 用于使用行和列斜率码字对像素块值进行无损压缩的方法、压缩器、解压缩器 Expired - Fee Related CN101816021B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SE2007/050705 WO2009045133A1 (en) 2007-10-03 2007-10-03 Method, compressor, decompressor and signal representation for lossless compression of pixel block values using row and column slope codewords

Publications (2)

Publication Number Publication Date
CN101816021A CN101816021A (zh) 2010-08-25
CN101816021B true CN101816021B (zh) 2012-08-29

Family

ID=40526435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007801009533A Expired - Fee Related CN101816021B (zh) 2007-10-03 2007-10-03 用于使用行和列斜率码字对像素块值进行无损压缩的方法、压缩器、解压缩器

Country Status (6)

Country Link
US (1) US8515187B2 (zh)
EP (1) EP2201530B1 (zh)
JP (1) JP4995969B2 (zh)
CN (1) CN101816021B (zh)
TW (1) TWI446289B (zh)
WO (1) WO2009045133A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6066557B2 (ja) * 2011-12-26 2017-01-25 株式会社メガチップス データ記憶制御装置、データ記憶装置、データ記憶方法、圧縮回路、および圧縮方法
US8779950B2 (en) 2012-03-05 2014-07-15 Dcba, Llc Command encoded data compression
US9251731B2 (en) * 2013-05-10 2016-02-02 Intel Corporation Multi-sampling anti-aliasing compression by use of unreachable bit combinations
US10896523B2 (en) * 2019-04-01 2021-01-19 Microsoft Technology Licensing, Llc Depth image compression

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945500A (en) * 1987-11-04 1990-07-31 Schlumberger Technologies, Inc. Triangle processor for 3-D graphics display system
US6407741B1 (en) * 1998-08-28 2002-06-18 Ati International Srl Method and apparatus for controlling compressed Z information in a video graphics system that supports anti-aliasing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2207840B (en) * 1987-08-07 1991-09-25 Philips Electronic Associated Method of and apparatus for modifying data stored in a random access memory
JPH0965338A (ja) * 1995-08-28 1997-03-07 Graphics Commun Lab:Kk 画像符号化装置および画像復号化装置
US6476811B1 (en) * 1999-09-01 2002-11-05 Ati International, Srl Method and apparatus for compressing parameter values for pixels in a display frame
JP3701522B2 (ja) * 1999-09-21 2005-09-28 シャープ株式会社 画像符号化装置、画像符号化方法及びコンピュータ読み取り可能な記録媒体
US7030878B2 (en) 2004-03-19 2006-04-18 Via Technologies, Inc. Method and apparatus for generating a shadow effect using shadow volumes
US7898550B2 (en) 2006-06-09 2011-03-01 Via Technologies, Inc. System and method for memory bandwidth compressor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945500A (en) * 1987-11-04 1990-07-31 Schlumberger Technologies, Inc. Triangle processor for 3-D graphics display system
US6407741B1 (en) * 1998-08-28 2002-06-18 Ati International Srl Method and apparatus for controlling compressed Z information in a video graphics system that supports anti-aliasing

Also Published As

Publication number Publication date
JP4995969B2 (ja) 2012-08-08
JP2010541094A (ja) 2010-12-24
CN101816021A (zh) 2010-08-25
TWI446289B (zh) 2014-07-21
EP2201530A1 (en) 2010-06-30
US20110268367A1 (en) 2011-11-03
EP2201530A4 (en) 2017-09-13
TW200931340A (en) 2009-07-16
EP2201530B1 (en) 2018-05-30
WO2009045133A1 (en) 2009-04-09
US8515187B2 (en) 2013-08-20

Similar Documents

Publication Publication Date Title
US11625883B2 (en) Random accessible lossless parameter data compression for tile based 3D computer graphics systems
CN101925925B (zh) 基于预测的图像处理
CN101919254B (zh) 基于预测的图像处理
US9087365B2 (en) Weight based image processing
US7787691B2 (en) High quality image processing
JP4266939B2 (ja) 描画処理装置および描画データ圧縮方法
DE112012001132T5 (de) Kompression einer tessellierten Primitivindexliste in einem kachelbasierten Rendering-System
EP1081649A2 (en) Apparatus and method for image compression
CN103262531B (zh) 用于在图块编码中在像素值缓冲器中存储压缩比率指示的方法和设备
Hasselgren et al. Efficient depth buffer compression
KR20090005197A (ko) 이미지 처리
CN101816021B (zh) 用于使用行和列斜率码字对像素块值进行无损压缩的方法、压缩器、解压缩器
WO2008123822A1 (en) Vector-based image processing
WO2001067776A1 (en) Improved vector quantization of images
CN102687175A (zh) 对编码纹理元素块进行操作的解码系统和方法
JP5894605B2 (ja) 方法及び装置
EP3562042A1 (en) Method of input data compression, associated computer program product, computer system and extraction method
CN106717002A (zh) 基于块的混合压缩
EP0932883B1 (en) Loss-less compression and decompression of bitmaps
JP2011175542A (ja) 画像データ処理装置
WO2004029875A2 (en) Image compression

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120829