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

具有虚拟无线信道的人工现实系统的制作方法

2022-06-22 20:45:19 来源:中国专利 TAG:


1.本公开总体上涉及人工现实系统,例如增强现实、混合现实和/或虚拟现实系统。
2.背景
3.人工现实系统正变得越来越普遍,应用于许多领域,例如计算机游戏、健康和安全、工业和教育。作为几个示例,人工现实系统正在被合并到移动设备、游戏机、个人计算机、电影院和主题公园中。通常,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实、增强现实、混合现实、混杂现实(hybrid reality)、或其某种组合和/或衍生物。
4.典型人工现实系统包括用于渲染和向用户显示内容的一个或更多个设备。作为一个示例,人工现实系统可合并头戴式显示器(hmd),该hmd由用户佩戴并且被配置为向用户输出人工现实内容。人工现实内容可以完全包括由系统生成的内容,或者可以包括与捕获的内容(例如,真实世界视频和/或图像)相结合的生成的内容。在操作期间,用户通常与人工现实系统交互以选择内容、启动应用、配置系统,并且通常体验人工现实环境。
5.概述
6.总的来说,本公开描述了人工现实系统的多个设备之间的无线通信技术。例如,该技术可以应用于头戴式设备(hmd)和外部设备之间的通信,该外部设备例如为当与hmd配对时作为协同处理器操作的外围设备。这种无线通信可以用于例如将视频或其他媒体帧从外围设备发送到hmd,用于作为人工现实内容渲染。
7.在一些实例中,ar系统的每个设备可包括生成和消耗应用数据的一个或更多个处理器。这些设备在物理无线信道(例如,频率信道)上建立一个或更多个用于无线通信的虚拟信道,通过这些虚拟信道,这些处理器对可以交换应用数据,这些处理器中的每一个都属于这些设备中单独的一个。这样,每个虚拟信道使得位于ar系统的不同设备上的各个处理器之间能够进行点对点通信。虚拟信道可以使用不同的特征集来实现,例如不同的加密策略、安全密钥对、服务质量等。这些设备执行虚拟信道协议,该协议使用无线传输的片段的报头信息来指定要应用哪些特征并识别目的地处理器。相应地,每个虚拟信道可以被独立地加密/解密,以在ar系统的每个设备内减少——并且在某些情况下最小化——分组化数据的复制,来提供处理器对之间的安全通信。
8.在一些示例中,每个设备包括无线处理机,该无线处理机可包括一个或更多个处理器、监督处理器、加密引擎、存储器和/或无线nic,并且该无线处理机能够进行处理器间通信。无线处理机负责建立和管理传输/接收数据的虚拟信道。一旦例如由监督处理器建立了虚拟信道,一个设备上的无线处理机就在虚拟信道上以低开销向另一个设备上的对应无线处理机发送有效载荷数据。对应无线处理机根据虚拟信道的身份或目的地处理器的身份(如报头信息中所指定的)来管理向目的地处理器的传递。这样,根据虚拟信道协议传送数据的任何处理器不需要遵守或理解任何中间协议。
9.该技术可提供一个或更多个技术优势或改进,其提供至少一种实际应用。在诸如ar系统的多设备系统中,使用典型的通信协议进行无线通信可能是低效的;出于一个原因,
处理中间协议(例如,tcp/ip)的属性数据可能导致延迟。本文描述的虚拟信道通信协议允许ar系统中的设备绕过中间协议操作。作为另一个优点,虽然典型的通信协议以被称为分组(packet)的单元的形式传输输入数据的有效载荷,但是无线处理机在某些情况下可以将分组形式的有效载荷转换成被称为片段(fragment)的更小单元。无线处理机基于分组大小确定分组将被分成的片段的数量,并生成多个报头,使得每个片段具有一个报头。无线处理机独立地加密每个片段(有效载荷数据 报头数据),并在物理无线通信链路上将加密的片段发送给对应无线设备。对于每个接收到的加密片段,接收无线处理机根据报头信息识别目的地处理器,并且在解密之后,将片段插入缓冲区中与片段在应用有效载荷(application payload)中的位置相称的位置。因为目的地处理器此后可以直接从缓冲区中的位置读取片段,所以这种技术可以避免在应用层进一步复制数据。一旦通过接收所有片段完全形成了分组,无线处理机就使用处理器间通信将应用数据传送到目的地处理器。以这种方式进行分段和重组可以提高无线传输的可靠性,以支持例如压缩视频帧的传输。
10.在一个示例中,一种方法包括由监督处理器在多设备系统的第一计算设备和第二计算设备之间的物理无线信道上建立多个虚拟信道,其中每个虚拟信道与不同的处理器对相关联,该处理器对包括从第一处理器或第二计算设备的第二处理器之一中选择的源处理器和从第一处理器或第二处理器之一中选择的目的地处理器,其中第一处理器耦合到一个或更多个存储器设备,并且对于每个虚拟信道和相关联的处理器对,使用该虚拟信道将应用数据从该处理器对中的源处理器传送到该处理器对中的目的地处理器。在另一示例中,计算设备实现上述方法。
11.其他示例包括用于执行权利要求中的任何方法或本文所述的任何过程、技术或程序的方法、设备、包括装置的设备和计算机可读存储介质。
12.根据本发明的实施例,提供了一种多设备系统的第一计算设备,包括:耦合至一个或更多个存储器设备的一个或更多个第一处理器;以及监督处理器,该监督处理器被配置为在该第一计算设备和多设备系统的第二计算设备之间的物理无线信道上建立多个虚拟信道,其中每个虚拟信道与不同的处理器对相关联,该处理器对包括从第一处理器或第二计算设备的第二处理器之一中选择的源处理器和从第一处理器或第二处理器之一中选择的目的地处理器,其中,对于每个虚拟信道和相关联的处理器对,该处理器对中的源处理器被配置为使用该虚拟信道与该处理器对中的目的地处理器进行应用数据的传送。
13.在一些实施例中,监督处理器还可以被配置为:为虚拟信道中的第一虚拟信道分配一个或更多个存储器设备的存储器的一部分,用于存储经由第一虚拟信道作为分组接收的应用有效载荷的片段。
14.在一些实施例中,第一计算设备还可以包括:无线处理机,该无线处理机被配置为执行以下操作中的至少一项:在至少一个虚拟信道上以分组形式发送第一应用有效载荷的片段,或者在至少一个其他虚拟信道上以分组形式接收第二应用有效载荷的片段。
15.在一些实施例中,第一计算设备还可以包括:无线处理机,该无线处理机被配置为从由具有虚拟信道中的第一虚拟信道的相关联的处理器对中的源处理器生成的应用数据生成分组。
16.在一些实施例中,每个分组可包括:处理器对中的源处理器的源标识符和处理器对中的目的地处理器的目的地标识符中的至少一个,其中第二计算设备使用源标识符或目
的地标识符中的至少一个来识别该第二计算设备中存储器的已分配部分。
17.在一些实施例中,每个分组可包括:处理器对中的目的地处理器的目的地标识符,其中第二计算设备处的无线处理机使用目的地标识符为第一虚拟信道识别第二计算设备中存储器的已分配部分。
18.在一些实施例中,每个分组可包括:第一虚拟信道的流标识符,其中该流标识符对应于一个或更多个存储器设备的存储器的一部分,存储器的该部分被分配用于为源处理器存储来自处理器对中的目的地处理器的输入应用数据。
19.在一些实施例中,每个分组可包括:要经由第一虚拟信道在分组中传送的应用有效载荷片段的序列号,其中序列号对应于片段在应用有效载荷中的位置。
20.在一些实施例中,每个分组可包括:类型属性,其指示分组是要分段还是不分段,其中类型属性还指示要在分组中传送的应用有效载荷是否超过了大小限制。
21.在一些实施例中,每个分组可包括:长度属性,其指示要经由第一虚拟信道在分组中传送的应用有效载荷的大小限制,其中长度属性还指示一个或更多个存储器设备中用于存储应用有效载荷的存储器的一部分的大小。
22.在一些实施例中,第一计算设备还可以被配置为:分配一个或更多个存储器设备的存储器的一部分,用于存储要经由虚拟信道中的一个虚拟信道接收的应用有效载荷的片段;经由该虚拟信道从第二计算设备接收包括应用有效载荷的至少一个片段的一个或更多个无线通信;以及在共享存储器的该部分的至少一个槽(slot)中存储应用有效载荷的至少一个片段,该至少一个槽具有与应用有效载荷中至少一个片段的至少一个序列号对应的至少一个位置。
23.在一些实施例中,第一计算设备还可以被配置为:生成要在虚拟信道的第一虚拟信道上从第一处理器中的源处理器传输至第二处理器中的目的地处理器的应用有效载荷的多个片段的报头信息;以及经由第一虚拟信道向多设备系统的第二计算设备发送该多个片段。
24.根据一些实施例,提供了一种方法,包括:由监督处理器在多设备系统的第一计算设备和第二计算设备之间的物理无线信道上建立多个虚拟信道,其中每个虚拟信道与不同的处理器对相关联,该处理器对包括选自第一处理器或第二计算设备的第二处理器之一的源处理器和选自第一处理器或第二处理器之一的目的地处理器,其中第一处理器耦合到一个或更多个存储器设备;以及对于每个虚拟信道和相关联的处理器对,使用该虚拟信道将应用数据从处理器对中的源处理器传送到处理器对中的目的地处理器。
25.在一些实施例中,该方法还可以包括:由监督处理器为虚拟信道的第一虚拟信道分配一个或更多个存储器设备的存储器的一部分,用于存储经由第一虚拟信道作为分组接收的应用有效载荷片段。
26.在一些实施例中,该方法还可以包括:由第一计算设备的监督处理器分配一个或更多个存储器设备的存储器的一部分,用于存储要经由虚拟信道中的一个虚拟信道接收的应用有效载荷的片段;由第一计算设备的无线处理机经由该虚拟信道从第二计算设备接收包括至少一个片段的一个或更多个无线通信;以及由第一计算设备的无线处理机将多个片段中的至少一个片段存储在存储器的该部分的至少一个槽中,该至少一个槽在该部分存储器中具有与该至少一个片段在应用有效载荷中的位置对应的位置。
27.在一些实施例中,该方法还可以包括:由第一计算设备的无线处理机生成用于传输至多设备系统的第二计算设备的第二应用有效载荷的多个片段的报头信息;以及由第一计算设备的无线处理机向多设备系统的第二计算设备发送该多个片段。
28.在一些实施例中,该方法还可以包括:由第一计算设备的无线处理机从分组中的报头信息读取目的地处理器的目的地标识符或源处理器的源标识符中的至少一个;以及由第一计算设备的无线处理机基于目的地处理器的目的地标识符或源处理器的源标识符中的至少一个来识别用于虚拟信道的存储器的一部分。
29.在一些实施例中,该方法还可以包括:由第一计算设备的无线处理机从分组中的报头信息读取序列号;以及由第一计算设备的无线处理机识别存储器的一部分中用于存储应用有效载荷的片段的对应槽。
30.在一些实施例中,虚拟信道与一组特征相关联,该组特征包括加密策略、安全密钥对和服务质量。
31.根据一些实施例,提供了一种包括可执行指令的计算机可读介质,当由处理电路执行时,可执行指令使多设备系统的第一计算设备:在该第一计算设备和多设备系统的第二计算设备之间的物理无线信道上建立多个虚拟信道,其中每个虚拟信道与不同的处理器对相关联,该处理器对包括从第一处理器和第二计算设备的第二处理器中的至少一个中选择的源处理器和从第一处理器或第二处理器中的至少一个中选择的目的地处理器,其中对于每个虚拟信道和相关联的处理器对,该处理器对中的源处理器被配置成使用该虚拟信道与该处理器对中的目的地处理器进行应用数据的传送,其中第一处理器耦合到一个或更多个存储器设备。
32.应当理解,本文中描述的适于结合到本发明的一个或更多个方面或实施例中的任何特征都旨在可推广到本公开的任何和所有方面和实施例。
33.该概述旨在提供本公开中所述主题的概述。它并不旨在提供对附图和以下描述中详细描述的系统、设备和方法的排他或详尽的解释。本公开的一个或更多个示例的进一步细节在附图和以下描述中阐述。从说明书和附图以及权利要求中,其他特征、目的和优点将变得明显。
34.附图简述
35.图1a是描绘根据本公开中描述的技术的示例多设备人工现实系统的图示,该系统使用虚拟信道提供在多个设备中执行的处理器对之间的无线通信。
36.图1b是描绘根据本公开中描述的技术的示例人工现实系统的图示,该系统使用虚拟信道提供在多用户人工现实环境中的多个设备中执行的处理器对之间的无线通信。
37.图2a是描绘根据本公开中描述的技术的示例hmd和示例外围设备的图示。
38.图2b是描绘根据本公开中描述的技术的另一示例hmd的图示。
39.图3是示出根据本公开中描述的技术的图1a、图1b的多设备人工现实系统的控制台、hmd和外围设备的示例实现的框图。
40.图4是描绘根据本公开中描述的技术的图1a、图1b的多设备人工现实系统的hmd和外围设备的示例实现的框图。
41.图5a是示出根据本公开中描述的技术的多设备人工现实系统的分布式架构的示例实现的框图。
42.图5b是示出根据本公开中描述的技术的多设备人工现实系统的分布式架构的更详细示例实现的框图,其中使用每个设备内的一个或更多个soc集成电路来实现一个或更多个设备(例如,外围设备和hmd)。
43.图6是示出根据本公开中描述的技术的多设备人工现实系统中的片上系统(soc)的示例实现的部件的框图。
44.图7是描绘根据本公开中描述的技术的,在多设备人工现实系统中的设备之间传送的应用有效载荷的示例片段的图示。
45.图8是示出根据本公开的一种或更多种技术的监督处理器的示例操作的流程图。
46.图9是示出根据本公开的一种或更多种技术的无线处理机的示例操作的流程图。
47.图10是示出根据本公开的一种或更多种技术的无线处理机的示例操作的第二流程图。
48.在所有附图和文本中,相同的参考字符表示相同的元件。
49.详细描述
50.图1a是描绘根据本公开中描述的技术的利用虚拟信道提供在多个设备中执行的处理器对之间的无线通信的示例多设备人工现实系统的图示。在图1a的示例中,人工现实系统10包括hmd 112、外围设备136,并且在一些示例中可以包括一个或更多个外部传感器90和/或控制台106。
51.如图所示,hmd 112通常由用户110佩戴,并且包括用于向用户110呈现人工现实内容122的电子显示器和光学组件。此外,hmd 112包括用于跟踪hmd 112的运动的一个或更多个传感器(例如,加速度计),并且可以包括用于捕获周围物理环境的图像数据的一个或更多个图像捕获设备138(例如,相机、线扫描仪)。尽管图示为头戴式显示器,但是ar系统10可以替代地或附加地包括眼镜或其他显示设备,用于向用户110呈现人工现实内容122。
52.在该示例中,控制台106被示为单个计算设备,例如游戏机、工作站、台式计算机或膝上型计算机。在其他示例中,控制台106可以分布在多个计算设备上,例如分布式计算网络、数据中心或云计算系统。如该示例中所示,控制台106、hmd 112和传感器90可以经由网络104通信耦合,网络104可以是有线或无线网络(例如wi-fi)、网状网络或短程无线通信介质或其组合。尽管在该示例中,hmd 112被示出为与控制台106通信,例如系留(tethered to)到控制台或与控制台进行无线通信,但在一些实现中,hmd 112作为独立的移动人工现实系统进行操作。
53.通常,人工现实系统10使用从真实世界、3d物理环境捕获的信息来渲染人工现实内容122以显示给用户110。在图1a的示例中,用户110观看由在hmd 112和/或控制台106上执行的人工现实应用构建和渲染的人工现实内容122。在一些示例中,人工现实内容122可以包括真实世界图像(例如,手132、外围设备136、墙壁121)和虚拟对象(例如,虚拟内容项目124、126和虚拟用户界面137)的混合,以产生混合现实和/或增强现实。在一些示例中,虚拟内容项目124、126可以被映射(例如,钉住、锁定、放置)到人工现实内容122内的特定位置。虚拟内容项目的位置可以是固定的,例如相对于墙壁121或地球之一。例如,相对于外围设备136或用户,虚拟内容项目的位置可以是可变的。在一些示例中,虚拟内容项目在人工现实内容122中的特定位置与真实世界物理环境中(例如,在物理对象的表面上)的位置相关联。
54.外围设备136作为hmd 112的协同处理器操作,例如,生成用于传输至hmd 112并由其显示的人工现实内容。在这个示出的示例中,外围设备136是物理的、真实世界的设备,其也具有表面,在该表面上,ar系统10覆盖虚拟用户界面137。外围设备136可以包括一个或更多个存在敏感(presence-sensitive)表面,用于通过检测触摸或悬停在存在敏感表面的位置上的一个或更多个对象(例如,手指、触笔)的存在来检测用户输入。在一些示例中,外围设备136可以包括输出显示器,其可以是存在敏感的显示器。在一些示例中,外围设备136可以是智能手机、平板电脑、个人数据助理(pda)或其他手持设备。在一些示例中,外围设备136可以是智能手表、智能戒指或其他可佩戴设备。外围设备136也可以是信息亭(kiosk)或其他固定或移动系统的一部分。外围设备136可以包括也可以不包括用于向屏幕输出内容的显示设备。
55.在图1a所示的示例人工现实体验中,虚拟内容项目124、126被映射到墙壁121上的位置。图1a中的示例还示出了虚拟内容项目124仅在人工现实内容122内部分地出现在墙壁121上,说明了该虚拟内容不存在于真实世界的物理环境中。虚拟用户界面137被映射到外围设备136的表面。结果,ar系统10在相对于外围设备136在人工现实环境中的位置被锁定的用户界面位置处渲染虚拟用户界面137,以作为人工现实内容122的一部分在hmd 112处显示。图1a示出了虚拟用户界面137仅在人工现实内容122内出现在外围设备136上,说明了该虚拟内容不存在于真实世界的物理环境中。
56.人工现实系统10可以响应于确定虚拟内容项目的位置的至少一部分在用户110的视场130中来渲染一个或更多个虚拟内容项目。例如,仅当外围设备136在用户110的视场130内时,人工现实系统10才可以在外围设备136上渲染虚拟用户界面137。
57.在操作期间,人工现实应用通过跟踪和计算参考系(通常是hmd 112的视角)的姿势信息来构建用于向用户110显示的人工现实内容122。使用hmd 112作为参考系(frame of reference),并且基于由hmd 112的当前估计姿势确定的当前视场130,人工现实应用渲染3d人工现实内容,在一些示例中,该3d人工现实内容可以至少部分地覆盖在用户110的真实世界3d物理环境上。在该过程中,人工现实应用使用从hmd 112接收的感测数据,例如移动信息和用户命令,并且在一些示例中,使用来自任何外部传感器90(例如外部相机)的数据来捕获真实世界物理环境中的3d信息,例如用户110的运动和/或关于用户110的特征跟踪信息。基于所感测的数据,人工现实应用确定hmd 112的参考系的当前姿势,并且根据当前姿势,渲染人工现实内容122。
58.人工现实系统10可以基于用户110的可以由用户的实时凝视跟踪或其他条件来确定的当前视场130触发虚拟内容项目的生成和渲染。更具体地说,hmd 112的图像捕获设备138捕获表示在图像捕获设备138的视场130内的真实世界物理环境中的对象的图像数据。视场130通常对应于hmd 112的视角。在一些示例中,人工现实应用呈现包括混合现实和/或增强现实的人工现实内容122。如图1a所示,人工现实应用可以沿着虚拟对象例如在人工现实内容122内渲染处于视场130内的真实世界对象(例如外围设备136、用户110的手132和/或手臂134的部分)的图像。在其他示例中,人工现实应用可以在人工现实内容122内渲染外围设备136、用户110的手132和/或手臂134在视场130内的部分的虚拟表示(例如,将真实世界对象渲染为虚拟对象)。在任一示例中,用户110能够在人工现实内容122内查看他们的手132、手臂134、外围设备136和/或视场130内的任何其他真实世界对象的部分。在其他示例
中,人工现实应用可以不渲染用户的手132或手臂134的表示。
59.在操作期间,人工现实系统10在由hmd 112的图像捕获设备138捕获的图像数据内执行对象识别,以识别外围设备136、手132,包括可选地识别用户110的单个手指或拇指,和/或手臂134的全部或部分。此外,人工现实系统10在滑动时间窗口上跟踪外围设备136、手132(可选地包括手的特定手指)和/或手臂134的部分的位置、取向和构形。在一些示例中,外围设备136包括用于跟踪外围设备136的运动或取向的一个或更多个传感器(例如,加速度计)。
60.如上所述,人工现实系统10的多个设备可协同工作,以执行一个或更多个人工现实应用,其中每个设备可以是一个或更多个物理设备内的独立物理电子设备和/或独立集成电路(例如,片上系统(soc))。在该示例中,外围设备136在操作上与hmd 112配对,以在ar系统10内联合操作,从而提供人工现实体验。例如,外围设备136和hmd 112可以作为协同处理设备相互通信。作为一个示例,当用户在虚拟环境中在与覆盖在外围设备136上的虚拟用户界面137的虚拟用户界面元素之一相对应的位置处执行用户界面手势时,ar系统10检测用户界面并执行渲染到hmd112的动作。
61.根据本公开的技术,人工现实系统10可为多个设备(例如,当与一个或更多个hmd(例如,hmd 112)进行操作配对时,作为协同处理ar设备操作的外围设备136)之间的无线通信提供虚拟信道。尽管本文描述的技术是针对外围设备136和一个或更多个hmd之间的无线通信的虚拟信道来描述的,但是这些技术可以应用于可以在ar系统10中配对的任何设备。
62.在一些示例实现中,如本文所述,外围设备136和hmd 112可以各自包括一个或更多个片上系统(soc)集成电路,该电路被配置为支持人工现实应用,例如作为协同应用处理器、传感器聚合器、显示控制器等操作的soc。当外围设备136和hmd 112参与无线通信时,外围设备136和hmd 112内的部件可以提供虚拟信道,以提供在多个设备中执行的处理器对之间的无线通信。外围设备136和hmd 112中每一个内的每一个处理器可能需要由监督处理器来识别每一个其他的处理器。
63.图1b是描绘根据本公开中描述的技术的另一示例人工现实系统20的图示,该系统使用虚拟信道提供在多用户人工现实环境中的多个设备中执行的处理器对之间的无线通信。类似于图1a的人工现实系统10,在一些示例中,图1b的人工现实系统20可以相对于多用户人工现实环境内的虚拟表面生成并渲染虚拟内容项目。在各种示例中,人工现实系统20还可以响应于检测到用户与外围设备136的一个或更多个特定交互,生成并向用户渲染特定虚拟内容项目和/或图形用户界面元素。例如,外围设备136可以充当供用户“登台(stage)”或以其他方式与虚拟表面交互的舞台设备。
64.在图1b的示例中,人工现实系统20包括外部相机102a和102b(统称为“外部相机102”)、hmd 112a-112c(统称为“hmd 112”)、控制器114a和114b(统称为“控制器114”)、控制台106和传感器90。如图1b所示,人工现实系统20表示多用户环境,其中在控制台106和/或hmd 112上执行的人工现实应用基于相应用户的相应参考系的当前观看视角向用户110a-110c(统称为“用户110”)中的每一个呈现人工现实内容。也就是说,在该示例中,人工现实应用通过针对hmd 112中的每一个的参考系跟踪和计算姿势信息来构建人工内容。人工现实系统20使用从相机102、hmd 112和控制器114接收的数据来捕获真实世界环境中的3d信息,例如用户110的运动和/或关于用户110和对象108的跟踪信息,用于计算hmd 112的相应
参考系的更新姿势信息。作为一个示例,人工现实应用可基于为hmd 112c确定的当前观看视角来渲染人工现实内容122,该人工现实内容具有空间上覆盖在真实世界对象108a-108b(统称为“真实世界对象108”)上的虚拟对象128a-128b(统称为“虚拟对象128”)。此外,从hmd 112c的视角来看,人工现实系统20分别基于用户110a、110b的估计位置来渲染化身120a、120b。
65.每个hmd 112在人工现实系统20内同时操作。在图1b的示例中,每个用户110可以是人工现实应用中的“玩家”或“参与者”,并且任何用户110可以是人工现实应用中的“旁观者”或“观察者”。通过跟踪用户110c的手132和/或手臂134,并且将视场130内的手132的部分渲染为人工现实内容122内的虚拟手132,hmd 112c可以基本上类似于图1a的hmd 112进行操作。hmd 112b可以从用户110b持有的控制器114接收用户输入。在一些示例中,控制器114a和/或114b可以对应于图1a的外围设备136,并且基本上类似于图1a的外围设备136来操作。hmd 112a也可以基本上类似于图1a的hmd 112进行操作,并且通过用户110a的手132a、132b接收在外围设备136上执行或用外围设备136执行的手势形式的用户输入。hmd 112b可以从用户110b持有的控制器114接收用户输入。控制器114可以使用诸如蓝牙的短程无线通信的近场通信、使用有线通信链路或使用其它类型的通信链路来与hmd 112b通信。
66.在一些方面,人工现实应用可以在控制台106上运行,并且可以利用图像捕获设备102a和102b来分析手132b的构形、位置和/或取向,以识别可以由hmd 112a的用户执行的输入手势。类似地,hmd 112c可以利用图像捕获设备138来分析外围设备136和手132c的构形、位置和/或取向,以输入hmd 112c的用户可以执行的手势。在一些示例中,外围设备136包括用于跟踪外围设备136的运动或取向的一个或更多个传感器(例如,加速度计)。人工现实应用可以响应于这样的手势、运动和取向,以类似于关于参考图1a描述的方式来渲染虚拟内容项目和/或ui元素。
67.图像捕获设备102和138可以捕获可见光谱、红外光谱或其他光谱中的图像。例如,本文描述的用于识别对象、对象姿势和手势的图像处理可以包括处理红外图像、可见光光谱图像等。
68.人工现实系统20的设备可协同工作,以执行一个或更多个人工现实应用。例如,外围设备136与hmd 112c配对,以在ar系统20内联合操作。类似地,控制器114与hmd 112b配对,以在ar系统20内联合操作。外围设备136、hmd 112和控制器114可以各自包括被配置为实现用于人工现实应用的操作环境的一个或更多个soc集成电路。当一对设备内的soc集成电路无线通信时,另一个集成电路可以从物理通信链路建立虚拟信道,以便在物理通信链路上复用多个通信信道。例如,外围设备136的源处理器可以以视频帧的形式向hmd 112的目的地处理器发送应用数据,用于渲染和呈现。外围设备136和hmd 112的部件建立用于传输应用数据的虚拟信道。
69.因此,当外围设备136和hmd 112c,例如,进行无线通信时,外围设备136和hmd 112c内的部件可提供虚拟信道,以提供在外围设备136和hmd 112c中执行的处理器对之间的无线通信。外围设备136和hmd112中的每一个内的每一个处理器可能需要由监督处理器来识别每一个其他的处理器。
70.图2a是描绘根据本公开中描述的技术的,一起为无线通信提供虚拟信道的示例hmd 112和示例外围设备136的图示。图2a的hmd 112可以是图1a和图1b的hmd 112中的任一
个的示例。hmd 112可以是人工现实系统(例如图1a、图1b的人工现实系统10、20)的一部分,或者可作为被配置为实现本文所描述技术的独立的、移动的人工现实系统操作。
71.在该示例中,hmd 112包括前刚性主体和用于将hmd 112固定到用户的带。此外,hmd 112包括面向内部的电子显示器203,该电子显示器被配置为向用户呈现人工现实内容。电子显示器203可以是任何合适的显示技术,例如液晶显示器(lcd)、量子点显示器、点阵显示器、发光二极管(led)显示器、有机发光二极管(oled)显示器、阴极射线管(crt)显示器、电子墨水、或单色、彩色或能够生成视觉输出的任何其他类型的显示器。在一些示例中,电子显示器是用于向用户的每只眼睛提供单独图像的立体显示器。在一些示例中,当跟踪hmd 112的位置和取向以用于根据hmd 112和用户的当前观看视角渲染人工现实内容时,显示器203相对于hmd 112的前刚性主体的已知取向和位置被用作参考系,也被称为局部原点(local origin)。在其他示例中,hmd 112可以采取其他可佩戴的头戴式显示器的形式,例如眼镜或护目镜。
72.如图2a中进一步所示,在该示例中,hmd 112还包括一个或更多个运动传感器206,例如输出指示hmd 112的当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“imu”)、输出指示hmd 112的位置的数据的gps传感器、输出指示hmd 112与各种对象相距的距离的数据的雷达或声纳、或提供hmd 112或物理环境内的其他对象的位置或取向的指示的其他传感器。此外,hmd 112可以包括集成的图像捕获设备138a和138b(统称为“图像捕获设备138”),例如摄像机、激光扫描仪、多普勒雷达扫描仪、深度扫描仪等,其被配置为输出表示物理环境的图像数据。更具体地,图像捕获设备138捕获表示物理环境中的在图像捕获设备138的视场130a、130b(其通常对应于hmd 112的视角)内的对象(包括外围设备136和/或手132)的图像数据。hmd 112包括内部控制单元210,该内部控制单元可包括内部电源和一个或更多个印刷电路板,该印刷电路板具有一个或更多个处理器、存储器和硬件以提供用于执行可编程操作的操作环境,从而处理感测数据并在显示器203上呈现人工现实内容。
73.在一个示例中,控制单元210被配置为基于感测到的数据(例如,由图像捕获设备138和/或102捕获的图像数据、来自gps传感器的位置信息),生成并渲染用于在显示器203上显示的虚拟表面,该虚拟表面包括与图像捕获设备138的视场130a、130b内包含的位置相关联的一个或更多个虚拟内容项目(例如,图1a的虚拟内容项目124、126)。如参考图1a-1b所解释的,虚拟内容项目可以与虚拟表面内的位置相关联,该位置可以与真实世界环境内的物理表面相关联,并且控制单元210可以被配置为响应于确定与虚拟内容(或其部分)相关联的位置在当前视场130a、130b内,渲染虚拟内容项目(或其部分)以在显示器203上显示。在一些示例中,虚拟表面与平面或其他表面(例如,墙壁)上的位置相关联,并且当该虚拟表面内包含的任何虚拟内容项目的部分在视场130a、130b内时,控制单元210将生成并渲染这些部分。
74.在一个示例中,控制单元210被配置为基于感测到的数据,识别用户执行的特定手势或手势组合,并且作为响应,执行动作。例如,响应于一个识别的手势,控制单元210可以生成并渲染特定的用户界面,用于在电子显示器203上在相对于外围设备136的位置锁定的用户界面位置处显示。例如,控制单元210可以在外围设备136的表面220上或在外围设备136附近(例如,在外围设备136的上方、下方或附近)生成并渲染包括一个或更多个ui元素
(例如,虚拟按钮)的用户界面。控制单元210可以在由图像捕获设备138捕获的图像数据内执行对象识别,以识别外围设备136和/或手132、手指、拇指、手臂或用户的另一部分,并且跟踪外围设备136和/或用户的被识别部分的移动、位置、构形等,以识别用户执行的预定义手势。响应于识别预定义手势,控制单元210采取一些动作,例如从与用户界面相关联的选项集中选择选项(例如,从ui菜单中选择选项)、将手势翻译成输入(例如,字符)、启动应用、操纵虚拟内容(例如,移动、旋转虚拟内容项目)、生成和渲染虚拟标记、生成和渲染激光指示器或以其他方式显示内容等。例如,控制单元210可以响应于检测到被指定为用于展现用户界面的“触发”的预定义手势(例如,将外围设备转向横向或水平取向(未示出)),动态地生成和呈现用户界面,例如菜单。在一些示例中,控制单元210基于感测到的数据,相对于渲染的用户界面检测用户输入(例如,在虚拟ui元素上执行的敲击手势)。在一些示例中,控制单元210响应于来自外部设备(例如控制台106)的指示来执行这些功能,该外部设备可以执行对象识别、运动跟踪和手势检测或其任何部分。
75.作为示例,控制单元210可以利用图像捕获设备138a和138b来分析外围设备136、手132和/或手臂134的构形、位置、移动和/或取向,以识别可以由用户相对于外围设备136来执行的用户界面手势、选择手势、冲压手势、平移手势、旋转手势、绘制手势、指向手势等。控制单元210可以渲染ui菜单(包括ui元素)和/或虚拟表面(包括任何虚拟内容项目),并且使得用户能够基于对用户相对于外围设备执行的用户界面手势、选择手势、冲压手势、平移手势、旋转手势和绘制手势的检测来与该ui菜单和/或虚拟表面交互,如下面进一步详细描述的。
76.在一个示例中,外围设备136的表面220是存在敏感表面,例如使用电容、导电、电阻、声学或其他技术来检测触摸和/或悬停输入的表面。在一些示例中,外围设备136的表面220是触摸屏(例如,电容式触摸屏、电阻式触摸屏、表面声波(saw)触摸屏、红外触摸屏、光学成像触摸屏、声脉冲识别触摸屏或任何其他触摸屏)。在这样的示例中,外围设备136可以在触摸屏220上渲染用户界面或其他虚拟元素(例如,虚拟标记),并且检测触摸屏220上的用户输入(例如,触摸或悬停输入)。在该示例中,外围设备136可以使用无线通信链路(例如,wi-fi、诸如蓝牙的短程无线通信的近场通信)、使用有线通信链路(未示出)或使用其他类型的通信链路,将任何检测到的用户输入传送到hmd 112(和/或图1a的控制台106)。例如,无线通信链路可能涉及使用一定频带或信道内的无线电波来传送数据。该频带可以被称为无线通信链路的物理无线信道或物理通信链路。在一些示例中,外围设备可以包括一个或更多个输入设备(例如,按钮、轨迹球、滚轮),用于与虚拟内容交互(例如,选择虚拟ui元素,滚动通过虚拟ui元素)。
77.在一些示例中,ar系统10的每个设备可包括监督处理器(例如,监督处理器224和监督处理器226)以及生成和/或消费应用数据的各种处理器。hmd 112包括管理hmd 112的部件(例如hmd 112的soc的处理器)的监督处理器224。外围设备136包括管理外围设备136的部件(例如外围设备136的soc的处理器)的监督处理器226。监督处理器224和监督处理器226可以建立虚拟信道,用于hmd 112的处理器与外围设备136的处理器交换数据。监督处理器224可以利用加密/解密处理器在hmd112和外围设备136之间建立安全虚拟信道。
78.监督处理器224和/或监督处理器226的一项操作是管理与ar系统另一设备的无线通信,例如,通过建立虚拟信道,实现ar系统内设备之间的点对点无线通信。应当理解,可以
使用不同的特征组来实现虚拟信道,其中每组特征包括加密策略、安全密钥对、服务质量等。在一个示例中,一个设备的源处理器向监督处理器请求虚拟信道,监督处理器又与另一个设备的目的地处理器的监督处理器交换虚拟信道的流标识符。为了管理源处理器和目的地处理器之间的应用数据的无线通信,一个或两个监督处理器可以在它们各自的设备内分配一部分共享存储器。
79.如本文所描述,设备间传送的任何应用数据均被分割、排列成特定结构,然后作为片段序列传输。每个片段的结构符合在ar系统内的处理器级/子系统级运行的虚拟信道通信协议。每个片段的特定结构包括报头和有效载荷,使得报头指示用于完成该片段到目的地处理器的无线传送的各种属性。作为示例,每个片段包括通过相应的信道标识符来识别虚拟信道的元数据。基于信道标识符,目的地设备可以识别目的地处理器,然后将片段传送给目的地处理器。因此,本文描述的分段使得能够在ar系统内进行点对点无线通信。
80.在一些示例中,监督处理器224和/或监督处理器226与逻辑单元一起操作,以确保经由适当的虚拟信道将应用数据引导至请求的目的地处理器。可以被称为无线处理机的逻辑单元包括可在处理电路上操作并被配置成执行各种任务的可编程逻辑。作为一个示例,逻辑单元被配置成从监督处理器获得将源处理器连接到所请求的目的地处理器的可用虚拟信道的信道标识符。逻辑单元继续使用该信道标识符来插入片段的报头部分,然后准备该片段以传输到目的地设备。在另一个设备上,对应的逻辑单元接收该片段,提取信道标识符,并将该片段存储在为对应的虚拟信道分配的共享存储器的一部分中。在一个示例中,对应的逻辑单元将片段序列存储到共享存储器的该部分中,其中每个片段存储在对应于该片段在序列中的位置的槽中。对于特定片段,从共享存储器的该部分的开始的对应槽的位置可以对应于该片段从应用有效载荷的开始的适当偏移(例如,按字节数或序列号)。因此,作为另一个优点,片段可以无序地到达目的地设备。在一个示例中,使用片段序列号作为适当的偏移,无线处理机可以在存储器的分配部分中以正确的顺序排列片段。因为目的地处理器此后可以直接从缓冲区中的位置读取片段,所以这种技术可以避免在应用层进一步复制数据。
81.作为又一个优点,根据虚拟信道通信协议传送应用数据的上述逻辑单元或任何处理器均无需遵守或理解任何中间协议。这(部分地)是因为典型的通信协议在物理网络硬件上运行,并且限于识别目的地设备;这种通信协议不识别目的地设备中的特定目的地处理器。相反,虚拟信道通信协议在处理器级粒度上运行。在一个示例中,当源处理器请求传输应用数据的有效载荷时,无线处理机将应用有效载荷转换成多个片段,并生成用于与每个片段耦合的报头信息。示例报头信息可以提供虚拟信道的信道标识符、片段大小、片段序列号等。报头信息还可以提供源处理器标识符和目的地处理器标识符,但是这种信息对于信道标识符来说可能是冗余的。无线处理机向物理网络硬件的网络接口提供多个片段,物理网络硬件(又)将多个片段转换成分组(其是更大的单元),然后传输分组。一旦通过接收所有片段完全形成了应用有效载荷,目的地设备处的相应无线处理机就使用处理器间通信将应用有效载荷传送到目的地处理器。
82.图2b是描绘根据本公开中描述的技术的另一示例hmd 112的图示。如图2b所示,hmd 112可以采取眼镜的形式。图2a的hmd 112可以是图1a和图1b的hmd 112中的任一个的示例。hmd 112可以是人工现实系统(例如图1a、图1b的人工现实系统10、20)的一部分,或者
可作为被配置为实现本文所描述技术的独立的、移动的人工现实系统操作。
83.在该示例中,hmd 112是包括前框架的眼镜,该前框架包括允许hmd112搁在用户的鼻子上的鼻梁架(bridge)和在用户耳朵上延伸以将hmd112固定到用户的镜腿(temple)(或“臂”)。此外,图2b的hmd 112包括面向内部的电子显示器203a和203b(统称为“电子显示器203”),其被配置为向用户呈现人工现实内容。电子显示器203可以是任何合适的显示技术,例如液晶显示器(lcd)、量子点显示器、点阵显示器、发光二极管(led)显示器、有机发光二极管(oled)显示器、阴极射线管(crt)显示器、电子墨水、或单色、彩色或能够生成视觉输出的任何其他类型的显示器。在图2b所示的示例中,电子显示器203形成立体显示器,用于向用户的每只眼睛提供单独的图像。在一些示例中,当跟踪hmd 112的位置和取向以根据hmd 112和用户的当前视角渲染人工现实内容时,显示器203相对于hmd 112的前框架的已知取向和位置被用作参考系,也称为局部原点。
84.如图2b中进一步所示,在该示例中,hmd 112还包括一个或更多个运动传感器206,例如输出指示hmd 112的当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“imu”)、输出指示hmd 112的位置的数据的gps传感器、输出指示hmd 112与各种对象相距的距离的数据的雷达或声纳、或提供hmd 112或物理环境内的其他对象的位置或取向的指示的其他传感器。此外,hmd 112可以包括集成的图像捕获设备138a和138b(统称为“图像捕获设备138”),例如摄像机、激光扫描仪、多普勒雷达扫描仪、深度扫描仪等,其被配置为输出表示物理环境的图像数据。hmd 112包括内部控制单元210,该内部控制单元可包括内部电源和一个或更多个印刷电路板,该印刷电路板具有一个或更多个处理器、存储器和硬件以提供用于执行可编程操作的操作环境,从而处理感测数据并在显示器203上呈现人工现实内容。
85.类似于图2a所示的示例,hmd 112包括管理hmd 112的部件(例如hmd 112的soc的处理器)的监督处理器224。外围设备136包括管理外围设备136的部件(例如外围设备136的soc的处理器)的监督处理器226。监督处理器224和监督处理器226可以建立虚拟信道,用于hmd112的处理器与外围设备136的处理器交换数据。监督处理器224可以利用加密/解密处理器在hmd 112和外围设备136之间建立安全虚拟信道。
86.图3是示出根据本公开中描述的技术的图1a、图1b的多设备人工现实系统10、20的控制台106、hmd 112和外围设备136的示例实现的框图。在图3的示例中,控制台106基于感测的数据(例如从hmd 112和/或外部传感器接收的运动数据和图像数据)来为hmd 112执行姿势跟踪、手势检测以及用户界面和虚拟表面生成和渲染。
87.在该示例中,hmd 112包括一个或更多个处理器302和存储器304,在一些示例中,处理器302和存储器304提供用于执行操作系统305的计算机平台,操作系统305可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。反过来,操作系统305提供用于执行一个或更多个软件部件307(包括应用引擎340)的多任务操作环境。如关于图2a和图2b的示例所讨论的,处理器302耦合到电子显示器203、运动传感器206和图像捕获设备138。在一些示例中,处理器302和存储器304可以是单独的、分立的部件。在其他示例中,存储器304可以是与单个集成电路内的处理器302并列放置的片上存储器。如关于图2a和2b的示例所讨论的,当与设备(例如,外围设备136)通信时,监督处理器224为hmd 112提供虚拟信道。
88.通常,控制台106是处理从相机102(图1b)和/或hmd 112的图像捕获设备138(图
1a、图2a、图2b)接收的图像和跟踪信息的计算设备,以执行手势检测和用于hmd 112的用户界面和/或虚拟内容生成。在一些示例中,控制台106是单个计算设备,例如工作站、台式计算机、膝上型计算机或游戏系统。在一些示例中,控制台106的至少一部分(例如处理器312和/或存储器314)可以分布在云计算系统、数据中心上或分布在网络上,例如互联网、另一公共或私有通信网络,例如宽带、蜂窝、wi-fi和/或用于在计算系统、服务器和计算设备之间传输数据的其他类型的通信网络。
89.在图3的示例中,控制台106包括一个或更多个处理器312和存储器314,在一些示例中,处理器和存储器提供用于执行操作系统316的计算机平台,操作系统可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。继而,操作系统316提供用于执行一个或更多个软件部件317的多任务操作环境。处理器312耦合到一个或更多个i/o接口315,i/o接口315提供一个或更多个i/o接口,用于与例如键盘、游戏控制器、显示设备、图像捕获设备、hmd、外围设备等的外部设备通信。此外,一个或更多个i/o接口315可以包括一个或更多个有线或无线网络接口控制器(nic),用于与诸如网络104的网络通信。
90.控制台106的软件应用317运行以提供整体人工现实应用。在该示例中,软件应用317包括应用引擎320、渲染引擎322、手势检测器324、姿势跟踪器326和用户界面引擎。
91.通常,应用引擎320包括提供和呈现人工现实应用的功能,该人工现实应用例如是电话会议应用、游戏应用、导航应用、教育应用、培训或模拟应用等。应用引擎320可包括,例如,用于在控制台106上实现人工现实应用的一个或更多个软件包、软件库、硬件驱动器和/或应用程序接口(api)。响应于应用引擎320的控制,渲染引擎322生成3d人工现实内容,以由hmd 112的应用引擎340显示给用户。
92.应用引擎320和渲染引擎322根据参考系的当前姿势信息(通常是由姿势跟踪器326确定的hmd 112的观看视角)构建用于显示给用户110的人工内容。基于当前观看视角,渲染引擎322构建3d、人工现实内容,该人工现实内容在某些情况下可以至少部分地覆盖在用户110的真实世界3d环境上。在该过程期间,姿势跟踪器326对从hmd 112接收的感测数据(例如移动信息和用户命令)以及在一些示例中对来自任何外部传感器90(图1a、图1b)(例如外部相机)的数据进行操作,以捕获真实世界环境内的3d信息,例如用户110的运动和/或相对于用户110的特征跟踪信息。基于所感测的数据,姿势跟踪器326确定hmd 112的参考系的当前姿势,并且根据当前姿势,构建用于经由一个或更多个i/o接口315传送到hmd 112以显示给用户110的人工现实内容。
93.姿势跟踪器326可以确定外围设备136的当前姿势,并且根据当前姿势,触发与任何渲染的虚拟内容相关联的某些功能(例如,将虚拟内容项目放置在虚拟表面上,操纵虚拟内容项目,生成并渲染一个或更多个虚拟标记,生成并渲染激光指示器)。在一些示例中,姿势跟踪器326检测hmd112是否接近对应于虚拟表面(例如,虚拟插接板(pinboard))的物理位置,以触发虚拟内容的渲染。
94.用户界面引擎328被配置成生成用于在人工现实环境中渲染的虚拟用户界面。用户界面引擎328生成虚拟用户界面,以包括一个或更多个虚拟用户界面元素329,例如虚拟绘图界面、可选菜单(例如,下拉菜单)、虚拟按钮、方向键(directional pad)、键盘或其他用户可选用户界面元素、字形、显示元素、内容、用户界面控件等。渲染引擎322被配置为基于外围设备136的当前姿势,在人工现实环境中,在相对于外围设备136在人工现实环境中
112和/或控制台106的用户界面。在其他示例中,某些手势可以与其他动作相关联,例如提供输入、选择虚拟对象(包括虚拟内容项目和/或ui元素)、平移(例如,移动、旋转)虚拟对象、改变(例如,缩放、注释)虚拟对象、制作虚拟标记、启动应用等。
100.作为示例,手势库330可以包括描述例如用户界面激活手势、菜单滚动手势、选择手势、冲压手势、平移手势、旋转手势、绘制手势和/或指向手势的外围设备手势的条目。手势检测器324可以处理来自图像捕获设备138的图像数据,以分析外围设备136和/或用户的手的构形、位置、运动和/或取向,从而识别可以由用户相对于外围设备136来执行的用户界面手势、选择手势、冲压手势、平移手势、旋转手势、绘制手势、指向手势等。例如,渲染引擎322可以基于手势检测器324检测到正在执行的用户界面手势以及姿势跟踪器326检测到hmd 112接近对应于虚拟插接板的虚拟位置的物理位置来渲染插接板用户界面。用户界面引擎328可以定义显示的菜单,并且可以控制响应于由选择手势引起的选择而执行的动作。
101.在图3中所示的示例中,外围设备136包括一个或更多个处理器346和存储器344,在一些示例中,该处理器和存储器提供用于执行操作系统342的计算机平台,该操作系统可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。继而,操作系统346提供用于执行一个或更多个软件部件的多任务操作环境。在一些示例中,外围设备136包括一个或更多个存在敏感表面220(例如,使用电容、导电、电阻、声学和/或其他技术来检测触摸和/或悬停输入的一个或更多个表面)。在一个或更多个方面,外围设备136可以被配置成检测存在敏感表面220处的触摸和/或悬停输入,处理该输入(例如,在处理器346处处理),并将触摸和/或悬停输入和关于该输入的信息(包括关于该输入的位置信息)传送到控制台106和/或hmd 112。如参考图2a的示例所讨论的,存在敏感表面220能够包括触摸屏(例如,电容式触摸屏、电阻式触摸屏、表面声波(saw)触摸屏、红外触摸屏、光学成像触摸屏、声脉冲识别触摸屏或任何其他触摸屏)。如图3中进一步所示,在该示例中,外围设备136还包括一个或更多个运动传感器348,例如输出指示外围设备136的当前加速度的数据的一个或更多个加速度计(也称为imu)、输出指示外围设备的位置或定位的数据的gps传感器、输出指示外围设备136与各种对象(例如,与墙壁或其他表面)相距的距离的数据的雷达或声纳、或提供外围设备或物理环境内的其他对象的位置、定位和/或取向的指示的其他传感器。在一些示例中,处理器346耦合到存在敏感表面220和运动传感器246。在一些示例中,处理器346和存储器344可以是单独的、分立的部件。在其他示例中,存储器344可以是与单个集成电路内的处理器346并列放置的片上存储器。在一个或更多个方面,外围设备136可以与hmd共存,并且在一些示例中,在虚拟环境中作为hmd的辅助输入/输出设备操作。在一些示例中,外围设备136可以作为人工现实协同处理设备来操作,hmd的一些功能被卸载到该人工现实协同处理设备。在一个或更多个方面,外围设备136可以是智能手机、平板电脑或其他手持设备。
102.在一些示例中,处理器302、312、346中的每一个可包括多核处理器、控制器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、或等效的离散或集成逻辑电路中的任何一个或更多个。存储器304、314、344可包括用于存储数据和可执行软件指令的任何形式的存储器,例如随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电子可擦除可编程只读存储器(eeprom)和闪存存储器。
103.根据本文描述的技术,图3的多设备人工现实系统可在多个设备相互配对时实现
它们之间的无线通信。如关于图2a和图2b的示例所讨论的,外围设备136可以包括管理外围设备136的部件(例如外围设备136的soc的处理器)的监督处理器226。例如,监督处理器226可以被配置为当与ar系统的被结合使用来执行一个或更多个人工现实应用的其他设备(例如,hmd 112和/或控制台106)无线通信时,为外围设备136提供虚拟信道。类似地,hmd 112可以包括管理hmd 112的部件(例如hmd 112的soc的处理器)的监督处理器224。例如,监督处理器224可以被配置为当与ar系统的其他设备(例如,外围设备136和/或控制台106)无线通信时,为hmd 112提供虚拟信道。控制台106还可以包括实现本文描述的技术的监督处理器,以便为hmd 112、外围设备136和ar系统的其他设备提供无线通信。
104.在一些示例中,由监督处理器224或监督处理器226提供的每个虚拟信道与不同的处理器对相关联,该处理器对包括选自hmd 112的处理器302或外围设备136的处理器346的源处理器和选自hmd 112的处理器302或外围设备136的处理器346的目的地处理器。
105.在至少一个实例中,监督处理器224利用被称为无线处理机350a的部件,为成对的处理器302和处理器346或成对的处理器302和处理器312之间的无线通信建立虚拟信道。类似地,外围设备136的监督处理器226利用被称为无线处理机350b的部件为成对的处理器346和处理器302或成对的处理器346和处理器312之间的无线通信建立虚拟信道。
106.无线处理机350a和无线处理机350b均实现虚拟信道通信协议,允许在上述处理器对之间交换应用数据。如本文所描述,虚拟信道通信协议允许hmd 112和外围设备136的联网部件(包括无线处理机350a和无线处理机350b)在从源处理器和目的地处理器传送分组时绕过其他联网协议工作。这些联网协议可以是应用层和物理层之间的中间联网协议。以这种方式,hmd 112和外围设备136都不必解析这些中间联网协议的信息来在源处理器和目的地处理器之间正确地传送数据。
107.图4是描绘根据本公开中描述的技术的,由图1a、图1b的人工现实系统的hmd 112执行的手势检测和虚拟表面生成的示例的框图。
108.在这个示例中,类似于图3,hmd 112包括一个或更多个处理器302和存储器304,在一些示例中,处理器302和存储器304提供用于执行操作系统305的计算机平台,操作系统305可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。继而,操作系统305提供用于执行一个或更多个软件部件417的多任务操作环境。此外,一个或更多个处理器302耦合到电子显示器203、运动传感器206和图像捕获设备138。
109.在图4的示例中,软件部件417操作以提供整体人工现实应用。在该示例中,软件部件417包括应用引擎440、渲染引擎422、手势检测器424、姿势跟踪器426和用户界面引擎428。在各种示例中,软件部件417类似于图3的控制台106的对应部件(例如,应用引擎320、渲染引擎322、手势检测器324、姿势跟踪器326和用户界面引擎328)来操作,以构建覆盖在人工内容上或作为人工内容的一部分的虚拟用户界面,以显示给用户110。
110.类似于关于图3描述的示例,基于来自图像捕获设备138或102中的任何一个、外围设备136的存在敏感表面或其他传感器设备的感测数据,手势检测器424分析外围设备136和/或用户对象(例如,手、手臂、手腕、手指、手掌、拇指)的跟踪的运动、构形、位置和/或取向,以识别由用户110执行的一个或更多个手势。
111.更具体地,手势检测器424可以分析由hmd 112的图像捕获设备138和/或传感器90以及外部相机102捕获的图像数据中识别的对象,以识别外围设备136和/或用户110的手
和/或手臂,并且跟踪外围设备136、手和/或手臂相对于hmd 112的移动,以识别由用户110执行的手势。虚拟表面应用生成虚拟表面作为要向用户110显示的人工现实内容的一部分,例如覆盖在其上,和/或基于手势检测器424检测到的用户110的一个或更多个手势或手势组合来执行动作。手势检测器424可以分析由hmd 112的图像捕获设备138和/或传感器90以及外部相机102捕获的图像数据中识别的对象,以识别外围设备136和/或用户110的手和/或手臂,并且跟踪外围设备136、手和/或手臂相对于hmd 112的移动,以识别由用户110执行的手势。在一些示例中,手势检测器424可以基于捕获的图像数据来跟踪外围设备136、手、手指和/或手臂的移动,包括位置和取向的改变,并将对象的运动矢量与手势库430中的一个或更多个条目进行比较,以检测用户110执行的手势或手势组合。在一些示例中,手势检测器424可以接收由外围设备的存在敏感表面检测到的用户输入,并且处理用户输入以检测用户110相对于外围设备136执行的一个或更多个手势。手势库430类似于图3的手势库330。手势检测器424的一些或全部功能可以由外围设备136执行。
112.如关于图2a、图2b和图3的示例所述,hmd 112可包括监督处理器224,以管理hmd 112的部件,例如hmd 112的处理器302。例如,监督处理器224可以被配置成在与外围设备136无线通信时为hmd 112提供虚拟信道。类似地,外围设备136可以包括监督处理器226来管理外围设备136的部件。例如,监督处理器224可以被配置成在与hmd 112无线通信时为外围设备136提供虚拟信道。
113.监督处理器224可在存储器304中存储用于维护虚拟信道的各种信息,例如映射参与无线通信的源处理器和目的地处理器的信道标识符。处理器302还可以包括处理电路,用于执行被配置为在物理通信链路402上建立用于无线通信的虚拟信道的无线处理机350a中的逻辑。为了说明,处理器302中的(源)处理器可以向外围设备136中的(目的地)处理器请求示例虚拟信道;并且无线处理机350a又可以存储建立虚拟信道的信息,包括处理器302中的该处理器和外围设备136中的处理器的标识符。当外围设备136接收到具有这些标识符的分组时,运行在外围设备136中的无线处理机350b例如通过记录上述标识符和与示例虚拟信道相关联的任何其他信息来完成示例虚拟信道的建立,该示例虚拟信道将处理器302中的该处理器与外围设备136中的处理器通信地耦合。无线处理机350b将分组存储在分配给示例虚拟信道的存储器部分中。类似地,当hmd 112在同一示例虚拟信道上接收分组时,无线处理机350a将接收到的分组存储在被分配给该示例虚拟信道的存储器部分中。
114.图5a是示出多设备人工现实系统500的分布式架构的示例实现的框图。在该示例中,根据本公开中描述的技术,使用一个或更多个片上系统(soc)集成电路来实现一个或更多个设备(例如,hmd 112和外围设备136)。hmd 112可以是图1a-图4的hmd 112中的任何一个的示例。hmd112可以是人工现实系统(例如图1a、图1b的人工现实系统10、20)的一部分,或者可以作为被配置为实现本文所描述技术的独立的、移动的人工现实系统操作。
115.在该示例中,hmd 112包括监督处理器224、soc 530a

