通过网络传送媒体的系统及方法
【技术领域】
[0001]本发明涉及一种通过网络传送影像与声音等媒体的系统及方法,特别是指一种于用户装置上渲染3D对象与声音的方法,该方法通过结合以下两者的结果来完成:(a)自身对3D对象与3D声音的渲染(Rendering),与(b)服务器提供的具立体声的2D视讯。
【背景技术】
[0002]过去几年间,在线游戏已成为世界潮流,随着云端计算相关系统与科技的发展,一种利用服务器串流游戏内容并提供服务的技术也已问世。
[0003]传统的一种提供云端游戏服务的方法通过服务器负责几乎所有的运算,亦即,当要提供云端游戏服务时,该服务器需要产生一包括多个可由参与者移动或控制的3D对象的虚拟3D环境。在已知技术中,这些3D对象可包含音效,之后依据参与者(玩家)的控制动作,该服务器即将虚拟3D环境与3D对象结合并渲染至游戏机上一具有立体声的2D游戏屏幕上。而后,该服务器即将渲染后的影像与立体声以一包含声音的2D视频串流通过网络传输至玩家的装置上,玩家装置于接收后、仅需译码并显示该2D视频串流,而不需进行额外的3D渲染计算。然而,前述在同一服务器上为众多的玩家执行渲染计算的传统技术,将导致执行3D渲染计算的服务器负载过大;此外,因玩家所见画面皆以经过破坏性压缩的2D视频串流形式传输,因此,无论是影像与声音的质量均与原显示3D对象的质量有一段落差,且服务器与玩家装置间的大量网络通讯带宽,亦成为一大问题。
【发明内容】
[0004]本发明的主要目的在于提供一种通过网络传送如影像与声音等媒体的系统及方法,可降低服务器的负载,提升用户装置上显示的影像与声音的质量,并节省服务器与用户装置间的通讯带宽;本发明方法的特点为将用户装置本身的3D渲染和音效输出,与服务器端的3D渲染和音效输出(压缩为2D串流影音传送过来)相结合,成为更佳的3D渲染和音效输出结果。
[0005]为达上述目的,本发明提供了一种通过网络传送媒体的系统及方法,此系统包括一服务器及一用户装置,而此方法包括下列步骤。
[0006]步骤(A):在服务器上执行一应用程序,以产生一包含多个3D模型及3D声音的虚拟3D环境,每一 3D模型或3D声音搭配一状态,该状态指示此3D模型或3D声音是否预存在用户装置中;而用户装置通过一网络连接至服务器,用以下载包含由应用程序产生的至少一些3D模型及3D声音的媒体。
[0007]步骤(B):服务器检验3D模型的状态,以决定哪一个3D模型需被编码为一具声音的2D视频串流帧,其决定方式为:将非预存在用户装置中的3D模型编码至2D视频串流帧中。
[0008]服务器检验3D声音的状态,以决定那一个3D声音需被编码为一具立体声的2D视频串流帧,其决定方式为:将非预存在用户装置中的3D声音编码至2D视频串流帧中;其中,当一 3D声音被编码为2D视讯串流帧中的立体声时,其左右声道的音量由其位置及相对用户耳朵的速度所决定;其中,背景音乐可定义为一预定位置上的3D音效。
[0009]为降低服务器负载或防止因不稳定的网络数据传递而产生的噪音,服务器可放弃对视讯帧中3D声音的编码,在此情形下,3D声音仅在预存于用户装置中时才被播放。
[0010]步骤(C):服务器至少通过网络将具立体声的2D视频串流帧传送至用户装置。
[0011]步骤(D):用户装置将接收自服务器的具立体声的2D视频串流帧译码,并利用2D视频串流帧作为背景画面与背景音频,在此背景之上,渲染预存在用户装置中,但未包含在2D视频串流帧中的3D模型与3D声音,成为前景画面与前景音频。
[0012]步骤(E):用户装置将自身渲染的前景画面与前景音频与服务器送来2D视频串流帧,也就是背景画面与背景音频加以混合,输出一个新的,具声音的2D视讯串流帧。
[0013]在一较佳实施例的步骤(B)中,我们取一个虚拟位置,然后各3D模型依照和此虚拟位置的远近排序,由距离最近的3D模型开始,一一检验其状态。在检验中,当发现第一个未预存在用户装置中的3D模型时,无论其后的3D模型是否预存在用户装置中,即将包括所发现的3D模型及其后所有3D模型编码至视讯串流帧中。而当任何3D模型的位置改变时或者当排序参考用的虚拟位置改变时,即重新执行前述的排序与检验,且依最新的检验结果决定一 3D模型是否须被编码至视讯串流帧中。
[0014]在一较佳实施例中,当一新的3D模型出现在3D环境中时,无论其后的3D模型是否预存在用户装置中,即行将包括新的3D模型的所有其后3D模型编码至视讯串流帧中。
[0015]在一较佳实施例的步骤(C)中,服务器亦将未预存在用户装置中的3D模型及3D声音以一预定顺序传送至用户装置中;而当用户装置接收到由服务器传送来的3D模型或3D声音时,用户装置即将3D模型或3D声音储存并发出一信息至服务器,以改变3D模型或3D声音的状态,并指示服务器:此3D模型或3D声音现已预存在用户装置中。
[0016]在一较佳实施例的步骤(C)中,服务器亦将未被编码至视讯串流帧中的3D模型及3D声音的状态信息传送至用户装置;用户装置于接收及检验状态信息时,依下列方式进行:如果接收到的状态信息中的任何3D模型或3D声音为非预存在用户装置中者,则用户装置即送出一请求至服务器,以下载3D模型或3D声音。
[0017]在一较佳实施例中,状态信息包括每一未被编码至视讯串流帧中的诠译数据,每一诠译数据包括3D模型或3D声音的一名称、一位置、一速度、一座向、以及一属性。
[0018]在一较佳实施例中,服务器又包括一 3D场景传输器及一 3D场景服务器,3D场景传输器为一编译在应用程序中或于运行时间中动态连接在应用程序上的数据库,其设有一包含所有3D模型及3D声音以及每一 3D模型或3D声音状态的列表,所包括的状态用以指明3D模型或3D声音的状态为“Not Ready (未备妥)”、“Loading(下载中)”、或为“Readyfor Client (用户已下载)”中的一种。3D场景服务器为一服务器上执行的服务器程序,其作为3D场景传输器及用户装置间信息传递的中继站,3D场景服务器自身亦可作为一供用户装置自服务器下载必要3D模型及3D声音的档案下载服务器。
[0019]在一较佳实施例中,用户装置还包括一 3D场景客户端及一 3D场景快取,3D场景客户端为一于用户装置上运转的程序,用以渲染3D模型,将结果输出为视频串流并通过网络与服务器沟通;而3D场景快取则是用以储存至少一之前自服务器下载的3D模型及3D声立曰ο
【附图说明】
[0020]图1为本发明通过网络传送媒体的系统一标准实施例的示意图;
[0021]图2为本发明系统架构一实施例的示意图;
[0022]图3A为本发明通过网络传送媒体的方法一实施例的流程图;
[0023]图3B为本发明通过网络传送媒体的方法另一实施例的流程图;
[0024]图4A、4B及4C显示本发明方法如何传送视讯串流及3D模型一实施例的示意图;
[0025]图5A、5B及5C显示本发明方法如何决定哪个3D模型须被编码至帧一实施例的示意图;
[0026]图6A、6B及6C显示本发明方法如何传送具声音的视讯串流及3D声音一实施例的示意图;
[0027]图7A、7B及7C显示本发明方法如何决定哪个3D声音须被编码至具声音的视讯串流帧一实施例的示意图。
[0028]附图标记说明:1?服务器;3?网络(基地台);4?网络;21?用户装置(智能手机);22?用户装置(笔记本电脑);23?用户装置(桌面计算机);51?使用者眼睛;52?投影面;70?服务器;71、71a?人;72、72a?房屋;73、73a?帧;74?用户装置;75?视讯串流帧;81、81a?声音;82、82a?声音;83、83a?帧;85?视讯串流帧;100?应用程序;110?3D场景传输器(程序库);120?3D场景服务器;170?3D场景客户端(程序);190?3D场景快取。
【具体实施方式】
[0029]为了能更清楚地描述本发明所提出的镜头模块定位结构,以下将配合图式详细说明。
[0030]本发明运用之一为在线游戏,其玩家使用一用户装置,通过网络于一服务器上进行游戏,此服务器依玩家的指令动作,并于用户装置上产生视讯;例如,当一玩家在用户装置采取动作时,此一动作即会传送至服务器装置,并于其上计算一影像,再将影像回传至用户装置。在许多在线游戏中,服务器所产生的2D影像包括在视线范围内其他对象的3D渲染(Rendering)。
[0031]本发明通过服务器提供用户装置所需的3D模型及3D声音,以于服务器及用户装置间进行位在视线范围内对象的3D渲染解析,例如,服务器提供一些或所有的3D模型及3D声音至用户装置,并夹带每一 3D模型或3D声音相关的诠译数据,比如位置,座向及状态数据等等。
[0032]举例说明,当在游戏初始,所有在用户装置上与游戏相关的影像(包括相关的3D渲染)通过网络由服务器产生,成为具立体声的2D视讯串流。本发明提供的系统通过网络,在视线范围内推送3D模型及3D声音等媒体及其渲染信息至用户装置,较近(靠近眼睛)的对象优先推送。本发明系统尽可能于用户装置上进行3D模型及3D声音的渲染,退而求其次则是于服务器上进行如3D模型或3D声音等的渲染。
[0033]一 3D模型或一 3D声音既存于用户装置上,服务器仅需提供对象(3D模型或3D声音)的诠译数据至用户装置,用户装置可据此渲染这些对象,并将结果呈现于服务器所提供的任何具立体声的2D视讯之上;除非用户装置的要求,否则服务器将不会对此3D模型及3D声音进行渲染。本发明方法此一安排将节省服务器上的GPU计算,服务器可维护一动态数据库,包含3D模型及3D声音,以增进与用户通讯的效能。
[0034]本发明中,用户装置所显示的内容包含下列的组合:(a) —于服务器上渲染的3D场景,结果为具立体声的2D视频串流的形式,传送至客户端并由用户装置所播放,以及(b)自服务器上下载储存于用户装置上,由用户装置自行渲染3D模型及3D声音的结果,此一具立体声的2D视讯串流与用户装置上渲染的3D模型及3D声音的混合,将会在降低带宽占用的情形下,仓Il造出一缤纷的3D场景以及动人的环场音效。
[0035]在一实施例中,传送至用户装置的具立体声的2D视讯串流夹带3D模型及3D声音的诠译数据,用户装置会检测自己是否存有此3D模型及3D声音,如果没有的话,用户装置将会自服务器下载所需的3D模型及3D声音,下载后,用户装置会将其储存、并建立数据清单,以备之后重建场景所需。如此,视频串流的延迟与需要大量带宽等问题将会获得改善,且由用户装置端自行渲染,将可得到质量更佳的影像(因未经过视频压缩)。
[0036]前述的诠译数据将允许用户装置可在不遗漏或重复任何3D模型或3D声音的情形下,正确地混合用户装置端以3D模型及3D声音所渲染的结果,与服务器提供的具立体声的2D视讯串流;如前所述,当用户装置储存所有需要的3D模型及3D声音后,用户装置即可重建完整的3D场景及声音,此时,服务器即不再