CN104063841A - 改善渲染效率的技术 - Google Patents

改善渲染效率的技术 Download PDF

Info

Publication number
CN104063841A
CN104063841A CN201410257530.4A CN201410257530A CN104063841A CN 104063841 A CN104063841 A CN 104063841A CN 201410257530 A CN201410257530 A CN 201410257530A CN 104063841 A CN104063841 A CN 104063841A
Authority
CN
China
Prior art keywords
data
stored
cache line
color
written
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.)
Granted
Application number
CN201410257530.4A
Other languages
English (en)
Other versions
CN104063841B (zh
Inventor
S·J·斯潘格勒
P·苏提
C·D·贝里
秋场宽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN104063841A publication Critical patent/CN104063841A/zh
Application granted granted Critical
Publication of CN104063841B publication Critical patent/CN104063841B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

各种实施例通常涉及当存储图像的基元的颜色数据值时使清晰颜色的颜色数据值的存储被推迟或者完全避免的技术。所述装置包括处理器元件;以及逻辑,所述逻辑用于将所述图像的像素块的颜色数据值存储在高速缓存行的第一部分中;将所述第一部分已被写入和所述高速缓存行的第二部分还未被写入的指示存储在每部分表中;逐出所述第一部分和所述第二部分的内容,并且对存储在所述每部分表中的所述指示做出响应,将所述第一部分的所述内容存储在图像数据中,并且将清晰颜色的颜色数据值的实例代替所述第二部分的所述内容而存储在所述图像数据中。还描述和请求保护了其它实施例。

Description

改善渲染效率的技术
技术领域
本文描述的实施例通常涉及改善渲染三维对象的二维图像的效率。
背景技术
在渲染三维(3D)对象的二维(2D)图像时,在经历渲染的图像的某些部分中剩余的背景颜色或“清晰颜色”可能存在或者可能不存在。这取决于被渲染的对象的种类,该对象是否填充整个图像和/或渲染所述对象的目的而变化。因而,在渲染期间是否存在保持未被着色的像素以使得它们必须被着色为清晰颜色以便使图像完整,这经常是事先未知的。
鉴于这一不确定性,最初使图像的所有像素都被着色为清晰颜色以便确保在渲染之后没有像素被留下具有未定义或随机的颜色,这已经成为公认的做法。然而,这必然意味着使用清晰颜色对所有像素进行的首次着色时花费的努力中的至少一些,如果不是全部,是浪费的,因为在渲染期间,至少它们中的一些将被对象的颜色覆盖。
这一浪费不仅在使用渲染引擎来渲染图像同时发生向所有像素写入清晰颜色之间浪费的时间方面相当可观,而且在出于除了针对每一个像素将针对清晰颜色的颜色像素值重复地写入存储器单元中的目的以外的目的而采用的浪费的处理器时间和浪费的存储器带宽方面也相当可观。相对于这些和其它考虑,需要本文描述的实施例。
附图说明
图1说明了计算设备之间的可能交互以便渲染图像的实施例。
图2说明了图1的实施例的一部分。
图3说明了在图1的实施例中的数据的各部分和图像的各部分之间的关系。
图4说明了图2的部分的子部分。
图5说明了第一逻辑流的实施例。
图6说明了第二逻辑流的实施例。
图7说明了第三逻辑流的实施例。
图8说明了第四逻辑流的实施例。
图9说明了处理架构的实施例。
具体实施方式
各种实施例通常涉及在针对图像的像素存储基元(例如,线,多边形等等)的颜色数据值时推迟或者完全避免清晰颜色的颜色数据值的存储的技术。更具体地说,保持与高速缓存并且与图像缓冲器相关联的比特表,该比特表中的每一个比特指示是否由于渲染图像而又对像素块进行了着色。与高速缓存相关联的一个这样的表用于控制复用器,该复用器用于在将多个像素块的每一个高速缓存行从高速缓存逐出并且进入存储器时使用清晰颜色的颜色数据值对仍然未被着色的像素块进行着色。与存储器相关联的另一个这样的表在完成图像的渲染时使用,以便识别仍然被保留未被着色的所述图像的任何像素块,以使得可以将针对清晰颜色的颜色数据值存储在存储器中需要使用清晰颜色对那些仍然未被着色的像素块进行着色的单元处。
可以设想的是,在至少一些图像的渲染之后,其中渲染处理导致那些图像内的每一个像素的着色,应该不再需要使用清晰颜色对像素进行着色。因而,通过推迟使用清晰颜色对像素进行着色直到完成渲染之后,不存在使用清晰颜色对像素进行着色以便仅使该清晰颜色被覆盖的处理时间或存储器带宽的浪费。对于渲染处理没有导致每一个像素被着色的其它图像,推迟使用清晰颜色对像素进行着色最大限度地减少了这样的浪费,因为只有需要使用清晰颜色进行着色的像素被进行了这样的着色。取决于所渲染的图像的本质,在用于创建每一个图像的时间上的改善会是显著的。
通常参照本文使用的标注和术语,可以按照在计算机或计算机网络上执行的程序过程的形式来呈现下面的详细描述部分。这些过程描述和表示由本领域技术人员使用以便最有效地向本领域的其他技术人员传达他们工作的实质。这里通常将过程认为是导致期望结果的前后一致的操作序列。这些操作是要求物理量的物理操控的操作。通常,尽管不一定,这些量采用能够被存储、传输、组合、比较和以其它方式操控的电、磁或光学信号的形式。主要出于通用的原因,将这些信号称为比特、值、元素、符号、字符、项、数字等等有时被证明是方便的。然而,应当指出,所有这些和类似的术语将与合适的物理量相关联,并且仅仅是应用于这些量的方便的标记。
进一步地,经常在诸如加和和比较的术语中指代这些操作,这些操作一般与操作人员执行的智力操作相关联。然而,在本文描述的形成一个或多个实施例的一部分的任何操作中,操作人员没有这样的能力是必要的,或者在大多数情况下是期望的。而是,这些操作是机器操作。用于执行各个实施例中的操作的有用机器包括被选择性激活或由存储在其内的计算机程序配置的通用数字计算机,按照本文的教导来编写该计算机程序,和/或包括为了所要求的目的特别构造的设备。各种实施例也与用于执行这些操作的装置或系统相关。这些装置可以为了所要求的目的而被特别地构造,或者可以包括通用计算机。用于各种这些机器的所要求的结构将出现在给出的描述中。
现在参照附图,其中相似的附图标记用于在整个附图中指代相似的元件。在下面的描述中,出于解释目的,阐述了许多具体细节以便提供对本发明的透彻理解。然而,显然的是,可以在没有这些具体细节的情况下来实践新颖的实施例。在其它实例中,公知的结构和设备以框图的形式示出,以便方便对它们的描述。其意图是覆盖权利要求的范围内的所有修改、等同物和替代品。
图1说明了计算设备1000的框图,其可以耦合到另一计算设备300,以便向该另一计算设备300提供已经由计算设备1000渲染的图像的图像数据。这些计算设备1000和300中的每一个可以是各种类型的计算设备中的任意一种,包括但不局限于台式计算机系统、数据输入终端、膝上型计算机、上网本计算机、平板计算机、手持个人数据助理、智能电话、数码相机、结合到衣物中的可穿戴式计算设备、集成到车辆(例如汽车、自行车、轮椅等等)中的计算设备、服务器、服务器集群、服务器场等等。
如图所示,计算设备1000和300经过网络999交换传送所渲染的图像的信号。然而,这些计算设备中的一个或两个可以经由网络999彼此和/或与再有的其它计算设备(未示出)交换与所渲染的图像完全无关的其它数据。在各种实施例中,网络可以是可能局限于在单个建筑物或其它相对有限的区域内延伸的单个网络,可能延伸相当的距离的所连接的网络的组合,和/或可以包括以太网。因而,网络999可以基于可以通过其交换信号的各种通信技术(或组合)中的任意一种,包括但不局限于:使用电学和/或光学导电布线的有线技术以及采用红外、射频或其它形式的无线传输的无线技术。
在各种实施例中,计算设备1000结合处理器元件150、存储器160、控件120、显示器180、控制器200和接口190中的一个或多个,以便将计算设备1000耦合到网络999。存储器160存储控制例程140和3D模型数据130中的一个或多个。控制器200结合处理器元件250、存储器260、每块表268、高速缓存270、高速缓存控制器275和复用器276中的一个或多个。存储器260存储控制例程240、3D模型数据130的副本和图像数据230中的一个或多个。
控制例程140结合在其作用是计算设备1000的主处理器元件的处理器元件150上可操作的指令序列,以便实现用于执行各种功能的逻辑。在执行控制例程140时,处理器元件150用于保持和/或修改3D模型数据130。这可能是这种情况:对接收到传送要修改3D模型数据的命令的信号做出响应,使处理器元件150修改该3D模型数据130,所述信号可能对它们正在被操作做出响应而经由控件120(如果存在)进行接收和/或可能经由网络999从另一计算设备进行接收。在一些实施例中,计算设备1000可以是视频游戏系统,其中所述3D模型数据130是视频游戏中场景和/或人物的3D表示。在一些实施例中,计算设备1000可以是医疗工作站,其中所述3D模型数据130是人体组织、结构和/或器官的3D表示。在这样的实施例中,计算设备的操作者可以操作控件120以便操控由3D模型数据130表示的对象。
无论保持和/或修改3D模型数据130的目的如何,控制例程140进一步使处理器元件150向控制器200传送3D模型数据130的副本。处理器元件150然后向控制器200发送信号以便渲染该3D模型数据130从指定的方向角度的任何对象的二维图像830。在这样的渲染之后,可以然后将图像830视觉地呈现在显示器180上。可替代地或另外地,可以将表示图像830的图像数据230经由网络999传输到计算设备300,其中可以存储该图像数据230和/或可以在计算设备300的显示器380上视觉地呈现图像830。
控制例程240结合在其作用是计算设备1000的主处理器元件的处理器元件250上可操作的指令序列,以便实现用于执行各种功能的逻辑。在执行控制例程240时,处理器元件250接收来自处理器元件150的信号以便将由3D模型数据130表示的对象渲染为2D图像830。在这样做时,使处理器元件250将在3D模型数据130这些对象由其形成的基元(例如,线、三角形、多边形等等)光栅化为表示图像830的图像数据230。从而使图像数据230包括从指定的方向角度可视的那些对象的基元的子集的2D图像。
如将要更详细地说明的,尽管在其中可视的对象的渲染的结论中将图像数据230最终存储在存储器260中,但是图像数据230实际上最初被渲染到由高速缓存控制器275监督的高速缓存270中。当渲染继续进行时,被渲染到高速缓存270中的图像数据230的高速缓存行经过复用器276被逐出并且进入存储器260中被指定为要在其中存储图像数据230的单元。在驱逐期间和/或在渲染完成之后,使用清晰颜色对没有被渲染处理着色的象素块进行着色,以便完成由图像数据230表示的图像830。
在一些实施例中,在将图像830渲染到存储器260中作为图像数据230之后,处理器元件250可以然后操作显示接口285,以便在显示器180上可视地显示图像830。在其它实施例中,处理器元件250可以向处理器150发送信号来通知图像270的渲染完成,并且可以将图像数据230提供到处理器元件150,以便使处理器元件本身能够在显示器180上视觉地呈现图像830和/或经由网络999将图像数据230传输到其它计算设备300,可能用于在其显示器380上进行视觉呈现。
应当注意,尽管图1阐释了结合分别执行它们各自任务的两个处理器元件(例如,处理器元件150和250)的计算设备1000的实现,但是计算设备1000的其它实施例也是可能的,其中单个处理器元件执行所有这些前述的任务。然而,可以想象的是,控制器200结合图像系统,在该图像系统中所述处理器元件250可以是多少专门和/或优化为执行与渲染、视频解压缩、图像重新缩放等等相关的任务,而所述处理器元件150用作更通用的处理电路以便执行由操作系统、一个或多个设备驱动器和/或一个或多个应用的指令所指示的预期的更广泛的各种指令和任务。
还应当注意,尽管本文仅讨论了由单个图像数据230表示的单个二维图像830的渲染和最终存储,但是这不应该被理解为指示该单个图像830一定要由自身渲染或存储,而不连接到任何其它图像或图像块数据。更精确地说,在一些可能实施例中,单个二维图像830可以实际上代表在图像的多个对齐和/或重叠的平面中的图像的一个平面,它们共同定义三维图像。可替代地或另外地,该单个二维图像830可以只是一段运动视频的这样的帧的多个帧中的一个帧。因而,本文讨论和描述的技术不应该被视为局限于孤立存在的单个二维平面图像的渲染和存储。
在各种实施例中,每一个处理器元件150和250可以包括各种各样的市售处理器中的任意一个,包括但不局限于处理器;应用、嵌入式或安全处理器;和/或 处理器;IBM和/或Cell处理器;或者 Core(2)Core(2) 处理器。进一步地,这些处理器元件中的一个或多个可以包括多核处理器(无论多个内核是否共存于相同或不同的裸片上),和/或一些其它种类的多处理器架构,通过所述种类的多处理器架构,能够按照某一方式链接多个物理上独立的处理器。
在各种实施例中,每一个存储器160和260可以基于各种各样的信息存储技术中的任意一种,可能包括要求不间断地提供电力的易失性技术,并且可能包括导致使用可移除或不可移除的机器可读存储介质的技术。因而,这些存储器中的每一个可以包括各种类型(或者类型的组合)的存储设备中的任意一种,包括但不局限于:只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM),双数据率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器(例如,铁电聚合物存储器)、奥氏存储器,相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光学卡、一个或多个单独的铁磁磁盘驱动,或者被组织为一个或多个阵列的多个存储设备(例如,被组织为独立磁盘阵列的冗余阵列或RAID阵列的多个铁磁磁盘驱动)。应该注意,尽管将这些存储器中的每一个描述为单个块,但是这些中的一个或多个可以包括可以基于不同存储技术的多个存储设备。因而,例如,这些所描述的每一个存储器中的一个或多个可以代表光驱或闪存卡读取器的组合,程序和/或数据可以通过它在某种形式的机器可读存储介质上进行存储和传送,铁磁磁盘驱动用于在相对长的时段内在本地存储程序和/或数据,并且一个或多个易失性固态存储器设备使能到程序和/或数据的相对快速的存取(例如,SRAM或DRAM)。还应该注意,这些存储器中的每一个可以由基于相同存储技术的多个存储部件构成,但是也可以由于专门用途的结果而被单独地保持(例如,一些DRAM设备用作主存储器,而其它DRAM设备用作图形控制器的独特的帧缓冲器)。
在各种实施例中,接口190可以采用各种各样的信令技术中的任意一种,如已经描述的,使计算设备1000能够耦合到其它设备。这些接口中的每一个包括提供至少一些必要的功能以便使能这样的耦合的电路。然而,这一接口也可以利用由处理器元件150执行的指令序列来至少部分地实现(例如,实现协议栈或其它特征)。在采用电学和/或光学传导布线的情况中,这些接口可以采用符合任何种类的工业标准的信令和/或协议,包括但不局限于:RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。在使用无线信号传输的情况中,这些接口可以采用符合任何种类的工业标准的信令和/或协议,包括但不局限于:IEEE802.11a、802.11b、802.11g、802.16、802.20(通常被称为“移动宽带无线接入”);蓝牙;紫峰(ZigBee);或者蜂窝无线电话服务,例如GSM与通用分组无线服务(GSM/GPRS)、CDMA/1xRTT、增强型数据率全球演进(EDGE)、仅演进数据/优化(EV-DO)、数据和语音演进(EV-DV)、高速下行链路分组接入(HSDPA)、高速上行分组接入(HSUPA)、4G LTE等等。
在各种实施例中,显示器180可以基于各种各样的显示技术中的任意一种,包括但不局限于:液晶显示器(LCD),包括触敏、彩色以及薄膜晶体管(TFT)LCD;等离子体显示器;发光二极管(LED)显示器;有机发光二极管(OLED)显示器;阴极射线管(CRT)显示器等等。这些显示器中的每一个可以布置在计算设备1000中的相应一个的壳体上,或者可以布置在计算设备1000的物理上分开的部件的分离的壳体上(例如,经由电缆耦合到其它部件的平板监视器)。
图2更详细地说明了图1的计算设备1000的部分。更具体地说,阐释了执行控制例程140和240的相应一个以便执行前述功能的处理器元件150和250的操作环境的各方面。本领域的技术人员将认识到,这些控制例程中的每一个,包括构成每一个控制例程的部件,被选择为在任何类型的一个或多个处理器上可操作(例如,可被执行),选择该一个或多个处理器以便实现这些处理器元件中的每一个。
在各种实施例中,控制例程140可以包括操作系统、设备驱动器和/或应用级例程的组合(例如,所谓的提供在光盘介质上的“软件套件”,从远程服务器获得的“小程序”等等)。在包括操作系统的情况下,该操作系统可以是任何种类的适合于处理器元件150和350的任何相应一个的操作系统,包括但不局限于:WindowsTM、OS XTM或者Android OSTM。在包括一个或多个设备驱动器的情况下,那些设备驱动器可以对包括计算设备1000的任何种类的其它部件提供支持,不管是硬件部件还是软件部件。
控制例程140包括由处理器元件150可执行的通信部件149,以便操作接口190来经由网络999接收和发送信号,如已经描述的。在所接收的信号当中,可以是从另一计算设备经由网络999向计算设备1000传送3D模型数据130的信号。本领域的技术人员将认识到,选择这一通信部件以便可以与选择为实现这一接口的任何类型的接口技术一起操作。
控制例程140还可以包括由处理器元件150可执行以便保持和/或操控3D模型数据130的3D例程141,如可能在经由通过处理器元件150接收的信号传送的命令中指定的,可能经由接口190来自控件120和/或网络999。如前面讨论的,3D模型数据130可以表示任何种类的对象,从绘制作为视频游戏的部分场景的虚构的人到可能构成人体的真实对象。因而,该3D例程141可以是视频游戏程序、CT(计算机断层扫描)扫描或MRI(磁共振成像)数据查看程序等等。
控制例程240包括光栅化部件241以便经由对由3D模型数据130表示的任何对象的图形基元(例如,线、三角形、多边形等等)的光栅化来执行基于光栅的渲染处理的一部分,以便创建图像数据230。在该处理中,光栅化部件241推导针对构成该图像数据230的每一个像素的颜色。光栅化部件241一次输出多个像素的颜色数据值作为像素块,填充由高速缓存控制器275监管的高速缓存270的一个或多个高速缓存行的部分。控制例程240还包括像素着色部件243,其协调由光栅化部件241写入到高速缓存270中的颜色数据值的处理。
高速缓存控制器275包括每行表279,其监视高速缓存270的每一行的状态,包括行是否被清除,行的任何部分是否被写入,和/或哪一个或哪些高速缓存行与其它行相比较最近或者非最近被最后写入的指示。当高速缓存270的行被填充时,高速缓存控制器275将一个或多个高速缓存行的内容(通常被称为“逐出”高速缓存行)传输或“逐出”到存储器260内的图像缓冲器单元,图像数据230最终被存储在该图像缓冲器单元中以便使高速缓存行可用。在选择要被逐出的高速缓存行时,高速缓存控制器275可以参照每行表279以便选择与其它行相比较已经在较长的时段内未被写入的高速缓存行。进一步地,在光栅化部件241的渲染完成时,高速缓存控制器275影响高速缓存270的所有高速缓存行的内容的逐出,该高速缓存仍然将由渲染产生的数据保持到将图像数据230存储在存储器260内的位置。
高速缓存控制器275还包括每部分表278,其监视高速缓存270的每一行的每一个部分,包括自从作为高速缓存行的一部分的这些每一个部分被最后清除(例如,被逐出)以来哪些部分已经被写入以及哪些部分未改变。高速缓存行中已经被写入的部分与已经被着色的一个或多个像素相对应,而高速缓存行中还没有被写入的部分与还没有被着色的一个或多个像素相对应。高速缓存行中即使该高速缓存行被逐出也保持未被着色的部分可以与在整个渲染中将保持未被着色的一个或多个像素相对应,这使得最终使用清晰颜色对它们进行着色。鉴于此,当高速缓存行被逐出时,将它们被逐出的内容经过复用器276按照被写入的方式路由到将图像数据230存储在存储器260中的位置。
在每部分表278中,使用每一个被逐出的高速缓存行中的哪些部分已经被写入以使得它们相对应的像素已经被光栅化部件241着色的指示,以及哪些还未被这样写入的指示,来控制复用器选择性地插入针对清晰颜色的颜色数据值来代替未被写入的部分。因而,对于给定的高速缓存行,在图像数据230的位置处被写入到存储器260中的内容可以包括下面的混合:来自高速缓存行中被光栅化部件241写入那些颜色数据值的部分的颜色数据值,以及在存在高速缓存行中从来没有被光栅化部件241写入那些颜色数据值的部分的情况下代表清晰颜色的颜色数据值。
简要地转向图3,示出了高速缓存270、图像数据230和图像830的各部分之间的关系的示例。图像830由多个区域组成,每一个区域由多个像素块组成。在图像830内具体描绘的可能呈现在显示器180和380之一或两者上的是一个示例区域831,其中驻留一个示例像素块832。
相应地,图像数据230由多段区域数据组成,每一段区域数据由多段块数据组成。图像数据230内具体描绘的被存储在存储器260中的是一个示例区域数据231,其中驻留一个示例块数据232。同样相应地,高速缓存270由多个高速缓存行组成,每一个高速缓存行由多个部分组成。高速缓存行270内具体描绘的是一个示例高速缓存行271,其中驻留一个示例部分272。如进一步使用虚线描绘的,示例区域数据231与示例高速缓存行271和示例区域831相对应,并且示例块数据232与示例部分272和示例块832相对应。
应该注意,区域831内的块832的这一阐释,以及图像830内的区域831的这一阐释不是按比例绘制的。可以设想,图像830由大量这样的区域组成,并且像素与图像830的尺寸相比成比例地更小。还应该注意,尽管将块832专门描绘为由2×2像素阵列构成,但是在其它可能的实施例中,像素的其它数量和布置可以构成每一个这样的块。可以设想,构成块832的像素的数量取决于所渲染的像素的数量以及每次光栅化部件451的输出。因而,构成块832的2×2像素阵列指代光栅化部件451每次输出针对四个像素的颜色数据值。然而,其它实施例也是可能的,其中光栅化部件451输出针对其它数量的像素的其它数量的颜色数据值。
可以设想,构成区域831的像素的数量(并且因此,构成区域831的块的数量)至少部分地取决于高速缓存270的高速缓存行的宽度以及每像素颜色深度(例如,每像素比特的数量)。因而,通过示例的方式,如果高速缓存行271具有128字节的宽度,并且如果颜色深度为每像素32比特,则该区域831可以由4×8的像素阵列(即,一个的2×2块的2×4阵列)构成。在这样的示例中,2×2块832将占16个字节,其将变为高速缓存行271内的部分272的尺寸,以使得高速缓存行271将被划分为8个部分(包括部分272)。在这样的示例中,每部分表将具有指示那些8个部分中的每一个的状态的至少一个单独的比特,并且该每部分表将具有指示相对应的八段块数据(包括块数据232)的每一个的状态的单独的比特,以便与区域831的8个块(包括块832)相对应。
应该注意,尽管块832能够确定地由像素的一维阵列构成(例如,1×4像素代替2×2),并且尽管区域831能够确定地由一维块阵列构成(例如1×8块代替2×4块),但是尽可能地设想为被视为期望的二维阵列,以便如本文讨论和阐释的那样来使用。本领域的技术人员将容易认识到,典型的光栅化算法倾向于按照一次一个图形基元的排序来渲染图像。假定许多图形基元是覆盖像素的二维簇的多边形(其中最通常是三角形),对一个图形基元进行光栅化具有遵循一次渲染像素的二维簇的颜色数据值的模式的倾向。因而,高速缓存行271与构成区域831的像素的二维阵列相对应的事实增加了这样一种可能性,即,来自通过渲染覆盖像素的二维簇的多边形所得到的颜色值将完全适合高速缓存行271,而不是占据多个高速缓存行。这可以提供效率的增加。
对于像素的二维阵列的这样的支持可以与为有时构成每一个像素的样本的二维阵列提供的支持相一致,其中控制器200操作在超采样抗锯齿(SSAA)模式或者多重采样抗锯齿(MSAA)模式中。如本领域的技术人员所熟知的,MSAA和SSAA实现以较高的分辨率进行有效地渲染,其中将每一个像素划分为两个或更多的样本,并且针对样本的颜色数据值是光栅化的输出,而不是针对整个像素的颜色数据值。例如,在其中在MSAA或SSAA模式期间每一个像素由2×2阵列的样本构成的实施例中,高速缓存270、高速缓存控制器275以及每块表的操作会改变以便适应2×2的样本块。在这样的示例中,在抗锯齿模式下样本的2×2阵列的处理和在非抗锯齿模式下像素的2×2阵列的处理会相当类似。
如前面讨论的,每行表279监视高速缓存270的每一个高速缓存行的状态。因而,每行表279包括指示自从高速缓存行271被最后清除(例如逐出)以来高速缓存行271的任何部分是否被写入的至少一个比特,以使得存在通过光栅化部件241存储在其中的颜色数据值。进一步地,针对高速缓存行270的每行表279内可以存在一个或多个附加的比特,指示相对于高速缓存270内的其它高速缓存行,多久以前它被最后写入,并且高速缓存控制器275在确定接下来要逐出哪一个高速缓存行时可以使用自从最后被写入以来这样的相对时间流逝。然而,应该注意,基于自从每一个高速缓存行被最后写入以来的相对时间段来选择该高速缓存行要被逐出只是用于选择要被逐出的高速缓存行的一个可能算法。选择用于逐出的高速缓存行的其它方案对于本领域技术人员而言将是可能的。
如前面讨论的,每部分表278监视高速缓存270的每一个高速缓存行的每一个部分的状态。因而,每部分表278包括针对高速缓存行271的每一个部分的至少一个比特,包括部分272,指示自从高速缓存行271最后被清除(例如被逐出)以来那些部分中的每一个是否被写入,以使得存在通过光栅化部件241存储在其中的颜色数据值。
如前面讨论的,每块表268监视图像数据230内的每一段区域数据内的每一段块数据的状态。因而,每块表268包括针对区域数据231的每一段块数据的至少一个比特,包括块数据232,指示自从图像830的渲染开始以来这些段块数据中的每一段都被写入,以使得存在作为高速缓存行逐出的结果而存储在其中的颜色数据值。
在图像830的渲染开始时,将每块表268的所有比特都设置到一个值,该值指示图像数据230的相应段块数据还没有被写入颜色数据值,以使得图像830的块中的相对应块还没有被着色。当光栅化部件241随后输出针对图像830的像素块的颜色数据值时,那些块中的每一个的颜色数据值填充高速缓存270的高速缓存行的相应部分。在每行表279中指示到与区域831的像素块相对应的高速缓存行271的任何颜色数据值的写入,并且在每部分表278中指示针对像素块832的颜色数据值到部分272中的写入。
在某一点,高速缓存行271被逐出。假定高速缓存行271与区域数据231相对应,高速缓存行271的逐出导致区域数据231整体被颜色数据值写入。在该过程中,针对像素块832被写入到部分272的任何颜色数据值都被写入到块数据232中。在每块表268中指示使用颜色数据值对区域数据231的整体的这一写入,因为其中的与区域数据231内的所有段块数据相对应的比特都被改变以便显示哪些段块数据已经被写入。
然而,如前面讨论的,当高速缓存行被逐出时,通过复用器276发生它的内容到存储在存储器260中的图像数据230的相对应部分的传输。图4阐释了复用器276的操作的各个方面的进一步细节,该复用器使用针对清晰颜色的颜色数据值的一个或多个实例来复用来自被逐出的高速缓存行的颜色数据值。如前面讨论的,复用器276使用每部分表中的指示来确定被逐出的高速缓存的哪些部分将传输其内容以便填充存储器260内的图像数据230,以及该被逐出的高速缓存的哪些部分将丢弃其内容,支持使用针对其像素的清晰颜色的颜色数据值来代替其内容,该每部分表指示被逐出的高速缓存行的哪些部分已经通过光栅化部件214使用颜色数据值进行了写入。
例如,在部分272仅是高速缓存行271内通过光栅化部件241使用针对它的像素的颜色数据值曾经写入的部分,则将设置每部分表278的比特以便反映部分272已经被这样写入的事实,而将设置针对高速缓存行271的其它部分的比特以便反映它们都没有被很快写入的事实。然后,当高速缓存行271最终被逐出时,针对高速缓存行271的那些比特将用于控制复用器276处理高速缓存行271的每一个部分的数据的方式,包括部分272。因为部分272仅是通过光栅化部件241曾经被写入的部分,将允许部分272内的颜色数据值没有变化地经过复用器276,同时将丢弃可能存在于高速缓存行271的其它部分中的任何未知数据。代替地,对于高速缓存行271的那些其它部分,复用器276将使用针对它们的每一个像素的清晰颜色的颜色数据值的实例来代替它们的未知数据。
图4还阐释了用于处理光栅化部件241尝试从存储在存储器260中的图像数据230读取颜色数据值的实例的可能方案的方面。取决于渲染是否仍在进行中和/或光栅化部件214尝试针对图像830的哪个区域来读取这样的数据,可能已经将这样的数据写入或者没有写入到存储器260内的图像数据230的单元。这可能是寻求的数据仍然在高速缓存270的高速缓存行中,或者寻求的数据简单地还没有被渲染。在寻求的数据被存储作为存储器260内的图像数据230的一部分的情况下,读取这一数据的尝试导致在存储器260上执行的一个或多个读取操作,以便从其来获取它。在寻求的数据驻留在高速缓存270的高速缓存行中的情况下,读取这一数据的尝试导致使用复用器在高速缓存270上执行的高速缓存读取操作,以便将针对所有像素的清晰颜色的颜色数据值插入在还没有被光栅化部件241写入的高速缓存行内。在寻求的数据简单地还未被渲染的情况下,可以使复用器276供应针对清晰颜色的颜色数据值的一组多个实例,其适合寻求的数据还未被渲染的情况,因为清晰颜色是针对还未通过渲染进行着色的像素的默认颜色。
返回到图2,在渲染完成之后,像素颜色部件243可以触发高速缓存控制器275以便逐出通过光栅化部件241写入颜色数据值的所有剩余的高速缓存行。这样做是为了完成光栅化部件241的最后输出到存储器260内的图像数据230的传输。像素着色部件243然后利用每块表268中任何像素区域还未被光栅化部件241着色的任何指示,来操作复用器276(或其它部件,未示出)以便利用针对这些区域内的所有像素的清晰颜色的颜色数据值来填充这些区域。在对任何这样剩余的未着色像素的这样的填充完成之后,图像830现在已经完成。
在一些实施例中,控制例程240进一步包括处理器元件250可执行的演示部件248,以便操作显示接口285(如果存在)来将图像830驱动到显示器180上,如在图像数据230中定义的,从而在显示器180上可视化地呈现图像830。可选地或附加地,处理器元件250可以向处理器元件150提供图像数据230,以便使处理器元件150能够将最终的图像数据275传输到另一计算设备(例如,其它计算设备300)或者使处理器元件150能够执行使图像830可视地呈现在显示器180上的任务,代替这样做的处理器元件250。
重要的是要注意,尽管讨论已经集中在根据3D模型数据130推导单个图像830,但是不应该视为这表明仅这样推导一个图像。换言之,图像830可以仅是组成运动视频的帧流的一个帧,在该视频中按照类似的方式根据3D模型数据130推导每一个帧。对于渲染这样的图像的领域的技术人员而言将很容易认识到,运动视频简单地涉及针对每一个帧重复这样的渲染过程。
图5说明了逻辑流2100的一个实施例。逻辑流2100可以代表由本文描述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流2100可以说明处理器元件250在至少执行控制例程240时执行的操作,和/或由计算设备100的其它部件执行的操作。然而,在其中单个处理器元件执行处理器元件150和250两者的功能的实施例中,这样的操作可以由处理器元件150执行。
在2110,计算设备的处理器元件(例如,计算设备100的控制器200的任一处理器元件250)将针对像素块(例如,块832)的颜色像素值存储在高速缓存行的一部分(例如,部分272)中,同时留下另一部分未被写入。如已经讨论的,光栅化部件可以推导针对构成区域块的二维像素阵列的颜色数据值并且将该颜色数据值输出到高速缓存中,在该高速缓存中每一个高速缓存行保持针对构成图像区域的较大的二像素维阵列的颜色数据值。
在2120,将高速缓存行中的哪个部分被写入以及哪一个或者哪些其它部分还未被写入的指示存储在高速缓存的高速缓存控制器的每部分表中。如已经讨论的,高速缓存控制器维护指示高速缓存的每一个高速缓存行的状态的每行表和指示每一个高速缓存行的每一个部分的状态的每部分表二者。
在2130,高速缓存行被逐出。如已经讨论的,任何种类的算法可以用于选择要被逐出的高速缓存行,其中的一种算法是选择与其它高速缓存行相比较在进一步进入过去的时间处最后被写入的高速缓存行。
在2140,使用针对清晰颜色的颜色数据值的一个或多个实例来替换存在于高速缓存行中的针对自从最后被清除(例如,被逐出)以来还未被写入的每一个部分的随机数据。如前面讨论的,经过复用器来路由高速缓存的输出,利用被维持在每部分表中的哪些部分已经被写入的指示来控制该复用器。
在2150,将来自被写入的部分的颜色数据值和替换还未被写入的部分的随机数据的针对清晰颜色的颜色数据值的组合存储为代表图像的图像数据内的区域数据。如前面讨论的,将图像数据存储在对于处理器元件可访问的被指定为要在其中存储图像的图像缓冲器的单元中。
图6说明了逻辑流2200的一个实施例。逻辑流2200可以代表由本文描述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流2200可以说明处理器元件250在至少执行控制例程240时执行的操作,和/或由计算设备100的其它部件执行的操作。然而,在单个处理器元件执行处理器元件150和250两者的功能的实施例中,这样的操作可以由处理器元件150执行。
在2210,计算设备的处理器元件(例如,该计算设备100的控制器200的任一处理器元件250)渲染二维像素块(例如,块832)。在2220,处理器元件将针对该像素块的像素的颜色数据值存储在高速缓存的单个高速缓存行的一部分中(例如,高速缓存270的高速缓存行271的部分272)。如已经讨论的,光栅化部件可以推导针对构成区域块的二维像素阵列的颜色数据值并且将该颜色数据值存储在高速缓存中,该高速缓存中的每一个高速缓存行保持针对构成图像区域的较大的二维像素阵列的颜色数据值。
在2230,将高速缓存行中的哪一个部分被写入的指示存储在高速缓存的高速缓存控制器的每部分表中。在2240,将哪一个高速缓存行被写入的指示存储在每行表中。如已经讨论的,高速缓存控制器维护指示高速缓存的每一个高速缓存行的状态的每行表以及指示每一个高速缓存行的每一个部分的状态的每部分表两者。
在2250,基于与其它高速缓存行相比较自从该高速缓存行被最后写入以来逝去的时间量来选择该高速缓存行要被逐出。如前面讨论的,然而,在其它可能的实施例中,可以使用用于选择要被逐出的高速缓存行的其它算法。
图7说明了逻辑流2300的一个实施例。逻辑流2300可以代表由本文描述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流2300可以说明处理器元件250在至少执行控制例程240时执行的操作,和/或由计算设备100的其它部件执行的操作。然而,在单个处理器元件执行处理器元件150和250两者的功能的实施例中,这样的操作可以由处理器元件150执行。
在2310,计算设备的处理器元件(例如,计算设备100的控制器200的任一处理器元件250)设置每块表的比特以便指示还没有使用颜色数据值来写入代表图像的图像数据的任何一段块数据。如前面讨论的,图像数据可以由多段区域数据构成,每一个表示构成图像的区域的二维像素阵列。并且,每一段区域数据可以由多段块数据构成,每一个代表构成区域的块的较小的二维像素阵列。
在2320,将针对图像的像素区域的颜色数据值存储在图像数据的区域数据中。如前面讨论的,随着高速缓存行的每一次逐出,将针对图像的整个区域的颜色数据值传输到并且存储在代表该图像的图像数据的区域数据中。
在2330,将区域数据的多段块数据已被写入的指示存储在每块表中。在2340,在完成图像的渲染时,使用块数据的哪些段已经被写入的指示来控制使用代表清晰颜色的颜色数据值的多段块数据的选择性填充。
图8说明了逻辑流2400的一个实施例。逻辑流2400可以表示由本文描述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流2400可以说明处理器元件250在至少执行控制例程240时执行的操作,和/或由计算设备100的其它部件执行的操作。然而,在单个处理器元件执行处理器元件150和250两者的功能的实施例中,这样的操作可以由处理器元件150执行。
在2410,计算设备的处理器元件(例如,计算设备100的控制器200的任一处理器元件250)尝试读取图像的区域像素的一个或多个颜色数据值。在2420,检查计算设备的存储器(例如,存储器260)以便确定这些颜色数据值是否已经被写入与该区域相对应的区域数据中。如已经解释的,可以检查每块表的比特以便确定是否已经使用颜色数据值对图像数据的区域数据的多段块数据进行了写入。如果寻求的颜色数据值已经被写入存储器内的该区域数据中,则在2422将该颜色数据值从该存储器中读出。
然而,如果这些颜色数据值还未被写入到存储器,则在2430,做出检查以便确定颜色数据值是否位于计算设备的高速缓存(例如,高速缓存270)中还未被逐出到存储器的高速缓存行中。如前面讨论的,每行表跟踪每一个高速缓存行的状态,包括该高速缓存行的任何部分是否已经被写入任何颜色数据值。如果寻求的颜色数据值已经被写入到高速缓存的高速缓存行中,则在2432,将该颜色数据值从该高速缓存中读出。
然而,如果这些颜色数据值既没有在存储器中也没有在高速缓存中被找到,则使用针对该图像区域的每一个像素的清晰颜色的颜色数据值的多个实例来对所尝试的读取操作做出响应。这是在保持清晰颜色作为针对每一个像素的默认颜色,直到经由渲染被着色。
图9说明了适于实现先前描述的各种实施例的示例性处理架构3000的实施例。更具体地说,处理架构3000(或其变形)可以实现为计算设备1000和/或控制器200的一部分。应该注意,向处理架构3000的部件给出附图标记,该附图标记中的后两位数字与较早描绘和描述的作为计算设备1000和控制器200的一部分的部件的附图标记的最后两位数字相对应。这样做是作为一种辅助手段来关联计算设备1000的这些部件和控制器200,可以在各种实施例中采用这一示例性处理架构。
处理架构3000包括常用于数字处理中的各种元件,包括但不局限于:一个或多个处理器、多核处理器、协处理器、存储单元、芯片集、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件、电源等等。如在本申请中使用的,术语“系统”和“部件”意在指代计算设备中执行数字处理的实体,该实体是硬件、硬件和软件的组合、软件或执行中的软件,其示例由这里阐释的示例性处理架构提供。例如,部件可以是但不局限于:在处理器元件上运行的处理、处理器元件自身、可以采用光学和/或磁存储介质的存储设备(例如硬盘驱动、阵列式多存储驱动等等)、软件对象、可执行指令序列、执行的线程、程序和/或整个计算设备(例如,整个计算机)。通过说明的方式,在服务器上运行的应用程序以及服务器二者都可以是部件。一个或多个部件可以驻留在处理和/或执行的线程中,并且部件可以在本地位于一个计算设备上和/或分布在两个或更多个计算设备之间。进而,部件可以通过各种通信媒介彼此可通信地耦合以便协调操作。该协调可以涉及信息的单向或双向交换。例如,部件可以按照经过通信介质传递的信号的形式来传递信息。信息可以实现为分配到一条或多条信号线的信号。消息(包括命令、状态、地址或数据消息)可以是这样的信号中的一个或者可以是多个这样的信号,并且可以经过各种连接和/或接口中的任意一个来串行或基本上并行地进行传输。
如所阐释的,在实现处理架构3000时,计算设备至少包括处理器元件950、支持逻辑951、存储器960、控制器900、连接到其它设备的接口990和连接955。如将解释的,取决于实现处理架构3000的计算设备的各个方面,包括它的预期用途和/或使用条件,这样的计算设备可以进一步包括额外的部件,例如但不局限于显示接口985。
连接955包括一个或多个总线、点对点互连、收发器、缓冲器、交叉点交换机和/或至少将处理器元件950可通信地耦合到存储器960的其它导体和/或逻辑。连接955可以进一步将处理器元件950耦合到接口990、音频子系统970和显示接口985中的一个或多个(取决于这些和/或其它部件中的哪些也存在)。在处理器元件950通过连接955进行这样的耦合时,处理器元件950能够执行各种以上详细描述的任务,对于计算设备1000和控制器200的任何一个实现处理体系结构3000。连接955可以利用各种技术的任意一种或技术的组合来实现,通过这样的技术来光学和/或电学地传送信号。进一步地,连接955的至少一部分可以采用符合各种工业标准的任意一个的定时和/或协议,包括但不局限于:加速图形端口(AGP)、插件总线,扩展工业标准结构(E-ISA)、微通道结构(MCA)、网络用户总线、外围部件互连总线(可扩展)(PCI-X)、PCI总线(PCI-E)、个人计算机存储卡国际协会(PCMCIA)总线、超传输TM、快速通道等等。
如前面讨论的,处理器元件950(相应于处理器元件150和250)可以包括各种市售的处理器中的任意一个,采用各种技术的任意一种并且使用按照任意一种方式物理地组合的一个或多个核心来实现。
如前面讨论的,存储器960(相应于存储器160和260)可以由基于各种技术或技术的组合中的任意一种的一个或多个不同的存储设备构成。更具体地说,如所阐释的,存储器960可以包括易失性存储器961(例如,基于一种或多种形式的RAM技术的固态存储器)、非易失性存储器962(例如,固态、铁磁或不要求提供恒定电力以保持其内容的存储器)和可移除媒体存储器963(例如,可移除硬盘或固态存储卡存储器,信息可以通过它们在计算设备之间传送)。存储器960可能包括多个不同类型的存储器的描述是在意识到计算设备中多于一种类型的存储设备的普遍使用,其中一种类型提供相对快速的读取和写入能力,通过处理器元件950能够更快速地操控数据(但是可能使用持续要求电力的“易失性”技术),而另一种类型提供相对高密度的非易失性存储器(但是可能提供相对慢的读取和写入能力)。
假定通常采用不同技术的不同存储设备的不同特性,这些不同的存储设备经过不同的存储器控制器耦合到计算设备的其它部分也是常见的,这些不同的存储器控制器经过不同的接口耦合到各自不同的存储设备。通过示例的方式,在易失性存储器961存在并且基于RAM技术的情况下,该易失性存储器961可以经过向易失性存储器961提供合适接口的存储器控制器965a来可通信地耦合到连接955,该易失性存储器961可能采用行和列寻址,并且其中存储器控制器965a可以执行行刷新和/或其它维护任务以便帮助保持存储在易失性存储器961中的信息。通过另一示例的方式,在非易失性存储器962存在并且包括一个或多个铁磁和/或固态硬盘驱动的情况下,该非易失性存储器962可以经过向非易失性存储器962提供合适接口的存储器控制器965b可通信地耦合到连接955,该非易失性存储器962可能采用信息块寻址和/或柱状寻址和扇形寻址。通过又一示例的方式,在可移除媒体存储器963存在并且包括采用一个或多个计算机可读存储介质片969的光学和/或固态硬盘驱动的情况下,该可移除媒体存储器963可以经过向可移除媒体存储器963提供合适接口的存储器控制器965c可通信地耦合到连接955,该移除媒体存储器963可能采用信息块寻址,并且其中,存储器控制器965c可以按照特定的方式来协调读取、擦除和写入操作,以便延长计算机可读存储介质969的寿命。
易失性存储器961或非易失性存储器962中的一个或者另一个可以包括机器可读存储介质形式的制造物品,在该制造物品上存储有包括由处理器元件950可执行的指令序列的例程,取决于每一个所基于的技术。通过示例的方式,在非易失性存储器962包括基于铁磁的磁盘驱动(例如,所谓的“硬驱”)的情况下,每一个这样的磁盘驱动典型地采用一个或多个旋转盘片,在其上按照各种模式来沉积磁性响应颗粒的涂层并且进行磁性取向以便按照与诸如软盘的存储介质类似的方式来存储信息,例如指令序列。通过另一示例的方式,非易失性存储器962可以由固体存储设备的排构成,以便按照与压缩闪卡类似的方式来存储信息,例如指令序列。再者,在不同时段在计算设备中采用不同类型的存储设备来存储可执行例程和/或数据也是常见的。因而,可以将包括要由处理器元件950执行的包括指令序列的程序最初存储在计算机可读存储介质969上,并且可移除媒体存储器963可以随后用于将该程序复制到非易失性存储器962用于长期存储,而不要求计算机可读存储介质969和/或易失性存储器961的持续存在,以便在执行例程时使能处理器元件950的更加快速的存取。
如前面讨论的,接口990(可能相应于接口190)可以采用与各种通信技术中的任意一种相对应的各种信令技术中的任意一种,所述各种通信技术可以用于将计算设备可通信地耦合到一个或多个其它设备。再者,各种形式的有线或无线信令中的一个或两个可以用于使处理器元件950能够与输入/输出设备(例如,所描述的示例键盘920或打印机925)和/或其它计算设备进行交互,可能经过网络(例如,网络999)或互连的网络集合。在意识到通常必须由任意一个计算设备支持的多种类型的信令和/或协议的通常很大不同的特性中,将接口990描述为包括多个不同的接口控制器995a、995b和995c。接口控制器995a可以采用各种类型的有线数据串行接口或射频无线接口中的任意一种,以便从诸如所描述的键盘920的用户输入设备接受串行传输的消息。接口控制器955b可以采用各种基于布线或无线的信令、定时和/或协议中的任意一种以便经过所描述的网络999(也许是由一个或多个链接、更小的网络构成的网络,或者也许是互联网)来接入其它计算设备。接口955c可以采用能够使用串行或并行信号传输来向所描述的打印机925传送数据的各种导电布线中的任意一种。经过接口990的一个或多个接口控制器可通信地耦合的设备的其它示例包括但不局限于:麦克风、远程控制、手写笔、读卡器、指纹识别器、虚拟现实交互手套、图形输入板、摇杆、其它键盘、视网膜扫描仪、触摸屏的触摸输入部件、轨迹球、各种传感器、用于监控人的移动以便接受命令和/或经由手势和/或面部表情由这些人发出的数据的相机或相机阵列、激光打印机、喷墨打印机、机械机器人、铣床等等。
在计算设备可通信地耦合到(或许,实际上结合)显示器(例如,所描述的示例显示器980,相应于显示器180)的情况下,实现处理架构3000的这样的计算设备还可以包括显示接口985。尽管在可通信地耦合到显示器时可以采用更一般化类型的接口,但是当在显示器上视觉地显示各种形式的内容时经常要求多少专门的附加处理,以及所使用的基于布线的接口的多少特殊的性质,这往往使得提供不同的显示接口是期望的。在显示器980的通信耦合中可以由显示接口985采用的有线和/或无线信令技术可以利用符合各种工业标准中的任意一种的信令和/或协议,包括但不局限于:各种模拟视频接口、数字视频接口(DVI)、显示端口等等中的任意一个。
更一般地,计算设备1000的各种元件可以包括各种硬件元件、软件元件、或两者的结合。硬件元件的示例可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器元件、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片集等等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、计算机程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件界面、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任意组合。然而,确定实施例是使用硬件元件和/或软件元件实现可以根据各种因素变化,例如,期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计或性能约束,如对于给定实现所期望的。
一些实施例可以使用表述“一个实施例”或“实施例”以及它们的派生词来描述。这些术语意味着结合该实施例描述的特定的特征、结构、或者特性可以包括在至少一个实施例中。短语“在一个实施例中”在说明书中各个地方的出现不一定都指代相同的实施例。此外,可以使用表述“耦合”和“连接”以及它们的派生词来描述一些实施例。这些术语并不一定是彼此的同义词。例如,可以使用术语“连接”和“耦合”来描述一些实施例,以便指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”也可以意味着两个或更多个元件没有彼此直接地接触,但是仍然协作或彼此交互。而且,可以组合来自不同实施例的方面或元件。
要强调的是,提供本公开的摘要以便允许读者快速地确定本技术公开的性质。它被提交的理解是,其不会被用来解释或限制权利要求的范围或含义。此外,在前面的详细描述中,可以看出,出于简化本公开的目的,在单个实施例中将各种特征分组在一起。这一公开的方法不应该被解释为反映要求保护的实施例比在每一项权利要求中明确引述的特征更多的特征的意图。相反,如以下权利要求反映的,创造性主题在于少于单个公开实施例的所有特征。因而,将下面的权利要求由此结合到详细说明中,每一个权利要求自身作为单独的实施例。在所附的权利要求中,使用术语“包括”和“在其中”分别作为各自的术语“包含”和“其中”的普通英语的等同物。而且,术语“第一”、“第二”、“第三”等等仅仅作为标签使用,并且并不意在对其对象强加数字要求。
上面描述的内容包括所公开的体系结构的示例。当然,不可能描述部件和/或方法的每一个可想到的组合,但是本领域的普通技术人员可以认识到,许多进一步的组合和排列都是可能的。因此,该新颖的体系结构意在涵盖落入所附权利要求的精神和范围内的所有这样的更改、修改和变化。详细的公开现在转向提供涉及进一步实施例的示例。下面提供的示例并不意在是限制性的。
一种用于渲染视觉图像的装置的示例包括处理器元件;以及用于在处理器元件上执行的逻辑,以便将图像的像素块的颜色数据值存储在高速缓存的高速缓存行的第一部分中,将该第一部分已经被写入和高速缓存行的第二部分还未被写入的指示存储在每部分表中,将第一部分和第二部分的内容逐出到代表图像并且被存储在存储器中的图像数据,对存储在每部分表中的指示做出响应,将第一部分的内容存储在图像数据中,并且将清晰颜色的颜色数据值的实例代替第二部分的内容而存储在图像数据中。
装置的上述示例,其中像素块包括图像的像素区域的像素的第一个二维阵列,并且该区域包括比第一个二维阵列更大的像素的第二个二维阵列。
装置的任一上述示例,其中所述逻辑用于将与高速缓存的其它高速缓存行相比较何时对该高速缓存行进行最后写入的指示存储在每行表中,并且对与至少一个其它高速缓存行相比较该高速缓存行最近较少被写入做出响应,选择所述高速缓存行要被逐出。
装置的任何的上述示例,其中所述逻辑用于通过对象的至少一个图形基元的光栅化来推导像素块的颜色数据值。
装置的任何的上述示例,其中所述逻辑用于对图像的渲染完成做出响应,逐出高速缓存中仍然存储颜色数据值的所有高速缓存行。
装置的任何的上述示例,其中所述装置包括复用器,所述复用器对存储在每部分表中的指示做出响应,将第一部分的内容传输到存储器,丢弃第二部分的内容,并且向存储器提供清晰颜色的颜色数据值的实例来代替第二部分的内容。
装置的任何的上述示例,其中所述逻辑用于初始化每块表中的比特,以便指示所述图像数据的第一区域数据中没有块数据的段被写入和所述图像数据的第二区域数据中没有块数据的段被写入,并且改变每块表的比特的子集,以便对第一部分的内容和清晰颜色的颜色数据值的实例在所述第一区域数据中的存储做出响应,存储所述第一区域数据的多段块数据已被写入的指示。
装置的任何的上述示例,其中所述逻辑用于对图像的渲染完成做出响应并且对存储在每块表中的第二区域数据中没有块数据的段已被写入的指示做出响应,将清晰颜色的颜色数据值的多个实例存储在第二区域数据中。
装置的任何的上述示例,其中每块表用于可选地用于指示单个像素的样本块是否按照反锯齿模式被写入。
装置的任何的上述示例,其中所述逻辑用于对像素的颜色数据值是被存储在高速缓存行中还是被存储在图像数据中做出响应,选择高速缓存行和图像数据中的一个,以便提供像素的颜色数据值,以便对读取该像素的颜色数据值的读取操作做出响应。
装置的任何的上述示例,其中所述逻辑用于对像素的颜色数据值还未被存储在高速缓存行或图像数据中做出响应,提供清晰颜色的颜色数据值,以便对读取操作做出响应。
用于渲染视觉图像的另一装置的示例包括处理器元件;以及逻辑,所述逻辑用于初始化每块表中的比特,以便指示在代表图像的图像数据的第一区域数据中没有块数据的段被写入和在所述图像数据的第二区域数据中没有块数据的段被写入,将颜色数据值存储在第一区域数据中,将该第一区域数据已被写入的指示存储在每块表中,并且对图像的渲染完成做出响应并对存储在每块表中的第二区域数据中的所述第二区域数据中没有块数据的段已被写入做出响应,将清晰颜色的颜色数据值的多个实例存储在第二区域数据中。
另一装置的上述示例,其中所述装置包括高速缓存,并且所述逻辑用于将所述图像的像素块的颜色数据值存储在所述高速缓存的高速缓存行的第一部分中,将第一部分已被写入的指示和高速缓存行的第二部分还未被写入的指示存储在每部分表中,将第一和第二部分的内容逐出到图像数据,并且对存储在每部分表中的指示做出响应,将第一部分的内容存储在图像数据中,且将清晰颜色的颜色数据值的实例代替第二部分的内容而存储在第一区域数据中。
另一装置的任一上述示例,其中所述像素块包括所述图像的像素区域的像素的第一个二维阵列,并且所述区域包括比所述第一个二维阵列更大的像素的第二个二维阵列。
另一装置的任一上述示例,其中所述逻辑用于将与高速缓存的其它高速缓存行相比较何时对该高速缓存行进行最后写入的指示存储在每行表中;并且对与至少一个其它高速缓存行相比较该高速缓存行最近较少被写入做出响应,选择该高速缓存行要被逐出。
另一装置的任何的上述示例,其中所述逻辑用于通过对象的至少一个图像基元的光栅化来推导像素块的颜色数据值。
另一装置的任何的上述示例,其中所述逻辑用于对图像的渲染完成做出响应,逐出高速缓存中仍然存储颜色数据值的所有高速缓存行。
一种渲染视觉图像的计算机实现的方法的示例包括通过对象的至少一个图像基元的光栅化来推导图像的二维像素块的颜色数据值,将所述颜色数据值存储在高速缓存的高速缓存行的第一部分中,将该第一部分已被写入和该高速缓存行的第二部分还未被写入的指示存储在每部分表中,将第一和第二部分的内容逐出到代表该图像并且被存储在存储器中的图像数据,并且对存储在每部分表中的指示做出响应,将该第一部分的内容存储在图像数据中且将清晰颜色的颜色数据值的实例代替第二部分的内容而存储在图像数据中。
计算机实现的方法的上述示例,其中所述方法包括将与高速缓存的其它高速缓存行相比较该高速缓存行何时被最后写入的指示存储在每行表中,并且对与至少一个其它高速缓存行相比较该高速缓存行最近较少被写入做出响应,选择该高速缓存行要被逐出。
计算机实现的方法的任一上述示例,其中所述方法包括对图像的渲染完成做出响应,逐出高速缓存中仍然存储颜色数据值的所有高速缓存行。
计算机实现的方法的任何的上述示例,其中所述方法包括初始化每块表中的比特,以便指示所述图像数据的第一区域数据中没有块数据的段被写入和所述图像数据的第二区域数据中没有块数据的段被写入,并且改变每块表的比特的子集,以便对所述第一部分的内容和所述清晰颜色的颜色数据值在所述第一区域数据中的存储做出响应,存储所述第一区域数据的多段块数据已被写入的指示。
计算机实现的方法的任何的上述示例,其中所述方法包括对图像的渲染完成做出响应并且对存储在每块表中的所述第二区域数据中没有块数据的段已被写入的指示做出响应,将清晰颜色的颜色数据值的多个实例存储在第二区域数据中。
计算机实现的方法的任何的上述示例,其中所述方法包括对像素的颜色数据值是被存储在高速缓存行还是被存储在图像数据中做出响应,选择高速缓存行和图像数据中的一个,以便提供像素的颜色数据值,以便对读取所述像素的颜色数据值的读取操作做出响应。
计算机实现的方法的任何的上述示例,其中所述方法包括对所述像素的颜色数据值还未被存储在高速缓存行或图像数据中做出响应,提供清晰颜色的颜色数据值,以便对读取操作做出响应。
一种用于渲染可视图像的装置的示例包括用于执行计算机实现的方法的任何上述示例的模块。
一种包括指令的至少一个机器可读存储介质的示例,当被计算设备执行时,所述指令使所述计算设备通过对象的至少一个图像基元的光栅化来推导该对象的图像的二维像素块的颜色数据值,将该颜色数据值存储在高速缓存的高速缓存行的第一部分中,将该第一部分已被写入和高速缓存行的第二部分还未被写入的指示存储在每部分表中,将第一部分和第二部分的内容逐出到代表图像并且被存储在存储器中的图像数据,并且对存储在每部分表中的指示做出响应,将第一部分的内容存储在图像数据中,且将清晰颜色的颜色数据值的实例代替第二部分的内容而存储在图像数据中。
至少一个机器可读存储介质的上述示例,其中使所述计算设备存储与高速缓存的其它高速缓存行相比较该高速缓存行何时被最后写入的指示存储在每行表中,并且对与至少一个其它高速缓存行相比较该高速缓存行最近较少被写入做出响应,选择该高速缓存行要被逐出。
至少一个机器可读存储介质的任一上述实例,其中使所述计算设备对图像的渲染完成做出响应而逐出高速缓存中仍然存储颜色数据值的所有高速缓存行。
至少一个机器可读存储介质的任何的上述示例,其中使所述计算设备初始化每块表中的比特,以便指示图像数据的第一区域数据中没有块数据的段被写入和在图像数据的第二区域数据中没有块数据的段被写入,并且改变每块表的比特的子集,以便对第一部分的内容和清晰颜色的颜色数据值在第一区域数据中的存储做出响应,存储所述第一区域数据的块数据的多个段已被写入的指示。
至少一个机器可读存储介质的任何的上述示例,其中使所述计算设备对图像的渲染完成做出响应并且对存储在每块表中的第二区域数据中没有块数据的段已被写入的指示做出响应,将清晰颜色的颜色数据值的多个实例存储在第二区域数据中。
至少一个机器可读存储介质的任何的上述示例,其中使所述计算设备对像素的颜色数据值被存储在高速缓存行中还是被存储在图像数据中做出响应,选择高速缓存行和图像数据中的一个,以便提供像素的颜色数据值,以便对用于读取该像素的颜色数据值的读取操作做出响应。
至少一个机器可读存储介质的任何的上述示例,其中使所述计算设备对像素的颜色数据值还未被存储在高速缓存行或图像数据中做出响应,提供清晰颜色的颜色数据值,以便对读取操作做出响应。
用于渲染视觉图像的又一装置的示例包括模块,所述模块通过对象的至少一个图像基元的光栅化来推导该对象的图像的二维像素块的颜色数据值,将所述颜色数据值存储在高速缓存的高速缓存行的第一部分中,将所述第一部分已被写入和所述高速缓存行的第二部分还未被写入的指示存储在每部分表中,将第一部分和第二部分的内容逐出到代表所述图像并且被存储在存储器中的图像数据,并且对存储在每部分表中的指示做出响应,将所述第一部分的内容存储到所述图像数据,且将清晰颜色的颜色数据值的实例代替第二部分的内容而存储在所述图像数据中。
又一装置的上述示例包括模块,所述模块用于将与所述高速缓存的其它高速缓存行相比较该高速缓存行何时被最后写入的指示存储在每行表中,并且对与至少一个其它高速缓存行相比较该高速缓存行最近较少被写入做出响应,选择该高速缓存行要被逐出。
又一装置的任一上述示例包括模块,所述模块用于对图像的渲染完成做出响应,逐出高速缓存中仍然存储颜色数据值的所有高速缓存行。
又一装置的任何的上述示例包括模块,所述模块用于初始化每块表中的比特,以便指示所述图像数据的第一区域数据中没有块数据的段被写入和所述图像数据的第二区域数据中没有块数据的段被写入,并且改变每块表的比特的子集,以便对所述第一部分的内容和所述清晰颜色的颜色数据值的实例在所述第一区域数据中的存储做出响应,存储所述第一区域数据的多段块数据已被写入的指示。
又一装置的任何的上述示例包括模块,所述模块用于对图像的渲染完成做出响应并且对存储在每块表中的第二区域数据中的没有块数据的段已被写入的指示做出响应,将清晰颜色的颜色数据值的多个实例存储在第二区域数据中。
又一装置的任何的上述示例包括模块,所述模块用于对像素的颜色数据值被存储在高速缓存行中还是被存储在图像数据中做出响应,选择高速缓存行和图像数据中的一个,以便提供像素的颜色数据值,以便对读取操作做出响应。
又一装置的任何的上述示例包括模块,所述模块用于对像素的颜色数据值还未被存储在高速缓存行或图像数据中做出响应,提供清晰颜色的颜色数据值,以便对读取操作做出响应。