530m(统称为“hmd soc 530”)、非易失性存储器534、片上网络(noc)536和处理器间通信(ipc)单元538。ipc单元538包括互斥锁寄存器(mutex register)、处理电路和/或门铃寄存器。一般来说,soc 530表示以分布式架构布置并被配置为为人工现实应用提供操作环境的专用集成电路的集合。作为示例,soc集成电路可以包括作为协同应用处理器、传感器聚合器、加密/解密引擎、安全处理器、手/眼/深度跟踪和姿势计算元件、视频编码和渲染引擎、显示控制器和通信控制部件
操作的专用功能块。图5b示出了一个更详细的示例。类似地,外围设备136包括noc 536和ipc单元538。
116.在图5a的示例中,当与用于执行一个或更多个人工现实应用的其他设备(例如,外围设备136)进行无线通信时,hmd 112的监督处理器224为hmd提供虚拟信道。如关于图2a和图2b的示例所讨论的,当hmd 112中的子系统的源处理器要与外围设备136中的子系统的目的地处理器进行无线通信时,监督处理器224与监督处理器226协调以建立虚拟信道,从而能够在物理无线通信链路502上进行这种无线通信。
117.如本文所述,监督处理器224和/或监督处理器226可通过在共享存储器中分配用于存储通信链路502上源处理器和目的地处理器之间的无线通信的存储空间来建立虚拟信道。监督处理器224和/或监督处理器226还可以定义示例虚拟信道的各种属性,例如存储空间大小(例如,按字节数)、存储空间位置(例如,按字节偏移)、信道标识符、用于加密的安全密钥等。示例虚拟信道的其他属性可以包括源处理器和目的地处理器的标识符。
118.外围设备136包括soc 510a

