实时视讯串流的处理方法及系统的制作方法

文档序号:6443754阅读:389来源:国知局
专利名称:实时视讯串流的处理方法及系统的制作方法
技术领域
本发明有关一种实时视讯串流的处理方法,特别是有关一种在一三度空间场景中显示实时视讯串流的处理方法。
(2)背景技术显示动画的方式通常利用人类眼睛视觉暂留的效应,以产生连续动作的效果,即藉由不断切换显示缓冲区(display buffer)中的前景缓冲区(front buffer)及背景缓冲区(back buffer)而达到动画的效果。举例来说,当操作一个跑马灯的时候,先将画面背景填满,然后在背景上画上文字,之后反复同样动作,连接起来就会有跑马灯的效果了,可是,这样的做法会发现当第二次填满画面背景时,第一个文字会有一瞬间被盖掉,然后第二次文字才被画上去,于是就会形成文字看起来好像在闪烁一样的问题。因此,为了防止闪烁的情形发生,会先将全部的画面在背景缓冲区画好后再传送到前缓冲区,这就是背景缓冲区的作用。背景缓冲区里的图像,而可直接当作纹理材质使用边缘色彩及边缘纹理材质。
前景缓冲区及背景缓冲区是指在存储器中存放的区块,事实上两者并没有什么不同,虽然两者都是存放在存储器的画面,但是在某一个时间点上只能看得到一个画面,因此,不管何时,看得见的画面就叫做前景缓冲区,看不见的就叫做背景缓冲区。看得见的意思就是指一个指定的存储器位置可被显示出来,所以画面会随着切换前景缓冲区及背景缓冲区而自动切换,而这个动作就称为翻页(Flip),即把看得见的存储器位置换成另一个存储器的位置。不过在窗口模式时,「切换」的动作必须由程序本身来控制。窗口模式的切换动作,通常是由背景缓冲区画好后传送至前景缓冲区,所以此时的背景缓冲区和前景缓冲区并不会实际做切换的动作,只是将背景缓冲区的画面传送至前景缓冲区。
另一种可达到同样效果的方法为将整块区域搬移(block blitting),其中以切换的效果较好且较为常用。
三度空间计算机绘图是为了仿真出真实世界的物体,利用许多复杂的算法或模型来仿真真实物体在三度空间中的状况,使得三度空间的物体可以投射并显现在二度空间平面的屏幕上。以下简述如何将三度空间动画场景显示于计算机屏幕上。
首先,建立物体模型(Modeling),以点、线、面描述一个物体的外观,建立此物体的模型数据,通常以(X,Y,Z)三度空间的坐标来表示,接着利用线性代数运算,可以将这个物体放大缩小、移动和变形等等。图1A~1E是显示产生三度空间动画效果的示意图。将三度空间场景中的三度空间对象(object)的顶点数据(VerteX data),包含坐标(X,Y,Z)、颜色(RGBA)、材质(texture)坐标(U,V)等,经过转换及打光(transform and lighting)、视野接口剪裁及缩放(View port clipping and scaling)的过程,转换至屏幕空间(screenspace)的坐标(Xs,Ys,Zs)〔(Xs,Ys)表示屏幕坐标,Zs表示景深〕和已打光的颜色(lighted color)RsGsBsAs(如图1A所示)。根据每个顶点的屏幕空间坐标(Xs,Ys,Zs)产生每个像素(pixel)的屏幕空间坐标(Xp,Yp,Zp)(如图1B所示),然后根据每个顶点已打光的颜色(RsGsBsAs)产生每个像素的颜色(RpGpBpAp)(如图1C所示),再根据(U,V)坐标并利用材质贴图方法(texturemapping)取得材质上的颜色(RtGtBtAt),并将(RpGpBpAp)和(RtGtBtAt)经过混色运算(blending operation)产生对象的颜色(RoGoBoAo)(如图1D所示)。经过上述步骤,将对象的颜色(RoGoBoAo)和目前显示缓冲区的颜色(RdGdBdAd)经过混色运算后产生最终的颜色(RfGfBfAf)(如图1E所示),然后将(RfGfBfAf)绘制至(Xp,Yp)位置。重复上述步骤即可产生整个三度空间场景。
实时视讯串流(real time Video stream)通常通过摄影机,经由信号线连接到视讯卡,或者由网络上直接传送至网络卡而取得,然后藉由视讯播放应用程序(video playback application)呼叫操作系统提供的应用程序接口(API,Application programming Interface)和函式库(library),将实时视讯串流显示在计算机屏幕上。
目前的三度空间动画游戏为了视觉效果,通常以全屏幕显示,即独位整个屏幕画面,使得其它应用程序(包含视讯播放应用程序)无法显示其内容,因此无法在三度空间场景中同时显示视讯串流。现有的解决方法是利用一外接视讯混合器,将计算机传输到屏幕的信号直接与视讯信号混合,但该方法无法处理网络上的视讯串流。
(3)发明内容有鉴于此,本发明的目的在提供一种实时视讯串流的处理方法,是于三度空间动画游戏进行且独占整个计算机屏幕的情况下,利用共享存储器及三度空间材质贴图方法,将正在背景执行的视讯播放应用程序的内容显示于三度空间动画场景中。
基于上述目的,本发明提供一种实时视讯串流的处理方法。首先,定义三度空间动画程序及视讯播放应用程序共享的一共享存储器的地址,然后藉由视讯播放程序取得一视讯画面,且复制到共享存储器中。当执行视讯播放应用程序时,藉由计算机系统检测是否有三度空间动画程序正在执行。若有三度空间动画程序正在执行,则将自视讯源取得的视讯画面(video picture)复制到共享存储器(shared memory)中。接着,于三度空间动画程序执行时,通过三度空间动画程序的驱动程序判断三度空间动画的更新画面是否完成绘制到背景缓冲区。若三度空间动画的更新画面完成绘制到背景缓冲区,则将共享存储器中的视讯画面加载至绘图卡上的视讯存储器,接着将视讯画面加入背景缓冲区的更新画面中。于计算机系统呼叫该更新画面时,将包含视讯画面的更新画面显示于一屏幕显示装置。
(4)


