数据处理装置及其操作方法_2

文档序号:9929499阅读:来源:国知局
几何引擎。像素处理阶段包括一个可编程像素着色器(programmable fragmentshader)或可编程统一着色器和一个光栅化引擎。
[0025]图4是依照本发明一实施例说明图1所示数据处理装置100的模块方块示意图。图4所示数据处理装置100还包括前段处理模块(例如前段处理电路410)。前段处理电路410耦接至区块化电路110,以提供输入数据Din。前段处理电路410包括可程序应用接口411以及几何处理模块412。几何处理模块412可能包括可编程顶点着色器、几何引擎以及/或是其他几何处理模块/电路。所述可编程顶点着色器与几何引擎可以任何方式实现,例如以现有的可编程顶点着色器与/或现有的几何引擎来实现几何处理模块412。
[0026]像是软件编译、驱动器等高阶层计算元件素可以汇入可程序应用接口 411。可程序应用接口 411可以对应产生绘图命令给几何处理模块412。当几何处理模块412接收带有对应顶点串(vertex stream)的绘图命令时,该绘图命令被输入到几何处理模块412内的可编程顶点着色器与几何引擎。可编程顶点着色器可以随着可能的照明效应去计算每个顶点的剪辑坐标(clip coordinates)。然后这些顶点被组合成像素(primitive)。几何处理模块412可以依据绘图命令而对应产生输入信息Din至区块化电路110。
[0027]图4所示在像素处理阶段中的后段处理电路120包括光栅化引擎121与区块缓冲器122。区块化电路110所输出的信息被馈送到光栅化引擎121内的光栅化器(rasterizer)。光栅化引擎121可以扫描像素并产生对应的像素。所述像素通常对应于在屏幕上的像素或是部分像素。光栅化引擎121内的可编程像素着色器可以计算每一像素的颜色值,其可能在过程中使用纹理单元。然后,光栅化引擎121依照应用程序的设定而对每一个像素进行深度测试、模板测试(stencil test)和其他管线作业,在此过程中可能使用区块深度缓存器、区块模板缓存器。每个像素的最终颜色值被写入到帧内存130。光栅化引擎121为公知技术,故在此不再赘述。
[0028]图5是依照本发明一实施例说明图2所示操作方法的流程示意图。图5所示步骤S210、S220、S230、S240与S250可以参照图2的相关说明而类推。于图5所示实施例中,步骤S230包括子步骤S231与S232。
[0029]请参照图4与图5。于步骤S210中,由前段处理电路410的几何处理模块412进行前段处理,以提供输入信息Din至区块化电路110。例如,几何处理模块412可以进行在图形绘制管线中的几何阶段处理,以输出包含有参数和几何数据的输入数据Din给区块化电路110。
[0030]图4所示区块化电路110包括检查器111、区块化引擎112、区块比较器113以及数据库(repository) 114。检查器111可以接收前段处理电路410所提供的输入信息Din。检查器111是以平移为主检查器(translat1n-dominate checker)。于步骤S231中,检查器111可以计算输入数据Din的目前帧内的像素的移动向量,以及检查该目前帧内的所述像素的移动状况是否属于「以平移为主」(translat1n-dominate)的移动。举例来说,检查器111可以在步骤S231检查绘图命令的转换矩阵是否属于「以平移为主」,并对应地设置旗标(flag)ο
[0031]图6是依照本发明一实施例说明像素进行不同空间转换的示意图。为了产生显示器的坐标,每个像素的顶点位置/坐标将会进行一系列的转换,如图6所示。输入数据Din的像素可以乘以模型转换矩阵M,以进行模型转换。模型转换可以将像素从对象空间(object space,或称为模型空间)601转换至世界空间(world space) 6020属于世界空间602的像素可以乘以视点转换矩阵V,以进行视点转换。视点转换可以将像素从世界空间602转换至视点空间603。属于视点空间603的像素可以乘以投影转换矩阵,以进行投影转换。投影转换被应用于实现人眼的错觉,例如让远的东西看起来小一些。投影转换可以将像素从视点空间603转换至投影空间604,或称剪辑空间(clip space)。属于投影空间604的像素可以乘以正规化转换矩阵,以进行正规化转换。正规化转换可以将像素从投影空间604转换至正规化空间605。属于正规化空间605的像素可以乘以视界转换矩阵,以进行视界转换。视界转换可以将像素从正规化空间605转换至显示空间606。图6所示像素进行不同空间转换的操作细节可以参照开放图形程序馆(open graphics library,以下简称OpenGL)的相关说明,故在此不再赘述。
[0032]图7是依照本发明一实施例说明转换矩阵的不同转换类型的示意图。图7左半部绘示先前帧F (k),而右半部绘示目前帧F (k+Ι)。通常,像素的转换包括平移(translate)、旋转、缩放等。举例来说,若先前帧F(k)的像素700发生平移,则像素700转换后在目前帧F(k+1)中的位置可能如目前巾贞710所示。目前巾贞710中的箭头表示像素顶点的移动向量。若先前帧F(k)的像素700发生旋转,则像素700转换后在目前帧F(k+1)中的位置可能如目前巾贞720所示。目前巾贞720中的箭头表示像素顶点的移动向量。若先前巾贞F (k)的像素700发生缩放,则像素700缩放后在目前帧F(k+Ι)中的大小可能如目前帧730所示。目前帧730中的箭头表示像素顶点的移动向量。
[0033]检查器111可以计算输入数据Din的目前帧内的像素的移动向量。举例来说(但不限于此),检查器111可以将模型转换矩阵M与视点转换矩阵V相乘而获得转换矩阵[MV],然后从转换矩阵[MV]取出像素的移动向量。检查器检查该目前帧内的像素的移动状况是否属于「以平移为主」的移动。举例来说(但不限于此),检查器111可以计算X=A-1B,其中A表示该像素在先前帧的转换矩阵[MV],B表示该像素在目前帧的转换矩阵[MV],而X表示转换矩阵A与B之间的差异。检查器111可以依据矩阵X的样式来判断目前帧内的像素的移动状况是否属于「以平移为主」的移动。关于矩阵X的样式判断可以参考 OpenGL ES 说明书(Common/Common-Lite Profile Specificat1n Vers1n 1.1.12)的
2.10.2小节而类推,故不在此赘述。检查器111可以在步骤S231检查绘图命令的转换矩阵是否属于「以平移为主」,并对应地设置旗标。
[0034]区块化引擎112耦接至检查器111。区块化引擎112经配置以接收输入数据Din,以及将输入数据Din的目前帧划分为一个或多个区块(步骤S220)。举例来说(但不限于此),区块化引擎112可以对像素进行裁剪(clipping)和剔除(culling)功能。之后,区块化引擎112可以对像素的坐标实施视界转换,以产生屏幕坐标。区块化引擎112可以用区块排序像素,最后存储新的像素列表和顶点数据到参数缓冲器。在进入下一阶段之前,区块化引擎112可以处理一个帧的所有像素。
[0035]区块比较器113耦接至区块化引擎112与数据库114。数据库114经配置以储存转换矩阵,例如存储几何处理模块412所产生的绘图命令的转换矩阵。区块比较器113从区块化引擎112接收区块的数据,以及从数据库114接收对应的转换矩阵。依据多个区块中目前区块的像素的移动向量,区块比较器113可以在步骤S232中检查所述目前区块的移动状况。于图5所示实施例中(但不限于此),步骤S232包括子步骤S510与S520。
[0036]步骤S510可以判断目前区块内的像素的移动状况是否属于「以平移为主」的移动。举例来说(但不限于此),区块比较器113可以依据检查器111所设置的旗标来判断目前区块内的像素的移动状况是否属于「以平移为主」的移动。当在目前区块内的任何一个像素的移动状况不属于「以平移为主」的移动时,区块比较器113判定该目前区块为一个需绘制区块。当该目前区块被判定为一个需绘制区块时,后段处理电路120的后段处理功能可以被致能(enable),也就是后段处理电路120可以将该目前区块进行后段处理而产生目前帧的经处理目前区块(步骤S240)。在步骤S240中,后段处理电路120可以将目前区块绘制至区块缓冲器122并写出到帧内存130。
[0037]举例来说,图8是依照本发明一实施例说明图5所示步骤S510的判断操作范例示意图。图8所示影像帧包括像素801与802,而此影像帧被划分为区块811、812、813与814。由像素801与802的转换矩阵可以获知像素801与802的顶点的移动向量,如图8所示箭头之示意。检查器111可以在步骤S231中检查绘图命令的转换矩阵,而获知像
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1