图形数据的基于子集的压缩和解压缩的制作方法_2

文档序号:9476287阅读:来源:国知局
低W节能并增加性能。
[0018] 在所描述的示例中,存储编索引的子集310(包含值320的子集和索引值330)和 像素索引值430所需的最大位数可给出如下:W*H*k+C冲(其中W可W是瓦片410的宽度,H 可W是瓦片410的高度,C可W是值320的子集中的值的数量,并且P可W是瓦片中各个颜 色的数量,其中;潘婷^ ,并且可W是索引值330和/或像素索引值430的位数)。 如果位数小于或等于期望的位预算(即,如果W地冲+C冲<=B),则图形数据(例如编索引的 子集310和像素索引值430)可W压缩形式存储。一般而言,如果位数小于或等于期望的位 预算,则位数可被描述为"小于"期望的位预算,或者位预算可W被描述为满足。如果位数 大于期望的位预算,则图形数据可W未压缩形式存储,使得值230 (请参考图2)可直接使用 标准技术存储在存储器中。在位数小于(或等于)期望的位预算的示例中,压缩可能已经 被视为成功,而在位数大于期望的位预算的示例中,压缩可能已经被视为失败。
[0019] 在一些示例中,压缩的图形数据(即,编索引的子集310和像素索引值430)或其 部分可在存储之前进一步压缩。在一些示例中,压缩可响应于不满足位预算的压缩图形数 据。在一些示例中,在存储图形数据之前,可压缩值320的子集。在其它示例中,在存储图 形数据之前,可压缩像素索引值430。在一些示例中,压缩像素索引值430可W是delta编 码等。
[0020] 现在转到图5,图5是按照本公开的至少一些实现布置的示例压缩图形数据500的 示意图。如图5中所示,图形数据500可包含报头部分502和/或数据部分504。还如所 示,报头部分502可包含一个或多个指示符508。例如,指示符508可包含标志等,指示是否 根据本文描述的技术压缩数据部分504。报头部分502可包含其它指示符,诸如指示是否 压缩值320的子集的指示符、指示是否压缩索引值330的指示符、指示是否压缩像素索引值 430的指示符等。如所示,数据部分504可包含值320的子集、索引值330和/或像素索引 值430。数据部分504或报头部分502还可包含值k(即,索引值中的位数,如上面所讨论 的)。如在本文中进一步描述的,图形数据500可存储在存储器中,或者从存储器中检索,并 且解压缩。在一些实现中,报头部分502和数据部分504可被存储在单独的物理存储区域 中,并且通过不同高速缓存机制支持。
[0021] 如将在下面更详细讨论的,可使用诸如计算机实现的系统的系统来执行本文结合 图1-5讨论的一些或所有各种操作。
[0022] 图6是图示按照本公开的至少一些实现布置的示例过程600的流程图。一般而言, 过程600可提供用于提供图形再现中的压缩的计算机实现的方法。在所图示的实现中,过 程600可包含由块602、604、606、608和/或610中的一个或多个块所图示的一个或多个操 作、功能或动作。作为非限制性示例,过程600在本文将参考上面相对于图1-5讨论的操作 和下面讨论的示例系统100描述。
[0023] 过程600可被用作用于提供图形再现中的压缩的计算机实现的方法。过程600可 开始于块602 "确定与像素瓦片的各个像素关联的值",在此可确定与像素瓦片的各个像素 关联的多个值。例如,可确定瓦片110的值V1-V32或瓦片210的值230。一般而言,值可通 过任何适合的技术(诸如例如各种再现技术)确定。在一些示例中,再现可包含应用超采 样抗混叠技术、多采样抗混叠技术或低频像素着色技术中的至少一项。在其它示例中,确定 多个值可包含访问与像素瓦片关联的图形数据(例如经由高速缓存或缓冲器等)。例如,第 一图形数据可包含多个值。此类访问图形数据例如可发生在高速缓存驱逐时。
[0024] 处理可从操作602继续到操作604 "生成包含值的不同值的值的子集",在此可确 定多个值的子集,包含来自多个值的一个或多个不同的值。例如,如本文所讨论的,可基于 值230确定值320的子集。
[0025] 处理可从操作604继续到操作606 "将索引值与子集的每个值关联",在此索引值 可与多个值的子集的每个值关联。例如,索引值330可与值320的子集关联W生成编索引 的子集310。
[0026] 处理可从操作606继续到操作608 "对于每个各个像素确定关联的像素索引值W 生成像素索引值",在此对于各个像素中的每个值,可确定关联的像素索引值,W生成与像 素瓦片的各个像素关联的多个像素索引值。例如,可对于各个像素420的每个像素生成像 素索引值430。
[0027] 处理可从操作608继续到操作610"存储包含值的子集、关联的索引值和像素索引 值的图形数据",在此可存储包括多个值的子集、关联的索引值和多个像素索引值的图形数 据。例如,图形数据可存储在存储器中。例如,可存储值320的子集、索引值330和像素索引 值430。在一些示例中,图形数据可包含图形数据500。如所讨论的,在一些示例中,图形数 据可W压缩格式存储,仅当它满足位预算的情况下。在此类示例中,用于与多个值的子集、 关联的索引值和多个像素索引值关联的图形数据的位数可与位预算相比较。如果用于与多 个值的子集、关联的索引值和多个像素索引值关联的图形数据的位数小于位预算,则可在 存储器中存储与多个颜色值的子集、关联的索引值和多个像素索引值关联的图形数据。如 果用于与多个值的子集、关联的索引值和多个像素索引值关联的图形数据的位数大于位预 算,则在存储器中存储包含与像素瓦片的各个像素关联的多个值的其它图形数据。
[0028] 如图6中所示,在一些示例中,块604、604和608可连续执行。然而,如本文所讨 论的,一般而言,图6的块可按任何次序执行,并且一些块可被完全跳过。在一些示例中,块 604、606和608的分组630可并行或基本上并行执行。
[0029] 例如,图7是图示按照本公开的至少一些实现布置的示例过程700的流程图。在 各种示例中,过程700可执行分组630的操作。一般而言,过程700可提供用于提供图形再 现中的压缩的计算机实现的方法。在所图示的实现中,过程700可包含由块702、704、706、 708、710、712、714、716和/或718中的一个或多个块所图示的一个或多个操作、功能或动 作。作为非限制性示例,过程700在本文将参考上面相对于图1-6讨论的操作和下面讨论 的示例系统100描述。
[0030] 过程700可被用作用于提供图形再现中的压缩的计算机实现的方法。过程700可 开始于块702 "将子集中的值的数量设置成0",在此值的子集中的值的数量可被设置成0。 例如,值320的子集中的值的数量(W及索引值330的数量)可被设置成0。例如,值的子 集可被清空。
[0031] 处理可从操作702继续到操作704"对于像素Pi,关联值Vi在子集中?",在此可对 于当前像素确定与当前像素值关联的值是否在子集中。例如,在操作704的第一实例,计数 器值i可被设置成1。对于像素1,可W确定与像素1关联的值是否在子集中。如将认识到 的,在一些示例中,在操作704的第一实例中,由于子集可能已经被清空,因此基本上可跳 过该操作。在操作704的随后迭代,与当前像素关联的值可与子集中的每个值相比较,W确 定关联的值是否在子集中。例如,对于像素220-2, 1 (请参考图2),"蓝"的值230-2, 1可能 已经被存储在编索引的子集310中(为了运个示例的目的,假定像素从左到右和从上到下 排序)。例如,可能已经存储了与像素220-1,1关联的"蓝"的值。
[0032] 在此类示例中,过程700可在操作706继续"将现有索引值与像素P关联",在此与 该值关联的索引值可与当前像素关联。例如,对于像素420-2, 1(请参考图4),"0"的索引 值430-2, 1可与像素420-2, 1关联。
[0033] 在操作704的随后迭代的其它示例中,与当前像素关联的值可不在子集中。例如, 对于像素220-1,7 (请参考图2),"白"的值可能尚未存储在编索引的子集中(为了运个示 例的目的,假定像素从左到右和从上到下排序)。
[0034] 在此类示例中,过程700可在操作708继续"将值Vi添加到子集",在此该值可被 添加到子集。继续上面的示例,"白"值(例如用于像素220-1,7的)可被存储在值320的 子集中。
[0035] 过程700可从操作708继续到操作710 "将索引值与值V关联",在此索引值可与 添加的值关联。继续上面的示例,索引值330中的索引值"2"可与值320的子集的值"白" 关联。
[0036] 过程700可从操作710继续到操作712 "将添加的索引值与像素P关联",在此与 添加的值关联的索引值可与当前像素关联。继续上面的示例,对于像素420-1,7(请参考图 4),"2"的像素索引值可与像素420-1,7关联。
[0037] 过程700可从操作712或操作706 (如上面所讨论的)继续到操作714,"i=i+r', 在此计算器变量i可增加1。例如,对于过程700,将i增加1可从一个像素移动到下一个。[003引过程700可从操作714继续到操作716"i>像素的数量?",在此可W确定i是否 大于像素的数量。也就是说,如果i大于像素的数量,则先前迭代可能已经用于最后像素, 并且过程700可结束在操作718 "结束"。如果i不大于像素的数量,则过程700可在操作 704对于另一迭代继续,如上所述。
[0039] 一般而言,过程600和/或700可提供本文所讨论的图形再现中的压缩。过程600 和/或过程700可根据需要串行或并行重复任何次数。另外,一般而言,过程600和/或过 程700可经由硬件、软件、固件或它们的组合实现,如在本文中进一步讨论的。
[0040] 图8是图示按照本公开的至少一些实现布置的示例过程800的流程图。一般而言, 过程800可提供用于提供图形再现中解压缩的计算机实现的方法。在所图示的实现中,过 程800可包含由块802、804、806、808和/或810中的一个或多个块所图示的一个或多个操 作、功能或动作。作为非限制性示例,过程800在本文将参考上面相对于图1-5讨论的操作 和下面讨论的示例系统100描述。
[0041] 过程800可被用作用于提供图形再现中解压缩的计算机实现的方法。过程800可 开始于块802 "访问图形数据",在此可访问图形数据。例如,图形数据可包含多个值的子 集、关联的索引值和多个像素索引值。例如,图形数据可经由存储器访问,并且可包含值320 的子集、索引值330和像素索引值430,如本文所讨论的。在一些示例中,图形数据可包含图 形数据500。
[0042] 处理可从操作802继续到操作804"确定值的子集",在此可确定多个值的子集。 例如,可确定值320的子集。一般而言,可使用任何适合的技术或多个技术确定多个值的子 集。在一些示例中,可从存储器诸如高速缓冲存储器或图形缓冲器等中读取值的子集。如 所讨论的,在各种示例中,多个值的子集可W压缩形式或W未压缩形式存储在存储器中,作 为图形数据诸如图形数据500的一部分。在一些示例中,确定多个值的子集可包含从存储 器中读取图形数据的一部分。在其它示例中,确定多个值的子集可包含读取并解压缩图形 数据的一部分。
[0043] 处理可从操作804继续到操作806 "确定与值的子集关联的索引值",在此可确定 与多个值的子集的每个值关联的索引值。例如,可确定索引值330。一般而言,可使用任何 适合的技术或多个技术确定索引值。在一些示例中,可从存储器中读取索引值,作为图形数 据诸如图形数据500的一部分。
[0044] 处理可从操作806继续到操作808 "基于图形数据确定像素索引值",在此可确定 多个像素索引值。例如,可确定像素索引值430。一般而言,可使用任何适合的技术或多个 技术确定像素索引值。在一些示例中,可从存储器诸如高速缓冲存储器或图形缓冲器等中 读取像素索引值。如所讨论的,在各种示例中,像素索引值可W压缩形式或W未压缩形式存 储在存储器中,作为图形数据诸如图形数据500的一部分。在一些示例中,确定像素索引值 可包含从存储器中读取图形数据的一部
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1