基于预测的图像处理的制作方法

文档序号:6479431阅读:187来源:国知局

专利名称::基于预测的图像处理的制作方法
技术领域
:本发明总体涉及图像处理,具体涉及图像块的基于预测的压缩和解压缩。
背景技术
:为了提高图形处理单元(GPU)的性能,采用存储器带宽减小技术。一种减小带宽要求的方式是执行所谓的缓冲器压缩。典型地,图形系统使用两个缓冲器颜色缓冲器,其中绘出像素的颜色;以及深度缓冲器,其中存储每个像素的深度。在进行呈现时,对这些缓冲器进行读取和写入,并且通常针对两个缓冲器多次访问相同像素。这些读写访问在能量方面代价较大,因此应当保持为最少,尤其是对于具有有限电源的用户终端,如移动设备。缓冲器压缩意味着缓冲器数据块以压缩形式存储在存储器中。由于对于特定像素和块,解压缩和压缩可能多次进行,因此压缩无损(即无破坏性)是很重要的。文献[1]和[2]分别给出了对现有技术颜色缓冲器压缩和深度缓冲器压缩的良好概述。仍然需要高效的深度缓冲器压缩/解压缩算法,尤其是可以有效地用于处理深度缓冲器值属于不同深度值平面的像素块的这种算法。
发明内容本发明克服了现有技术配置中的这些和其他缺陷。本发明的总体目的是提供像素块的高效压缩和解压缩。本发明的另一目的是提供用于深度缓冲器值的压缩和解压缩。这些和其他目的是通过由所附专利权利要求所限定的本发明来实现的。简而言之,本发明涉及具有相关联深度缓冲器值的像素块的压缩和解压缩。压缩涉及针对像素块选择起始深度值,优选地选择为块中预定位置处的像素的深度值。起始深度值被认为包括在起始深度值平面中。针对像素块选择存在于重新起始深度值平面中的重新起始深度值,优选地选择为块中所标识的像素的深度值。此外,产生针对块中像素的相应平面表示,其中这些表示可以被认为指示了像素属于哪个起始平面和重新起始平面。平面表示用于选择像素集合,针对要压缩的像素,所述像素集合包括块中的至少一个其他像素。优选地,所述集合包括块中沿一个或多个预测方向的一个或多个先前像素。所述像素集合中的所述至少一个像素的深度值用于确定当前像素的深度值的预测。然后,基于所确定的预测和像素的深度值来计算预测误差,优选地计算为其间的差值。对预测进行编码以获得编码的预测误差。像素块的压缩表示包括这些编码的预测误差以及起始值和重新起始值的表示,优选地包括平面表示。在解压缩期间,基于压缩块中包括的起始值表示,针对像素块提供起始深度值。该起始深度值被分配为在块中预定位置处的像素的深度值。相应地,基于压缩块中包括的信息来提供重新起始深度值,所述重新起始深度值被分配为块中所标识的像素的深度值。对压缩块中包括的与像素相关联的、编码的预测误差表示进行解码,以获得该像素的预测误差。检索优选包括在压缩块中的、块中像素的平面表示,并将其用于选择块中的至少一个其他像素以构成所述像素的像素集合。基于所述像素集合中的所述至少一个像素的深度值来确定所述像素的预测。通过根据所确定的预测和解码后的预测误差来计算像素的深度值,来对像素进行解码。本发明还涉及一种压缩系统和解压缩系统。本发明防止预测超过平面边界的深度值,从而向块中的像素提供了良好的预测候选,因此提供了高效的像素压缩和解压缩。通过阅读本发明的实施例的以下描述,将认识到本发明提供的其他优点。通过结合附图,参考以下描述,可以最好地理解本发明及其另外的目的和优点,附图中图1是根据本发明的块压缩方法的实施例的流程图;图2是可用于本发明中的像素块的示例的示意;图3示意性示出了使用整数作为浮点数的表示;图4是示意了图1的压缩方法的附加步骤的流程图;图5是示意了根据本发明实施例的平面表示产生步骤的流程图;图6是更详细示意了确定图6中的编码的误差表示的步骤的实施例的流程图;图7A和7B是更详细示意了图1或9中的集合选择和预测提供步骤的实施例的流程图;图8是像素块的压缩表示的示例的示意;图9是根据本发明的块解压缩方法的实施例的流程图;图10是示意了图9的解压缩方法的附加步骤的流程图;图11是可以对其应用本发明教导的深度缓冲器架构的示意框图;图12是根据本发明实施例的压缩系统的示意框图;图13是根据本发明实施例的图12中的重新起始选择器的示意框图;图14是根据本发明实施例的图12中的平面产生器确定器的示意框图;图15是根据本发明实施例的图12中的预测提供器的示意框图;图16是根据本发明实施例的图12中的表示确定器的示意框图;图17是根据本发明实施例的解压缩系统的示意框图;图18是根据本发明实施例的图17中的误差确定器的示意框图;图19是根据本发明实施例的图17中的预测提供器的示意框图;以及图20是对本发明的压缩性能与现有技术压缩方案进行比较的图。具体实施例方式贯穿附图,相同的参考字符用于相应或相似的元件。本发明总体涉及像素参数值的无损压缩和解压缩,具体涉及适于深度缓冲器压缩8和解压缩的这种压缩和解压缩。本发明很好地适用于三维(3D)图形,如游戏、3D地图和场景、3D消息(例如动画消息)、屏保、人机接口(MMI)等,但不限于此。因此,本发明也可以用于对其他类型的图像或图形进行编码,例如一维(ID)、2维(2D)或3D图像。在本发明中,压缩和解压缩集合地处理多个像素,典型地以像素块或像素瓦片的形式。在本发明的优选实施例中,像素块具有MXN像素的大小,其中M、N是整数,并且限制M和N不同时为1。优选地,M=2m,N=2n,其中m、η为0或整数,并且限制m和η不同时为0。在典型实现中M=N,优选地,这种块实施例可以是4X4像素、8X8像素或16X16像ο表述“像素”或“图像元素”是指块或块的编码表示中的元素。块继而与图像、纹理或缓冲器的一部分相对应。因此,根据本发明,图像元素可以是(1D、2D、3D)纹理的纹素(texel,纹理元素)、(1D或2D)图像的像素或3D图像的体素(voxel,体积元素)。一般地,使用相关联的像素参数值或特征来表征像素。在本发明的优选实施例中,像素参数值是深度值或所谓Z值。该特征表示特定像素距离眼睛的深度或距离,并且控制在呈现期间实际将显示哪些像素。压缩和解压缩适于处理共线像素参数值,即位于平面中的参数值。因此,要压缩的块的像素参数值全部位于参数空间的单一平面中,或者位于一组多个(典型为2个)平面之一中。这种要求意味着,可以使用比像素参数值的原始表示的原始数目比特更少的比特来实现像素块的无损压缩。此外,以下,术语“图像”用于表示可以通过本发明进行编码和解码的任何1D、2D或3D图像或纹理,包括但不限于凹凸映射、法线映射、照片、游戏类型纹理、文本、绘图、高动态范围图像和纹理等等。压缩图1是示意了根据本发明用于压缩像素块的方法的流程图。该方法从步骤Sl开始,在步骤Sl中针对要压缩的块选择起始深度值。该起始深度值Zstart优选地被设置为等于块中像素之一(优选为占据块中预定位置的像素)的深度值。这种预定位置的优选实现是使用块的第一位置,即占据左上角的位置,Zstart=Zno可能的起始像素位置的其他示例可以是其他块角落中的任一个。实际上,可以使用块中的任何预定位置作为起始位置,尽管角落位置(尤其是左上角像素)显著简化了块的压缩。所选的起始深度值被认为属于块的第一深度值平面。起始值的表示,如P比特起始值(如果所选深度值包括P个比特),可以包括在块的压缩表示中。下一步骤S2针对块选择所谓重新起始深度值。该值被认为属于第二深度值平面,即与起始值不同的平面。优选地,重新起始深度值Z_tart被选择为等于块中所标识的像素的深度值,即Zrestart=Zij,其中i,j=1,2,...,N,并限制如果在位置(1,1)处的像素用于提供起始深度值,则(i,j)Φ(1,1),并且N表示每行和列的像素数目。压缩块包括所选重新起始值的表示,优选地,如果所选深度值包括P个比特,则该表示具有P比特重新起始值的形式。步骤S3产生像素的平面表示。该平面表示指示该像素属于第一(起始)平面和第二(重新起始)平面中的哪一个。优选地,该表示是1比特字,其中值Obin(或Ibin)指示9第一平面并且值Ibin(或Obin)指示第二平面。优选地,针对块中多个像素的至少一部分来执行步骤S3,这由线Ll示意性示出。更优选地,针对块中的每一个像素来执行步骤S3,可能排除起始像素(与起始深度值相关联的像素)。可选地,可以还排除重新起始像素(与重新起始像素值相关联的像素)。然后,这些多个平面表示可以被认为是表明每个像素属于哪个平面的比特映射。优选地,该比特映射(平面表示)包括在压缩块表示中。在备选实施例中,步骤S2和S3的顺序互换。这意味着,在步骤Sl选择起始深度值之后,针对块中的其余像素产生平面表示。在这种情况下,块中按遍历顺序具有不同于与起始深度值相关联的(起始)平面表示的所产生的平面表示的第一像素被认为是重新起始像素。然后,采用该像素的深度值作为该块的重新起始深度值。针对块中多个像素中要编码的每个像素来执行以下步骤S4至S7。步骤S4针对该像素来选择像素集合,该像素集合包括块中的至少一个其他像素。该集合的选择是基于当前像素和集合中的像素的相应平面表示来执行的。在优选实施例中,该集合中的所选像素具有与当前像素相同的平面表示,即属于与该像素相同的平面。在步骤S5中,使用在所选集合中的像素的深度值来提供当前像素的深度值Zij的预测iy。换言之,基于该像素集合中的至少一个深度值来计算或确定像素的深度值预测。下一步骤S6基于像素的深度值和步骤S5中提供的预测来估计像素的预测误差Z,优选地,将预测误差计算为像素的原始深度值与预测之间的差值=Zii-Zll.νο1J1J1Jο在步骤S7中确定所计算的预测误差的编码的表示。然后,压缩或编码后的块表示包括该编码的表示。优选地,针对块中的多个像素重复该过程,这由线L2示意性示出。在这种情况下,压缩块包括这些像素中的每个像素(当然除了与起始值相关联的像素和与重新起始值相关联的像素之外)的相应编码的预测误差表示。优选地,压缩块还包括起始深度值、重新起始深度值以及优选地平面表示的比特映射的表示。图2是多个像素310-318的块300的示意图。如本领域中公知的,深度缓冲器中像素的原始深度值分量通常是24比特整数。Lapidous和Jaio[3]提出了一种使用浮点值来对深度缓冲器进行编码的备选方式,称为“互补Z表示”。使用这种表示,可以使用fpl6、fp24、fp32等等。Lapidous和Jaio使用的fpl6格式具有3比特的指数、13比特的尾数并且没有符号比特。fpl6的数学值为2tep°nmt_4)X(1.mantissa)。然而,浮点数的浮点性质带来了问题。由于浮点数的密度不均勻,两个浮点数之间的差值可能不可表示。图3示意了这种概念。图3的上半部指示了浮点表示。数密度的不均勻性清晰可见越接近0,密度越大。为了示意具有浮点数形式的颜色分量表示的问题,假定第一深度值为7.5,第二深度值为1.875。这两个数都可以使用fpl6来表示。然而,两个数之差7.5-1.875=5.625不能以fpl6表示。明显不同地,最接近的表示为5.5。然而,如在
背景技术
部分提及的,深度缓冲器压缩需要是无损的。因此,需要计算上述浮点数之间差值的块由于该差值不能以fpl6正确表示而不能无损压缩。如图3所示,本发明可以通过将每个浮点数映射至相应整数表示来解决该浮点数问题。这基本上对应于向每个浮点数分配唯一整数。因此,从浮点数至整数域的映射涉及向越大的浮点数分配越大的整数。这意味着,0.0将被分配为整数表示0,下一最小正浮点数被分配为1,再下一最小浮点数被分配为2,以此类推。以上给出的示例对应于将差值16与整数15相加以获得结果31(或者在解释为浮点数的情况下为7.5)。因此,本发明的优选实现涉及根据浮点域与整数域之间的一对一映射来将浮点深度值解释为整数。在整数域进行计算和算术还避免了代价较高的浮点运算。此外,由于压缩是无损的,也获得了对NaN(非数)、Inf(无穷)和异常(异常数)的正确处理。在这种情况下,根据上述映射并如图3所示,在压缩期间将浮点数解释为整数。在解压缩之后,接着将整数重新解释回浮点数。本发明也可以与整数深度值和浮点深度值结合使用,后者优选地通过上述整数与浮点数之间的一对一关系来结合。可以根据不同实施例来标识重新起始像素位置。在第一方式中,在完全不使用任何重新起始值的情况下对块进行压缩。然后,针对每个可能的重新起始位置(即除了先前描述的起始像素位置之外的每个像素位置),将相同块压缩一次。在4X4块的情况下,这意味着确定1+15个不同的压缩块候选。如果在不使用任何重新起始值的情况下压缩的块得到最小的压缩大小,则对于当前块不采用重新起始值。然而,如果得到最小压缩大小的压缩块候选是使用重新起始值的15个候选之一,则将重新起始像素的位置标识为在具有最小压缩大小的块候选中使用的位置。以下将结合图4来描述在计算上更加有效的备选方法,图4示意了图1的选择步骤S2的实施例。该方法从图1的步骤Sl开始继续。下一步骤SlO标识块中与起始深度值相差最多的深度值。首先针对块中的所有其余像素计算与起始值的绝对差值Izstart-ZijI,其中(i,j)φ(Ll)0标识具有得到最大绝对差值的深度值的像素。这里该深度值表示为Zdiff0此后,针对这些像素计算像素的深度值与起始值之间的第一绝对差值Izij-ZstartI,并且计算该深度值与Zdiff之间的第二绝对差值IZij-ZdiffL如果第一绝对差值小于第二绝对差值,则该像素被认为属于起始深度平面,并且预测了起始值;否则将其分类为属于重新起始平面并预测了重新起始值。属于起始平面的像素可以被分配为Obin(或Ibin)的临时分类索引,而重新起始预测像素被分配为Ibin(或Obin)的临时分类索引。在这种情况下,重新起始像素被标识为块中按遍历顺序具有大于第一差值的第二绝对差值的第一像素。因此,当从上部的行开始向下逐行遍历时,块中具有Ibin的临时分类索引的第一像素被认为是重新起始像素。在步骤S12中,所标识的重新起始像素的深度值被选择为重新起始深度值。然后,该方法继续至图1的步骤S3。在另一方式中,根据针对像素中的至少一部分(优选地,块中除起始像素之外的每个像素)而产生的平面表示来标识重新起始深度值。在这种情况下,块中按遍历顺序具有与起始深度值所属的第一平面不相关联的平面表示的第一像素被认为是重新起始深度像素。然后,采用该像素的深度值作为该块的重新起始值。图5是示意了图1的平面表示产生步骤的实施例的流程图。该方法从图1的步骤S2开始继续。下一步骤S20计算像素的深度值与起始深度值之间的第一差值。此外,计算该深度值与重新起始深度值之间的第二差值。在备选方式中,尤其是在尚未确定重新起始深度值的情况下,计算该深度值与上述Zdiff之间的第二差值。如果第一差值的绝对值小于第二差值的绝对值,Zij-Zsrart<IziJ-ZrestartI或IZiJ-ZstartI〈IZiJ-Zdiff,则该方法继续至步骤S21。步骤S21产生指示第一深度值平面的第一平面表示,如Obin(或Ibin)。该平面表示被分配给当前像素,并被包括作为压缩块中的比特映射的一部分。然而,如果像素的深度值更接近于重新起始值而不是起始值,则取而代之地,方法继续至步骤S22。该步骤S22产生指示第二深度值平面的第二平面表示,如Ibin(或0bin)。该平面表示被分配给该像素,并被包括在压缩块中。本发明可以预期,在标识重新起始像素过程中确定的临时分类比特实际上还可以用于提供平面表示。在这种情况下,不需要专门的平面表示提供过程,而是与起始值选择过程相结合地提供这些表示。尽管在计算上代价更大,用于产生平面表示的另一实施例是测试平面表示的所有215种可能组合,并选择在计算上最高效(即得到最小压缩块大小)的一种。另一实施例是使用Haselgren和Akenine-M6ller[2]所讨论的过程。简而言之,允许起始平面从起始深度值开始生长,直到预测误差变得过大。相应地,允许重新起始平面从块中的对角相对位置开始生长,直到误差变得过大。一旦两个相应平面一起包含了所有块,则获得了平面表示。本发明还包含另一实施例。在这种情况下,测试15种可能位置(在4X4块的情况下)中的起始位置。基于该位置,确定平面表示的“最佳”集合或比特映射。在这种过程中,块中相对于候选重新起始位置按遍历顺序在先前位置的所有像素被认为具有指示第一/起始平面的平面表示。对于块中按遍历顺序跟随重新起始位置之后的每个像素,测试该像素属于第一/起始平面还是第二/重新起始平面。该测试可以根据不同准则来执行。第一准则可以是,选择得到最小预测误差的平面表示。然而,针对像素得到最小预测误差的平面表示不一定得到块的最高效编码。如这里结合Golomb-Rice编码进一步描述的,预测误差除以值21,其中1等于确定的值k或者是k的函数(取决于用于计算当前像素的预测的、相邻深度值的数目)。根据1=k还是1=f(k),例如如果平面表示具有导致1=f(k)而不是1=k的值,则较大的预测误差可以实际上得到较短的所产生的压缩块。然后,可以针对所有可能的重新起始位置和所有可能的平面表示来测试该过程。图6是示意了确定图1中预测误差的编码的表示的步骤的实施例的流程图。该方法从图1的步骤S6开始继续。下一步骤S30修改预测误差来得到正预测误差。优选地,该修改涉及将函数η(χ)=-2χ应用至负预测误差(包括0),并将函数ρ(Χ)=2χ-1应用至正预测误差(不包括0)。这将产生预测误差的新配置,如{0,1,-1,2,-2,3,-3,.··},这意味着,具有较小幅度的数将具有较小的值。然后,优选地对每个修改后的预测误差进行Golomb-Rice编码以获得编码的表示。Golomb-Rice编码涉及在步骤S31中搜索指数k。该数k优选地用于块中的一组至少一个像素。例如,块中一组2X2的4个像素或者实际上4X4的所有像素可以共享相同的k。可以使用可用k值中的穷尽搜索,如在O至15之间,以找到针对该组的最佳k。下一可选步骤S32基于搜索的k来计算指数值1,即1=f(k)。在优选实施例中,如果步骤S4中针对当前像素选择的像素集合包含一个像素,则函f(k)等于wXk+h或如果取而代之地当前像素的像素集合包括块中的多个其他像素,即基于块中的这些其他像素的深度值来预测该像素的深度值,则1=k。由于多个像素可以共享相同的k值,因此,根据针对像素而选择的相应像素集合中的像素数目,所有这些像素可以具有相同的1值或不同的1值。下一步骤S33将该组的每个预测误差除以21,以形成相应的商和余数。在下一步骤S34中对商进行一元编码。该一元编码优选地根据下表1来执行表1-一元码_UnarycodeQuotient_Obin0IObin1IlObin2IllObin3IlllObin4…_从表1可以清楚看到,一元编码将较长的码分配给较大的值。一般地,大于31的值使用OXfTfThex后接该值的16比特来进行编码。预测误差的编码的表示包括一元码和1比特的余数。此外,针对像素组存储值k。针对块中除起始像素和重新起始像素之外的每个像素执行该过程。如上所述,将这些像素的原始深度值分别存储为起始和重新起始分量值。本发明是(但不限于)Golomb-Rice编码算法。明显不同地,可以备选地使用如Huffman算法之类的其他编码算法。图7A和7B示意了图1的像素集合选择步骤和预测提供步骤的优选实施例。参照图2进一步讨论该优选实施例,其中要对像素块300中表示为D的像素318进行压缩。该方法从图1的步骤S4开始继续。下一步骤S40调查块中相对于像素318沿第一预测方向存在的第一相邻像素317(表示为A)、沿第二预测方向存在的第二相邻像素315(表示为B)以及沿第三预测方向存在的第三相邻像素314(图2中表示为C)是否均属于与像素318相同的深度值平面。优选地,第一相邻像素317是在与当前像素318相同行中存在的先前像素。相应地,第二相邻像素315位于块300中的相同列中的先前像素位置。最终,优选地,第三相邻像素314是相对于像素318对角地位于左上角(即在先前行和先前列中)的对角先前像素。13像素314、315、317的平面表示与要编码的像素318的相应平面表示进行比较。如果它们都相等,即所有像素314、315、317、318被认为存在于相同的深度值平面,则该方法继续至步骤S41。步骤S41基于3个相邻像素314、315,317的预测值来计算像素318的深度值的预测。在优选实施例中,将该预测计算为第一相邻像素317和第二相邻像素315的深度值之和减去第三相邻像素314的深度值然而,如果这些相邻像素314、315、317的平面表示不是都等于像素318的平面表示,则方法从步骤S40继续至步骤S42。步骤S42调查沿第一预测方向的第一相邻像素317和沿第一预测方向存在的第二像素316(图2中表示为E)是否属于与当前像素318相同的深度值平面。优选地,第二像素316是存在于与当前像素318(和第一相邻像素317)相同的行中的第二先前像素316。如果所有这3个像素316、317、318的平面预测相等,则该方法继续至步骤S43。步骤S43基于被选择要包括在像素集合中的两个先前像素316、317的预测值来计算像素318的深度值的预测。在优选实施例中,将深度值预测计算为等于第一相邻像素的深度值的两倍减去第二像素的深度值:然而,如果这3个像素316、317、318的平面表示不相等,则该方法从步骤S42继续至步骤S44。步骤S44调查第二相邻像素315和沿第二预测方向存在的第三像素312(图2中表示为F)是否与当前像素318属于相同的深度值平面。优选地,第三像素312是存在于与当前像素318(和第二相邻像素315)相同的列中的第二先前像素312。如果所有这3个像素312、315、318的平面预测相等,则该方法继续至步骤S45。步骤S45基于被选择要包括在像素集合中的两个先前像素312、315的预测值来计算像素318的深度值的预测。在优选实施例中,将深度值预测计算为等于第二相邻像素的深度值的两倍减去第三像素的深度值在图7Α的备选实施例中,改变步骤S40、S42和S44的顺序。例如,如果在步骤S40中相邻像素314、315、317的平面表示不是都等于像素318的平面表示,则该方法从步骤S40继续至步骤S44。此后,如果像素316、317不是都具有与当前像素318相同的平面表示,则该方法从步骤S44继续至步骤S42。此外,图7A的过程可以取而代之地从步骤S42的检查开始,进行至步骤S40,然后至步骤S44;从步骤S42开始,进行至步骤S44,然后至步骤S40。相应地,该过程可以从步骤S44的调查开始,进行至步骤S40然后至S42;或者从步骤44开始,然后至S42最后至步骤S40。因此,这3个步骤S40、S42、S44的顺序可以是任何预定顺序。针对要压缩的块而选择的特定顺序不影响本发明的编码质量。如果上述任一条件都不满足,则该方法继续至图7B的步骤S46。该步骤S46使用相应平面表示来调查第一相邻像素317和第二相邻像素315是否属于与像素318相同的深度值平面。如果它们都属于相同平面,则下一步骤S48(步骤S47在解压缩而不是压缩期间执行)选择两个相邻像素315、317的深度值之一作为当前像素的深度值预测。在优选实施例中,选择与像素318的深度值最接近的深度值。换言之,如果IZi(H)-ZijI<IZ(H)rZijI,则之,否则為。在备选实施例中,根据所选的深度值来计算预测,即下一步骤S49提供了与第一相邻像素317和第二相邻像素315中的所选像素相关联的引导比特,以用作当前像素318的预测基础。由于选择是在两个相邻像素315、317之间进行,顾名思义,引导比特可以是1比特选择字。在备选实施例中,该方法不直接从步骤S46继续至步骤S48。该实施例涉及执行另外的检查,以调查两个相邻像素315、317是否具有实质上相同的深度值。因此,可以计算深度值之间的绝对差值,如果该差值小于预定阈值,则计算两个值的平均并用作预测,即如果仅期望整数预测,则可以对该平均进行舍入,并输入至向下取整(或向上取整)函数,如在这种情况下,不需要额外的引导比特。如果该绝对差值超过阈值,则该方法继续至步骤S48,采用相邻像素315、317之一作为当前像素318的预测基础。如果第一相邻像素317和第二相邻像素315不是都属于与当前像素318相同的深度值平面,则该方法从步骤S46继续至步骤S50。步骤S50调查第一相邻像素317是否存在于与像素318相同的深度平面中。在这种情况下,步骤S51基于第一相邻像素的深度值来定义深度值预测,优选地将该预测设置为等于相邻深度值iy=Ζζ_ι}。如果第一相邻像素317不属于与当前像素318相同的深度值平面,则该方法从步骤S50继续至步骤S52。以与步骤S50类似的方式来执行该步骤S52,但是取而代之地调查第二相邻像素315是否属于与像素318相同的深度平面。如果基于其相应平面表示的比较而确定结果为是,则该方法继续至步骤S53,其中基于第二相邻像素315的深度值来确定像素318的预测,优选为如果第一相邻像素317和第二相邻像素315都不属于与像素318相同的深度平面,则该方法继续至步骤S54。步骤S54将像素318的预测选择为基于起始深度值和重新起始深度值之一。基于像素318所属的平面来选择该预测。如果它属于与起始值相同的平面,则使用,否则使用f=Z在备选方式中,根据所选深度值来计算预测,即此后,一旦在步骤S41、S43、S45、S48、S51、S53或S54中的任一个中提供了深度值,则该方法继续至图1的步骤S6,其中基于所提供的深度值预测来估计预测误差。在上述讨论中,已经将第一相邻像素公开为像素块中与要编码的当前像素相同的行中存在的先前像素。然而,这仅是一种可能实现的示意性示例。在备选实施例中,第一相邻像素可以是像素块中与当前像素相同的列中存在的先前像素。在这种情况下,第二相邻像素优选为块中与当前像素相同的行中存在的先前像素。如果图7A至图7B中公开的过程中表示为A至F的任一像素实际上存在于该块之外,则该像素被视为不属于与要编码的像素相同的深度值平面。例如,假定图2的像素317应当被编码。此外,在本示例中,第三相邻像素313属于与像素317不同的平面。因此,图7A的步骤S40的条件不满足,并且该方法继续至步骤S42。然而,在这种情况下,沿第一预测方向的第二像素将位于块边界之外。因此,该像素可以被认为具有与像素317不同的平面表示。因此,该方法从步骤S42继续至S44。这意味着,对于存在于第一行或第一列中的像素311、312、313、316,深度值预测将等于相同的第一行或第一列中的相邻先前像素的深度值,或者是根据第一行或第一列中最前的像素的深度值来计算的,即ily_=ζι{]_ι)}ζα=ζ(_1}1,Λ^Z1J=2χ-Z1^l2)或Zn=2X^(/_ι)ι—Z(P2)1其中Z11=zstart。图8是根据本发明压缩的像素块的压缩表示400的示意图。在呈现之前,优选地将所有块清除并仅包含Zto值。即使在开始了块中的呈现之后,也经常将许多像素设置为Zto值。因此,许多起始值将等于Zto值。因此,有利地,具有对这一点进行信号通知的这一情况。因此,压缩块400优选地包括一个比特410,以信号通知当前块是否具有等于Zto的起始深度值。在压缩块400中包括起始值的表示420,或者如果设置了清除比特410,则可以省略表示420。压缩块400还包括重新起始值的表示430。块400中还包括平面表示440的比特映射以及确定的k值450。在典型实施例中,比特映射440包括15个平面表示,除了起始像素之外每个像素具有一个这种表示。然而,存在其他更高效的方式来对这种平面表示进行编码,这是在现有技术中已知的,并且可以应用于本发明。根据针对像素选择了哪些预测,可以包括额外引导比特460。压缩块400还包括来自Golomb-Rice编码的商和余数的一元码,在图中表示为编码的误差表示470。压缩块400所包括的分量的实际顺序可以与图8所示的不同。解压缩图9是示出了根据本发明对压缩或编码的像素块进行解压缩或解码的方法的流程图的示意。该方法从步骤S60开始,步骤S60提供块的起始深度值。该起始值是基于压缩像素块中包括的起始值表示来提供的。在优选实施例中,在压缩块中,起始深度值是以未压缩的形式提供的,因此可以直接分配作为起始像素的深度值。如上所述,该像素具有块中的预定位置,优选地在(i,j)=(1,1)处。备选地,比特可以指示起始深度值是否等于Zto值,并且在这种情况下避免显式存储起始值。下一步骤S61提供了压缩块的重新起始深度值。该值是基于压缩块中包括的重新起始值表示来提供的。该表示优选地以未压缩的形式包括重新起始值。典型地,重新起始像素的位置是从平面表示获得的。按遍历方向不具有与起始深度值相同的平面表示的第一像素是重新起始值的位置。步骤S61涉及根据平面表示来标识块中的重新起始像素,并将重新起始值分配为所标识的像素的深度值。如上所述,起始深度值和重新起始深度值被认为属于不同的深度值平面。针对块中要解码的每个像素执行接下来的步骤S62至S65的循环。步骤S62基于与像素相关联并包括在压缩块中的编码的误差表示来确定像素的预测误差。优选地,通过对预测误差的编码表示进行Golomb-Rice解码来执行预测误差。在这种情况下,预测误差优选地包括一元编码的商、余数和指数值k。商可以使用上述表1从一元编码的数据获得。此后,商和余数形成的值乘以21以形成预测误差,其中,根据当前像素的像素集合包括一个还是多个其他其他像素,值1等于k或k的函数。下一步骤S63选择像素集合,该像素集合包括块中的至少一个其他像素。该选择是基于与像素相关联的相应平面表示来执行的。如之前所讨论的,平面表示指示像素属于起始深度平面和重新起始深度平面中的哪个平面。在步骤S64,提供对像素的深度值的预测。优选地,步骤S64涉及基于所选像素集合中该至少一个像素的深度值来提供预测。因此,该像素集合中的该至少一个深度值用于提供或计算深度值预测。最终,步骤S65基于步骤S62中确定的预测误差和步骤S64中提供的深度值预测来计算像素的深度值的表示。优选地,通过将所确定的预测误差与预测相加来得到解码的像素的深度值,从而实现该计算。优选地针对要解码的块中的每个像素重复图9的解压缩方法,这由线L3示意性示出。这意味着,针对给定压缩块,该方法可以执行一次或多次(如针对块中的每个像素执行一次)。图10是示意了解压缩方法的附加步骤的流程图。该方法从图9的步骤S60开始继续。下一步骤S70提供与来自压缩块中包括的像素相关联的相应平面表示。然后,在图10的步骤S61中使用检索到的平面表示来标识重新起始像素,然后在步骤S63中用于标识该像素的正确像素集合,从而标识该像素的正确深度值预测。图7A和7B示意了图9的像素集合选择步骤和预测提供步骤的优选实施例。然后如上所述执行该过程,以逐步地基于所提供的平面表示在步骤S40、S42、S44、S46、S50或S52中标识正确的预测集合。一旦标识了正确的像素集合,则根据步骤S41、S43、S45、S48、S5US53或S54之一,基于像素集合的深度值来确定深度值预测。本实施例与在压缩期间执行的过程相比区别在于,如果在步骤S46认定第一和第二相邻像素都属于与要解码的当前像素相同的平面,则该方法继续至步骤S47。步骤S47提供与当前像素相关联并且包括在压缩块中的引导比特。该引导比特指示使用第一和第二相邻像素中的哪一个作为像素的预测基础。因此,基于相关联的引导比特来执行步骤S48中的深度值预测的选择。下一步骤S49在解压缩期间不进行,而仅与压缩相关联来执行。如上所述,在与当前像素相同行或列的两个先前像素分别具有相等或近似相等的深度值时,可以省略引导比特的使用。在这种情况下,根据两个相邻深度值的平均来确定预测。解压缩示例在以下示例中,假定在图2中示意的块大小和在图8中示意的压缩块布局。Zfar比特0bin起始值:010011101001101011010001bin重新起始值:000000101001101011010001bin平面表示00010001111111Ibink值=X1X2.·.Xn其中Xi=0/lbin,i=1.··η引导比特无编码的表示YJ2...Ym其中Yi=0/lbin,i=1...m针对当前块未设置Zto比特,意味着不应将起始值设置为Zto值。取而代之地,起始值应当直接从起始值比特获得。根据平面表示获得重新起始像素的位置。平面表示比特向量中的第一个非零比特在位置4,因此,重新起始像素的位置为4,如果(1,1)具有位置编号0、(1,2)具有位置编号1,并且按遍历顺序以此类推,则位置4对应于(2,1)。重新起始值为000000101001101011010001bin=170705。因此,Z(2jl)=Zrestart=170705。起始像素在位置(1,1),起始值为010011101001101011010001bin=5151441。因此,Z(ljl)=Zstart=5151441。部分解码的块现在看起来如此后,从第一行开始按遍历顺序对块进行解码。第一行的所有其余像素的平面表示设置为Obin,指示它们属于与起始深度值相同的深度值平面。像素的平面表示根据以下根据图7A至7B的解压缩实施例可以看到,根据步骤S50,在位置(1,2)的下一像素应具有包括第一相邻像素的预测集合,因为没有第二或第三先前预测像素。这意味着i(1,2)=Z(U)=5151441。在以下示例中,通过Golomb-Rice解码(这里未公开)来确定预测误差。因此,假定针对该块的、解码的预测误差表示如下因此,第二像素的深度值可以计算为Z(l2)二Z(u)+Z(l2)=10+5151441=5151451。第一行中的下一像素满足步骤S42的要求,因此有i(13}=2xZ(u)-Z(l])=5151461。第一行中的第三像素的对应深度值为Z(u)=乏(1,3)+i(1,3>=10+5151461=5151471。针对第一行的第四也是最后一个像素重复该过程,以给出部分解码的块5151441515145151514715151501170705此后,对第二行中的其余像素进行解码。第二行中的第二像素满足步骤S52的要求,因此具有深度值而2.2)=乏(2,2>+f(2,2)二乏(2’2)+Z(,,2)=15+5151451=5151466。第二行的第三像素满足步骤S40的准则,并被解码为Z(2』=43,十备』二4』+而+Z(⑶-Z(l.2,=15+5151466+515147卜5151451=5151501针对第二行的最后一个像素执行相同的过程,以得到部分解码的块5151441515145151514715151501170705515146651515015151531针对其余两行重复解码过程,得到最终解码的块5151441515145151514715151501170705515146651515015151531170680170710170770170860170630170645170690170765然后,可选地,如以上结合图3所讨论的,可以将根据以上计算的深度值重新映射为浮点数。19实现方面图11是可以应用本发明教导的深度缓冲器架构1的示意概述。该架构包括随机存取存储器(RAM)50,用于存储像素块,包括深度值等等。深度单元10包括根据本发明的解压缩系统200,用于对从RAM50取出的压缩块进行解压缩。解压缩或解码的块临时存储在深度单元10的相关联瓦片高速缓存(tilecache)14中。在深度单元10中还提供了根据本发明的压缩系统100,用于对高速缓存14中存在的像素块进行压缩以存储在RAM50中。在优选实施例中,深度单元10还包括瓦片表高速缓存(tiletablecache)12。该表高速缓存12存储与像素块相关联的首部信息,但是保持与深度缓冲器数据分离。瓦片表条目典型地包含标记,该标记信号通知相关联的像素块是以未压缩的形式还是以压缩的形式存储在RAM50中。在后一种情况下,优选地,该标记还信号通知压缩块的大小,因为不同的压缩块可以具有不同的总比特长度。例如,可以使用2比特标记来信号通知未压缩块、具有原始大小75%的压缩块、具有原始大小50%的压缩块或者快速Z清除的压缩块。光栅化器20连接至深度单元10,并执行像素的实际光栅化。光栅化器20连接至用于计算像素的深度和颜色的一个或多个像素管道30。每个像素管道30连接至深度测试单元40,深度测试单元负责丢弃由先前绘制的几何形状所包藏的像素(即具有较大的深度值)。在一些实施例中,像素管道30和深度测试40的顺序可以互换。压缩器图12是根据本发明的压缩器或压缩系统100的示意框图。系统100包括起始选择器110,实现用于针对要压缩的块选择起始深度值。选择器110优选地将起始值选择为等于块中预定像素位置处的像素的深度值,如块的左上角处的像素。该起始深度值被认为属于第一(起始)深度平面,并且起始深度值的表示包括在压缩块中。重新起始选择器120被配置为选择块的重新起始深度值。该重新起始选择器120优选地将重新起始值选择为等于块中所标识的像素的深度值。该重新起始值被认为属于第二(重新起始)深度平面,并且重新起始深度值的表示包括在压缩块中。压缩系统100还包括平面表示产生器130,用于产生像素的平面表示。该表示指示该像素属于起始平面和重新起始平面中的哪一个平面。该平面产生器优选地针对块中的多个像素的至少一部分,更优选地针可能对除起始像素之外的每个像素,产生平面表示。在这种情况下,如上所述,重新起始选择器120可以使用平面表示来标识正确的重新起始像素。这意味着,平面表示也可以被认为是块中的重新起始像素的位置的表示。集合选择器140被提供用于针对要编码的像素来选择块中至少一个像素的像素集合。此外,该集合选择是基于表示产生器130所确定的像素的平面表示来执行的。如上所述,集合可以包括块中沿不同预测方向存在的一个或多个(如2个或3个)像素。预测提供器150确定像素的深度值的预测。在这种情况下,提供器150基于来自集合选择器140的像素集合中包括的像素的深度值来产生深度预测。误差估计器160使用所提供的深度预测来估计或计算像素的预测误差。优选地,该误差被计算为预测提供器150所确定的预测与像素的原始深度值之间的差值。在压缩系统100中实现表示确定器170,用于确定来自误差估计器160的预测误差的编码的表示。该误差表示被分配给像素并包括在压缩像素块中。压缩系统100可以可选地包括引导比特提供器180,实现用于提供引导比特,该20引导比特用于信号通知使用两个可用相邻像素中的哪一个作为当前像素的预测基础。在这种情况下,这两个相邻像素都属于与该像素相同的深度值平面,并且采用弓丨导比特来在两个像素的深度值之间进行区分。压缩系统100的单元110至180可以作为软件、硬件或其组合来提供。单元110至180可以一起实现在压缩系统100中。备选地,分布式实现也是可能的,其中一些单元在深度缓冲器架构中的其他地方提供。重新起始选择器120可以实现用于通过穷尽搜索测试块中的每个可用比特位置(除起始像素的位置外)来标识重新起始像素。然后,选择得到最高效的压缩块(即压缩块表示的最短比特长度)的重新起始位置和重新起始值。图13示意了重新起始选择器120的备选实现。重新起始选择器120包括值标识器122,被配置用于标识块中深度值与来自起始选择器的起始深度值相差最多的像素。差值计算器124被实现用于(优选地针对每个像素)计算深度值和起始值之间的第一差值Zu-Zstart以及深度值和相差最多的值之间的第二差值Zij-Zdifftl如果对于某一像素,第一差值的绝对值最小,则该像素被认为属于起始深度平面。然而,如果Izu-ZdiffI<IZu-ZstotI,则取而代之地,该像素属于重新起始深度平面。值选择器126调查被认为属于重新起始平面的所有像素,并将重新起始像素标识为按遍历顺序(在4X4像素块的情况下为(1,1)—(1,4),(2,1)—(2,4),(3,1)—(3,4),(4,1)—(4,4))属于重新起始值平面的第一像素。然后,压缩块表示优选地包括重新起始值的表示,即所标识的重新起始像素的深度值。重新起始选择器120的单元122至126可以作为软件、硬件或其组合来提供。单元122至126可以一起实现在重新起始选择器120中。备选地,分布式实现也是可能的,其中一些单元在压缩系统中的其他地方提供。备选地,重新起始选择器120可以根据本文中先前讨论的任一其他实施例来操作。例如,重新起始选择器120可以使用来自平面表示产生器130的信息来将重新起始像素标识为按遍历顺序被认为属于与起始深度值的平面不同的平面的第一像素。图14是平面表示产生器130的实施例的示意框图。产生器130包括差值确定器132,被实现用于确定像素的深度值与起始深度值之间的第一差值。产生器130还计算该深度值与重新起始深度值或与块中与起始值相差最多的值Zdiff之间的第二差值。平面产生器130中包括表示产生器134,在第一差值的绝对值小于第二差值的绝对值的情况下,用于产生指示起始深度值平面的、像素的平面表示。否则,产生器134提供指示重新起始平面的平面表示。平面表示产生器130的单元132和134可以作为软件、硬件或其组合来提供。单元132和134可以一起实现在产生器130中。备选地,分布式实现也是可能的,其中一些单元在压缩系统中的其他地方提供。在优选实施例中,集合选择器140调查要编码的像素的平面表示和块中沿不同预测方向存在的3个先前相邻像素的平面表示。如果所有这4个像素属于相同的平面,则图15中示意的预测提供器150的预测计算器152基于3个相邻像素的深度值来计算该像素的深度值预测。在优选实施例中,计算器152将预测计算为=Ziij^+ζ{_ιυ-ζ{_Φ_ι}。如果3个相邻像素不是都属于与该像素相同的平面,则集合选择器优选地调查第一相邻像素和第二像素是否存在于与第一相邻像素和当前像素相同的行(或列)中。在这种情况下,计算器152基于这两个像素的深度值来确定预测,优选地确定为Zi).=2χzi{j_x)-zi{j_2)。如果第一相邻像素和第二像素不是都属于与当前像素相同的平面,则集合选择器检查第二相邻像素和第三像素是否存在于与第二相邻像素和当前像素相同的列(或行)中。如果该条件满足,则预测计算器152基于这两个像素的深度值来确定预测,优选地确定为Z"=2χZ(/_1)y-Zu_2)jg备选地,上述检查的顺序可以与之前讨论的不同。然而,如果任一条件都不满足,则如本发明所述,集合选择器调查第一和第二相邻像素是否属于相同的深度值平面。在这种情况下,预测提供器150选择这两个像素中与当前像素的深度值最接近的深度值(即得到最小绝对差值)作为该像素的预测。此外,压缩系统的引导比特提供器向该像素分配引导比特,其中该引导比特指示第一和第二相邻像素中所选的像素。备选地,将这两个像素的深度值进行比较,以确定它们是否彼此相差很大。如果不是,则预测提供器150要基于两个深度值的平均(可能在舍入之后)来确定预测。如果两个值彼此不同,而且差值大于所定义的阈值,则如上所述选择其中的任一个值。如果第一和第二相邻像素不是都属于与当前像素相同的平面,则集合选择器检查第一相邻像素是否属于该相同平面,然后,如果不是,则调查第二相邻像素是否属于与要编码的像素相同的平面。预测提供器150将深度值预测设置为等于第一和第二相邻像素中属于与该像素相同平面的那个相邻像素的深度值。最终,如果基于平面表示确定第一和第二相邻像素均不属于与该像素相同的平面,则集合选择器将集合确定为包含起始像素或重新起始像素。可以基于当前像素的平面表示来确定从这两者中要选择的像素。因此,如果该表示指示重新起始平面,则集合包括重新起始像素,否则包含起始像素。这意味着,预测提供器将深度值预测选择为起始深度值和重新起始深度值之一。预测提供器150的单元152可以作为软件、硬件或其组合来提供。单元152可以一起实现在预测提供器150中。备选地,分布式实现也是可能的,其中一些单元在压缩系统中的其他地方提供。图16是图12的表示确定器170的优选实现的更详细示意的框图。确定器170包括误差修改器172。修改器172处理所计算的预测误差,以得到如上所述的正预测误差,即针对负预测误差(包括0)将预测误差χ输入函数η(χ)=-2χ,并针对正预测误差(不包括0)将预测误差χ输入函数P(χ)=2χ-1。优选地使用Golomb-Rice编码器174对得到的修改后的预测误差进行编码。该编码器174基于来自误差修改器172的正误差的编码来输出编码的预测误差表示。一般地,编码器174包括值搜索器,用于搜索值k。优选地针对块中的一组像素来确定值k,使得这些像素共享相同的值k。与针对块中的每个像素具有专用的值k相比,这节省了最终压缩块表示的比特数。值搜索器171可以在所有可用值k(如15)中执行穷尽搜索。然后选择得到最高效编码(即最短压缩块表示)的值k,并用于该像素组。数值提供器173基于所确定的值k来提供指数1。在优选实施例中,如果集合选择器选择的像素集合包括多个像素,则提供器173将该数值1确定为等于k。否则,l=wXk+h或/=|_沙><^:+/2」,其中w是权重值,优选地w=0.5;h是常数,优选地h=10。除法器175使用所确定的值1,并将当前组中的像素的预测误差除以数值21以得到商和1比特余数。一元编码器177被提供用于根据公知的过程来对商进行一元编码。然后,像素的编码的预测误差表示包括一元编码的商、余数和值k。表示确定器170的单元171至177可以作为软件、硬件或其组合来提供。单元171至177可以一起实现在表示确定器170中。备选地,分布式实现也是可能的,其中一些单元在压缩系统中的其他地方提供。解压缩器图17是根据本发明的解压缩器或解压缩系统200的示意框图。系统200包括起始提供器210,用于提供像素块的起始深度值。提供器210基于压缩像素块中包括的起始值表示来提供该起始值。优选地,该起始值被分配为像素块中具有预定位置的像素的深度值。相应地,重新起始提供器220基于压缩块中的信息来提供重新起始深度值。该信息包括实际重新起始值的表示。此外,压缩块还包括允许对块中的特定重新起始位置进行标识的信息。该位置信息可以是平面表示的比特映射,或者(尽管次优选)专用的重新起始位置字。然后,所标识的像素(重新起始像素)被分配有重新起始值,作为深度值。系统200还包括误差确定器230,用于确定块中至少一个像素的预测误差。该预测误差是基于与像素相关联并包括在块中的编码的误差表示来确定的。集合选择器240基于与像素相关联的平面表示来选择像素集合,该像素集合包括块中至少一个其他先前解码的像素。优选地,平面提供器270从压缩像素块中取回这些平面表示。集合选择器240的操作与结合图12的压缩系统并且还结合图7A和7B讨论的集合选择器240类似。然后,预测提供器250基于所选像素集合中包括的像素的深度值来提供要解码的像素的深度值的预测。表示计算器260使用来自预测提供器250的预测与来自误差确定器230的预测误差一起,来计算像素的深度值的表示,从而产生解码的像素。解压缩系统200的单元210至270可以作为软件、硬件或其组合来提供。单元210至270可以一起实现在解压缩系统200中。备选地,分布式实现也是可能的,其中一些单元在深度缓冲器架构中的其他地方提供。图18是误差确定器230的实施例的示意框图。确定器230包括=Golomb-Rice解码器232,对压缩块中的编码的预测误差表示进行操作。具体地,如上所述,解码器232使用像素的一元编码的商、1比特余数和值k来计算预测误差。误差确定器230的单元232可以作为软件、硬件或其组合来提供。单元232可以一起实现在误差确定器230中。备选地,分布式实现也是可能的,其中一些单元在解压缩系统中的其他地方提供。图19是图17的预测提供器250的一种可能实现。该提供器包括预测计算器252,被配置为基于集合选择器所选择的像素集合中包括的多个像素的深度值来计算深度值预测。如上结合图7A的步骤S41、S43或S45所述,计算器252根据选择了哪个特定像素集合,来计算预测。否则,如图7B的步骤S48、S5US53或S54中所公开的,预测提供器250提供深度值预测。预测提供器250的单元252可以作为软件、硬件或其组合来提供。单元252可以一起实现在预测提供器250中。备选地,分布式实现也是可能的,其中一些单元在解压缩系统中的其他地方提供。在特定实施例中,压缩或解压缩系统的集合选择器被配置为将像素集合选择为包含相对于要压缩或解压缩的至少一个像素,在块中沿第一预测方向存在的第一相邻像素;相对于所述至少一个像素,在块中沿第二预测方向存在的第二相邻像素;以及相对于所述至少一个像素,在块中沿第三预测方向存在的第三相邻像素(在基于平面表示确定第一、第二和第三相邻像素属于与所述至少一个像素相同的深度值平面的情况下)。在这种情况下,压缩或解压缩系统的预测提供器包括预测计算器,用于将预测计算为等于第一和第二相邻像素的深度值之和减去第三相邻像素的深度值。在另一特定实施例中,集合选择器被配置为将像素集合选择为包含相对于所述至少一个像素,在块中沿第一预测方向存在的第一相邻像素;以及沿第一预测方向的第二像素(在基于平面表示确定第一相邻像素和第二像素属于与所述至少一个像素相同的深度值平面的情况下)。在这种情况下,预测提供器包括预测计算器,用于将预测计算为等于第一相邻像素的深度值的两倍减去第二像素的深度值。在另一特定实施例中,集合选择器被配置为将像素集合选择为包含相对于所述至少一个像素,在块中沿第二预测方向存在的第二相邻像素;以及沿第二预测方向的第三像素(在基于平面表示确定第二相邻像素和第三像素属于与所述至少一个像素相同的深度值平面的情况下)。在这种情况下,预测提供器包括预测计算器,用于将预测计算为等于第二相邻像素的深度值的两倍减去第三像素的深度值。优选地,集合选择器被配置为将像素集合选择为包含第一相邻像素和第二相邻像素之一(在基于所述平面表示确定第一、第二和第三相邻像素不都属于与所述至少一个像素相同的深度值平面,且第一相邻像素和第二像素不都属于与所述至少一个像素相同的深度值平面,且第二相邻像素和第三像素不都属于与所述至少一个像素相同的深度值平面,但是第一和第二相邻像素属于与所述至少一个像素相同的深度值平面的情况下)。压缩系统还包括引导提供器,用于提供与第一和第二相邻像素中所选的像素相关联的引导比特,其中,块的压缩表示包括弓I导比特。优选地,解压缩系统的集合选择器被配置为,基于分配给所述至少一个像素并包括在压缩像素块中的引导比特,将像素集合选择为包含第一相邻像素和第二相邻像素之一(在基于平面表示确定第一、第二和第三相邻像素不都属于与所述至少一个像素相同的深度值平面,且第一相邻像素和第二像素不都属于与所述至少一个像素相同的深度值平面,且第二相邻像素和第三像素不都属于与所述至少一个像素相同的深度值平面,但是第一和第二相邻像素属于与所述至少一个像素相同的深度值平面的情况下)。此外,优选地,集合选择器被配置为将像素集合选择为包含第一相邻像素(在基于平面表示确定第一、第二和第三相邻像素不都属于与所述至少一个像素相同的深度值平面,且第一相邻像素和第二像素不都属于与所述至少一个像素相同的深度值平面,且第二相邻像素和第三像素不都属于与所述至少一个像素相同的深度值平面,且第二相邻像素不属于与所述至少一个像素相同的深度值平面,但是第一相邻像素属于与所述至少一个像素相同的深度值平面的情况下)。优选地,集合选择器还被配置为将像素集合选择为包含与起始深度值或重新起始深度值相关联的像素(在基于平面表示确定第一、第二和第三相邻像素不都属于与所述至少一个像素相同的深度值平面,且第一相邻像素和第二像素不都属于与所述至少一个像素相同的深度值平面,且第二相邻像素和第三像素不都属于与所述至少一个像素相同的深度值平面,且第一相邻像素不属于与所述至少一个像素相同的深度值平面,且第二相邻像素不属于与所述至少一个像素相同的深度值平面的情况下)。图20是示意了针对不同分辨率的“阴影”场景的压缩性能的图,其中100%表示原始带宽。虚线与Haselgren和Akenine-M5ller[2]提出的深度缓冲器压缩方案相对应,实线表示本发明的深度缓冲器压缩。注意本发明的性能如何在除最高分辨率之外的所有分辨率上优于当前现有技术。在多种分辨率中使用了相同的场景以测试针对不同大小的三角形的性能。较低分辨率意味着三角形与像素相比较小,即“高复杂度”类型的场景。高分辨率意味着三角形与像素相比较大,表示“低复杂度”类型的场景。本领域技术人员可以理解,在不脱离由所附权利要求限定的本发明的范围的前提下,可以对本发明做出各种修改和改变。参考文献[1]Rasmusson,HasselgrenandAkenine-Moller,"ExactandError-boundedApproximateColorBufferCompressionandDecompression,,,GraphicsHardware,2007,pp.41-48[2]HaselgrenandAkenine-Moller,"EfficientDepthBufferCompression,,,GraphicsHardware,2006,pp.103-110[3]LapidousandJiao,,,OptimalDepthBufferforLow-CostGraphicsHardware,,,GraphicsHardware,1999,pp67—732权利要求一种对多个像素的块进行压缩的方法,每个像素包括相应的深度值,所述方法包括以下步骤选择所述块中的多个深度值中的起始深度值,所述起始深度值属于第一深度值平面;选择所述块中的多个深度值中的重新起始深度值,所述重新起始深度值属于第二深度值平面;针对所述多个像素中的至少一部分,产生相应的平面表示,所述平面表示指示所述多个像素中的所述至少一部分属于所述第一深度值平面和所述第二深度值平面中的哪一个平面;针对所述块中的至少一个像素,选择由所述块中的至少一个其他像素组成的像素集合,所述选择基于所述至少一个像素和所述像素集合的平面表示;基于所选择的像素集合的至少一个深度值来提供所述至少一个像素的深度值的预测;基于所述至少一个像素的所述深度值和所述预测来估计预测误差;以及确定所述预测误差的编码的表示,其中,所述块的压缩表示包括所述起始深度值的表示、所述重新起始值的表示和所述预测误差的所述编码的表示。2.根据权利要求1所述的方法,其中,选择重新起始深度值的所述步骤包括以下步骤-标识所述块中的所述多个深度值中与所述起始深度值相差最多的深度值;-针对所述多个像素中的至少一部分,确定像素的深度值与所述起始深度值之间的相应第一差值;-针对所述多个像素中的所述至少一部分,确定所述像素的所述深度值与所标识的深度值之间的相应第二差值;以及-基于所确定的第一和第二差值来选择所述重新起始深度值。3.根据权利要求1或2所述的方法,其中,所述产生步骤包括以下步骤-确定像素的深度值与所述起始深度值之间的第一差值;_确定所述像素的所述深度值与所述块中与所述起始深度值相差最多的深度值之间的第二差值;以及-在所述第一差值的绝对值小于所述第二差值的绝对值的情况下,产生所述平面表示以指示所述第一深度值平面,否则产生所述平面表示以指示所述第二深度值平面。4.根据权利要求1至3中任一项所述的方法,其中,所述确定步骤包括以下步骤-修改所述预测误差以得到正预测误差;以及-通过以下步骤对所述正预测误差进行Golomb-Rice编码,以得到所述预测误差的所述编码的表示-搜索值k,其中k为O或正整数;-如果所选择的像素集合包括多个像素,则提供数值1等于k,否则基于wXk+h来提供数值1,其中h是预定常数,W是预定权重;-将所述正预测误差除以21以形成商和余数;以及-对所述商进行一元编码,其中,所述预测误差的所述编码的表示包括所述余数的表示和所述一元编码的商,并且所述块的所述压缩表示包括k的表示。5.一种对压缩像素块进行解压缩的方法,所述方法包括以下步骤-基于所述压缩像素块中包括的起始值表示来确定起始深度值,所述起始深度值属于第一深度值平面;-基于所述压缩像素块中包括的重新起始值表示来提供重新起始深度值,所述重新起始深度值属于第二深度值平面;_针对所述块中的至少一个像素,基于与所述至少一个像素相关联并包括在所述压缩像素块中的编码的误差表示来确定预测误差;-针对所述至少一个像素,选择包括所述块中的至少一个其他像素在内的像素集合,所述选择基于与所述至少一个像素和所述像素集合相关联的平面表示,所述平面表示指示像素属于所述第一深度值平面和所述第二深度值平面中的哪一个平面;_基于所选择的像素集合中的至少一个深度值来提供所述至少一个像素的深度值的预测;以及-基于所述预测误差和所述预测来计算所述至少一个像素的所述深度值的表示。6.根据权利要求5所述的方法,还包括针对所述多个像素中的至少一部分,根据所述压缩像素块来提供相应平面表示。7.根据权利要求1至6中任一项所述的方法,其中,选择所述像素集合的所述步骤包括如果基于所述平面表示确定所述块(300)中相对于所述至少一个像素沿第一预测方向存在的第一相邻像素、所述块中相对于所述至少一个像素沿第二预测方向存在的第二相邻像素和所述块中相对于所述至少一个像素沿第三预测方向存在的第三相邻像素属于与所述至少一个像素相同的深度值平面,则将所述像素集合选择为包括所述第一相邻像素、第二相邻像素和第三相邻像素。8.根据权利要求7所述的方法,其中,提供所述预测的所述步骤包括将所述预测计算为等于所述第一相邻像素和第二相邻像素的深度值之和减去所述第三相邻像素的深度值。9.根据权利要求1至8中任一项所述的方法,其中,选择所述像素集合的所述步骤包括如果基于所述平面表示确定所述块中相对于所述至少一个像素沿第一预测方向存在的第一相邻像素和沿所述第一预测方向的第二像素属于与所述至少一个像素相同的深度值平面,则将所述像素集合选择为包括所述第一相邻像素和所述第二像素。10.根据权利要求9所述的方法,其中,提供所述预测的所述步骤包括将所述预测计算为等于所述第一相邻像素的深度值的两倍减去所述第二像素的深度值。11.根据权利要求1至10中任一项所述的方法,其中,选择所述像素集合的所述步骤包括如果基于所述平面表示确定所述块中相对于所述至少一个像素沿第二预测方向存在的第二相邻像素和沿所述第二预测方向的第三像素属于与所述至少一个像素相同的深度值平面,则将所述像素集合选择为包括所述第二相邻像素和所述第三像素。12.根据权利要求11所述的方法,其中,提供所述预测的所述步骤包括将所述预测计算为等于所述第二相邻像素的深度值的两倍减去所述第三像素的深度值。13.根据权利要求7至12中任一项所述的方法,其中,选择所述像素集合的所述步骤包括以下步骤-如果基于所述平面表示确定所述第一相邻像素、第二相邻像素和第三相邻像素不都属于与所述至少一个像素相同的深度值平面,且所述第一相邻像素和所述第二像素不都属于与所述至少一个像素相同的深度值平面,且所述第二相邻像素和所述第三像素不都属于与所述至少一个像素相同的深度值平面,但是所述第一相邻像素和所述第二相邻像素属于与所述至少一个像素相同的深度值平面,则将所述像素集合选择为包括所述第一相邻像素和所述第二相邻像素之一;以及提供与所述第一相邻像素和所述第二相邻像素中所选的像素相关联的引导比特,其中所述块的所述压缩表示包括所述弓I导比特。14.根据权利要求7至12中任一项所述的方法,其中,选择所述像素集合的所述步骤包括如果基于所述平面表示确定所述第一相邻像素、第二相邻像素和第三相邻像素不都属于与所述至少一个像素相同的深度值平面,且所述第一相邻像素和所述第二像素不都属于与所述至少一个像素相同的深度值平面,且所述第二相邻像素和所述第三像素不都属于与所述至少一个像素相同的深度值平面,但是所述第一相邻像素和所述第二相邻像素属于与所述至少一个像素相同的深度值平面,则基于分配给所述像素并包括在所述压缩像素块中的引导比特,将所述像素集合选择为包含所述第一相邻像素和所述第二相邻像素之一。15.根据权利要求13或14所述的方法,其中,选择所述像素集合的所述步骤包括如果基于所述平面表示确定所述第一相邻像素、第二相邻像素和第三相邻像素不都属于与所述至少一个像素相同的深度值平面,且所述第一相邻像素和所述第二像素不都属于与所述至少一个像素相同的深度值平面,且所述第二相邻像素和所述第三像素不都属于与所述至少一个像素相同的深度值平面,且所述第二相邻像素不属于与所述至少一个像素相同的深度值平面,但是所述第一相邻像素属于与所述至少一个像素相同的深度值平面,则将所述像素集合选择为包含所述第一相邻像素。16.根据权利要求15所述的方法,其中,选择所述像素集合的所述步骤包括如果基于所述平面表示确定所述第一相邻像素、第二相邻像素和第三相邻像素不都属于与所述至少一个像素相同的深度值平面,且所述第一相邻像素和所述第二像素不都属于与所述至少一个像素相同的深度值平面,且所述第二相邻像素和所述第三像素不都属于与所述至少一个像素相同的深度值平面,且所述第一相邻像素不属于与所述至少一个像素相同的深度值平面,且所述第二相邻像素不属于与所述至少一个像素相同的深度值平面,则将所述像素集合选择为包含与所述起始深度值或所述重新起始深度值相关联的像素。17.一种对多个像素的块进行压缩的块压缩系统,每个像素包括深度值,所述系统包括-起始选择器,用于选择所述块中的多个深度值中的起始深度值,所述起始深度值属于第一深度值平面;-重新起始选择器,用于选择所述块中的多个深度值中的重新起始深度值,所述重新起始深度值属于第二深度值平面;-平面表示产生器,用于针对所述多个像素中的至少一部分,产生相应的平面表示,所述平面表示指示所述多个像素中的所述至少一部分属于所述第一深度值平面和所述第二深度值平面中的哪一个平面;-集合选择器,用于针对所述块中的至少一个像素,选择由所述块中的至少一个其他像素组成的像素集合,所述选择基于所述至少一个像素和所述像素集合的平面表示;_预测提供器,用于基于所选择的像素集合的至少一个深度值来提供所述至少一个像素的深度值的预测;_误差估计器,用于基于所述至少一个像素的所述深度值和所述预测来估计预测误差;以及-表示确定器,用于确定所述预测误差的编码的表示,其中,所述块的压缩表示包括所述起始深度值的表示、所述重新起始值的表示和所述预测误差的所述编码的表示。18.根据权利要求17所述的系统,其中,所述重新起始选择器包括-值标识器,用于标识所述块中的所述多个深度值中与所述起始深度值相差最多的深度值;-差值计算器,用于针对所述多个像素中的至少一部分,确定像素的深度值与所述起始深度值之间的相应第一差值以及所述像素的所述深度值与所标识的深度值之间的相应第二差值;以及_值选择器,用于基于所确定的第一和第二差值来选择所述重新起始深度值。19.根据权利要求17或18所述的系统,其中,所述平面表示产生器包括-差值确定器,用于确定像素的深度值与所述起始深度值之间的第一差值,并确定所述像素的所述深度值与所述块中与所述起始深度值相差最多的深度值之间的第二差值;以及-表示产生器,用于在所述第一差值小于所述第二差值的情况下,产生所述平面表示以指示所述第一深度值平面,否则产生所述平面表示以指示所述第二深度值平面。20.根据权利要求17至19中任一项所述的系统,其中,所述表示确定器包括-误差修改器,用于修改所述预测误差以得到正预测误差;以及-Golomb-Rice编码器,进而包括-值搜索器,用于搜索值k,其中k为O或正整数;-数值提供器,用于如果所选择的像素集合包括多个像素,则提供数值1等于k,否则基于wXk+h来提供数值1,其中h是预定常数,w是预定权重;-除法器,用于将所述正预测误差除以21以形成商和余数;以及-一元编码器,用于对所述商进行一元编码,其中,所述预测误差的所述编码的表示包括所述余数的表示和所述一元编码的商,并且所述块的所述压缩表示包括k的表示。21.—种对压缩像素块进行解压缩的块解压缩系统,所述系统包括-起始提供器,用于基于所述压缩像素块中包括的起始值表示来提供起始深度值,所述起始深度值属于第一深度值平面;_重新起始提供器,用于基于所述压缩像素块中包括的重新起始值表示来提供重新起始深度值,所述重新起始深度值属于第二深度值平面;-误差确定器,用于针对所述块中的至少一个像素,基于与所述至少一个像素相关联并包括在所述压缩像素块中的编码的误差表示来确定预测误差;-集合选择器,用于针对所述至少一个像素,选择包括所述块中的至少一个其他像素在内的像素集合,所述选择基于与所述至少一个像素和所述像素集合相关联的平面表示,所述平面表示指示像素属于所述第一深度值平面和所述第二深度值平面中的哪一个平面;_预测提供器,用于基于所选择的像素集合中的至少一个深度值来提供所述至少一个像素的深度值的预测;以及_表示计算器,用于基于所述预测误差和所述预测来计算所述至少一个像素的所述深度值的表示。22.根据权利要求21所述的系统,还包括平面提供器,用于针对所述多个像素中的至少一部分,根据所述压缩像素块来提供相应平面表示。全文摘要本发明通过基于像素块(300)中的像素(310-318)的多个深度值来选择起始深度值和重新起始深度值,从而对像素块(300)进行压缩。针对像素(311-318)确定指示起始深度值平面或重新起始深度值平面中的哪一个的相应平面表示(430)。采用这些平面表示(430)来针对要编码的像素(318)选择像素集合,所述像素集合包括块(300)中的至少一个其他像素(312、314-317)。使用集合中的像素(312、314-317)的深度值来确定所述像素(318)的值的预测。采用深度值和预测来计算预测误差,并对预测误差进行编码。压缩像素块(400)包括编码的预测误差(460)、起始值表示(420)、重新起始值表示(430)和平面表示(440)。文档编号G06T15/40GK101925925SQ200880125271公开日2010年12月22日申请日期2008年5月6日优先权日2008年1月21日发明者玻尔·温纳斯滕,雅各布·斯特罗姆申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1