电磁场上的头戴式显示器与控制器的时钟同步的制作方法

文档序号:23798846发布日期:2021-02-02 11:44阅读:129来源:国知局
电磁场上的头戴式显示器与控制器的时钟同步的制作方法
电磁场上的头戴式显示器与控制器的时钟同步
1.技术领域
[0001]
本公开涉及电磁场上的头戴式显示器与控制器的时钟同步。


背景技术:

[0002]
2.相关技术说明
[0003]
视频游戏产业多年以来已发生了许多变化。随着计算能力的扩展,视频游戏的开发者同样创建了利用这些提高的计算能力的游戏软件。为此,视频游戏开发者一直在编码结合了复杂操作和数学运算的游戏,以产生非常详细且吸引人的游戏体验。
[0004]
示例性游戏平台包括sonysony(ps2)、sony(ps3)和sony(ps4),它们各自以游戏控制台的形式出售。众所周知,游戏控制台被设计为连接到显示器(通常是电视机)并通过手持控制器实现用户交互。游戏控制台被设计有专用处理硬件,包括cpu、用于处理密集图形操作的图形合成器、用于执行几何变换的向量单元以及其他胶合硬件、固件和软件。游戏控制台还可以设计有用于通过游戏控制台接收用于本地玩的游戏盘的光盘读取器。还可以进行在线游戏,其中用户可以通过因特网与其他用户以交互方式进行游戏对抗或一起玩游戏。随着游戏的复杂性持续激发玩家的兴趣,游戏和硬件制造商持续进行革新以启用附加的交互和计算机程序。
[0005]
计算机游戏产业中的增长趋势是开发增加用户与游戏系统之间的交互的游戏。实现更丰富的交互式体验的一种方式是使用无线游戏控制器,所述无线游戏控制器的移动由游戏系统跟踪以便跟踪玩家的移动并将这些移动用作游戏的输入。一般而言,手势输入是指使诸如计算系统、视频游戏控制台、智能家电等电子装置对由玩家做出并由电子装置捕获的一些手势做出反应。
[0006]
实现更加有沉浸感的交互体验的另一种方式是使用头戴式显示器(hmd)。头戴式显示器由用户佩戴并且可以被配置为呈现各种图形,诸如虚拟空间的视图。在头戴式显示器上呈现的图形可以覆盖用户的大部分或甚至全部视野。因此,头戴式显示器可以为用户提供视觉沉浸式虚拟现实体验,这是因为hmd以响应用户移动的方式渲染虚拟环境的三维实时视图。佩戴hmd的用户可以在所有方向上自由移动,并且因此可以经由hmd在所有方向上提供虚拟环境的视图。
[0007]
在此背景下,产生了本公开的实现方式。


技术实现要素:

