部分图像旋转装置及方法

文档序号:6595887阅读:403来源:国知局
专利名称:部分图像旋转装置及方法
技术领域
本发明涉及一种图像旋转装置及方法,更具体地,涉及一种只需将画面之中部分发生旋转变化的物体进行旋转的装置及方法,而不需要将全部画面重新进行绘制的部分图像旋转装置及方法。
背景技术
在电脑绘图领域中,随着不同的显示周边与形态,多样化的应用也相继地开发给使用者进行使用。举例来说,基于笔记型电脑的显示器的限制,为了提供使用者可以于不同位置与角度观看屏幕数据,而不需移动笔记型电脑(显示器),图像旋转(Image Rotation)的系统与功能因此而产生。
图1a与图1b是分别显示相应显示器与帧缓存器(Frame Buffer)的图像旋转的示意图。如图1a所示,显示器中的画面100经过旋转-90度后变成画面101。而对应于显示器的画面,电脑系统的帧缓存器中储存的画面数据则如图1b所示。如图所示,显示器中的画面100相应于帧缓存器110中储存的画面数据111,而显示器中的画面101相应于帧缓存器110中储存的画面数据112。
对于现行的图像旋转方法,无论是硬件绘图(Hardware Rendering)或是软件绘图(Software Rendering),都是将新接收的数据绘制为新的画面后,再将整个画面全部重新进行绘图。在现有方法中,由于整个画面中包含了大量的数据,当全部进行旋转时,将会耗费大量的系统资源与时间。然而,对于实际情况而言,系统所绘制的每一个画面之间仅存在极小的改变,举例来说,一个物体的移动,或增加一个新的物体等等,因此,现有的图像旋转方法是非常低效的。

发明内容
因此,本发明的主要目的为提供一种只需将画面中发生旋转变化的物体进行旋转,而不需将全部画面重新绘制的部分图像旋转装置及方法。
为了实现上述目的,可藉由本发明所提供的一种部分图像旋转装置及方法来完成。
依据本发明实施例的部分图像旋转装置包括第一缓存存储器、帧缓存器(Frame Buffer)、绘图模块(Rendering Module)、与旋转模块(RotationModule)。帧缓存器中储存相应一第一虚拟画面的第一旋转画面。绘图模块依据接收的第二虚拟画面信息绘制相应的第二虚拟画面,且将第二虚拟画面储存于第一缓存存储器中。旋转模块依据第一虚拟画面与第二虚拟画面决定第二虚拟画面中的变化物体(Rotation Object),并将变化物体旋转为一旋转物体,且将帧缓存器的第一旋转画面中相应第二虚拟画面中变化物体位置的部分图像以旋转物体取代。
此外,部分图像旋转装置还包括一显示装置,来抓取帧缓存器中的第一旋转画面,并将第一旋转画面进行显示。其中,第一缓存存储器可以是系统存储器(System Memory),在此情况中,绘图模块与旋转模块由软件实施而成,且绘图模块与旋转模块通过中央处理单元(CPU)进行运算。
另外,第一缓存存储器可以位于帧缓存器中,在此情况中,绘图模块与旋转模块由硬件实施而成,且绘图模块与旋转模块通过绘图加速器(Graphics Accelerator)进行运算。
依据本发明实施例的部分图像旋转方法,首先,接收一第二虚拟画面信息,之后,依据第二虚拟画面信息绘制相应的第二虚拟画面。接着,依据一第一虚拟画面与第二虚拟画面决定第二虚拟画面中发生改变的变化(旋转)物体,并将变化(旋转)物体旋转为一旋转物体。最后,将相应第一虚拟画面的一第一旋转画面中相应第二虚拟画面中变化物体位置的部分图像以旋转物体取代。
此外,依据本发明实施例还将第一旋转画面储存于一帧缓存器中,且还将帧缓存器中的第一旋转画面进行显示。
依据本发明实施例还可将第二虚拟画面储存于系统存储器中,在此情况中,绘制第二虚拟画面与将变化物体旋转为旋转物体通过中央处理单元进行运算。另外,还将第二虚拟画面储存于帧缓存器中,在此情况中,绘制第二虚拟画面与将变化物体旋转为旋转物体通过绘图加速器进行运算。