510n(统称为“外围设备soc 510”)、监督处理器226和非易失性存储器514。soc 510可以各自被配置为支持人工现实应用,例如作为协同应用处理器、传感器聚合器、显示控制器等操作的soc。类似于监督处理器224,监督处理器226建立虚拟信道,用于在外围设备136中的子系统的源处理器和hmd 112中的子系统的目的地处理器之间实现低延迟无线通信。
119.图5b是示出多设备人工现实系统的分布式架构的更详细示例实现的框图,其中一个或更多个设备(例如,外围设备136和hmd 112)使用每个设备内的一个或更多个soc集成电路实现。如所述,根据本公开中描述的技术,外围设备136和hmd 112被构造成能够通过无线通信链路在处理器对之间进行安全的无线通信。
120.一般来说,图5b所示的soc代表以分布式架构排列的专用集成电路的集合,其中每个soc集成电路包括被配置为提供人工现实应用的操作环境的各种专用功能块。图5b仅仅是soc集成电路的一个示例布置。多设备人工现实系统的分布式架构可以包括soc集成电路的任何集合和/或布置。
121.soc 510和530中每一个的图示部件,例如跟踪模块540、显示处理器552、协同处理器582等,可代表相应soc内的不同子系统,这些子系统经由noc在soc内相互通信,并经由根据本文所述技术建立的虚拟信道与其他soc上的子系统通信。每个这样的子系统可以包括被配置为执行子系统的指令的处理器。如果soc 510a的第一子系统的处理器要向第二子系统soc 530a中的处理器发送数据,例如,监督处理器224和226合作建立第一源子系统和第二目的地子系统之间的点对点无线通信的虚拟信道。
122.在一些示例中,外围设备136和hmd 112均包括分别为监督处理器226和监督处理器224形式的soc管理器。在这个示例中,hmd 112的soc 530a包括功能块,包括无线处理机350b、跟踪570、加密/解密580、协同处理器582和接口584。跟踪570为眼睛跟踪572(“眼睛572”)、手跟踪574(“手574”)、深度跟踪576(“深度576”)和/或同时定位和映射(slam)578(“slam 578”)提供功能块。例如,hmd 112可以接收来自输出指示hmd 112当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“imu”)、输出指示hmd 112位置的数据的gps传感器、输出指示hmd 112与各种对象的距离的数据的雷达或声纳,或提供hmd 112或物理环境内其他对象的位置或取向的指示的其他传感器的输入。hmd 112还可以从一个或
更多个图像捕获设备588a-588n(统称为“图像捕获设备588”)接收图像数据。图像捕获设备可以包括摄像机、激光扫描仪、多普勒雷达扫描仪、深度扫描仪等,其被配置为输出表示物理环境的图像数据。更具体地,图像捕获设备捕获表示在图像捕获设备的视场内的物理环境中的对象(包括外围设备136和/或手)的图像数据,图像捕获设备的视场通常对应于hmd 112的视角。基于所感测的数据和/或图像数据,跟踪570确定例如hmd 112的参考系的当前姿势,并且根据当前姿势,渲染人工现实内容。
123.显示处理器552包括一个或更多个处理器,例如视频处理单元、图形处理单元、编码器和/或解码器和/或其他,用于将人工现实内容渲染到hmd 112。
124.接口554包括一个或更多个接口,用于连接到soc 510a的功能块。作为一个示例,接口584可以包括外围组件互连快速(pcie)插槽。soc 510a可以使用接口584与soc 510b连接。soc 510a可以使用接口584来与一个或更多个通信设备(例如,无线电发射机)连接,以便与其他设备(例如,hmd 112)进行通信。
125.soc 510b包括协同应用处理器560和应用处理器562。在该示例中,协同应用处理器560包括各种处理器,例如视觉处理单元(vpu)、图形处理单元(gpu)和/或中央处理单元(cpu)。应用处理器562可以包括用于执行一个或更多个人工现实应用的处理单元,以生成并将例如虚拟用户界面渲染到外围设备136的表面和/或检测用户相对于外围设备136执行的手势。
126.加密/解密558加密传送到hmd 112的输出数据,并解密从hmd 112传送的输入数据。至少一些输出数据和输入数据可以在由无线处理机350a和监督处理器226建立的虚拟信道上无线传送。加密/解密558可以支持对称密钥加密,以使用会话密钥(例如,秘密对称密钥)来加密/解密数据。例如,响应于在无线信道中从hmd 112的soc 530接收到用第一会话密钥(s
k1
)加密的数据,加密/解密558使用该第一会话密钥(s
k1
)解密数据。加密/解密558用第二会话密钥(s
k2
)加密在soc 510的处理器和soc530的处理器之间传送的数据,以在虚拟信道上与hmd 112安全地通信。响应于接收到用第二会话密钥(s
k2
)加密的数据,加密/解密558使用第二会话密钥(s
k2
)解密加密的数据。在一些示例中,hmd 112可以通过用私钥加密数据的散列来对加密数据进行数字签名。在这些示例中,加密/解密558使用服务器公钥来验证签名,并验证数据的真实性和完整性(例如,通过经由与hmd 112相同的散列算法来运行数据)。
127.加密/解密580是加密传送到外围设备136的输出数据和解密从外围设备136传送的输入数据的功能块。至少一些输出数据和输入数据可以在由无线处理机350b和监督处理器224建立的虚拟信道上无线地传送。加密/解密580可以支持对称密钥加密,以用会话密钥(例如,秘密对称密钥)加密/解密数据。例如,当经由虚拟信道从hmd 112向外围设备136的soc530a