为让本发明的上述和其它目的、特点和优点能更明显易懂,下文特举出较佳实施例,并配合附图进行详细说明如下图1A~1E是显示产生三度空间动画效果的示意图。
图2是显示本发明的三度空间动画程序与视讯播放应用程序藉由共享存储器传递数据的示意图。
图3是显示本发明的实时视讯串流显示于三度空间场景的处理系统架构图。
图4是显示本发明的视讯播放程序取得视讯画面的流程图。
图5是显示本发明的实时视讯串流显示于三度空间场景的处理方法流程图。
(5)具体实施方式
本发明是提供一种实时视讯串流显示于三度空间场景的处理方法,利用三度空间动画程序在绘制完整个场景时,会呼叫系统提供的API使其内容显示在屏幕上的特性,结合视讯串流产生的画面数据,并利用三度空间材质贴图方法将视讯串流的画面绘制在三度空间动画场景中,通过视讯播放应用程序不断地接收视讯源的数据更新视讯画面,以及三度空间动画游戏进行时不断更新画面的效果,以实现在三度空间场景中显示实时视讯串流的目的。
图2是显示本发明的三度空间动画程序与视讯播放应用程序藉由共享存储器传递数据的示意图。三度空间动画程序和视讯播放应用程序为各自独立的应用程序,无法直接存取彼此的资源,必须通过共享存储器传递视讯数据,并且于三度空间动画场景中产生一视讯窗口以显示视讯数据。
图3是显示本发明的实时视讯串流显示于三度空间场景的处理系统架构图,其包括一视讯播放应用程序模块1以及一三度空间动画程序模块2,其中视讯播放应用程序模块1还包括一视讯撷取单元100,三度空间动画程序模块2还包括一视讯处理单元200、一视讯绘制单元300以及一视讯显示单元400。视讯撷取单元100用以自视讯源(video source)取得视讯画面,且当执行三度空间动画场景的一三度空间应用程序正在执行时,将视讯画面储存至共享存储器中。视讯处理单元200用以在三度空间动画场景完成绘制到背景缓冲区后,将储存于共享存储器中的视讯画面加载至视讯存储器。视讯绘制单元300用以在更新三度空间动画场景时,同时绘制视讯窗口对象及视讯画面于背景缓冲区中。视讯显示单元400用以将视讯画面藉由视讯窗口对象显示于三度空间动画场景中。视讯撷取单元100从视讯源10接收视讯画面15,当三度空间动画游戏正在进行(独占整个画面)时,自动将视讯画面15复制到共享存储器150中,并且通知计算机系统必须更新视讯数据。视讯处理单元200于三度空间动画游戏完成绘制整个场景到背景缓冲区后,将共享存储器150中的视讯画面15加载到视讯存储器(Video memory)250以做为材质。视讯绘制单元300在三度空间场景中产生一个视讯窗口对象330,用以显示视讯画面15,再利用三度空间材质贴图方法将材质(视讯画面)及视讯窗口对象330绘制到背景缓冲区350中,最后视讯画面15通过视讯显示单元400随着计算机系统API被呼叫(执行切换的动作)而显示在视讯窗口对象330上。
因为三度空间动画程序和视讯播放应用程序为各自独立的应用程序,无法直接存取彼此的资源,所以必须通过共享存储器传递视讯数据,以下简述视讯播放程序及三度空间动画程序如何通过共享存储器传递视讯数据。
图4是显示本发明的视讯播放程序取得视讯画面的流程图。
在步骤S11中,取得共享存储器地址。首先,必须先定义出共享存储器的地址以供视讯播放程序取用。
在步骤S12中,判断是否有新的视讯画面产生。通过视讯播放程序判断视讯源是否产生新的视讯画面,若是,则继续步骤S13,否则跳至步骤S15。
在步骤S13中,判断三度空间动画程序是否正在执行。若视讯源产生新的视讯画面,则藉由计算机系统判断三度空间动画程序是否正在执行,若是,则继续步骤S14,否则跳至步骤S15。
在步骤S14中,复制视讯画面至共享存储器。若三度空间动画程序正在执行,则将视讯画面复制到共享存储器,并且还设定一视讯画面更新指针,以判定共享存储器中是否有视讯画面,若视讯画面更新指针为1时,表示共享存储器中有视讯画面,若视讯画面更新指针为0表示没有。
在步骤S15中,判断是否结束视讯播放应用程序。若视讯源已无新的视讯画面产生,则结束视讯播放程序,否则跳至步骤S12,继续执行本步骤流程。
图5是显示本发明的实时视讯串流显示于三度空间场景的处理方法流程图。
在步骤S21中,设定视讯窗口的顶点数据,以决定视讯窗口的大小及位置。首先设定欲在三度空间动画场景中显示的视讯窗口的顶点数据,以决定视讯窗口的大小及位置。值得注意的是,本步骤S21是为一选择性步骤,因视讯窗口的大小及位置可设为默认值或固定值,这样便不需要重新设定视讯窗口的顶点数据。
在步骤S22中,取得共享存储器地址。定义出共享存储器的地址以供三度空间动画程序取用。
在步骤S23中,判断三度空间动画的更新画面是否完成绘制。藉由三度空间动画程序判断一更新画面是否完成绘制到一背景缓冲区中。通过计算机系统取得绘制更新画面的原有第一驱动程序及其子程序,藉由一第二驱动程序,将第一驱动程序加载计算机系统的存储器,以取得第一驱动程序的子程序的进入点(entry point),向计算机系统注册第二驱动程序以取代第一驱动程序,并且利用第二驱动程序判断三度空间动画的更新画面是否绘制完成。若是,则继续步骤S24,否则跳至步骤S27。
在步骤S24中,检查共享存储器中是否有视讯画面。三度空间动画程序通过前述的视讯画面更新指针,判断共享存储器中是否储存视讯画面。若无,则跳至步骤S251,否则跳至步骤252。
在步骤S251中,绘制视讯窗口于缓冲存储器中。若共享存储器中无视讯画面,则将视讯窗口绘制到缓冲存储器中。
在步骤S252中,将视讯画面加载至视讯存储器。若共享存储器中有视讯画面,则将视讯画面加载至三度空间绘图卡的视讯存储器中,然后将视讯窗口及视讯画面加入更新画面中,并且设定视讯画面更新指针为0。
在步骤S26中,于三度空间动画场景中显示更新画面。通过「切换」的动作,将背景缓冲区中包含视讯窗口及视讯画面的更新画面显示于三度空间动画场景中。
在步骤S27中,判断是否结束三度空间动画程序。选择继续执行三度空间动画程序,或者跳至步骤S23,继续执行本步骤流程。
本发明提供一个简单且有效的处理机制,于三度空间动画游戏进行且独占整个计算机屏幕的情况下,利用共享存储器及三度空间材质贴图方法,将正在背景执行的视讯播放应用程序的内容显示于三度空间动画场景中。
虽然本发明已以较佳实施例揭示如上,然而其并非用以限定本发明,任何熟习本技术的人员在不脱离本发明的精神和范围内,当可作各种的等效更动与替换,因此本发明的保护范围当视后附的权利要求所界定的为准。
权利要求
1.一种实时视讯串流的处理方法,使用于一计算机系统,所述计算机系统用以执行一三度空间动画程序及一视讯播放应用程序,所述视讯播放应用程序提供一视讯画面,其特征在于,所述方法至少包含下列步骤(a)复制所述视讯画面到一共享存储器;(b)加载所述共享存储器中的所述视讯画面至一视讯存储器;(c)加入所述视讯画面于所述背景缓冲区的所述更新画面中;以及(d)将包含所述视讯画面的所述更新画面显示于一屏幕显示装置。
2.如权利要求1所述的实时视讯串流的处理方法,其特征在于,还包含下列步骤定义一共享存储器,所述三度空间动画程序及所述视讯播放应用程序均可擦写所述共享存储器。
3.如权利要求1所述的实时视讯串流的处理方法,其特征在于,显示所述更新画面的步骤中,藉由一三度空间材质贴图方法显示所述更新画面。
4.如权利要求1所述的实时视讯串流的处理方法,其特征在于,所述步骤(b)还包含下列步骤判断所述三度空间动画程序是否完成绘制一更新画面至一背景缓冲区;以及若所述三度空间动画程序完成绘制所述更新画面至所述背景缓冲区,则加载所述共享存储器中的所述视讯画面至一视讯存储器。
5.如权利要求4所述的实时视讯串流的处理方法,其特征在于,所述步骤(c)中,所述视讯画面被所述三度空间动画程序视为一材质。
6.如权利要求4所述的实时视讯串流的处理方法,其特征在于,判断所述三度空间动画程序的步骤是藉由操作一第二驱动程序而完成,所述操作过程包括下列步骤通过所述计算机系统取得所述三度空间动画程序的一第一驱动程序,以及所述第一驱动程序的子程序;藉由所述第二驱动程序,将所述第一驱动程序加载所述计算机系统的存储器;取得所述第一驱动程序的子程序的进入点;以及向所述计算机系统注册所述第二驱动程序,并且取代所述计算机系统的所述第一驱动程序。
7.如权利要求6所述的实时视讯串流的处理系统,其特征在于,所述第一驱动程序是指所述计算机系统使用于执行所述三度空间动画程序的原有驱动程序。
8.一种实时视讯串流的处理系统,用以执行如权利要求1所述的实时视讯串流的处理方法,其特征在于,所述处理系统至少包括一视讯播放应用程序模块,将所述视讯画面复制到所述共享存储器中;以及一三度空间动画程序模块,提供一三度空间动画,并将所述视讯画面与所述三度空间动画结合而得一更新画面,并将所述新画面显示于一屏幕显示装置。
9.如权利要求8所述的系统,其特征在于,所述三度空间动画程序模块是为一三度空间动画引擎。
全文摘要
一种实时视讯串流的处理方法,使用于一计算机系统,所述计算机系统用以执行一三度空间动画程序及一视讯播放应用程序,所述视讯播放应用程序提供一视讯画面,所述方法至少包含下列步骤(a)复制所述视讯画面到一共享存储器;(b)加载所述共享存储器中的所述视讯画面至一视讯存储器;(c)加入所述视讯画面于所述背景缓冲区的所述更新画面中;以及(d)将包含所述视讯画面的所述更新画面显示于一屏幕显示装置。本发明提供了一个简单且有效的处理机制,于执行三度空间动画游戏且独占整个计算机屏幕的情况下,利用共享存储器及三度空间材质贴图方法,将正在背景执行的视讯播放应用程序的内容显示于三度空间动画场景中。
文档编号G06T15/70GK1532687SQ0310825
公开日2004年9月29日 申请日期2003年3月24日 优先权日2003年3月24日
发明者廖立祥 申请人:华硕电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1