[0008]
本公开的实现方式包括与在电磁场(em场)上的头戴式显示器与控制器的时钟同步有关的装置、方法和系统。
[0009]
在一些实现方式中,提供了一种系统,所述系统包括:计算装置,其执行交互式应用程序并以预定义的帧速率生成并传输图像帧,所述图像帧基于正在执行的交互式应用程序的应用程序状态而生成;头戴式显示器(hmd),其接收从所述计算装置传输的所述图像帧并通过所述hmd的显示装置呈现所述图像帧,其中所述hmd包括发射磁信号的磁发射器,所
述磁信号具有与从所述计算装置接收的所述图像帧同步的同步编码;控制器装置,其包括检测所述磁信号的磁传感器,其中所述控制器装置处理所检测到的磁信号以确定标识所述控制器装置的位置和/或取向的磁位置数据,其中所述控制器装置还处理所检测到的磁信号以读取所述同步编码,其中所述控制器装置使用所述同步编码来生成所述磁位置数据的对应时序数据,所述时序数据基于所述同步编码指示所述磁位置数据的时序,其中所述控制器装置将所述磁位置数据和所述对应时序数据传输到所述计算装置;其中所述计算装置使用所述磁位置数据和所述对应时序数据来确定所述控制器装置的所述位置和/或取向,其中所述计算装置使用所述控制器装置的所述位置和/或取向来更新所述正在执行的交互式应用程序的所述应用程序状态。
[0010]
在一些实现方式中,所述图像帧的传输是通过视频信号的传输来定义的,所述视频信号包括时序信号,所述时序信号根据所述预定义的帧速率来表示每个图像帧的开始;其中所述磁信号的所述同步编码与所述时序信号同步。
[0011]
在一些实现方式中,所述时序信号是垂直同步信号。
[0012]
在一些实现方式中,所述磁信号的所述同步编码是通过调制所述磁信号的频率或振幅中的一个或多个来定义的。
[0013]
在一些实现方式中,所述调制定义与所述时序信号同步的所述磁信号的重复的变化模式。
[0014]
在一些实现方式中,生成所述对应时序数据包括使用所述同步编码来校正所述控制器装置的时钟相对于所述同步编码的漂移。
[0015]
在一些实现方式中,所述控制器装置的所述位置和/或取向是相对于所述hmd的。
[0016]
在一些实现方式中,所述时序数据实现所述磁位置数据与所述图像帧的生成的同步。
[0017]
在一些实现方式中,所述控制器装置包括至少一个运动传感器,所述运动传感器生成运动数据样本,其中所述控制器装置使用所述同步编码来为运动传感器数据的每个样本生成对应时间戳,并且其中所述控制器装置将所述运动数据样本和所述对应时间戳传输到所述计算装置;其中所述计算装置使用所述运动数据样本和所述对应时间戳来确定所述控制器装置的位置和/或取向,所述控制器装置的所述位置和/或取向用于更新正在执行的交互式应用程序的应用程序状态。
[0018]
在一些实现方式中,为运动传感器数据的给定样本生成所述对应时间戳包括使用所述同步编码来校正所述控制器装置的时钟相对于所述同步编码的漂移。
[0019]
在一些实现方式中,提供了一种方法,所述方法包括:通过计算装置执行交互式应用程序并通过所述计算装置以预定义的帧速率生成并传输图像帧,所述图像帧基于正在执行的交互式应用程序的应用程序状态而生成;通过头戴式显示器(hmd)接收从所述计算装置传输的所述图像帧并通过所述hmd的显示装置呈现所述图像帧,并且通过所述hmd的磁发射器发射磁信号,所述磁信号具有与从所述计算装置接收的所述图像帧同步的同步编码;通过包括磁传感器的控制器装置检测所述磁信号,并且通过所述控制器装置处理所检测到的磁信号以确定标识所述控制器装置的位置和/或取向的磁位置数据,其中所述控制器装置还处理所检测到的磁信号以读取所述同步编码,其中所述控制器装置使用所述同步编码来生成所述磁位置数据的对应时序数据,所述时序数据基于所述同步编码指示所述磁位置
数据的时序,其中所述控制器装置将所述磁位置数据和所述对应时序数据传输到所述计算装置;其中所述计算装置使用所述磁位置数据和所述对应时序数据来确定所述控制器装置的所述位置和/或取向,其中所述计算装置使用所述控制器装置的所述位置和/或取向来更新所述正在执行的交互式应用程序的所述应用程序状态。
[0020]
通过结合附图以示例方式示出本公开原理进行的以下详细描述,本公开的其他方面和优点将变得显而易见。
附图说明
[0021]
通过参考结合附图进行的以下描述,可以更好地理解本公开,在附图中:
[0022]
图1示出了根据本公开的实现方式的用于经由头戴式显示器(hmd)与虚拟环境交互的系统。
[0023]
图2示出了根据本公开的实现方式的用于与通过hmd 102观看的虚拟空间进行交互的控制器装置104。
[0024]
图3概念性地示出了根据本公开的实现方式的磁发射器260和磁传感器214。
[0025]
图4概念性地示出了根据本公开的实现方式的用于在hmd 102与控制器装置104之间同步位置/运动数据的系统。
[0026]
图5概念性地示出了根据本公开的实现方式的用于生成图像帧并将图像帧呈现给hmd的用户的过程。
[0027]
图6示出了根据本公开的实现方式的具有出于同步目的而应用的离散频率调制的磁信号。
[0028]
图7概念性地示出了根据本公开的实现方式的计算机106、hmd102与控制器装置104的时钟之间的漂移。
[0029]
图8a-1和图8a-2示出了根据本公开的实现方式的头戴式显示器(hmd)。
[0030]
图8b示出了根据一个实现方式的hmd用户与客户端系统对接的一个示例,并且客户端系统向被称为第二屏幕的第二屏幕显示器提供内容。
[0031]
图9概念性地示出了根据本公开的实现方式的hmd与正在执行的视频游戏相结合的功能。
[0032]
图10示出了根据本公开的实现方式的头戴式显示器的部件。
[0033]
图11是根据本公开的各种实现方式的游戏系统1600的框图。
[0034]
具体实现方式
[0035]
本公开的以下实现方式提供了与在电磁场上的头戴式显示器与控制器的时钟同步有关的装置、方法和系统。然而,对于所属领域的技术人员将显而易见的是,可以在没有当前描述的一些或全部具体细节的情况下实践本公开。在其他情况下,没有详细描述公知的过程操作以免不必要地使本公开模糊不清。
[0036]
在各种实现方式中,方法、系统、图像捕获对象、传感器和相关联的接口对象(例如,手套、控制器、外围装置、道具、智能手机等)被配置为处理被配置为基本实时地渲染在显示器屏幕上的数据。广义地说,参考作为头戴式显示器(hmd)的显示器来描述实现方式。然而,在其他实现方式中,显示器可以是第二屏幕、便携式装置的显示器、计算机显示器、显示面板、一个或多个远程连接用户(例如,他们可能正在观看内容或共享交互体验)的显示
器等。尽管通常将术语“显示器”理解为包括使用显示器屏幕作为使得图像能够被用户的眼睛看到的装置,但是应明了,本文所使用的术语“显示器”还可以涵盖任何类型的使得图像能够被用户看到的成像技术(例如,视网膜投影、全息投影等)。在一些实现方式中,hmd 102包括投影装置,所述投影装置使得来自虚拟图像的光能够经由任何此类技术(例如,视网膜投影仪)显示给用户的眼睛。
[0037]
支持无线控制器的hmd系统可以使用电磁学参考hmd对无线控制器进行位置跟踪。hmd也可能进行位置跟踪,但使用完全不同的跟踪系统。例如,hmd可以使用基于相机的slam系统。控制器将经由测量固定在hmd上的发射机发射的各种频率的电磁波的振幅来跟踪其相对于hmd的位置和/或取向。该系统的一个主要问题是控制器和hmd的实时时钟信号可能不同。当尝试在hmd移动(因此磁传输源同样移动)时渲染hmd中呈现的vr/ar场景中的虚拟控制器时,此差异(同步错误)将导致控制器跟踪出现错误。因此,需要同步/最小化控制器与hmd之间的实时时钟差异。
[0038]
通常,这些装置经由无线传输(例如,wifi或蓝牙)连接到主机计算机(例如,控制台),这可能会导致可变的通信延迟。因此,难以通过无线传输经由主机计算机将控制器与hmd之间的实时时钟同步到一定精度。
[0039]
当前的电磁跟踪系统可以几乎立即将其磁场传输到磁接收器。典型的磁接收器以超过100khz的速率读取磁场的样本。该机制可以用来解决上述问题。在特殊阶段(在启动hmd和控制器后,或在主机指定的时间),可以用独特的方式对安装在hmd上的电磁发射机进行调制/脉冲调制,以将hmd的实时时钟值编码并用信号发送到控制器。控制器的磁传感器可以从电磁信号中解码/解调制/解脉冲调制实时时钟值,并由此调整其自身报告的时间戳以使其实时时钟与hmd的实时时钟同步。由于磁接收器的采样率非常高,因此预期的同步精度应远低于10微秒。
[0040]
图1示出了根据本公开的实现方式的用于经由头戴式显示器(hmd)与虚拟环境交互的系统。hmd也可以称为虚拟现实(vr)头戴式套件、增强现实(ar)头戴式套件或混合现实头戴式套件(vr和ar的混合)。如本文中所使用的,术语“虚拟现实”(vr)通常是指用户与虚拟空间/环境的交互,所述交互涉及通过hmd(或vr头戴式套件)以对hmd的移动(由用户控制)做出实时响应的方式观看虚拟空间以向用户提供身处虚拟空间中的感觉。例如,用户在面向给定方向时可以看到虚拟空间的三维(3d)视图,而当用户转向一侧并由此同样地转动hmd时,则在hmd上渲染在虚拟空间中的这一侧的视图。
[0041]
在所示实现方式中,用户100被示为佩戴头戴式显示器(hmd)102。hmd 102以类似于眼镜、护目镜或头盔的方式佩戴,并且被配置为向用户100显示视频游戏或其他内容。hmd 102由于其紧邻用户的眼睛提供显示机制而向用户提供了极具沉浸感的体验。因此,hmd 102可以向用户的每只眼睛提供占据用户的大部分或者甚至整个视野的显示区域,并且还可以提供具有三维深度和视角的观看。
[0042]
在所示实现方式中,hmd 102通过有线连接而连接到计算机106。在其他实现方式中,hmd 102通过无线连接而连接到计算机106。在某些情况下,计算机设置在hmd内部并直接连接。计算机106可以是所属领域已知的任何通用或专用计算机或计算装置,包括但不限于游戏控制台、个人计算机、膝上型计算机、平板计算机、移动装置、蜂窝电话、平板、瘦客户端、机顶盒、媒体流装置等。在一些实现方式中,计算机106以可被配置为执行视频游戏并从
视频游戏输出视频和音频以供hmd 102渲染。在一些实现方式中,计算机106被配置为执行任何其他类型的提供可通过hmd观看的虚拟空间/环境的交互式应用程序。计算机106被配置为将视频游戏中的视频和音频(通过有线连接或无线连接)传输到hmd 102以在其上进行渲染。计算机106可以包括收发器,所述收发器包括用于向hmd 102传输数据的传输器以及用于接收由hmd 102传输的数据的接收器。
[0043]
在一些实现方式中,hmd 102还可以通过替代机制或信道(诸如经由hmd 102和计算机106连接到的网络112)与计算机进行通信。
[0044]
用户100可以操作控制器装置104以提供用于视频游戏的输入。控制器装置104可以是用户100可操作的、用于向视频游戏或交互式应用程序提供输入的任何类型的接口对象。通过示例而非限制的方式,控制器装置104可以是用于与虚拟环境或视频游戏对接的任何类型的运动跟踪对象,诸如游戏控制器、道具、外围装置、手套、智能手机、平板等。用户与hmd 102中显示的虚拟现实场景对接的方式可以改变,并且可以使用除控制器装置104之外的其他接口装置。例如,可以使用各种类型的单手以及双手控制器。在一些实现方式中,可以通过跟踪控制器中所包括的灯或跟踪与控制器相关联的形状、传感器和惯性数据来跟踪控制器。使用这些各种类型的控器制或者甚至仅仅使用做出和由一个或多个相机捕获的手势,可以对接、控制、操纵、交互并参与hmd 102上呈现的虚拟现实环境。
[0045]
相机108可以被配置为捕获用户100所处的交互式环境的图像。可以分析这些捕获的图像以确定用户100、hmd 102和控制器装置104的位置和移动。在一些实现方式中,控制器装置104包括可以被跟踪的灯和/或惯性/运动传感器,以使得能够确定控制器装置的位置和取向以及跟踪移动。另外,hmd 102可以包括可以被跟踪的一个或多个灯以及惯性/运动传感器,以使得能够确定并跟踪hmd 102的位置和取向。
[0046]
相机108可以包括一个或多个传声器以从交互式环境捕获声音。可以处理由传声器阵列捕获的声音以识别声源的位置。可以选择性地利用或处理来自识别的位置的声音以排除并非来自识别的位置的其他声音。此外,相机108可以被定义为包括多个图像捕获装置(例如,立体相机对)、ir相机、深度相机及其组合。
[0047]
经由相机108对hmd 102和控制器装置104的跟踪可能会遇到遮挡问题。例如,如果用户转身或以其他方式操纵控制器装置104从而使得控制器装置104的相机视图被遮挡,则将损害对控制器装置的跟踪。类似地,用户的移动有可能在某种程度上挡住hmd 102的相机视图或其部分,从而对hmd 102的跟踪产生不利影响。因此,期望以不引起依赖于外部相机的视觉跟踪系统可能发生的遮挡问题的方式跟踪hmd 102和控制器装置104。
[0048]
因此,在一些实现方式中,hmd 102被配置为执行“由内而外”的跟踪,即,其中hmd能够在不依赖于hmd外部的感测硬件的情况下确定和跟踪其在空间中的位置和取向。例如,在一些实现方式中,hmd 102本身包括一个或多个面向外部的相机。例如,可以使用即时定位与建图(slam)技术来处理此类面向外部的相机捕获的图像,以实现对hmd的跟踪。在一些实现方式中,hmd 102可以用于在初始化过程期间通过此类相机为本地环境建图。例如,在这样的初始化过程期间,可以要求用户在整个本地环境中移动hmd 102,以便可以通过此类面向外部的相机捕获本地环境并且建图以便于在交互使用期间跟踪hmd。hmd 102还可以包括各种运动传感器(例如,加速度计、陀螺仪、磁力计、惯性测量单元(imu)),并且可以应用传感器融合技术以将来自此类运动传感器的数据与面向外部的相机捕获的图像数据结合
使用以实现hmd跟踪。
[0049]
在一些实现方式中,相对于hmd 102跟踪控制器装置104。例如,在一些实现方式中,hmd 102包括发射磁场的磁源,并且控制器装置104包括检测磁场的磁传感器,并且磁传感器数据用于确定和跟踪控制器装置104的位置和取向,既相对于hmd 102且引申开来在本地环境的真实空间中。由于当用户100操作时期望控制器装置104接近hmd 102,因而系统不太可能受到磁场的干扰,因此这种采用磁跟踪的配置是有利的。
[0050]
在一些实现方式中,还可以至少部分地使用hmd的面向外部的相机相对于hmd 102跟踪控制器装置104。此类面向外部的相机捕获的图像可以包括接口对象104,并且可以分析此类捕获的图像以至少部分地确定接口对象104相对于hmd 102的位置/取向。
[0051]
在一些实现方式中,计算机106在通过网络112与云游戏/应用程序提供商114的通信中用作瘦客户端。在这样的实现方式中,一般而言,云游戏/应用程序提供商114维护并执行用户102正在玩的视频游戏(或正在交互的应用程序)。计算机106将来自hmd 102、控制器装置104和相机108的输入传输到云游戏提供商,所述云游戏提供商处理这些输入以影响正在执行的视频游戏的游戏状态。来自正在执行的视频游戏的输出(诸如视频数据、音频数据和触觉反馈数据)被传输到计算机106。计算机106还可以在传输之前处理数据,或者可以将数据直接传输到相关装置。例如,视频和音频流被提供给hmd 102,而触觉/振动反馈命令被提供给控制器装置104。
[0052]
在一些实现方式中,hmd 102、控制器装置104和相机108本身可以是连接到网络112以例如与云游戏提供商114通信的联网装置。在一些实现方式中,计算机106可以是诸如路由器的本地网络装置,所述本地网络装置不以另外执行视频游戏处理,但是有助于网络流量的传递。hmd 102、控制器装置104和相机108与网络的连接可以是有线的或无线的。
[0053]
另外,尽管可以参考头戴式显示器来描述本公开中的实现方式,但是应明了,在其他实现方式中,可以替换为非头戴式显示器,包括但不限于便携式装置屏幕(例如,平板、智能电话、膝上型计算机等)或可以被配置为根据本实现方式渲染视频和/或提供交互式场景或虚拟环境的显示的任何其他类型的显示器。
[0054]
图2示出了根据本公开的实现方式的用于与通过hmd 102观看的虚拟空间进行交互的控制器装置104。广义地说,控制器装置104被配置为手持式的和/或固定到用户的手200。在一些实现方式中,提供了用于将控制器装置104固定到用户的手200的条带(或带或其他附接机构)(未示出)。在一些实现方式中,这样的条带被配置为缠绕在用户的手200的手掌部分上,由此将控制器装置104固定在用户的手掌上。在一些实现方式中,这样的手掌条带被配置为在使用时基本环绕用户的手掌,其中条带的一部分/长度被固定/安装到控制器装置104的侧面,由此将控制器装置固定到用户的手上。在一些实现方式中,条带机构包括使得条带能够在锁定配置与释放配置之间进行双态切换的锁定机构,所述锁定配置将控制器固定在用户的手掌上,所述释放配置将条带松开和/或使条带的一部分远离控制器主体移动。锁定机构因此可以使控制器装置牢固地贴合在用户的手上,或者部分地从用户的手上释放。
[0055]
在一些实现方式中,控制器装置104包括腕带250以将控制器装置104固定到用户的手腕。
[0056]
控制器装置104被配置为在设置有控制器装置104的本地环境的三维真实空间中
是可跟踪的。为此,控制器装置104可以包括各种运动/取向/惯性传感器中的任一者,通过示例而非限制的方式包括一个或多个加速度计、磁力计和陀螺仪。此外,控制器装置104可以包括一个或多个磁传感器214(例如,磁力计、霍尔效应传感器、电感传感器等),所述磁传感器被配置为检测由hmd 102中包括的磁发射器260发射的磁场的强度和/或取向。可以处理来自运动/取向/惯性传感器和磁传感器的数据或信息以确定和跟踪控制器装置104的位置和取向。此类数据处理可以由控制器装置104和/或计算装置106和/或hmd 102执行。
[0057]
在所示实现方式中,控制器装置104包括主壳体212,所述主壳体被配置为由用户的手200保持或握持。控制器装置104还包括拇指垫218,所述拇指垫被定位在当用户的手200的拇指202保持控制器装置104时将自然地落下的位置。在一些实现方式中,拇指垫是能够提供基于触摸的输入的触敏表面或触摸板。在一些实现方式中,拇指垫是有助于方向输入的方向垫。在一些实现方式中,类似于按钮,拇指垫是可点击的或能够被压下。
[0058]
拇指垫218还包括接近传感器234,所述接近传感器被配置为检测拇指202与拇指垫218的接近度。在这样做时,接近传感器234可以指示用户的拇指202的屈曲或伸展量。
[0059]
当操作控制器装置104时,触发器220被配置为由用户的手200的食指204操作,而触发器222被配置为由用户的手200的中指204操作。触发器220和222还分别包括接近传感器236和238(在图2b中示出),所述接近传感器被配置为分别检测用户的食指204和中指206与触发器220和222的接近度。因此,接近传感器236和238分别指示食指和中指的屈曲或伸展量。即,当用户的食指204的屈曲增大(伸展减小)时,其与接近传感器236的接近度增大;而当用户的食指204的屈曲减小(伸展增大)时,其与接近传感器236的接近度减小。类似地,当用户的中指206的屈曲增大(伸展减小)时,其与接近传感器238的接近度增大;而当用户的中指206的屈曲减小(伸展增大)时,其与接近传感器238的接近度减小。
[0060]
另外,控制器装置104包括接近传感器240和242(在图2c中示出),所述接近传感器位于沿着壳体212的下部的位置处以便分别检测用户的无名指208和小指210的接近度。因此,接近传感器240和242分别指示无名指和小指的屈曲或伸展量。即,当用户的无名指208的屈曲增大(伸展减小)时,其与接近传感器240的接近度增大;而当用户的无名指208的屈曲减小(伸展增大)时,其与接近传感器240的接近度减小。类似地,当用户的小指210的屈曲增大(伸展减小)时,其与接近传感器242的接近度增大;而当用户的小指210的屈曲减小(伸展增大)时,其与接近传感器242的接近度减小。
[0061]
控制器装置104还包括带224,所述带具有接近传感器226、228、230和232。这些接近传感器通过带224的结构定位成当这些手指伸展时分别靠近食指、中指、无名指和小指的指尖。换句话说,当用户的食指204的伸展增大(屈曲减小)时,其与接近传感器226的接近度增大;而当用户的食指204的伸展减小(屈曲增大)时,其与接近传感器226的接近度减小。当用户的中指206的伸展增大(屈曲减小)时,其与接近传感器228的接近度增大;而当用户的中指206的伸展减小(屈曲增大)时,其与接近传感器228的接近度减小。当用户的无名指208的伸展增大(屈曲减小)时,其与接近传感器230的接近度增大;而当用户的无名指208的伸展减小(屈曲增大)时,其与接近传感器230的接近度减小。当用户的小指210的伸展增大(屈曲减小)时,其与接近传感器232的接近度增大;而当用户的小指210的伸展减小(屈曲增大)时,其与接近传感器232的接近度减小。
[0062]
鉴于前述内容,控制器装置104可以被配置为使得每个手指的两个接近传感器用
于检测用户的食指、中指、无名指和小指的屈曲/伸展。因此,每个手指具有对应的接近传感器对,其中传感器基本上沿着针对传感器被分配给的给定手指的屈曲/伸展平面对准,但是在手指的运动范围的相对端。例如,被配置为检测用户的食指204的传感器226和236基本上沿着用户的食指204的屈曲/伸展平面对准。此外,传感器226被定位成在食指204伸展时靠近食指的远端(或可能接触所述远端),而传感器236被定位成在食指204伸展时靠近食指的近端。应明了,用于其他手指的传感器对的类似布置和定位也是适用的。
[0063]
因此,在一些实现方式中,基于传感器相对于用户的手指在伸展时的远端和近端的相应定位,传感器226、228、230和232被视为远端传感器,而传感器236、238、240和242被视为近端传感器。给定手指的这对近端和远端传感器一起用于确定给定手指的姿态。应明了,给定手指的远端传感器和近端传感器的接近感测范围可以彼此重叠。因此,在一些实现方式中,当手指的姿态从最大屈曲姿态变为最大伸展姿态时(例如,由控制器装置104的结构/形式所允许的那样),手指可能最初只能被近端传感器检测到(因为手指不在远端传感器的检测范围内),然后当手指进入远端传感器的检测范围同时仍然在近端传感器的检测范围内时,手指能被近端传感器和远端传感器两者检测到,最后当手指离开近端传感器的检测范围时,手指只能被远端传感器检测到。
[0064]
尽管未具体示出,但是在一些实现方式中,控制器装置104可以包括一个或多个灯或被照亮对象,所述灯或被照亮对象可以在本地环境的所捕获图像中被识别并被跟踪以实现对控制器装置104的位置和取向的跟踪。通过示例而非限制的方式,一个或多个灯可以沿着带224和/或沿着控制器装置104的壳体212定位。
[0065]
如图所示,hmd 102包括面向外部的相机262a和262b,所述相机被配置为捕获本地环境的图像,此类捕获的图像被处理和分析以确定hmd 102在本地环境中的位置/取向。如所述,hmd 102包括磁发射器260,所述磁发射器被配置为发射由控制器装置104的磁传感器214感测的磁场。所感测到的磁场用于确定控制器装置104相对于hmd 102的位置/取向。
[0066]
图3概念性地示出了根据本公开的实现方式的磁发射器260和磁传感器214。在一些实现方式中,磁发射器260包括三个彼此垂直的发射器线圈,以便沿着三个垂直轴线对准。所述发射器线圈可以同心地布置,以便以相同的点为中心。发射器线圈中的每一者都可以被配置为以不同于其他发射器线圈的频率发射ac磁场。
[0067]
在一些实现方式中,磁传感器214包括三个彼此垂直的传感器线圈,以便沿着三个垂直轴线对准。所述传感器线圈可以同心地布置,以便以相同的点为中心。传感器线圈中的每一者都可以被配置为接收由磁发射器260生成的磁场。广义地说,由磁发射器260生成的磁场在磁传感器214的传感器线圈中感应出电流,所述电流被处理以确定磁传感器214相对于磁发射器260的位置和/或取向,并且引申开来确定控制器装置104相对于hmd 102的位置和/或取向。应明了,根据由所发射的磁场的频率产生的时变磁通量,感应出的电流产生的输出电压是时变的。因此,可以检测给定传感器线圈中感应出的电流的频率以识别提供磁场的发射器线圈。
[0068]
通过使用前述的磁发射器260和磁传感器214,可以提供六个自由度跟踪(6dof)的跟踪。即,可以确定和跟踪磁传感器214相对于磁发射器260的三维位置,并且可以确定和跟踪磁传感器214相对于磁发射器260的三维取向(例如,俯仰、滚转和横摆)。引申开来,这提供了控制器装置104相对于hmd 102的六个自由度的跟踪。
[0069]
使用磁跟踪设置来跟踪诸如控制器装置104的接口对象很有用,基于外部相机跟踪控制器会遇到遮挡问题(例如,用户转身并阻挡控制器的相机视图)。而且,通过将磁发射器260包括在hmd 102中,不需要附加的外围装置来跟踪控制器装置104。
[0070]
然而,问题随之出现,因为对控制器装置104的跟踪是经由hmd 102进行的,所述hmd本身在用户100在空间中移动其头部时也在移动。普通的人类用户可以很容易地以大约350度/秒旋转其头部,并在某些情况下可能以高达大约1000度/秒旋转其头部。这样的人类用户甚至可以更快地操纵控制器装置104。因此,在将位置/运动数据从hmd 102和控制器装置104传送到计算机106并进行处理以渲染将被传送到hmd 102(以便在其上进行后续显示)的下一个图像帧所花的时间内,hmd 102和/或控制器装置104可能已移动。
[0071]
广义地说,在给定的时间点,控制器装置104经由磁信号感测获得位置/取向样本,并获得惯性测量单元(imu)样本。在此期间,用户100的头部可以移动。所有信号均通过卡尔曼滤波器进行滤波,所述滤波器预测hmd 102将在何处渲染下一帧,以便将来在hmd上显示时示出正确的视图。因此,为了获得控制器的对于所渲染的帧速率(例如120hz)正确的最精确位置,重要的是要计及以下事实:在跟踪控制器装置104的同时,头部也在移动hmd 102。并且,如果系统在hmd 102与控制器装置104之间没有精确的同步,那么当系统得出控制器的位置时,将存在失配。如果它们不同步,那么当用户100四处移动时,控制器装置104在hmd 102视图中的渲染将往往看起来不稳定。因此,重要的是要有一种精确的方式来同步两个系统,以使得来自hmd 102和控制器装置104的运动样本可以彼此匹配或者以其他方式相对于彼此在时间上精确地放置。这可能需要同步hmd 102和控制器装置104的时钟和/或校正它们之间的漂移。
[0072]
应明了,诸如或wifi之类的无线协议不适合用于hmd 102与控制器装置104之间的同步,因为它们需要太多的开销(例如10ms延迟)并且没有足够精确的时序传输/接收数据。因此,寻求用于实现同步的其他方法。
[0073]
图4概念性地示出了根据本公开的实现方式的用于在hmd 102与控制器装置104之间同步位置/运动数据的系统。在所示实现方式中,计算机106执行交互式应用程序(例如,视频游戏),并生成传输到hmd 102的图像帧400。在一些实现方式中,图像帧通过计算机106与hmd 102之间的有线连接进行传输,而在其他实现方式中,通过无线连接进行传输。
[0074]
在一些实现方式中,图像帧400通过同步连接进行传输,以确保以恒定帧速率提供图像帧,以用于通过hmd 102的显示器来呈现。在一些实现方式中,图像帧400的传输由视频信号定义,所述视频信号对数据进行编码以用于通过hmd 102的显示器进行光栅扫描。在一些实现方式中,视频信号包括数据信号和时序信号,所述数据信号定义hmd 102的显示器的像素的参数(例如颜色值、亮度/强度值等),所述时序信号定义每帧、每行和每个像素的数据何时开始和结束。在所示实现方式中概念性地示出了时序信号。垂直同步信号402标识每个图像帧的开始和结束。水平同步信号404标识给定图像帧的每行的开始和结束。并且,像素时钟信号406标识每个像素的开始和结束,并确定视频信号的数据传送速率。
[0075]
应明了,图像帧400是以恒定帧速率(例如,120hz、240hz等)提供的。因此,垂直同步信号402根据帧速率是周期性的。即,垂直同步信号402具有与帧速率相同的恒定周期率(或频率)。因此,该垂直同步信号402可以用作可靠的信号以实现系统中的装置之间的同步。
[0076]
例如,如上所述,可以使用位置/运动数据408跟踪hmd 102的位置和/或取向,所述位置/运动数据从imu和hmd 102的面向外部的相机获得和/或处理。可以基于垂直同步信号402同步该位置/运动数据408。例如,可以基于垂直同步信号402为位置/运动数据408加时间戳,使得位置/运动数据408与和垂直同步信号402同步的时间戳相关。
[0077]
例如,垂直同步信号402将具有已知的预定义频率,因此定义了与计算机106同步的时钟。例如,垂直同步信号402的频率为120hz,这意味着垂直同步信号402的120个周期将定义一秒的时间,如由计算机106确定。hmd 102可以具有其自己的时钟(例如,石英晶体时钟),并且可以跟踪hmd 102的时钟与垂直同步信号402之间的任何漂移。最初可以基于hmd 102的时钟为位置/运动数据408加时间戳,但是可以调整该时间戳以校正hmd 102的时钟与垂直同步信号402之间的已标识漂移。以这种方式,hmd 102的位置/运动数据408可以与计算机106同步。应明了,由于位置/运动数据408被正确地加时间戳(根据计算机106的时钟,通过使用当前描述的垂直同步信号402),因此hmd位置/运动数据408可以通过异步连接传输到计算机106。这之所以可能,是因为时间戳已被适当地同步,并且位置/运动数据可用于精准地确定和/或预测hmd 102的位置和/或取向,即使计算机106未以同步方式接收到所述位置/运动数据亦如此。
[0078]
在一些实现方式中,hmd 102的磁发射器260被配置为发射磁信号(通过产生ac电磁场,在附图标记410处概念性地示出),所述磁信号以与垂直同步信号402同步的方式编码,并因此与计算机106同步。应明了,可以采用各种技术来提供磁信号410的同步编码。
[0079]
在一些实现方式中,磁发射器260被配置为以与垂直同步信号402同步的频率发射磁信号410。例如,磁发射器260可以将磁信号410发射为连续波(例如,正弦波、方波、三角波等),并且磁信号410的振幅峰值和谷值可以被配置为与垂直同步信号402同步。通过示例而非限制的方式,磁信号410的频率可以与帧速率相同或者可以是帧速率的倍数。在一些实现方式中,为了实现磁信号410的同步,垂直同步信号402用于驱动磁发射器260生成磁信号410。
[0080]
在这样的实现方式中,磁传感器214检测磁信号410,并且控制器装置104可以被配置为检测磁信号410中的峰值。检测到的磁信号410的峰值将如上所述地被同步,并且可以被控制器装置104用作时钟信号以确保与垂直同步信号402的同步。在一个简单的示例中,如果磁信号410的频率为120hz,那么根据垂直同步信号402和计算机106,连续检测到的每120个峰值将等于一秒的时间。如果存在,那么可以确定和跟踪控制器装置104的时钟与由磁信号410定义的时钟之间的任何漂移。
[0081]
控制器装置104被配置为获得和/或处理来自控制器装置104的imu的imu数据414和来自磁传感器214的磁数据416。最初可以基于控制器装置104的时钟为该数据加时间戳,但是可以调整该时间戳以校正控制器装置104时钟与磁信号410之间的已标识漂移。由于磁信号410与源于计算机106的垂直同步信号402同步,因此以这种方式,控制器装置104的控制器位置/运动数据412可以同步到计算机106。应明了,由于用时间戳数据418为位置/运动数据412正确地加了时间戳(根据计算机106的时钟,通过使用当前描述的磁信号410),因此控制器位置/运动数据412也可以通过异步连接传输到计算机106。这之所以可能,是因为时间戳数据418已被适当地同步,并且位置/运动数据可用于精确地确定和/或预测控制器装置104的位置和/或取向,即使计算机106未以同步方式接收到所述位置/运动数据亦如此。
[0082]
应明了,尽管磁信号410的振幅随距离改变(高斯指数衰减),但是磁信号410的频率不随距离改变。此外,如上所述,磁发射器260可以包括多个线圈(例如,三个线圈),每个线圈以不同于其他线圈的频率的给定频率产生磁信号。多个频率可以由磁传感器214检测,并且可以组合用来提供更稳健的同步。
[0083]
在一些实现方式中,磁信号410被用作同步编码的载波。即,根据hmd 102的时钟(并且不一定基于垂直同步信号402)生成具有给定频率的磁信号410,但是应用了与垂直同步信号402同步的进一步的调制。因此,磁信号410用作经调制载波,其中所述调制对同步数据进行编码以实现与垂直同步信号402的同步。在一些实现方式中,调制的频率显著小于基础载波的频率。例如,磁信号410可以具有大约20khz至200khz的基础频率,而通过示例而非限制的方式,调制具有240hz的频率(再次,将240hz的调制频率特定地与垂直同步信号402同步,而20khz至200khz的基础频率不同步)。
[0084]
在各种实现方式中,可以将任何类型的调制应用于同步编码,条件是可以通过控制器装置104对其进行检测并解码/解调制/处理以实现与垂直同步信号402的同步。在一些实现方式中,调制具有与垂直同步信号402同步的周期性占空比。在一些实现方式中,应用了振幅调制,诸如通过使振幅周期性地循环(例如,正弦波等)、对振幅进行脉冲调制(脉冲和/或间隙可以与垂直同步信号402同步)、周期性地增大或减小振幅等。例如,在所示实现方式中,磁信号410具有基础振幅h1,但是被调制以便周期性地以与垂直同步信号402同步的规则速率使振幅突增到h2。在一些实现方式中,应用了频率调制,诸如通过使频率周期性地循环(例如,正弦波等)、在离散频率值之间周期性地改变等。
[0085]
应明了,即使被调制,磁信号410的振幅也提供磁发射器260与磁传感器214的距离的指示,而所述调制指示了垂直同步信号402的时序。因此,磁信号410被用作用于同步目的的载波。以这种方式,用于跟踪控制器装置104的现有磁信号410也用于实现适当同步。
[0086]
在一些实现方式中,对磁信号410的编码的检测触发了对imu数据414的采样。例如,对磁信号410中的峰值(例如,振幅的尖峰)或其他经调制事件的检测可以被配置为触发对控制器装置104的imu的采样,以生成imu数据414及其相关联的时间戳数据。以这种方式,基于经编码的磁信号410对imu的采样进行同步,经编码的磁信号与垂直同步信号402同步,如前所述。
[0087]
图5概念性地示出了根据本公开的实现方式的用于生成图像帧并将图像帧呈现给hmd的用户的过程。将hmd运动/输入数据408和控制器运动/输入数据412提供给计算机106。如本公开中所述,为这些数据加时间戳,并调整其时间戳以便与垂直同步信号402同步。在操作500,基于hmd运动/输入数据408和/或控制器运动/输入数据412更新正在执行的视频游戏的游戏状态(或正在执行的交互式应用程序的应用程序状态,如vr应用程序)。在操作502,基于更新的游戏/应用程序状态渲染下一图像帧。这可能需要将卡尔曼滤波应用于hmd位置/运动数据和控制器位置/运动数据以预测在预期时间hmd 102和控制器装置104的未来位置和取向,所生成的帧将在预期时间被扫描输出到hmd 102的显示器上并由此对用户100可见。
[0088]
用垂直同步信号402将生成的图像帧扫描输出,所述垂直同步信号是计算机106的垂直同步。图像帧通过有线或无线连接传送,然后在hmd 102处扫描输入。在操作504,hmd 102的显示器根据其自身的垂直同步扫描输出,从而将图像帧呈现给用户100以供观看。
[0089]
应明了,所有这些过程都需要时间,因此帧渲染实际上是可预测的。即,帧渲染是基于hmd 102和控制器装置104在预期时间的预测位置/取向,在预期时间将通过hmd 102的显示器呈现/扫描输出图像帧。该预测渲染是重要的,因为当在hmd 102处渲染、传送并最终扫描输出图像帧时,用户的头部可能正在移动,因此当渲染的图像帧变得对用户100可见时,用户的视图已经改变。因此,通过基于hmd 102和控制器装置104的预测的未来位置和取向来预测性地渲染图像帧,会提供更好的用户体验,因为图像帧将更好地与用户头部在观看时的实际位置匹配。该预测性渲染是重要的,因为它消除了虚拟场景呈现给用户时的感知延迟。
[0090]
应明了,与hmd位置/运动数据408和控制器位置/运动数据412相关联的时间戳数据不需要以时间为单位具体表示,而是可以具有任何数值形式或刻度(诸如任意单位的计数器),条件是它能够正确确定与之关联的位置或运动数据(例如imu数据、磁数据、基于图像的跟踪数据等)的时序。
[0091]
在一些实现方式中,计算机106被配置为使用系统的各种装置之间的已知偏移来处理hmd位置/运动数据408和控制器位置/运动数据412。例如,hmd位置/运动数据408将与垂直同步信号402同步地加时间戳(例如,被调整以校正hmd 102时钟相对于垂直同步信号402的任何漂移)。然而,时间戳不一定计及由于生成垂直同步信号402、将垂直同步信号402传送到hmd 102并且在hmd 102处处理垂直同步信号402(例如,扫描输入并用于同步)而导致的延迟。该延迟将是恒定且预定义的,因此,计算机106可被配置为在解释hmd位置/运动数据408的时间戳时将此延迟计为相对于计算机106的垂直同步信号402的常规偏移。即,计算机106可以将时间戳视为相对于垂直同步信号402偏移达预定义量。
[0092]
以类似的方式,控制器位置/运动数据412的时间戳数据418也可能不一定计及将同步信息从计算机106传送到控制器装置104时的延迟。即,存在累积延迟,其产生原因如下:垂直同步信号402的生成、传输到hmd 102、由hmd 102处理以生成经编码的磁信号410、磁信号410的感测以及控制器装置104进行的解码、以及将解码后的信息用于同步。同样,该延迟将是恒定且预定义的,因此,计算机106可被配置为在解释控制器位置/运动数据412的时间戳数据418时将此延迟计为相对于计算机106的垂直同步信号402的常规偏移。即,计算机106可以将时间戳视为相对于垂直同步信号402偏移达反映该累积延迟的预定义量。
[0093]
图6示出了根据本公开的实现方式的具有出于同步目的而应用的离散频率调制的磁信号。在一些实现方式中,磁信号采用以基础载波的预定义间隔插入的不同频率的轮循。在所示实现方式中,基础载波具有频率f
d
。载波被调制到彼此不同并且与频率f
d
不同的三个不同的额外频率。如图所示,这些包括频率f
s1
、f
s2
和f
s3
。频率f
s1
、f
s2
和f
s3
的时序被配置为与垂直同步信号402同步。通过使用彼此不同的多个经调制频率,可以更稳健地建立同步时序。
[0094]
图7概念性地示出了根据本公开的实现方式的计算机106、hmd102与控制器装置104的时钟之间的漂移。如图所示,计算机106包括cpu 700、时钟702(例如,石英晶体时钟)和gpu 704。时钟702提供时钟信号以同步计算机106的操作,诸如由cpu 700和gpu 704执行的各种处理操作。为了说明的目的,如果来自时钟的时钟信号为10mhz,那么在一秒钟时间的过程中(根据计算机106的时钟信号),对时钟信号的周期数进行计数的计数器将计数1000万个周期。通过示例而非限制的方式,gpu 704以120hz生成垂直同步信号。该垂直同步
信号基于计算机时钟702信号并且由此同步到所述信号。因此,垂直同步信号将在一秒钟时间的过程中显示120个周期。
[0095]
hmd 102包括用于执行处理操作的cpu 706和生成hmd时钟信号的时钟708(例如,石英晶体时钟)。hmd时钟信号控制hmd 102处的操作时序。如果hmd时钟信号标称地以10mhz的频率生成,那么由于时钟性能的差异,它可能无法与计算机时钟信号精确地匹配。即,随着时间的流逝,hmd时钟708将相对于计算机时钟702漂移。因此,通过示例方式,在所示实现方式中,尽管计算机时钟702信号在一秒的时间内显示1000万个周期,但是在同一时间段内,hmd时钟708信号可以显示10,000,100个周期。因此,hmd时钟708的运行速度比计算机时钟702稍快。然而,可以通过使用hmd 102处的垂直同步信号来计及时钟之间的这种漂移。例如,hmd 102上的时钟周期的计数器可以在垂直同步信号的每120个周期中计数10,000,100,由此识别hmd时钟信号相对于垂直同步信号(引申开来,计算机时钟信号)的漂移/误差。来自imu 710的样本和来自hmd 102的图像捕获装置712的图像数据(或从中处理的位置/运动数据)将具有最初基于hmd时钟708信号的时间戳。然而,可以基于hmd时钟信号的已识别漂移校正这些时间戳。因此,当位置/运动数据被传送回计算机106进行处理时,其时间戳与垂直同步信号和计算机时钟702同步。通过示例而非限制的方式,在一秒钟的标记处收集的位置/运动数据的时间戳最初可能用计数器值10,000,100加时间戳;然而,此值将更正为值10,000,000。
[0096]
hmd 102的磁发射器714以高频率(例如,20khz至200khz)发射磁信号,但是与从计算机106接收的垂直同步信号同步地以较低频率调制(例如,240hz调制)。
[0097]
控制器装置104还包括时钟718,所述时钟控制控制器装置104处的操作时序,包括用于处理操作的cpu 716、imu 720和磁传感器722的时序。来自控制器时钟718的时钟信号可能会相对于计算机106的时钟信号漂移。例如,在根据计算机时钟信号的一秒钟时间的过程中,处于标称20mhz频率的控制器时钟信号可能会显示9,999,900个周期。因此,控制器时钟718的运行速度比计算机时钟702慢。然而,磁传感器722从磁发射器714接收磁信号,并且感测到的磁信号被解码/解调制以识别与垂直同步信号同步的240hz调制。使用该信息,可以校正imu 720和磁传感器722的样本的时间戳(或从中处理的位置/运动数据)以便与垂直同步信号同步,并引申开来与计算机时钟702信号同步。通过示例而非限制的方式,在一秒钟的标记处收集的位置/运动数据的时间戳最初可能用计数器值9,999,900加时间戳;然而,此值将更正为值10,000,000。
[0098]
在一些实现方式中,系统可以任选地考虑磁信号的速度,所述速度等于光速。即,系统可以计及磁信号从hmd 102行进到控制器装置104所需的时间量。应明了,这可能需要使用hmd 102和控制器装置104的先前已知的位置来估算hmd 102与控制器装置104之间的当前距离。应明了,在从用户的头部到用户的手的短距离(<2m)内,从发送磁信号到接收磁信号的时间差非常小(<7ns)。因此,在一些实现方式中,该差异可能小到足以安全地忽略,因为它不会显著影响系统的性能并且不会被用户注意到。
[0099]
尽管已经参考包括hmd和控制器装置的系统描述了本公开的实现方式,但是应明了,本公开的原理可以应用于包括显示虚拟图像的装置(例如,智能手机、平板、其他显示器等)与其他跟踪装置(例如手套、无人机等)的任何系统。
[0100]
图8a-1和图8a-2示出了根据本公开的实现方式的头戴式显示器(hmd)。图8a-1特
别示出了vr头戴式套件,其是根据本公开的实现方式的hmd的一个示例。如图所示,hmd 102包括多个灯1300a-1300h。这些灯中的每一者都可被配置为具有特定形状,并且可被配置为具有相同或不同的颜色。灯1300a、1300b、1300c和1300d布置在hmd 102的前表面上。灯1300e和1300f布置在hmd 102的侧表面上。并且,灯1300g和1300h布置在hmd 102的拐角处,以便跨越hmd 102的前表面和侧表面。应明了,可以在用户使用hmd 102的交互式环境的所捕获图像中识别灯。基于对灯的识别和跟踪,可以确定hmd 102在交互式环境中的位置和取向。还应明了,根据hmd 102相对于图像捕获装置的特定取向,一些灯可能可见或可能不可见。而且,根据hmd 102相对于图像捕获装置的取向,可以暴露灯的不同部分(例如,灯1300g和1300h)以进行图像捕获。
[0101]
在一个实现方式中,灯可以被配置为向附近的其他人指示hmd的当前状态。例如,一些或所有的灯可以被配置为具有某种颜色布置、强度布置,被配置为闪烁,具有某种开/关配置,或者指示hmd 102的当前状态的其他布置。通过示例方式,灯可以被配置为对比视频游戏的其他非活动的玩游戏过程方面,在视频游戏的活动的玩游戏过程(通常在活动的时间轴期间或在游戏的场景内发生的玩游戏过程)期间显示不同的配置,所述其他非活动的玩游戏过程方面诸如导览菜单界面或配置游戏设置(在此期间,游戏时间轴或场景可能处于不活动状态或暂停)。灯还可以被配置为指示玩游戏过程的相对强度水平。例如,当玩游戏过程的强度增加时,灯的强度或闪烁速率可能会增加。通过这种方式,用户之外的人可以观看hmd 102上的灯并且理解用户正在积极地参与激烈的玩游戏过程,并且可能不希望在那一刻被打扰。
[0102]
hmd 102可以另外包括一个或多个传声器。在所示实现方式中,hmd 102包括限定在hmd 102的前表面上的传声器1304a和1304b,以及限定在hmd 102的侧表面上的传声器1304c。通过利用传声器阵列,可以处理来自每个传声器的声音以确定声音源的位置。可以通过各种方式利用该信息,包括排除不需要的声源、将声源与视觉标识相关联等。
[0103]
hmd 102还可以包括一个或多个图像捕获装置。在所示实现方式中,hmd 102被示为包括图像捕获装置1302a和1302b。通过利用立体图像捕获装置对,可以从hmd 102的视角捕获环境的三维(3d)图像和视频。可以在佩戴hmd 102的同时将这种视频呈现给用户以向用户提供“视频透视”能力。即,尽管从严格意义上来说用户不能透视hmd 102,但是由图像捕获装置1302a和1302b(例如,或者设置在hmd 102的外部主体上的一个或多个面向外部(例如,朝前)的相机)捕获的视频仍可以提供能够看到hmd 102外部的环境的等效功能,就像看穿hmd 102一样。这种视频可以用虚拟元素增强以提供增强现实体验,或者可以通过其他方式与虚拟元素进行组合或混合。尽管在所示实现方式中,在hmd 102的前表面上示出了两个相机,但是应明了,在hmd 102上可以安装有沿任意方向取向的任意数量的面向外部的相机。例如,在另一个实现方式中,可以在hmd 102的侧面上安装相机以提供环境的附加全景图像捕获。另外,在一些实现方式中,此类面向外部的相机可以用于跟踪其他外围装置(例如,控制器等)。即,可以在从hmd上的此类面向外部的相机捕获的图像中识别并跟踪外围装置相对于hmd的位置/取向,并且使用hmd在本地环境中的已知位置/取向,可以确定外围装置的真实位置/取向。
[0104]
图8b示出了hmd 102的用户100与客户端系统106对接的一个示例,并且客户端系统106向被称为第二屏幕1307的第二屏幕显示器提供内容。客户端系统106可以包括用于处
理从hmd 102到第二屏幕1307的内容共享的集成电子装置。其他实现方式可以包括将在hmd 102和第二屏幕1307中的每一者与客户端系统之间进行对接的分离装置、模块、连接器。在该一般示例中,用户100佩戴hmd 102,并且正在使用控制器(也可以是接口对象104)玩视频游戏。用户100交互式玩游戏将产生视频游戏内容(vgc),所述视频游戏内容被交互式显示给hmd 102。
[0105]
在一个实现方式中,将在hmd 102中显示的内容共享到第二屏幕1307。在一个示例中,观看第二屏幕1307的人可以观看用户100在hmd 102中交互地玩游戏的内容。在另一个实现方式中,另一个用户(例如,玩家2)可以与客户端系统106交互以产生第二屏幕内容(ssc)。通过玩家还与控制器104交互产生的第二屏幕内容(或任何类型的用户界面、手势、语音或输入)可以被产生为客户端系统106的ssc,所述ssc可以连同从hmd 102接收到的vgc一起显示在第二屏幕1307上。
[0106]
因此,可能与hmd用户位于一处或远离hmd用户的其他用户的交互性可以是社交的、交互式的,并且对于hmd用户和可能正在第二屏幕1307上观看hmd用户玩游戏的内容的用户两者而言更具沉浸感。如图所示,客户端系统106可以连接到因特网1310。因特网还可以提供对客户端系统106的访问以访问来自各种内容源1320的内容。内容源1320可以包括可通过因特网访问的任何类型的内容。
[0107]
这样的内容可以包括但不限于视频内容、电影内容、流媒体内容、社交媒体内容、新闻内容、交友内容、广告内容等。在一个实现方式中,客户端系统106可以用于同时处理用于hmd用户的内容,使得为hmd提供了与玩游戏过程期间的交互性相关联的多媒体内容。然后,客户端系统106还可以将可能与视频游戏内容不相关的其他内容提供给第二屏幕。在一个实现方式中,客户端系统106可以从内容源1320中的一者或从本地用户或远程用户接收第二屏幕内容。
[0108]
图9概念性地示出了根据本公开的实现方式的hmd 102与正在执行的视频游戏或其他应用程序结合的功能。正在执行的视频游戏/应用程序由游戏/应用程序引擎1420定义,所述游戏/应用程序引擎接收输入以更新视频游戏/应用程序的游戏/应用程序状态。可以至少部分地通过视频游戏的各种参数的值来定义视频游戏的游戏状态,所述参数定义当前玩游戏过程的各个方面,诸如对象的存在和位置、虚拟环境的状况、事件的触发、用户配置文件、视图视角等。
[0109]
在所示实现方式中,通过示例方式,游戏引擎接收控制器输入1414、音频输入1416和运动输入1418。可以从与hmd 102分开的游戏控制器(诸如手持游戏控制器(例如,sony4无线控制器、sonymove运动控制器)或方向接口对象104)的操作来定义控制器输入1414。通过示例方式,控制器输入1414可以包括方向输入、按钮压下、触发器激活、移动、手势或从游戏控制器的操作处理的其他种类的输入。在一些实现方式中,通过hmd 102的面向外部的相机1411跟踪游戏控制器的移动,所述相机提供游戏控制器相对于hmd 102的位置/取向。可以从hmd 102的传声器1402或从图像捕获装置1413中所包括的传声器或本地环境中的其他位置处理音频输入1416。可以从在hmd 102中所包括的运动传感器1400和/或在捕获hmd 102的图像时从图像捕获装置1413和/或从hmd 102的面向外部的相机1411处理运动输入1418。游戏引擎1420接收根据游戏引擎的配置处理的输入以更新视频游戏的游戏状态。游戏引擎1420将游戏状态数据输出到各种渲染模块,所
述渲染模块处理游戏状态数据以定义将呈现给用户的内容。
[0110]
在所示实现方式中,视频渲染模块1422被定义为渲染视频流以呈现在hmd 102上。视频流可以由显示器/投影仪机构1410呈现,并由用户的眼睛1406通过光学器件1408观看。音频渲染模块1404被配置为渲染音频流以供用户收听。在一个实现方式中,音频流通过与hmd 102相关联的扬声器1404输出。应明了,扬声器1404可以采取露天扬声器、耳机或能够呈现音频的任何其他种类的扬声器的形式。
[0111]
在一个实现方式中,视线跟踪相机1412被包括在hmd 102中以使得能够跟踪用户的视线。视线跟踪相机捕获用户眼睛的图像,所述图像被分析以确定用户的视线方向。在一个实现方式中,关于用户的视线方向的信息可以用于影响视频渲染。例如,如果确定用户的眼睛正观看特定方向,则可以诸如通过在用户正观看的区域中提供更多细节或更快更新来优先考虑或强调针对该方向的视频渲染。应明了,可以相对于头戴式显示器、相对于用户所处的真实世界环境和/或相对于头戴式显示器上渲染的虚拟环境来定义用户的视线方向。
[0112]
广义地说,对由视线跟踪相机1412捕获的图像的分析在单独考虑时提供了用户相对于hmd 102的视线方向。然而,当与跟踪的hmd 102的位置和取向结合考虑时,可以确定用户的真实世界视线方向,因为hmd 102的位置和取向与用户头部的位置和取向同义。即,可以从跟踪用户的眼睛的位置移动以及跟踪hmd 102的位置和取向来确定用户的真实世界视线方向。当在hmd 102上渲染虚拟环境的视图时,可以应用用户的真实世界视线方向以确定用户在虚拟环境中的虚拟世界视线方向。
[0113]
另外,触觉反馈模块1426被配置为向被包括在hmd 102或由用户操作的另一个装置(诸如接口对象104)中的触觉反馈硬件提供信号。触觉反馈可以采取各种类型的触觉的形式,诸如振动反馈、温度反馈、压力反馈等。接口对象104可以包括用于渲染此类形式的触觉反馈的对应硬件。
[0114]
参考图10,示出了根据本公开的实现方式的示出头戴式显示器102的部件的图。头戴式显示器102包括用于执行程序指令的处理器1500。存储器1502被提供用于存储目的,并且可以包括易失性和非易失性存储器。包括显示器1504,所述显示器提供用户可以观看的视觉界面。电池1506被提供作为头戴式显示器102的电源。运动检测模块1508可以包括各种类型的运动敏感硬件中的任一者,诸如磁力计1510、加速度计1512和陀螺仪1514。
[0115]
加速度计是用于测量加速度和重力感应反作用力的装置。单轴和多轴模型可以用于检测不同方向上的加速度的量值和方向。加速度计用于感测倾斜度、振动和冲击。在一个实现方式中,使用三个加速度计1512来提供重力方向,所述重力方向给出两个角度(自然空间俯仰和自然空间滚转)的绝对基准。
[0116]
磁力计测量头戴式显示器附近磁场的强度和方向。在一个实现方式中,在头戴式显示器内使用三个磁力计1510,以确保自然空间横摆角的绝对基准。在一个实现方式中,磁力计被设计为跨越
±
80微特斯拉的地球磁场。磁力计受金属影响,并且提供随实际横摆单调变化的横摆测量结果。磁场可能由于环境中的金属而扭曲,这导致横摆测量结果的扭曲。如有必要,可以使用来自诸如陀螺仪或相机之类的其他传感器的信息来校准这种扭曲。在一个实现方式中,加速度计1512与磁力计1510一起使用于获得头戴式显示器102的倾斜度和方位角。
[0117]
在一些实现方式中,头戴式显示器的磁力计被配置为在其他附近装置中的电磁体
处于不活动状态时进行读取。
[0118]
陀螺仪是用于基于角动量原理来测量或维持取向的装置。在一个实现方式中,三个陀螺仪1514基于惯性感测提供关于跨相应的轴(x、y和z)的移动的信息。陀螺仪有助于检测快速旋转。然而,陀螺仪可以在没有绝对基准的情况下随时间漂移。这需要周期性地重置陀螺仪,这可以使用其他可用信息来完成,诸如基于对象的视觉跟踪、加速度计、磁力计等进行的位置/取向确定。
[0119]
提供相机1516以用于捕获真实环境的图像和图像流。头戴式显示器102中可以包括一个以上相机,包括朝后的相机(当用户正在观看头戴式显示器102的显示器时远离用户指向的相机),以及朝前的相机(当用户正在观看头戴式显示器102的显示器时朝向用户指向的相机)。另外,深度相机1518可以被包括在头戴式显示器102中以用于感测真实环境中的对象的深度信息。
[0120]
头戴式显示器102包括用于提供音频输出的扬声器1520。而且,可以包括传声器1522以用于捕获来自真实环境的音频,包括来自周围环境的声音、用户发出的语音等。头戴式显示器102包括用于向用户提供触觉反馈的触觉反馈模块1524。在一个实现方式中,触觉反馈模块1524能够引起头戴式显示器102的移动和/或振动,以便向用户提供触觉反馈。
[0121]
提供led 1526作为头戴式显示器102的状态的视觉指示器。例如,led可以指示电池电量、通电等。提供读卡器1528以使得头戴式显示器102能够从存储卡读取信息和向存储卡写入信息。usb接口1530被包括作为用于实现外围装置的连接或与诸如其他便携式装置、计算机等其他装置的连接的接口的一个示例。在头戴式显示器102的各种实现方式中,可以包括各种类型的接口中的任一者以实现头戴式显示器102的更大连接性。
[0122]
包括wifi模块1532以使得能够经由无线联网技术连接到因特网或局域网。而且,头戴式显示器102包括用于实现与其他装置的无线连接的蓝牙模块1534。还可以包括通信链路1536以用于连接到其他装置。在一个实现方式中,通信链路1536利用红外传输进行无线通信。在其他实现方式中,通信链路1536可以利用各种无线或有线传输协议中的任一者来与其他装置进行通信。
[0123]
包括输入按钮/传感器1538来为用户提供输入接口。可以包括各种类型的输入接口中的任一者,诸如按钮、触摸板、操纵杆、轨迹球等。超声波通信模块1540可以被包括在头戴式显示器102中以有助于经由超声波技术与其他装置进行通信。
[0124]
包括生物传感器1542以使得能够检测来自用户的生理数据。在一个实现方式中,生物传感器1542包括一个或多个干电极以用于通过用户的皮肤检测用户的生物电信号。
[0125]
视频输入1544被配置为从主要处理计算机(例如,主游戏控制台)接收视频信号以在hmd上渲染。在一些实现方式中,视频输入是hdmi输入。
[0126]
头戴式显示器102的前述部件仅被描述为可以包括在头戴式显示器102中的示例性部件。在本公开的各种实现方式中,头戴式显示器102可以包括或可以不包括各种上述部件中的一些部件。头戴式显示器102的实现方式可以另外包括当前未描述但所属领域已知的其他部件,以用于有助于如本文所述的本公开的各方面的目的。
[0127]
图11是根据本公开的各种实现方式的游戏系统1600的框图。游戏系统1600被配置为经由网络1615向一个或多个客户端1610提供视频流。游戏系统1600通常包括视频服务器系统1620和任选的游戏服务器1625。视频服务器系统1620被配置为以最低服务质量向一个
或多个客户端1610提供视频流。例如,视频服务器系统1620可以接收改变视频游戏的状态或视频游戏内的视角的游戏命令,并以最小滞后时间向客户端1610提供反映这种状态变化的更新后的视频流。视频服务器系统1620可以被配置为以多种替代的视频格式(包括尚未定义的格式)提供视频流。此外,视频流可以包括被配置为以各种各样的帧速率呈现给用户的视频帧。典型的帧速率是每秒30帧、每秒60帧和每秒120帧。但在本公开的替代实现方式中包括更高或更低的帧速率。
[0128]
客户端1610(在本文中分别被称为1610a、1610b等)可以包括头戴式显示器、终端、个人计算机、游戏控制台、平板计算机、电话、机顶盒、自助服务终端、无线装置、数字键盘、独立装置、手持式玩游戏装置等。通常,客户端1610被配置为接收经编码的视频流、对视频流进行解码,并将所得视频呈现给用户,例如游戏玩家。接收经编码的视频流和/或对视频流进行解码的过程通常包括将各个视频帧存储在客户端的接收缓冲器中。视频流可以在与客户端1610成一体的显示器上或在诸如监视器或电视机之类的单独装置上呈现给用户。客户端1610任选地被配置为支持一个以上游戏玩家。例如,游戏控制台可以被配置为支持两个、三个、四个或更多个同时玩家。这些玩家中的每一者可以接收单独的视频流,或者单个视频流可以包括专门为每个玩家生成的帧区域,例如基于每个玩家的视角生成的帧区域。客户端1610任选地在地理上是分散的。游戏系统1600中所包括的客户端的数量可以在从一或两个至数千、成千上万或更大的范围内大幅变化。如本文中所使用的,术语“游戏玩家”用于指代玩游戏的人,并且术语“玩游戏装置”用于指代用于玩游戏的装置。在一些实现方式中,玩游戏装置可以指代进行协作以将游戏体验传递给用户的多个计算装置。例如,游戏控制台和hmd可以与视频服务器系统1620协作以传递通过hmd观看的游戏。在一个实现方式中,游戏控制台从视频服务器系统1620接收视频流,并且游戏控制台将视频流转发或将视频流更新到hmd以进行渲染。
[0129]
客户端1610被配置为经由网络1615接收视频流。网络1615可以是任何类型的通信网络,包括电话网络、因特网、无线网络、电力线网络、局域网、广域网、专用网络等。在典型的实现方式中,视频流经由诸如tcp/ip或udp/ip之类的标准协议进行传送。可替代地,视频流经由专有标准进行传送。
[0130]
客户端1610的典型示例是包括处理器、非易失性存储器、显示器、解码逻辑、网络通信能力和输入装置的个人计算机。解码逻辑可以包括存储在计算机可读介质上的硬件、固件和/或软件。用于对视频流进行解码(和编码)的系统在所属领域中是公知的,并且根据所使用的特定编码方案而变化。
[0131]
客户端1610可以但不必须进一步包括被配置用于修改接收到的视频的系统。例如,客户端可以被配置为执行进一步的渲染,将一个视频图像叠加在另一个视频图像上,裁剪视频图像等。例如,客户端1610可以被配置为接收各种类型的视频帧,诸如i帧、p帧和b帧,并且将这些帧处理为图像以显示给用户。在一些实现方式中,客户端1610的成员被配置为对视频流执行进一步的渲染、着色、3d转换或类似操作。客户端1610的成员任选地被配置为接收一个以上音频或视频流。客户端1610的输入装置可以包括例如单手游戏控制器、双手游戏控制器、手势识别系统、视线识别系统、语音识别系统、键盘、操纵杆、指向装置、力反馈装置、运动和/或位置感测装置、鼠标、触摸屏、神经接口、相机、尚待开发的输入装置等。
[0132]
由客户端1610接收到的视频流(以及任选的音频流)由视频服务器系统1620生成
并提供。如本文其他地方进一步描述的,该视频流包括视频帧(而音频流包括音频帧)。视频帧被配置(例如,它们包括适当数据结构中的像素信息)成对显示给用户的图像作出有意义的贡献。如本文所使用,术语“视频帧”用于指主要包括被配置成对示出给用户的图像作出贡献(例如,实现所述图像)的信息的帧。本文中关于“视频帧”的大多数教导也可以应用于“音频帧”。
[0133]
客户端1610通常被配置为从用户接收输入。这些输入可以包括被配置为改变视频游戏的状态或以其他方式影响玩游戏过程的游戏命令。游戏命令可以使用输入装置来接收和/或可以通过在客户端1610上执行的计算指令而自动生成。接收到的游戏命令从客户端1610经由网络1615被传送到视频服务器系统1620和/或游戏服务器1625。例如,在一些实现方式中,游戏命令经由视频服务器系统1620被传送到游戏服务器1625。在一些实现方式中,游戏命令的单独副本从客户端1610传送到游戏服务器1625和视频服务器系统1620。游戏命令的传送任选地取决于命令的标识。任选地,通过用于向客户端1610a提供音频或视频流的不同路由或通信信道,从客户端1610a传送游戏命令。
[0134]
游戏服务器1625任选地由与视频服务器系统1620不同的实体来操作。例如,游戏服务器1625可以由多玩家游戏的发行者来操作。在该示例中,视频服务器系统1620任选地被游戏服务器1625视为客户端,并且任选地被配置为从游戏服务器1625的视角看来是执行现有技术游戏引擎的现有技术客户端。视频服务器系统1620与游戏服务器1625之间的通信任选地经由网络1615进行。因此,游戏服务器1625可以是将游戏状态信息发送到多个客户端的现有技术多玩家游戏服务器,所述多个客户端中的一个客户端是游戏服务器系统1620。视频服务器系统1620可以被配置为同时与游戏服务器1625的多个实例进行通信。例如,视频服务器系统1620可以被配置为向不同的用户提供多个不同的视频游戏。这些不同的视频游戏中的每一者都可以由不同的游戏服务器1625支持和/或由不同实体发布。在一些实现方式中,视频服务器系统1620的若干地理上分散的实例被配置为向多个不同的用户提供游戏视频。视频服务器系统1620的这些实例中的每一者都可以与游戏服务器1625的相同实例进行通信。视频服务器系统1620与一个或多个游戏服务器1625之间的通信任选地经由专用通信信道而发生。例如,视频服务器系统1620可以经由高带宽信道连接到游戏服务器1625,所述高带宽信道专用于这两个系统之间的通信。
[0135]
视频服务器系统1620至少包括视频源1630、i/o装置1645、处理器1650和非临时性存储装置1655。视频服务器系统1620可以包括一个计算装置或分布在多个计算装置之间。这些计算装置任选地经由诸如局域网之类的通信系统连接。
[0136]
视频源1630被配置为提供视频流,例如流视频或形成动态图片的一系列视频帧。在一些实现方式中,视频源1630包括视频游戏引擎和渲染逻辑。视频游戏引擎被配置为从玩家接收游戏命令,并基于接收到的命令来维持视频游戏状态的副本。该游戏状态包括对象在游戏环境中的位置,以及通常包括视角。游戏状态还可以包括对象的特性、图像、颜色和/或纹理。通常基于游戏规则以及诸如移动、转身、攻击、设置焦点、交互、使用等游戏命令来为维持游戏状态。游戏引擎的一部分任选地设置在游戏服务器1625中。游戏服务器1625可以基于使用地理上分散的客户端从多个玩家接收到的游戏命令来维护游戏状态的副本。在这些情况下,游戏状态由游戏服务器1625提供给视频源1630,其中存储游戏状态的副本并执行渲染。游戏服务器1625可以经由网络1615直接从客户端1610接收游戏命令,和/或可
以经由视频服务器系统1620接收游戏命令。
[0137]
视频源1630通常包括渲染逻辑,例如存储在诸如存储装置1655之类的计算机可读介质上的硬件、固件和/或软件。该渲染逻辑被配置为基于游戏状态创建视频流的视频帧。全部或部分渲染逻辑任选地设置在图形处理单元(gpu)中。渲染逻辑通常包括处理阶段,所述处理阶段被配置为基于游戏状态和视角来确定对象之间的三维空间关系和/或应用适当的纹理等。渲染逻辑产生原始视频,然后通常在所述原始视频传送给客户端1610之前对其进行编码。例如,原始视频可以根据以下各项进行编码:adobe标准、.wav、h.264、h.263、on2、vp6、vc-1、wma、huffyuv、lagarith、mpg-x、xvid、ffmpeg、x264、vp6-8、realvideo、mp3等。编码过程产生视频流,所述视频流任选地被封装以传递到远程装置上的解码器。视频流的特征在于帧大小和帧速率。典型的帧大小包括800
×
600、1280
×
720(例如,720p)、1024
×
768,但可以使用任何其他帧大小。帧速率是每秒的视频帧数。视频流可以包括不同类型的视频帧。例如,h.264标准包括“p”帧和“i”帧。i帧包括用于刷新显示装置上的所有宏块/像素的信息,而p帧包括用于刷新其子集的信息。p帧的数据大小通常比i帧小。如本文中所使用的,术语“帧大小”是指帧内的像素的数量。术语“帧数据大小”用于指代存储帧所需的字节数。
[0138]
在替代的实现方式中,视频源1630包括视频记录装置,诸如相机。该相机可以用于生成延迟的视频或实时视频,所述视频可以被包括在计算机游戏的视频流中。所得视频流任选地包括渲染的图像和使用静态相机或摄像机记录的图像两者。视频源1630还可以包括存储装置,所述存储装置被配置为存储要包括在视频流中的先前记录的视频。视频源1630还可以包括被配置为检测对象(例如,人)的运动或位置的运动或定位感测装置,以及被配置为基于检测到的运动和/或位置来确定游戏状态或产生视频的逻辑。
[0139]
视频源1630任选地被配置为提供被配置为放置在其他视频上的叠加。例如,这些叠加可以包括命令接口、登录说明、给游戏玩家的消息、其他游戏玩家的图像、其他游戏玩家的视频馈送(例如,网络摄像头视频)。在包括触摸屏接口或视线检测接口的客户端1610a的实现方式中,所述叠加可以包括虚拟键盘、操纵杆、触摸板等。在叠加的一个示例中,玩家的语音被叠加在音频流上。视频源1630任选地还包括一个或多个音频源。
[0140]
在视频服务器系统1620被配置为基于来自一个以上玩家的输入来维持游戏状态的实现方式中,每个玩家可以具有包括观看位置和方向的不同视角。视频源1630任选地被配置为基于每个玩家的视角为每个玩家提供单独的视频流。此外,视频源1630可以被配置为向客户端1610中的每一者提供不同的帧大小、帧数据大小和/或编码。视频源1630任选地被配置为提供3d视频。
[0141]
i/o装置1645被配置用于使视频服务器系统1620发送和/或接收信息,诸如视频、命令、信息请求、游戏状态、视线信息、装置运动、装置位置、用户运动、客户端标识、玩家标识、游戏命令、安全性信息、音频等。i/o装置1645通常包括通信硬件,诸如网卡或调制解调器。i/o装置1645被配置为与游戏服务器1625、网络1615和/或客户端1610进行通信。
[0142]
处理器1650被配置为执行被包括在本文讨论的视频服务器系统1620的各个部件内的逻辑,例如软件。例如,处理器1650可以用软件指令编程,以便执行视频源1630、游戏服务器1625和/或客户端限定符1660的功能。视频服务器系统1620任选地包括处理器1650的一个以上实例。处理器1650也可以用软件指令编程,以便执行由视频服务器系统1620接收
的命令,或协调本文讨论的游戏系统1600的各个元件的操作。处理器1650可以包括一个或多个硬件装置。处理器1650是电子处理器。
[0143]
存储装置1655包括非暂时性模拟和/或数字存储装置。例如,存储装置1655可以包括被配置为存储视频帧的模拟存储装置。存储装置1655可以包括计算机可读数字存储装置,例如,硬盘驱动器、光盘驱动器或固态存储装置。存储装置1615被配置为(例如,通过适当的数据结构或文件系统)存储视频帧、人工帧、包括视频帧和人工帧两者的视频流、音频帧、音频流等。存储装置1655任选地分布在多个装置之间。在一些实现方式中,存储装置1655被配置为存储本文中其他位置讨论的视频源1630的软件部件。这些部件可以按在需要时准备提供的格式存储。
[0144]
视频服务器系统1620任选地还包括客户端限定符1660。客户端限定符1660被配置为远程地确定诸如客户端1610a或1610b之类的客户端的能力。这些能力可以包括客户端1610a本身的能力以及客户端1610a与视频服务器系统1620之间的一个或多个通信信道的能力。例如,客户端限定符1660可以被配置为通过网络1615测试通信信道。
[0145]
客户端限定符1660可以手动或自动确定(例如,发现)客户端1610a的能力。手动确定包括与客户端1610a的用户通信并要求用户提供能力。例如,在一些实现方式中,客户端限定符1660被配置为在客户端1610a的浏览器内显示图像、文本等。在一个实现方式中,客户端1610a是包括浏览器的hmd。在另一个实现方式中,客户端1610a是具有浏览器的游戏控制台,所述浏览器可以显示在hmd上。显示的对象请求用户输入诸如客户端1610a的操作系统、处理器、视频解码器类型、网络连接类型、显示分辨率等信息。用户输入的信息被传送回到客户限定符1660。
[0146]
自动确定可以例如通过在客户端1610a上执行代理和/或通过将测试视频发送到客户端1610a而发生。所述代理可以包括嵌入在网页中或作为后加件安装的计算指令,诸如java脚本。客户端限定符1660任选地提供代理。在各种实现方式中,代理可以发现客户端1610a的处理能力、客户端1610a的解码和显示能力、客户端1610a与视频服务器系统1620之间的通信信道的滞后时间可靠性和带宽、客户端1610a的显示类型、客户端1610a上存在的防火墙、客户端1610a的硬件、在客户端1610a上执行的软件、客户端1610a内的注册表项等。
[0147]
客户端限定符1660包括存储在计算机可读介质上的硬件、固件和/或软件。客户端限定符1660任选地设置在与视频服务器系统1620的一个或多个其他元件分离的计算装置上。例如,在一些实现方式中,客户端限定符1660被配置为确定客户端1610与视频服务器系统1620的一个以上实例之间的通信信道的特性。在这些实现方式中,由客户端限定符发现的信息可以用于确定视频服务器系统1620的哪个实例最适合将流视频传递到客户端1610中的一者。
[0148]
可以利用包括手持式装置、微处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等的各种计算机系统配置来实践本公开的各种实现方式。还可以在分布式计算环境中实践本公开,在所述分布式计算环境中,通过基于有线或无线网络链接的远程处理装置执行任务。
[0149]
考虑到以上实现方式,应理解,本公开可以采用涉及存储在计算机系统中的数据的各种计算机实现的操作。这些操作是需要物理地操纵物理量的那些操作。形成本公开的一部分的本文描述的任何操作都是有用的机器操作。本公开还涉及用于执行这些操作的装
置或设备。可以针对所需目的专门构造所述设备,或者所述设备可以是由存储在计算机中的计算机程序选择性地激活或配置的通用计算机。具体地,各种通用机器可以与根据本文的教导编写的计算机程序一起使用,或者构造更专门的设备来执行所需的操作可能更方便。
[0150]
本公开也可以被体现为计算机可读介质上的计算机可读代码。所述计算机可读介质是可以存储数据的任何数据存储装置,所述数据随后可以被计算机系统读取。计算机可读介质的示例包括硬盘驱动器、网络附接存储装置(nas)、只读存储器、随机存取存储器、cd-rom、cd-r、cd-rw、磁带以及其他光学和非光学数据存储装置。所述计算机可读介质可以包括分布在网络耦合的计算机系统上的计算机可读有形介质,使得以分布式方式存储和执行计算机可读代码。
[0151]
虽然以特定的顺序描述了方法操作,但是应当理解,可以在操作之间执行其他内务操作,或者可以调整操作,使得它们在稍微不同的时间发生,或者可以将操作分布在系统中,只要以期望的方式执行叠加操作的处理,所述系统便允许以与处理相关联的各种间隔发生处理操作。
[0152]
尽管为了清楚理解的目的已经详细地描述了前述公开,但是将显而易见的是,可以在所附权利要求的范围内进行某些改变和修改。因此,本实现方式应被认为是说明性的而不是限制性的,并且本公开不限于本文给出的细节,而是可以在本公开的范围和等效物内进行修改。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1