Claims (25)

1.一种用于渲染视觉图像的装置,包括:
处理器元件;以及
用于在处理器元件上执行的逻辑,所述逻辑用于:
将图像的像素块的颜色数据值存储在高速缓存的高速缓存行的第一部分中;
将所述第一部分已被写入和所述高速缓存行的第二部分还未被写入的指示存储在每部分表中;
将所述第一部分和所述第二部分的内容逐出到代表所述图像并且被存储在存储器中的图像数据;以及
对存储在所述每部分表中的所述指示做出响应,将所述第一部分的所述内容存储在所述图像数据中,并且将清晰颜色的颜色数据值的实例代替所述第二部分的所述内容而存储在所述图像数据中。
2.如权利要求1所述的装置,所述像素块包括所述图像的像素区域的像素的第一二维阵列,并且所述区域包括比所述第一二维阵列更大的像素的第二二维阵列。
3.如权利要求1所述的装置,所述逻辑用于:
将与所述高速缓存的其它高速缓存行相比较所述高速缓存行何时被最后写入的指示存储在每行表中;并且
对与至少一个其它高速缓存行相比较所述高速缓存行最近较少被写入做出响应,选择要被逐出的所述高速缓存行。
4.如权利要求1所述的装置,所述逻辑用于通过对象的至少一个图像基元的光栅化来推导所述像素块的所述颜色数据值。
5.如权利要求4所述的装置,所述逻辑用于对所述图像的渲染完成做出响应,逐出所述高速缓存中仍然存储颜色数据值的所有高速缓存行。
6.如权利要求1所述的装置,包括复用器,所述复用器对存储在所述每部分表中的指示做出响应以便:
将所述第一部分的所述内容传送到所述存储器;
丢弃所述第二部分的所述内容;并且
向所述存储器提供清晰颜色的颜色数据值的实例来代替所述第二部分的所述内容。
7.如权利要求1所述的装置,包括每块表,所述逻辑用于:
初始化所述每块表中的比特,以便指示所述图像数据的第一区域数据中没有块数据的段被写入以及所述图像数据的第二区域数据中没有块数据的段被写入;并且
改变所述每块表的所述比特的子集,以便对所述第一部分的所述内容和所述清晰颜色的所述颜色数据值的所述实例在所述第一区域数据中的存储做出响应,存储所述第一区域数据的多段块数据已被写入的指示。
8.如权利要求7所述的装置,所述逻辑用于对所述图像的渲染完成做出响应并且对存储在所述每块表中的所述第二区域数据中没有块数据的段已被写入的指示做出响应,将所述清晰颜色的所述颜色数据值的多个实例存储在所述第二区域数据中。
9.如权利要求7所述的装置,所述每块表用于可选地用于指示单个像素的样本块是否按照反锯齿模式被写入。
10.如权利要求1所述的装置,所述逻辑用于对所述像素的所述颜色数据值被存储在所述高速缓存行中还是被存储在所述图像数据中做出响应,选择所述高速缓存行和所述图像数据中的一个,以便提供像素的颜色数据值来对用于读取所述像素的所述颜色数据值的读取操作做出响应。
11.如权利要求10所述的装置,所述逻辑用于对所述像素的所述颜色数据值还未被存储在所述高速缓存行中或者所述图像数据中做出响应,提供所述清晰颜色的颜色数据值,以便对读取操作做出响应。
12.一种用于渲染视觉图像的装置,包括:
处理器元件;以及
逻辑,所述逻辑用于:
初始化每块表中的比特,以便指示代表所述图像的图像数据的第一区域数据中没有块数据的段被写入以及所述图像数据的第二区域数据中没有块数据的段被写入;
将颜色数据值存储在所述第一区域数据中;
将所述第一区域数据已被写入的指示存储在所述每块表中;以及
对所述图像的渲染完成做出响应并且对存储在所述每块表中的所述第二区域数据中没有块数据的段已被写入的指示做出响应,将清晰颜色的颜色数据值的多个实例存储在所述第二区域数据中。
13.如权利要求12所述的装置,包括高速缓存,所述逻辑用于:
将所述图像的像素块的颜色数据值存储在所述高速缓存的高速缓存行的第一部分中;
将所述第一部分已被写入以及所述高速缓存行的第二部分还未被写入的指示存储在每部分表中;
将所述第一部分和所述第二部分的内容逐出到所述图像数据;并且
对存储在所述每部分表中的所述指示做出响应,将所述第一部分的所述内容存储在所述图像数据中,并且将清晰颜色的颜色数据值的实例代替所述第二部分的所述内容而存储在所述第一区域数据中。
14.如权利要求13所述的装置,所述像素块包括所述图像的像素区域的像素的第一二维阵列,并且所述区域包括比所述第一二维阵列更大的像素的第二二维阵列。
15.如权利要求13所述的装置,所述逻辑用于:
将与所述高速缓存的其它高速缓存行相比较所述高速缓存行何时被最后写入的指示存储在每行表中;并且
对与至少一个其它高速缓存行相比较所述高速缓存行最近较少被写入做出响应,选择要被逐出的所述高速缓存行。
16.如权利要求13所述的装置,所述逻辑用于通过对象的至少一个图像基元的光栅化来推导所述像素块的所述颜色数据值。
17.如权利要求13所述的装置,所述逻辑用于对所述图像的渲染完成做出响应,逐出所述高速缓存中仍然存储颜色数据值的所有高速缓存行。
18.一种渲染视觉图像的计算机实现的方法,包括:
通过对象的至少一个图像基元的光栅化来推导图像的二维像素块的颜色数据值;
将所述颜色数据值存储在高速缓存的高速缓存行的第一部分中;
将所述第一部分已被写入和所述高速缓存行的第二部分还未被写入的指示存储在每部分表中;
将所述第一部分和所述第二部分的内容逐出到代表所述图像并且被存储在存储器中的图像数据;以及
对存储在所述每部分表中的所述指示做出响应,将所述第一部分的所述内容存储在所述图像数据中,并且将清晰颜色的颜色数据值的实例代替所述第二部分的所述内容而存储在所述图像数据中。
19.如权利要求18所述的计算机实现的方法,包括:
将与所述高速缓存的其它高速缓存行相比较所述高速缓存行何时被最后写入的指示存储在每行表中;并且
对与至少一个其它高速缓存行相比较所述高速缓存行最近较少被写入做出响应而选择要被逐出的所述高速缓存行。
20.如权利要求18所述的计算机实现的方法,包括对所述图像的渲染完成做出响应,逐出所述高速缓存中仍然存储颜色数据值的所有高速缓存行。
21.如权利要求18所述的计算机实现的方法,包括:
初始化每块表中的比特,以便指示所述图像数据的第一区域数据中没有块数据的段被写入以及所述图像数据的第二区域数据中没有块数据的段被写入;并且
改变所述每块表的所述比特的子集,以便对所述第一部分的所述内容和所述清晰颜色的所述颜色数据值的所述实例在第一区域数据中的存储做出响应,存储所述第一区域数据的多段块数据已被写入的指示。
22.如权利要求21所述的计算机实现的方法,包括对所述图像的渲染完成做出响应并且对存储在所述每块表中的所述第二区域数据中没有块数据的段已被写入的指示做出响应,将所述清晰颜色的所述颜色数据值的多个实例存储在所述第二区域数据中。
23.如权利要求18所述的计算机实现的方法,包括对所述像素的所述颜色数据值是被存储在所述高速缓存行还是被存储在所述图像数据中做出响应,选择所述高速缓存行和所述图像数据中的一个,以便提供像素的颜色数据值,以便对用于读取所述像素的所述颜色数据值的读取操作做出响应。
24.如权利要求18所述的计算机实现的方法,包括对所述像素的所述颜色数据值还未被存储在所述高速缓存行或者所述图像数据中做出响应,提供所述清晰颜色的颜色数据值,以便对所述读取操作做出响应。
25.一种用于渲染视觉图像的装置,包括用于执行权利要求18-24中的任意一项的方法的模块。
CN201410257530.4A 2013-03-14 2014-03-13 改善渲染效率的技术 Expired - Fee Related CN104063841B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/826,114 US9324128B2 (en) 2013-03-14 2013-03-14 Techniques for improving rendering efficiency
US13/826,114 2013-03-14