为使本发明的上述目的、特征和优点能更明显易懂,下文特举一实施例,并配合附图,作详细说明如下,图中图1a与图1b是分别显示一现有技术的例子,其相应显示器与帧缓存器的图像旋转示意图;图2为一依据本发明第一实施例的部分图像旋转装置的系统结构示意图;图3为一依据本发明第二实施例的部分图像旋转装置的系统结构示意图;图4a是显示第二实施例中2D纹理旋转180度,并纹理作图(TextureMapping)为3D纹理的示意图;图4b是显示第二实施例中2D纹理旋转90度,并纹理作图为3D纹理的示意图;图5为一依据本发明实施例的部分图像旋转方法的操作流程图;图6为一依据本发明实施例的部分图像旋转例子的示意图;图7为一依据现有技术来做纹理映射的例子的示意图;图8为另一依据本发明实施例的部分图像旋转例子的示意图;以及图9为一依据本发明实施例来绘制(Render)图像的动作示意图。
附图中的附图标记说明如下100、101~显示器画面;110、310~帧缓存器(Frame Buffer);111、112~画面图像数据;200~第一缓存存储器;210~绘图模块(Rendering Means);220~旋转模块(Rendering Means);224、304~旋转物体确定装置(Rotation ObjectDetermining Means);230~帧缓存器(Frame Buffer);240、320~显示装置(Display);300~3D引擎(3D Engine);301~绘图模块(Rendering Means);302~旋转模块(Rotation Means);303~纹理作图模块(Texture Mapping Means);311~第一存储器区域;304~旋转物体确定装置;312~第二存储器区域;S500、S510、…、S550~操作步骤;600、630~第一旋转画面;610、650~第一虚拟画面;620、660~第二虚拟画面。630、830~确定到的变化物体;640、840~将会变化的物体予以旋转后的物体;810、850~第一虚拟画面;820、860~第二虚拟画面(屏幕经旋转180度,但肉眼所见的显示画面仍未旋转);880~将850旋转180度;890~将880输出至显示装置。
具体实施例方式
图2显示依据本发明第一实施例的部分图像旋转装置的系统结构。依据本发明第一实施例的部分图像旋转装置包括一第一缓存存储器200、一帧缓存器230、一绘图模块210、一旋转模块220、一旋转物体确定装置(RotationObject Determining Means)224、与一显示装置240。其中,绘图模块210、旋转模块220、与旋转物体确定装置224可以组成绘图处理器(GraphicProcessor Unit,GPU)。
帧缓存器230可以是DIMM(Dual In-line Memory Module)或绘图卡上的存储器,其中储存最终屏幕可以见到的画面,如经过旋转的画面。显示装置240便可抓取(Refresh)帧缓存器230中储存的画面,并将画面进行显示。绘图模块210可以接收由应用程序所传送的画面信息,并依据接收的画面信息来绘制画面。当绘图模块210绘制完成画面后,便会将画面储存至第一缓存存储器200。
旋转模块220会依据绘图模块210绘制完成的画面与前一画面,利用旋转物体确定装置(Rotation Object Determining Means)224来判断两画面之间是否有改变的变化物体,并由第一缓存存储器200所储存的画面中读取此变化物体。需注意的是,前一画面的相关信息可以事先缓存于旋转模块220中,且此前一画面旋转过后即为帧缓存器230中储存的画面。
之后,旋转模块220将变化物体依据旋转需求旋转为一旋转物体,且将帧缓存器230的画面中相应绘图模块210绘制完成的画面中变化物体位置的部分图像以旋转物体取代。此时,帧缓存器230中更新过后的画面便可被显示装置240抓取与显示。其中,旋转需求可以是内定或是提供功能(Function)给使用者来设定或选定。
值得注意的是,在第一实施例中,绘图模块210与旋转模块220可以由软件实施而成,即系软件绘图。此时,绘图模块210与旋转模块220通过中央处理单元进行运算。此外,当绘图模块210与旋转模块220以软件实施而成时,第一缓存存储器200可以是电脑系统中的系统存储器。
图3为一依据本发明第二实施例的部分图像旋转装置的系统结构的示意图。依据本发明第二实施例的部分图像旋转装置包括一3D引擎(3DEngine)300、一帧缓存器310、与一显示装置320。
帧缓存器310包括一第一存储器区域311与一第二存储器区域312。第二存储器区域312中储存最终屏幕可以见到的画面的图像数据,如经过旋转的画面,显示装置320便可抓取第二存储器区域312中所储存的画面,并将画面进行显示。
3D引擎300中包括一绘图模块(Rendering Means)301、一旋转模块(Rotation Module)302、一纹理作图模块(Texture Mapping Module)303、与一旋转物体确定装置(Rotation Object Determining Means)304。其中,绘图模块301用以接收由应用程序所传送来的画面信息,并依据接收到的画面信息来绘制画面。举例来说,由于3D图形是以三角形(Triangle)为单位所形成,因此,绘图模块301接收构成3D画面的顶点(Vertex)信息,而绘制相应的三角形。当绘图模块301绘制完成画面后,便会将画面储存至第一存储器区域311中。
旋转模块302会依据绘图模块301绘制完成的画面与前一画面,利用旋转物体确定装置(Rotation Object Determining Means)304来判断两画面之间是否有改变的变化物体,并由第一存储器区域311所储存的画面中读取此变化物体。需注意的是,前一画面的相关信息可以事先缓存于旋转模块302中,且此前一画面旋转过后即为第二存储器区域312中储存的画面。
之后,旋转模块220将变化物体依据旋转需求旋转为一旋转物体,且纹理作图模块303依据旋转需求将纹理(Texture)由2D旋转对映为3D后再作图(Mapping)至此旋转物体上。注意的是,现有技术来做纹理映射的例子可以参见图7。
图4a是显示第二实施例中2D的纹理转换为3D的纹理旋转180度的简单示意图。如图所示,斜线部分的三角形为原有的图像,纹理作图模块303可以使用两个三角形(三角形ABC与三角形ACD)来形成一矩形,从而达到旋转原有图像的目的。其中,对于每一顶点,2D图形转换为3D图形的纹理旋转对应关系如下A′点坐标由(x0,y0)转换为(0,0,0);B′点坐标由(0,y0)转换为(x0,0,0);C′点坐标由(0,0)转换为(x0,y0,0);D′点坐标由(x0,0)转换为(0,y0,0)。其中,x0,y0为原三角形的顶点坐标。
简而言之,本发明应用于3D引擎时的做法如下(a)利用旋转物体确定装置(Rotation Object Detecting Means)确定出旋转物体的外形、位置及旋转角度。
(b)将对应于该旋转物体的多个原始三角形的顶点作旋转。如图4a所示为物体旋转180度的场合,其中原始的两个三角形(ΔA′B′C′、ΔC′D′A′)的三个顶点分别为A′(x0,y0)、B′(0,y0)、C′(0,0)以及C′(0,0)、D′(x0,0)、A′(x0,y0),其中A′点的坐标由二维坐标A′(x0,y0)转换为三维坐标A(0,0,0);依此类推,B′点坐标由二维坐标B′(0,1)转换为三维坐标B(x0,0,0);C′点坐标由二维坐标C′(0,0)转换为三维坐标C(x0,y0,0);D′点坐标由二维坐标D′(1,0)转换为三维坐标D(0,y0,0)。
(c)将对应于该三角形的原始纹理图样做纹理(texture)的动作。此时的图样再纹理时会同时做图样旋转的动作,其结果如图4a(3D)图所示。
图4b是显示第二实施例中2D转换为3D的纹理旋转90度的示意图。如图所示,斜线部分的三角形为原有的图像,纹理作图模块303可以使用两个三角形(三角形E′F′H′与三角形F′G′H′)来形成一矩形,从而达到旋转原有图像的目的。其中,对于每一顶点,2D图形转换为3D图形的纹理旋转对应关系如下E′点坐标由二维坐标E′(x1,0)转换为三维坐标E(0,0,0);F′点坐标由二维坐标F′(x1,y1)转换为三维坐标F(x1,0,0);G′点坐标由二维坐标G′(0,y1)转换为三维坐标G(x1,y1,0);H′点坐标由二维坐标H′(0,0)转换为三维坐标H(0,y1,0)。
当纹理完成后,3D引擎300将第二存储器区域312的画面中相应绘图模块301绘制完成的画面中变化物体位置的部分图像以纹理后的旋转物体取代。此时,第二存储器区域312中更新过后的画面便可被显示装置320抓取与显示。其中,旋转需求可以是内定或是提供功能(Function)给使用者来设定或选定。
值得注意的是,在第二实施例中,绘图模块301、旋转模块302、纹理作图模块303与旋转物体确定装置(Rotation Object Detecting Means)304包含于3D引擎300中,因此,第二实施例通过绘图装置,如绘图加速器进行绘制运算而成。
图5是依据本发明实施例的部分图像旋转方法的操作流程。注意的是,绘图模块接收由应用程序传送的原始画面信息以第一虚拟画面称呼,而当下一画面有部分物体产生旋转时,旋转物体确定装置304可确定出来,该下一画面以第二虚拟画面称之,而经过旋转的画面则以第一旋转画面称之。
首先,如步骤S500,接收第二虚拟画面信息,之后,如步骤S510,依据接收的第二虚拟画面信息,并将第二虚拟画面进行储存。
接着,如步骤S520,旋转物体确定装置304依据事先缓存的第一虚拟画面与第二虚拟画面,可以确定出第二虚拟画面中发生改变的旋转变化物体,之后,如步骤S530,将第一虚拟画面中的变化物体依据旋转量将其图样数据旋转一对应的角度而成为一旋转物体。相同地,旋转需求可以是内定或是提供功能给使用者来设定或选定。
之后,如步骤S540,将相应第一虚拟画面的第一旋转画面中相应第二虚拟画面中变化物体位置的将旋转变化物体以旋转物体取代。最后,如步骤S550,更新过后的第一旋转画面可以被显示装置抓取与显示。
注意的是,当通过3D引擎绘制图像时,在取代第一旋转画面中相应第二虚拟画面中变化物体位置的部分图像前,还包括将一纹理依据旋转需求进行旋转,并将旋转过后的纹理作图至旋转物体上。之后,才将纹理作图后的旋转物体取代第一旋转画面中相应第二虚拟画面中变化物体位置的部分图像。此外,当显示器旋转一旋转角度时,变化物体可以被依据显示器的旋转角度旋转成为旋转物体。
相同地,本发明实施例可以软件或是硬件实施,当软件绘图时,绘制第二虚拟画面与将变化物体旋转为旋转物体是通过中央处理单元进行运算。另外,当硬件绘图时,绘制第二虚拟画面与将变化物体旋转为旋转物体是通过3D引擎,如绘图加速器进行运算,此时,第一缓存存储器200在帧缓存器(Frame Buffer)230中。
图6是依据本发明实施例的部分图像旋转的示意图,图中显示本发明在不同的时间点的运算及处理。其中,在时间点t1,本发明的系统中储存有一第一虚拟画面610、一对应于下一时间点要显示的一第二虚拟画面620、与相应于第一虚拟画面610及第二虚拟画面620中的一变化画面(物体)630及一第一旋转(变化)画面840。此时,第一虚拟画面610,第二虚拟画面620可储存于旋转模块220,第一缓存存储器200或者,储存于帧缓存器230中。其中,本实施例的旋转角度为180度。
在时间点t1+ta,旋转模块220比对第一虚拟画面610与第二虚拟画面620后,会发现两画面中发生改变的变化物体“A′”。
在时间点t1+tb,旋转模块220会将第一虚拟画面610的变化物体,亦即变化画面(物体)630,进行旋转而成为变化物体“A′”,或者称为第一旋转(变化)画面840。
最后,于时间点t1+Δt,将旋转后的物体取代第一旋转画面中的原始变化画面(物体)630的部分画面,还形成更新后的第一虚拟画面650。此时显示器240将会显示下一时间点的图像画面。
图8为另一依据本发明实施例的部分图像旋转例子的示意图,图中显示本发明于不同的时间点的运算及处理。图8与图6的例子相比较,特别之处在于本例是应用于当显示器旋转一角度后(本例以旋转180度为例),肉眼所见的图像画面仍然没有旋转的情形。
其中,于时间点t2时,本发明的系统中储存有一第一虚拟画面810、一对应于显示器旋转一预定角度、下一时间点要显示的一第二虚拟画面820、与相应于第一虚拟画面810及第二虚拟画面820中的一变化画面(物体)830及一第一旋转(变化)画面840。
于时间点t2+tc,旋转模块220比对第一虚拟画面610与第二虚拟画面620后,会发现两画面中发生改变的变化物体“A′”。
于时间点t1+td,旋转模块220会将第一虚拟画面810的变化物体,亦即变化画面(物体)830,进行旋转而成为变化物体“A′”,或者称为第一旋转(变化)画面840。
最后,于时间点t2+Δt,将旋转后的物体取代第一旋转画面中的原始变化画面(物体)830的部分画面,更形成更新后的第一虚拟画面850。此时被旋转180度的显示器140将会显示下一时间点的图像画面。而其图像绘制到显示器的动作如图9所示,即先将第一虚拟画面850旋转180度后成为第二虚拟画面860(屏幕经旋转180度,但肉眼所见的显示画面仍未旋转),再将第二虚拟画面860输出至显示装置870中。
因此,藉由本发明所提出的部分图像旋转装置及方法可以只需将画面中发生旋转改变的该原始物体进行旋转,并取代位于帧缓存器(FrameBuffer)230中的该原始物体即可,而不需将全部画面重新进行图像处理,从而大量节省系统资源与缩小整体绘图的反应时间。此外,由于本发明亦可以硬件,如绘图加速器、绘图卡上实施,因此,通过直接存取帧缓存器中的画面,可以大幅缩短存取系统存储器所耗费的时间。
虽然本发明已以优选实施例公开如上,但是其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围的情况下,可做些许更动与润饰,因此本发明的保护范围应当以所附的权利要求所确定的为准。
权利要求
1.一种部分图像旋转装置,包括一第一缓存存储器;一帧缓存器,储存相应一第一虚拟画面的一第一旋转画面;一绘图模块,接收一第二虚拟画面信息,且依据该第二虚拟画面信息绘制相应该第二虚拟画面信息的一第二虚拟画面,且将该第二虚拟画面储存于该第一缓存存储器中;一旋转物体确定装置,依据该第一虚拟画面与该第二虚拟画面确定该第二虚拟画面中的一变化物体;以及一旋转模块,将该变化物体旋转为一旋转物体,且将该帧缓存器的该第一旋转画面中相应该第二虚拟画面中变化物体位置的部分图像以该旋转物体取代。
2.如权利要求1所述的部分图像旋转装置,还包括一显示装置,抓取该帧缓存器中的该第一旋转画面,并将该第一旋转画面进行显示。
3.如权利要求1所述的部分图像旋转装置,其中该第一缓存存储器为系统存储器。
4.如权利要求3所述的部分图像旋转装置,其中该绘图模块与该旋转模块由软件实施而成,且该绘图模块与该旋转模块通过中央处理单元进行运算。
5.如权利要求1所述的部分图像旋转装置,其中该第一缓存存储器位于该帧缓存器中。
6.如权利要求5所述的部分图像旋转装置,其中该绘图模块与该旋转模块由硬件实施而成,且该绘图模块与该旋转模块通过绘图加速器进行运算。
7.一种部分图像旋转方法,包括下列步骤接收一第二虚拟画面信息;依据该第二虚拟画面信息绘制相应该第二虚拟画面信息的一第二虚拟画面;依据一第一虚拟画面与该第二虚拟画面确定该第二虚拟画面中的一变化物体;将该变化物体旋转为一旋转物体;以及将相应该第一虚拟画面的一第一旋转画面中相应该第二虚拟画面中变化物体位置的部分图像以该旋转物体取代。
8.如权利要求7所述的部分图像旋转方法,还包括将该第一旋转画面储存于一帧缓存器中。
9.如权利要求8所述的部分图像旋转方法,还包括将该帧缓存器中的该第一旋转画面进行显示。
10.如权利要求7所述的部分图像旋转方法,还包括将该第二虚拟画面储存于系统存储器中。
11.如权利要求7所述的部分图像旋转方法,还包括将一纹理依据旋转需求进行旋转,并将旋转过后的纹理作图至旋转物体上。
12.如权利要求10所述的部分图像旋转方法,其中绘制该第二虚拟画面与将该变化物体旋转为该旋转物体通过中央处理单元进行运算。
13.如权利要求8所述的部分图像旋转方法,还包括将该第二虚拟画面储存于该帧缓存器中。
14.如权利要求13所述的部分图像旋转方法,其中绘制该第二虚拟画面与将该变化物体旋转为该旋转物体通过绘图加速器进行运算。
15.如权利要求7所述的部分图像旋转方法,其中该变化物体依据一显示器所旋转的一旋转角度旋转成为该旋转物体。
16.一种部分图像旋转装置,包括一帧缓存器,包括一第一存储器区域与一第二存储器区域,第二存储器区域中储存相应一第一虚拟画面的一第一旋转画面;以及一3D引擎,包括一绘图模块,接收一第二虚拟画面信息,且依据该第二虚拟画面信息绘制相应该第二虚拟画面信息的一第二虚拟画面,且将该第二虚拟画面储存于该第一存储器区域中;一旋转物体确定装置,依据该第一虚拟画面与该第二虚拟画面确定该第二虚拟画面中的一变化物体;一旋转模块,将该变化物体依据一旋转需求旋转为一旋转物体;以及一纹理作图模块,将一纹理依据该旋转需求进行旋转,并将旋转过后的纹理作图至该旋转物体;当该纹理作图模块纹理作图完成后,将该第二存储器区域的该第一旋转画面中相应该第二虚拟画面中变化物体位置的部分图像以该旋转物体取代。
17.如权利要求16所述的部分图像旋转装置,还包括一显示装置,抓取该第二存储器区域中的该第一旋转画面,并将该第一旋转画面进行显示。
全文摘要
本发明公开了一种部分图像旋转装置及方法,该装置包括第一缓存存储器、帧缓存器、绘图模块、旋转物体确定装置、与旋转模块。帧缓存器中储存相应一第一虚拟画面的第一旋转画面。绘图模块依据接收的第二虚拟画面信息绘制相应的第二虚拟画面,且将第二虚拟画面储存于第一缓存存储器中。旋转物体确定装置依据第一虚拟画面与第二虚拟画面决定第二虚拟画面中的变化物体,且旋转模块将变化物体旋转为一旋转物体,且将帧缓存器的第一旋转画面中相应第二虚拟画面中变化物体位置的部分图像以旋转物体取代。
文档编号G06T3/60GK1404015SQ02145868
公开日2003年3月19日 申请日期2002年10月16日 优先权日2002年10月16日
发明者白逸民, 苏慧玫, 林韵, 唐亮 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1