CN104952087A - Mipmap压缩 - Google Patents
Mipmap压缩 Download PDFInfo
- Publication number
- CN104952087A CN104952087A CN201510096155.4A CN201510096155A CN104952087A CN 104952087 A CN104952087 A CN 104952087A CN 201510096155 A CN201510096155 A CN 201510096155A CN 104952087 A CN104952087 A CN 104952087A
- Authority
- CN
- China
- Prior art keywords
- lod
- mipmap
- increment
- texel
- compression
- 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.)
- Pending
Links
- 230000006835 compression Effects 0.000 title claims description 47
- 238000007906 compression Methods 0.000 title claims description 47
- 238000000034 method Methods 0.000 claims abstract description 86
- 239000000284 extract Substances 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 10
- 230000003068 static effect Effects 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 23
- 238000005070 sampling Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 238000003860 storage Methods 0.000 description 17
- 238000001914 filtration Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000001052 transient effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 206010038743 Restlessness Diseases 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 210000003414 extremity Anatomy 0.000 description 1
- 210000003811 finger Anatomy 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开涉及MIPMAP压缩。此处描述了系统和方法。该方法包括提取第一细节级别(LOD)的一部分和增量。使用第一LOD的该部分,预测第二LOD的一部分。使用第二LOD的预测的部分和增量,重构第二LOD。
Description
背景技术
在计算机图形中,可以通过首先呈现对象的几何形状,然后向对象几何形状应用纹理图,来呈现对象。在某些情况下,对象包括形成网格的多边形。可以向多边形网格应用纹理图。纹理图的纹素可能没有与计算机屏幕的像素的一一对应的关系。相应地,可以采样纹素,以便确定计算机屏幕的像素的颜色。
附图说明
图1是可以执行mipmap压缩的计算设备的框图;
图2是示出了细节级别(LOD)预测的图示;
图3示出了增量和LOD在设备上的有效率的存储的方案;
图4A是用于预处理LOD对的方法的流程图;
图4B是示出了存储用于mipmap压缩的代码的有形的、非瞬时的计算机可读介质的框图。
图5是用于从存储器提取LOD数据的方法的流程图;
图6A示出了BC-1格式的经压缩的LOD 4x4块;
图6B示出了BC-2格式的经压缩的LOD 4x4块;
图7是执行mipmap压缩的示例性系统700的框图;以及
图8是其中可实现图7的系统的小形状系数设备的示意图。
在整个公开和附图中使用相同的标号指示相似的组件和特征。100系列的标号涉及在图1中最初可见的特征,200系列的标号涉及在图2中最初可见的特征,以此类推。
具体实施方式
为计算计算机屏幕的像素的颜色值,采样纹理图的区域。在某些情况下,纹理图的最小的单元被称为纹素(texel)。被采样的纹理图的区域取决于像素形状,且可以被称为像素占用空间(pixel footprint)。对于每一个像素,为计算像素颜色采样的区域可以在纹素的形状和数量方面变化。在某些情况下,由每一屏幕像素采样的纹素的数量取决于每一纹理映射的多边形与屏幕像素的距离,以及每一纹理映射的多边形相对于屏幕像素的角度。可以过滤用于确定每一屏幕像素的颜色的纹素,以便改善所产生的图像的质量。甚至在采样的纹理被过滤的情况下,所产生的图像可包括不希望的失真和伪像,也称为混叠(aliasing)。
诸如双线性过滤和三线性过滤之类的过滤技术是各向同性的,因为,两种技术以一致方式采样纹理映射的多边形,其中,区域的形状在所有方向相同。具体而言,双线性过滤通过将最近的四个纹素内插到由像素所采样的纹理映射的多边形的区域的像素中心,来确定像素的颜色。三线性过滤在parvomap(mipmap)级别对两个最近的Multum使用双线性过滤,然后,内插那些结果,以确定像素颜色。mipmap可以被用来减少混叠并提高呈现速度。在某些情况下,mipmap是被优化以在被呈现的图像中的不同的深度使用的图像的预先计算出的集合。细节级别(LOD)表示mipmap内的预过滤的图像,每一LOD在图像的不同的深度。
当使用三线性过滤时,每当将纹理应用到呈现的几何形状中时,都从存储器中提取合适的LOD,对其过滤,然后,将其应用到呈现的几何形状上。提取纹理可能会对系统输入输出(I/O)施加重大负担,因为应用程序常常使用大量的纹理和mipmap。尽管纹理常常是有损地压缩的(可以减轻I/O瓶颈),但是,常常使用未经压缩的纹理来避免常常在使用经压缩的纹理时观察到的可视退化。使用未经压缩的纹理可能会加重存储器I/O瓶颈,并最终损害呈现性能。
此处所描述的各实施例允许mipmap压缩。可以从存储器中提取第一LOD和增量(delta)。然后,使用第一LOD和增量,计算第二LOD。在某些情况下,第一LOD的一部分和增量存储在相同高速缓存行(cacheline)中,并同时从存储器中提取。使用第一LOD的该部分,计算或预测关联到第一LOD的该部分的第二LOD的一部分。然后,使用第二LOD的计算出的预测和增量,生成第二LOD。
如此,当mipmap LOD的关联存在时,可以使用mipmap LOD的关联来实现高度的纹理mipmap压缩。从系统存储器中提取一个LOD,然后,允许硬件再现同一mipmap的另一个LOD,允许以有损的方式执行LOD再现。在随后的过程(pass)中,纹理采样器硬件可以从存储器提取再现的LOD和原始LOD之间的增量,以便最终实现原始LOD的无损再现。结果,从存储器提取大LOD基本上被替换为LOD的有损的动态(on-the-fly)再现,然后,从存储器提取该LOD的增量,使用其有损的再现来实现无损LOD再现。假定同一mipmap的LOD的颜色通常相关联,LOD颜色增量常常可以充分小,以比原始LOD存储在更少的比特中。因此,本技术可以常常实现I/O带宽的明显减少,而同时也改善图形处理单元(GPU)和系统存储器功耗和性能。
在以下描述和权利要求书中,可使用术语“耦合”和“连接”及其派生词。应当理解,这些术语并不旨在作为彼此的同义词。相反,在特定实施例中,可以使用“连接”来表示两个或更多元件彼此处于直接的物理和/或电接触的状态。“耦合的”可表示两个或更多个元件直接物理或电接触。然而,“耦合的”也可表示两个或更多个元件并未彼此直接接触,但是仍然彼此协作、彼此相互作用。
一些实施例可在硬件、固件和软件中的一者或组合中实现。一些实施例还可被实现为存储在机器可读介质上的指令,其可由计算平台读取和执行,以执行本文所述的操作。机器可读介质可以包括用于存储或传输机器(例如:计算机)可读形式的信息的任何机制。例如,机器可读介质可包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;或电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号、或发送和/或接收信号的接口等)等等。
实施例是实现方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、“各种实施例”或“其它实施例”的引用表示结合这些实施例而描述的特定特征、结构、或特性被包括在本发明的至少一些实施例中,而不一定在所有的实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定全部都是指相同实施例。一个实施例的元件或方面可与另一个实施例的元件或方面组合。
并非本文中描述和示出的所有组件、特征、结构、特性等等都需要被包括在特定实施例或多个实施例中。例如,如果说明书陈述“可”、“可能”或“能够”包括组件、特征、结构或特性,则不一定包括该特定组件、特征、结构或特性。如果说明书或权利要求书提到“一”或“一个”元件,则这并不意味着仅有一个该元件。如果说明书或权利要求书引用“附加的”元件,则不排除有一个以上该附加的元件。
要注意的是,虽然参考特定实现方式描述了一些实施例,但根据一些实施例,其他实现方式也是可能的。另外,附图中所示的和/或本文描述的电路元件或其它特征的配置和/或顺序不必以所示和所描述的特定方式安排。根据某些实施例,其他许多配置也是可能的。
在图形所示出的每一系统中,在某些情况下,每一元件都可以具有相同参考编号,或不同的参考编号,以暗示表示的元件可能是不同的和/或类似的。但是,元件可以足够灵活,具有不同的实现方式,并与本文所示或所述的一些或所有系统一起操作。附图中所示的各元件可以相同或不同。将哪个称为第一元件以及将哪个称为第二元件是任意的。
图1是可以执行mipmap压缩的计算设备100的框图。该计算设备100可以是,例如,膝上型计算机、台式计算机、超极本、平板计算机、移动设备、服务器或蜂窝电话等等。计算设备100可包括中央处理单元(CPU)102,其被配置为执行所存储的指令,还有存储器设备104,其存储可由CPU102执行的指令。CPU可以通过总线106耦合到存储器设备104。另外,CPU 102还可以是单核处理器、多核处理器、计算簇、或者任意数量的其他配置。CPU可包括高速缓存。进一步,计算设备100可包括多于一个的CPU 102。
计算设备100还可包括图形处理单元(GPU)108。如图所示,CPU 102可通过总线106耦合至GPU 108。在各实施例中,GPU 108嵌入在CPU 102中。GPU可包括高速缓存,并可被配置为执行计算设备100内的任意数量的图形操作。例如,GPU 108可被配置为呈现或操作图形化图像、图形帧、视频等,使其向计算设备100的用户显示。GPU 108包括多个引擎110。在各实施例中,可以使用引擎110来执行mipmap压缩。在某些情况下,引擎包括采样器单元,该单元可以被称为采样器。采样器是GPU的一部分,其从应用于对象几何形状的mipmap采样纹理。采样器可以是硬件单元或软件的块。
存储器设备104可包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他合适的存储系统。例如,存储器设备104可包括动态随机存取存储器(DRAM)。存储器设备104也可以包括驱动程序112。在各实施例中,存储在存储器中的mipmap用于压缩,利用通常在同一mipmap的不同的LOD之间存在的颜色关联。虽然参考未经压缩的纹理讨论了本技术,但是,也可以将本技术应用于经压缩的纹理。具体而言,许多经压缩的纹理格式,诸如BC-1或BC-2,包含涉及基色的信息或一般将跨LOD具有与未经压缩的纹理颜色相同的相关度的alpha。如此,可以将本技术应用于跨LOD表现出颜色关联的任何数据格式。
使用相同mipmap的不同的LOD之间的关联,将预测和重构应用于相同mipmap的LOD,以更有效地压缩mipmap,降低I/O带宽,并改善GPU功率/性能。许多图形应用程序倾向于使用大量的纹理和mipmap,这常常对平台的I/O能力施加压力并可能带来性能瓶颈。为减轻这种情况,常常使用经压缩的纹理,但是,更好的压缩常常意味着有损压缩。最初,此处所描述的预测和重构实现LOD的有损的重构。有损的纹理压缩可能会带来可视伪像,结果,用户常常选择使用未经压缩的纹理,这使得创建I/O相关的性能瓶颈更可能。此外,对于不同的压缩格式(诸如块压缩(BC)和自适应可缩放的纹理压缩(ASTC))的支持是跨平台不一致的(fragmented),用户常常选择使用未经压缩的纹理来确保他们的应用程序跨所有平台使用。通过添加LOD增量或残余,可以实现原始mipmap的无损重构。在某些情况下,当将本技术应用于未经压缩的静态纹理时,可以实现50%-75%的压缩。压缩的mipmap的使用可以实现进一步的纹理压缩。
CPU 102还可通过总线106链接至显示接口114,该接口114被配置为将计算设备100连接至显示设备116。显示设备116可包括显示屏,其为计算设备100的内建组件。显示设备116还可包括从外部连接至计算设备100的计算机监视器、电视机或投影仪等等。
CPU 102还可通过总线106连接至I/O设备接口118,该接口118被配置为将计算设备100连接至一个或多个I/O设备120。I/O设备120可包括,例如,键盘和指向设备,其中指向设备可包括触摸板或触摸屏,等等。I/O设备120可以是计算设备100的内建组件,或可以是从外部连接至计算设备100的设备。
计算设备还包括存储设备122。存储设备122是诸如硬盘驱动器、光盘驱动器、拇指驱动器、驱动器阵列、或其中任意组合之类的物理存储器。存储设备122还可包括远程存储驱动器。计算设备100还可以包括网络接口控制器(NIC)124,其被配置成通过总线106将计算设备100连接到网络126。网络126可以是广域网(WAN)、局域网(LAN)或因特网,等等。
图1的框图并不意在表示,计算设备100包括图1中所示的全部组件。进一步,取决于特定实现的细节,计算设备100可包括图1中未示出的任意数量的附加组件。
如上文所讨论的,mipmap常常用于三线性纹理过滤,以减少混叠。mipmap包括任意数量的LOD,而每一LOD都可以是位图图像。每一mipmap可以从1到N编号,N是mipmap的总数。通常,LOD0是最大的LOD,接下来是LOD1,LOD2,等等。当将纹理应用于呈现的几何形状时,选择合适的LOD对,诸如LOD0和LOD1,取决于呈现的几何形状的深度。其中将应用纹理的几何形状的深度在mipmap对的纹素的深度之间。例如,可以基于当前正在被着色的像素的位置,在LOD0中选择纹素的一部分,并可以对这些纹素执行线性过滤。对于LOD1的纹素的一部分,重复相同过程。对通过过滤LOD0的一部分和LOD1的一部分产生的颜色执行线性内插。在某些情况下,这些部分可以是2x2纹素子跨度。虽然是使用LOD0/LOD1对来描述本技术的,但是,可以将相同技术应用于mipmap中的所有其他LOD对,诸如LOD1/LOD2,LOD2/LOD3,等等。
图2是示出了LOD预测的图示200。正方形表示基准LOD1202。LOD1202包括4x4纹素部分(portion of texels)204。4x4纹素部分204位于LOD1202的左上角。另一个较大的正方形表示基准LOD0206。基准LOD0206包括8x8纹素部分208。8x8纹素部分208位于LOD0206的左上角。如此处所使用的,LOD的基准版本是LOD的完全,典型的版本,经压缩的或未经压缩的。
当将LOD1202的4x4纹素部分204与LOD0206的8x8纹素部分208进行比较时,8x8纹素部分208的颜色可以相互关联到4x4纹素部分204。相应地,纹素1204A可以关联到纹素0208A。在某些情况下,纹素0208A可以进一步被分成诸个段,其关联到纹素1204A的诸段。
当纹理采样器将向LOD0/LOD1对执行任何过滤技术时,采样器提取4x4纹素部分204。采样器使用提取的LOD1202的4x4纹素部分204来作出LOD0206的子8x8纹素部分208的有损的预测。相应地,另一个正方形表示预测的LOD0210,带有预测的子8x8纹素部分212。预测的子8x8纹素部分212包括预测的纹素212A。
采样器还从存储器提取预先计算出的LOD0206的8x8纹素部分208的增量或残余,并将它们与预测的8x8纹素部分212一起使用,以无损地生成需要执行传统的纹理采样的原始LOD08x8208。相应地,正方形表示增量LOD0d 214,带有增量8x8纹素部分216。增量8x8纹素部分216包括增量纹素216A。一旦从存储器提取了LOD1202的纹素部分204和增量纹素216A,就可以无损地生成8x8纹素部分208,并可以通常进行纹理过滤。因此,采样器从存储器提取LOD0增量,然后,本地计算LOD0颜色信息的其余部分。
当图形应用程序启动时,此处所描述的静态纹理mipmap可以从存储器加载或由驱动程序计算。使用图2作为示例,假设应用程序将呈现纹理,该纹理带有由LOD0206和LOD1202所表示的深度之间的深度。为简明起见,仅示出了LOD0206和LOD1202,然而,mipmap可包括任意数量的LOD。在某些情况下,在应用程序的运行时,可以从存储器加载LOD或由驱动程序计算。然后,驱动程序可以预处理mipmap,以便生成由LOD0p 210所表示的LOD0的预测。使用LOD1202的4x4纹素部分204作为种子,计算LOD0p 210。LOD0p 210的预测的子8x8纹素部分212可以一般大致从LOD1202的4x4纹素部分204预测出,因为它们的颜色通常是相关联的。具体而言,基准纹素208A包括LOD0206的段纹素0(0,0),纹素0(0,1),纹素0(1,0)和纹素0(1,1),它们可能与LOD1202的纹素204A(其包括纹素1(0,0))保存类似的色值。可以使用各种预测算法。算法“越聪明”,预测可以越准确。不管预测算法是什么,此预测很可能是有损的。换言之,此预测将不会能够以100%精度预测预期的LOD0纹素212。
例如,简单预测方案将假设预测的LOD0纹素212A中的每一个(包括段纹素0p(0,0),纹素0p(0,1),纹素0p(1,0)和纹素0p(1,1))与包括段纹素1(0,0)的纹素204A相同。相应地,
纹素0p(0,0)=纹素1(0,0)
纹素0p(0,1)=纹素1(0,0)
纹素0p(1,0)=纹素1(0,0)
纹素0p(1,1)=纹素1(0,0)
像这样简单的预测方案,当与LOD0和LOD1之间的实际颜色关联相比时,具有相对地接近该实际颜色关联的概率(chance),因为预测的LOD0纹素212一般与LOD1的对应的纹素204相关联。然而,也可以使用更精细的预测方案。
一旦驱动程序在图形应用程序的运行时或启动时生成了预测的LOD0p210,它可以从原始基准LOD0206减去LOD0p 210中的色值。然后,驱动程序可以生成LOD0d 214所示的LOD增量值。换言之:
纹素0d(0,0)=纹素0p(0,0)-纹素0(0,0)
纹素0d(0,1)=纹素0p(0,1)-纹素0(0,1)
纹素0d(1,0)=纹素0p(1,0)-纹素0(1,0)
纹素0d(1,1)=纹素0p(1,1)-纹素0(1,1)
由于LOD颜色常常相关联,因此,上文计算出的增量纹素值非常可能将是小值,相对于用于存储原始LOD0的比特,可以适应于更少的比特。例如,R8G8B8A8_UNORM是常见的纹理格式,其中,红色,绿色,蓝色,以及α值中的每一个都存储在一个字节(8比特)中。如此,使用R8G8B8A8_UNORM纹理格式,当存储在存储器中时,图1中的LOD0206的每一纹素208将是4字节大。类似地,LOD0p 210的每一纹素212也将是4字节大。然而,驱动程序将不会将这些LOD0206或LOD0p 210存储在存储器中,相反,LOD0206和LOD0p 210用于当生成LOD增量之时的中间步骤中。所产生的LOD0d 214将使用,例如,每个红色,绿色,蓝色,和阿尔法通道0-4个比特,它保存“增量”色值,不是绝对色值。相应地,当LOD0d 214存储在存储器时,它将一般更密集地存储,并可以相对于原始LOD0206,横跨少得多的字节或高速缓存行。
当驱动程序预处理图2中的LOD0206之时,它可为LOD0206尝试一系列LOD预测方案,并最后挑选将能够提供从LOD0206到LOD0d 214的最高级别的压缩的一个预测方案。在某些情况下,在尝试所有其可支配的各种LOD预测方案之后,驱动程序可能不能利用任何预测方案来对于LOD0206实现可接受的压缩,在这样的情况下,整体LOD预测/压缩方案将对于此特定mipmap中止。驱动程序将旨在预测/压缩尽可能多的mipmap,尽管它可能不能压缩应用程序打算使用的mipmap的整个范围。
尽管驱动程序可能在应用程序启动时要花一定量的时间进行上文所描述的mipmap预处理,但是,这可能仅限于可能可被用户接受的最大允许的时间窗口。换言之,驱动程序不需要预测/压缩应用程序可能使用的每一个mipmap。相反,它可以只压缩足够小数量的mipmap,以便预处理这些mipmap所需的启动延迟不会在启动时施加将被用户察觉到的过分长的延迟。即使预处理和压缩mipmap的子集,在运行时仍将提供相对于根本不压缩mipmap的基准情况的功耗和性能获益。
当驱动程序在应用程序启动时已完成预处理所有mipmap(或所有mipmap的子集)时,它将知道可以压缩这些mipmap中的哪一个以及使用可用的LOD预测方法中的哪一个。此信息被保存在合适的数据结构中,并传递到GPU。为确保最大I/O效率,LOD对(例如,LOD0/LOD1,LOD1/LOD2等等)存储在相同高速缓存行中并被一起提取。如此,采样器可以避免必须访问单独的高速缓存行以提取LOD1纹素,以及访问单独的高速缓存行以提取LOD0d信息。
图3示出了在设备300上有效地存储增量和LOD的示例方案。设备300可以储存(storage)或存储器(memory)设备。LOD1302和LOD0304表示通常在传统的从存储器中提取LOD过程中从存储器中提取的LOD0/LOD1对。高速缓存(cache)包括被称为高速缓存行(cacheline)的一个或多个固定大小的块(block)。在很多情况下,每一LOD0或LOD14x4纹素部分存储在64字节的高速缓存行中。相应地,父LOD14x4和四个子LOD04x4将横跨值得存储的五个高速缓存行。
通过使用此处所描述的技术,LOD08x8纹素部分310将存储在存储器中,作为一组预先计算出的增量,通过LOD0d 8x8表示。颜色增量,在很多情况下,将是较小的值。如此,LOD0d 8x8部分要求存储器的少于四个高速缓存行。此外,可以使用常规颜色压缩技术中的一个,诸如将LOD转换为每一个纹素的基色和系数,以独立方式压缩LOD14x4纹素部分308。以此方式,提取的LOD14x4可以占用小于一个高速缓存行。在此情况下,LOD14x4308以及其“子”LOD0d 8x8可以一起存储在小于五个高速缓存行中,取决于为特定纹素可能实现的压缩度。此外,对(pair)可以作为一个单元或块一起存储在存储器中。当采样器提取LOD0/LOD1对时,它将从存储器中提取包含经压缩的LOD14x4和LOD0d 8x8的对的更少的高速缓存行。在某些情况下,提取少于五个高速缓存行,而当压缩不可能时,提取五个未经压缩的,基准高速缓存行。在大多数情况下,这会导致系统存储器I/O带宽的缩小。
在各实施例中,使用控制面(control surface)来确定要为每一个LOD/增量对而提取的高速缓存行的数量。例如,采样器可以访问控制面,以判断它需要为未经压缩的LOD对而提取的五个高速缓存行是否将会变为要求提取压缩的LOD0d/LOD1高速缓存行的更少的高速缓存行。控制面可包括,每个对(LOD14x4纹素部分和LOD08x8纹素部分的对)两个或三个比特,以指出要从存储器中提取的经压缩的高速缓存行的数量。在各示例中,控制面本身是足够小的数据结构以适合于处理器高速缓存或集成电路(IC)封装高速缓存。相应地,控制面可以是大小为几个千字节。如此,访问控制面比特的时间或功率成本一般较低。
本技术可以减少mipmap的存储器占用空间。每一LOD一般被存储(以压缩格式)两次。例如,LOD1将作为LOD0d/LOD1对的一部分存储,也作为LOD1d/LOD2对的一部分。一般而言使用本技术实现的压缩将至少是50%,鉴于此,至少以50%的压缩率在存储器中存储每一LOD两次意味着,mipmap所需的总体存储器占用空间将在最坏的情况下保持与传统的技术相同。更经常地,本技术实现75%的压缩率,这意味着存储器占用空间将最有可能在大小方面收缩。
图4A是用于预处理LOD对的方法400的流程图。在某些情况下,当启动应用程序时,驱动程序被用来预处理纹理mipmap的LOD对。驱动程序也可以预处理LOD对的子集。相应地,在框402,在应用程序启动时,执行方法400,然后,处理应用程序在执行过程中将使用的静态纹理mipmap(1,2,…,Nmax)的全部或子集,最多N个mipmap被处理。进一步,选择一系列LOD预测方法(1,2,…,Mmax),最多使用M个预测方法。
在框404,扫描当前mipmap N。扫描mipmap会确定mipmap的每一LOD,以及当前mipmap的LOD的数量(i)。在框406,使用当前预测方法M,生成预测LOD(LODpi)。预测方法可以是目前已知的或将来开发的任何预测方法。在框408,为当前mipmap N的每一LOD计算增量LOD(LODdi)。
在框410,判断当前预测方法M是否小于Mmax。如果当前预测方法M小于Mmax,则过程流继续到框412。如果当前预测方法M不小于Mmax,则过程流继续到框414。在框412,当前预测方法M增大1(M=M+1),以便每一预测方法M都应用于当前mipmap N。然后,过程流返回到框406,以将下一预测方法应用于mipmap N。
在框414,记录生成当前mipmap N的最佳预测的预测方法M。在某些情况下,最佳预测方法可以是发现LOD对之间的最高关联度的预测方法。另外,在某些情况下,最佳预测方法可以是发现可被存储在最小量的空间中的LOD对之间的关联的预测方法。每一LODdi和LODdi+1对都使用最佳预测方法存储在存储器中。进一步,为当前mipmap N生成控制面。标识和记录实现最佳压缩的预测方法,如此,它可以与对应的控制面一起被传递到采样器。
在框416,判断当前mipmap N是否小于Nmax。如果当前mipmap N小于Nmax,则过程流继续到框418。如果当前mipmap N不小于Nmax,则过程流继续到框420。在框418,当前mipmap N增大1(N=N+1),以便预处理每一mipmap N。然后,过程流返回到框404,以扫描下一mipmap N。在框420,驱动程序预处理结束,应用程序启动继续。
图4B是示出了存储用于mipmap压缩的代码的有形的、非瞬时的计算机可读介质450的框图。有形、非瞬态计算机可读介质450可由处理器452在计算机总线454上访问。进一步,有形、非瞬态计算机可读介质450可包括配置为引导处理器452执行此处所述的方法的代码。
此处讨论的各软件组件可被存储在如图4B中所示的有形、非瞬态计算机可读介质450上。例如,预测模块456可以被配置成扫描mipmap,并使用mipmap的每一LOD,选择最佳预测方法。在框458,残余模块可以被配置成使用最佳预测方法来计算每一个LOD的增量。在框460,维护模块可以将每一个LOD的增量与对应的LOD一起存储在存储器中。
图4B的框图并不意在表示,有形、非瞬态计算机可读介质450必须包括图4B中所示的全部组件。进一步,取决于特定实现的细节,有形、非瞬态计算机可读介质450可包括图4B中未示出的任意数量的附加组件。例如,有形的,非瞬时的计算机可读介质450可包括执行如图5所示出的方法500的组件。
图5是用于从存储器中提取LOD数据的方法500的流程图。在某些情况下,由采样器提取LOD数据。在框502,从存储器中提取控制面,LODdi,以及LODdi+1。在某些情况下,LODdi和LODdi+1是从存储器中提取的高速缓存行。在框504,从LODdi+1预测LODpi纹素。在框506,将LODdi和LODpi相加以计算LODdi纹素。在框508,LODdi和LODdi+1纹素用于过滤操作中。
在某些情况下,由采样器块动态地执行方法500,因为在执行时,纹素需要从不同的mipmap中提取并过滤。采样器提取包含LODi+1和LODdi(增量)纹素的经压缩的高速缓存行。采样器也将生成预测LODpi纹素,并将它们与LODdi增量值相加,以生成原始LODi纹素。一旦生成原始LODi纹素,采样器将转到正常地纹素过滤。如此,当生成完全LOD对时,可以使用典型的过滤技术处理所生成的完全LOD对。
虽然使用未经压缩的纹理描述了本技术,但是,可以向经压缩的纹理格式,诸如BC-1和BC-2格式,应用相同LOD预测和压缩方案。图6A示出了BC-1格式的经压缩的LOD14x4块600。图6B示出了BC-2格式的经压缩的LOD14x4块650。在图6A和图6B中,包含在经压缩的LOD14x4块的头四个字节(图6A)或头12字节(图6B)中的alpha和基准色信息可以被用来预测“子”LOD08x8的基准色和α值。通常,mipmap中的不同的LOD的基准色和α值在BC-1和BC-2格式中是相关联的。因此,LOD14x4块的基准色和α值可以被用来有损地预测对应的LOD08x8块的基准色和α值。然后,从原始LOD08x8块减去有损的预测,以确定增量。稍后,将这些增量与有损的预测相加,以无损地再现原始LOD08x8块的基准色或α值。可以由采样器动态地(on the fly)执行有损的预测。如此,可以进一步压缩以经压缩的纹理格式存储的mipmap。可以使用本技术为未经压缩的纹理获得的50%到75%的较高的压缩率也适用于经压缩的纹理。具体而言,高压缩率适用于经压缩的纹理的基准色和alpha字节,而不适用于系数字节。因此,在总体压缩块上实现的平均压缩将一般小于我们之前看到的50%到75%。
图7是执行mipmap压缩的示例性系统700的框图。类似标记的项如根据图1所描述。在一些实施例中,系统700是媒体系统。此外,系统700可被结合在个人计算机(PC)、膝上型计算机、超膝上型计算机、服务器计算机、平板、触摸垫、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能平板、或智能电视机)、移动因特网设备(MID)、消息收发设备、数据通信设备、打印设备、嵌入式设备等等中。
在各实施例中,系统700包括耦合到显示器704的平台702。平台702可以从诸如内容服务设备(多个)706、或内容递送设备708(多个)之类的内容设备或其他类似的内容源接收内容。包括一个或多个导航特征的导航控制器710可以被用来与,例如,平台702和/或显示器704进行交互。在下文中更详细地描述这些组件中的每一个。
平台702可包括芯片组712、中央处理单元(CPU)102、存储器设备104、存储设备122、图形子系统714、应用720、和无线电716的任意组合。芯片组712可以在CPU 102、存储器设备104、存储设备122、图形子系统714、应用720、和无线电716之间提供相互通信。例如,芯片组712可包括能够提供与存储设备122的相互通信的存储适配器(未示出)。
CPU 102可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核,或任何其他微处理器或中央处理单元(CPU)。在一些实施例中,CPU 102包括多核处理器(多个)、多核移动处理器(多个)等等。存储器(memory)设备104可以实现为易失性存储器设备,诸如,但不限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。存储(storage)设备122可以实现为非易失性存储设备,诸如,但不仅限于,磁盘驱动器、光盘驱动器、磁带驱动器、固态驱动器、内部存储设备、附连的存储设备、闪存、电池备份的SDRAM(同步DRAM),和/或网络可访问的存储设备。在各实施例中,存储设备122包括例如当包括多个硬盘驱动器时,用于提高对有价值的数字媒体的存储器性能增强保护的技术。
图形子系统714可以对诸如静止图像或视频之类的图像执行处理以供显示。图形子系统714可以包括例如图形处理单元(GPU),诸如GPU 108、或视觉处理单元(VPU)。模拟或数字接口可以被用来通信地耦合图形子系统714和显示器704。例如,接口可以是高清晰度多媒体接口、显示端口(DisplayPort)、无线HDMI,和/或无线HD兼容技术中的任何一个。图形子系统714可以被集成到CPU 102或芯片组712中。可选地,图形子系统714可以是通信耦合到芯片组712的独立卡。
本文中所描述的图形和/或视频处理技术可在各种硬件体系结构中实现。例如,图形和/或视频功能可以集成在芯片组712内。替代地,可使用分立的图形和/或视频处理器。作为又一实施例,图形和/或视频功能可由包括多核处理器在内的通用处理器实现。在又一实施例中,这些功能可实现在消费者电子设备中。
无线电716可以包括能够使用各种合适的无线通信技术传输和接收信号的一个或多个无线电。这些技术可涉及跨一个或多个无线网络的通信。示例性无线网络包括无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络,以及卫星网络。在跨这类网络的通信中,无线电716可以根据任何版本的一个或多个适用的标准来操作。
显示器704可包括任何电视机类型的监视器或显示器。例如,显示器704可包括计算机显示屏幕、触摸屏幕显示器、视频监视器、电视机等。显示器704可以是数字和/或模拟的。在一些实施例中,显示器704是全息显示器。同样,显示器704可以是可接收可视投影的透明表面。这样的投影可以传达各种形式的信息、图像、和/或对象等。例如,这样的投影可以是用于移动增强的现实(MAR)应用程序的视觉覆盖。在一个或多个应用720的控制下,平台702可以在显示器704上显示用户界面718。
内容服务设备(多个)706可以由任何国家的、国际的、和/或独立的服务托管(hosted),且如此,可以由平台702经由例如因特网访问。内容服务设备(多个)706可以耦合到平台702和/或显示器704。平台702和/或内容服务设备706可以耦合到网络126以往返于网络126进行通信(例如,发送和/或接收)媒体信息。内容递送设备708还可以耦合到平台702和/或显示器704。
内容服务设备(多个)706可包括有线电视盒、个人计算机、网络、电话、或能传递数字信息的启用因特网的设备。此外,内容服务设备(多个)706可包括能在内容提供者和平台702或显示器704之间经由网络126或直接地单向或双向通信内容的任何其他类似设备。可以理解,内容可以通过网络126往返于系统700中的组件中的任何一个和内容提供方单向地和/或双向地传递。内容的示例可包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等等。
内容服务设备(多个)706可接收内容,诸如有线电视节目,包括媒体信息、数字信息,或其他内容。内容提供方的示例可包括任何有线或卫星电视或无线电或因特网内容提供方等等。
在一些实施例中,平台702从包括一个或多个导航特征的导航控制器710接收控制信号。导航控制器710的导航特征可以被用来,例如,与用户界面718进行交互。导航控制器710可以是指向设备或触摸屏设备,该指向设备或触摸屏设备可以是允许用户向计算机输入空间数据(例如,连续的和多维的)的计算机硬件组件(具体而言,人类接口设备)。许多系统——例如图形用户接口(GUI)以及电视机和监视器——允许用户使用身体姿势控制并将数据提供给计算机或电视机。物理姿势包括但不限于脸部表情、面部动作、各肢体的动作、身体动作、身体语言、或其中任意组合。这样的物理姿势可被识别并转换为命令或指令。
导航控制器710的导航特征的移动可以通过指针、光标、焦点环,或显示在显示器704上的其他可视指示器,反映在显示器704上。例如,在应用720的控制下,位于导航控制器710上的导航特征可以被映射为用户界面718上显示的虚拟导航特征。在一些实施例中,导航控制器710可以不是单独的组件,而是被集成到平台702和/或显示器704中。
系统700可包括驱动(未示出),其包括允许用户在初始引导之后,按下按钮来立即打开和关闭平台702的技术。程序逻辑可以允许平台702当平台被“关闭”时向媒体适配器或其他内容服务设备706或内容递送设备708流式传输内容。另外,芯片集712可包括,例如,对于环绕声音频和/或高清晰度环绕声音频的硬件和/或软件支持。驱动可以包括集成的图形平台的图形驱动程序。在一些实施例中,图形驱动器包括外设组件互连高速(PCIe)图形卡。
在各种实施例中,可以集成系统700中所示出的组件的任何一个或更多。例如,平台702和内容服务设备(多个)706可集成;平台702和内容递送设备(多个)708可集成;或者,例如,平台702、内容服务设备(多个)706,以及内容递送设备(多个)708可集成。在一些实施例中,平台702和显示器704是集成的单元。例如,显示器704和内容服务设备(多个)706可以集成,或者显示器704和内容递送设备(多个)708可以集成。
系统700可被实现为无线系统或有线系统。当实现为无线系统时,系统700可以包括适用于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括诸如RF频谱之类的无线频谱的某些部分。当被实现为有线系统时,系统700可包括适合于在有线通信介质上通信的组件和接口,诸如输入/输出(I/O)适配器、用于将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括,电线、线缆、金属导线、印刷电路板(PCB)、后面板、交换架构、半导体材料、双绞线、同轴电缆、光纤等等。
平台702可以建立一个或多个逻辑或物理信道以传递信息。该信息可包括媒体信息和控制信息。媒体信息可指代表针对用户的内容的任何数据。内容的示例可以包括,例如,来自语音谈话、视频会议、流式视频、电子邮件(email)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音谈话的数据可以是,例如,语音信息、静默时间长度、背景噪声、舒适噪声、音调等等。控制信息可以是指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可用于使媒体信息路由通过系统,或指示节点以预定方式处理该媒体信息。然而,这些实施例并不限于这些元件或图7中示出或描述的上下文。
图8示出了其中可以实现图7的系统700的小形状系数设备800的示意图。类似标记的项如根据图7所描述。在一些实施例中,例如,设备800可被实现为具有无线功能的移动计算设备。移动计算设备可指具有处理系统以及移动电源或供电(诸如一个或多个电池)的任何设备。
如上文所描述的,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、服务器计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动因特网设备(MID)、消息传送设备、数据通信设备等等。
移动计算设备的示例还可以包括被配置为由人佩戴的计算机,诸如腕计算机、手指计算机、环计算机、眼镜计算机、皮带计算机、臂带计算机、鞋计算机、衣服计算机,及任何其他类型的可佩戴计算机。例如,移动计算设备可被实现为能够执行计算机应用以及语音通信、和/或数据通信的智能电话。尽管已经以实现为智能电话的移动计算设备为例描述了一些实施例,但可理解其他实施例也可利用其他有线或无线移动计算设备来实现。
如图8所示,设备800可包括外壳802、显示器804、输入/输出(I/O)设备806、以及天线808。设备800还可包括导航特征812。显示器804可以包括用于显示适合于移动计算设备的信息的任何合适的显示单元810。I/O设备806可以包括用于向移动计算设备中输入信息的任何合适的I/O设备。例如,I/O设备806可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、往复式开关、麦克风、扬声器、语音识别设备、以及软件等等。信息还可以通过麦克风的方式输入到设备800中。该信息可通过语音识别设备数字化。
示例1:
此处描述了用于获得经压缩的mipmap的方法。该方法包括提取(fetch)第一细节级别(LOD)的一部分和增量。该方法还包括使用第一LOD的该部分来预测第二LOD的一部分,并使用第二LOD的预测的部分和增量,重构第二LOD。
可以预先计算增量,而重构第二LOD会导致mipmap的无损重构。可以提取(fetch)控制面,其中,控制面用于确定要为所述第一LOD的所述部分和所述增量而去提取的高速缓存行的数量。另外,还使用第一LOD和第二LOD的颜色之间的颜色关联,预测第二LOD的该部分,第二LOD的预测的部分可为第二LOD的有损的重构。LOD可以是压缩格式。进一步,压缩格式可以是块压缩(BC)-1,BC-2,自适应可缩放的纹理压缩(ASTC),或其任何组合。另外,第一LOD的该部分和增量可以存储在存储器的五个或更少的高速缓存行中。第一LOD和第二LOD可以被用作从存储器中提取的完全LOD对。所提取的第一细节级别(LOD)的该部分可以是4x4纹素编组,而第二LOD的预测的部分可以是8x8纹素编组。另外,该部分可以是高速缓存行。
示例2
此处描述了用于mipmap压缩的系统。该系统包括显示器、无线电、存储器,以及处理器。该存储器用于存储指令,并可通信地耦合到显示器。处理器可通信地耦合到无线电和存储器。当处理器将执行指令时,处理器将从存储器中获得第一细节级别(LOD)的一部分和增量,并使用第一LOD的该部分,计算出第二LOD的一部分。当处理器将执行指令时,处理器还将使用所计算出的第二LOD的部分和增量,生成第二LOD。
该系统可包括采样器(Sampler)单元,其中,采样器单元用于从存储器中获得(obtain)第一细节级别LOD的该部分和增量。处理器可包括用于执行指令的执行单元。第一LOD的该部分和第二LOD的该部分之间的颜色的关联可以被用来获得增量,而该系统的处理器用于再现相同的mipmap的第二LOD以便生成第二LOD。可以有损地生成第二LOD的初始近似值,而纹理采样器可以从存储器提取第二LOD和原始LOD之间的增量,以无损地生成第二LOD,其中,原始LOD是第二LOD的基准版本。此外,生成第二LOD可以动态地(on-the-fly)执行。Mipmap压缩可以实现输入/输出(I/O)存储器带宽的明显减少。处理器可以是中央处理单元(CPU),或处理器可以是图形处理单元(GPU)。另外,第一LOD和第二LOD可以为经压缩的纹理格式。
示例3
此处描述了包括代码的有形的、非瞬时的计算机可读介质。该代码可以指示处理器扫描mipmap,并使用mipmap的每一细节级别(LOD)选择最佳的预测方法。该代码也可以指示处理器使用最佳预测方法,计算每一个LOD的增量,并将每一个LOD的增量与对应的LOD一起存储在存储器中。
可以为mipmap生成控制面,或mipmap可以是静态mipmap。进一步,可以在应用程序的运行时压缩mipmap。另外,增量和对应的LOD可以存储在单一高速缓存行中,或者增量和对应的LOD可以存储在比LOD对更少的高速缓存行中。当与LOD对的存储器占用空间相比时,可以减少存储器的占用空间。另外,LOD可以为压缩格式,或压缩格式可以是块压缩(BC)-1,BC-2,自适应可缩放的纹理压缩(ASTC),或其任何组合。进一步,可以减少I/O存储器瓶颈。
示例4
此处描述了用于mipmap压缩的设备。该设备包括用于从存储器中提取细节级别(LOD)的装置,其中,从存储器中提取第一LOD的一部分和增量。该设备还包括用于使用第一LOD的该部分预测第二LOD的一部分并使用第二LOD的预测的部分和增量来计算第二LOD的装置。
该设备可包括用于在运行时生成mipmap的多个增量的装置。可以有损地预测第二LOD。使用第二LOD的预测的部分和增量来计算第二LOD可以是无损的。使用第一LOD的该部分来预测第二LOD的一部分可以动态地进行。另外,还可以使用第一LOD和第二LOD的颜色之间的颜色关联,预测第二LOD的该部分。第一LOD的该部分和第二LOD的该部分可以为压缩格式。此外,还可以减少功耗。进一步,第一LOD的该部分和第二LOD的该部分可以被用作从存储器中提取的完全LOD对,从而纹理采样不变。此外,第一LOD的该部分和增量可以存储在单一高速缓存行中。
示例5
此处描述了用于mipmap压缩的方法。该方法包括扫描mipmap,并使用mipmap的每一细节级别(LOD)选择最佳的预测方法。该方法还包括使用最佳预测方法,计算每一个LOD的增量,并将每一个LOD的增量与对应的LOD一起存储在存储器中。
可以为mipmap生成控制面,或mipmap可以是静态mipmap。进一步,可以在应用程序的运行时压缩mipmap。另外,增量和对应的LOD可以存储在单一高速缓存行中,增量和对应的LOD可以存储在比LOD对更少的高速缓存行中。当与LOD对的存储器占用空间相比时,可以减少存储器的占用空间。另外,LOD可以为压缩格式,或压缩格式可以是块压缩(BC)-1,BC-2,自适应可缩放的纹理压缩(ASTC),或其任何组合。进一步,可以减少I/O存储器瓶颈。
要理解的是,上述示例中的特定细节可被用在一个或多个实施例中的任何地方。例如,上述计算设备的所有任选特征也可相对于此处描述的任一方法或计算机可读介质而被实现。进一步,尽管已经在此处使用过程流程图和/或状态图来描述各实施例,但本技术不限于此处的那些图或相应的描述。例如,流程不必经过每个所示的框或状态或以此处所示和所述的完全相同的顺序进行。
本技术不限于此处列出的特定细节。实际上,受益于本公开的本领域的技术人员将理解,可在本技术的范围内进行来自上述描述和附图的很多其它变型。因此,由所附权利要求书(包括对其进行的任何修改)定义本技术的范围。
Claims (25)
1.一种用于获得经压缩的mipmap的方法,包括:
提取第一细节级别(LOD)的一部分和增量;
使用所述第一LOD的所述部分,预测第二LOD的一部分;
使用所述第二LOD的所述预测的部分和所述增量,重构所述第二LOD。
2.如权利要求1所述的方法,其特征在于,所述增量是预先计算出的。
3.如权利要求1所述的方法,其特征在于,重构所述第二LOD导致mipmap的无损重构。
4.如权利要求1所述的方法,包括提取控制面,其中,所述控制面用于确定为所述第一LOD的所述部分和所述增量而要提取的高速缓存行的数量。
5.如权利要求1所述的方法,其特征在于,使用所述第一LOD和所述第二LOD的颜色之间的颜色关联来预测所述第二LOD的所述部分。
6.如权利要求1所述的方法,其特征在于,所述第二LOD的所述预测的部分是所述第二LOD的有损的重构。
7.如权利要求1所述的方法,其特征在于,所述第一LOD和所述第二LOD为压缩格式。
8.如权利要求6所述的方法,其特征在于,所述压缩格式是块压缩(BC)-1,BC-2,自适应可缩放的纹理压缩(ASTC),或其任何组合。
9.一种用于mipmap压缩的系统,包括:
显示器;
无线电;
用于存储指令并且可通信地耦合到所述显示器的存储器;以及
可通信地耦合到所述无线电和所述存储器的处理器,其中,当所述处理器将执行所述指令时,所述处理器用于:
从所述存储器获得第一细节级别(LOD)的一部分和增量;
使用所述第一LOD的所述部分,计算第二LOD的一部分;
使用所述第二LOD的所述计算出的部分和所述增量,生成所述第二LOD。
10.如权利要求9所述的系统,包括采样器单元,其特征在于,所述采样器单元用于将从所述存储器中提取所述第一细节级别LOD的所述部分和所述增量。
11.如权利要求9所述的系统,其特征在于,所述处理器包括用于执行所述指令的执行单元。
12.如权利要求9所述的系统,其特征在于,所述第一LOD的所述部分和所述第二LOD的所述部分之间的颜色的关联被用来获得所述增量。
13.如权利要求9所述的系统,其特征在于,所述系统的所述处理器用于再现同一mipmap的第二LOD,以便生成所述第二LOD。
14.如权利要求9所述的系统,其特征在于,所述第二LOD的初始近似是有损地生成的,并且其中,纹理采样器用于从所述存储器中提取所述第二LOD和原始LOD之间的所述增量,以无损地生成所述第二LOD,其中,所述原始LOD是所述第二LOD的基准版本。
15.如权利要求9所述的系统,其特征在于,生成所述第二LOD是动态地执行的。
16.如权利要求9所述的系统,其特征在于,所述mipmap压缩实现输入/输出(I/O)存储器带宽的明显减少。
17.如权利要求9所述的系统,其特征在于,所述处理器是中央处理单元(CPU)。
18.一种用于mipmap压缩的方法,包括:
扫描所述mipmap;
使用所述mipmap的每一细节级别(LOD)选择最佳预测方法;
使用所述最佳预测方法计算每一个LOD的增量;以及
将每一个LOD的所述增量与对应的LOD一起存储在存储器中。
19.如权利要求18所述的方法,包括生成所述mipmap的控制面。
20.如权利要求18所述的方法,其特征在于,所述mipmap是静态mipmap。
21.如权利要求18所述的方法,其特征在于,所述mipmap在应用程序的运行时被压缩。
22.如权利要求18所述的方法,所述增量和所述对应的LOD存储在单一高速缓存行中。
23.如权利要求18所述的方法,所述增量和所述对应的LOD存储在比LOD对更少的高速缓存行中。
24.如权利要求18所述的方法,其特征在于,当与LOD对的存储器占用空间相比时,所述存储器的占用空间减少。
25.如权利要求18所述的方法,其特征在于,所述LOD为压缩格式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/229,826 | 2014-03-28 | ||
US14/229,826 US20150279055A1 (en) | 2014-03-28 | 2014-03-28 | Mipmap compression |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104952087A true CN104952087A (zh) | 2015-09-30 |
Family
ID=54066880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510096155.4A Pending CN104952087A (zh) | 2014-03-28 | 2015-03-04 | Mipmap压缩 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150279055A1 (zh) |
CN (1) | CN104952087A (zh) |
DE (1) | DE102015002364A1 (zh) |
TW (1) | TWI557683B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102197064B1 (ko) * | 2014-10-10 | 2020-12-30 | 삼성전자 주식회사 | Lod를 조절할 수 있는 그래픽스 프로세싱 유닛, 이의 작동 방법, 및 상기 그래픽스 프로세싱 유닛을 포함하는 장치들 |
WO2017123071A1 (en) * | 2016-01-14 | 2017-07-20 | Samsung Electronics Co., Ltd. | A mobile device and a method for texture memory optimization thereof |
WO2017171568A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | Apparatus and method for asynchronous texel shading |
US20170357493A1 (en) * | 2016-06-10 | 2017-12-14 | Apple Inc. | Providing variants of texture assets for an asset catalog |
US10304215B2 (en) * | 2016-06-10 | 2019-05-28 | Apple Inc. | Providing variants of texture assets for an asset catalog |
US10602174B2 (en) * | 2016-08-04 | 2020-03-24 | Intel Corporation | Lossless pixel compression for random video memory access |
US10715818B2 (en) | 2016-08-04 | 2020-07-14 | Intel Corporation | Techniques for hardware video encoding |
CN106791883A (zh) | 2016-11-18 | 2017-05-31 | 上海兆芯集成电路有限公司 | 纹理砖压缩及解压缩方法以及使用该方法的装置 |
US10460502B2 (en) | 2016-12-14 | 2019-10-29 | Samsung Electronics Co., Ltd. | Method and apparatus for rendering object using mipmap including plurality of textures |
US10291925B2 (en) | 2017-07-28 | 2019-05-14 | Intel Corporation | Techniques for hardware video encoding |
US11025913B2 (en) | 2019-03-01 | 2021-06-01 | Intel Corporation | Encoding video using palette prediction and intra-block copy |
US10855983B2 (en) | 2019-06-13 | 2020-12-01 | Intel Corporation | Encoding video using two-stage intra search |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1272930A (zh) * | 1997-06-30 | 2000-11-08 | 英特尔公司 | 基于存储器的用于图象压缩vlsi结构 |
US20040119719A1 (en) * | 2002-12-24 | 2004-06-24 | Satyaki Koneru | Method and apparatus for reading texture data from a cache |
CN1816829A (zh) * | 2003-07-01 | 2006-08-09 | 皇家飞利浦电子股份有限公司 | Mip贴图级别选择 |
US20100046846A1 (en) * | 2006-12-20 | 2010-02-25 | Sony Computer And/or Decompression | Image compression and/or decompression |
CN102314666A (zh) * | 2010-08-16 | 2012-01-11 | 微软公司 | Gpu纹理小块的细节控制 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008062687A1 (en) * | 2006-11-24 | 2008-05-29 | Nec Corporation | Coding and decoding device, coding and decoding method and program |
US7948500B2 (en) * | 2007-06-07 | 2011-05-24 | Nvidia Corporation | Extrapolation of nonresident mipmap data using resident mipmap data |
TWI528328B (zh) * | 2012-04-20 | 2016-04-01 | 財團法人資訊工業策進會 | 依據貼圖影像內容決定選擇細節層次之三維貼圖處理方法、裝置以及儲存其之電腦可讀取記錄媒體 |
US9607356B2 (en) * | 2013-05-02 | 2017-03-28 | Arm Limited | Graphics processing systems |
-
2014
- 2014-03-28 US US14/229,826 patent/US20150279055A1/en not_active Abandoned
-
2015
- 2015-02-11 TW TW104104555A patent/TWI557683B/zh not_active IP Right Cessation
- 2015-02-25 DE DE102015002364.0A patent/DE102015002364A1/de not_active Withdrawn
- 2015-03-04 CN CN201510096155.4A patent/CN104952087A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1272930A (zh) * | 1997-06-30 | 2000-11-08 | 英特尔公司 | 基于存储器的用于图象压缩vlsi结构 |
US20040119719A1 (en) * | 2002-12-24 | 2004-06-24 | Satyaki Koneru | Method and apparatus for reading texture data from a cache |
CN1816829A (zh) * | 2003-07-01 | 2006-08-09 | 皇家飞利浦电子股份有限公司 | Mip贴图级别选择 |
US20100046846A1 (en) * | 2006-12-20 | 2010-02-25 | Sony Computer And/or Decompression | Image compression and/or decompression |
CN102314666A (zh) * | 2010-08-16 | 2012-01-11 | 微软公司 | Gpu纹理小块的细节控制 |
Also Published As
Publication number | Publication date |
---|---|
TWI557683B (zh) | 2016-11-11 |
US20150279055A1 (en) | 2015-10-01 |
DE102015002364A1 (de) | 2015-10-01 |
TW201541405A (zh) | 2015-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104952087A (zh) | Mipmap压缩 | |
CN104205161B (zh) | 用于块压缩图象的解压缩的系统、方法和计算机程序产品 | |
US9524536B2 (en) | Compression techniques for dynamically-generated graphics resources | |
US10297046B2 (en) | Techniques for reducing accesses for retrieving texture images | |
US10621691B2 (en) | Subset based compression and decompression of graphics data | |
US9251731B2 (en) | Multi-sampling anti-aliasing compression by use of unreachable bit combinations | |
US9754345B2 (en) | Compression and decompression of graphics data using pixel region bit values | |
CN104915916A (zh) | 使用选择性色彩变换的色彩压缩 | |
CN105359533A (zh) | 用于低功率图像压缩和显示的技术 | |
JP6182225B2 (ja) | カラーバッファ圧縮 | |
EP2843954B1 (en) | Lossy color compression using adaptive quantization | |
CN115699090A (zh) | 多平面图像压缩 | |
CN104754348B (zh) | 用于自适应深度偏移压缩的方法和设备 | |
CN104737225A (zh) | 用于存储器带宽有效的显示合成的系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20210604 |