Publications (2)

Publication Number Publication Date
CN104063841A true CN104063841A (zh) 2014-09-24
CN104063841B CN104063841B (zh) 2018-01-19

Family

ID=50624358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410257530.4A Expired - Fee Related CN104063841B (zh) 2013-03-14 2014-03-13 改善渲染效率的技术

Country Status (4)

Country Link
US (1) US9324128B2 (zh)
EP (1) EP2779088B1 (zh)
CN (1) CN104063841B (zh)
TW (1) TWI512677B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107464208A (zh) * 2017-07-24 2017-12-12 浙江大学 一种图形绘制流水线中像素着色结果重用方法
CN108701347A (zh) * 2016-03-28 2018-10-23 英特尔公司 用于多格式无损压缩的方法和装置
CN113934491A (zh) * 2021-09-30 2022-01-14 阿里云计算有限公司 一种大数据处理方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180067709A1 (en) * 2016-09-05 2018-03-08 Atsushi Sakaue Control device, image forming system, and non-transitory recording medium

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5202969A (en) 1988-11-01 1993-04-13 Hitachi, Ltd. Single-chip-cache-buffer for selectively writing write-back and exclusively writing data-block portions to main-memory based upon indication of bits and bit-strings respectively
AU662973B2 (en) * 1992-03-09 1995-09-21 Auspex Systems, Inc. High-performance non-volatile ram protected write cache accelerator system
GB9915012D0 (en) * 1999-06-29 1999-08-25 Koninkl Philips Electronics Nv Z-buffering graphics system
US6433788B1 (en) * 1999-07-30 2002-08-13 Ati International Srl Dual fragment-cache pixel processing circuit and method therefore
TW577027B (en) * 2002-01-29 2004-02-21 Silicon Integrated Sys Corp Device and method clipping primitive in computer graphics system
GB2409062C (en) * 2003-12-09 2007-12-11 Advanced Risc Mach Ltd Aliasing data processing registers
US9214007B2 (en) * 2008-01-25 2015-12-15 Via Technologies, Inc. Graphics processor having unified cache system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108701347A (zh) * 2016-03-28 2018-10-23 英特尔公司 用于多格式无损压缩的方法和装置
CN108701347B (zh) * 2016-03-28 2024-03-01 英特尔公司 用于多格式无损压缩的方法和装置
CN107464208A (zh) * 2017-07-24 2017-12-12 浙江大学 一种图形绘制流水线中像素着色结果重用方法
CN107464208B (zh) * 2017-07-24 2019-07-09 浙江大学 一种图形绘制流水线中像素着色结果重用方法
CN113934491A (zh) * 2021-09-30 2022-01-14 阿里云计算有限公司 一种大数据处理方法及装置
CN113934491B (zh) * 2021-09-30 2023-08-22 阿里云计算有限公司 一种大数据处理方法及装置

