CN101563712B - 快速像素渲染处理 - Google Patents

快速像素渲染处理 Download PDF

Info

Publication number
CN101563712B
CN101563712B CN2007800465859A CN200780046585A CN101563712B CN 101563712 B CN101563712 B CN 101563712B CN 2007800465859 A CN2007800465859 A CN 2007800465859A CN 200780046585 A CN200780046585 A CN 200780046585A CN 101563712 B CN101563712 B CN 101563712B
Authority
CN
China
Prior art keywords
sub
individual treated
screen
treated thread
viewing area
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
Application number
CN2007800465859A
Other languages
English (en)
Other versions
CN101563712A (zh
Inventor
魏建
吴车惠
詹姆斯·M·布朗
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101563712A publication Critical patent/CN101563712A/zh
Application granted granted Critical
Publication of CN101563712B publication Critical patent/CN101563712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

本发明揭示一种在最后级(像素渲染)中并行且独立地处理子屏幕的像素的三维(3D)图形管线。所述子屏幕任务存储于共享存储器中的列表中。所述共享存储器由指定用于像素渲染的多个处理线程存取。所述处理线程以有序方式捕获并锁定子屏幕任务且处理所述任务以形成供在屏幕上显示的位图。通过将其上叠加有顶点信息的显示区域划分成M×N个子屏幕任务来形成所述任务。可基于系统简档改变M及N。

Description

快速像素渲染处理
技术领域
本揭示内容通常涉及图像处理,且更具体来说,涉及在没有专用硬件图形加速器的情况下提供快速像素渲染处理的三维(3D)图形管线的技术。
背景技术
将关于3D对象的信息转换成可显示的位图称为像素渲染,且需要相当大的存储器及处理功率。过去,仅可在功能强大的工作台上获得3D图形,而现在通常可在个人计算机(PC)中找到3D图形加速器。硬件图形加速器含有存储器(例如,指令随机存取存储器(IRAM))及专业化微处理器以处理众多3D渲染操作。用于桌面的Open
Figure GSB00000011382300011
(开放式图形库)界定用于写入产生3D及2D计算机图形的应用程序的应用程序编程界面(API)。所述API包含用于从基元绘制复杂三维场景的数百个函数。
Figure GSB00000011382300012
是所述桌面
Figure GSB00000011382300013
的子集,其形成软件与图形之间的界面。所述3D图形引擎
Figure GSB00000011382300014
通常实施为两个部分。第一部分包含处理顶点的那些函数且通常在数字信号处理(DSP)固件中实施。第二部分包含用于像素渲染的那些函数且在专用硬件图形加速器中实施。执行像素渲染的第二部分是常规3D图形引擎的最后管线级。最后管线级处理输入三角形集以产生所述图形图像的像素表示。然而,所述最后管线级通常是引擎中整个3D图形管线的性能瓶颈。因此,改善用于像素渲染的最后管线级的性能(以每秒的像素计)是非常重要的。
通常,在像素渲染操作期间,需要按与输入所述三角形的相同次序来依序处理每一输入三角形。因此,阻止一具有多线程的处理器利用交错式并行处理来处理输入三角形。
此外,所述硬件图形加速器通常不灵活或不易伸缩。因此,所述硬件图形加速器不易添加新特征、支持3D图形标准的更高版本(例如
Figure GSB00000011382300015
1.0、1.1...)、支持不同的应用程序配置及定制要求。此外,所述硬件图形加速器不易于针对不同的性能要求(帧速率、屏幕大小、像素速率、三角形速率等)而伸缩,以最优化硅成本及系统功率消耗。
如可容易地看到,专用硬件图形加速器占据小手持计算装置(例如,移动或蜂窝式电话)中的硅面积。因此,专用硬件图形加速器会使手持计算装置因包含所述专用硬件图形加速器及所用IRAM而增加其总成本。使用专用硬件图形加速器还产生与DSP的数据业务,从而添加开销且消耗功率。
因此,此项技术中需要在没有专用硬件图形处理器的情况下提供更快像素渲染处理的三维(3D)图形管线的技术。
发明内容
本文中描述在没有专用硬件图形加速器的情况下提供更快像素渲染处理的三维(3D)图形管线的技术。在实施例中,三维(3D)图形管线包含顶点处理级,其可操作以输出3D图形图像的顶点信息。显示细分级将显示区域(其上叠加有输出顶点信息)中的像素划分为子屏幕,所述子屏幕形成子屏幕任务列表。像素渲染级并行且独立地处理所述子屏幕任务列表中的多个子屏幕任务。
在另一方面中,无线装置具有具有多个处理线程的数字信号处理器、由所述处理线程存取的共享存储器及处理器。所述处理器可操作以通过并行且独立地处理子屏幕任务列表中的多个子屏幕任务中的那些像素,而在没有专用图形加速器的情况下执行像素渲染。所述子屏幕任务包含叠加有顶点输出信息的显示区域的像素的一部分。
下文中将进一步详细阐述本发明揭示内容的各种方面及实施例。
附图说明
当结合图式参照下文所述详细说明时,本发明揭示内容的各方面及实施例将变得更明了,在所有图式中相同的参考字符识别对应的元件。
图1图解说明3D成像设备的一般方框图。
图2图解说明与共享存储器介接的交错式多线程处理器。
图3图解说明交错式多线程处理器的细节,其中显示出每一线程的细节。
图4图解说明多线程处理器使用6个线程处理交错指令的执行时间与核心管线的图表。
图5图解说明通过两个线程处理的两个并行指令集。
图6图解说明在实例性3D成像设备中3D图形管线的一般流程图。
图7图解说明3D图形管线的过程的一般方框图。
图8A图解说明被细分为MxN个栅格的显示空间,其中M>1且N>1。
图8B图解说明用于处理图8A的经细分的显示空间的任务列表。
图9图解说明被细分为MxN个栅格的显示空间,其中M=1且N>1。
图10图解说明被细分为MxN个栅格的显示空间,其中M>1且N=1。
图11图解说明由顶点坐标界定且具有多个像素的三角形。
图12图解说明用于在被细分为一组四个细分区域的区域中处理三角形的指令操作的图形表示。
图13图解说明使用多线程处理器的3D图形管线方法的流程图。
具体实施方式
在本文中,“例示性”一词用于意指“担当实例、例子或例解”。本文中描述为“实例性”的任何实施例或设计皆未必应视为比其它实施例或设计佳或有利。
众多游戏应用程序需要在二维(2D)空间(例如,显示屏幕)中显示3D对象的三维(3D)图形应用程序。2D图形中的像素具有定位、色彩及亮度的特性,而3D像素添加指示所述点处于虚构Z轴上何处的深度特性。纹理随着3D像素被组合而形成,所述像素的每一者具有其自己的深度值。
现参照图1,图中显示3D成像设备(通常标示为10)的实施例。3D成像设备10包含通信单元12、数字信号处理器(DSP)20、具有显示区域18的屏幕16,存储器24及输入/输出(I/O)单元45。共享存储器24可存储游戏应用程序或者可按用户所需或为支持设备10的特征集而存储其它应用程序(即,针对使用有线或无限网络的双向通信,及其它软件应用程序)。I/O单元45可包含键台、键盘或数据通信端口。屏幕16可操作以在显示区域18中显示2D信息以及3D图形。
3D成像设备10可包含以下装置中的一者:个人数字助理(PDA);及移动、蜂窝式或卫星电话;膝上型计算机;笔记本计算机;平板PC;掌中宝(Palm Pilot);无线通信装置或类似物。
现参照图2-5,在所述实例性实施例中,DSP 20包含交错式多线程处理器22。交错式多线程处理器22具有多个处理线程(PT)PT1、PT2、...PTX。每一处理线程(PT)PT1、PT2、...PTX共享表示为共享存储器24的同一存储器。每一处理线程1、...X均包含相应一个指令集261...26x、核心271...27x(处理单元)及寄存器堆281...28x。每一核心271...27x的输出与共享存储器24通信。指令261…26X包含用于执行以下界定的操作及用于执行3D成像设备10的特征集(例如,多媒体)的其它操作的编程代码。核心271...27x执行指令261...26x
寄存器堆281…28X是一组通用寄存器且是DSP 20或微处理器的中心级。这些寄存器堆281…28X保持所有操作数(通常从存储器载入),即,在将来自所有运算(例如,算术运算、逻辑运算等)的所有结果存储到共享存储器24中之前保持所述结果。
某些DSP架构具有四个线程。然而,DSP 20可具有多于四个的线程,例如,在没有限制的情况下,六个并行运行的处理线程。在实例性实施例中,每一并行线程(PT)PT1、PT2、...PTX提供每秒100个百万指令包(MIPS)。每一指令包可以是四(4)个指令、两(2)个指令(超标量)或仅一个指令。然而,出于效率缘由不推荐一个指令,因为DSP 20的架构去除指令间数据相依性所致的低效率。
使用术语线程或多线程来描述同时任务执行。替代单个执行路径,可将程序(操作)分解成多个同时执行的执行线程。在所述实例性实施例中,存在启动线程,其需要函数调用(或指令),且通常需要至少两个自变数:(1)所述启动指令的位址;及(2)上下文自变数。当线程正在运作及/或正在退出时,所述线程需要能够做与其它处理线程相关的两个基本工作:(1)获取共享资源且阻止其它线程使用此资源;及(2)将消息安全地发送到其它线程(例如,已完成的、就绪的线程等)。
现参照图4,其中显示所述交错式多线程并行处理的图表。在此实例中,存在六(6)个处理线程PT1、PT2、PT3、PT4、PT5及PT6。第一处理线程PT1处理第一指令集1。此由核心管线的执行时间线的第一(顶部)行表示。所述核心管线由核心271、…27X表示。当第一处理线程PT1处理第一指令集1时,第二处理线程PT2处理其第一指令集1。此由所述执行时间线的第二行表示。因此,并行处理所述第一指令集1。
第三处理线程PT3处理其第一指令集1而第一及第二处理线程PT1及PT2处理其第一指令集1。此由所述核心管线的执行时间线的第三行表示。第四处理线程PT4处理其第一指令集1。同时,第一、第二及第三处理线程PT1、PT2及PT3继续处理其相关联的第一指令集1。此由所述核心管线的执行时间线的第四行表示。
第五处理线程PT5处理其第一指令集1而第一、第二、第三及第四处理线程PT1、PT2、PT3及PT4继续处理其第一指令集1。此由所述核心管线的执行时间线的第五行表示。第六处理线程PT6处理其第一指令集1而第一、第二、第三、第四及第五处理线程PT1、PT2、PT3、PT4及PT5继续处理其第一指令集1。此由所述核心管线的执行时间线的第六行表示。因此,所述处理线程对指令的处理是交错的。
现参照图4的第七(底部)行,假设第一处理线程PT1已完成其第一指令集1,那么第一处理线程PT1开始处理第二指令集2而第二、第三、第四、第五及第六处理线程PT2、PT3、PT4、PT5及PT6继续处理其第一指令集1。因此,处理线程PT1、PT2、..PTX中的每一者的处理是并行且交错的。
描述所有处理线程的交错式处理负担太重。因此,出于说明的目的,图5中显示使用指令261及262的交错式处理,因为其与互斥相关。互斥是同时仅由一个处理线程“拥有”的工具。当处理线程试图获取互斥时,其锁定所述互斥。另一方面,如果所述互斥已被锁定,那么所述处理线程停止。当所述拥有的线程解锁所述互斥时,所述停止的线程重启且获取所述互斥的所有权。此过程在图5中显示。
在以第一处理线程PT1开始后,指令261以执行非关键代码的步骤S22A开始。步骤S22A后面是步骤S24A,其中第一处理线程PT1执行锁定互斥1指令(假设互斥1已解锁)。因此,第一处理线程PT1现在拥有互斥1。步骤S24A后面是步骤S26A,其中执行关键代码。步骤S26A后面是步骤S28A,其中在完成所述关键代码后,第一处理线程PT1执行解锁互斥1指令。此后,第一处理线程PT1在步骤S30A处重新开始非关键代码的执行。
与第一处理线程PT1并行,第二处理线程PT2在其中执行非关键代码的步骤S22B处开始指令262步骤S22B后面是步骤S24B,其中第二处理线程PT2期望在步骤S24B处锁定互斥1。然而,互斥1处于已锁定状态。因此,第二处理线程PT2的操作停止直到第一处理线程PT1在步骤S28A处解锁互斥1为止。随后,开始其中可执行所述关键代码的步骤S26B。步骤S26B后面是步骤S28B,其中在完成所述关键代码之后,第二处理线程PT2执行经解锁的互斥1指令。此后可继续其它指令。
仅在需要时,使用所述互斥工具或另一令牌工具以保证在不同处理线程中对关键区段的串行执行。此也是对执行进行串行化,而此意味着当某个代码与其它线程执行的代码发生冲突时,不可执行所述代码。由于使用共享存储器24(共享资源),互斥工具是有帮助的。
现参照图6及7,图中显示所述3D图形管线(通常标示为100)的一般流程及方框图的实施例。3D图形管线100通常将屏幕16的显示区域18中的3D表示的整体任务划分为三(3)个管线级:顶点处理(VP)级110、屏幕细分(SSD)级130及像素渲染(PR)级140。在操作中,顶点处理(VP)级110包含当前在
Figure GSB00000011382300052
中实施且由数字信号处理器(DSP)20处理的所有函数或所述函数子集。以假象方式显示通至屏幕16的线,因为屏幕16并非3D图形管线100的一部分。
VP级110包含模型视界变换操作112、投影操作114、剔除操作116、光照及着色操作118、基元组装操作120、裁剪(即:用户界定的裁剪)操作122及透视除法及视口操作124。在
Figure GSB00000011382300053
中明确界定了VP级110的这些操作中的每一者。
通常,模型视界变换操作112使用数学运算来将对象模型置于所需的位置及定向。投影操作114使用使近事物更大及远事物更小的数学运算。遮断将近对象绘制在远对象前方。剔除及裁剪操作116及122丢弃不在视界中的事物。光照操作118计算表面上的光的效应。
在所述实例性实施例中,VP级110可通过一个处理线程(图2及3)实施。顶点输出信息包含用以在显示区域16中界定三角形及其位置的顶点信息。所述顶点输出信。息叠加在显示区域16上,因为显示区域16的像素包含顶点输出信息以根据
Figure GSB00000011382300055
或其它图形库界定三角形。
屏幕细分(SSD)级130包含将显示区域18划分成M*N个子屏幕的屏幕细分操作132。显示区域18由多个叠加有所述顶点输出信息的像素P(图11)组成。来自VP级110的顶点信息提供针对显示区域18中的重叠界定三角形(例如图8A的T1原T2)的顶点信息(例如图11的V1、V2及V3)。所述顶点信息可包含顶点坐标及边缘信息。通常,每一三角形的顶点输出信息仅是数学描述集以界定封闭的区域。此数学描述集存储在共享存储器24中以使得每一处理线程(PT1、PT2、...PTX)可使用所述数学描述集来计算在其自己的子屏幕任务内的每一像素P(图11)且决定像素是否处在三角形内部。
图8A图解说明叠加于显示区域18上的顶点输出信息。在屏幕细分(SSD)级130期间,通过将组成显示区域18的像素划分或分组成MxN个子屏幕任务来细分显示区域18,如图8B中最佳所见。所述MxN个子屏幕任务是存储于共享存储器24中的MxN个独立任务。SSD级130的操作可使用与VP级110期间使用的处理线程分离的处理线程实施。另一选择为,可针对相同处理线程组合SSD级130的操作与VP级110的操作。
在图8A中所示的实施例中,将显示区域18划分成MxN个子屏幕以形成栅格,其中M>1且N>1。出于说明目的,图9显示显示区域18’被划分成MxN个子屏幕,其中M=1且N>1。箭头图解说明扫描或工作流程方向。参照图10,显示区域18″被划分成MxN个子屏幕,其中M>1且N=1。因此,显示区域18″的子屏幕形成一系列列。
像素渲染(PR)级140包含光栅化、混合及纹理化应用程序操作142以及隐藏表面去除操作144。然而,像素渲染级140可包含由
Figure GSB00000011382300061
Figure GSB00000011382300062
界定的其它操作。PR级140将来自VP级110的关于3D对象的信息转换成可在屏幕16的显示区域18中显示的位图。PR级140处理输入三角形集以产生3D图形图像的像素表示。
典型的像素渲染(PR)级可首先从顶点输出信息列表中提取三角形。接下来,所述PR级将从所述显示区域提取像素且对照所述三角形计算所述像素以确定其是否在所述三角形内部。如果被评估像素处在所述三角形内部,那么所述PR级可借助来自所述三角形的对应色彩对像素执行着色。如果被评估的像素不在所述三角形内部,则跳过所述像素。然后,所述PR级将挑选显示区域18中的下一个像素。所述PR级针对显示区域18中的其它像素重复以上过程直到已针对三角形评估或处理所有像素为止。因此,一次一个地处理像素。
然后,所述典型PR级将移到顶点输出信息列表中的下一三角形并针对当前三角形重复像素评估。
PR级140以类似方式处理多个子屏幕或子屏幕任务。不同之处在于所述子屏幕具有较少数目要评估或处理的像素而处理线程(PT1、PT2、…PTX)可独立且并行地处理多个子屏幕。因此,PR级140的处理时间比典型PR级快得多,因为每一子屏幕中有较少像素且可并行地处理多个子屏幕(其中每一处理线程在处理一相应子屏幕中的像素中皆独立地工作)。
在实例性实施例中,使用交错式多线程处理器22的一组多个处理线程PT1、PT2、…PTX来处理PR级140。所述组中的用于PR级140的线程数目可以是2或更多,其中最大值为X个线程。
在操作中,指派给像素渲染级140的每一处理线程PT1、PT2、…PTX从任务列表135捕获可用子屏幕任务并将其从任务列表135中去除。所述组处理线程PT1、PT2、…PTX以交错式并行操作方式处理输入三角形以渲染子屏幕中的像素(将输入三角形信息转换成位图以供在子屏幕中显示)。在相应一个处理线程针对所捕获子屏幕任务完成像素渲染操作之后,所述处理线程移至任务列表135中的下一可用子屏幕任务。重复此操作直到处理完所有子屏幕且完成像素渲染级140为止。
交错式多线程处理器22允许所述多线程处理为可伸缩及均一的。操作
Figure GSB00000011382300063
可由下式界定:
O ^ ( A + B ) = O ^ ( A ) + O ^ ( B )
;及
O ^ ( Σ i T i ) = Σ i O ^ ( T i )
参照图12,图中显示用于像素渲染的具有单个三角形T的四个子屏幕的方框。操作
Figure GSB00000011382300073
处理子屏幕任务S11、S12、S21及S22,其表示为各自具有三角形T的细分部分(i)的四个(i)子屏幕。因此,操作
Figure GSB00000011382300074
等于子屏幕S11的操作
Figure GSB00000011382300075
加上子屏幕S12的操作加上子屏幕S21的操作加上子屏幕S22的操作如果并行地处理所有操作
Figure GSB00000011382300079
处理像素渲染级140的总峰值性能因此是处理线程的峰值性能乘以所用的处理线程的数目。子屏幕S11具有用于三角形T的像素的细分部分T1。子屏幕S12具有用于三角形T的像素的细分部分T2。子屏幕S21具有用于三角形T的像素的细分部分T3。子屏幕S22具有用于三角形T的像素的细分部分T4。出于说明的目的,线程的数目为四(4)。由此,在此实例中,所述性能将是一个处理线程的性能乘以处理线程的数目。因此,PR级140凭借其并行处理来自多个子屏幕的像素的能力而为快速像素渲染级。
另外,可在用真实应用建立简档之后配置M及N的数目,以便可针对不同情况进一步最优化性能。配置M及N为灵活性及伸缩性提供另一较大空间。建立简档包含识别处理线程的载入(打标记计数)或者操作任务的大小或复杂性。建立简档也可包含评估其它分量,例如,与从共享存储器24转移数据及共享存储器24的存储器容量相关联的参数。借助建立简档及调整,可将帧速率、屏幕大小、像素速率、三角形速率等用来改变或变更M及N及/或变更供在PR级140中使用的处理线程PT1、PT2、…PTX的数目。剩余处理线程PT1、PT2、…PTX用于同时运行的其它应用程序,例如游戏-音频。
现参照图13,图中显示供3D图形管线100使用的3D图形管线方法200的流程图。方法200以步骤S202开始,其中执行顶点处理以产生顶点输出信息。步骤S202后面是步骤S204,其中将叠加有顶点输出信息的显示区域18细分为MxN个子屏幕。例如,如在图8A中最佳所见,三角形T1延伸跨越子屏幕S11、S21及S22且被细分为图8B中所示的其相应的细分部分T11、T12、T13。因此,图8B中的任务列表135图解说明三角形T1及T2的细分部分(出于说明的目的仅显示两个三角形)。如可了解,可更快地处理任务列表135中来自顶点输出信息的那些输入项,所述顶点输出信息的确不具有与其相关联的三角形或具有三角形的较小细分部分。因此,在像素渲染级140在显示区域18上显示表示所述三角形的3D图像之前,应完成对所述三角形的所有细分部分的处理。
步骤S204后面是步骤S206,其中形成具有或不具有三角形的子部分的子屏幕任务并将其置于任务列表135中。步骤S206后面是步骤S2081、2082及208Y,其中Y是所述组中的用于像素渲染级140的处理线程的数目(2个或更多个)。在步骤S2081处,第一处理线程(下文称为“线程1”)获得(第一)可用子屏幕任务(图8B),在步骤S2101处,处理所述子屏幕任务中的每一像素(尤其是经确定处在三角形或与所述任务相关联的三角形部分内或内部的那些像素)。步骤S2101后面是步骤S2121,其中做出其是否为任务列表135的结束的确定。如果所述确定为“是”,那么线程1的处理结束。否则,如果所述确定为“否”,那么步骤S2121返回到步骤S2081。第二处理线程(下文称为“线程2”)的操作基本上相同。线程2获得或捕获任务列表135中的下一可用子屏幕任务。步骤S2082后面是步骤S2102,其中处理所述子屏幕任务。步骤S2082后面是步骤S2102。步骤S2102后面是步骤S2122。在步骤S2122处,做出任务列表135中是否还有任何更多任务的确定。如果步骤S2122处的确定为“是”,那么所述方法结束。否则,如果所述确定为“否”,那么步骤S2122返回到步骤S2082
步骤S208Y通过线程Y获得或捕获第Y个可用子屏幕任务。步骤S208Y后面是步骤S210Y,其中处理所述子屏幕任务。步骤S210Y后面是步骤S212Y,其中做出任务列表135中是否还有任何更多任务的确定。如果所述确定为“是”,那么所述方法结束。否则,如果所述确定为“否”,那么步骤S212Y返回到步骤S208Y
在步骤S2101、S2102及S210Y期间执行的处理执行光栅化、混合、纹理化应用程序操作142及隐藏表面去除操作144。具体参照图11,具有中心点的正方形表示像素P。像素P中的有些像素处在三角形T11内部而有些像素处在三角形T11外部。每一顶点V1、V2及V3具有附有平滑描影的色彩值。使用线性插值来计算每一像素P处的色彩值。使用顶点V1、V2及V3来形成三角形T11且将此三角形置于显示区域18内。计算每一像素中心(由处在所述正方形中心的黑色点表示)处的色彩。插入包含Z深度、α、雾及纹理的各种参数。
再参照图2-4,在此实例中,存在六(6)个线程PT1、PT2、PT3、PT4、PT5及PT6。第一线程PT1可用来处理VP级110。第二线程PT2可用来处理SSD级130。剩余的四个线程PT3、PT4、PT5及PT6将用来并行地处理来自任务列表135的子屏幕任务。此处,处理线程PT3将获得第一个可用子屏幕任务1,1并处理所捕获的第一子屏幕任务1,1中的像素。处理线程PT4将获得下一个(第二个)可用子屏幕任务1,2且处理所捕获的子屏幕任务1,2中的像素。处理线程PT5将获得下一个(第三个)可用子屏幕任务1,3且处理所捕获的子屏幕任务1,3中的像素(假设M大于3)。
假设M为4,处理线程PT6将获得下一个(第四个)可用子屏幕任务1,M且处理所捕获的子屏幕任务1,M中的像素。当处理线程PT3、PT4、PT5及PT6完成其各自的子屏幕任务时,将捕获并并行地处理额外子屏幕任务直到任务列表135为空为止。
如果一个处理线程执行3M像素/秒渲染,那么处理一个像素将需要约30个指令包。即,平均每像素大约100个指令。保留六个线程中的两个线程用于VP级110及SSD级130,以使剩余的四个处理线程来做所述像素渲染,此将支持是专用硬件图形加速器的性能(12M像素/秒)四倍的VGA分辨率。
因为所有处理线程共享相同存储器24,所以所述处理线程可使用互斥工具非常有效地(不重复地)共同处理同一输入三角形数据集(子屏幕任务)。
像素渲染级140是3D图形管线100的最后管线级。PR级140处理输入三角形列表以产生3D图形图像的像素表示。以上所述的3D图形管线100改善PR级140的性能(以每秒像素计)。交错式多线程处理器22以并行运行以处理任务列表35的处理线程的数目的一倍数增加性能。
所述3D图形管线架构的优点是其在允许调整数目M及N方面的灵活性。通过增加数目M及N,降低像素渲染级140的MIPS要求。因为每一子屏幕变得越来越小,所以渲染任务变得越来越简单。此有助于增加多个处理线程的性能。处理线程也可用于其它同时应用程序,例如音频。
如可容易地看到,本文所述用于渲染3D图形图像的软件实施方案具有比专用图形加速器的硬件实施方案更高的性能。与图形加速器的硬件实施方案相比,本文所述的实施例是灵活且可伸缩的。因为本实施例是灵活的,所以易于扩展软件代码以添加新特征、支持3D图形标准的更高版本(例如OpenGL ES 1.0、1.1...)及支持不同应用配置及客户要求。本实施例的可伸缩特征允许不同的性能要求(帧速率,屏幕大小,像素速率、三角形速率等),以最优化硅成本及系统功率消耗。
此实施例还能够实现所述软件实施方案与低成本且低功率处理器配合使用,替代使用具有多-GHz时钟速率的高端处理器以达到相同的性能。
在实例性实施例中,本文所述的方法及过程可以包括一个或一个以上计算机可执行指令的计算机程序产品的形式实施于硬件、软件、固件或其任意组合中。当实施于软件中时,所述计算机程序产品可存储在计算机可读媒体上或使用计算机可读媒体传输,所述计算机可读媒体包含计算机存储媒体及计算机通信媒体。
本文中,术语“计算机存储媒体”是指适应存储致使所述计算机执行所述方法的指令的任何媒体。举例而言,而不限于此,所述计算机存储媒体可包括故态存储器装置,包含电子存储器装置(例如,RAM、ROM、EEPROM及类似物)、光学存储器装置(例如,光盘(CD)、多样化数字光盘(DVD)及类似物)、或磁性存储器装置(例如,硬驱动器、快闪驱动器、磁带驱动器及类似物)、或其它适应存储所述计算机程序产品的存储器装置、或此类存储器装置的一组合。
本文中,术语“计算机通信媒体”是指适应使用例如经调制载波、光学信号、DC或AC电流及类似方法将所述计算机程序产品从一个地点传输到另一个地点的任何实体接口。举例而言,而不限于此,所述计算机通信媒体可包括双绞线、印刷或扁平电缆、同轴电缆、光缆、数字订户线(DSL)或其它有线、无线、或光学串行或并行接口或其一组合。
上文对所揭示实施例的说明意在使任何所属领域的技术人员均可制作或使用本发明。所属领域的技术人员将易知对所述实施例的各种修改,且本文所界定的一般原理可应用于其它实施例,此并不背离本发明的精神或范围。因此,本发明并非意欲限定为本文所示的实施例,而是欲赋予其与本文所揭示的原理及新颖特征相一致的最宽广范围。

Claims (19)

1.一种三维(3D)图形管线装置,其包括:
交错式多线程处理器,其具有多个个别处理线程,所述处理器包括:
顶点处理级,其包括所述交错式多线程处理器的第一个别处理线程,所述顶点处理级可操作以输出3D图形图像的顶点信息;
显示细分级,其可操作以将叠加有所述输出顶点信息的显示区域中的像素划分为子屏幕,所述子屏幕形成子屏幕任务列表;及
像素渲染级,其至少包括不同于所述第一个别处理线程的所述交错式多线程处理器的第二个别处理线程以及不同于所述第一个别处理线程和所述第二个别处理线程的所述交错式多线程处理器的第三个别处理线程,其中,所述像素渲染用于并行且独立地使用所述第二个别处理线程处理所述子屏幕任务列表中的子屏幕任务的第一指令集以及使用所述第三个别处理线程处理所述子屏幕任务列表中的子屏幕任务的第二指令集。
2.如权利要求1所述的管线装置,其中,第一个别处理线程专用于所述顶点处理级,且其中,至少所述第二个别处理级专用于所述像素渲染级。
3.如权利要求1所述的管线装置,其中所述显示细分级与所述顶点处理级共享所述第一个别处理线程。
4.如权利要求2所述的管线装置,其中所述显示细分级使用所述交错式多线程处理器的个别处理线程中的另一处理线程。
5.如权利要求1所述的管线装置,其中所述像素渲染级用于执行光栅化、混合及纹理化操作以及隐藏表面去除操作以形成所述3D图形图像的位图。
6.如权利要求1所述的管线装置,其中所述显示区域与以下装置中的一者相关联:个人数字助理(PDA)、掌中宝、移动电话、蜂窝式电话、卫星电话、膝上型计算机、笔记本计算机及平板PC。
7.一种用于提供快速像素渲染处理的方法,其包括:
使用交错式多线程处理器的第一个别处理线程对顶点对象进行顶点处理以输出三维(3D)图形图像的顶点信息;
使用所述第一个别处理线程将所述输出顶点信息叠加在显示区域上;
将所述显示区域划分成多个子屏幕以形成任务列表中的子屏幕任务,所述显示区域具有若干像素;及
使用不同于所述第一个别处理线程的交错式多线程处理器的第二个别处理线程处理所述任务列表中的子屏幕任务的第一指令集;
并行且独立地处理所述第一指令集以及使用不同于所述第一个别处理线程和所述第二个别处理线程的所述交错式多线程处理器中的第三个别处理线程处理所述任务列表中的子屏幕任务的第二指令集。
8.如权利要求7所述的方法,还包括:
通过所述交错式多线程处理器的个别处理线程捕获并锁定所述任务列表中的相应一个可用子屏幕任务;
当捕获到时,独立地处理所述相应一个子屏幕任务的那些像素;及
针对每一随后的可用子屏幕任务,通过所述交错式多线程处理器的其它处理线程重复所述捕获并锁定步骤及所述处理步骤。
9.如权利要求8所述的方法,其中,所述交错式多线程处理器的所述第一个别处理线程专用于处理所述顶点对象以形成所述顶点信息。
10.如权利要求8所述的方法,其中将所述显示区域划分为多个子屏幕包含与处理所述顶点对象以输出所述顶点信息的顶点处理步骤共享所述第一个别处理线程。
11.如权利要求7所述的方法,还包括:
光栅化、混合及纹理化每一子屏幕任务的那些像素直到所述任务列表成为空的为止以形成所述3D图形图像的位图。
12.如权利要求7所述的方法,还包括:
产生用于在所述显示区域中显示的位图,所述显示区域与以下装置中的一者相关联:个人数字助理(PDA)、掌中宝、移动电话、蜂窝式电话、卫星电话、膝上型计算机、笔记本计算机及平板PC。
13.一种用于提供快速像素渲染处理的设备,包括:
用于使用交错式多线程处理器的第一个别处理线程对顶点对象进行顶点处理以输出三维(3D)图形图像的顶点信息的模块;
用于使用所述第一个别处理线程将所述输出顶点信息叠加在显示区域上的模块;
用于将所述显示区域划分成多个子屏幕以形成任务列表中的子屏幕任务,所述显示区域具有若干像素的模块;及
用于使用不同于所述第一个别处理线程的交错式多线程处理器的第二个别处理线程处理所述任务列表中的子屏幕任务的第一指令集的模块;
用于并行且独立地处理所述第一指令集以及使用不同于所述第一个别处理线程和所述第二个别处理线程的所述交错式多线程处理器中的第三个别处理线程处理所述任务列表中的子屏幕任务的第二指令集的模块。
14.如权利要求13所述的设备,还包括:
用于通过所述交错式多线程处理器的个别处理线程捕获并锁定所述任务列表中的相应一个可用子屏幕任务的模块;
用于当通过所述处理线程捕获到时,独立地处理所述相应一个子屏幕任务的那些像素的模块;及
用于针对每一随后的可用子屏幕任务,通过所述交错式多线程处理器的其它个别处理线程重复可操作以捕获并锁定及处理的指令的模块。
15.如权利要求14所述的设备,其中,所述交错式多线程处理器的所述第一个别处理线程专用于处理所述顶点对象以形成所述顶点信息。
16.如权利要求14所述的设备,其中,用于将所述显示区域划分为多个子屏幕的模块包含用于同处理所述顶点对象以输出所述顶点信息的模块共享所述第一个别处理线程的模块。
17.如权利要求13所述的设备,还包括:
用于光栅化、混合及纹理化每一子屏幕任务的那些像素以形成所述3D图形图像的位图的模块。
18.一种无线装置,其包括:
具有多个处理线程的数字信号处理器;
由所述处理线程存取的共享存储器;及
处理装置,其可操作以通过并行且独立地处理存储于所述共享存储器中的子屏幕任务列表中的多个子屏幕任务中的那些像素而在没有专用图形加速器的情况下执行像素渲染,所述子屏幕任务包含叠加有顶点输出信息的显示区域的像素的一部分,其中,所述处理装置用于执行如下操作:
使用交错式多线程处理器的第一个别处理线程对顶点对象进行顶点处理以输出三维(3D)图形图像的顶点信息;
使用所述第一个别处理线程将所述输出顶点信息叠加在显示区域上;
将所述显示区域划分成多个子屏幕以形成任务列表中的子屏幕任务,所述显示区域具有若干像素;及
使用不同于所述第一个别处理线程的交错式多线程处理器的第二个别处理线程处理所述子屏幕任务列表中的子屏幕任务的第一指令集;
并行且独立地处理所述第一指令集以及使用不同于所述第一个别处理线程和所述第二个别处理线程的所述交错式多线程处理器中的第三个别处理线程处理所述子屏幕任务列表中的子屏幕任务的第二指令集。
19.如权利要求18所述的装置,其中所述装置包含以下装置中的一者:个人数字助理(PDA)、掌中宝、移动电话、蜂窝式电话、卫星电话、膝上型计算机、笔记本计算机及平板PC。
CN2007800465859A 2006-12-22 2007-12-20 快速像素渲染处理 Active CN101563712B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/615,379 2006-12-22
US11/615,379 US8207972B2 (en) 2006-12-22 2006-12-22 Quick pixel rendering processing
PCT/US2007/088386 WO2008079984A1 (en) 2006-12-22 2007-12-20 Quick pixel rendering processing

Publications (2)

Publication Number Publication Date
CN101563712A CN101563712A (zh) 2009-10-21
CN101563712B true CN101563712B (zh) 2013-03-27

Family

ID=39410479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800465859A Active CN101563712B (zh) 2006-12-22 2007-12-20 快速像素渲染处理

Country Status (8)

Country Link
US (1) US8207972B2 (zh)
EP (1) EP2122575B1 (zh)
JP (1) JP4981923B2 (zh)
KR (1) KR101071073B1 (zh)
CN (1) CN101563712B (zh)
CA (1) CA2670646A1 (zh)
TW (1) TW200841274A (zh)
WO (1) WO2008079984A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4806653B2 (ja) * 2007-05-18 2011-11-02 Okiセミコンダクタ株式会社 画像処理回路
US20110298787A1 (en) * 2010-06-02 2011-12-08 Daniel Feies Layer composition, rendering, and animation using multiple execution threads
GB2491156B (en) * 2011-05-25 2019-08-07 Advanced Risc Mach Ltd Processing pipeline control
US9727385B2 (en) 2011-07-18 2017-08-08 Apple Inc. Graphical processing unit (GPU) implementing a plurality of virtual GPUs
US8902228B2 (en) * 2011-09-19 2014-12-02 Qualcomm Incorporated Optimizing resolve performance with tiling graphics architectures
KR101321600B1 (ko) * 2011-09-26 2013-10-28 구태회 렌더링 시스템 및 방법
US10217270B2 (en) 2011-11-18 2019-02-26 Intel Corporation Scalable geometry processing within a checkerboard multi-GPU configuration
US9619855B2 (en) 2011-11-18 2017-04-11 Intel Corporation Scalable geometry processing within a checkerboard multi-GPU configuration
DE102012017629B4 (de) 2012-02-06 2024-02-01 Mbda Deutschland Gmbh Berechnen thermischer Schatten
US10242481B2 (en) 2012-03-15 2019-03-26 Qualcomm Incorporated Visibility-based state updates in graphical processing units
US20130257885A1 (en) * 2012-03-28 2013-10-03 Intel Corporation Low Power Centroid Determination and Texture Footprint Optimization For Decoupled Sampling Based Rendering Pipelines
KR101404489B1 (ko) * 2012-08-08 2014-06-10 한국과학기술정보연구원 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템
US9672584B2 (en) * 2012-09-06 2017-06-06 Imagination Technologies Limited Systems and methods of partial frame buffer updating
GB2511176B (en) * 2012-12-17 2015-04-15 Advanced Risc Mach Ltd Hidden surface removal in graphic processing systems
US9779696B2 (en) 2013-01-16 2017-10-03 Intel Corporation Serialized access to graphics resources
EP2793127B1 (en) * 2013-04-19 2021-11-17 Huawei Technologies Co., Ltd. Method for displaying a 3D scene graph on a screen
US9286649B2 (en) * 2013-05-31 2016-03-15 Qualcomm Incorporated Conditional execution of rendering commands based on per bin visibility information with added inline operations
US9633411B2 (en) 2014-06-26 2017-04-25 Qualcomm Incorporated Load scheme for shared register in GPU
US9767602B2 (en) * 2014-06-30 2017-09-19 Intel Corporation Techniques for reduced pixel shading
GB2530996B (en) 2014-10-06 2016-09-14 Imagination Tech Ltd Depth forwarding in a graphics processing system
US9824413B2 (en) * 2014-11-15 2017-11-21 Intel Corporation Sort-free threading model for a multi-threaded graphics pipeline
KR101680545B1 (ko) * 2015-06-30 2016-11-30 인천대학교 산학협력단 파노라마 동영상 생성 서비스 제공 방법 및 장치
KR20170014617A (ko) * 2015-07-30 2017-02-08 삼성에스디에스 주식회사 3차원 모델의 비트맵 생성 방법과 이를 수행하기 위한 장치 및 시스템
KR20170034727A (ko) 2015-09-21 2017-03-29 삼성전자주식회사 그림자 정보 저장 방법 및 장치, 3d 렌더링 방법 및 장치
WO2018119602A1 (zh) * 2016-12-26 2018-07-05 深圳前海达闼云端智能科技有限公司 一种渲染方法及装置
US10628057B2 (en) * 2017-03-28 2020-04-21 Hewlett Packard Enterprise Development Lp Capability based locking and access of shared persistent memory
US10621932B1 (en) * 2018-10-12 2020-04-14 Novatek Microelectronics Corp. Sub-pixel rendering data conversion apparatus and method
US10803651B2 (en) 2019-03-14 2020-10-13 Texas Instruments Incorporated Methods and apparatus to perform graphics processing on combinations of graphic processing units and digital signal processors
JP7345306B2 (ja) * 2019-07-30 2023-09-15 キヤノン株式会社 画像処理装置、画像処理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6469746B1 (en) * 1992-12-28 2002-10-22 Sanyo Electric Co., Ltd. Multi-vision screen adapter
CN1685370A (zh) * 2002-10-15 2005-10-19 诺基亚公司 三维图像处理

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
FR2735253B1 (fr) * 1995-06-08 1999-10-22 Hewlett Packard Co Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees
US6108460A (en) * 1996-01-02 2000-08-22 Pixelfusion Limited Load balanced image generation
US6016542A (en) * 1997-12-31 2000-01-18 Intel Corporation Detecting long latency pipeline stalls for thread switching
WO1999056249A1 (en) * 1998-04-27 1999-11-04 Interactive Silicon, Inc. Graphics system and method for rendering independent 2d and 3d objects
US6198488B1 (en) 1999-12-06 2001-03-06 Nvidia Transform, lighting and rasterization system embodied on a single semiconductor platform
US6501471B1 (en) * 1999-12-13 2002-12-31 Intel Corporation Volume rendering
US6624817B1 (en) * 1999-12-31 2003-09-23 Intel Corporation Symmetrical accelerated graphics port (AGP)
US7358974B2 (en) * 2001-01-29 2008-04-15 Silicon Graphics, Inc. Method and system for minimizing an amount of data needed to test data against subarea boundaries in spatially composited digital video
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
JP4158413B2 (ja) * 2002-05-22 2008-10-01 ソニー株式会社 画像処理装置
US7200721B1 (en) * 2002-10-09 2007-04-03 Unisys Corporation Verification of memory operations by multiple processors to a shared memory
US7633506B1 (en) * 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US7233335B2 (en) * 2003-04-21 2007-06-19 Nividia Corporation System and method for reserving and managing memory spaces in a memory resource
US6919908B2 (en) * 2003-08-06 2005-07-19 Ati Technologies, Inc. Method and apparatus for graphics processing in a handheld device
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US7239322B2 (en) * 2003-09-29 2007-07-03 Ati Technologies Inc Multi-thread graphic processing system
US7174436B1 (en) * 2003-10-08 2007-02-06 Nvidia Corporation Method and system for maintaining shadow copies of data using a shadow mask bit
US7139003B1 (en) * 2003-12-15 2006-11-21 Nvidia Corporation Methods of processing graphics data including reading and writing buffers
US7053901B2 (en) * 2003-12-11 2006-05-30 Nvidia Corporation System and method for accelerating a special purpose processor
US7460126B2 (en) * 2004-08-24 2008-12-02 Silicon Graphics, Inc. Scalable method and system for streaming high-resolution media
JP4637640B2 (ja) 2005-05-16 2011-02-23 三菱電機株式会社 図形描画装置
JP3853829B1 (ja) * 2005-10-31 2006-12-06 株式会社ソニー・コンピュータエンタテインメント 描画処理装置、並列処理装置および排他制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6469746B1 (en) * 1992-12-28 2002-10-22 Sanyo Electric Co., Ltd. Multi-vision screen adapter
CN1685370A (zh) * 2002-10-15 2005-10-19 诺基亚公司 三维图像处理

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
James Bigler,et al.Design for Parallel Interactive Ray Tracing Systems.《Scientific Computing and Imaging Institute》.2006,第5.4、6.1、6.2节. *

Also Published As

Publication number Publication date
KR20090082512A (ko) 2009-07-30
EP2122575A1 (en) 2009-11-25
JP4981923B2 (ja) 2012-07-25
WO2008079984A1 (en) 2008-07-03
CN101563712A (zh) 2009-10-21
TW200841274A (en) 2008-10-16
US20080150949A1 (en) 2008-06-26
KR101071073B1 (ko) 2011-10-10
CA2670646A1 (en) 2008-07-03
JP2010515122A (ja) 2010-05-06
US8207972B2 (en) 2012-06-26
EP2122575B1 (en) 2020-07-29

Similar Documents

Publication Publication Date Title
CN101563712B (zh) 快速像素渲染处理
CN101578629A (zh) 三维图形管线的自动负载平衡
US8423914B2 (en) Selection user interface
CN109074225B (zh) 墨水效果
JP5336067B2 (ja) グラフィックスを処理する方法および装置
US11983794B2 (en) Parallelized pipeline for vector graphics and image processing
US8564590B2 (en) Imparting three-dimensional characteristics in a two-dimensional space
Jo et al. A declarative rendering model for multiclass density maps
Limberger et al. Advanced visual metaphors and techniques for software maps
KR101532846B1 (ko) 컨텐츠 보존 와프를 이용한 인터페이스들의 재형상화
US10248637B2 (en) High perceptability ink effects
Mynatt et al. Large displays for knowledge work
CN109712221A (zh) 三维可视化渲染方法及装置
Peddie 1980–1989, Graphics Controllers on Other Platforms
Thakur et al. A framework for exploring high-dimensional geometry
LIANG CHAPTER FIVE ANGULAR TREEMAPS JIE LIANG, QUANG VINH NGUYEN, SIMEON SIMOFF AND MAO LIN HUANG
Trapp Analysis and exploration of virtual 3D city models using 3D information lenses
Agoston Raster Algorithms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant