CN102937892B - 用于使用基于图块的再现器分层的系统和方法 - Google Patents
用于使用基于图块的再现器分层的系统和方法 Download PDFInfo
- Publication number
- CN102937892B CN102937892B CN201210335776.XA CN201210335776A CN102937892B CN 102937892 B CN102937892 B CN 102937892B CN 201210335776 A CN201210335776 A CN 201210335776A CN 102937892 B CN102937892 B CN 102937892B
- Authority
- CN
- China
- Prior art keywords
- content
- segment
- pixel value
- layer
- reproduce
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/122—Tiling
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
一种用于内容的基于图块的再现的方法。内容可在被组织成多个图块的存储器区域中被再现。在内容被按层生成的情景下,对于牵涉到合成图像层的操作,图像的各部分被处理的次序可以被选择,以便减小存储器存取次数的累计数量,这进而又可以提高使用基于图块的再现的计算机的性能。图像可被处理成使得涉及到再现对应于同一个图块的不同层的一些部分的操作被顺序地执行。这样的处理可以在具有支持基于图块的再现的图形处理单元的计算机中被使用,并且可以特别好地适用于具有平板形状因子的计算机。在计算机内的与图形处理实用程序的接口可以提供标志,以允许应用来规定操作是否可以重新排序。
Description
背景技术
计算设备可以在视频显示器上向一个或多个人类用户显示诸如图像和/或文本那样的内容。为此,计算设备可以执行用于从内容计算像素值的再现过程—可被组织在称为图像平面(image plane)的存储器区域中的像素值可以被视频显示器使用来显示内容。
要被显示的内容可包括被称为“图元(primitive)”的各种单元。图元的例子包括线段、曲线、符号(glyph)、窗口、按钮和/或形状,诸如圆形和多边形。这样,再现可以在“一个一个像素”或“一个一个图元”的基础上被实施。逐个像素地再现可牵涉到在图像平面像素上的迭代和依次确定它们的值的每一个。另一方面,逐个图元地再现可牵涉到在要被显示的内容中的图元上的迭代,以及对于每个这样的图元,确定哪些图像平面像素值可能受图元影响,并随之修改那些像素值。
某些计算设备可以具有专用硬件,诸如视频卡和/或图形处理单元,其可被使用来执行一种或多种类型的操作,作为再现过程的一部分。例如,图形处理单元(GPU)可被使用来计算一个或多个图像平面像素值。这些计算设备可以提供软件应用,它们可以生成要显示的内容,例如通过适当的应用编程接口(例如,图形库、硬件驱动器等等)访问这样的专用硬件。
某些GPU支持基于图块(tile)的再现。这样的GPU可以具有比用于存储再现的内容(即,图像平面)的存储器更小的快速的芯片级存储器,这个芯片级存储器可被使用来更快地执行某些GPU操作。因此,在基于图块的再现中,内容可以按被称为图块的部分被再现,这样,作为再现过程的一部分,GPU可以通过使用快速存储器而对于每一个这样的部分执行操作。内容可以一次一个图块地被再现,像素值是在每个图块的基础上进行计算的。存储像素值的存储器区域可被组织为多个图块。因此,在这里,其中存储与图块相关联的像素值的每个子区域也被称为图块。
某些内容可包括一个或多个内容层。每个内容层可包括一个或多个图元和/或可包括任何其它适当的内容。在再现内容层时,在每层中的信息可被组合,使得所再现的信息代表在多个层中的信息的合成。内容层可以以不同的方式被组合,以达到不同的效果。例如,一个或多个层可被呈现为好像是部分透明的,以使得下层的一些部分透过上层显现。作为另一个例子,这些层可被裁剪(crop),以使得在显示器上显现的是与另一层的一些部分相组合的一个层的一些部分。包括多个内容层的内容可以通过使用在图像平面像素值上的多次通过(multiple passes)而一次一层地和在每层内一次一个图元地被再现。
发明内容
改进的内容再现技术可以在包含专用图形硬件的计算设备中提高诸如功率和存储器那样的资源的利用。技术包括:通过使得在再现过程中操作可能被执行的次序最佳化,而更有效地基于图块再现包括多个内容层的内容。用于内容再现的专用硬件,诸如GPU,可被配置成在执行对应于其他图块的内容的再现之前再现对应于某图块的一个以上的内容层。结果,与该单个图块相关联的像素值被送进存储器的次数可以减小。这可以使得总的再现过程比常规办法更有效,常规办法是一次一个内容层地再现内容,每个内容层被组织成多个图块,这导致高速缓存颠簸(thrashing)和差的总体性能。更有效的再现过程可以导致诸如功率和存储器那样的资源的减小的或改进的利用,这对于其中这样的资源有限的计算设备(例如,膝上型电脑、移动电话、具有平板(slate)形状因子的设备、其它电池供电的设备等等)可以是有利的。
因此,在一些实施例中,提供了用于包括多个层的内容的基于图块的再现的方法,其中内容被组织成至少包括第一图块和第二图块的多个图块。该方法可包括通过使用至少一个处理器来计算一个或多个像素值而再现对应于第一图块的该内容的至少第一部分;以及响应于该再现,在再现对应于任何其它图块的内容之前执行至少一个操作,其中所述至少一个操作包括用于合成多个层中的至少两个层的操作。
例如,在一些实施例中,可以一次一个图块地再现内容,这样使得作为再现过程的一部分被计算的像素值按对应于每个图块的组被计算。另外,按对应于图块的组计算像素值,可包括计算来自多个内容层的像素值。因此,在一些实施例中,内容可以一次一个图块,而不是一次一个层地被再现,这样使得对应于某个细节的多个内容层可以在对应于任何其它图块的任何内容被再现之前被再现和合成。
在一些实施例中,提供了至少一个计算机可读存储介质。所述至少一个计算机可读存储介质可以存储包括处理器可执行的指令的应用,该处理器可执行的指令在被至少一个处理器执行时,完成用于配置图形处理单元(GPU)来再现被组织成包括第一图块和第二图块的多个图块的内容的方法。该方法可包括确定首先执行以下动作中的哪个动作:对于通过再现对应于第一图块的内容而得到的一个或多个像素值执行至少一个操作,或再现对应于第二图块的至少该内容的一部分;以及如果确定要首先执行所述至少一个操作,则:通知GPU首先执行所述至少一个操作,其次执行所述再现。
在一些实施例中,提供了用于再现包括多个内容层的内容的系统,其中内容被组织成包括第一图块和第二图块的多个图块。该系统可包括存储器,其通信地耦合到图形处理单元(GPU);以及包括GPU,其中GPU被配置成:再现对应于第一图块的该内容的至少第一部分,以便计算一个或多个像素值;接收关于首先要执行以下动作中的哪个动作的指示:对于一个或多个像素值执行至少一个操作,其中所述至少一个操作包括用于合成多个层中的至少两个层的操作,或再现对应于第二图块的至少该内容的第二部分;以及如果所述指示表明首先要执行所述至少一个操作,则GPU被配置成对于第一图块的一个或多个像素值执行所述至少一个操作,以及在执行所述至少一个操作后,再现对应于第二图块的该内容的第二部分。
上文是本发明的非限制性概要,本发明由所附的权利要求限定。
附图说明
附图不打算是按比例画出的。在附图上,在各个图上图示的每个相同的或几乎相同的部件用同样的标号代表。为了清晰起见,在每个图上并不是每个部件都可加上标号。在图上:
图1显示按照本公开内容的一些实施例的、用于再现内容的示范性计算环境。
图2是按照本公开内容的一些实施例的、在用于再现内容的说明性计算设备内的硬件和软件构件的框图。
图3是按照本公开内容的一些实施例的、用于再现内容的说明性过程的流程图。
图4a和4b显示按照本公开内容的一些实施例的、用于再现内容的说明性过程的流程图。
图5是一般性地图示可以在实施本公开内容的诸方面时使用的计算设备的例子的框图。
具体实施方式
本发明人认识到和意识到,如果支持基于图块的再现的GPU可以被配置成更有效地执行包括一个或多个内容层的内容的基于图块的再现,则可以从GPU得到更大的效用。具体地,本发明人认识到,一次一个图块地再现这样的内容,而不是一次一层地再现内容,可以是有利的。在前者的“层-然后-图块”的办法中,内容可以一次一个内容层地被再现,以及每个这样的内容层可以一次一个图块地被再现。另一方面,在后者的“图块-然后-层”的办法中,内容可以一次一个图块地被再现——计算与每个图块相关联的像素值可以包括从多个内容层计算像素值。
本发明人认识到,基于图块的再现很可能变得更流行,因为可以从基于图块的再现获益的设备正变得更普遍。基于图块的再现对于在移动设备中的使用可以是有利的,因为它可能需要比常规的非基于图块的再现技术更少的存储器带宽和更少的功率。移动设备(例如,智能电话、PDA、输入板(tablet)等等)正变得更普遍,这些移动设备包括支持基于图块的再现的图形处理单元。
本发明人还认识到,虽然基于图块的再现技术比起其它类型的再现技术可以是更有效的,但在支持基于图块的再现的GPU上使用基于图块的再现的常规技术可以被进一步改进。本发明人意识到,改进GPU可被配置来执行基于图块的再现的方式可以导致更有效的再现,这进而又可以针对包含这样的GPU的移动设备导致附加的好处(例如,延长电池寿命)。具体地,本发明人认识到,用于包括多个内容层的内容的、基于图块的再现的常规技术可以被改进。
包括多个内容层的内容的基于图块的再现的一个常规的办法是上述的“层-然后-图块”办法。在这个办法中,内容层可以一次一个内容层地,一个接一个地被再现。而且,每个内容层可以一次一个图块地被再现。因此,在这个办法中,在对应于特定图块的内容层的一部分被再现后,该内容层的对应于其余图块的未再现部分在对应于该特定图块的另一个内容层的任何部分可被再现之前被再现。有时把这称为 “中间情景刷新(mid-sceneflush)”,因为它可以迫使与再现上述内容层相关联的所有的再现操作(由此,刷新来自再现操作的“流水线”的这些操作)在与再现另一个层相关联的任何操作可以被执行之前进行。
与再现另一层相关联的操作可以是任何适当类型的操作。作为一个例子,操作可包括通过使用已经计算出的像素值来执行一个或多个计算。这样的操作可被使用于许多情形中,例如,可以在合成已再现的层与其它层的信息时被使用。作为一个具体的例子,这样的操作可被使用来把诸如透明或裁剪效果那样的一个或多个效果施加到再现的内容上。
作为中间情景刷新的一个具体的非限制性例子,考虑在两个内容层的基于图块的再现中可能出现的事件序列。事件序列可包括再现对应于图块A的第一内容层的一部分和把得到的像素值从用于再现的快速存储器(例如,GPU高速缓存)拷贝到另一个存储器,再现对应于图块B的第一内容层的另一个部分,然后把得到的像素从快速存储器拷贝到其它存储器,等等,直至整个第一内容层被再现为止。在整个第一内容层被再现后,可以再现对应于图块A的第二内容层的一部分。在这一点,可能想要合成第一和第二内容层的一些部分,以便达到诸如透明或裁剪那样的视觉效果。然而,为了合成对应于图块A的第一和第二内容层的一些部分,需要把先前从快速存储器拷贝到另一个存储器的像素值带回到快速存储器。
本发明人认识到,在常规的“层-然后-图块”的办法中,执行中间情景刷新(例如像在上述的例子中)可以导致与特定图块相关联的像素值被带入到GPU高速缓存多次。例如,像素值可在每次另一个内容层正被再现时被带入到GPU高速缓存(正如在上述的例子中可能的情形),这样使得新的像素值可作为从多个内容层得到的值的函数而被计算(例如,当多个内容层被合成时)。
本发明人还认识到,GPU高速缓存的尺寸可能是有限的,以及与对应于一个图块的内容相关联的像素值可能在与对应于另一个图块的内容相关联的像素值被带入高速缓存之前从高速缓存中去除或在高速缓存中被盖写。结果,在“层-然后-图块”的办法中,与对应于特定图块的内容相关联的像素值可以在内容正被再现时被带入和带出高速缓存多次——一种称为“高速缓存颠簸”的现象。高速缓存颠簸是低效的,因为把值从另一个典型地较慢的存储器重复地读入高速缓存和/或把来自高速缓存的值重复地写入其它存储器,均可以招致延迟。
本发明人还认识到和意识到,一次一个图块地再现内容,以及对于每个图块,基于与多个内容层相关联的值来执行计算,可以克服用于基于图块的再现的常规技术的某些上述缺点。然而,不是每个实施例都解决这些缺点中的每个缺点,且某些实施例可能不解决它们中的任何缺点。这样,应当意识到,本发明不限于解决用于基于图块的再现的这些常规技术的、以上讨论的所有的或任何的缺点。
因此,在一些实施例中,可以执行上述的“图块-然后-层”的办法以进行再现。在这样的实施例中,可以再现对应于图块的内容的一个层的至少一部分,以及可以再现对应于同一个图块的另一个内容层的至少另一个部分,这两个动作在对应于另一个图块的任何内容被再现之前发生。再现对应于图块的内容可包括使用在GPU 板上的快速存储器来再现内容的一部分。再现对应于图块的内容的另外层可包括对已经再现的像素值执行操作。该操作可以是任何适当的操作,且可以作为对正再现的内容施加效果的一部分被执行。在一些实施例中,对与图块相关联的像素值执行操作可包括对存储于GPU板载(onboard)的快速存储器(例如,GPU高速缓存)中的值执行操作。
在这种“图块-然后-层”的办法中,在上述例子中的用于再现包括两个层的内容的事件序列可包括再现对应于图块A的第一内容层的一部分,以便得到一个或多个像素值,把计算的像素值拷贝到另一个存储器,然后再现对应于图块A的第二层的一部分,以及最后,合成先前拷贝的像素值与从再现第二层的该部分所得到的值,以便混合来自两个内容层的内容。在这个例子中,高速缓存颠簸可以被避免,因为相对于与对应于图块A的内容相关联的像素值的所有操作可以一起完成。
因此,在一些实施例中,包括多个内容层的内容的处理,可能需要确定用于再现内容的操作可被处理的次序。例如,在对应于第一图块的内容层的一部分被再现后,可以有关于以下项的选择:是对于与第一图块相关联的像素值执行任何操作(例如,再现对应于第一图块的更多的内容,合成所述层与另一个层的已经再现的部分等),还是再现对应于不同图块的内容的另外部分。在利用“层-然后-图块”的办法时,可以作出与利用“图块-然后-层”的办法时不同的决定。在后者的情形下,对与对应于第一图块的内容相关联的像素值的操作可以在对应于另外图块的任何内容可被再现之前执行。
在一些实施例中,GPU可以接收表明是使用“图块-然后-层”的办法还是使用常规的“层-然后-图块”的办法来再现包括多个层的内容的指示。正如下面更详细地描述的,这样的指示可以作为由生成要再现的内容的软件所做的决定的结果被接收,在某些实例中,这样的指示可包括由软件设置的参数和/或由软件做出的功能调用。作为具体的例子,再现内容的部件可被配置成结合再现操作而提供这样的指示,该再现操作牵涉到在以下情景中合成多个层,即:其中再现操作的每个图块仅仅依赖于在要被合成的层中的对应图块的内容。
任何适当的计算环境可被使用来实施本发明的实施例。一个这样的计算环境被图示于图1,该图显示用于再现内容的示范性计算环境100。
计算环境100包括通信地耦合到显示器106的计算设备102。计算设备102可被配置来再现内容,以使得所再现的内容可以在显示器106上被显示。在这个说明性的例子中,用户(例如,用户108)可以在显示器106上观看所再现的内容。然而,应当认识到,任何适当数量的用户可以观看所再现的内容,因为观看所再现的内容的用户数量并不是本发明的限制。
计算设备102可被配置成以任何适当的方式和使用任何适当的技术来再现内容。在一些实施例中,计算设备102可被配置成通过使用基于图块的再现来再现内容。而在其它实施例中,计算设备102可被配置成通过使用基于图块的再现来再现某个内容,但不通过使用基于图块的再现来再现其它内容。
计算设备102可被配置成再现任何适当的内容。内容可包括可以在视觉上呈现的任何适当类型的内容。例如,内容可包括任何适当类型的图像数据(例如,图像、照片、计算机生成的图像、剪贴画等等)。作为另一个例子,内容可包括任何适当类型的文本数据。
在一些实施例中,内容可包括一个或多个图元。图元可以是在内容内的任何适当的单元。例如,图元可以是任何适当的2D或3D形状,且例如可以是点、面、线段、曲线、样条曲线、多边形、圆形、椭圆形、球体、立方体、方框、圆环、圆柱体、锥体等等。作为另一个例子,图元可以是窗口、图文框、按钮、域等等。然而,应当认识到,以上的图元的例子仅仅是说明性的,以及内容可包括任何其它适当的图元,正如本领域已知的。
图元可被表示为多个层,它们被合成以构成所再现的图像。然而,应当意识到,图块-然后-层技术可被应用到要被再现的图形信息,而不管它是如何被表示的。
计算设备102可被配置成结合任何适当的用途来再现内容。在一些实施例中,计算设备102可被配置成为至少部分地在计算设备102上执行的一个或多个软件构件而再现内容。软件构件可包括任何适当的软件,且例如可包括一个或多个操作系统和/或一个或多个软件应用。软件应用可以是可能想要向用户再现内容的任何适当的应用,且例如可以是包括文本和/或图形用户界面的任何应用。这样的应用的具体例子包括视频游戏应用、文本和/或图像处理应用、以及任何web浏览应用。许多其它的例子对于本领域技术人员将是明显的。
计算系统102可以是任何适当类型的计算系统,且可以具有任何适当的形状因子。例如,计算系统102可以是一个或多个个人计算机、一个或多个服务器、一个或多个膝上型电脑、和一个或多个手持设备——每个可以是智能电话、输入板、平板电脑、个人数字助理、文本阅读器等等。计算系统的类型的其它例子在下面参照图5更详细地描述。
显示器106可以是任何适当类型的显示器,可以以任何适当的技术被实施,以及可以具有任何适当的形状因子。这样,显示器106可以是被配置成显示文本和/或图像的任何显示器。然而,在计算环境100中,显示器106被显示为经由有线连接104 通信地耦合到计算系统102,这不是本发明的限制,因为显示器106可以以任何适当的方式与计算系统102通信地耦合。例如,显示器106可以是处在计算系统102外部,并且可以经由无线连接被通信地耦合到计算系统102。作为另一个例子,显示器106可以与计算系统102集成在一起,例如,当计算系统102是诸如膝上型电脑或平板电脑那样的便携式计算系统时,情形可能是这样。
计算系统102可包括任何适当类型的一个或多个处理器。例如,计算系统102可包括诸如CPU 130那样的一个或多个CPU以及诸如GPU 110那样的一个或多个图形处理单元(GPU)。每个处理器可能能够从诸如存储器120那样的存储器中读取数据和把数据写入到存储器。存储器120可以是包括下面参照图5描述的任何存储器在内的许多类型存储器的任何一种。
GPU 110可以是任何适当类型的GPU。在一些实施例中,GPU 110可以支持内容的基于图块的再现,而在其它实施例中,GPU 110可能不提供对于内容的基于图块的再现的支持。
在一些实施例中,GPU 110可以通过从内容计算出一个或多个像素值并把它们存储在存储器中而再现内容。不管像素值可如何被计算或被存储,所存储的像素值可以被显示器(例如,显示器106)使用来显示内容。
GPU 110可以把像素值存储在任何适当的存储器中。例如,GPU 110可以把像素值存储在存储器120中。在一些实例中,GPU 110可以把像素值存储在存储器120的诸如图像平面122那样的区域中。图像平面122可以是存储器的任何适当的区域,且可以具有任何适当的尺寸。例如,图像平面122的尺寸可以是使得它可以存储被计算来再现内容的像素值的很大部分。被存储在图像平面上的像素值可被使用来在诸如显示器106那样的显示器上呈现所再现的内容。然而,应当认识到,像素值可被存储在存储器120的任何适当的部分,而不限于存储在图像平面122上。例如,像素值可被存储在存储器120的、被配置成存储临时像素值的另一个区域,或任何其它适当的区域。
被使用于存储所再现的内容的存储器区域,诸如图像平面122,可被组织成一个或多个子区域(或图块)。每个图块可以是任何适当的尺寸。在一些实例中,存储器区域可被平铺到一个或多个具有相同尺寸的图块中,这样使得每个图块可以存储与任何其它图块相同量的数据。然而,在其它实例中,图块可以具有不同的尺寸,这样使得一个图块可以存储的数据量与另一个图块可以存储的数据量不同。因为每个内容层正一次一个图块地被再现,所以所再现的内容的每个部分可被存储在存储器120的一个区域中(例如,在图像平面122中)。因此,图像平面122可被使用来存储所有的再现的内容。
为了再现内容,GPU 110可以使用芯片级存储器112。芯片级存储器112可以是快速的、低等待时间的存储器,因为它可以与GPU 110集成在一起。例如,芯片级存储器112可以是芯片级高速缓存。芯片级存储器112可以具有任何适当的尺寸,且例如可以大到足以存储被计算来再现内容的一部分像素值。
在一些实施例中,芯片级存储器112的尺寸可以与被使用来再现内容的图块的尺寸相同。然而,在其它实施例中,芯片级存储器112的尺寸可以与图块的尺寸不相同。例如,芯片级存储器112的尺寸可以大于图块的尺寸。作为具体的例子,芯片级存储器的尺寸可以是被使用来再现内容的图块尺寸的倍数(例如,2、3、4、5、6等等乘以被使用来再现内容的图块的尺寸)。
图2进一步图示计算设备102的体系结构。具体地,图2是计算设备102内的硬件和软件构件的说明性框图。
计算设备102包括硬件构件240。硬件构件240可包括在本领域已知的、物理的计算设备的许多硬件构件的任何一种硬件构件。例如,硬件构件240可包括GPU 110、存储器120和CPU 130,正如参照图1描述的。然而,硬件构件240不限于这些例子,而是可包括对于支持内容的再现可能需要的任何其它硬件构件。
图2还图示可以在计算设备102内执行的软件构件。在所例示的实施例中,软件构件可以作为处理器可执行的指令和配置参数而被存储,且例如可被存储在存储器120中,或被存储在与CPU 130和/或GPU 110相关联的任何其它存储器中。
在计算设备102内执行的软件构件可以是任何适当的软件构件,且可包括一个或多个应用220、操作系统230、和/或可以把GPU配置来执行如这里描述的任何功能性的指令。然而,应当认识到,软件构件不限于这里描述的软件构件的任何例子,这样,计算设备102可包括任何适当的软件构件。
应用220可包括任何适当数量的应用,且每个应用可以具有任何适当的类型和/或具有任何适当的用途。例如,应用可以是任何适当的应用,其可能想要再现内容或使得内容被再现,以使得所再现的内容可以显示给一个或多个用户。这样的应用的非限制性例子包括视频游戏应用、文本处理应用、以及内容浏览应用(例如,互联网浏览软件、书本阅读软件、照片组织软件等等)。
在一些实施例中,应用可能希望再现可包括一个或多个内容层的内容。每个内容层可包括一个或多个图元,且在一些实例中,一个或多个图元可以出现多次。例如,图元可以在一个内容层中出现多次。作为另一个例子,图元可以在一个以上的内容层中至少出现一次。作为具体的非限制性例子,诸如方框或图标那样的图元可以在网页上出现多次。
在一些实施例中,希望再现内容的应用可以发出使得内容被再现的一个或多个命令。应用可以以任何适当的方式发出命令。例如,命令可以通过设置一个或多个参数和/或通过调用一个或多个函数而被发出。作为具体的例子,命令可以通过使用诸如图形库那样的应用编程接口(API)而被发出。然而,应当认识到,命令可以以在本领域已知的任何其它适当的方式被发出。
由应用发出的命令可以是任何适当的命令,且可以为了任何适当的理由而被发出。例如,应用可以发出一个或多个命令来指示什么内容可以被再现。作为另一个例子,应用可以发出一个或多个命令来指示该内容何时可以被再现。作为再一个例子,应用可以发出一个或多个命令来指示该内容可以被再现的方式。在这种情形下,命令可以影响内容层可以被再现的方式,且例如可以影响内容层的一些部分可通过使用基于图块的再现来进行再现的次序。作为具体的非限制性例子,命令可以提供指示:对应于一个图块的内容层的一些部分可以在与另一个图块相关联的内容层的一些部分可以再现之前被再现。
在一些实施例中,应用可以发出一个或多个命令以便施加效果或使得效果施加到所再现的内容。效果可以是任何适当的视觉效果以及可以是诸如透明那样的效果,其中第一“上面的”层可被呈现为部分透明的,这样使得第二“下面的”层的一些部分可以透过第一层显现出来。效果也可以是诸如裁剪那样的效果,其中多个层可以被裁剪在一起,以使得这些层的一些部分一起显现在屏幕上。然而,应当意识到,这些例子仅仅是说明性的,且可以使用在本领域已知的、其它许多视觉效果中的任何视觉效果。任何这样的效果可被施加到内容中的一个或多个图元上,和/或在内容可包括多个层时的情形下施加到一个或多个层上。
在一些实施例中,应用可以发出一个或多个命令来影响在计算设备102中的专用硬件可被使用来再现内容的方式。例如,应用可以发出一个或多个命令来影响GPU可被使用来再现内容的方式,以及可以发出一个或多个命令来影响GPU可被使用于基于图块的内容再现的方式。例如,应用可以发出一个或多个命令来向GPU通知与再现内容相关联的某些操作可被执行的次序。在一些实例中,应用可以通知GPU:该GPU可以利用“图块-然后-层”的办法来进行再现。在其它实例中,应用可以通知GPU:该GPU可以利用“层-然后-图块”的办法来进行再现。
应用可以以任何适当的方式做出关于可以使用上述的哪种办法来进行基于图块的再现的决定。例如,这样的决定可以根据一个或多个预先编程的准则被动态地做出,且例如可以是至少部分地基于要被再现的内容。作为具体的例子,如果在一个图块中要被再现的内容可以不依赖于在任何其它图块中再现的内容,则应用可以决定该GPU可以利用“图块-然后-层”的办法。
在计算设备102内执行的软件构件的另一个例子是操作系统230。操作系统230可以是任何适当的操作系统,且可以支持为操作系统230编写的许多应用中的任何应用(例如,应用220)。
操作系统230可包括一个或多个图形库,其可被使用于执行与内容再现相关联的操作。例如,操作系统230可包括图形库232。图形库232可包括应用编程接口,其可以被一个或多个应用(例如,应用220)访问,以便发出用于再现内容的一个或多个命令。这样的图形库的非限制性例子包括Direct2D、Direct3D和OpenGL图形库。
诸如图形库232那样的图形库可以与硬件(例如,CPU、GPU、视频卡等等)相接口,以便执行由应用或操作系统发出的、与再现内容相关联的任何命令。为此,图形库232可以把命令和/或参数234提供到一个或多个设备驱动器,以便与硬件相接口。
因此,操作系统230可包括可被使用来与任何适当的硬件相接口的一个或多个设备驱动器。例如,操作系统230可包括可被使用来与诸如GPU 110那样的GPU相接口的GPU设备驱动器236。GPU设备驱动器236可被使用来以许多方式中的任何一种与GPU相接口。例如,设备驱动器236可被使用来发送数据到GPU,发送命令到GPU,和/或接收来自GPU的数据。另外地或替换地,操作系统230可包括任何适当数量的驱动器,用于与作为计算设备102的一部分或通信地连接到计算设备102的任何适当的硬件构件(举例而言,诸如参照图1描述的显示器106那样的显示器)相接口。
在一些实施例中,GPU设备驱动器236可以便于发送数据到GPU,作为用于再现内容的过程的一部分。设备驱动器236可以便于发送任何适当的数据,作为用于再现内容的过程的一部分,且例如可以便于发送与要被再现的内容相关联的任何数据。
在一些实施例中,作为用于再现内容的过程的一部分,GPU设备驱动器236可以把一个或多个命令和/或参数238发送到GPU 110和/或执行再现过程的一些方面的任何其它适当的硬件。命令(和/或参数)可以具有任何适当的类型,且例如可以是配置GPU 去执行基于图块的再现的命令和/或参数。例如,命令和/或参数238可以配置GPU去执行使用特定尺寸的图块的基于图块的再现。作为另一个例子,命令和/或参数238可以配置GPU来通过使用如以上在前面描述的“层-在图块之前”的办法或“图块-在层之前”的办法之一而执行包括多个层的内容的基于图块的再现。
诸如参照图1和2描述的计算设备102那样的计算设备可被配置来再现内容。一个这样的过程是参照图3描述的,图3是用于再现包括至少两个层的内容的说明性过程300的流程图。过程300的至少一部分动作可以由诸如GPU或CPU那样的处理器执行。
过程300从动作302开始,在其中,可以得到要被再现的内容。内容可以是任何适当的内容,且例如可包括一个或多个内容层。每个内容层可包括任何适当类型的内容,以及可包括先前描述的任何类型的内容。具体地,每个内容层可包括一个或多个图元。
要被再现的内容可以以任何适当的方式得到。在一些实施例中,要被再现的内容可以从被配置来执行过程300的计算设备的一个或多个软件构件被接收。例如,要被再现的内容可以从参照图2描述的任一软件构件被接收。作为具体的例子,要被再现的内容可以从可能想要再现内容并可能已发出一个或多个命令以再现内容的软件应用被接收。
不管要被再现的内容在动作302可以如何得到,过程300进到判决块304,在该判决块中,可以决定:内容是可以通过使用其中可使用中间情景刷新的“层-然后-图块”的办法,还是通过使用其中不可使用中间情景刷新的“图块-然后-层”的办法而被再现。换句话说,在判决块304中可以决定:在再现对应于图块A的该内容的至少一部分后,对应于其它图块的内容是否可以在对与对应于图块A的内容相关联的像素值的至少一个操作可被执行之前被再现。这样,在判决块304中可以决定:是按命令被生成的次序来处理与再现相关联的命令,还是以不同的次序处理它们,使得命令按组被处理,每组涉及到再现对应于特定图块的内容。
这个决定可以以任何适当的方式做出。例如,该决定可以通过接收指示而被做出,该指示可以表明可使用以上两种内容再现办法中的哪种办法。该指示可以是任何适当类型的指示,且例如可包括其值可以表明以上两种内容再现办法中的哪种办法可以被使用的参数。因此,接收所述指示可包括接收这样的参数。作为例子,这样的参数可以表明何时避免执行中间情景刷新是安全的,诸如当与图块相关联的合成图像中的像素值仅仅依赖于被组合以形成该合成图像的图像层中对应图块的内容时,由此,可以使用图块-然后-层的办法来进行再现。在这种情形下,决定是否可以在对应于任何其它图块的内容可以被再现之前对与对应于图块A的内容相关联的像素值执行至少一个操作,可包括接收首先执行对于所述一个或多个像素值的至少一个操作的指示。
在一些实施例中,可以决定:可以使用“层-然后-图块”的办法。这可以在许多情景的任何情景下发生。例如,应用可被配置来再现包括多个层的内容,这样使得再现一个层可能需要读取与在另一个先前再现的层中的任意位置相关联的像素值。在这种情形下,再现所述一个层可能需要另外的层的所有图块都已被再现。作为具体的例子,这种情形可以在把空间模糊效果施加到正在被再现的内容时发生。相反,当再现一个层的像素可能需要来自另外的层的、处于该层中与所述像素相同位置中的像素值时,可以决定:采取“图块-然后-层”的办法。
如果在判决块304决定:可以使用“层-然后-图块”的办法,以使得可以使用中间情景刷新,则过程300进到动作306,在其中,可以再现内容层。内容层可以以任何适当的方式被再现。例如,再现内容层可包括从内容层计算一个或多个像素值。在某些情形下,所计算的像素值可被存储在图像平面中。在某些实例中,内容层可以通过使用基于图块的再现而被再现,这样,内容层可以在每个图块的基础上被计算,以使得像素值可以按与对应于图块的内容相关联的组来被计算。在这种情形下,内容层可以通过处理对应于多个图块的内容而被再现。
在动作306,在每个图块的基础上再现内容层可包括使用通信地耦合到处理器(例如,GPU或CPU)的快速存储器。例如,再现对应于图块的内容(或对应于图块的内容的至少一部分)可包括使用芯片级存储器112(图1)。快速存储器可以以任何适当的方式被使用,且例如可被使用来存储从对应于图块的内容层内容计算出的一个或多个像素值。
应当意识到,再现对应于图块的该内容层的至少一部分可包括盖写被存储在芯片级存储器112中的一个或多个像素值,因为芯片级存储器可能并未大到足以存储与整个内容层相关联的像素值。结果,再现内容层可包括把与每个图块相关联的像素值从快速存储器拷贝到另一个较大的、潜在地较慢的存储器(例如,存储器120、图像平面122等),以使得同一个内容层的另一个图块可以被再现,而不会丢失先前计算的像素值。然而,应当认识到,可以使用具有足够容量的任何存储器来存储与内容层相关联的一个或多个像素。因此,在动作306结束时,从第一内容层计算出的像素值可被存储在存储器中(例如,存储器120、图像平面122等)。
在快速存储器(例如,芯片级存储器112)与较大的存储器之间拷贝像素值可以是由GPU和/或控制GPU的软件(例如,GPU设备驱动器236)自动执行的操作,且这样可被称为“隐式”拷贝,因为应用可以不需要明显地指令GPU和/或控制GPU的软件来执行它。如前所述,在芯片级存储器与另一个潜在地较慢的存储器之间执行多次隐式拷贝可以导致高速缓存颠簸。
在第一内容层在动作308中被再现后,过程300进到动作308,在其中,可以拷贝被存储在图像平面上的数据。被存储在图像平面上的数据可以是任何适当的数据,且例如可包括一个或多个像素值。作为具体的例子,数据可包括在动作306从第一内容层计算出来并被存储在图像平面上的一个或多个像素值。任何适当部分的数据可被拷贝。在一些实施例中,可以拷贝被存储在图像平面上的所有数据,而在其它实施例中,可以拷贝被存储在图像平面上的一部分的数据。
在动作308可以为了任何适当的理由拷贝数据。在一些实施例中,数据可以由于表明数据应当被拷贝的指示(例如,命令、函数调用、参数等等)而被拷贝。在这种情形下,拷贝被称为显式拷贝。这样的指示可以从任何适当的源被提供,且例如可以由计算设备的软件构件(例如,参照图2描述的任何的软件构件)来提供。
不管数据的什么部分可被拷贝,数据可被拷贝到任何适当的目的地。例如,数据可被拷贝到可能具有足够的容量来存储数据的拷贝的任何存储器区域。这样的存储器区域可以是任何适当的存储器的区域。例如,存储器区域可以是通信地耦合到处理器(例如,CPU或GPU)的任何存储器——诸如参照图1描述的存储器120——的区域。因此,在一些实施例中,数据可以从存储器120的一个区域(例如,图像平面122)被拷贝到存储器120的另一个区域。
在一些实施例中,数据的显式拷贝,诸如在动作308执行的拷贝,可以被执行来创建用于任何适当的随后使用的数据的拷贝。例如,所拷贝的数据可被用作为合成操作的一部分和/或对所再现的内容施加效果。作为具体的例子,所拷贝的数据可被用作为在动作306从第一内容层计算出的像素值与在动作310从第二内容层计算出的像素值之间的混合操作的一部分,正如下面描述的。在这种情形下,当第二层正在被再现时,部分的被拷贝的数据可被带入快速存储器。
接着,过程300进到动作310,在其中,可以再现内容的另一个层。内容的另外的层可以以任何适当的方式被再现,且例如可以一次一个图块地以类似于第一层被再现方式的方式被再现。这样,再现另外的内容层可包括使用快速存储器和执行一个或多个隐式拷贝操作。还应当意识到,再现另外的层可包括盖写可被存储在图像平面中的一个或多个像素值。例如,再现第二层可包括在再现第一内容层的同时,盖写在动作306中计算的一个或多个像素值。事实上,这种盖写所存储的像素值的可能性可以激发在动作308中像素值的拷贝。这样,所拷贝的像素值可被检索,并被使用于再现内容。
在一些实施例中,作为动作310的一部分,可以对于被存储在快速存储器和/或较大存储器(例如,存储器120)中的数据执行一个或多个操作。操作可以是任何适当的操作,以及可以对于被存储在快速存储器和/或较大存储器中的一个或多个像素值执行。在一些实施例中,操作可牵涉到使用在快速存储器和/或较大存储器中的一个或多个像素来计算一个或多个新的像素值。在一些情形下,操作可牵涉到使用被存储在快速存储器中的一个或多个像素和在动作306被拷贝的数据(例如,先前被存储在图像平面上的一个或多个像素值)来计算一个或多个新的像素值。
在一些实施例中,操作可被执行作为对至少该内容的一部分施加效果的一部分。效果可以是许多类型的效果中的任何效果,且例如可以是诸如透明、裁剪等等那样的效果。作为具体的例子,可以通过用从第二内容层计算的一个或多个像素值和在动作308从图像平面拷贝的一个或多个先前计算的像素值来计算一个或多个新的像素值,而执行操作以达到混合效果,诸如透明或裁剪效果。然而,应当认识到,这些效果仅仅是说明性的,以及操作可被执行为对至少该内容的一部分施加任何其它适当效果的一部分。在第二内容层被再现以及一个或多个操作在动作310被执行后,过程300完成。
应当认识到,在动作306-310中,对于被再现的内容的每个图块可以执行多次隐式拷贝。具体地,可以对于被再现的内容层的每个图块执行隐式拷贝。正如下面讨论的,在图块-然后-层的办法中,隐式拷贝的数量可以减小,因为对于内容的每个图块隐式拷贝可以执行一次。
回想起在判决块304中,还可以决定:“图块-然后-层”的办法可以作为过程300的一部分被使用,这样使得另外的层可被再现,而不使用中间情景刷新。换句话说,在判决块304中可以决定:在再现对应于图块A的内容的至少一部分后,可以在对应于不同于图块A的图块的该内容的至少另一部分可被再现之前,对与对应于图块A的内容相关联的像素值执行至少一个操作。
在这种情形下,过程300进到动作316,在其中,可以再现对应于图块的第一内容层的至少一部分。对应于该图块的该内容层的任何适当部分可以被再现。对应于该图块的该内容层的那部分可以以任何适当的方式被再现。例如,再现该内容层的那部分可包括通过使用处理器的快速的芯片级存储器从该内容层的那部分计算出一个或多个像素值。
不管第一内容层的该部分可以如何被再现,过程300进到动作318,在其中,可以拷贝被存储在快速存储器中的数据(其中该部分被再现)。被存储在快速存储器中的数据可以是任何适当的数据,且例如可包括在动作316计算出的一个或多个像素值。作为具体的例子,数据可包括在动作316作为再现内容层的该部分的一部分而计算出的一个或多个像素值。被存储在快速存储器中的数据的任何适当的部分可被拷贝。
不管数据的什么部分可以被拷贝,数据可以被拷贝到任何适当的目的地。例如,数据可被拷贝到可能具有足够容量来存储数据的拷贝的任何存储器区域。这样的存储器区域可以是任何适当的存储器的区域。例如,存储器区域可以是被通信地耦合到处理器(例如,CPU或GPU)的任何存储器——诸如参照图1描述的存储器120——的区域。
在动作318可以为了任何适当的理由拷贝数据。在一些实施例中,数据可以由于表明数据应当被拷贝的指示(例如,命令、函数调用、参数等等)而被拷贝。这样的指示可以从包括参照动作308描述的源在内的任何适当的源被提供。因此,在动作318执行的拷贝可以是显式拷贝。
在一些实施例中,在动作318执行的拷贝可以被执行来创建用于任何适当的随后使用的拷贝。例如,所拷贝的数据可被用作为合成操作的一部分和/或对所再现的内容施加效果。作为具体的例子,所拷贝的数据可被用作为在动作316从第一内容层计算出的像素值与在动作320从第二内容层计算出的像素值之间的混合操作的一部分,正如下面描述的。在这种情形下,当第二层正在被再现时,部分的被拷贝数据可被带入快速存储器。
接着,过程300进到动作320,在其中,对应于同一个图块的第二内容层的至少一部分可被再现。第二层的该部分可以以任何适当的方式被再现,例如,可以以和该部分第一层被再现的相同的方式被再现。如前所述,再现图块中的第二层的一部分可包括盖写可被存储在快速的芯片级存储器中的一个或多个像素值。例如,再现第二层的该部分可包括在再现第一内容层的该部分的同时,盖写在动作316中计算的一个或多个像素值。
接着,过程300进到动作322,在其中,可以对于像素值执行一个或多个操作。操作可以是任何适当的操作。在一些实施例中,可以对于被存储在快速的芯片级存储器中的一个或多个像素执行操作。在一些实施例中,操作可牵涉到使用被存储在较慢的存储器(例如存储器120)中的一个或多个像素来计算一个或多个新的像素值。在一些情形中,操作可牵涉到使用被存储在快速的芯片级存储器中的一个或多个像素和在动作318被拷贝的数据(例如,从第一层的一部分计算出的一个或多个像素值)来计算一个或多个新的像素值。另外地或替换地,操作可牵涉到保存该图块中的一个或多个新的像素值。
如前所述,在一些实施例中,一个或多个操作可被执行,作为对于至少内容的一部分施加效果的部分。效果可以是许多类型的效果中的任何效果,且例如可以是诸如透明、裁剪等等那样的效果。作为具体的例子,可以通过从被存储在快速的芯片级存储器中的一个或多个像素值和在动作318从快速的芯片级存储器被拷贝的一个或多个像素值来计算一个或多个新的像素值,而执行操作以达到混合效果,诸如透明或裁剪效果。
在动作322执行一个或多个操作后,过程300进到动作323,在其中,可以执行隐式拷贝,以使得被存储在快速存储器(例如,GPU 芯片级存储器112)中的任何数据可被拷贝到另一个存储器(例如,存储器120)。接着,过程300进行到判决块324,在该判决块,可以决定是否有可被再现的内容的更多图块。这个决定可以以任何适当的方式做出,且例如可以通过检查是否已相对于内容的每个部分执行动作316-323而被做出。作为另一个例子,该决定可以通过检查是否已相对于在可以存储从内容得到的像素值的图像平面中的每个图块执行动作316-323而被做出,因为可能有这样的情形,使得并非图像平面中的每个图块都可被使用来再现内容(例如,内容也许包含仅仅用于屏幕的一部分的内容)。
如果在判决块324决定有可被再现的内容的更多图块,则过程300循环回到动作316,并可以重复进行动作316-323。替换地,如果在判决块324决定不再有可被再现的内容的图块,则过程300完成。
应当认识到,过程300是说明性的,以及过程300的许多变例是可能的。例如,在所例示的实施例中,要被再现的内容包括两个内容层。然而,这并不是对本发明的限制,因为内容可包括任何适当数量的内容层。因此,过程300可被修改为再现任何适当数量的内容层(例如,至少三层、至少四层等等)。这可以以任何适当的方式来完成,且例如可以这样地来完成,即使得作为过程300的一部分,可以再现来自两个以上的内容层(例如,三层、四层等等)的对应于一个图块的内容部分,以及在转移到再现对应于另一个图块的内容之前,可以对与对应于该一个图块的内容相关联的一个或多个像素值执行任何适当的操作(例如,以便施加透明或裁剪效果)。
作为另一个例子,在所例示的实施例中,用来执行层的合成的操作可以通过使用被拷贝和被存储在另一个存储器(例如,存储器120)中的像素值而对于被存储在快速的芯片级存储器中的像素值执行。然而,在另外的实施例中,这样的操作可以通过使用来自芯片级存储器的像素值而对于被存储在另外的存储器中的像素值执行。更一般地,可以对于在任何适当的存储器中的像素执行操作,以便提高再现性能,这样,在“图块-然后-层”的办法中,对与对应于图块的内容相关联的一组像素进行的操作可以在任何存储器中被执行,且例如可以在通信地耦合到GPU的任何的快速存储器中被执行。
为了进一步理解在过程300的两条通路上(即,动作306-310和动作316-323)的差别,图4a-4b图示在每种情形下可以如何再现内容。具体地,图4a显示使用“层-然后-图块”的办法和利用中间情景刷新的说明性过程400。另一方面,图4b显示使用“图块-然后-层”的办法和不利用中间情景刷新的说明性过程420。
如图所示,过程400和420被显示为再现包括两个内容层的内容,每层包括两个图元,这样,每个内容层以两个图块被再现。具体地,在这个非限制性例子中,第一内容层和第二内容层各包括两个图元,每个图元对应于一特定的图块。然而,这并不是对本发明的限制,而是这些过程的每个过程可被使用来再现包括任何适当数量的层的内容,每个内容层包括对应于任何适当数量的图块的任何适当的内容。还应当认识到,虽然在本例中,每个所例示的图元对应于单个图块,但这并不是对本发明的限制,而是一个图元可以对应于任何适当数量的图块,这样使得与多个图块相关联的像素值可被使用来再现该图元。
过程400从动作402-405开始,在这些动作中,可以再现第一内容层。第一内容层可以以任何适当的方式被再现,且例如可以通过使用基于图块的再现而被再现。因此,在动作402,可以再现对应于第一图块的第一内容层的至少一部分,以及在动作404,可以再现对应于第二图块的第一内容层的至少另一部分。应当指出的是,可以分别在跟随于动作402和404之后的动作403和405中执行隐式拷贝,以使得在动作402和404中被计算的像素值可以被存储。在动作403和405,可以把像素值从快速存储器(例如,GPU 芯片级存储器 112)拷贝到图像平面(例如,图像平面122)或任何其它适当的存储器。
接着,过程400进到动作406,在其中,可以拷贝来自图像平面(例如,图像平面122)的数据。所拷贝的数据可以是任何适当的数据,且可包括作为第一内容层的再现的一部分被计算的像素值。数据可被拷贝到任何适当的目的地,且例如可被拷贝到具有足够容量来存储所拷贝的数据的存储器的任何其它区域。在动作406执行的拷贝操作可以是显式拷贝操作。
不管数据可以如何被拷贝或它可以被拷贝到的目的地,过程400进到动作408-412,在这些动作中,可以再现第二内容层。第二层可以以任何适当的方式被再现,且例如可以通过使用基于图块的再现而被再现。因此,在动作408,可以再现对应于第一图块的第二内容层的至少一部分。
接着在动作409,可以对与对应于第一图块的内容相关联的像素执行一个或多个操作。例如,在动作409,可以执行一个或多个操作来施加混合效果。这样的操作可包括用从对应于图块1的第一内容层的该部分计算的像素值(在动作402)和从对应于图块1的第二内容层的该部分计算的像素值(在动作408)来计算新的像素值。在执行一个或多个操作后,可以执行隐式拷贝作为动作409的一部分,这样使得在动作408-409中计算的任何像素值可被存储。
在动作408-409后,在动作410,可以再现对应于第二图块的第二内容层的至少另一部分。接着,在动作412,可以对与对应于第二图块的内容相关联的像素执行一个或多个操作。例如,可以执行一个或多个操作来施加混合效果。这样的操作可包括用从对应于图块2的第一内容层的该部分计算的像素值(在动作404)和从对应于图块2的第二内容层的该部分计算的像素值(在动作410)来计算新的像素值。在执行一个或多个操作后,可以执行隐式拷贝作为动作412的一部分,这样使得在动作410-412中计算的任何像素值可被存储。
还应当意识到,在过程400中,不对与对应于图块1的内容相关联的像素值执行操作,直至在其中至少对应于图块2的第一内容层的另一部分被再现的动作404之后。结果,过程400可被说成是执行中间情景刷新:第一内容层的所有图块在对已经计算的像素值完成任何操作之前被执行。
相反,在过程420中,不执行中间情景刷新。过程420从动作422开始,在该动作中,可以再现对应于第一图块的第一内容层的至少一部分。接着,过程420进到动作424,在其中可以拷贝在第一图块中被存储的数据。正如相对于过程300的动作318所描述的,数据可以是任何适当的数据,以及可包括作为再现第一内容层的至少一部分的一部分而被计算的像素值。数据可以从快速存储器(例如,芯片级存储器 112)被拷贝到图像平面(例如,图像平面122)或任何其它适当的存储器。
不管数据可以如何被拷贝或它可以被拷贝到的目的地,过程420进到动作426,在其中可以再现对应于第一图块的第一内容层的至少另一部分。
接着,过程420进到动作428,在其中可以对与对应于第一图块的内容相关联的像素值执行一个或多个操作。如前所述,这样的操作可以为了任何适当的目的被执行,且例如可被执行来施加混合效果。在这种情形下,可以从在动作424被拷贝的像素值和在动作426被计算的像素值来计算新的像素值。在执行一个或多个操作后,作为动作428的一部分,可以执行隐式拷贝,以使得在动作426-428所计算的任何像素值可以被存储。
在动作428后,过程420进到动作430-436,在这些动作中,第一和第二层的一些部分可以在第二图块中以类似于在动作422-428期间在第一图块中该第一和第二层的一些部分如何被再现的方式被再现。在动作436后,过程420完成。
应当意识到,在过程420中,不再现在第二图块中该内容的部分,直至在对存储于第一图块中的像素值执行一个或多个操作之后。具体地,在第一图块中的两个内容层的一些部分是在第二图块中的任何内容被再现之前再现的。结果,相对于过程400,在过程420中可以有更少的高速缓存颠簸。正如可以看到的,在过程420中仅仅执行两次隐式拷贝(动作428和436),而在过程400中执行四次隐式拷贝(动作403、405、409和412)。
图5图示在其中可以实施本发明的适当的计算系统环境500的例子。计算系统环境500仅仅是适当的计算环境的一个例子,而不打算对本发明的使用或功能性范围提出任何限制。不应当把计算环境500解译为有涉及在示范性操作环境500中图示的任一项部件或部件的组合的任何依赖性或要求。
本发明是用许多其它通用或专用计算系统环境或配置可运行的。可以适合于与本发明一起使用的熟知的计算系统、环境和/或配置的例子包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络PC、小型计算机、大型计算机、包括任何的以上系统或设备的分布式计算环境等等。
计算环境可以执行计算机可执行的指令,诸如程序模块。通常,程序模块包括例行程序、程序、对象、构件、数据结构等等,它们执行特定的任务或实施特定的抽象数据类型。本发明也可以在分布式计算环境中被实践,其中任务由通过通信网被链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储媒体中。
参照图5,用于实施本发明的示范性系统包括具有计算机510的形式的通用计算设备。计算机510的部件可包括,但不限于,处理单元520、系统存储器530和系统总线521,系统总线521把包括系统存储器的各种系统部件耦合到处理单元520。系统总线521可以是几种类型的总线结构的任何一种,包括存储器总线或存储器控制器、外围总线、和使用各种各样总线体系结构中的任何总线体系结构的本地总线。作为例子,而不是限制,这样的体系结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强的ISA(EISA)总线、视频电子标准协会(VESA)本地总线、以及也被称为Mezzanine总线的外围部件互连(PCI)总线。
计算机510典型地包括各种各样的计算机可读媒体。计算机可读媒体可以是可由计算机510访问的任何可用的媒体,且包括易失性和非易失性媒体、可拆卸和非可拆卸媒体。作为例子,而不是限制,计算机可读媒体可包括计算机存储媒体和通信媒体。计算机存储媒体包括以任何方法或技术实施的、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据那样的信息的易失性和非易失性、可拆卸和非可拆卸媒体。计算机存储媒体包括,但不限于,RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储装置、盒式磁带、磁带、磁盘存储装置或其它磁存储设备、或可被使用来存储想要的信息并可以被计算机510访问的任何其它介质。通信媒体典型地将计算机可读指令、数据结构、程序模块或其它数据具体化为诸如载波或其它输送机制那样的调制的数据信号,且包括任何的信息传递媒体。术语“调制的数据信号”是指使得它的特性中的一个或多个以这样的方式设置或改变的信号,即:将信息编码在信号中。作为例子,而不是限制,通信媒体包括有线媒体,诸如有线网或直接连线的连接,以及包括无线媒体,诸如声学、RF、红外和其它无线媒体。以上的任何项的组合也应当被包括在计算机可读媒体的范围内。
系统存储器530包括具有易失性和/或非易失性存储器的形式的计算机存储媒体,诸如只读存储器(ROM)531和随机存取存储器(RAM)532。基本输入/输出系统533(BIOS)——其包含诸如在启动期间帮助在计算机510内的单元之间转送信息的基本例行程序——典型地被存储在ROM 531中。RAM 532典型地包含由处理单元520立即可访问的、和/或当前正在由处理单元520对其操作的数据和/或程序模块。作为例子,而不是限制,图5图示操作系统534、应用程序535、其它程序模块536和程序数据537。
计算机510还可包括其它可拆卸/非可拆卸、易失性/非易失性计算机存储媒体。仅仅作为例子,图5图示了:硬盘驱动机541,其从非可拆卸的、非易失性磁媒体进行读取或向其写入;磁盘驱动机551,其从可拆卸的、非易失性磁盘552进行读取或向其写入;和光盘驱动机555,其从诸如CD ROM或其它光学媒体那样的可拆卸的、非易失性光盘556进行读取或向其写入。在示范性操作环境中可以使用的其它可拆卸/非可拆卸、易失性/非易失性计算机存储媒体包括,但不限于,盒式磁带、闪速存储卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动机541典型地通过诸如接口540那样的非可拆卸存储器接口被连接到系统总线521,以及磁盘驱动机551和光盘驱动机555典型地通过诸如接口550那样的可拆卸存储器接口被连接到系统总线521。
以上讨论的和在图5上图示的驱动机及其相关联的计算机存储媒体为计算机510提供计算机可读指令、数据结构、程序模块和其他数据的存储。在图5上,例如,硬盘驱动机541被图示为存储操作系统544、应用程序545、其它程序模块546和程序数据547。应当指出,这些构件可以是与操作系统534、应用程序535、其它程序模块536和程序数据537相同的或不同的。操作系统544、应用程序545、其它程序模块546和程序数据547在这里被给予不同的标号,以便说明至少它们是不同的拷贝。用户可以通过输入设备把命令和信息输入到计算机510,输入设备诸如是键盘562和通常称为鼠标的指向装置561、跟踪球或触摸板。其它输入设备(未示出)可包括话筒、操纵杆、游戏板、碟形卫星天线、扫描仪等等。这些和其它的输入设备常常通过被耦合到系统总线的用户输入接口560被连接到处理单元520,但它们可以通过诸如并行端口、游戏端口或通用串行总线(USB)那样的其它接口和总线结构被连接。监视器591或其它类型的显示设备也经由诸如视频接口590那样的接口被连接到系统总线521。除了监视器以外,计算机还可以包括其它外围输出设备,诸如扬声器597和打印机596,它们可以通过输出外围接口595被连接。
计算机510可以通过使用与诸如远程计算机580那样的一个或多个远程计算机的逻辑连接而在联网的环境下工作。远程计算机580可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,且典型地包括以上对于计算机510描述的许多或所有的单元,虽然在图5上仅仅图示了一个存储器存储设备581。图5上描绘的逻辑连接包括局域网(LAN)571和广域网(WAN)573,但也可以包括其它网络。这样的联网环境在办公室、企业范围的计算机网、内联网和互联网中是常见现象。
当在LAN联网环境下被使用时,计算机510通过网络接口或适配器570被连接到LAN571。当在WAN联网环境下被使用时,计算机510典型地包括用来在WAN 573上(诸如在互联网上)建立通信的调制解调器572或其他装置。调制解调器572(可以是在内部或在外部)可以经由用户输入接口560或其它适当的机制被连接到系统总线521。在联网环境下,相对于计算机510 描绘的程序模块或它们的一些部分,可被存储在远程存储器存储设备中。作为例子,而不是限制,图5把远程应用程序585图示为驻留在存储器设备581中。应意识到,所显示的网络连接是示范性的,以及可以使用用来建立计算机之间的通信链路的其它手段。
在这样描述了本发明的至少一个实施例的几个方面后,应意识到,各种替换例、修改和改进对于本领域技术人员是很容易想到的。
这样的替换例、修改和改进被规定为本公开内容的一部分,并被规定为是属于本发明的精神和范围内的。而且,虽然指出了本发明的优点,但应当意识到,不是本发明的每个实施例都将包括所描述的每个优点。因此,以上的说明和附图仅仅是作为例子。
上述的本发明的实施例可以以许多方式中的任何方式被实施。例如,实施例可以通过使用硬件、软件或它们的组合被实施。当以软件被实施时,软件代码可以在任何适当的处理器或一系列处理器上被执行,无论这些处理器是在单个计算机中提供的还是被分布在多个计算机之间的。这样的处理器可以被实施为集成电路,在集成电路部件中有一个或多个处理器。然而,处理器可以通过使用具有任何适当格式的电路被实施。
而且,应当意识到,计算机可以以许多形式中的任何形式被体现,诸如机架式计算机、台式计算机、膝上型计算机或平板电脑。另外,计算机可以被嵌入在通常不被看作为计算机、但具有适当的处理能力的设备中,包括个人数字助理(PDA)、智能电话或任何其它适当的便携式或固定的电子设备。
另外,计算机可以具有一个或多个输入和输出设备。这些设备尤其可被使用来呈现用户界面。可被使用来提供用户界面的输出设备的例子包括用于可视地呈现输出的打印机或显示屏,以及用于可听地呈现输出的扬声器或其他声音生成设备。可被使用于用户界面的输入设备的例子包括键盘和指向设备,诸如鼠标、触摸板和数字化输入板。作为另一个例子,计算机可以通过语音识别或以其它可听见的格式接收输入信息。
这样的计算机可以通过具有任何适当形式的一个或多个网络被互连,包括像局域网或广域网,诸如企业网络或互联网。这样的网络可以基于任何适当的技术,以及可以按照任何适当的协议操作,且可包括无线网、有线网或光纤网。
而且,这里概述的各种方法或过程可被编码为在利用各种各样的操作系统或平台中的任何一种的一个或多个处理器上可执行的软件。另外,这样的软件可以通过使用多种适当的编程语言和/或编程或脚本编写工具中的任何一种而被编写,以及也可以被编译为可执行的机器语言代码或在框架或虚拟机上执行的中间代码。
在这方面,本发明可被体现为用一个或多个程序被编码的计算机可读存储介质(或多个计算机可读媒体)(例如,计算机存储器、一个或多个软盘、紧凑盘(CD)、光盘、数字视频盘(DVD)、磁带、闪速存储器、现场可编程门阵列或其它半导体器件中的电路配置、或其它有形的计算机存储介质),当其在一个或多个计算机或其它处理器上被执行时,完成实施以上讨论的本发明的各种实施例的方法。正如从以上的例子很明显的,计算机可读存储介质可以保持信息达足够的时间,以便提供非瞬态形式的计算机可执行指令。这样的计算机可读存储介质或媒体可以是可输送的,这样使得被存储在其上的程序或程序们可被装载到一个或多个不同的计算机或其它处理器以实施如上讨论的本发明的各种方面。当在这里使用时,术语“计算机可读存储介质”仅仅包括可被看作为产品(即,制造品)或机器的计算机可读介质。替换地或另外地,本发明可被体现为不同于计算机可读存储介质的计算机可读介质,诸如传播的信号。
术语“程序”或“软件”在这里被以通常的意义使用来指任何类型的计算机代码或计算机可执行的指令集,它们可被利用来编程计算机或其它处理器以实施如上讨论的本发明的各种方面。另外,应当意识到,按照这个实施例的一方面,在其被执行时完成本发明的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以以模块方式被分布在许多不同的计算机或处理器之间,用来实施本发明的各种方面。
计算机可执行指令可以以诸如程序模块那样的许多形式由一个或多个计算机或其它设备执行。通常,程序模块包括例行程序、程序、对象、构件、数据结构等等,它们执行特定的任务或实施特定的抽象数据类型。典型地,程序模块的功能性可以在各种实施例中按所期望的那样被组合或分布。
另外,数据结构可以以任何适当的形式被存储在计算机可读媒体中。为了简化说明,数据结构可被显示为具有通过在数据结构中的位置而相关的字段。这样的关系同样可以通过为字段指派在计算机可读媒体中具有传达在字段之间的关系的位置的存储装置而达到。然而,任何适当的机制可被使用来建立在数据结构的字段中的信息之间的关系,包括通过使用指针、标签、或用来建立在数据单元之间的关系的其它机制。
本发明的各种方面可以单独地、组合地、或以在上面描述的实施例中没有具体讨论的各种各样的安排被使用,所以,在它的应用方面不限于在以上的说明中阐述的或在附图上图示的部件的细节和安排。例如,在一个实施例中描述的方面可以以任何方式与在其它实施例中描述的方面相组合。
另外,本发明可被体现为方法,其例子已被提供。作为方法的一部分被执行的动作可以以任何适当的方式被排序。因此,可以构建这样的实施例,其中动作以不同于所例示的次序被执行,这可包括同时执行某些动作,即使这些动作在说明性实施例中被显示为顺序的动作。
在权利要求中使用诸如“第一”、“第二”、“第三”等等那样的序数词来修饰权利要求单元,这本身并不意味着一个权利要求单元高于另一个权利要求单元的任何优先级(priority)、优先地位(precedence)或次序,或方法的动作被执行的时间次序,而仅仅被用作为标签,来使具有某个名称的一个权利要求单元区分于具有相同名称(要不是使用序数词的话)的另一个单元,以便区分权利要求单元。
另外,这里使用的措辞和术语是为了用于说明,而不应当看作为限制。在这里“包括”、“包含”或“具有”、“含有”、“牵涉到”及其变体的使用,是指包括在其后列出的项目及其等同物以及附加的项目。
Claims (9)
1.一种用于包括多个内容层的内容的基于图块的再现的方法(300),其中所述内容被组织成至少包括第一图块和第二图块的多个图块,所述方法包括:
通过使用至少一个处理器(110,130)来再现(316)对应于第一图块的该内容的至少第一部分以计算一个或多个像素值;以及
接收(304)关于首先要执行以下动作中的哪个动作的指示(238):
对于所述一个或多个像素值执行至少一个操作(322),其中所述至少一个操作包括用于合成多个层中的至少两个层的操作,或
再现(316)对应于第二图块的该内容的至少第二部分;以及
如果所述指示(238)表明:所述至少一个操作要首先执行,则:
对于所述一个或多个像素值执行所述至少一个操作(322),以及
在执行所述至少一个操作后,再现(316)对应于第二图块的该内容的第二部分。
2.根据权利要求1所述的方法,其中对于所述一个或多个像素值执行所述至少一个操作(322)包括:
使用所述一个或多个像素值来计算一个或多个新的像素值。
3.根据权利要求1所述的方法,其中执行所述至少一个操作(322)包括:
执行所述至少一个操作(322),作为对该内容的第一部分施加透明效果和/或剪辑效果的一部分。
4.根据权利要求1所述的方法,其中所述至少一个处理器是图形处理单元(110)。
5.一种用于再现包括多个内容层的内容的系统(102),其中所述内容被组织成包括第一图块和第二图块的多个图块,所述系统包括:
图形处理单元(110),其中该图形处理单元(110)被配置成:
再现(316)对应于第一图块的该内容的至少第一部分,以产生一个或多个像素值;
接收(304)关于首先要执行以下动作中的哪个动作的指示(238):
对于所述一个或多个像素值执行至少一个操作(322),其中所述至少一个操作包括用于合成多个层中的至少两个层的操作,或
再现(316)对应于第二图块的该内容的至少第二部分;以及
如果所述指示(238)表明:所述至少一个操作要首先执行,则图形处理单元 (110)被配置成:
对于所述一个或多个像素值执行所述至少一个操作(322),以及
在执行所述至少一个操作后,再现(316)对应于第二图块的该内容的第二部分。
6.根据权利要求5所述的系统,其中该内容的至少第一部分包括第一内容层和第二内容层,所述一个或多个像素值包括第一组像素值和第二组像素值,以及图形处理单元(110)还被配置成通过以下方式来再现对应于第一图块的该内容的至少第一部分:
再现(316)对应于第一图块的第一内容层的至少一部分,以便计算第一组像素值;
响应于再现所述第一内容层的至少一部分,把第一组像素值拷贝(318)到另一个存储器区域(120);以及
响应于所述拷贝,再现(320)对应于第一图块的第二内容层的至少一部分,以便计算第二组像素值。
7.根据权利要求6所述的系统,其中所述另一个存储器区域不是图形处理单元(110)板载的。
8.根据权利要求6所述的系统,其中对于所述一个或多个像素值执行所述至少一个操作(322)包括使用所述第一组像素值和所述第二组像素值来得到一个或多个新的像素值。
9.根据权利要求5所述的系统,其中接收(304)所述指示(238)包括:
通过与图形处理例行程序(232)的接口,接收(304)所述指示(238),以及
所述指示(238)包括其值指示首先对于所述一个或多个像素值执行所述至少一个操作的参数(238)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/230436 | 2011-09-12 | ||
US13/230,436 | 2011-09-12 | ||
US13/230,436 US9342322B2 (en) | 2011-09-12 | 2011-09-12 | System and method for layering using tile-based renderers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102937892A CN102937892A (zh) | 2013-02-20 |
CN102937892B true CN102937892B (zh) | 2016-08-24 |
Family
ID=47696791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210335776.XA Active CN102937892B (zh) | 2011-09-12 | 2012-09-12 | 用于使用基于图块的再现器分层的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9342322B2 (zh) |
EP (1) | EP2756481B1 (zh) |
JP (1) | JP6062438B2 (zh) |
KR (1) | KR101952983B1 (zh) |
CN (1) | CN102937892B (zh) |
WO (1) | WO2013039812A2 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013057889A (ja) * | 2011-09-09 | 2013-03-28 | Toshiba Corp | 画像処理装置及びカメラモジュール |
US8982134B2 (en) * | 2012-03-12 | 2015-03-17 | Advanced Micro Devices, Inc. | Area-based dependency chain analysis of shaders and command stream |
US9449410B2 (en) | 2013-04-11 | 2016-09-20 | Qualcomm Incorporated | Intra-frame timestamps for tile-based rendering |
US9805478B2 (en) | 2013-08-14 | 2017-10-31 | Arm Limited | Compositing plural layer of image data for display |
GB2517185B (en) * | 2013-08-14 | 2020-03-04 | Advanced Risc Mach Ltd | Graphics tile compositing control |
KR101663023B1 (ko) * | 2015-04-23 | 2016-10-06 | (주)넥셀 | 그래픽 처리 장치 및 방법 |
CN105511825B (zh) * | 2015-12-01 | 2018-12-28 | 上海兆芯集成电路有限公司 | 显示图层的方法及装置 |
CN107292945B (zh) * | 2016-03-31 | 2021-01-26 | 阿里巴巴集团控股有限公司 | 视频图像的图层渲染处理方法及其系统 |
KR102637736B1 (ko) | 2017-01-04 | 2024-02-19 | 삼성전자주식회사 | 그래픽스 처리 방법 및 시스템 |
US11379577B2 (en) | 2019-09-26 | 2022-07-05 | Microsoft Technology Licensing, Llc | Uniform resource locator security analysis using malice patterns |
US11509667B2 (en) | 2019-10-19 | 2022-11-22 | Microsoft Technology Licensing, Llc | Predictive internet resource reputation assessment |
US11431751B2 (en) | 2020-03-31 | 2022-08-30 | Microsoft Technology Licensing, Llc | Live forensic browsing of URLs |
CN113052928B (zh) * | 2021-03-08 | 2024-07-19 | 贝壳找房(北京)科技有限公司 | 图像处理方法及图像处理系统 |
CN113763286A (zh) * | 2021-09-27 | 2021-12-07 | 北京市商汤科技开发有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN114332324B (zh) * | 2021-12-27 | 2024-10-01 | 北京字节跳动网络技术有限公司 | 图像处理方法、装置、设备及介质 |
US20230334737A1 (en) * | 2022-04-13 | 2023-10-19 | Adobe Inc. | Partial depth ordering with vector interlacing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825353A (zh) * | 2005-02-25 | 2006-08-30 | 微软公司 | 硬件加速混合模式 |
US7170515B1 (en) * | 1997-11-25 | 2007-01-30 | Nvidia Corporation | Rendering pipeline |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5321750A (en) | 1989-02-07 | 1994-06-14 | Market Data Corporation | Restricted information distribution system apparatus and methods |
US5339392A (en) | 1989-07-27 | 1994-08-16 | Risberg Jeffrey S | Apparatus and method for creation of a user definable video displayed document showing changes in real time data |
US5297032A (en) | 1991-02-01 | 1994-03-22 | Merrill Lynch, Pierce, Fenner & Smith Incorporated | Securities trading workstation |
US5388206A (en) | 1992-11-13 | 1995-02-07 | The University Of North Carolina | Architecture and apparatus for image generation |
CA2124624C (en) | 1993-07-21 | 1999-07-13 | Eric A. Bier | User interface having click-through tools that can be composed with other tools |
US5581670A (en) | 1993-07-21 | 1996-12-03 | Xerox Corporation | User interface having movable sheet with click-through tools |
US5819284A (en) | 1995-03-24 | 1998-10-06 | At&T Corp. | Personalized real time information display as a portion of a screen saver |
US5867166A (en) | 1995-08-04 | 1999-02-02 | Microsoft Corporation | Method and system for generating images using Gsprites |
US5883627A (en) | 1996-09-25 | 1999-03-16 | Microsoft Corporation | Advanced graphics controls |
US6216141B1 (en) | 1996-12-06 | 2001-04-10 | Microsoft Corporation | System and method for integrating a document into a desktop window on a client computer |
US5959621A (en) | 1996-12-06 | 1999-09-28 | Microsoft Corporation | System and method for displaying data items in a ticker display pane on a client computer |
US5870098A (en) | 1997-02-26 | 1999-02-09 | Evans & Sutherland Computer Corporation | Method for rendering shadows on a graphical display |
US6031529A (en) | 1997-04-11 | 2000-02-29 | Avid Technology Inc. | Graphics design software user interface |
US6219058B1 (en) * | 1997-09-08 | 2001-04-17 | Intel Corporation | Bin-per-span based representation and communication of graphical data |
WO1999026127A1 (en) | 1997-11-14 | 1999-05-27 | Avesta Technologies, Inc. | System and method for displaying multiple sources of data in near real-time |
US6449638B1 (en) | 1998-01-07 | 2002-09-10 | Microsoft Corporation | Channel definition architecture extension |
US6311058B1 (en) | 1998-06-30 | 2001-10-30 | Microsoft Corporation | System for delivering data content over a low bit rate transmission channel |
US6278448B1 (en) | 1998-02-17 | 2001-08-21 | Microsoft Corporation | Composite Web page built from any web content |
US6570578B1 (en) | 1998-04-03 | 2003-05-27 | Avid Technology, Inc. | System for automatic generation of selective partial renderings of complex scenes |
US6646639B1 (en) | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
US6832355B1 (en) | 1998-07-28 | 2004-12-14 | Microsoft Corporation | Web page display system |
US6771264B1 (en) | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
US6188405B1 (en) | 1998-09-14 | 2001-02-13 | Microsoft Corporation | Methods, apparatus and data structures for providing a user interface, which exploits spatial memory, to objects |
US6510553B1 (en) | 1998-10-26 | 2003-01-21 | Intel Corporation | Method of streaming video from multiple sources over a network |
US6369830B1 (en) | 1999-05-10 | 2002-04-09 | Apple Computer, Inc. | Rendering translucent layers in a display system |
US6792615B1 (en) | 1999-05-19 | 2004-09-14 | New Horizons Telecasting, Inc. | Encapsulated, streaming media automation and distribution system |
US6456334B1 (en) | 1999-06-29 | 2002-09-24 | Ati International Srl | Method and apparatus for displaying video in a data processing system |
US6976210B1 (en) | 1999-08-31 | 2005-12-13 | Lucent Technologies Inc. | Method and apparatus for web-site-independent personalization from multiple sites having user-determined extraction functionality |
US6657635B1 (en) * | 1999-09-03 | 2003-12-02 | Nvidia Corporation | Binning flush in graphics data processing |
US7987431B2 (en) | 1999-10-29 | 2011-07-26 | Surfcast, Inc. | System and method for simultaneous display of multiple information sources |
US7028264B2 (en) | 1999-10-29 | 2006-04-11 | Surfcast, Inc. | System and method for simultaneous display of multiple information sources |
US6724403B1 (en) | 1999-10-29 | 2004-04-20 | Surfcast, Inc. | System and method for simultaneous display of multiple information sources |
US6697825B1 (en) | 1999-11-05 | 2004-02-24 | Decentrix Inc. | Method and apparatus for generating and modifying multiple instances of element of a web site |
US6819321B1 (en) | 2000-03-31 | 2004-11-16 | Intel Corporation | Method and apparatus for processing 2D operations in a tiled graphics architecture |
US7071937B1 (en) | 2000-05-30 | 2006-07-04 | Ccvg, Inc. | Dirt map method and apparatus for graphic display system |
US6734873B1 (en) | 2000-07-21 | 2004-05-11 | Viewpoint Corporation | Method and system for displaying a composited image |
US20040039934A1 (en) | 2000-12-19 | 2004-02-26 | Land Michael Z. | System and method for multimedia authoring and playback |
US6639594B2 (en) | 2001-06-03 | 2003-10-28 | Microsoft Corporation | View-dependent image synthesis |
US6919891B2 (en) | 2001-10-18 | 2005-07-19 | Microsoft Corporation | Generic parameterization for a scene graph |
US6717584B2 (en) | 2001-11-06 | 2004-04-06 | General Motors Corporation | Method and system for visualizing paint on a computer-generated object |
US20030197716A1 (en) | 2002-04-23 | 2003-10-23 | Krueger Richard C. | Layered image compositing system for user interfaces |
US20040015610A1 (en) | 2002-07-18 | 2004-01-22 | Sytex, Inc. | Methodology and components for client/server messaging system |
US20040075699A1 (en) | 2002-10-04 | 2004-04-22 | Creo Inc. | Method and apparatus for highlighting graphical objects |
US7106343B1 (en) | 2003-04-08 | 2006-09-12 | Carter Hickman | Method and process for virtual paint application |
US20050132305A1 (en) | 2003-12-12 | 2005-06-16 | Guichard Robert D. | Electronic information access systems, methods for creation and related commercial models |
US7403209B2 (en) | 2004-03-24 | 2008-07-22 | Canon Kabushiki Kaisha | Rendering images containing video |
US7145562B2 (en) | 2004-05-03 | 2006-12-05 | Microsoft Corporation | Integration of three dimensional scene hierarchy into two dimensional compositing system |
JP2006094297A (ja) | 2004-09-27 | 2006-04-06 | Fuji Xerox Co Ltd | 画像形成装置、画像処理装置、画像処理方法及びそのプログラム |
US7474314B2 (en) | 2005-01-10 | 2009-01-06 | Columbia Insurance Company | Method for representing true colors with device-dependent colors on surfaces and for producing paints and coatings matching the true colors |
US7551182B2 (en) * | 2005-01-18 | 2009-06-23 | Oculus Info Inc. | System and method for processing map data |
US8819569B2 (en) | 2005-02-18 | 2014-08-26 | Zumobi, Inc | Single-handed approach for navigation of application tiles using panning and zooming |
US7535480B2 (en) | 2005-08-24 | 2009-05-19 | Microsoft Corporation | Compositing rendering layers |
US7933632B2 (en) | 2005-09-16 | 2011-04-26 | Microsoft Corporation | Tile space user interface for mobile devices |
GB0524804D0 (en) * | 2005-12-05 | 2006-01-11 | Falanx Microsystems As | Method of and apparatus for processing graphics |
US7474313B1 (en) * | 2005-12-14 | 2009-01-06 | Nvidia Corporation | Apparatus, method, and system for coalesced Z data and color data for raster operations |
US8130226B2 (en) | 2006-08-04 | 2012-03-06 | Apple Inc. | Framework for graphics animation and compositing operations |
ITMI20070038A1 (it) | 2007-01-12 | 2008-07-13 | St Microelectronics Srl | Dispositivo di renderizzazione per grafica a tre dimensioni con architettura di tipo sort-middle. |
ITMI20082342A1 (it) | 2008-12-30 | 2010-06-30 | St Microelectronics Srl | Modulo di renderizzazione per grafica a due dimensioni, preferibilmente basato su primitive di tipo bordo attivo |
KR20100132605A (ko) * | 2009-06-10 | 2010-12-20 | 삼성전자주식회사 | 하이브리드 렌더링 장치 및 방법 |
US8587581B2 (en) | 2009-10-15 | 2013-11-19 | Nvidia Corporation | Order-preserving distributed rasterizer |
KR101609266B1 (ko) | 2009-10-20 | 2016-04-21 | 삼성전자주식회사 | 타일 기반의 랜더링 장치 및 방법 |
US8589815B2 (en) | 2010-03-10 | 2013-11-19 | Microsoft Corporation | Control of timing for animations in dynamic icons |
US8339409B2 (en) * | 2011-02-16 | 2012-12-25 | Arm Limited | Tile-based graphics system and method of operation of such a system |
-
2011
- 2011-09-12 US US13/230,436 patent/US9342322B2/en active Active
-
2012
- 2012-09-10 KR KR1020147006551A patent/KR101952983B1/ko active IP Right Grant
- 2012-09-10 EP EP12832434.0A patent/EP2756481B1/en active Active
- 2012-09-10 JP JP2014529934A patent/JP6062438B2/ja active Active
- 2012-09-10 WO PCT/US2012/054386 patent/WO2013039812A2/en active Application Filing
- 2012-09-12 CN CN201210335776.XA patent/CN102937892B/zh active Active
-
2016
- 2016-05-13 US US15/154,912 patent/US9715750B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7170515B1 (en) * | 1997-11-25 | 2007-01-30 | Nvidia Corporation | Rendering pipeline |
CN1825353A (zh) * | 2005-02-25 | 2006-08-30 | 微软公司 | 硬件加速混合模式 |
Also Published As
Publication number | Publication date |
---|---|
JP6062438B2 (ja) | 2017-01-18 |
KR20140060307A (ko) | 2014-05-19 |
EP2756481A4 (en) | 2015-04-15 |
WO2013039812A2 (en) | 2013-03-21 |
US20130063473A1 (en) | 2013-03-14 |
EP2756481A2 (en) | 2014-07-23 |
US9342322B2 (en) | 2016-05-17 |
WO2013039812A3 (en) | 2013-05-10 |
EP2756481B1 (en) | 2019-12-18 |
CN102937892A (zh) | 2013-02-20 |
KR101952983B1 (ko) | 2019-02-27 |
JP2014530403A (ja) | 2014-11-17 |
US20170061662A1 (en) | 2017-03-02 |
US9715750B2 (en) | 2017-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102937892B (zh) | 用于使用基于图块的再现器分层的系统和方法 | |
US9952769B2 (en) | Data storage system with data storage devices operative to manage storage device functions specific to a particular data storage device | |
US8533622B2 (en) | Integrating digital book and zoom interface displays | |
CN104345868B (zh) | 应用处理器、移动装置和管理应用处理器的功率的方法 | |
US7783986B2 (en) | Handheld electronic book reader with annotation and usage tracking capabilities | |
RU2504823C2 (ru) | Устройство обработки информации, способ отображения и программа отображения | |
CN103677804A (zh) | 用于处理移动终端中的应用的方法和设备 | |
WO2021013019A1 (zh) | 一种图片处理方法及装置 | |
CN104871246A (zh) | 用于执行基于图形处理单元的存储器传送操作的多模式存储器存取技术 | |
US9401007B2 (en) | Image providing system, apparatus for same, and image providing method | |
CN101551252A (zh) | 矢量地图制作及快速加载显示的方法 | |
US20140125692A1 (en) | System and method for providing image related to image displayed on device | |
CN106537382A (zh) | 查询建议 | |
CN102567459A (zh) | 作为呈现者和观众的上下文的呈现进展 | |
CN103927223A (zh) | 对图形资源的串行化访问 | |
CN103098003B (zh) | 用于显示数据对象的方法、软件和设备 | |
CN105700845A (zh) | 一种在文档中显示数字运算结果的方法及装置 | |
CN101458656B (zh) | 多媒体应用处理器兼容各种Nandflash的方法 | |
CN204791183U (zh) | 高校图书馆“一站式”信息服务导读系统装置 | |
US20050275665A1 (en) | System and method for efficiently supporting image rotation modes by utilizing a display controller | |
EP2846278A2 (en) | Method for controlling content in mobile electronic device | |
US20090300047A1 (en) | Automatically assigning data bindings in visual designers | |
CN102087845B (zh) | 不需要绘图加速器的电子装置以及相关的显示控制方法 | |
CN102929923A (zh) | 一种有序数据界面元素的组织管理及显示方法及装置 | |
CN116088980A (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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150619 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150619 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |