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

使用多表面显示协议传送表面数据的人工现实系统的制作方法

2022-06-12 06:31:50 来源:中国专利 TAG:

使用多表面显示协议传送表面数据的人工现实系统
1.本技术要求2019年11月4日提交的美国临时专利申请第62/930,499号和2020年1月14日提交的美国非临时专利申请第16/742,744号的权益,这两个申请的全部内容通过引用并入本文。
技术领域
2.本公开总体上涉及人工现实系统,例如增强现实、混合现实和/或虚拟现实系统。
3.背景
4.人工现实系统正变得越来越普遍,应用于许多领域,例如计算机游戏、健康和安全、工业和教育。作为几个示例,人工现实系统正在被合并到移动设备、游戏机、个人计算机、电影院和主题公园中。通常,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实、增强现实、混合现实、混杂现实(hybrid reality)、或其某种组合和/或衍生物。
5.典型人工现实系统包括用于渲染和向用户显示内容的一个或更多个设备。作为一个示例,人工现实系统可合并头戴式显示器(hmd),该hmd由用户佩戴并且被配置为向用户输出人工现实内容。人工现实内容可以完全包括由系统生成的内容,或者可以包括与捕获的内容(例如,真实世界视频和/或图像)相结合的生成的内容。在操作期间,用户通常与人工现实系统交互以选择内容、启动应用、配置系统,并且通常体验人工现实环境。
6.概述
7.总的来说,本发明描述了人工现实(ar)系统和技术,其使用被设计用于传输视频数据的通信协议来传送非视频表面数据,以便于当在多设备ar系统内创建人工现实(ar)场景时改变表面数据的处理和显示方式。示例多设备ar系统包括其中外围设备在与一个或更多个头戴式显示器(hmd)配对时作为协同处理ar设备操作的系统。例如,如本文进一步描述的,外围设备和每个hmd可以各自包括一个或更多个片上系统(soc)集成电路(本文中称为“soc”或“soc集成电路”),这些集成电路被共同配置以提供人工现实应用执行环境。
8.包括头戴式显示器(hmd)的人工现实(ar)系统的各种示例,在低功率模式下,使用视频数据通信协议将原始表面(或纹理)数据从ar中央处理片上系统(soc)集成电路中的存储器传送至显示器soc集成电路上的显示缓冲器,如下所述。
9.通常,显示缓冲器由主处理电路控制,显示器从该缓冲器接收待显示的视频数据。因此,显示器需要不断地从缓冲器刷新,因为显示器不在存储器中存储任何视频数据。这需要在活跃的高功率传输模式(有时被称为“视频模式”)下使用视频数据通信协议进行频繁通信。
10.如下所述,ar系统利用了并非所有要显示的表面都在每个视频帧中更新的事实。要显示的一些表面纹理是动画的,并且经常改变。例如,与玩家化身相关联的表面纹理可以具有随着每个视频帧而改变的动画。然而,一些要显示的表面纹理是静态的,不经常改变。例如,与海报或其他装饰相关联的表面纹理在ar场景期间可能不会改变。本公开以两种方式利用了这一点。
11.首先,显示缓冲器位于显示器soc集成电路内,而不是ar中央处理soc集成电路内。这个显示缓冲器是一个双缓冲器。当前ar场景的各种表面纹理存储在显示缓冲器内的特定位置。与表面相关联的纹理指针指向存储器中与第一缓冲器中的纹理相关联的位置或者存储器中与第二缓冲器中的纹理相关联的位置。可以更新存储器中未被指向的位置。纹理指针在纹理更新后切换,以便更新的纹理将出现在下一个视频帧中。
12.其次,ar中央处理soc集成电路不向显示器soc集成电路发送特定表面纹理的更新,除非该表面纹理将在下一个视频帧中更新。由于要传输的数据的减少,ar中央处理soc集成电路使用在传输之间可以被设置为空闲的一种传输模式(有时被称为“命令模式”)以节省功率。在命令模式下,视频数据通信接口的有效载荷相对较小。为了克服这一挑战,ar中央处理soc集成电路将待传输的表面纹理分解成分组(packet),并将这些更小的分组发送到显示器soc集成电路。显示器soc集成电路将分组重组为表面纹理,将表面纹理放置在显示缓冲器中的适当位置,并切换相关联的纹理指针。
13.ar中央处理soc集成电路传输设置帧(setup frame),该设置帧定义ar场景中的表面参数。随后根据这些参数更新表面。另外,ar中央处理soc集成电路维护一个主vsync定时器。在每个新帧的开始,ar中央处理soc集成电路向每个显示器soc集成电路发送vsync更新命令。显示器soc集成电路使用vsync更新命令来调整其内部vsync定时器。然后,ar中央处理soc集成电路发送包含待更新表面的纹理数据的分组。ar中央处理soc集成电路在一帧的纹理的最后一个分组之后发送done命令。每个显示器soc集成电路在接收到done命令后,在下一帧(存储在二级缓冲器中)上更新其用于该表面的基础纹理指针。
14.由于显示缓冲器由显示器soc集成电路控制,因此需要从ar中央处理soc集成电路传输的纹理数据较少。结果,显示视频帧将使用更少的功率。
15.在第一方面,人工现实系统包括第一集成电路和通过通信接口通信地耦合到第一集成电路的至少一个第二集成电路。第一集成电路包括至少一个处理器,该至少一个处理器被配置为:在确定待由第二soc集成电路渲染以供显示的帧的表面纹理数据要被更新时,使用通信接口在一个或更多个更新分组中将该表面纹理数据发送到第二集成电路;以及使用该通信接口向第二集成电路发送指示已经更新了帧的表面纹理数据的命令。第二集成电路包括至少一个显示缓冲器和至少一个处理器,该至少一个处理器被配置为在接收到命令时,设置指向显示缓冲器中存储该帧的表面纹理数据的位置的指针,并且渲染该帧的表面纹理数据以在显示设备上显示。
16.可以有至少两个分组,每个分组可以包括携带表面纹理数据的打包的像素有效载荷的不同部分。
17.第一集成电路可以被配置为通过将填充字节插入到加密数据中来生成打包的像素有效载荷,加密数据可以包括加密报头、加密纹理有效载荷和加密尾部。
18.第一集成电路可以被配置为通过加密显示报头和待显示纹理的压缩纹理数据来生成加密纹理有效载荷,显示报头可以指定显示缓冲器中的位置。
19.显示缓冲器可以是双缓冲器,其中表面纹理数据可以与显示缓冲器内第一存储器位置处的第一缓冲器和显示缓冲器内第二存储器位置处的第二缓冲器相关联。
20.分组可以包括表面纹理数据的一部分和存储器命令。
21.第一集成电路可以仅在第一集成电路接收到表面纹理数据的更新时发送表面纹
理数据。
22.第一集成电路可以向第二集成电路发送定义表面纹理数据的特征的纹理设置分组。
23.表面纹理数据的特征可以包括显示缓冲器中用于存储表面纹理数据的位置。
24.在第二方面,一种用于渲染人工现实场景的方法包括由第一集成电路确定是否要更新待渲染以供显示的多个表面纹理中的一个。该方法还包括,在确定多个表面纹理中的一个要被更新时,使用采用低功率模式的通信接口在一个或更多个更新分组中将相应表面纹理数据发送到第二集成电路,以及使用该通信接口将指示已经更新了帧的相应表面纹理数据的命令发送到第二集成电路。另外,该方法包括,在接收到该命令时,由第二集成电路设置指向显示缓冲器中用于存储更新的表面纹理的表面纹理数据的预定位置的指针,并且由被第二集成电路驱动的显示器渲染该帧的表面纹理数据,用于在显示设备上显示。
25.可以有至少两个分组,每个分组可以包括携带表面纹理数据的打包的像素有效载荷的不同部分。
26.发送相应表面纹理数据可以包括由第一集成电路通过将填充字节插入到加密数据中来生成打包的像素有效载荷,加密数据包括加密报头、加密纹理有效载荷和加密尾部。
27.该方法还可以包括由第一集成电路通过加密指定显示缓冲器中的位置的显示报头和待显示纹理的压缩纹理数据,来生成加密的纹理有效载荷。
28.显示缓冲器可以是双缓冲器,其中表面纹理数据可以与显示缓冲器内第一存储器位置处的第一缓冲器和显示缓冲器内第二存储器位置处的第二缓冲器相关联。
29.分组可以包括表面纹理数据的一部分和存储器命令。
30.在第三方面,一种非暂时性计算机可读介质包括指令,当被执行时,该指令使包括被配置为输出人工现实内容的头戴式显示器(hmd)的人工现实系统的一个或更多个处理器:由第一集成电路确定要被渲染以供显示的多个表面纹理中的一个是否要更新,在确定多个表面纹理中的一个要更新时:使用采用低功率模式的通信接口在一个或更多个更新分组中将相应表面纹理数据发送至第二集成电路;并且使用该通信接口向第二集成电路发送指示已经更新了帧的相应表面纹理数据的命令;在接收到该命令时,由第二集成电路设置指向显示缓冲器中用于存储更新的表面纹理的表面纹理数据的预定位置的指针;以及由被第二集成电路驱动的显示器渲染该帧的表面纹理数据,用于在显示设备上显示。
31.可以有至少两个分组,每个分组可以包括携带表面纹理数据的打包的像素有效载荷的不同部分。
32.为了传输相应表面纹理数据,指令可以使第一集成电路通过将填充字节插入加密数据来生成打包的像素有效载荷,该加密数据可以包括加密报头、加密纹理有效载荷和加密尾部。
33.指令还可以使第一集成电路通过加密指定显示缓冲器中的位置的显示报头和待显示纹理的压缩纹理数据,来生成加密纹理有效载荷。
34.显示缓冲器可以是双缓冲器,其中表面纹理数据可以与显示缓冲器内第一存储器位置处的第一缓冲器和显示缓冲器内第二存储器位置处的第二缓冲器相关联。
35.一个或更多个示例的细节在附图和以下描述中阐述。从说明书和附图以及权利要求中,其他特征、目的和优点将变得明显。
36.附图简述
37.图1a是描绘根据本公开所述技术操作的示例多设备人工现实系统(ar)的示意图。
38.图1b是描绘根据本公开所述技术操作的另一示例多设备ar系统的示意图。
39.图2a是描绘根据本公开所述技术操作的示例头戴式显示器(hmd)和示例外围设备的示意图。
40.图2b是描绘根据本公开所述技术操作的另一示例hmd的示意图。
41.图3是示出根据本公开所述技术操作的图1a和图1b的多设备人工现实系统的控制台、hmd和外围设备的示例实现的框图。
42.图4是描绘根据本公开所述技术操作的图1a和图1b的多设备人工现实系统的hmd和外围设备的示例实现的框图。
43.图5是示出根据本公开所述技术的多设备人工现实系统的分布式架构的更详细示例实现的框图,其中一个或更多个设备(例如,外围设备和hmd)使用每个设备内的一个或更多个片上系统(soc)集成电路实现。
44.图6是hmd的示例通信流水线的示例框图。
45.图7示出了作为图6的通信流水线的一部分生成的分组化消息的结构。
46.图8示出了被生成来更新由hmd显示的表面纹理的纹理更新分组的结构,该纹理更新分组可以通过图6的通信流水线进行传送。
47.图9示出了被生成来提供表面纹理的参数的示例表面设置分组,该表面设置分组可以通过图6的通信流水线进行传送。
48.图10示出了表示已传输了分组化纹理表面的最后一个分组的命令的结构,该命令可以通过图6的通信流水线进行传送。
49.图11示出了用于定义表面纹理帧的帧设置分组的结构,该帧设置分组可以经由图6的通信流水线进行传送。
50.图12示出了用于写入hmd内显示器的存储器或控制寄存器的写分组的结构,该写分组可以通过图6的通信流水线进行传送。
51.图13示出了用于同步hmd内的视频帧的vsync分组的结构,该vsync分组可以通过图6的通信流水线进行传送。
52.图14示出了read分组1400的结构,该read分组可以通过图6的通信流水线进行传送。
53.图15示出了无操作分组的结构,该无操作分组可以通过图6的通信流水线进行传送。
54.图16a、图16b和图16c是中央处理soc和显示器soc之间的图形流水线的框图,该图形流水线结合了图6的通信流水线。
55.图17示出了可以由图16a、图16b和图16c的图形流水线使用的示例加密消息。
56.图18是将表面纹理显示数据传送至包括双缓冲器的显示设备的示例方法的流程图。
57.图19是管理动态表面纹理的示例方法的流程图。
58.图20是更新和显示表面纹理的示例方法的流程图。
59.详细描述
60.图1a是描绘根据本公开所述技术的生成人工现实(ar)场景的示例多设备人工现实系统的示意图。在图1a的示例中,人工现实系统10包括头戴式显示器(hmd)112、外围设备136,并且在一些示例中可以包括一个或更多个外部传感器90和/或控制台106。
61.如图所示,hmd 112通常由用户110佩戴,并且包括用于向用户110呈现人工现实内容122的电子显示器和光学组件。此外,hmd 112包括用于跟踪hmd 112的运动的一个或更多个传感器(例如,加速度计),并且可以包括用于捕获周围物理环境的图像数据的一个或更多个图像捕获设备138(例如,相机、线扫描仪)。尽管图示为头戴式显示器,但是ar系统10可以替代地或附加地包括眼镜或其他显示设备,用于向用户110呈现人工现实内容122。
62.在该示例中,控制台106被示为单个计算设备,例如游戏机、工作站、台式计算机或膝上型计算机。在其他示例中,控制台106可以分布在多个计算设备上,例如分布式计算网络、数据中心或云计算系统。如该示例中所示,控制台106、hmd 112和传感器90可以经由网络104通信耦合,网络104可以是有线或无线网络(例如wi-fi)、网状网络或短程无线通信介质或其组合。尽管在该示例中,hmd 112被示出为与控制台106通信,例如系留(tethered to)到控制台或与控制台进行无线通信,但在一些实现中,hmd 112作为独立的移动人工现实系统进行操作。
63.通常,人工现实系统10使用从真实世界、3d物理环境捕获的信息来渲染人工现实内容122以显示给用户110。在图1a的示例中,用户110观看由在hmd 112和/或控制台106上执行的人工现实应用构建和渲染的人工现实内容122。在一些示例中,人工现实内容122可以包括真实世界图像(例如,手132、外围设备136、墙壁121)和显示在实际和/或定义的表面上的虚拟对象(例如,虚拟内容项目124、126和虚拟用户界面137)的混合,以产生混合现实和/或增强现实。在一些示例中,虚拟内容项目124、126可以被映射(例如,钉住、锁定、放置)到人工现实内容122内的特定位置。虚拟内容项目的位置可以是固定的,例如相对于墙壁121或地球之一。例如,相对于外围设备136或用户,虚拟内容项目的位置可以是可变的。在一些示例中,虚拟内容项目在人工现实内容122内的特定位置与真实世界物理环境内的位置相关联(例如,在物理对象的表面上或者在相对于物理对象定义的表面上)。
64.在该示例中,外围设备136是具有表面的物理真实世界设备,ar系统10在该表面上覆盖虚拟用户界面137。外围设备136可以包括一个或更多个存在敏感(presence-sensitive)表面,用于通过检测触摸或悬停在存在敏感表面的位置上的一个或更多个对象(例如,手指、触笔)的存在来检测用户输入。在一些示例中,外围设备136可以包括输出显示器,其可以是存在敏感的显示器。在一些示例中,外围设备136可以是智能手机、平板电脑、个人数据助理(pda)或其他手持设备。在一些示例中,外围设备136可以是智能手表、智能戒指或其他可佩戴设备。外围设备136也可以是信息亭(kiosk)或其他固定或移动系统的一部分。外围设备136可以包括也可以不包括用于向屏幕输出内容的显示设备。
65.在图1a所示的示例人工现实体验中,虚拟内容项目124、126被映射到墙壁121上的位置。图1a中的示例还示出了虚拟内容项目124仅在人工现实内容122内部分地出现在墙壁121上,说明了该虚拟内容不存在于真实世界的物理环境中。虚拟用户界面137被映射到外围设备136的表面。结果,ar系统10在相对于外围设备136在人工现实环境中的位置被锁定的用户界面位置处渲染虚拟用户界面137,以作为人工现实内容122的一部分在hmd 112处显示。图1a示出了虚拟用户界面137仅在人工现实内容122内出现在外围设备136上,说明了
该虚拟内容不存在于真实世界的物理环境中。
66.人工现实系统10可以响应于确定虚拟内容项目的位置的至少一部分在用户110的视场130中来渲染一个或更多个虚拟内容项目。例如,仅当外围设备136在用户110的视场130内时,人工现实系统10才可以在外围设备136上渲染虚拟用户界面137。
67.在操作期间,人工现实应用通过跟踪和计算参考系(通常是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。
68.人工现实系统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的表示。
69.在操作期间,人工现实系统10在由hmd 112的图像捕获设备138捕获的图像数据内执行对象识别,以识别外围设备136、手132,包括可选地识别用户110的单个手指或拇指,和/或手臂134的全部或部分。此外,人工现实系统10在滑动时间窗口上跟踪外围设备136、手132(可选地包括手的特定手指)和/或手臂134的部分的位置、取向和构形。在一些示例中,外围设备136包括用于跟踪外围设备136的运动或取向的一个或更多个传感器(例如,加速度计)。
70.如上所述,人工现实系统10的多个设备可以在ar环境中协同工作,其中每个设备可以是一个或更多个物理设备内的单独的物理电子设备和/或单独的集成电路(例如,片上系统(soc))。在该示例中,外围设备136在操作上与hmd 112配对,以在ar系统10内联合操作,从而提供人工现实体验。例如,外围设备136和hmd 112可以作为协同处理设备相互通信。
71.根据本公开的技术,人工现实系统10可提供用于生成ar内容的原始表面数据在hmd 112内的不同soc之间的有效传输。另外,人工现实系统10提供了由显示设备内的显示驱动器控制的双缓冲器,以减少为了视频帧更新而传输到显示设备的表面纹理数据。这些方法通过减少数据通信接口活动的时间来延长电池寿命。
72.图1b是描绘根据本公开所述技术操作的另一示例人工现实系统20的示意图。类似于图1a的人工现实系统10,在一些示例中,图1b的人工现实系统20可以相对于多用户人工现实环境内的虚拟表面生成和渲染虚拟内容项目。虚拟表面可以对应于实际表面(例如,至少部分被定义为墙壁或桌子等的平面)或定义的表面(例如,锚定到特定坐标集的空间中定义的平面等)。人工现实系统20使用表面纹理来渲染虚拟内容项目,这些虚拟内容项目被渲染成向用户显现为被附加到或结合到虚拟表面中。在各种示例中,人工现实系统20还可以响应于检测到用户与外围设备136的一个或更多个特定交互,生成并向用户渲染特定虚拟内容项目和/或图形用户界面元素。例如,外围设备136可以充当供用户“登台(stage)”或以其他方式与虚拟表面交互的舞台设备。
73.在图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。
74.每个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通信。
75.以类似于以上关于图1a讨论的示例的方式,人工现实系统20的控制台106和/或hmd 112c生成并渲染包括虚拟内容项目129(例如,gif、照片、应用、直播流、视频、文本、网络浏览器、绘图、动画、3d模型、数据文件的表示(包括二维和三维数据集)或任何其他可见媒体)的虚拟表面,当相对于与虚拟内容项目129相关联的墙壁121定义的表面部分进入hmd 112c的视场130内时,该虚拟内容项目可以覆盖在显示给用户110c的人工现实内容122上。如图1b所示,除了经由hmd 112c的相机138捕获的图像数据之外或作为替代,来自外部相机102的输入数据可用于跟踪和检测外围设备136和/或用户110的手和手臂(例如用户110c的
手132)的特定运动、构形、位置和/或取向,包括手的手指(手指、拇指)的单独和/或组合的移动。
76.在一些方面,人工现实应用可以在控制台106上运行,并且可以利用图像捕获设备102a和102b来分析手132b的构形、位置和/或取向,以识别可以由hmd 112a的用户执行的输入手势。类似地,hmd 112c可以利用图像捕获设备138来分析外围设备136和手132c的构形、位置和/或取向,以输入hmd 112c的用户可以执行的手势。在一些示例中,外围设备136包括用于跟踪外围设备136的运动或取向的一个或更多个传感器(例如,加速度计)。人工现实应用可以响应于这样的手势、运动和取向,以类似于关于参考图1a描述的方式来渲染虚拟内容项目和/或ui元素。
77.图像捕获设备102和138可以捕获可见光谱、红外光谱或其他光谱中的图像。例如,本文描述的用于识别对象、对象姿势和手势的图像处理可以包括处理红外图像、可见光光谱图像等。
78.人工现实系统20的设备可以在ar环境中协同工作。例如,外围设备136与hmd 112c配对,以在ar系统20内联合操作。类似地,控制器114与hmd 112b配对,以在ar系统20内联合操作。外围设备136、hmd 112和控制器114可以各自包括一个或更多个soc集成电路(例如,下面图5的soc集成电路510a和510b),这些soc集成电路被配置为实现用于人工现实应用的操作环境。
79.hmd 112实现图形流水线,该图像流水线对从例如外围设备136和/或控制台106接收的表面纹理数据进行设备内处理。为了在hmd 112的部件之间进行传送,图形流水线将表面纹理和其他图形管理命令分成分组,以传输到由hmd 112的显示设备内的双缓冲器控制的显示缓冲器。这使得能够减少为了视频帧更新而传输到显示设备的表面纹理数据的量。
80.图2a是描绘根据本公开所述技术操作的示例hmd 112和示例外围设备136的示意图。图2a的hmd 112可以是图1a和图1b的hmd 112中的任一个的示例。hmd 112可以是人工现实系统(例如图1a、图1b的人工现实系统10、20)的一部分,或者可作为被配置为实现本文所描述技术的独立的、移动的人工现实系统操作。
81.在该示例中,hmd 112包括前刚性主体和用于将hmd 112固定到用户的带。此外,hmd 112包括面向内部的电子显示器203,该电子显示器被配置为向用户呈现人工现实内容。电子显示器203可以是任何合适的显示技术,例如液晶显示器(lcd)、量子点显示器、点阵显示器、发光二极管(led)显示器、有机发光二极管(oled)显示器、阴极射线管(crt)显示器、电子墨水、或单色、彩色或能够生成视觉输出的任何其他类型的显示器。在一些示例中,电子显示器是用于向用户的每只眼睛提供单独图像的立体显示器。在一些示例中,当跟踪hmd 112的位置和取向以用于根据hmd 112和用户的当前观看视角渲染人工现实内容时,显示器203相对于hmd 112的前刚性主体的已知取向和位置被用作参考系,也被称为局部原点(local origin)。在其他示例中,hmd 112可以采取其他可佩戴的头戴式显示器的形式,例如眼镜或护目镜。
82.如图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上呈现人工现实内容。
83.在一个示例中,控制单元210被配置为基于感测到的数据(例如,由图像捕获设备138和/或102捕获的图像数据、来自gps传感器的位置信息),生成并渲染用于在显示器203上显示的虚拟表面,该虚拟表面包括与图像捕获设备138的视场130a、130b内包含的位置相关联的一个或更多个虚拟内容项目(例如,图1a的虚拟内容项目124、126)。如参考图1a

1b所解释的,虚拟内容项目可以与虚拟表面内的位置相关联,该位置可以与真实世界环境内的物理表面相关联,并且控制单元210可以被配置为响应于确定与虚拟内容(或其部分)相关联的位置在当前视场130a、130b内,渲染虚拟内容项目(或其部分)以在显示器203上显示。在一些示例中,虚拟表面与平面或其他表面(例如,墙壁)上的位置相关联,并且当该虚拟表面内包含的任何虚拟内容项目的部分在视场130a、130b内时,控制单元210将生成并渲染这些部分。
84.在一个示例中,外围设备136的表面220是存在敏感表面,例如使用电容、导电、电阻、声学或其他技术来检测触摸和/或悬停输入的表面。在一些示例中,外围设备136的表面220是触摸屏(例如,电容式触摸屏、电阻式触摸屏、表面声波(saw)触摸屏、红外触摸屏、光学成像触摸屏、声脉冲识别触摸屏或任何其他触摸屏)。在这样的示例中,外围设备136可以在触摸屏220上渲染用户界面或其他虚拟元素(例如,虚拟标记),并且检测触摸屏220上的用户输入(例如,触摸或悬停输入)。在该示例中,外围设备136可以使用无线通信链路(例如,wi-fi、诸如蓝牙的短程无线通信的近场通信)、使用有线通信链路(未示出)或使用其他类型的通信链路,将任何检测到的用户输入传送到hmd 112(和/或图1a的控制台106)。在一些示例中,外围设备可以包括一个或更多个输入设备(例如,按钮、轨迹球、滚轮),用于与虚拟内容交互(例如,选择虚拟ui元素,滚动通过虚拟ui元素)。
85.图2b是描绘根据本公开所述技术的另一示例hmd 112的示意图。如图2b所示,hmd 112可以采取眼镜的形式。图2a的hmd 112可以是图1a和图1b的hmd 112中的任一个的示例。hmd 112可以是人工现实系统(例如图1a、图1b的人工现实系统10、20)的一部分,或者可作为被配置为实现本文所描述技术的独立的、移动的人工现实系统操作。
86.在该示例中,hmd 112是包括前框架的眼镜,该前框架包括允许hmd 112搁在用户的鼻子上的鼻梁架(bridge)和在用户耳朵上延伸以将hmd 112固定到用户的镜腿(temple)(或“臂”)。此外,图2b的hmd 112包括面向内部的电子显示器203a和203b(统称为“电子显示器203”),其被配置为向用户呈现人工现实内容。电子显示器203可以是任何合适的显示技术,例如液晶显示器(lcd)、量子点显示器、点阵显示器、发光二极管(led)显示器、有机发光二极管(oled)显示器、阴极射线管(crt)显示器、电子墨水、或单色、彩色或能够生成视觉输出的任何其他类型的显示器。在图2b所示的示例中,电子显示器203形成立体显示器,用于
向用户的每只眼睛提供单独的图像。在一些示例中,当跟踪hmd 112的位置和取向以根据hmd 112和用户的当前视角渲染人工现实内容时,显示器203相对于hmd 112的前框架的已知取向和位置被用作参考系,也称为局部原点。
87.如图2b中进一步所示,在该示例中,hmd 112还包括一个或更多个运动传感器206,例如输出指示hmd 112的当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“imu”)、输出指示hmd 112的位置的数据的gps传感器、输出指示hmd 112与各种对象相距的距离的数据的雷达或声纳、或提供hmd 112或物理环境内的其他对象的位置或取向的指示的其他传感器。此外,hmd 112可以包括集成的图像捕获设备138a和138b(统称为“图像捕获设备138”),例如摄像机、激光扫描仪、多普勒雷达扫描仪、深度扫描仪等,其被配置为输出表示物理环境的图像数据。hmd 112包括内部控制单元210,该内部控制单元可包括内部电源和一个或更多个印刷电路板,该印刷电路板具有一个或更多个处理器、存储器和硬件以提供用于执行可编程操作的操作环境,从而处理感测数据并在显示器203上呈现人工现实内容。
88.图2a和2b的hmd 112实现图形流水线,该图形流水线对从例如外围设备136和/或控制台106接收的表面纹理数据进行设备内处理。为了在hmd 112的部件之间进行传送,图形流水线将表面纹理和其他图形管理命令分成分组,以传输到由hmd 112的显示设备内的双缓冲器控制的显示缓冲器。这使得能够减少为了视频帧更新而传输到显示设备的表面纹理数据的量。
89.图3是示出根据本公开中描述的技术的图1a、图1b的多设备人工现实系统10、20的控制台106、hmd 112和外围设备136的示例实现的框图。在图3的示例中,控制台106基于感测的数据(例如从hmd 112和/或外部传感器接收的运动数据和图像数据)来为hmd 112执行姿势跟踪、手势检测以及用户界面和虚拟表面生成和渲染。
90.在该示例中,hmd 112包括一个或更多个处理器302和存储器304,在一些示例中,处理器302和存储器304提供用于执行操作系统305的计算机平台,操作系统305可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。反过来,操作系统305提供用于执行一个或更多个软件部件307(包括应用引擎340)的多任务操作环境。如关于图2a和图2b的示例所讨论的,处理器302耦合到电子显示器203、运动传感器206和图像捕获设备138。在一些示例中,处理器302和存储器304可以是单独的、分立的部件。在其他示例中,存储器304可以是与单个集成电路内的处理器302并列放置的片上存储器。
91.通常,控制台106是处理从相机102(图1b)和/或hmd 112的图像捕获设备138(图1a、图2a、图2b)接收的图像和跟踪信息的计算设备,以执行手势检测和用于hmd 112的用户界面和/或虚拟内容生成。在一些示例中,控制台106是单个计算设备,例如工作站、台式计算机、膝上型计算机或游戏系统。在一些示例中,控制台106的至少一部分(例如处理器312和/或存储器314)可以分布在云计算系统、数据中心上或分布在网络上,例如互联网、另一公共或私有通信网络,例如宽带、蜂窝、wi-fi和/或用于在计算系统、服务器和计算设备之间传输数据的其他类型的通信网络。
92.在图3的示例中,控制台106包括一个或更多个处理器312和存储器314,在一些示例中,处理器和存储器提供用于执行操作系统316的计算机平台,操作系统可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。继而,操作系统316提供用于执行一个或更
多个软件部件317的多任务操作环境。处理器312耦合到一个或更多个i/o接口315,i/o接口315提供一个或更多个i/o接口,用于与例如键盘、游戏控制器、显示设备、图像捕获设备、hmd、外围设备等的外部设备通信。此外,一个或更多个i/o接口315可以包括一个或更多个有线或无线网络接口控制器(nic),用于与诸如网络104的网络通信。
93.控制台106的软件应用317操作以提供整体人工现实应用。在该示例中,软件应用317包括应用引擎320、渲染引擎322和用户界面引擎328。
94.通常,应用引擎320包括提供和呈现人工现实应用的功能,该人工现实应用例如是电话会议应用、游戏应用、导航应用、教育应用、培训或模拟应用等。应用引擎320可包括,例如,用于在控制台106上实现人工现实应用的一个或更多个软件包、软件库、硬件驱动器和/或应用程序接口(api)。响应于应用引擎320的控制,渲染引擎322生成3d人工现实内容,以由hmd 112的应用引擎340显示给用户。
95.应用引擎320和渲染引擎322根据参考系的当前姿势信息(通常是由姿势跟踪器326确定的hmd 112的观看视角)构建用于显示给用户110的人工内容。基于当前观看视角,渲染引擎322构建3d、人工现实内容,该人工现实内容在某些情况下可以至少部分地覆盖在用户110的真实世界3d环境上。在该过程期间,姿势跟踪器326对从hmd 112接收的感测数据(例如移动信息和用户命令)以及在一些示例中对来自任何外部传感器90(图1a、图1b)(例如外部相机)的数据进行操作,以捕获真实世界环境内的3d信息,例如用户110的运动和/或相对于用户110的特征跟踪信息。
96.用户界面引擎328被配置成生成用于在人工现实环境中渲染的虚拟用户界面。用户界面引擎328生成虚拟用户界面,以包括一个或更多个虚拟用户界面元素329,例如虚拟绘图界面、可选菜单(例如,下拉菜单)、虚拟按钮、方向键(directional pad)、键盘或其他用户可选用户界面元素、字形、显示元素、内容、用户界面控件等。渲染引擎322被配置为基于外围设备136的当前姿势,在人工现实环境中,在相对于外围设备136在人工现实环境中的位置被锁定的用户界面位置处渲染虚拟用户界面。用户界面位置可以是存在敏感表面220之一的位置,并且渲染引擎322可以缩放、旋转和以其他方式变换虚拟用户界面,以应用投影来匹配存在敏感表面220的姿势、大小和视角,使得虚拟用户界面在人工现实环境中被呈现为覆盖在存在敏感表面220上。用户界面引擎328可以生成部分透明的虚拟用户界面,允许用户看到存在敏感表面220。该透明度可以是可配置的。
97.控制台106可以经由通信信道向hmd 112输出该虚拟用户界面和其他人工现实内容,以在hmd 112显示。渲染引擎322接收外围设备136的姿势信息,以持续更新用户界面位置和姿势,以匹配外围设备136的位置和姿势,例如存在敏感表面220之一的位置和姿势。
98.在图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可以是智能手机、平板电脑或其他手持设备。
99.在一些示例中,处理器302、312、346中的每一个可包括多核处理器、控制器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、或等效的离散或集成逻辑电路中的任何一个或更多个。存储器304、314、344可包括用于存储数据和可执行软件指令的任何形式的存储器,例如随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电子可擦除可编程只读存储器(eeprom)和闪存存储器。
100.图3的hmd 112实现图形流水线,该图形流水线对从例如外围设备136和/或控制台106接收的表面纹理数据进行设备内处理。为了在hmd 112的部件之间(例如,在应用引擎340、存储器304和电子显示器203之间)进行传送,图形流水线将表面纹理和其他图形管理命令分成分组,以传输到由hmd 112的电子显示器203内的双缓冲器控制的显示缓冲器。这使得能够减少为了视频帧更新而传输到显示设备的表面纹理数据的量。
101.图4是描绘根据本公开所述技术操作的图1a和图1b的多设备人工现实系统的hmd 112和外围设备136的示例实现的框图。
102.在这个示例中,类似于图3,hmd 112包括一个或更多个处理器302和存储器304,在一些示例中,处理器302和存储器304提供用于执行操作系统305的计算机平台,操作系统305可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。继而,操作系统305提供用于执行一个或更多个软件部件417的多任务操作环境。此外,一个或更多个处理器302耦合到电子显示器203、运动传感器206和图像捕获设备138。
103.在图4的示例中,软件部件417操作以提供整体人工现实应用。在该示例中,软件应用417包括应用引擎440、渲染引擎422、姿势跟踪器426和用户界面引擎428。在各种示例中,软件部件417类似于图3的控制台106的对应部件(例如,应用引擎320、渲染引擎322、姿势跟踪器326和用户界面引擎328)来操作,以构建用于向用户110显示的人工内容。
104.图4的hmd 112实现图形流水线,该图形流水线对从例如外围设备136和/或控制台106接收的表面纹理数据进行设备内处理。为了在hmd 112的部件之间(例如,在应用引擎340、存储器304和电子显示器203之间)进行传送,图形流水线将表面纹理和其他图形管理命令分成分组,以传输到由hmd 112的电子显示器203内的双缓冲器控制的显示缓冲器。这
使得能够减少为了视频帧更新而传输到显示设备的表面纹理数据的量。
105.图5是示出多设备人工现实系统的分布式架构的示例实现的框图,其中一个或更多个设备(例如,外围设备136和hmd 112)使用每个设备内的一个或更多个soc集成电路实现。如所描述的,外围设备136和hmd 112被架构和配置成使得能够在多设备人工现实系统中的设备之间进行定义虚拟表面的表面数据的高效传送。
106.一般来说,图5所示的soc代表以分布式架构排列的专用集成电路的集合,其中每个soc集成电路包括被配置为提供人工现实应用的操作环境的各种专用功能块。图5仅仅是soc集成电路的一个示例布置。多设备人工现实系统的分布式架构可以包括soc集成电路的任何集合和/或布置。
107.在此示例中,hmd 112的soc 530a(有时被称为“ar中央处理soc”)包括功能块,功能块包括安全处理器224、跟踪570、加密/解密580、显示处理器582、接口584和直接存储器访问(dma)控制器585。跟踪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的参考系的当前姿势,并且根据当前姿势,渲染人工现实内容。
108.加密/解密580是加密传送到外围设备136的输出数据和解密从外围设备136传送的输入数据的功能块。加密/解密580可以支持对称密钥加密,以用会话密钥(例如,秘密对称密钥)加密/解密数据。加密/解密580便于例如外围设备136和头戴式显示器112之间的安全通信。
109.显示处理器582包括各种处理器,例如视频处理单元、图形处理单元、数字信号处理器、编码器和/或解码器和/或其他。
110.接口584是一个功能块,其包括用于连接到ar中央处理soc 530a的功能块的一个或更多个接口。作为一个示例,接口584可以包括外围组件互连快速(pcie)插槽。ar中央处理soc 530a可以使用接口584与soc 530b和530c连接。ar中央处理soc 530a可以使用接口584与通信设备(例如,无线电发射机)连接,用于与其他设备(例如,外围设备136)通信。接口584包括视频数据通信接口,每个视频数据通信接口连接到soc 530b和530c的相应接口。视频数据通信接口包括(i)具有不同时钟速度的不同传输速率(有时对于相对较低的时钟速度被称为“低功率”,对于相对较快的时钟速度被称为“高速度”),以及(ii)视频模式(例如连续刷新模式)和命令模式(例如间歇刷新模式)。在一些示例中,视频数据通信接口在高速命令模式下操作。在命令模式下,视频数据通信接口可以被置于空闲状态,以在传输之间节省功率。通常,在命令模式下可以在消息中传输的数据量小于在视频模式下可以在消息
中传输的数据量。在一些示例中,视频数据通信接口实现由移动工业处理器接口(mipi)联盟指定的显示串行接口(dsi)(有时被称为“mipi dsi”)。
111.dma控制器585向存储器534传输数据和从存储器534传输数据,以使数据可以由不同部件(例如,显示处理器582、加密/解密处理器580等)操作并通过接口584传输。在一些示例中,dma控制器585包括状态机,该状态机基于命令和控制器寄存器中的内容来转换数据。例如,dma控制器585可以将填充字节打包到加密的表面纹理中,以准备将加密的表面纹理分解成分组并由接口585传输。
112.soc 530b和530c(有时被称为“显示器soc”)均代表用于在例如显示器586a、586b(统称为“显示器586”)的相应显示器上输出人工现实内容的显示控制器。在该示例中,显示器soc 530b可以包括用于显示器568a的显示控制器,以向用户的左眼587a输出人工现实内容。例如,显示器soc 530b包括解密块592a、dma控制器593a、解码器块594a、显示缓冲器595a、显示控制器596a和/或用于在显示器586a上输出人工现实内容的像素驱动器598a。类似地,显示器soc 530c可以包括用于显示器568b的显示控制器,以向用户的右眼587b输出人工现实内容。例如,显示器soc 530c包括解密块592b、dma控制器593b、解码器块594b、显示缓冲器595b、显示控制器596b和/或用于在显示器586b上生成和输出人工现实内容的像素驱动器598b。显示器568可以包括发光二极管(led)显示器、有机led(oled)、量子点led(qled)、电子纸(电子墨水)显示器、液晶显示器(lcd)或用于显示ar内容的其他类型的显示器。
113.dma控制器593a和593b(统称为“dma控制器593”)管理视频通信接口以分组形式接收的表面纹理,对表面纹理进行重建、解密,并将其置于显示缓冲器595a和595b中。
114.显示缓冲器595a和595b(统称为“显示缓冲器595”)是位于显示器soc 530b和530c上的存储器电路,其包含将由显示器568渲染的表面纹理数据。显示缓冲器595是双缓冲器,包括在存储器中为ar场景中的每个表面留出的两个位置。对于每个表面,当渲染表面纹理时,使用存储器中的一个位置,并且可以更新存储器中的另一个位置,以改变要在下一个视频帧中渲染的表面的表面纹理。另外,显示缓冲器595每个都包括用于ar场景中每个表面的纹理指针。纹理指针指向存储器中包含要为视频帧中相应表面显示的表面纹理的位置。为了切换下一视频帧的表面的表面纹理,双缓冲器595将相应纹理指针切换为指向存储器中包含该表面的更新的表面纹理数据的另一专用位置。在一些示例中,显示缓冲器595(i)接收表面的更新的表面纹理,(ii)将更新的表面纹理存储在存储器的未被相应的纹理指针指向的专用位置,以及(iii)响应于指示表面纹理更新完成的命令,将纹理指针切换到存储器中的专用位置。
115.外围设备136包括被配置为支持人工现实应用的soc 510a和510b。在这个示例中,soc 510a(有时被称为“ar协同处理soc”)包括功能块,功能块包括安全处理器226、跟踪540、加密/解密550、显示处理器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。
116.加密/解密550对传送至hmd 112或安全服务器的输出数据进行加密,并对从hmd 112或安全服务器传送的输入数据进行解密。加密/解密550可以支持对称密钥加密,以使用会话密钥(例如,秘密对称密钥)来加密/解密数据。加密/解密550便于例如外围设备136和头戴式显示器112之间的安全通信。
117.显示处理器552包括一个或更多个处理器,例如视频处理单元、图形处理单元、编码器和/或解码器和/或其他,用于将人工现实内容渲染到hmd 112。
118.接口554包括用于连接到ar协同处理soc 510a的功能块的一个或更多个接口。作为一个示例,接口554可以包括外围组件互连快速(pcie)插槽。ar协同处理soc 510a可以使用接口554与一个或更多个通信设备(例如,无线电发射机)连接,以便与其他设备(例如,hmd 112)进行通信。接口554连接ar协同处理soc 510a和soc 510b。在一些示例中,接口554包括视频通信接口(例如,mipi dsi接口等)和单独的数据通信接口(例如,pcie接口等)以与soc 510b连接。
119.soc 510b(有时被称为“应用soc”)包括协同应用处理器560、应用处理器562、视频通信接口555b和数据通信接口556b。在该示例中,协同应用处理器560包括各种处理器,例如视觉处理单元(vpu)、图形处理单元(gpu)和/或中央处理单元(cpu)。应用处理器562可以包括用于执行一个或更多个人工现实应用的处理单元,以生成并向外围设备136的表面渲染例如虚拟用户界面和/或检测用户相对于外围设备136执行的手势。
120.图6是ar中央处理soc 530a向显示器soc 530b和530c发送消息600的示例框图。在所示的示例中,dma控制器585准备好消息600,以便由通信接口584在一个或更多个分组中传输。消息600包括报头602和主体604。报头602包含dma控制器593用来确定如何处理消息的信息。主体604包含影响显示器soc 530b和530c的操作的消息600内容。例如,报头602可以指示消息600是vsync消息,因此主体将包含指定vsync定时器在显示器soc 530b和530c中的地址以及vsync定时器值的字段。消息600的示例类型在下面的图8-15中描述。通信接口584在一个或更多个分组606a至606d(统称为“分组606”)中传输消息。分组的数量取决于消息的大小。例如,分组606可以具有256千字节的有效载荷大小限制。
121.显示器soc 530b和530c的通信接口591接收分组606并将其重新组装成消息600。然后,dma控制器593检查报头602,以确定消息类型和有效载荷大小。dma控制器593然后根据消息类型处理有效载荷604。例如,dma控制器593可以对显示缓冲器595中的特定地址进行读或写,将加密的表面纹理加载到图形流水线中,和/或修改状态和控制寄存器。
122.图7示出了作为图6的通信流水线的一部分生成的分组化消息606的结构。在图7所示的示例中,分组606包括分组报头700、有效载荷702和分组尾部704。分组报头700包括用来处理分组化消息606的信息,例如用来识别分组、识别分组大小和/或识别分组内的错误的信息(例如,数据类型、大小和/或纠错码等)。有效载荷702包括消息600的要在当前分组中传输的部分。在一些示例中,有效载荷702还包括用于处理有效载荷中的信息和/或管理显示器soc 530b和530c的dma控制器591的存储器的命令。分组尾部704包括用于检查有效
载荷702的完整性的信息(例如,作为有效载荷702的循环冗余校验码的循环冗余校验字节等)。
123.图8示出了纹理更新分组800的结构,纹理更新分组800被生成来更新由显示器soc 530b和530c显示的表面纹理。在图8所示的示例中,纹理更新分组800的报头602包括format字段802和size字段804。纹理更新分组800的有效载荷604包括一个或更多个纹理管理(texture management)字段806、一个或更多个纹理特征(texture characteristics)字段808和纹理数据(texture data)字段810。format字段802包括表示分组是texture update分组的值。size字段804指定有效载荷的大小(例如,以字节为单位)。纹理管理字段806包括用来识别待更新的表面纹理的信息(例如,句柄标识符等)和/或便于处理存储器中的表面纹理数据的信息。纹理特征字段808包含用于处理待更新的表面纹理的信息(例如,指示表面数据中包括哪些通道的通道掩码、表面数据中的块数、表面纹理的mip-map级别等)。纹理数据字段810包括待更新的表面纹理数据。
124.图9示出了示例表面设置分组900。在所示的示例中,为要在ar场景中显示的每个表面发送表面设置分组900。报头602包括指定消息类型(例如,表面设置消息)的type字段902和指定有效载荷大小(例如,以字节为单位)的size字段904。有效载荷604包括:(a)一个或更多个纹理管理字段906,其包括用来识别待更新的表面纹理的信息(例如,句柄标识符等)和/或便于识别和处理存储器中的表面纹理数据的信息,(b)为第一缓冲器(有时被称为“前缓冲器”)的寄存器更新指定基地址的base1字段910,(c)为第二缓冲器(有时被称为“后缓冲器”)的寄存器更新指定基地址的base2字段912,(d)lbase 1字段914,其指定将被存储在显示缓冲器595的前缓冲器中的表面纹理在存储器中的位置,(e)lbase 2字段916,其指定将被存储在显示缓冲器595的后缓冲器中的表面纹理在存储器中的位置,(f)surface id字段918包含当表面活动时该表面的当前标识符(例如,可能设置了不活动的表面,因为它们不在hmd 112的视野内),(g)format字段920,其指定表面纹理的像素数据的格式(例如,rgb 4:4:4、grb 4:2:0、rgba 4:4:4:4、grba 4:2:0:4、a8等),(h)以像素为单位指定表面纹理宽度的width字段922,以及(i)以像素为单位指定表面纹理高度的height字段924。
125.图10示出了done分组1000的结构,done分组表示已传输了分组化纹理表面的最后一个分组。在图10所示的示例中,done分组1000的报头602包括format字段1102、size字段1104。format字段1002包括表示分组是done分组的值。size字段1004指定有效载荷的大小(例如,以字节为单位)。done分组1000的有效载荷604包括一个或更多个纹理管理字段1006,该纹理管理字段包括用于识别待更新的表面纹理的信息(例如,句柄标识符等)和/或便于识别和处理存储器中的表面纹理数据的信息。在一些示例中,done分组1000包括一个或更多个通道特征字段1008,通道特征字段包含跨整个纹理收集的各个颜色/阿尔法值的平均值。
126.图11示出了用于定义表面纹理帧的帧设置分组1100的结构。当要在其上渲染纹理的虚拟表面被定义时(例如,由在应用soc 510b上执行的应用等定义),发送帧设置分组1100。在图11所示的示例中,帧设置分组1100的报头602包括format字段1102和size字段1104。帧设置分组的有效载荷604包括一个或更多个纹理管理字段1106、time字段1108、se3字段1110和一个或更多个纹理完整性(texture integrity)字段1112。format字段1102包括表示该分组是帧设置分组的值。size字段1104指定有效载荷的大小(例如,以字节为单
位)。纹理管理字段1106包含用于识别待更新的表面纹理的信息(例如,句柄标识符等)和/或便于处理存储器中的表面纹理数据的信息。time字段1108是与虚拟表面相关联的时间。se3字段1110携带虚拟表面的姿势数据。在一些示例中,姿势数据是3d空间中的位置加上由四元数定义的旋转(例如,[x y z qr qx qy qz])。纹理完整性字段1112指定用于验证稍后的表面更新旨在更新所讨论的特定纹理的信息。
[0127]
图12示出了用于写入显示器soc 530b和530c的存储器或控制寄存器的写分组1200的结构。在图12所示的示例中,写分组1200的报头602包括format字段1202、size字段1204,并且写分组1200的有效载荷604包括address字段1206和data字段1208。format字段1202包括表示分组是写分组的值。size字段1204指定有效载荷的大小(例如,以字节为单位)。address字段1206指定显示器soc 530b和530c的存储器中的目的地地址。例如,address字段可以指定存储器中对应于显示器soc 530b和530c的命令和控制寄存器的位置。data字段1208包括要写入由address字段1206指定的存储器位置的值。
[0128]
图13示出了vsync分组1300的结构。vsync分组1300使ar中央处理soc 530a的视频帧与显示器soc 530b和530c的视频帧同步。ar中央处理soc 530a以vsync时间或vsync时间的整数倍周期性地向每个显示器soc 530b和530c发送vsync命令。在一些示例中,ar中央处理soc 530a仅周期性地(例如,每两个视频帧、每五个视频帧、每十个视频帧等)传输vsync分组1300以降低接口功率,同时促进显示器soc 530b和530c的同步。每个显示器soc 530b和530c保持用于启动新的帧的vsync定时器。vsync分组1300产生映射到存储器中的vsync寄存器的寄存器写命令。在图13所示的示例中,vsync分组1300的报头602包括format字段1302、size字段1304,并且vsync分组1300的有效载荷604包括address字段1306和data字段1308。format字段1302包括表示分组是vsync分组的值。size字段1304指定有效载荷的大小(例如,以字节为单位)。adress字段1306指定在显示器soc 530b和530c上用于vsync分组的目的地地址。data字段1308包括显示器soc 530b和530c与之同步的ar协同处理soc 510a的vsync计数器的时间值。
[0129]
图14示出了read分组1400的结构。ar中央处理soc 530a使用read分组1400来读显示器soc 530b和530c的寄存器。在图14所示的示例中,read分组1400的报头602包括format字段1502、size字段1504,并且read分组1400的有效载荷604包括adress字段1406和data字段1408。format字段1402包括表示分组是read分组的值。size字段1404指定有效载荷的大小(例如,以字节为单位)。adress字段1406指定要读的寄存器在存储器中的地址。data字段1408包括用于读寄存器的任何参数。
[0130]
图15示出了无操作(nop)分组1500的结构,无操作分组1500用于使ar中央处理soc 530a与显示器soc 530b和530c之间的通信停滞(stall)。ar中央处理soc 530a使用nop分组1600来使通信接口停滞。显示器soc 530b和530c忽略nop分组1500。在图15所示的示例中,nop分组1500的报头602包括format字段1502、size字段1504,并且nop分组1500的有效载荷604包括data字段1506。format字段1502包括表示分组是nop分组的值。size字段1504指定有效载荷的大小(例如,以字节为单位)。data字段1506包括可以是任何长度的虚拟数据(dummy data),以在接口上引起可变的停滞。
[0131]
图16a、16b和16c是中央处理soc 530a与显示器soc 530b和530c之间的图形流水线的框图,其结合了图6的通信流水线。图形流水线获取存储在存储器(例如,上面图5的存
储器534)中的用于将在后续视频帧中更新和显示的表面的表面纹理,将表面纹理分解成分组,将分组传输到显示器soc 530b和530c,在显示器soc 530b和530c处重新组装分组,将表面纹理存储在显示缓冲器595中,并切换相应的纹理指针以指向显示缓冲器中的该位置。
[0132]
图16a示出了由ar中央协同处理器soc 530a执行的图形流水线的一部分。待更新的表面纹理1600存储在ar中央协同处理器soc 530a的存储器(例如,存储器534等)中。显示驱动器(例如,上面图5的显示处理器582之一)获得要在后续视频帧中更新的表面纹理1600,并将表面纹理1600压缩成压缩的表面纹理1602。显示驱动器然后将显示报头1604附加到压缩的表面纹理1602。显示报头1604包括用来识别表面的元数据,例如表面的句柄标识符(id),显示缓冲器595使用该元数据将表面纹理放置在存储器中的正确位置。伴随压缩的表面纹理1602的显示报头1604的示例在上面的图8中描述。压缩的表面纹理1602和显示报头1604统称为显示数据1606。显示驱动器将加密报头1608的外壳添加到显示数据1606。加密报头1608的外壳包括支持使用对称密钥密码术(cryptography)(例如,aes-gcm密码术)对显示数据1606进行加密的元数据。显示数据1606和加密报头1608外壳对存储在存储器中。
[0133]
dma控制器(例如,dma控制器585等)随后检索显示数据1606和加密报头1608的外壳。一个或更多个加密处理器(例如,上面图5的一个或更多个加密/解密处理器582)使用对称密钥密码术将显示数据1606加密成加密的显示数据1610,并添加加密报头1612和加密尾部1614。加密报头1612和加密尾部1614包括供显示器soc 530b和530c解密加密的显示数据1610的信息。
[0134]
图17示出了加密的显示数据1610、加密报头1612和加密尾部1614(统称为“加密消息”)的示例。如图17的示例所示,加密报头1612包括例如加密的配置、有效载荷1620的大小、加密同步数据等。加密的显示数据1610包括n字节的加密数据(例如,字节b0至字节bn-1等)。加密尾部1614包括用于验证加密消息的完整性和真实性的信息。
[0135]
返回图16a,dma控制器将加密的显示数据1610、加密报头1612和加密尾部1614转换为打包的像素数据1616,准备在视频通信接口618(上面图5的接口584的一部分)的命令模式下使用高速模式传输。在一些示例中,转换器616将加密消息转换成像素数据,并添加填充字节以准备用于传输。
[0136]
图16b示出了由ar中央协同处理器soc 530a执行的图形流水线的一部分。视频通信接口584将打包的像素数据1616分解成分组606a-606d,并在命令模式下将这些分组606a-606d传输到显示器soc 530b和530c。例如,打包的像素数据1616可以被分解成四个分组606a-606d用于传输。取决于打包的像素数据1616的大小,分组的数量可以更少或更多。例如,一个分组可能具有256千字节的有效载荷大小限制。分组符合视频通信接口的命令模式的传输协议。图7示出了分组606的结构的示例。显示器soc 530b和530c的视频通信接口591接收分组606,以重建打包的像素数据1616。
[0137]
图16c示出了由显示器soc 530b和530c执行的图形流水线的一部分。视频通信接口591接收分组。在从ar中央处理soc 510a接收到done命令之后,dma控制器593将组装的分组转换成加密的显示数据1610、加密报头1612和加密尾部1614。例如,显示器soc 530b和530c从每个分组606中移除分组报头700、分组尾部704、dsc命令字段712和填充字节714。解密块592解密加密的显示数据610,以生成压缩的表面纹理1602和纯文本的显示报头1604。
基于显示报头1604,dma控制器593将压缩的表面纹理1602放入显示缓冲器595中对应于该表面的存储器位置,并将相应的纹理指针切换到存储器中的该位置。随后,在下一个视频帧上,显示控制器596渲染压缩的表面纹理1602,用于在显示设备586上显示。在一些示例中,在显示压缩的表面纹理1602之前,可以进行更多的处理。例如,压缩的表面纹理1602可以基于hmd 112的相对取向和/或用户110的视场被扭曲或以其他方式被操纵。
[0138]
最初,ar中央协同处理器soc 530a发送定义表面纹理的参数(例如,句柄id、尺寸、存储器位置等)的表面设置分组(例如,上面图9的表面设置分组900),该纹理被应用于由帧设置分组定义的虚拟表面。ar中央协同处理器soc 530a还可以发送定义表面姿势(例如,由四元数[x,y,z,qr,qx,qy,qz]定义)的帧设置分组(例如,上面图11的帧设置分组1100)。另外,可以使用帧设置分组将表面纹理移动到新的相对位置。因此,ar中央协同处理器soc 530a可以独立地(a)通过帧设置分组改变表面的位置和取向,以及(b)通过表面纹理更新分组改变表面纹理的内容。例如,表面可能会改变位置,而不会改变其表面纹理。当由应用定义的新的虚拟表面被hmd 112显示时,ar中央协同处理器soc 530a可以向显示器soc 530b和530c发送帧设置分组和表面设置分组。帧设置分组包括关于表面纹理的相对位置和旋转的信息,并且表面设置分组包括表面纹理的尺寸和双缓冲器信息。下面的表1中示出了示例分组序列。
[0139][0140][0141]
表1
[0142]
ar中央协同处理器soc 530a使用视频通信接口的高速命令模式发送表面纹理更新数据。显示器soc 530b和530c将表面纹理存储在显示缓冲器595中。显示器soc 530b和530c以规则的间隔显示视频帧(例如,每秒60个视频帧等)。基于来自ar中央协同处理器soc 530a的输入,显示缓冲器595操纵为每个表面定义的纹理指针,以切换哪个表面纹理将在下一个视频帧中显示。以此方式,与静态纹理相关联的纹理指针保持指向存储器中的相同位置,并且在每个视频帧中绘制该表面纹理,并且随着动画表面纹理被更新,与动画纹理相关联的纹理指针在存储器中的两个位置之间改变。
[0143]
在每个新帧开始时,ar中央协同处理器soc 530a向每个显示器soc 530b和530c发送vsync分组(例如,上面图13的vsync分组1300)。每个显示器soc 530b和530c使用该vsync到达来调整其内部vsync定时器(例如,通过寄存器写等)。对于要在后续视频帧中更新的每个纹理,ar中央协同处理器soc 530a发送包含更新的表面纹理数据的一个或更多个分组。ar中央协同处理器soc 530a在最后一次更新视频帧的表面纹理后发送done命令。每个显示
器soc 530b和530c在用于表面纹理的done命令之后更新下一视频帧上的相应纹理指针。从ar中央协同处理器soc 530a的角度来看,更新两个表面的示例序列在下面的表2中提供。
[0144][0145]
表2
[0146]
图18是将表面纹理显示数据传送至包括双缓冲器的显示设备的示例方法的流程图。最初,ar中央协同处理器soc 530a检测到要更新表面纹理(框1800)。例如,响应于从外围设备136接收到更新的表面纹理,存储器中与特定表面相关联的位置中的表面纹理可能已经改变。ar中央协同处理器soc 530a基于更新的表面纹理(例如,通过上面图16a的图形流水线1600)生成打包像素1616(框1802)。ar中央协同处理器soc 530a将打包的像素1616分解成分组606(框1804)。ar中央协同处理器soc 530a传输表面纹理的分组606之一(框
1806)。ar中央协同处理器soc 530a确定对于表面纹理是否有更多的分组606要传输(框1808)。当存在更多分组606时(在框1808为是),ar中央协同处理器soc 530a传输下一个分组606(框1806)。否则,当没有更多的分组606时(在框808为否),ar中央协同处理器soc 530a然后传输done分组(例如,上面图10的done分组1000)以表示已经传输了该特定表面纹理的最后一个分组606(框1810)。
[0147]
从ar中央协同处理器soc 530a收到done分组后,显示器soc 530b和530c从分组606中重建表面纹理(例如,通过图16c的图形流水线1600重建)(框1812)。显示器soc 530b和530c将表面纹理放置在显示缓冲器595中为相应表面指定的位置中(例如,如上面图9的接收纹理设置分组900所定义)(框1814)。显示器soc 530b和530c然后切换相应的纹理指针以指向显示缓冲器595中存储更新的表面纹理的位置(框1816)。随后,在下一个视频帧上,显示器soc 530b和530c渲染更新的表面纹理以在显示器586上显示(框1818)。
[0148]
图19是管理动态表面纹理的示例方法的流程图。最初,ar中央协同处理器soc 530a为被定义为具有表面纹理的每个表面发送表面设置分组(例如,上面图9的表面设置分组900)(框1900)。ar中央协同处理器soc 530a发送帧设置分组(例如,上面图11的帧设置分组1100)(框1902)。表面的纹理设置分组和帧设置分组可以相对于彼此以任何顺序发送。ar中央协同处理器soc 530a检测到表面纹理将被更新(框1904)。例如,响应于从外围设备136接收到更新的表面纹理,存储器中与特定表面相关联的位置中的表面纹理可能已经改变。然后,ar中央协同处理器soc 530a发送表面更新分组和done分组,以向显示器soc 530b和530c提供更新的表面纹理(例如,通过图16a、16b和16c的图形流水线1600提供)(框1906)。在更新表面纹理时,ar中央协同处理器soc 530a确定是否要重新定义一个表面的姿势(框1908)。例如,ar中央协同处理器soc 530a可以从外围设备136接收消息以重新定义表面的姿势。如果要重新定义表面姿势,ar中央协同处理器soc 530a发送定义新姿势的帧设置分组,然后返回至更新表面纹理(框1910)。
[0149]
图20是更新和显示表面纹理示例方法的流程图。最初,ar中央协同处理器soc 530a向显示器soc 530b和530c发送vsync分组(例如,上面图13的vsync分组1300),以同步显示器soc 530b和530c的vsync定时器(框2000)。作为响应,显示器soc 530b和530c将其vsync定时器设置为vsync分组中提供的值(框2002)。
[0150]
对于要显示的每个表面,ar中央协同处理器soc 530a发送纹理设置分组(例如,上面图9的纹理设置分组900)(框2004和框2006)。ar中央协同处理器soc 530a发送纹理设置分组(框2004)。ar中央协同处理器soc 530a确定是否有另一个纹理设置分组要发送(框2006)。当有另一个纹理设置分组要发送时(在框2006为是),ar中央协同处理器soc 530a发送下一个纹理设置分组(框2004)。作为响应,显示器soc 530b和530c为表面设置双缓冲器595(框2008)。
[0151]
在所示示例中,当没有另一个纹理设置分组要发送时(在框2006为否),ar中央协同处理器soc 530a向显示器soc 530b和530c发送vsync分组(例如,上面图13的vsync分组1300),以同步显示器soc 530b和530c的vsync定时器(框2010)。作为响应,显示器soc 530b和530c将其vsync定时器设置为vsync分组中提供的值(框2012)。
[0152]
ar中央协同处理器soc 530a发送被更新的表面纹理的纹理更新分组(例如,上面图8的纹理更新分组800)(框1214)。作为响应,显示器soc 530b和530c处理分组,并等待每
个更新表面纹理的done分组(框2016)。在已经传输了表面纹理的纹理更新的所有分组之后,中央协同处理器soc 530a发送相应的done分组(例如,上面图10的done分组1000)(框2018)。响应于接收到done分组,显示器soc 530b和530c更新显示缓冲器595中的相应表面纹理(框2020)。显示器soc 530b和530c还将缓冲器指针更新到更新的表面纹理的位置(框2022)。在下一个视频帧中,显示器soc 530b和530c显示由缓冲器指针指向的表面纹理(框2024)。
[0153]
如本文通过各种示例所描述的,本公开的技术可包括人工现实系统或结合人工现实系统来实现。如所描述的,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、混杂现实、或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或其某种组合,且其中任何一个都可以在单个通道中或在多个通道中被呈现(例如向观看者产生三维效果的立体视频)。另外,在一些实施例中,人工现实可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合例如用于在人工现实中创建内容和/或在人工现实中被使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式设备(hmd)、独立的hmd、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。
[0154]
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合实现。例如,所述技术的各个方面可在一个或更多个处理器内实现,该处理器包括一个或更多个微处理器、dsp、专用集成电路(asic)、现场可编程门阵列(fpga)、或任何其他等效的集成或离散逻辑电路,以及此类部件的任何组合。术语“处理器”或“处理电路”一般可指前述逻辑电路中的任一种(单独或与其他逻辑电路组合),或任何其他等效电路。包括硬件的控制单元也可执行本公开的一种或更多种技术。
[0155]
此类硬件、软件和固件可在相同的设备内或在单独的设备内实现以支持本公开中描述的各种操作和功能。此外,所述单元、模块或部件中的任一个可一起或单独地实现为离散的但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着此类模块或单元必须由单独的硬件或软件部件实现。相反,与一个或更多个模块或单元相关联的功能可以由单独的硬件或软件部件执行,或者集成在公共或单独的硬件或软件部件内。
[0156]
在本公开中描述的技术还可在包含指令的计算机可读介质(例如计算机可读存储介质)中体现或编码。嵌入或编码在计算机可读存储介质中的指令可以例如在执行指令时致使可编程处理器或其他处理器执行方法。计算机可读存储介质可包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电子可擦除可编程只读存储器(eeprom)、闪存存储器、硬盘、cd-rom、软盘、盒式磁带、磁介质、光学介质或其他计算机可读介质。
再多了解一些

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

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

相关文献