530c发送数据时,加密/解密580用第一会话密钥(s
k1
)加密数据,以便安全地(无线地)传送到外围设备136。加密/解密580还用公钥加密数据,以经由无线信道将数据安全地传送到外围设备136。响应于从外围设备136接收到用第二会话密钥(s
k2
)加密的数据,加密/解密580使用第二会话密钥(s
k2
)解密加密的数据。在一些示例中,外围设备136可以通过用私钥加密数据的散列(hash)来对加密数据进行数字签名。在这些示例中,加密/解密580使用服务器公钥来验证签名,并验证数据的真实性和完整性(例如,通过经由与外围设备136相同的散列算法来运行数据)。
128.协同应用处理器582包括各种处理器,例如视频处理单元、图形处理单元、数字信号处理器、编码器和/或解码器和/或其他。
129.接口584是包括一个或更多个接口的功能块,用于连接到soc 530a的功能块。作为一个示例,接口584可以包括外围组件互连快速(pcie)插槽。soc 530a可以使用接口584与soc 530b、530c连接。soc 530a可以使用接口584与通信设备(例如,无线电发射机)连接,用于与其他设备(例如,外围设备136)通信。
130.如关于图5a的示例所讨论的,当与用于执行一个或更多个人工现实应用的设备(例如,外围设备136)通信时,监督处理器226提供虚拟信道,以实现hmd 112的无线通信。类似地,当与用于执行一个或更多个人工现实应用的设备(例如,hmd 112)通信时,监督处理器224提供虚拟信道以实现外围设备136的无线通信。监督处理器224和226向它们各自的无线处理机350a-350b提供虚拟信道信息,包括虚拟信道标识符以及每个虚拟信道在存储器中的分配部分的大小和位置属性。例如,当外围设备136接收分组形式的无线通信时,无线处理机350a中的第一处理器从这样的分组中提取包括应用有效载荷的多个片段,并从片段报头中识别适当的虚拟信道。无线处理机350a中的第二处理器在存储器中识别分配给适当虚拟信道的部分。无线处理机350a中的第二处理器在存储器的分配部分中存储以序列号顺序排列的多个片段。应当理解,当接收到分组形式的无线通信时,hmd 112中的无线处理机350b以与无线处理机350a类似的方式操作。
131.soc 530b和530c各自表示用于在相应的显示器例如显示器586a、586b(统称为“显示器586”)上输出人工现实内容的显示控制器。在该示例中,soc 530b可以包括用于显示器568a的显示控制器,以向用户的左眼587a输出人工现实内容。例如,soc 530b包括解密块592a、解码器块594a、显示控制器596a和/或用于在显示器586a上输出人工现实内容的像素驱动器598a。类似地,soc 530c可以包括用于显示器568b的显示控制器,以向用户的右眼587b输出人工现实内容。例如,soc 530c包括解密592b、解码器594b、显示控制器596b和/或像素驱动器598b,用于生成和在显示器586b上输出人工现实内容。显示器568可以包括发光二极管(led)显示器、有机led(oled)、量子点led(qled)、电子纸(电子墨水)显示器、液晶显示器(lcd)或用于显示ar内容的其他类型的显示器。
132.外围设备136包括被配置为支持人工现实应用的soc 510a和510b。在这个示例中,soc 510a包括功能块,包括无线处理机350a、跟踪540、加密/解密558、显示处理器552和接口554。跟踪540是提供眼睛跟踪542(“眼睛542”)、手跟踪544(“手544”)、深度跟踪546(“深度546”)和/或同时定位和映射(slam)548(“slam 548”)的功能块。例如,外围设备136可以从输出指示外围设备136的当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“imu”)、输出指示外围设备136的位置的数据的gps传感器、输出指示外围设备136与各种对象的距离的数据的雷达或声纳、或者提供外围设备136或物理环境内的其他对象的位置或取向的指示的其他传感器接收输入。在一些示例中,外围设备136还可以从一个或更多个图像捕获设备接收图像数据,所述图像捕获设备例如是摄像机、激光扫描仪、多普勒雷达扫描仪、深度扫描仪等,其被配置为输出表示物理环境的图像数据。基于所感测的数据和/或图像数据,跟踪块540确定例如外围设备136的参考系的当前姿势,并且根据当前姿势,将人工现实内容渲染到hmd 112。
133.图6是示出根据本公开中描述的技术的多设备人工现实系统中的片上系统(soc)
的示例实现的部件的框图。如本文针对图5a-5b所描述,hmd112和外围设备136内的soc 510a、530a分别利用监督处理器来提供虚拟信道,以实现低延迟无线通信。
134.尽管图6中示出了soc 510a,但可为hmd 112中的soc 530a实现相同或相似的部件集。在一个示例中,无线处理机350a包括包含第一处理器和第二处理器的处理电路,而无线处理机的另一个示例包括无线微控制器单元(wmcu)。soc 510a还包括存储器602、直接存储器存取(dma)单元604、子系统610a-b和防火墙612。应当理解,一个或更多个处理器、逻辑和(可能的)其他部件可以形成用于生成和/或消费应用数据的示例子系统。soc 510a的上述部件通过共享总线耦合到pcie接口606。soc 510a内的整个连接结构(各种部件通过该连接结构直接或间接地连接到共享总线)可以包括片上网络(noc)连接、另一共享总线、分层互连结构和/或其他类型的连接。pcie接口606通过pcie总线耦合到基带dma单元608。尽管图6中所示的示例实现合并了pcie总线和pcie接口606,但是在与本公开一致的其他示例中,soc 510a可以合并其他类型的连接基础设施,例如通用串行总线(usb
tm
)连接、外围组件互连(pci)连接或许多其他类型。
135.在一个示例中,外围设备136的子系统610a中的源处理器希望与多设备人工现实系统的另一设备中的对应子系统中的目的地处理器进行无线通信。监督处理器224响应于源处理器,通过分配共享存储器600的一部分用于存储经由虚拟信道交换的任何数据并产生用于指定这种数据的信道标识符,为这种无线通信建立虚拟信道。监督处理器224可以或可以不将虚拟信道标识符传送给另一设备上的对应监督处理器。
136.监督处理器226与无线处理机350a协作,生成用于存储各种属性的报头信息,例如虚拟信道标识符。根据在多设备人工现实系统中有效的虚拟信道通信协议,报头信息将被插入到称为片段的数据结构中。该片段的结构包括用于存储应用数据的有效载荷部分(即,应用有效载荷)。
137.如本文所述,无线处理机350a包括可在处理电路上运行的逻辑,该逻辑被配置为在进程间通信中将多个片段传送至另一设备。无线处理机350a包括还被配置为处理经由虚拟信道从另一设备接收的进程间通信的逻辑,该进程间通信包括另一应用有效载荷的一个或更多个片段。
138.在一个示例中,无线处理机350a确定片段中的报头信息,并提取虚拟信道的信道标识符。使用信道标识符,无线处理机350a识别共享存储器600的一部分,该部分被分配用于存储虚拟信道的片段。无线处理机350a与监督处理器226协作,将每个接收到的片段存储在共享存储器600的已分配部分的适当槽中。在一个示例中,适当的槽的位置对应于应用有效载荷中的接收片段的位置(例如,字节的偏移或序列号)。在另一个示例中,可以随机选择适当的槽。
139.图7是描绘根据本公开中描述的技术的,在多设备人工现实系统中的设备之间传送的应用有效载荷的示例片段的图示。如图7所示,示例片段被排列在分组中。示例片段中的报头信息将一个或更多个属性引入分组。
140.示例分组710包括报头部分711和包含片段713的数据部分712。替代地,如果空间允许,示例分组710可以包括多个片段。
141.片段713包括片段报头715和片段有效载荷716。例如,片段713的片段报头715包括作为属性的源标识符715a、目的地标识符715b、类型715c、流标识符715d、长度715e和序列
号715f。
142.在一个示例中,类型715c有两种可能的类型属性:非分段和分段。示例分组710示出了分段类型,其中应用有效载荷超过了大小限制,并且将被分段成至少两个片段。对于一对源处理器和目的地处理器,在一个系统间隔中(以及跨多个系统间隔)可以有多个流。流标识符715d中的标识符值由计算设备的无线处理机维护,并且对于每个源请求增加1。
143.对于每个流,无线处理机分配存储器缓冲区,并在长度属性715e中包括长度。目的地设备处的相应无线处理机使用长度属性来分配具有适当大小的缓冲区。对于每个存储器缓冲区,序列号属性可以是示例分组710中的片段713相对于存储器缓冲区的字节偏移。相应的无线处理机使用序列号属性715f来编程示例分组710的正确地址。假设存储器缓冲区被分配在地址fp,存储器缓冲区中用于存储片段的地址被计算为fp 序列号。源标识符和目的地标识符属性对应于在多设备系统的两个设备之间具有虚拟信道的处理器对。作为序列号属性的替代,可以实现绝对地址。
144.在某些情况下,通过基于源id 715a、目的地id 715b、流id 715d元组(tuple)在目的地设备的存储器内分配缓冲区,目的地无线处理机可确保虚拟信道的隔离和安全的目的地缓冲区。
145.图8是示出根据本公开的一种或更多种技术的监督处理器的示例操作的流程图。参考图5a-5c和图6的人工现实系统500来描述图8。然而,图8的技术可以由人工现实系统500的不同部件或者由附加或替代设备来执行。
146.监督处理器(例如,监督处理器224、226)在第一设备和第二设备之间的物理无线信道上建立多个虚拟信道(800)。多个虚拟信道中的每个虚拟信道与第一设备(例如,外围设备136)和第二设备(例如,hmd 112)的多个处理器中的不同的源处理器和目的地处理器对相关联。每对处理器都分配了一部分存储器来存储应用有效载荷。对于示例虚拟信道,包括第一设备(或第二设备)中的处理电路(例如,应用处理器562)的部件(例如,soc 510b)可以作为示例源处理器、示例目的地处理器或两者来操作。
147.监督处理器使用虚拟信道中的相应的虚拟信道处理在第一设备和第二设备中的源处理器和目的地处理器对之间传送的应用数据(802)。本文描述的应用数据指的是在第一设备和第二设备之间交换的应用有效载荷。虚拟信道的示例性源处理器和目的地处理器对中的示例处理器(例如,应用处理器562)可以通过第一设备处理由第二设备在虚拟信道上传送的应用数据的一部分。在另一示例中,示例处理器(例如,应用处理器562)可以通过第一设备在虚拟信道上将应用数据的另一部分传送给第二设备。
148.如本文所述,人工现实系统500的外围设备136和hmd 112均可包括被配置为支持人工现实应用的一个或更多个片上系统(soc)集成电路,例如作为协同应用处理器、传感器聚合器、显示控制器等操作的soc。当外围设备136和hmd 112中的各个soc传送应用数据时,外围设备136和/或hmd 112上的监督处理器在soc可以通过其进行无线通信的物理无线信道(例如,频率信道)上建立虚拟信道。监督处理器使用外围设备136和/或hmd 112中的无线处理机350a/350b,以便于建立每个虚拟信道和管理在虚拟信道上交换的任何应用有效载荷。
149.在一个示例中,外围设备136的soc中的处理器经由虚拟信道接收由hmd 112的soc中的另一处理器生成的应用有效载荷片段。无线处理机350b向外围设备136的处理器发出
ipc。作为响应,无线处理机350a读取并处理每个片段。如本文所述,每个片段的结构包括识别虚拟信道和/或hmd 112的子系统中的目的地处理器的报头信息。hmd 112中的无线处理机350b接收片段,并基于报头信息,确定该设备中用于虚拟信道的存储器部分。无线处理机350b基于片段在应用有效载荷中的顺序,将片段插入到其在该存储器部分中的适当位置。
150.图9是示出根据本公开的一种或更多种技术的无线处理机的示例操作的流程图。参考图5a-5c和图6的人工现实系统500来描述图9。然而,图9的技术可以由人工现实系统500的不同部件或者由附加或替代设备来执行。
151.无线处理机代表监督处理器(例如,监督处理器224、226)在第一设备和第二设备之间的物理无线信道(例如,频率信道)上建立虚拟信道(900)。虚拟信道被分配并可用于第一设备(例如,外围设备136)的源处理器和第二设备(例如,hmd 112)的目的地处理器之间的无线通信。第一设备中的片上系统(soc)(例如,soc 510n)可以包括源处理器,和/或第二设备中的另一个soc(例如,soc 530n)可以包括目的地处理器。
152.无线处理机代表监督处理器在第一设备中分配存储器的一部分,用于存储经由虚拟信道传送的应用数据(902)。如本文所述,无线处理机(例如,无线处理机350a、350b)可以是第一设备或第二设备中的soc以及存储器(例如,图6的共享存储器600)的部件。无线处理机可以包括执行逻辑来管理一个或更多个虚拟信道的处理电路(例如,一个或更多个处理器)。存储器可以指与无线处理机在同一soc中的共享存储器。存储器的该部分将用于存储由目的地处理器生成的应用有效载荷的片段。因为无线处理机将存储器的该部分开槽以适合应用有效载荷,所以每个片段对应于该部分存储器中的一个槽,并且被分配对应于该片段在应用有效载荷中的位置的一个序列号。
153.无线处理机在第一设备处接收应用有效载荷的一个或更多个片段(904),并将该一个或更多个片段存储在存储器的该部分中(906)。无线处理机基于分配的序列号确定每个片段的存储器位置。在一些示例中,存储器位置是从存储器的已分配部分的开始的基址的偏移(例如,以字节为单位)。
154.无线处理机修改第二应用有效载荷片段的报头信息(908),并经由虚拟信道向第二设备发送第二应用有效载荷的一个或更多个片段(910)。在一些示例中,无线处理机分配存储器的第二部分,以便存储第二应用有效载荷,并确定片段从第二应用有效载荷开始的字节偏移。无线处理机将字节偏移转换成序列号,并在每个片段中存储与第二应用有效载荷中该片段的字节偏移相对应的适当序列号。
155.图10是示出根据本公开的一种或更多种技术的无线处理机的示例操作的第二流程图。参考图5a-5c和图6的人工现实系统500来描述图8。然而,图8的技术可以由人工现实系统500的不同部件或者由附加或替代设备来执行。
156.无线处理机处理包括应用有效载荷片段的无线通信(1000)。无线通信可以是经由人工现实系统500的第一设备和第二设备之间的物理无线链路传输的数据单元的形式,例如网络分组。数据单元可以被分割成报头部分和封装了片段的数据部分。报头部分被安排成存储描述应用有效载荷片段的属性。报头部分中的属性(也称为报头信息)包括(但不限于)源标识符、目的地标识符、流标识符、(片段)序列号等。
157.无线处理机读取报头信息,并识别用于片段的存储器的一部分(1002)。在报头信息中的属性中,至少一个属性可用于识别存储片段的适当存储器区域。在一些示例中,无线
处理机可以在映射表上执行查找操作,并将源标识符、目的地标识符和/或流标识符转换成存储器地址。应当理解,有多种方式来表示存储器地址,包括指向特定存储器位置的绝对地址或相对于基本存储器位置的相对地址。在任何情况下,上述存储器地址都映射到为存储应用有效载荷而分配的存储器部分。存储器地址还可以映射到对应的槽(例如,字节地址),用于存储应用有效载荷的片段。在其他示例中,存储器地址可以映射到存储器的该部分的第一个槽(即,(0)零字节地址),并且通过添加以字节为单位的序列号属性,无线处理机确定用于存储片段的对应槽。存储器地址可以是指示从存储器缓冲区的起始字节位置递增的字节数的字节地址。
158.无线处理机将片段存储在存储器的该部分的对应槽中(1004)。存储器的该部分可以是跨越起始字节地址和结束字节地址的连续存储器区域。起始字节地址是从soc中的非易失性存储器的开始处递增的字节数。片段的序列号属性对应于从连续存储器区域的起始字节地址的特定字节偏移。无线处理机可以确定对应的槽是否包括足够的存储空间,例如在相邻的字节位置。无线处理机350b基于片段的序列号属性,将剩余的片段插入到它们在存储器的该部分内的适当字节地址。
159.如本文通过各种示例所描述的,本公开的技术可包括人工现实系统或结合人工现实系统来实现。如所描述的,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、混杂现实、或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或其某种组合,且其中任何一个都可以在单个通道中或在多个通道中被呈现(例如向观看者产生三维效果的立体视频)。另外,在一些实施例中,人工现实可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合例如用于在人工现实中创建内容和/或在人工现实中被使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式设备(hmd)、独立的hmd、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。
160.本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合实现。例如,所述技术的各个方面可在一个或更多个处理器内实现,该处理器包括一个或更多个微处理器、dsp、专用集成电路(asic)、现场可编程门阵列(fpga)、或任何其他等效的集成或离散逻辑电路,以及此类部件的任何组合。术语“处理器”或“处理电路”一般可指前述逻辑电路中的任一种(单独或与其他逻辑电路组合),或任何其他等效电路。包括硬件的控制单元也可执行本公开的一种或更多种技术。
161.此类硬件、软件和固件可在相同的设备内或在单独的设备内实现以支持本公开中描述的各种操作和功能。此外,所述单元、模块或部件中的任一个可一起或单独地实现为离散的但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着此类模块或单元必须由单独的硬件或软件部件实现。相反,与一个或更多个模块或单元相关联的功能可以由单独的硬件或软件部件执行,或者集成在公共或单独的硬件或软件部件内。
162.在本公开中描述的技术还可在包含指令的计算机可读介质(例如计算机可读存储
介质)中体现或编码。嵌入或编码在计算机可读存储介质中的指令可以例如在执行指令时致使可编程处理器或其他处理器执行方法。计算机可读存储介质可包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电子可擦除可编程只读存储器(eeprom)、闪存存储器、硬盘、cd-rom、软盘、盒式磁带、磁介质、光学介质或其他计算机可读介质。
163.如本文通过各种示例所描述的,本公开的技术可包括人工现实系统或结合人工现实系统来实现。如所描述的,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、混杂现实、或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或其某种组合,且其中任何一个都可以在单个通道中或在多个通道中被呈现(例如向观看者产生三维效果的立体视频)。另外,在一些实施例中,人工现实可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合例如用于在人工现实中创建内容和/或在人工现实中被使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式设备(hmd)、独立的hmd、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。
再多了解一些

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

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

相关文献