使用选择性色彩变换的色彩压缩的制作方法

文档序号:9200930阅读:337来源:国知局
使用选择性色彩变换的色彩压缩的制作方法
【专利说明】使用选择性色彩变换的色彩压缩
【背景技术】
[0001] 本发明涉及图形处理。
[0002] 当选择图形架构时,能量效率是权重最重的性能因子,因此减小存储器带宽是极 其重要的。与计算相比,存储器总线上的事务在能量和延迟方面可能更多地消耗几个数量 级。
[0003] 因而,一种常见的方法是试图利用一点计算来减小带宽使用,这导致与原始的量 相比更少的带宽使用。对于所有种类的色彩缓冲压缩都是这种情况。
[0004] 对于缓冲压缩,如果每一个图块(例如,像素的矩形区域)要是有用的,则该图块 必须成功地将原始数据向下压缩至某一阈值水平。例如,如果要从压缩获得任何事物,则在 未压缩形式中使用1024比特的图块可能需要向下压缩至512比特。因而,成功压缩至那些 阈值(例如,在该示例中为512比特)的图块越多,就使用越少的到存储器的带宽,即,这里 压缩率是重要的。可能存在几个不同的阈值,例如,从2048比特向下压缩至512比特的倍 数:1536比特、或1024比特、或512比特。显然,它们应该被优先以最低的阈值(即,在该 情况下为512)开始。
[0005] 典型的色彩缓冲压缩算法可以在图块中发现最小色彩分量,并且接着使用尽可能 少的比特来对每信道相对于最小色彩分量的剩余进行编码。这些方案有时被称为抵消压缩 方法。图形应用程序接口(API) (OpenGL和DriectX)要求色彩缓冲是无损的,即,不会丢失 信息。在完成抵消压缩之前,可以使用将信息解关联为亮度分量和两个色度分量的色彩变 换来变换图块中所有像素的色彩。这样的变换是无损YCoCg-变换。在典型的图形应用中, 针对色彩缓冲的事务(包括使用纹理采样器从已经渲染的渲染目标(RT)进行读取)通常 占用了大部分的带宽。因而,尝试增加该压缩方法的成功率是非常重要的。
【附图说明】
[0006] 关于下列附图来描述一些实施例:
[0007] 图1是一个实施例的示意性阐释;
[0008] 图2是针对一个实施例的流程图;
[0009] 图3是一个实施例的系统阐释;以及
[0010] 图4是一个实施例的正视图。
【具体实施方式】
[0011] 当将图块从高速缓存中逐出时,尝试使用任何压缩算法来对该图块进行压缩。区 别在于,图块的色彩被如其所是地压缩,但是上述色彩也可以利用色彩变换(例如,无损 YCoCg)来进行变换,并且在这之后,可以利用相同的压缩算法来对这些色彩进行压缩。可以 尝试几种不同的色彩变换,而且可以按照几种方式来选择要使用哪一种,这将在后面更详 细地解释。作为示例,一个人可以选择使用利用最少比特来给出压缩表示的色彩变换(包 括没有变换)。几种方法考虑到经济地选择要使用哪种变换。
[0012] 假定存在N种不同的无损色彩变换(其中,它们中的一种是身份变换,即根本没有 变换任何事务)。这些变换T i,其中0〈 = i〈N,并且Ttl是身份变换。假定用〇来表示图块 的原始色彩的集合。用TiO来表示利用某种变换来变换图块的色彩。接下来,假定我们具 有对色彩的集合(已变换或未变换)工作的压缩算法。针对压缩色彩的符号是C(O),并且 这一函数返回利用该压缩算法C对〇进行压缩所需的比特的最小数量。为了压缩色彩的经 变换的图块,进行C(T iO)。下面总结了所使用的符号,包括一些示例:
[0013] · 〇 -来自该图块的色彩的原始集合。.
[0014] · Ti -无损色彩变换-假定存在N种,并且0〈 = i〈N。
[0015] · CO -利用色彩的集合作为自变量的压缩器函数。返回对自变量的色彩进行压 缩所需的比特的数量。
[0016] ?利用h= C(T i〇)来完成利用应用的变换来对图块进行压缩,其中h是使用手头 的压缩算法来表示TiO所要求的比特的数量。
[0017] 在概念上,每一个变换,将Ti应用于色彩的原始集合,〇,其中对变换的色彩进行试 图的压缩。因此,计算以下内容:
[0018] h= C(TiO),对于所有 i,使得 0〈 = i〈N。
[0019] 因此,如果N = 2,则我们计算:bQ= C(Tq0)并且Id1= C (T1O)。
[0020] 现在,找到与minOv Id1,…,Iv1)相对应的索引i,即,找到在压缩之后导致最少 比特的变换。接着简单地使用具有最少比特的一个(并且接着检查其是否成功地满足现有 比特阈值中的任何一个)。另一选项是选择h小于某一预定义阈值,例如512比特,的第一 压缩器。要注意的是,在针对图块的压缩表示中,对针对该图块使用的变换进行编码。这利 用Iog 2(N)个比特来完成,并且被简单地预先考虑到压缩表示。
[0021] 将变换Ti应用到输入色彩〇并且还压缩所有这些经变换的色彩的集合会是昂贵 的。尽管能够按照这一方式来执行压缩,但是利用更简单且更经济的方法将是方便的。
[0022] 为了达成解决方案,以便压缩特定的信道(例如,红、绿、蓝、阿尔发、或Y、或Co、 或Cg),一个人经常找到该信道的最小值和最大值。将针对特定信道的这些C min和C max 称为C。一些方法仅对信道的关于Cmin的残差进行编码,并且要进行其的比特数量是 ceil (Iog2 (Cmax-Cmin))。所有信道的ceil (Iog2 (Cmax-Cmin))的总和与最终压缩表示的比特数 量成比例。通常,可以将这一度量称为压缩尺寸度量(CSM)。当使用其它色彩压缩方法时, 需要修改这一部分的技术。例如,当针对最小值或最大值计算残差时,CSM方法显然需要有 一点不同。
[0023] 由于这一 CSM涉及计算所有信道(针对所有色彩变换)的最小值和最大值,所以 这仍然被认为是昂贵的操作,尽管与对图块执行完整压缩并且计算所产生的比特数量相比 当然要更经济。然而,其保证给出最佳的压缩成功率,因此在一些情况下这一方案可以是优 选的。
[0024] 为了使其更加经济,接下来描述几种方法。
[0025] 首先,示出了 RGB到YCoCg变换,其是无损可逆的(如果利用比原始数据多一个比 特来存储Cg和Co):
[0026]
[0027] 简单地从图块取出M个代表色彩(例如,该图块的四个角,这将意味着M = 4),并 且执行色彩变换,且接着仅对这M个色彩执行CSM方法。使用上文的CSM技术,其中仅针对 Cmin计算残差,接着找到仅这M个色彩的最小值和最大值,并且通过针对这M个色彩对所有 信道的ceil (Iog2(Cmax-Cmin))求和来估计比特的成本。例如,由于图块可以包含16或32种 颜色,因此这当然更便宜。接着使用给出比特成本的最低估计的色彩变换来变换剩余的色 彩,并且接着该算法像往常一样继续。
[0028] 然而,这是预测,并且因此它可能不会提供像(使用所有色彩变换,并压缩所有经 变换的色彩的)强力法那样好的压缩成功率。
[0029] 这也容易地扩展到使用色彩变换的集合。
[0030] 这些技术减少了大多数色彩压缩方案的大量带宽,并且这直接变换成功率节省 (或性能提高)。由于存储器带宽使用占图形处理器的总体能量消耗的较大百分比,因此这 显然是非常重要的。
[0031] 在图1中,图形处理器1
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1