Also Published As

Publication number Publication date
EP2779088B1 (en) 2015-10-28
US20140267338A1 (en) 2014-09-18
EP2779088A1 (en) 2014-09-17
TWI512677B (zh) 2015-12-11
TW201447810A (zh) 2014-12-16
CN104063841B (zh) 2018-01-19
US9324128B2 (en) 2016-04-26

Similar Documents

Publication Publication Date Title
JP6783866B2 (ja) 中心窩レンダリングされるディスプレイ
US10417812B2 (en) Systems and methods for data visualization using three-dimensional displays
CN104798108B (zh) 用于改善msaa渲染效率的技术
US7602395B1 (en) Programming multiple chips from a command buffer for stereo image generation
CN106204712B (zh) 分段线性不规则光栅化
US11107280B1 (en) Occlusion of virtual objects in augmented reality by physical objects
CA1316611C (en) Method and apparatus for fractional double buffering
CN116897326A (zh) 人工现实中虚拟对象的手部锁定渲染
CN104063841A (zh) 改善渲染效率的技术
WO2014036652A1 (en) Method and device for selective display refresh
EP3804347B1 (en) A method for processing image data with reduced transmission bandwidth for display
US20090195539A1 (en) Method of processing three-dimensional image in mobile device
CN105474300A (zh) 显示器接口分区
WO2022058012A1 (en) Rendering and post-processing filtering in a single pass
US10019349B2 (en) Cache memory and method of managing the same
US20230368432A1 (en) Synthesized Camera Arrays for Rendering Novel Viewpoints
US20220004328A1 (en) Hierarchical power management of memory for artificial reality systems
US20140354657A1 (en) Techniques for rendering and caching graphics assets
US9245370B2 (en) Image drawing apparatus, computer-readable medium storing program, and method of the same
CN114930288A (zh) 用于促进对用于显示器下设备显示器的图像的区域处理的方法和装置
WO2021044441A1 (en) Interactive augmented reality (ar) based video creation from existing video

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180119

Termination date: 20210313

CF01 Termination of patent right due to non-payment of annual fee