一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

混合流式传输的制作方法

2022-06-12 01:38:38 来源:中国专利 TAG:


1.实施例总体上涉及交互式媒体系统,并且特别但不排他地涉及用于媒体内容(例如计算机生成的视频)的混合流式传输的方法、系统、以及计算机可读介质。


背景技术:

2.一些交互式媒体系统(例如在线游戏)涉及客户端-服务器架构,其中,服务器可能具有用于渲染的计算能力,但可能由于网络连接而遭受滞后(或时延),而客户端设备可能没有滞后,但缺乏服务器的计算资源。
3.一些基于计算机的游戏包括具有三维外观的视频,其中,该视频包括背景图像和三维渲染的一个或多个前景对象。可能需要计算资源来执行渲染,同时响应前景对象中的变化,无滞后地呈现移动。此外,根据上述需要设想了一些实施方式。


技术实现要素:

4.一些实施方式可以包括一种方法。该方法可以包括:在客户端设备接收背景视频,该背景视频对应于从与客户端设备相关联的特定有利地点观看的虚拟环境的背景部分,其中,在服务器上渲染该背景视频,以及使用客户端设备渲染至少部分在虚拟环境的前景部分中的一个或多个渲染对象。该方法还可以包括:使用客户端设备将背景视频的至少一部分和一个或多个渲染对象中的至少一个组合成合成视频,并输出该合成视频。
5.在一些实施方式中,背景视频可以包括在与客户端设备相关联的特定有利地点的位置附近的虚拟环境的全景视图。在一些实施方式中,背景视频包括用于映射三维场景的色彩映射信息。
6.该方法还可以包括:从服务器接收对应于背景视频的补充数据。在一些实施方式中,补充数据可以包括三维几何信息或来自深度缓冲区中的一个或多个的数据。在一些实施方式中,上述组合可以包括将一个或多个渲染对象覆盖在背景视频上面,并且该方法还可以包括:使用深度和几何信息来确定在一个或多个渲染对象前面或在一个或多个渲染对象后面的背景视频的部分。在一些实施方式中,上述组合可以包括使用几何信息中的深度来匹配当前视点。
7.在一些实施方式中,上述组合可以包括使用对应于相应的不同距离的多层全景图像来产生视差效果。在一些实施方式中,生成上述合成视频包括使用深度信息来确定一个或多个渲染对象相对于背景视频中的一个或多个位置的放置。
8.一些实施方式可以包括一种用于执行混合视频流式传输的设备,该设备可以包括一个或多个处理器和耦合到一个或多个处理器的存储器,该存储器上存储有指令,当由一个或多个处理器执行时,上述指令用于执行操作。上述操作可以包括:在客户端设备接收背景视频,该背景视频对应于从与客户端设备相关联的特定有利地点观看的虚拟环境的背景部分,其中,在服务器上渲染该背景视频,以及使用客户端设备渲染至少部分在虚拟环境的前景部分中的一个或多个渲染对象。上述操作还可以包括使用客户端设备将背景视频的至
少一部分和一个或多个渲染对象中的至少一个组合成合成视频,并且输出该合成视频。
9.在一些实施方式中,背景视频可以包括在与客户端设备相关联的特定有利地点的位置附近的虚拟环境的全景视图。在一些实施方式中,背景视频包括用于映射三维场景的色彩映射信息。
10.上述操作还可以包括从服务器接收对应于背景视频的补充数据。在一些实施方式中,补充数据可以包括三维几何信息或来自深度缓冲区中的一个或多个的数据。在一些实施方式中,上述组合可以包括将一个或多个渲染对象覆盖在背景视频上面,并且上述操作还可以包括使用深度和几何信息来确定在一个或多个渲染对象前面或在一个或多个渲染对象后面的背景视频的部分。在一些实施方式中,上述组合可以包括使用几何信息中的深度来匹配当前视点。
11.在一些实施方式中,上述组合可以包括使用对应于相应的不同距离的多层全景图像来产生视差效果。在一些实施方式中,生成上述合成视频包括使用深度信息来确定一个或多个渲染对象相对于背景视频中的一个或多个位置的放置。
12.一些实施方式可以包括一种非暂时性计算机可读介质,该非暂时性计算机可读介质包括指令,响应于由处理设备执行,该指令使处理设备执行操作。上述操作可以包括:在客户端设备接收背景视频,该背景视频对应于从与客户端设备相关联的特定有利地点观看的虚拟环境的背景部分,其中,在服务器上渲染该背景视频,以及使用客户端设备渲染至少部分在虚拟环境的前景部分中的一个或多个渲染对象。上述操作还可以包括使用客户端设备将背景视频的至少一部分和一个或多个渲染对象中的至少一个组合成合成视频,并且输出该合成视频。
13.在一些实施方式中,背景视频可以包括在与客户端设备相关联的特定有利地点的位置附近的虚拟环境的全景视图。在一些实施方式中,背景视频包括用于映射三维场景的色彩映射信息。
14.上述操作还可以包括从服务器接收对应于背景视频的补充数据。在一些实施方式中,补充数据可以包括三维几何信息或来自深度缓冲区中的一个或多个的数据。在一些实施方式中,上述组合可以包括将一个或多个渲染对象覆盖在背景视频上面,并且上述操作还可以包括使用深度和几何信息来确定在一个或多个渲染对象前面或在一个或多个渲染对象后面的背景视频的部分。在一些实施方式中,上述组合可以包括使用几何信息中的深度来匹配当前视点。
15.在一些实施方式中,上述组合可以包括使用对应于相应的不同距离的多层全景图像来产生视差效果。在一些实施方式中,生成上述合成视频包括使用深度信息来确定一个或多个渲染对象相对于背景视频中的一个或多个位置的放置。
附图说明
16.图1是根据一些实施方式的用于在线游戏的示例系统架构的图。
17.图2是根据一些实施方式的用于混合视频流式传输的示例方法的流程图。
18.图3是根据一些实施方式的用于从服务器向客户端提供背景视频的方法的流程图。
19.图4是示出根据一些实施方式的在客户端设备组合来自服务器的背景视频和在客
户端设备渲染的一个或多个三维对象的图。
20.图5a和图5b示出了根据一些实施方式的多种全景场景分布格式的视图。
21.图6a示出了根据一些实施方式的从客户端设备的当前视点在服务器设备上渲染的背景视频帧。
22.图6b示出了根据一些实施方式的在客户端渲染的三维对象与图6a的背景帧组合的视频帧。
23.图7a和图7b分别示出了根据一些实施方式的视频帧和对应的深度图。
24.图8a和图8b分别示出了根据一些实施方式的基于深度的视图投影和再投影。
25.图9是示出根据一些实施方式的示例性计算设备的框图。
具体实施方式
26.在以下具体实施方式中,参照了构成本文一部分的附图。在附图中,除非上下文另有规定,否则类似的符号通常标识类似的组件。在具体实施方式、附图、以及权利要求中描述的说明性实施例并不意味着是限制性的。在不脱离本文呈现的主题的精神或范围的情况下,可以使用其他实施例,并且可以进行其他改变。如本文一般描述并且如图所示的本公开的各方面可以被布置、替换、组合、分离、以及设计成各种不同的配置,本文考虑了所有这些配置。
27.交互式媒体应用或系统,例如在线游戏平台(可以包括“用户生成的内容平台”或“用户生成的内容系统”),可以为用户彼此交互提供各种方式。例如,在线游戏平台的用户可以朝着共同的目标一起工作,共享各种虚拟游戏项目,相互发送电子消息,等等。在线游戏平台的用户可以使用角色进行游戏。
28.在线游戏平台还可以允许该平台的用户创建和动画化新角色和化身。例如,可以允许在线游戏平台的用户创建、设计、以及定制新角色。图1:系统架构
29.图1示出了根据本公开的一些实施方式的示例系统架构100。系统架构100(本文也称为“系统”)包括在线游戏平台102、第一客户端设备110(本文通常称为“客户端设备110”)、网络122、以及至少一个第二客户端设备116。除此之外,在线游戏平台102可以包括游戏引擎104、一个或多个游戏105、图形模块106、混合流式传输模块107、以及数据存储区108。客户端设备110可以包括游戏应用112、用户界面114(例如,音频/视频输入/输出设备)、以及混合流式传输模块115。客户端设备116可以包括游戏应用118、用户界面120(例如,音频/视频输入/输出设备)和混合流式传输模块121。混合流式传输模块115和混合流式传输模块1212可以与游戏应用(分别为112和118)分离或集成。在线游戏平台102中的混合流式传输模块107可以是单独的模块,或者可以被合并到另一模块(例如图形模块106)中。音频/视频输入/输出设备可以包括麦克风、扬声器、耳机、显示设备等中的一个或多个。
30.提供系统架构100以供说明而非限制。在一些实施方式中,系统架构100可以包括以与图1所示的方式相同或不同的方式配置的相同、更少、更多、或不同的元件。
31.在一个实施方式中,网络122可包括公用网络(例如,互联网)、专用网络(例如局域网(local area network,lan)或广域网(wide area network,wan))、有线网络(例如,以太网)、无线网络(例如802.11网络、网络、或无线lan(wireless lan,wlan))、蜂窝网
络(例如长期演进(long term evolution,lte)网络)、路由器、集线器、交换机、服务器计算机、或其组合。
32.在一个实施方式中,数据存储区108可以是非暂时性计算机可读存储器(例如,随机存取存储器)、高速缓存、驱动器(例如,硬盘驱动器)、闪存驱动器、数据库系统、或能够存储数据的另一类型的组件或设备。数据存储区108还可以包括还可以跨越多个计算设备(例如,多个服务器计算机)的多个存储组件(例如,多个驱动器或多个数据库)。
33.在一些实施方式中,在线游戏平台102可以包括具有一个或多个计算设备的服务器(例如,云计算系统、机架服务器、服务器计算机、物理服务器集群等)。在一些实施方式中,服务器可以包括在在线游戏平台102中,可以是独立的系统,或者是另一系统或平台的一部分。
34.在一些实施方式中,在线游戏平台102可以包括一个或多个计算设备(例如机架式服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板计算机、台式计算机等)、数据存储区(例如,硬盘、存储器、数据库)、网络、软件组件、和/或硬件组件,可用于在在线游戏平台102上执行操作并向用户提供对在线游戏平台102的访问权限。在线游戏平台102还可以包括可用于向用户提供对在线游戏平台102提供的内容的访问权限的网站(例如,网页)或应用后端软件。例如,用户可以使用客户端设备110上的游戏应用112访问在线游戏平台102。
35.在一些实施方式中,在线游戏平台102可以包括在用户之间提供连接的一种社交网络,或者是允许用户(例如,最终用户或消费者)在在线游戏平台102上与其他用户通信的一种用户生成内容系统,其中,通信可以包括语音聊天(例如,同步和/或异步语音通信)、视频聊天(例如,同步和/或异步视频通信)、或文本聊天(例如,同步和/或异步的基于文本的通信)。在本公开的一些实施方式中,“用户”可以表示为个人。然而,本公开的其他实施方式涵盖“用户”(例如,创建性用户)是由一组用户或自动源控制的实体。例如,在用户生成内容系统中联合为社区或组的一组个人用户可以视为是“用户”。
36.在一些实施方式中,在线游戏平台102可以是虚拟游戏平台。例如,游戏平台可以向用户社区提供单人游戏或多人游戏,用户社区可以使用客户端设备110经由网络122访问游戏或与游戏交互。在一些实施方式中,游戏(本文也称为“视频游戏”、“在线游戏”、或“虚拟游戏”)可以例如是二维(two-dimensional,2d)游戏、三维(three-dimensional,3d)游戏(例如,3d的用户生成的游戏)、虚拟现实(virtual reality,vr)游戏、或增强现实(augmented reality,ar)游戏。在一些实施方式中,用户可以与其他用户一起参与游戏。在一些实施方式中,可以与游戏的其他用户实时地玩该游戏。
37.在一些实施方式中,游戏性(gameplay)可以指一个或多个玩家在游戏(例如,105)内使用客户端设备(例如,110和/或116)进行交互,或者在客户端设备110或客户端设备116的显示屏或其他用户界面(例如,114/120)上呈现交互。
38.在一些实施方式中,游戏105可以包括电子文件,可以使用被配置为向实体呈现游戏内容(例如,数字媒体项目)的软件、固件、或硬件来执行或加载该电子文件。在一些实施方式中,可以执行游戏应用112,并结合游戏引擎104渲染游戏105。在一些实施方式中,游戏105可以具有一组公共规则或公共目标,并且游戏105的环境共享该组公共规则或公共目标。在一些实施方式中,不同的游戏可能具有彼此不同的规则或目标。
39.在一些实施方式中,游戏可以具有一个或多个环境(本文也称为“游戏环境”或“虚拟环境”),其中,可以链接多个环境。环境的示例可以是三维(3d)环境。游戏应用105的一个或多个环境在本文中可以统称为“世界”或“游戏世界”或“虚拟世界”或“宇宙”。世界的示例可以是游戏105的3d世界。例如,用户可以构建链接到由另一用户创建的另一虚拟环境的虚拟环境。虚拟游戏的角色可以跨越虚拟边界进入相邻的虚拟环境。
40.可以注意到,3d环境或3d世界使用的是提供表示游戏内容的几何数据的三维表示的图形(或者无论是否使用几何数据的3d表示,至少将游戏内容呈现为3d内容)。2d环境或2d世界使用的是提供表示游戏内容的几何数据的二维表示的图形。
41.在一些实施方式中,在线游戏平台102可以托管一个或多个游戏105,并且可以允许用户使用客户端设备110的游戏应用112与游戏105交互。在线游戏平台102的用户可以玩、创建、交互、或构建游戏105,与其他用户通信,和/或创建和构建游戏105的对象(例如,本文也称为“项目”或“游戏对象”或“虚拟游戏项目”)。例如,在生成用户生成的虚拟项目时,用户可创建角色、角色的动画、角色的装饰、一个或多个用于交互式游戏的虚拟环境,或构建游戏105中使用的结构等。在一些实施方式中,用户可以与在线游戏平台102的其他用户购买、出售、或交易游戏虚拟游戏对象,例如平台内货币(例如,虚拟货币)。在一些实施方式中,在线游戏平台102可以将游戏内容发送到游戏应用(例如,112)。在一些实施方式中,游戏内容(本文也称为“内容”)可以指与在线游戏平台102或游戏应用相关联的任何数据或软件指令(例如,游戏对象、游戏、用户信息、视频、图像、命令、媒体项目等)。在一些实施方式中,游戏对象(例如,本文也称为“项目”或“对象”或“虚拟游戏项目”)可以指在在线游戏平台102的游戏应用105或客户端设备110/116的游戏应用112或游戏应用118中使用、创建、共享、或以其他方式描绘的对象。例如,游戏对象可以包括部件、模型、角色或其部位(例如脸、手臂、嘴唇等)、工具、武器、服装、建筑物、车辆、货币、植物群、动物群、上述对象的组件(例如建筑物的窗户)等。
42.可以注意到,提供托管游戏105的在线游戏平台102是为了说明而非限制。在一些实施方式中,在线游戏平台102可以托管一个或多个媒体项目,该媒体项目可以包括从一个用户到一个或多个其他用户的通信消息。媒体项目可以包括但不限于数字视频、数字电影、数字照片、数字音乐、音频内容、旋律、网站内容、社交媒体更新、电子书、电子杂志、数字报纸、数字有声读物、电子期刊、网络博客、简易信息聚合(real simple syndication,rss)提要、电子漫画书、软件应用等。在一些实施方式中,媒体项目可以是电子文件,可以使用被配置为将数字媒体项目呈现给实体的软件、固件、或硬件来执行或加载该电子文件。
43.在一些实施方式中,游戏105可以与特定用户或特定用户组(例如,私人游戏)相关联,或者对在线游戏平台102的用户广泛可用(例如,公共游戏)。在一些实施方式中,其中在线游戏平台102将一个或多个游戏105与特定用户或用户组相关联,在线游戏平台102可以使用用户账号信息(例如,诸如用户名和密码的用户账号标识符)将特定用户与游戏102相关联。
44.在一些实施方式中,在线游戏平台102或客户端设备110可以包括游戏引擎104或游戏应用112/118。在一些实施方式中,游戏引擎104可以用于游戏105的开发或执行。例如,游戏引擎104可以包括用于2d、3d、vr、或ar图形的渲染引擎(“渲染器”)、物理引擎、碰撞检测引擎(和碰撞响应)、声音引擎、脚本功能、动画引擎、人工智能引擎、网络功能、流功能、存
储管理功能、线程功能、场景图功能、或动画视频支持、以及其他功能。游戏引擎104的组件可以生成帮助计算和渲染游戏的命令(例如,渲染命令、碰撞命令、动画命令、物理命令等)。在一些实施方式中,客户端设备110/116的游戏应用112/118分别可以独立工作和/或与在线游戏平台102的游戏引擎104协作。
45.在一些实施方式中,在线游戏平台102和客户端设备110/116都执行游戏引擎(分别为104、112、118)。使用游戏引擎104的在线游戏平台102可以执行部分或全部游戏引擎功能(例如,生成物理命令、动画命令、渲染命令等),或者将部分或全部游戏引擎功能分流到客户端设备110的游戏引擎104。在一些实施方式中,在在线游戏平台102上执行的游戏引擎功能与在客户端设备110和客户端设备116上执行的游戏引擎功能之间的比例对于每个游戏105可以是不同的。例如,在线游戏平台102的游戏引擎104可用于在至少两个游戏对象之间存在碰撞的情况下生成物理命令,而附加的游戏引擎功能(例如,生成渲染命令)可以被分流到客户端设备110。在一些实施方式中,在在线游戏平台102和客户端设备110上执行的游戏引擎功能的比率可以基于游戏条件而改变(例如,动态地改变)。例如,如果参与特定游戏105的用户数量超过阈值数量,则在线游戏平台102可以执行先前由客户端设备110或客户端设备116执行的一个或多个游戏引擎功能。
46.例如,用户可以在客户端设备110和客户端设备116上玩游戏105,并且可以向在线游戏平台102发送控制指令(例如,用户输入(例如右、左、上、下)、用户选择、或角色位置和速度信息等)。在从客户端设备110和客户端设备116接收到控制指令之后,在线游戏平台102可以基于控制指令向客户端设备110和客户端设备116发送游戏性指令(例如,参与组游戏的角色的位置和速度信息或命令,如渲染命令、碰撞命令等)。例如,在线游戏平台102可以对控制指令执行一个或多个逻辑操作(例如,使用游戏引擎104),以生成用于客户端设备110和客户端设备116的游戏性指令。在其他实例中,在线游戏平台102可以将来自一个客户端设备110的一个或多个控制指令传递到参与游戏105的其他客户端设备(例如116)。客户端设备110和客户端设备116可以使用游戏性指令并渲染游戏以在客户端设备110和客户端设备116的显示屏上呈现。
47.在一些实施方式中,控制指令可以指指示用户角色的游戏中动作的指令。例如,控制指令可以包括控制游戏中动作的用户输入(例如右、左、上、下)、用户选择、陀螺仪位置和方向数据、力传感器数据等。控制指令可以包括角色位置和速度信息。在一些实施方式中,控制指令被直接发送到在线游戏平台102。在其他实施方式中,控制指令可以从客户端设备110发送到另一客户端设备(例如,客户端设备116),其中,该另一客户端设备使用本地游戏引擎104生成游戏性指令。控制指令可以包括在音频设备(例如,扬声器、耳机等)上播放来自另一用户的语音通信消息或其他声音(例如使用如本文所述的音频空间化技术生成的语音通信或其他声音)的指令。
48.在一些实施方式中,游戏性指令可以指允许客户端设备110(或116)渲染游戏(例如多人游戏)的游戏性的指令。游戏性指令可以包括用户输入(例如,控制指令)、角色位置和速度信息、或命令(例如,物理命令、动画命令、渲染命令、碰撞命令等)中的一个或多个。
49.在一些实施方式中,角色(或一般性地,游戏对象)由组件构造,这些组件中的一个或多个可由用户选择,这些组件自动结合在一起以帮助用户进行编辑。一个或多个角色(本文也称为“化身”或“模型”)可以与用户相关联,其中用户可以控制角色以促进用户与游戏
105的交互。在一些实施方式中,角色可以包括诸如身体部位(例如,可以被动画化的头发、手臂、腿等)和配件(例如,t恤、眼镜、装饰性图像、工具等)的组件。在一些实施方式中,可定制的角色的身体部位包括头部类型、身体部位类型(手臂、腿、躯干、以及手)、面部类型、头发类型、以及皮肤类型等。在一些实施方式中,可定制的配件包括服装(例如,衬衫、裤子、帽子、鞋子、眼镜等)、武器、或其他工具。在一些实施方式中,用户还可以控制角色的规模(例如,高度、宽度、或深度)或角色的组件的规模。在一些实施方式中,用户可以控制角色的比例(例如,块状、解剖等)。可以注意到,在一些实施方式中,角色可以不包括角色游戏对象(例如,身体部位等),但是用户可以控制角色(无角色游戏对象)以促进用户与游戏的交互(例如益智游戏,其中没有渲染的角色游戏对象,但是用户仍控制角色以控制游戏中的动作)。
50.在一些实施方式中,诸如身体部位的组件可以是诸如块、圆柱、球形等的原始几何形状,或者是诸如楔形、圆环、管状、通道等的一些其他原始形状。在一些实施方式中,创建者模块可以发布用户的角色,以供在线游戏平台102的其他用户查看或使用。在一些实施方式中,创建、修改、或定制角色,其他游戏对象、游戏105、或游戏环境可以由用户使用用户界面(例如,开发者界面)以及使用或不使用脚本(或使用或不使用应用编程接口(application programming interface,api))来执行。可以注意到,为了说明而非限制,将角色描述为具有人形形式。还可以注意到,角色可以具有任何形式,例如交通工具、动物、无生命物体、或其他创造性形式。
51.在一些实施方式中,在线游戏平台102可以将用户创建的角色存储在数据存储区108中。在一些实施方式中,在线游戏平台102维护可经由在线游戏平台102呈现给用户的角色目录和游戏目录。在一些实施方式中,游戏目录包括存储在在线游戏平台102上的游戏的图像。此外,用户可以从角色目录中选择角色(例如,由该用户或其他用户创建的角色)以参与选择的游戏。角色目录包括存储在在线游戏平台102上的角色的图像。在一些实施方式中,角色目录中的一个或多个角色可能已经由用户创建或定制。在一些实施方式中,选择的角色可以具有定义该角色的一个或多个组件的角色设置。
52.在一些实施方式中,用户的角色可以包括组件的配置,其中,组件的配置和外观以及更一般而言角色的外观可以由角色设置来定义。在一些实施方式中,用户角色的角色设置可以至少部分地由用户选择。在其他实施方式中,用户可以选择具有默认角色设置或其他用户选择的角色设置的角色。例如,用户可以从具有预定义角色设置的角色目录中选择默认角色,并且用户可以通过改变一些角色设置来进一步定制默认角色(例如,添加具有定制徽标的衬衫)。可以通过在线游戏平台102将角色设置与特定角色相关联。
53.在一些实施方式中,客户端设备110或客户端设备116可以各自包括计算设备,例如个人计算机(personal computer,pc)、移动设备(例如,膝上型计算机、移动电话、智能电话、平板计算机、或上网本计算机)、互联网电视、游戏控制台等。在一些实施方式中,客户端设备110或客户端设备116也可以称为“用户设备”。在一些实施方式中,一个或多个客户端设备110或客户端设备116可以在任何给定时刻连接到在线游戏平台102。可以注意到,提供客户端设备110或客户端设备116的数量是为了说明而非限制。在一些实施方式中,可以使用任何数量的客户端设备110或客户端设备116。
54.在一些实施方式中,每个客户端设备110或客户端设备116可以分别包括游戏应用
112或游戏应用118的实例。在一个实施方式中,游戏应用112或游戏应用118可以允许用户使用在线游戏平台102并与之交互,例如控制由在线游戏平台102托管的虚拟游戏中的虚拟角色,或者查看或上传内容(例如游戏105、图像、视频项目、网页、文档等)。在一个示例中,游戏应用可以是网络应用(例如,结合网络浏览器操作的应用),网络应用可以访问、检索、呈现、或导航由网络服务器服务的内容(例如,虚拟环境中的虚拟角色等)。在另一示例中,游戏应用可以是在客户端设备110或客户端设备116本地安装并执行、并且允许用户与在线游戏平台102交互的本地应用(例如,移动应用、应用、或游戏程序)。游戏应用可以(例如,经由混合流式传输模块115和混合流式传输模块121结合上述平台混合流式传输模块107)向用户渲染、显示、或呈现内容(例如,网页、媒体观看器)。在实施方式中,游戏应用还可以包括嵌入在网页中的嵌入式媒体播放器(例如,播放器)。
55.根据本公开的各方面,游戏应用可以是在线游戏平台应用,供用户构建、创建、编辑、上传内容到在线游戏平台102以及与在线游戏平台102交互(例如,玩由在线游戏平台102托管的游戏105)。因此,游戏应用可以由在线游戏平台102提供给客户端设备110或客户端设备116。在另一示例中,游戏应用可以是从服务器下载的应用。
56.在一些实施方式中,用户可以经由游戏应用登录到在线游戏平台102。用户可以通过提供用户账号信息(例如,用户名和密码)来访问用户账号,其中,用户账号与可用于参与在线游戏平台102的一个或多个游戏105的一个或多个角色相关联。
57.通常,如果适当的话,在一个实施方式中描述为由在线游戏平台102执行的功能也可以在其他实施方式中由客户端设备110或客户端设备116或服务器执行。此外,归属于特定组件的功能可以由不同或多个组件一起操作来执行。在线游戏平台102还可以作为通过适当的应用编程接口(api)提供给其他系统或设备的服务而被访问,因此不限于在网站中使用。
58.在一些实施方式中,在线游戏平台102可以包括图形模块106。在一些实施方式中,图形模块106可以是允许在线游戏平台102提供图形和动画能力的系统、应用、或模块。在一些实施方式中,图形模块106可以执行下面结合图3或图4所示的流程图描述的一个或多个操作。图2:生成合成视频的方法
59.图2是根据一些实施方式的用于执行混合视频流式传输的示例方法200(例如,计算机实施的方法)的流程图。
60.在一些实施方式中,方法200可以在例如服务器设备、或客户端设备、或其他设备中的一个或多个或设备的组合上实施。在一些实施方式中,方法200的部分或全部可以在图1所示的设备102或设备110/118中的一个或多个上实施、或在如图4所示的设备402或设备408中的一个或多个上实施、或在如图4所示的设备480上实施、和/或在服务器设备和客户端设备上实施。在描述的示例中,实施系统包括一个或多个数字硬件处理器或处理电路(“处理器”),以及一个或多个存储设备。可以由在客户端设备上执行的混合流式传输模块(例如115或121)执行方法200。在一些实施方式中,一个或多个设备或设施的不同组件可以执行方法200的不同块或其他部分。
61.在一些实施方式中,可以由设备自动发起方法300或该方法的部分。例如,该方法(或其部分)可以周期性地执行或基于一个或多个特定事件或条件的发生而执行。例如,这
样的事件或条件可以包括客户端设备执行视频游戏、自最后一次执行方法200以来已经超过了预定时间段、和/或发生可以在设备实施方法200的设置中指定的一个或多个其他事件或条件。在一些实施方式中,用户可以在存储的用户定制偏好(在用户同意的情况下可由设备或方法访问)中预先指定这样的条件。在一些示例中,设备(服务器或客户端)可以通过访问一个或多个应用来执行方法300。在另一示例中,服务器设备可以通过网络向客户端发送数据,并且客户端可以执行全部或部分方法200。还可以使用在服务器设备、一个或多个客户端设备、和/或上述设备的组合上的处理的组合来执行方法200。
62.处理开始于202,其中,客户端设备接收背景视频,该背景视频对应于从与客户端设备相关联的特定有利地点(例如,在视频游戏虚拟环境中特定位置处的用户、游戏玩家、或化身的有利地点)观看的虚拟环境的背景部分。在一些实施方式中,该背景视频可以包括如下文结合图3所述的在服务器上渲染的背景视频。在一些实施方式中,视频可以包括通过游戏玩家或化身的视点(例如,从特定有利地点)看到的环境视图、游戏玩家或化身的位置处的环境的全景视图、或用于映射到3d场景中的几何形状的色彩信息。在一些实施方式中,背景视频还可以包括补充数据,例如色彩映射数据、深度缓冲区数据、或三维几何信息中的一个或多个,当处理前景对象时,可以使用这些补充数据来帮助在背景上放置和定位前景对象。处理继续到204。
63.在204,客户端设备渲染至少部分在虚拟环境的前景中的一个或多个渲染对象。例如,渲染对象可以包括一个或多个对象,例如由与客户端设备相关联的视频游戏用户(或玩家)控制位置或方向的角色、车辆、或其他对象。渲染对象还可以包括由不同于与客户端设备相关联的用户的另一视频游戏用户控制位置或方向的一个或多个对象。渲染对象还可以包括由视频游戏控制位置或方向的一个或多个对象(例如,计算机控制的对象,例如人工智能对象、车辆、角色、化身等)。处理继续到206。
64.在206,客户端设备将背景视频的至少一部分和一个或多个渲染对象中的至少一个组合成合成视频。上述补充信息可以包括深度信息(例如,几何深度)。上述背景和补充数据还可以包括多个层(例如,对应于3d场景内不同深度的层)。当在客户端设备上渲染或组合时,可以使用来自服务器的补充数据中提供的深度信息。
65.例如,本地渲染的对象(及其部分)可以在视频帧中具有特定的深度和位置。可以将该深度与背景视频中的对象的深度进行比较,以确定本地渲染的对象是完全在前景中、部分在前景中、还是被背景遮挡。可以相应地调整渲染和/或组合,例如,组合视频可以基于对象像素所关联的与有利地点的距离(或深度)是否比对应的背景视频像素更小,来使用背景视频或渲染对象的一个或多个像素值。
66.可以以多种方式执行上述组合(或合成),包括但不限于将客户端对象覆盖在背景视频上面(即,在背景视频的前景中),使用深度和几何信息来确定视频的哪些部分在客户端对象前面或后面,或者使用深度和几何信息将视频内容变形以更精确地匹配客户端当前视点,然后使用上述技术之一执行合成。在一些实施方式中,可以逐帧对每个帧执行组合。通过在每个帧进行渲染和组合,可以最小化时延。在客户端设备执行的渲染和组合时,来自服务器(或平台)的帧可能不会以规则的间隔或相同的间隔到达客户端设备。因此,在客户端上渲染的图形可以与在客户端设备上的当前渲染之前接收的来自服务器的帧(例如,之前的帧)组合。处理继续到208。
67.在208,客户端设备输出合成视频。例如,客户端设备可以将合成视频输出到耦合到客户端设备的显示屏或其他输出设备(例如,外部视频显示设备、虚拟现实耳机、可穿戴显示设备、视频投影仪等)。客户端设备还可以包括虚拟现实(vr)、增强现实(ar)、或扩展现实(extended reality,xr)能力,并且客户端设备上的渲染、组合、或输出功能可以驱动客户端设备的vr、ar、或xr系统或与之协同工作。
68.块202-块208可以全部或部分重复,或者执行块202-块208的顺序可以根据预期的混合视频流式传输任务而改变。图3:用于生成背景视频和补充数据的服务器方法
69.图3是根据一些实施方式的用于从服务器向客户端提供背景视频的示例方法300(例如,计算机实施的方法)的流程图。
70.在一些实施方式中,方法300可以在例如服务器设备、或客户端设备、或其他设备中的一个或多个或设备的组合上实施。在一些实施方式中,方法300的部分或全部可以在图1所示的设备102或设备110/118中的一个或多个上实施、或在如图4所示的设备402或设备408中的一个或多个上实施、或在如图4所示的设备480上实施、和/或在服务器设备和客户端设备上实施。在描述的示例中,实施系统包括一个或多个数字硬件处理器或处理电路(“处理器”),以及一个或多个存储设备。可以由在服务器或平台系统(例如,102)上执行的混合流式传输模块(例如,107)执行方法300。在一些实施方式中,一个或多个设备或设施的不同组件可以执行方法300的不同块或其他部分。
71.在一些实施方式中,可以由设备自动发起方法300或该方法的部分。例如,该方法(或其部分)可以周期性地执行或基于一个或多个特定事件或条件的发生而执行。例如,这样的事件或条件可以包括客户端设备执行视频游戏、自最后一次执行方法300以来已经超过了预定时间段、和/或发生可以在设备实施方法300的设置中指定的一个或多个其他事件或条件。在一些实施方式中,用户可以在存储的用户定制偏好(在用户同意的情况下可由设备或方法访问)中预先指定这样的条件。在一些示例中,设备(服务器或客户端)可以通过访问一个或多个应用来执行方法400。在另一示例中,服务器设备可以通过网络向客户端发送数据,并且客户端可以执行全部或部分方法300。还可以使用在服务器设备、一个或多个客户端设备、和/或上述设备的组合上的处理的组合来执行方法300。
72.处理开始于302,其中,渲染背景视频。在一些实施方式中,服务器可以渲染背景视频,该背景视频包括通过客户端的视点(例如,从特定有利地点)看到的环境视图、客户端位置周围环境的全景视图、或用于映射到3d场景中的几何形状的色彩信息中的一个或多个。可以使用标准渲染技术或专用于本文所述的混合流式传输的技术来执行服务器侧的渲染。使用的特定技术可以取决于服务器设备和客户端设备之间的处理划分,这可以基于上述因素。在一些实施方式中,服务器可以包括用于混合流式传输的其他渲染技术。例如,如果服务器具有关于客户端将渲染的内容的信息,则服务器可以计算差异,并只渲染与客户端将渲染的内容不同的部分。在另一示例中,如果服务器具有指示客户端具有用于正在显示的环境的一些组件的高分辨率数据的信息,则服务器可以不渲染环境的那些部分,而只渲染客户端可能需要的部分(即,客户端不以高分辨率渲染的环境部分)。
73.在另一示例中,可以在服务器上进行内容决策。例如,服务器可以确定在客户端上渲染角色模型,服务器可以不在服务器上渲染角色模型。在一些实施方式中,客户端可以重
用先前在服务器上渲染的图形组件。重用先前渲染的对象对于环境中较远的对象可能很有效,因为这些对象在附近的位置看起来类似。
74.在一些实施方式中,可能不会重用整个对象的渲染,但是可以重用用于执行渲染的数据。例如,可以计算照明的视图独立部分,并在同一地图(或环境)上的所有客户端之间共享。此外,对于细节级别、地形、程序效果等的计算可以共享给同一地图或环境中的所有客户端。在一些实施方式中,服务器可以评估客户端特定的参数(例如,客户端上的渲染功率),以确定在服务器上执行多少环境渲染以及委托给客户端多少环境渲染。
75.通常,在一些实施方式中,服务器和客户端可以传输关于服务器和客户端之间渲染责任划分的信息,使得服务器不发送客户端正在本地渲染的环境部分的服务器渲染。当客户端和服务器协调设备将渲染的部分时,可以更有效地执行组合(或合成)。处理继续到304。
76.在304,可选地生成对应于背景的补充数据。在一些实施方式中,补充数据可以包括额外数据,用于向客户端通知背景视频表示的(或映射到的)环境的几何组成。该额外数据可以帮助客户端设备更准确和/或有效地执行合成操作。
77.补充数据可以包括深度缓冲区数据或3d几何信息中的一个或多个。在一些实施方式中,客户端可能已经具有对象的3d几何形状,并且可能只需要待发送的变换矩阵。与发送3d几何数据的技术相比,通过只发送变换矩阵,该过程可以变得有效。在一些实施方式中,客户端可能不需要从服务器发送的3d几何数据,而是只需要足够的几何数据来执行再投影和/或合成操作。服务器可以计算执行再投影和/或合成操作所需的最小几何数据量,从而减少需要由服务器计算和传输的数据量。处理继续到306。
78.在306,服务器向客户端发送背景视频和可选的补充数据。例如,游戏平台102可以向用户设备110上的游戏应用112发送背景视频和/或补充数据。图4:用于视频生成的客户端-服务器系统
79.图4是示出服务器402(例如,游戏平台102)具有渲染的背景视频404并经由网络406将渲染的背景视频404发送到客户端设备408(例如,客户端设备110和/或118)的图。客户端设备408渲染一个或多个对象410(例如,三维对象)并将这一个或多个对象410与渲染的背景视频404组合以产生合成视频412。客户端设备408可以在用户界面中在客户端设备的屏幕(例如,led屏幕、由客户端设备控制的投影仪等)上显示合成视频。
80.在一些实施方式中,服务器402用于有效地将视频游戏视频(或其他交互式媒体)流式传输(或渲染或显示)到一个或多个客户端设备408。与通常可以通过传统的简单视频流式传输获得的响应性相比,本文描述的技术可以提供改进的响应性。此外,与仅通过完全在客户端设备上渲染3d场景的传统技术可以获得的质量和计算资源需求相比,本文公开的技术可以使用更少的计算资源需求(例如,处理器周期和/或存储器)来提供更高质量的视频输出。例如,由于本地计算,本地渲染的前景对象可以立即(或接近立即)响应用户输入(例如,向左、向上、或向下移动、倾斜等),同时从服务器自动接收对应的背景,其中,由于可以在客户端缓冲由于移动引起的小的视角变化,所以背景中的小延迟是可接受的。
81.此外,在服务器上执行背景渲染可以帮助节省客户端侧资源,这些资源可能是稀缺的(例如,移动设备较低的处理能力、有限的存储器、有限的电池功率等)。
82.通过降低存储和计算要求,一些实施方式允许将传统(例如,控制台)视频游戏更
容易地转换为移动游戏。一些实施方式可以包括在服务器上合成服务器侧的流(例如,背景视频),该服务器可能滞后(例如,由于网络延迟),但足够强大以执行要求的渲染操作(例如,渲染大部分视频,例如背景),以及将服务器侧的流与设备上渲染的3d对象组合,该3d对象可能具有渲染限制(例如,处理器吞吐量和/或存储器),但可能具有很小的滞后或无滞后(例如,由网络时延造成的滞后)。
83.在一些实施方式中,客户端场景数据也被流式传输,这可以有助于客户端性能和资源利用率,因为客户端不需要具有用于任何可以在本地渲染的内容的数据。通常,实施方式可以包括对服务器处理和客户端处理的划分,该划分提供了客户端功率与网络带宽之间的折衷。根据客户端功率和网络带宽之间的预期折衷,可能存在对服务器处理和客户端处理的多种划分。
84.在一些实施方式中,可以基于可用的客户端处理资源和网络带宽确定服务器和客户端之间的处理划分(例如,多少视频在服务器上渲染并传输到客户端)。例如,如果客户端具有有限的处理资源,但网络连接是快速的(例如,具有高带宽和低时延),则系统可以在服务器上尽可能多地渲染,并通过快速的网络连接将渲染的视频流式传输到客户端。在另一示例中,如果客户端具有足够的处理资源(例如,以渲染前景和至少一些背景),但网络连接相对较慢,则系统可以在服务器上少量渲染,并将更多处理转移到客户端,以减少需要在网络上传输的数据量。
85.通常,更多的本地渲染对于具有相对强大的客户端和相对薄弱的网络连接的情况是有益的。如果网络带宽是可用的,则服务器可能会花费更多的处理来渲染背景视频,以换取在客户端上进行更少渲染。例如,通过提供具有多层全景图像的背景视频。将背景视频流分离到多层,每层分配不同的距离,实现了视差效果,并且即使渲染视频流中离相机(或视点)更近的对象,也可以看起来逼真。
86.在一些实施方式中,可以评估以确定服务器和客户端设备之间的混合流式传输功能的划分的因素可以包括:多少网络带宽可以专用于视频、多少处理功率可以用于在客户端设备上渲染、或者多少数据可以存储在客户端设备上。例如,在高客户端处理功率和低网络带宽可用的情况下,系统可以在本地(即,在客户端设备上)渲染背景和前景对象。例如,在高客户端处理功率和高网络带宽可用的情况下,背景可以在服务器上渲染,前景对象可以在本地渲染并与背景结合。
87.在另一示例情况中,在低客户端功率和低网络带宽可用的情况下,可以在本地以较低质量渲染背景和前景,并且服务器可以基于可用的网络带宽提供渲染。在另一示例情况中,在低客户端功率和高网络带宽可用的情况下,可以在服务器上执行更多的渲染,并且可以使用客户端设备在本地仅渲染主要前景对象。示例实施方式1图5和图6:示例视频
88.在一些实施方式中,用于混合流式传输的一种技术包括流式传输远场景(或背景)的全景视频。全景场景可以以各种格式分布,包括水平十字或立方体格式(如图5a所示)、纬度/经度格式(如图5b所示)。在客户端侧,客户端从当前视点(基于全景场景格式)渲染全景场景,并例如通过将3d对象覆盖在全景场景背景上来组合视频与3d对象。
89.图6a示出了根据一些实施方式的从客户端设备的当前视点在客户端设备上从(例
如,以图5a或图5b所示的格式之一的)全景视频渲染的背景视频帧902(例如,静止的2d图像)。图6b示出了与在客户端渲染并与图6a的背景帧组合的对象904(例如,三维对象)组合的图6a的背景视频帧。
90.因为可以将全景视频变形为当前视图,因此这种技术是有效的。上述变形可以适应相机旋转。此外,对于距离很远的对象,转化可能不是一个重要的问题。该技术还可以有效地进行流式传输,因为视频流中的大多数比特用于去遮挡(disocclusion),如果不存在显著的视差(例如,当大多数对象是远对象时),就不用进行去遮挡。该技术可以非常适用于具有距离场景的背景相对较远的对象的视频流。使用这种技术,仍然有大量的渲染在本地(即在客户端设备上)执行。
91.在相对强大的客户端设备耦合到一个相对薄弱的网络连接的情况下,这种技术是有效的。通过提供多层全景图像作为背景,可以调整该技术以将更多带宽用于背景视频,以换取在客户端上进行更少渲染。将视频流分离到多层,每层分配不同的距离,实现了视差效果,并且即使渲染视频流中离相机更近的对象,也将看起来逼真。示例实施方式2图7和图8:示例视频
92.对于离相机更近的流式传输对象,可以使用不同的技术,该技术为视频分配更多的网络带宽,以获得更多的信息来正确地变形和合成。例如,如果视频包含深度信息,则该深度信息可用于在服务器上或客户端侧进行渲染。
93.图7a和图7b分别示出了视频帧和对应的深度图。图7a是用于说明的简单场景的图。该场景包括三个结构702、704、以及706、道路708、以及背景部分710。如图7b所示,场景的这些特征具有对应的深度信息。深度信息可以包括对应于结构702的第一深度712、对应于结构704的第二深度714、对应于结构706的第三深度716、对应于道路708的第四深度718、以及对应于背景部分710的第五深度720。
94.深度信息可以用于确定在新的相机位置处视频中的对象应该在哪里。然后,通过指示哪些对象最终应该在视频场景的前面,哪些对象最终应该在视频场景的后面,该深度信息还可以用于对客户端生成的3d图形进行适当的合成。深度可以与视频一起流式传输,也可以已经在设备上,并且可以包括始终存储在客户端设备中的整个场景的3d几何形状的粗略表示。深度信息可以包括深度图或视频所映射到的一组3d对象(例如,用于投影映射风格技术)。
95.图8a示出了图像806的一行(或一行的一部分)中的像素的深度信息802的自上而下可视化800的图。深度信息可以包括图像(例如,背景场景或全景场景)中每个像素的深度值。深度810表示从沿着线808映射的特定像素到相机804的距离810。
96.图8b示出了基于深度的观看的再投影801的图,其中,基于新相机位置805再投影图像816。在一些实施方式中,可以通过采样新图像816的位置处的深度信息来生成再投影图像。采样技术可以包括沿着射线812迭代移动以到达新图像816距离,其中,上述迭代示为点814。
97.在一些实施方式中,在高功率客户端(例如,具有高于相应阈值的处理资源和/或存储资源的客户端)上,可能没有理由使用混合流式传输技术。然而,当客户端设备没有足够的可用存储资源、计算资源、和/或gpu资源时,本文描述的混合流式传输技术可以有益于
处理视频游戏的性能和能力。在一些实施方式中,客户端可能没有足够的存储来存储整个游戏环境。此外,在一些实施方式中,服务器可能具有高分辨率数据,而客户端仅具有低分辨率,并且客户端可能完全丢失一些内容。
98.在一些实施方式中,客户端和服务器之间的视频流处理的分割(或划分)可以基于存储器(在客户端或服务器处)、带宽(在客户端或服务器处)、功率(在客户端或服务器处)等中的一个或多个而动态地改变。一些实施方式可以包括“以已经计算的最终形式向客户端流式传输什么”与“客户端从(流式传输的)源数据计算什么”的动态折衷。客户端/网络规范将/可以用于确定该平衡。
99.混合流式传输可能需要更多的服务器cpu资源、gpu资源、和/或带宽资源,因此游戏平台的运营商可能针对该特征收取更多费用。在一些实施方式中,服务器计算量可以与一些形式的支付关联,例如,系统可以为高级客户流式传输“hd”版本。此外,由于混合流式传输与能够快速加入在线视频游戏体验的概念关联,所以当用户首次加入游戏/世界时,用户可以获得更多的视频流式传输(例如,以减少对具有尽可能多的本地资产的需要),并且随着资产流式传输的进行(例如,在用户在虚拟世界中度过一段时间之后),系统可以将一些事物移动到本地客户端进行渲染。
100.在一些实施方式中,“将什么作为视频流式传输”和“在客户端设备上本地执行什么”之间的平衡取决于哪些项目对时延敏感。例如,任何对游戏重要的动态对象都应该在本地渲染。在一些实施方式中,开发者可能将这些对象标记为仅在本地渲染。
101.在一些实施方式中,当移动客户端暂时失去连接时,系统可以继续根据先前接收的数据渲染,但是随着时间的推移,可能会出现视觉伪影(visual artifact)和/或变得更差。例如,由于在陈旧的数据中未渲染的区域现在是可见的,因此可能会出现孔洞(hole)。孔洞填充和其他预测技术可以用于帮助减少伪影。
102.在一些实施方式中,当网络带宽受限时,系统可以用于动态地适应网络条件并在客户端设备上执行更多操作,当存在高质量网络时,系统可以用于在服务器设备上执行更多操作。
103.在一些实施方式中,包括客户端和服务器的混合流式传输系统可以被配置为使客户端和服务器中的每一个维护关于观看参数的数据并保持几何信息同步。在一些实施方式中,转换可以专注于消除渲染差异上,以帮助减少本地组件和远程组件之间的不协调转换。
104.在一些实施方式中,客户端可以具有服务器上可用的完整的光照信息(full lighting information)的近似值。例如,与在服务器上进行的更完整的渲染相比,客户端可能知道主要的光源并且可能计算不太准确的光照和阴影。客户端可能需要足够的信息来将其负责的对象渲染到与服务器渲染的质量级别类似的质量级别。可以根据客户端的需要仅从服务器流式传输光照和/或渲染信息(例如,资产、纹理、或光照),因此光照和/或渲染信息是整个游戏世界的子集。在一些实施方式中,可以在服务器上针对整个世界全局地计算系统,但也可以在客户端上仅计算给定玩家周围的事物。
105.在一些实施方式中,视频游戏可以提供关于在任何给定时间什么事物重要或不重要的各种提示。事物的重要性的变化可能会在多少带宽用于流式传输场景的给定部分方面改变流式传输的质量。
106.在一些实施方式中,具有类似视点的客户端可以共享或重用已经计算过的流。在
一些实施方式中,可以共享在服务器上执行的渲染。例如,光照和/或阴影以及其他效果可以以独立于视图的方式计算,并且可以被重用以为不同的客户端视图创建特定图像。一些实施方式可以包括在不同客户端之间的计算摊销(amortization of computation)。
107.在一些实施方式中,客户端侧的输入以及来自服务器和客户端的物理仿真可用于确定客户端的观看参数。针对客户端的观看参数,将服务器渲染的数据进行重新渲染或变形,并与任何客户端侧的渲染合成(或组合)。在一些实施方式中,在客户端观看的位置方面,服务器可能总是“滞后于”客户端,因此规定在客户端侧要将服务器发送的数据(视频流)“变形”,以适应这种差异并提供无滞后的客户端视图。图9:示例计算设备
108.图9是可用于实现本文描述的一个或多个特征的示例计算设备900的框图。客户端设备110和客户端设备118和/或图1的游戏平台102可以以图9的计算设备900的形式提供。在一个示例中,设备900可用于实现计算机设备(例如,图1的102、110、和/或118),并执行本文描述的适当方法实施方式。计算设备900可以是任何合适的计算机系统、服务器或其他电子或硬件设备。例如,计算设备900可以是大型计算机、台式计算机、工作站、便携式计算机、或电子设备(便携式设备、移动设备、手机、智能手机、平板电脑、电视机、电视机顶盒、个人数字助理(personal digital assistant,pda)、媒体播放器、游戏设备、可穿戴设备等)。在一些实施方式中,设备900包括处理器902、存储器906、输入/输出(input/output,i/o)接口906、以及音频/视频输入/输出设备914。
109.处理器902可以是一个或多个处理器和/或处理电路,以执行程序代码并控制设备900的基本操作。“处理器”包括处理数据、信号、或其他信息的任何合适的硬件和/或软件系统、机制、或组件。处理器可以包括具有通用中央处理单元(central processing unit,cpu)、多个处理单元、用于实现功能的专用电路或其他系统的系统。处理不必局限于特定的地理位置,也不具有时间限制。例如,处理器可以以“实时”、“离线”、“批处理模式”等方式执行其功能。处理的部分可以由不同的(或相同的)处理系统在不同时间和不同位置执行。计算机可以是与存储器通信的任何处理器。
110.存储器904通常在设备900中提供以供处理器902访问,并且可以是任何合适的处理器可读存储介质,例如,随机存取存储器(random access memory,ram)、只读存储器(read-only memory,rom)、电可擦除只读存储器(electrical erasable read-only memory,eeprom)、闪存等,存储器904适用于存储供处理器执行的指令,并且与处理器902分离和/或与处理器902集成。存储器904可以存储由处理器902在服务器设备900上操作的软件,包括操作系统908、一个或多个应用910(例如混合视频流式传输应用)、以及应用数据912。在一些实施方式中,应用910可以包括使处理器902能够执行本文描述的功能(例如,图3或图4、或上述示例实施方式1和示例实施方式2的部分或全部方法)的指令。
111.例如,应用910可以包括音频空间化模块912,如本文所描述,音频空间化模块912可以在在线游戏平台(例如,102)内提供音频空间化。存储器904中的任何软件可替代地存储在任何其他合适的存储位置或计算机可读介质上。此外,存储器904(和/或其他连接的存储设备)可以存储本文描述的特征中使用的指令和数据。存储器904和任何其他类型的存储器(磁盘、光盘、磁带、或其他有形介质)可以被认为是“存储”或“存储设备”。
112.i/o接口906可以提供使服务器设备900能够与其他系统和设备接口的功能。例如,
网络通信设备、存储设备(例如,存储器和/或数据存储区108)、以及输入/输出设备可以经由接口906进行通信。在一些实施方式中,i/o接口可以连接到接口设备,该接口设备包括输入设备(键盘、指向设备、触摸屏、麦克风、相机、扫描仪等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
113.音频/视频输入/输出设备914可包括可用于接收音频消息作为输入的音频输入设备(例如麦克风等)、音频输出设备(例如扬声器、耳机等)和/或显示设备,其可用于提供图形和视觉输出,例如图3的步骤308的组合的视频输出。
114.为了便于说明,图9对处理器902、存储器904、i/o接口906、以及软件块908和910中每一个示出了一个块。这些块可以表示一个或多个处理器或处理电路、操作系统、存储器、i/o接口、应用、和/或软件模块。在其他实施方式中,设备900可以不具有所示的所有组件,和/或可以具有包括其他类型的元件的其他元件而不是本文所示的那些元件,或除了本文所示的那些元件之外还包括这些其他元件。虽然在线游戏平台102被描述为执行如本文的一些实施方式中所描述的操作,但是在线游戏平台102或类似系统的任何合适的组件或组件的组合、或者与这样的系统相关联的任何合适的一个或多个处理器可以执行所描述的操作。
115.用户(或客户端)还可以实施本文描述的特征,和/或与本文描述的特征一起使用。示例用户设备可以是包括一些与设备900类似的组件的计算机设备,例如处理器902、存储器904、以及i/o接口906。可以在存储器中提供适用于客户端设备的操作系统、软件、以及应用并由处理器使用。用于客户端设备的i/o接口可以连接到网络通信设备以及输入和输出设备,例如,用于捕获声音的麦克风、用于捕获图像或视频的相机、用于输出声音的音频扬声器设备、用于输出图像或视频的显示设备、或其他输出设备。例如,音频/视频输入/输出设备914内的显示设备可以连接到(或包括在)设备900,以显示如本文所述的预处理和后处理的图像,其中,这种显示设备可以包括任何合适的显示设备,例如lcd、led、或等离子显示屏、crt、电视机、监视器、触摸屏、3d显示屏、投影仪、或其他视觉显示设备。一些实施方式可以提供音频输出设备,例如语音输出或阅读文本的合成音。
116.本文描述的一个或多个方法(例如,方法300或方法400的一个或多个步骤)可以由能在计算机上执行的计算机程序指令或代码来实施。例如,代码可以由一个或多个数字处理器(例如,微处理器或其他处理电路)实施,并且可以存储在包括非暂时性计算机可读介质(例如,存储介质)的计算机程序产品上,例如磁性、光学、电磁、或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机软盘、随机存取存储器(ram)、只读存储器(rom)、闪存、硬磁磁盘、光盘、固态存储驱动器等。程序指令还可以包含在电子信号中并作为该电子信号提供,例如以从服务器交付的软件即服务(software as a service,saas)的形式。或者,一种或多种方法可以用硬件(逻辑门等)或硬件和软件的组合来实现。示例硬件可以是可编程处理器(例如,现场可编程门阵列(field-programmable gate array,fpga)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(application specific integrated circuit,asic)等。一种或多种方法可以作为在系统上运行的应用的一部分或组件来执行,或者作为与其他应用和操作系统一起运行的应用或软件来执行。
117.本文描述的一种或多种方法可以在能在任何类型的计算设备上运行的独立程序、在网络浏览器上运行的程序、在移动计算设备(例如,手机、智能手机、平板电脑、可穿戴设
备(手表、臂章、首饰、头饰、护目镜、眼镜等)、笔记本电脑等)上运行的移动应用(“app”)中运行。在一个示例中,可以使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)将用户输入数据发送到服务器设备并从服务器接收最终输出数据以用于输出(例如,用于显示)。在另一个示例中,在移动计算设备上的移动应用(和/或其他应用)内执行所有计算。在另一示例中,可以在移动计算设备和一个或多个服务器设备之间拆分计算。
118.虽然已经针对其特定实施方式描述了描述,但是这些特定实施方式仅仅是说明性的,而不是限制性的。示例中说明的概念可以应用于其他示例和实施方式。
119.应理解,本公开中描述的功能块、操作、特征、方法、设备、以及系统可以集成或划分为本领域技术人员已知的系统、设备、以及功能块的不同组合。可以使用任何合适的编程语言和编程技术来实现特定实施方式的例程。可以采用不同的编程技术,例如,面向过程式或面向对象式。例程可以在单个处理设备或多个处理器上执行。虽然可以按照特定顺序呈现步骤、操作、或计算,但是在不同的特定实施方式中可以改变顺序。在一些实施方式中,在本说明书中显示为顺序的多个步骤或操作可以同时执行。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献