首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 应用软件 / 交互式应用程序 / 一种通信架构内的用户设备及其实现方法和计算机程序产品

一种通信架构内的用户设备及其实现方法和计算机程序产品

阅读:937发布:2020-05-11

专利汇可以提供一种通信架构内的用户设备及其实现方法和计算机程序产品专利检索,专利查询,专利分析的服务。并且一种通信架构内的用户设备,所述用户设备包括:图像捕获设备,其被配置为确定用于创建定义共享场景的视频通道的图像数据;固有/非固有数据确定器,其被配置为确定与所述图像捕获设备相关联的固有/非固有捕获设备数据;以及 视频编码 器,其被配置为对所述视频通道内的图像数据和固有/非固有捕获设备数据进行编码。,下面是一种通信架构内的用户设备及其实现方法和计算机程序产品专利的具体信息内容。

1.一种通信架构内的用户设备,所述用户设备包括:
图像捕获设备,其被配置为捕获用于创建定义共享场景的视频通道的图像数据,所述共享场景包括与媒体类型相关联的至少一个交互式对象,所述共享场景被配置为由不同的用户设备的用户观看以及与不同的用户设备的用户交互;
固有/非固有数据确定器,其被配置为确定与所述图像捕获设备相关联的固有捕获设备数据以及与所捕获的图像数据相关联的非固有捕获设备数据,所述固有捕获设备数据和所述非固有捕获设备数据与所述图像数据是分开的;
视频编码器,其被配置为对所述共享场景内的所述图像数据、所述固有捕获设备数据、和所述非固有捕获设备数据进行编码,以传输给所述不同的用户设备,其中,所述固有捕获设备数据和所述非固有捕获设备数据被编码为被附加到所述图像数据的图像的补充增强信息(SEI)消息或自定义属性值中的一者;
显示设备,其被配置为显示用户接口,所述用户接口使得用户能够通过操作至少一个交互式对象或向所述共享场景添加额外的交互式对象来向所述共享场景应用至少一个注释;以及
会话管理实体,其被配置为生成描述针对所述共享场景的所述至少一个注释的数据对象,以及将生成的数据对象传送到所述不同的用户设备以使得针对所述不同的用户设备的用户同步所述共享场景的视野
2.根据权利要求1所述的用户设备,其中,所述固有捕获设备数据和所述非固有捕获设备数据被编码为所述补充增强信息消息,以及所述视频编码器包括:
帧编码器,其被配置为将所述图像数据编码为图像帧;以及
补充增强信息附加器,其被配置为将所述固有捕获设备数据和所述非固有捕获设备数据编码为所述补充增强信息消息并将所述补充增强信息消息附加至所述图像帧。
3.根据权利要求1所述的用户设备,其中,所述图像捕获设备包括:
相机输入,其被配置为接收RGB帧数据;以及
媒体捕获实体,其被配置为从所述RGB帧数据生成图像数据。
4.根据权利要求3所述的用户设备,其中,所述固有捕获设备数据和所述非固有捕获设备数据被编码为所述自定义属性值,以及所述媒体捕获实体还被配置为接收所述固有捕获设备数据和所述非固有捕获设备数据,并且将包括所述固有捕获设备数据和所述非固有捕获设备数据的所述自定义属性值附加到所生成的图像数据。
5.根据权利要求1所述的用户设备,其中,所述固有捕获设备数据包括相机投影矩阵数据。
6.一种通信架构内的用户设备,所述用户设备包括:
接收机,其被配置为接收视频通道,所述视频通道包括针对从图像捕获设备确定的共享场景的图像数据,所述共享场景被配置为由不同的用户设备的用户观看以及与不同的用户设备的用户交互,以及所述图像数据包括与所述图像捕获设备相关联的固有捕获设备数据以及与所捕获的图像数据相关联的非固有捕获设备数据,所述固有捕获设备数据和所述非固有捕获设备数据与所述图像数据是分开的;以及
视频解码器,其被配置为从所述视频通道提取和解码所述图像数据、所述固有捕获设备数据和所述非固有捕获设备数据,其中,所述固有捕获设备数据和所述非固有捕获设备数据被提取和解码为被附加到所述图像数据的图像帧的补充增强信息(SEI)消息或被附加到所述图像数据的图像帧的自定义属性值中的一者;
显示设备,其被配置为显示用户接口,所述用户接口使得用户能够通过操作至少一个交互式对象或向所述共享场景添加额外的交互式对象来向所述共享场景应用至少一个注释;以及
会话管理实体,其被配置为生成描述针对所述共享场景的所述至少一个注释的数据对象,以及将生成的数据对象传送到所述不同的用户设备以使得针对所述不同的用户设备的用户同步所述共享场景的视野。
7.根据权利要求6所述的用户设备,其中,所述视频通道包括经帧编码的视频数据流,所述固有捕获设备数据和所述非固有捕获设备数据被编码为所述补充增强信息消息,其中,所述视频解码器包括:
帧解码器,其被配置为对经编码的视频数据流进行帧解码;以及
补充增强信息提取器,其被配置为从所述经编码的视频数据流内提取和解码补充增强信息消息。
8.根据权利要求7所述的用户设备,其中,所述补充增强信息提取器包括:
扫描器,其被配置为扫描到来的网络抽象层单元;以及
提取器,其被配置为从与每帧附加的所述补充增强信息消息中提取固有捕获设备数据和非固有捕获设备数据。
9.一种在通信架构内的用户设备处实现的方法,所述方法包括:
从图像捕获设备确定用于创建定义共享场景的视频通道的图像数据,所述共享场景包括与媒体类型相关联的至少一个交互式对象,所述共享场景被配置为由不同的用户设备的用户观看以及与不同的用户设备的用户交互;
确定与所述图像捕获设备相关联的固有捕获设备数据以及与所述图像数据相关联的非固有捕获设备数据,所述固有捕获设备数据和所述非固有捕获设备数据与所述图像数据是分开的;以及
对所述共享场景内的所述图像数据、所述固有捕获设备数据、和所述非固有捕获设备数据进行编码,以传输给所述不同的用户设备,其中,所述固有捕获设备数据和所述非固有捕获设备数据被编码为被附加到所述图像数据的图像帧的补充增强信息(SEI)消息或被附加到所述图像数据的图像帧的自定义属性值中的一者;
显示用户接口,所述用户接口使得用户能够通过操作至少一个交互式对象或向所述共享场景添加额外的交互式对象来向所述共享场景应用至少一个注释;以及生成描述针对所述共享场景的所述至少一个注释的数据对象,以及将生成的数据对象传送到所述不同的用户设备以使得针对所述不同的用户设备的用户同步所述共享场景的视野。
10.根据权利要求9所述的方法,其中,对所述视频通道内的所述图像数据、所述固有捕获设备数据、和所述非固有捕获设备数据进行编码包括:
将所述图像数据编码为图像帧;以及
将所述固有捕获设备数据和所述非固有捕获设备数据编码为附加至所述图像帧的补充增强信息消息。
11.一种在通信架构内的用户设备处实现的方法,所述方法包括:
接收视频通道,所述视频通道包括针对共享场景的图像数据,所述共享场景包括与媒体类型相关联的至少一个交互式对象,所述共享场景被配置为由不同的用户设备的用户观看以及与不同的用户设备的用户交互,所述图像数据由图像捕获设备捕获,由所述图像捕获设备捕获的所述图像数据与固有捕获设备数据和非固有捕获设备数据相关联,所述固有捕获设备数据和所述非固有捕获设备数据与所述图像数据是分开的;
从所述视频通道提取和解码所述图像数据;
提取与所述图像捕获设备相关联的所述固有捕获设备数据和与所述图像捕获设备相关联的所述非固有捕获设备数据,其中,所述固有捕获设备数据和所述非固有捕获设备数据被提取和解码为被附加到所述图像数据的图像帧的补充增强信息(SEI)消息或被附加到所述图像数据的图像帧的自定义属性值中的一者;
显示用户接口,所述用户接口使得用户能够通过操作至少一个交互式对象或向所述共享场景添加额外的交互式对象来向所述共享场景应用至少一个注释;以及生成描述针对所述共享场景的所述至少一个注释的数据对象,以及将生成的数据对象传送到所述不同的用户设备以使得针对所述不同的用户设备的用户同步所述共享场景的视野。
12.根据权利要求11所述的方法,其中,所述视频通道包括经帧编码的视频数据流,其中,从所述视频通道提取和解码所述图像数据包括对经编码的视频数据流进行帧解码,并且提取与所述图像捕获设备相关联的所述固有捕获设备数据和与所述图像捕获设备相关联的所述非固有捕获设备数据包括从所述经编码的视频数据流内提取和解码补充增强信息消息。
13.一种计算机程序产品,所述计算机程序产品在非瞬时性计算机可读介质上被实施,并且被配置为当在通信架构内的用户设备的处理器上被执行时,执行以下操作:
从图像捕获设备确定用于创建定义共享场景的视频通道的图像数据,所述共享场景被配置为由不同的用户设备的用户观看以及与不同的用户设备的用户交互;
确定与所述图像捕获设备相关联的固有捕获设备数据以及与所述图像捕获设备相关联的非固有捕获设备数据,所述固有捕获设备数据和所述非固有捕获设备数据与所述图像数据是分开的;
对所述共享场景内的所述图像数据、所述固有捕获设备数据、和所述非固有捕获设备数据进行编码,以传输给所述不同的用户设备,其中,所述固有捕获设备数据和所述非固有捕获设备数据被编码为被附加到所述图像数据的图像帧的补充增强信息(SEI)消息或被附加到所述图像数据的图像帧的自定义属性值中的一者;
显示用户接口,所述用户接口使得用户能够通过操作至少一个交互式对象或向所述共享场景添加额外的交互式对象来向所述共享场景应用至少一个注释;以及生成描述针对所述共享场景的所述至少一个注释的数据对象,以及将生成的数据对象传送到所述不同的用户设备以使得针对所述不同的用户设备的用户同步所述共享场景的视野。
14.一种计算机程序产品,所述计算机程序产品在非瞬时性计算机可读介质上被实施,并且被配置为当在通信架构内的用户设备的处理器上被执行时,执行以下操作:
接收视频通道,所述视频通道包括针对共享场景的图像数据,所述共享场景包括与媒体类型相关联的至少一个交互式对象,所述共享场景被配置为由不同的用户设备的用户观看以及与不同的用户设备的用户交互,所述图像数据由图像捕获设备捕获,由所述图像捕获设备捕获的所述图像数据与固有捕获设备数据和非固有捕获设备数据相关联,所述固有捕获设备数据和所述非固有捕获设备数据与所述图像数据是分开的;
从所述视频通道提取和解码所述图像数据;
提取与所述图像捕获设备相关联的所述固有捕获设备数据和与所述图像捕获设备相关联的所述非固有捕获设备数据,其中,所述固有捕获设备数据和所述非固有捕获设备数据被提取和解码为被附加到所述图像数据的图像帧的补充增强信息(SEI)消息或被附加到所述图像数据的图像帧的自定义属性值中的一者;
显示用户接口,所述用户接口使得用户能够通过操作至少一个交互式对象或向所述共享场景添加额外的交互式对象来向所述共享场景应用至少一个注释;以及生成描述针对所述共享场景的所述至少一个注释的数据对象,以及将生成的数据对象传送到所述不同的用户设备以使得针对所述不同的用户设备的用户同步所述共享场景的视野。

说明书全文

一种通信架构内的用户设备及其实现方法和计算机程序产品

背景技术

[0001] 基于分组的通信系统允许设备(例如,个人计算机)的用户跨使用分组协议(例如,互联网协议(IP))的计算机网络来进行通信。基于分组的通信系统可以用于各种类型的通信事件。可以被建立的通信事件包括语音通话、视频通话、即时消息传送、语音邮件、文件传输等。这些系统对于用户是有益的,这是因为它们常常具有比固定线路或移动网络显著低的成本。长距离通信的情况可能尤其如此。为了使用基于分组的系统,用户在他们的设备上安装并且执行客户端软件。客户端软件提供基于分组的连接以及其他功能,例如登记和验证。
[0002] 通信系统允许设备的用户跨计算机网络(例如,因特网)来进行通信。可以被建立的通信事件包括语音通话、视频通话、即时消息传送、语音邮件、文件传输等。利用视频通话,呼叫者能够观看视频图像。发明内容
[0003] 提供本发明内容以简化的形式引入在以下的详细描述中将进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的主要特征或基本特征,也不旨在用于限制所要求保护的主题的范围。所要求保护的主题不限于解决在背景技术部分中记录的缺点中的任何一个或所有缺点的实现。
[0004] 本公开的实施例涉及共享场景内的对象的管理和同步,所述共享场景例如是在协作混合现实应用中所生成的。在协同混合现实应用中,参与者可以对共享场景中的对象进行可视化、放置、和交互。共享场景通常是参与者中的一个参与者的周围空间的表示,例如,场景可以包括来自参与者中的一个参与者的视的视频图像。对象或虚拟对象可以被“放置”在场景内,并且可以具有能够被参与者“看到”并且由参与者与其进行交互的视觉表示。此外,对象可以具有相关联的内容。例如,对象可以具有诸如音频/视频或文本之类的相关联的内容。例如,参与者可以将视频播放器对象放置在共享场景中,并与其进行交互以开始播放视频以供所有参与者观看。接着,另一参与者可以与视频播放器对象进行交互以控制回放或者改变其在场景中的位置
[0005] 发明人已经认识到,为了保持这些对象在该方案内的同步,表面重建数据(也被称为网格数据)的有效传输可以是重要的。
[0006] 根据本公开的第一方面,提供了一种通信架构内的用户设备,所述用户设备包括:接收机,其被配置为接收视频通道,所述视频通道包括针对从图像捕获设备所确定的共享场景的图像数据以及与所述图像捕获设备相关联的固有/非固有捕获设备数据;以及视频解码器,其被配置为从所述视频通道提取和解码所述图像数据以及与所述图像捕获设备相关联的所述固有/非固有捕获设备数据。
[0007] 根据本公开的另一方面,提供了一种通信架构内的用户设备,所述用户设备包括:接收机,其被配置为接收视频通道,所述视频通道包括针对从图像捕获设备所确定的共享场景的图像数据以及与所述图像捕获设备相关联的固有/非固有捕获设备数据;以及视频解码器,其被配置为从所述视频通道提取和解码所述图像数据以及与所述图像捕获设备相关联的所述固有/非固有捕获设备数据。
[0008] 根据本公开的第三方面,提供了一种在通信架构内的用户设备处实现的方法,所述方法包括:从图像捕获设备确定视频数据以用于创建定义了共享场景的视频通道;确定与所述图像捕获设备相关联的固有/非固有捕获设备数据;以及对所述视频通道内的所述图像数据和所述固有/非固有捕获设备数据进行编码。
[0009] 根据本公开的第四方面,提供了一种在共享场景架构内的协议端点实体处实现的方法,所述方法包括:接收视频通道,所述视频通道包括针对从图像捕获设备所确定的共享场景的图像数据以及与所述图像捕获设备相关联的固有/非固有捕获设备数据;从所述视频通道提取和解码所述图像数据;以及提取与所述图像捕获设备相关联的所述固有/非固有捕获设备数据。
[0010] 根据本公开的第五方面,提供了一种计算机程序产品,所述计算机程序产品在非瞬时性计算机可读介质上被实施,并且被配置为当在通信架构内的用户设备的处理器上被执行时,执行以下操作:从图像捕获设备确定用于创建定义共享场景的视频通道的图像数据;确定与所述图像捕获设备相关联的固有/非固有捕获设备数据;以及对所述视频通道内的所述图像数据和所述固有/非固有捕获设备数据进行编码。
[0011] 根据本公开的第六方面,提供了一种计算机程序产品,所述计算机程序产品在非瞬时性计算机可读介质上被实施,并且被配置为当在通信架构内的用户设备的处理器上被执行时,执行以下操作:接收视频通道,所述视频通道包括针对从图像捕获设备所确定的共享场景的图像数据以及与所述图像捕获设备相关联的固有/非固有捕获设备数据;从所述视频通道提取和解码所述图像数据;以及提取与所述图像捕获设备相关联的所述固有/非固有捕获设备数据。附图说明
[0012] 为了更好地理解本公开并且示出可以如何实施本公开,现在将作为示例来参考以下附图,其中:
[0013] 图1示出了通信系统的示意图;
[0014] 图2示出了用户设备的示意图;
[0015] 图3示出了作为可穿戴头戴式机的用户设备的示意图;
[0016] 图4a和图4b示出了针对经组合的视频和表面再现(SR)数据的示例发送机和接收机管线的示意图;
[0017] 图5a示出了用于在共享场景内进行处理的对象的示例端点架构的示意图;
[0018] 图5b示出了用于同步对象更新的示例架构处理协议的示意图;
[0019] 图6示出了协议端点上执行的会话管理实体应用与消息传递实体/分组传递实体应用之间的示意性示例通信;
[0020] 图7示出了在用户设备内发送路径对象消息控制的过程的流程图
[0021] 图8示出了在用户设备内接收路径对象消息控制的过程的流程图;并且
[0022] 图9a和图9b示出了用于在图像数据流内嵌入并取回相机固有和非固有数据的示意性架构。

具体实施方式

[0023] 本公开的实施例仅仅是作为示例来描述的。
[0024] 图1示出了通信系统100,其包括与用户终端或设备102相关联的第一用户104(用户A)以及与第二用户终端或设备108相关联的第二用户110 (用户B)。用户设备102和108可以通过通信系统100中的通信网络106 进行通信,由此允许用户104和110通过通信网络106彼此进行通信。通信网络106可以是具有在用户设备102与第二用户设备108之间提供通信信道的能的任何适合的网络。例如,通信网络106可以是互联网或另一类型的网络,例如,高数据速率蜂窝或移动网络,例如第3代(“3G”)移动网络。
[0025] 应当注意在可替代的实施例中,用户设备可以经由在图1中未示出的额外的中间网络而连接至通信网络106。例如,如果用户设备102是移动设备,则其可以经由诸如GSM、UMTS、4G等网络之类的蜂窝或移动网络(在图1中未示出)而连接至通信网络106。
[0026] 用户设备102和104可以是任何适合的设备并且例如可以是移动电话个人数字助理(“PDA”)、个人计算机(“PC”)(包括,例如,WindowsTM、 Mac OSTM、和LinuxTM PC)、平板计算机、游戏设备、可穿戴设备、或者能够连接至通信网络106的其他嵌入式设备。可穿戴设备可以包括可穿戴头戴式耳机。
[0027] 应当理解的是,用户设备中的一个或多个用户设备可以是由单个设备提供的。用户设备中的一个或多个用户设备可以是由协作以提供用户设备或终端的两个或更多个设备来提供。
[0028] 用户设备102被设置为从用户A 104接收信息并且向用户A104输出信息。
[0029] 用户设备102执行由与通信系统100相关联的软件提供者所提供的通信客户端应用112。通信客户端应用112是在用户设备102中的本地处理器上执行的软件程序。通信客户端应用112执行在用户设备102处所需的处理以使得用户设备102通过通信系统100来发送和接收数据。在用户设备 102处所执行的通信客户端应用112可以通过对数字证书的呈现(例如,以证明用户104是通信系统的真正的订阅者——在WO2005/009019中更加详细的描述)而被认证以通过通信系统进行通信。
[0030] 第二用户设备108可以与用户设备102相同或不同。第二用户设备108 在本地处理器上执行通信客户端应用114,通信客户端应用114与在用户终端102处执行的通信客户端应用112相对应。第二用户设备108处的通信客户端应用114执行所需要的处理以允许用户B 110通过网络106进行通信,这与用户设备102处的通信客户端应用112执行所需要的处理以允许用户A 104通过网络106进行通信是相同的方式。用户设备102和108是通信系统中的端点。出于清晰的目的,图1仅仅示出了两个用户(104和 110)以及两个用户设备(102和108),但是如在本领域中已知的,更多的用户和用户设备可以被包括在通信系统100中,并且可以使用在相应的用户设备上执行的相应的通信客户端来通过通信系统100进行通信。
[0031] 图2示出了在其上执行通信客户端应用以用于通过通信系统100进行通信的用户设备102的示意图。用户设备102包括中央处理单元(“CPU”) 202,其上连接有显示器204(例如,屏幕或触摸屏)、诸如用户接口206、相机208、和触摸屏204之类的输入设备(例如,小键盘)。
[0032] 在一些实施例中,用户接口206可以是小键盘、键盘、鼠标指针设备、触摸板等。然而,用户接口206可以是任何适合的用户接口输入设备,例如,姿势或运动控制用户输入、头部追踪或眼部追踪用户输入。此外,用户接口206在一些实施例中可以是被配置为确定用户到显示器204的接近度的“触摸”或“接近度”检测输入。
[0033] 在下文中所描述的实施例中,相机208可以是集成到用户设备102中或者经由有线或无线连接而耦合至用户设备的常规网络摄像头。可替代地,相机208可以是深度感知相机,例如飞行时间相机或结构化光相机。此外,相机208可以包括多个图像捕获元件。图像捕获元件可以位于不同的位置或用不同点或视野来定向,以使得可以处理或组合来自图像捕获元件中的每个图像捕获元件的图像。例如,可以对图像捕获元件图像进行比较以便基于视差来确定深度或者距图像的对象距离。此外,在一些示例中,图像可以被组合以产生图像,该图像具有可能比来自单个图像捕获元件图像更高的分辨率或更大的视角。
[0034] 输出音频设备210(例如,扬声器、多个扬声器、头戴式耳机、耳塞) 和输入音频设备212(例如,麦克、多个麦克风)连接至CPU 202。显示器204、用户接口206、相机208、输出音频设备210、和输入音频设备212 可以被集成到用户设备102中,如在图2中所示。在可替代的用户设备中,显示器204、用户接口206、相机208、输出音频设备210、和输入音频设备212中的一个或多个可以不集成到用户设备102中并且可以经由相应接口而连接至CPU 
202。这样的接口的一个示例是USB接口。
[0035] CPU 202连接至网络接口224(例如,调制解调器)以用于与通信网络 106进行通信。网络接口224可以被集成到用户设备102中,如在图2中所示。在可替代的用户设备中,网络接口224不集成到用户设备102中。用户设备102还包括存储器226以用于存储数据,如在本领域中已知的。存储器226可以是永久存储器,例如,ROM。存储器226可替代地可以是瞬时性存储器,例如,RAM。
[0036] 用户设备102被安装有通信客户端应用112,因为通信客户端应用112 被存储在存储器226中并且被设置以用于在CPU 202上执行。图2还示出了在CPU 202上执行的操作系统(“OS”)214。在OS 214的顶层运行的是针对在上文中所提及的通信客户端应用112的软件栈216。软件栈示出了I/O 层218、客户端引擎层220、和客户端用户接口层(“UI”)222。每一层负责具体的功能。因为每一层通常与其他两层进行通信,所以他们被认为是如在图2中所示出的那样设置在栈中的。操作系统214管理计算机的硬件资源并且处理经由网络接口224而发送至通信网络106的数据以及来自通信网络106的数据。I/O层218包括音频和/或视频编码解码器,其接收到来的经编码的流并且对其进行解码以用于适当地输出至扬声器210和/或显示器204,并且其从麦克风212和/或相机208接收未编码的音频和/或视频数据并且对其进行编码以作为流而发送至通信系统100的其他终端用户设备。客户端引擎层220处理如在上文中所讨论的VoIP系统的连接管理功能,例如通过基于服务器的或P2P的地址查找和认证来建立通话或其他连接。客户端引擎还可以负责没有在本文中讨论的其他辅助功能。
客户端引擎220 还与客户端用户接口层222进行通信。客户端引擎220可以被设置为控制客户端用户接口层222以经由在显示器204上所显示的通信客户端应用112 的用户界面来向用户设备102的用户呈现信息,并且经由用户接口而从用户设备102的用户接收信息。
[0037] 也在OS 214顶层运行的是其他应用230。在下文中参考其他应用230 和作为分别的应用的通信客户端应用112来描述实施例,然而在文中更加详细地描述的其他应用230的功能可以并入到通信客户端应用112内。
[0038] 在图3中所示出的一个实施例中,用户设备102是头戴式耳机或头戴式用户设备。头戴式用户设备包括框架302,所述框架302具有旨在套在穿戴者的鼻梁上的中央部分304,以及旨在套在穿戴者耳朵上的左右支撑延伸 306、308。尽管支撑延伸306、308被示出为大体上是直的,但是他们可以以弯曲的部分终止从而以常规眼镜的方式更舒服地套在耳朵上。
[0039] 框架302支撑左和右光学组件(被标记为310L和310R),所述光学组件可以是波导(例如,由玻璃或聚合物形成)。
[0040] 中央部分304可以容纳例如在图2中所描述的CPU 303、存储器328、和网络接口324。此外,框架302可以容纳以微显示器为形式的光引擎以及以凸透镜和准直透镜为形式的成像光学设备。光引擎在一些实施例中可以包括另外的处理器或者采用CPU 303以为微显示器生成图像。微显示器可以是任何类型的图像源光,例如,液晶显示器(LCD)、背光LCD、LED 的矩阵阵列(无论有组织的还是无组织的)、以及任何其他适合的显示器。显示器可以是由电路驱动的,所述电路激活显示器的个体像素以生成图像。来自每个显示器的大体上准直的光通过在每个组件上所提供的相应的内耦合区域312L、312R而被输出或者耦合到每个光学组件310L、310R中。接着,可以通过涉及衍射和TIR的机制将内耦合的光横向引导至相应的中间 (折叠)区域314L、314R中的光学组件,并且还向下引导到光在其处光朝向用户的眼睛出射的相应的出射区域316L、316R中。
[0041] 光学组件310可以大体上是透明的,以使得用户不仅可以观看来自光引擎的图像,还可以通过光学组件来观看真实世界视野。
[0042] 光学部件可以具有折射率n,这使得发生完全内部反射以引导来自光引擎的光束沿着中间扩展区域314,并且向下朝向出射区域316。
[0043] 以头戴式耳机或头戴式设备为形式的用户设备102还可以包括被配置为捕获佩戴头戴式耳机的用户的视场的至少一个照相机。例如,在图3中所示出的头戴式耳机包括被配置为分别从用户的左眼和右眼捕获近似的视场(或视野)的立体相机318L和318R。在一些实施例中,一个相机可以被配置为捕获适合的视频图像,而另一相机或距离感测传感器被配置为捕获或确定从用户到用户的环境中的对象的距离。
[0044] 类似地,以头戴式耳机为形式的用户设备102可以包括安装在头戴式耳机的框架306上的多个麦克风。在图3中所示出的示例示出了分别位于支撑延伸部或臂306和308的“前”端处的左麦克风322L和右麦克风322R。支撑延伸部或臂306和308还可以包括“左”和“右”声道扬声器、耳塞、或其他音频输出换能器。例如,在图3中所示出的头戴式耳机包括充当左和右音频声道输出扬声器的骨传导音频换能器320L和320R。
[0045] 在本文中描述了关于混合现实(MR)应用的概念,然而在其他实施例中,相同的概念可以应用于任何多方通信应用。混合现实应用可以例如涉及场景的共享,其中,包括相机的设备被配置为捕获图像或视频,并且将该图像或多个图像发送至其他设备。此外,可以通过对象的添加、删除、和交互来增强或注释图像或视频。这些对象或虚拟对象可以“被放置”在图像场景中,并且可以具有能够被参与者(包括场景所有者)“看见”并与之交互的视觉表示。对象不仅可以由位置来定义,还包括其他属性,例如对象类型和状态。对象例如可以具有诸如音频/视频/文本内容之类的相关联的内容。参与者可以例如将视频播放器对象置于共享的场景中。接着,同一参与者可以与对象进行交互以开始播放视频以供所有参与者观看。接着,另一参与者可以与视频播放器对象进行交互以控制回放或者改变视频播放器对象在场景中的位置。
[0046] 可以关于场景以及此外的场景的三维表示来进行对象的放置。为了使得对象的精确放置能够在远程设备上被表示或呈现,与场景相关联的表面再现(SR)或网格数据可以被传递给共享场景的所有参与者。
[0047] 关于图4a是针对用户设备的适合的发送(媒体栈)管线架构的示例。在本文所描述的这样的实施例中,用户设备可以被配置为生成图像(视频数据)和表面再现(SR)或网格数据。
[0048] 在所示出的示例中,用于生成共享场景的图像是由(红-绿-蓝)RGB 传感器/相机403捕获的。RGB传感器/相机403可以被配置为向适合的设备视频源405传递所捕获的RGB原始数据,并且还传递任何相机姿势/投影矩阵信息。
[0049] 在图4a中所示出的示例架构还包括深度传感器/相机401,其被配置为捕获可以被传递至表面再现(SR)引擎和数据库402的深度信息。SR引擎和数据库402可以被配置为接收深度信息并且根据已知的网格/SR方法来生成SR原始数据。接着,可以将SR原始数据被传递至设备视频源405。
[0050] 视频源405可以被配置为接收SR原始数据和RGB原始数据以及任何相机姿势/投影矩阵信息。此外,视频源405可以被配置为将视频原始数据以SR原始数据为形式输出至适合的SR信道编码器407,并且根据原始和相机姿势/投影矩阵数据将视频图像数据输出至适合的H.264信道编码器 409。在本文所描述的示例中,H.264信道编码器409是适合的视频编码器的示例。应当理解的是,在一些其他实施例中,所采用的视频编码解码器是任何适合的编码解码器。例如,编码器和解码器可以采用高效视频编码 HEVC实现。
[0051] SR信道编码器407可以被配置为接收和编码SR原始数据以生成适合的经编码的SR数据。接着,SR信道编码器407可以被配置为将经编码的 SR数据传递至分组生成器411。具体地,经编码的数据可以被传递至SR 分组创建器413。
[0052] H.264信道编码器409可以类似地被配置为接收原始图像/视频帧和相机姿势/投影矩阵数据,并且处理它们以生成经编码的帧和SEI(补充增强信息)消息数据。经编码的帧和SEI消息数据可以被传递至分组生成器411,并且具体地被传递至H.264分组创建器415。
[0053] 关于图9a示出了针对帧(原始图像/视频帧)与相机姿势/投影矩阵信息的组合以及处理它们以生成编码帧和SEI(补充增强信息)消息数据的示例管线架构。相机固有的(集成到相机本身的)和非固有的(相机所处的3D环境的一部分的)数据或信息(例如,相机姿势(非固有的)和投影矩阵(固有的)数据)描述了相机捕获属性。该信息(例如,帧时间戳和帧朝向)应该与视频帧同步以使其从帧到帧改变。在如图9a中所示出的实施例中采用的管线架构应该支持对其他平台的易扩展性和编码解码器可交换性。
[0054] 如在这里所描述的概念用于在视频通道中对相机固有的和非固有的数据进行编码,并将其作为SEI消息在带内传送。管线架构应该以平台无关的方式将数据传送至编码器。例如,针对发送机管线而描述了应用程序接口(API)调用序列。
[0055] 如在图9a中所示出的,为了实现与编码解码器无关的实现,SEI可以被视频编码器嵌入到比特流中并且被视频解码器读出。
[0056] 例如,硬件组件RGB相机901可以被配置为生成RGB帧数据。接着,可以将RGB帧数据传递至OS/平台层以及媒体捕获(和源读取器)903。媒体捕获实体903还可以被配置为接收相机姿势和投影矩阵并且将这些相机固有的和非固有的值作为自定义属性来附加。接着,可以将媒体采样和自定义属性传递至媒体管线层,并经由捕获实体905而传递至视频编码器907。视频编码器907可以例如是在图4a中所示出的H.264信道编码器。接着,视频编码器907可以将相机姿势和投影矩阵作为用户数据未登记的SEI消息在带内传递。SEI消息可以例如在SEI附加实体911中与从H.264编码器 909输出的视频帧数据进行组合。示例SEI消息定义如下:
[0057]
[0058] 其中,
[0059] F(1比特)是forbidden_zero_bit,如在[RFC6184],章节1.3.中规定的,
[0060] NRI(2比特)是nal_ref_idc,如在[RFC6184],章节1.3.中规定的。
[0061] Type(类型)(5比特)是nal_unit_type,如在[RFC6184],章节1.3.中规定的,其在一些实施例中被设置为6.,
[0062] payloadType(有效载荷)(1字节)是SEI有效载荷类型,并且在一些实施例中被设置为5以指示用户数据未登记的SEI消息。由该协议所使用的语法是如在[ISO/IEC14496-10:2010],章节7.3.2.3.1.中所定义的.,
[0063] payloadSize(1字节)是SEI有效载荷大小。由该协议针对此字段而使用的语法与在[ISO/IEC14496-10:2010],章节7.3.2.3.1.中所定义的语法相同。 payloadSize值是除了F、NRI、Type、payloadType和payloadSize字段之外的流布局SEI消息的大小.,[0064] uuid_iso_iec_11578(16字节)是通用唯一标识符(UUID),其用于指示SEI 消息是流布局,并且在一些实施例中被设置为{0F5DD509-CF7E-4AC4- 9E9A-406B68973C42}.,[0065] T(1字节)是类型字节,并且在一些实施例中,使用值1来标识相机姿势信息,而使用值2来标识相机投影矩阵信息.,
[0066] L(1字节)是随后的值字段减1的字节长度,并且具有有效值范围0-254,其指示1-255字节.,
[0067] V(N字节)是值并且该值的长度被指定为L字段的值。
[0068] 与分组生成器411相关联的概念是控制对视频和SR数据的分组,以便使数据的接收机能够产生可靠和有效的混合现实体验。
[0069] 分组生成器411可以例如包括SR分组创建器413。SR分组创建器413 可以被配置为生成可以被传递至分组类型敏感的整形器(shaper)419的SR 片段分组。此外,SR分组创建器413可以出于重传反馈的目的而被控制。在一些实施例中,针对重传反馈而使用NACK方法可能是不适合的,并且因此可以实现ACK方法。
[0070] 因此,在一些实施例中,SR分组创建器413可以被配置为将对任何SR 数据分组的引用保存在未决缓冲器中直到所述SR数据分组被发送为止。一旦分组被发送,则可以将所述引用移动至未确认的缓冲器。
[0071] 在这样的实施例中,未确认的缓冲器可以具有限制发送机和接收机之间的业务的窗口大小。
[0072] 接着,可以保存对SR数据分组的引用直到接收机确认接收到所述分组为止。
[0073] 在一些实施例中,未确认的缓冲器窗口大小可以根据接收机缓冲器深度而动态地调整。在一些实施例中,未确认的缓冲器窗口大小可以是静态值,例如32。
[0074] 在 一 些 实 施 例中 ,即 使 在没 有 接 收 到 反 馈 消 息 ( 例 如 ,包 括 AcknowledgmentBitMap(确认比特映射)的消息)时,SR分组创建器413 可以被配置为在SR帧到达时继续发送来自未决缓冲器的SR数据分组。实现继续发送方法表示在接收机处不应该发生饥饿。
[0075] 反馈消息可以包括值(例如,AcknowledgmentBitMap消息中的值 baseSequence)。增加的值意味着接收机已确认了所有最大为值-1 (baseSequence-1)并且包括值-1的分组。
[0076] 在一些实施例中,SR分组创建器413可以被配置为仅当有足够的带宽时才发送超过经学习的接收机缓冲器深度的数据分组。
[0077] 在一些实施例中,发送速度可能受到双向信道的RTT(往返时间)的限制。例如当未确认的缓冲器窗口大小为128个分组,而RTT为200ms,并且MPU(应用于SR数据片段的最大分组单元)为1000时,则最大发送速度将被限制为128*1000*(1000/200)=5000kb/s。
[0078] 因此 ,在一些实施例中,可以调整未确认的缓冲器窗口大小以及 (AcknowledgmentBitMap)反馈消息的长度来改变最大速率。
[0079] 类似地,分组生成器411可以包括H.264分组创建器415。H.264分组创建器415可以被配置为生成适合的H.264分组片段并且将这些分组片段传递至分组类型敏感整形器419。
[0080] 分组生成器411还可以包括被配置为控制分组片段的生成和输出的带宽(BW)控制器417。BW控制器417可以负责划分SR分组创建器413 与H.264分组创建器415之间的带宽分配。在一些实施例中,BW控制器 417保持用于视频的最小带宽。
[0081] 在一些实施例中,BW控制器417可以被配置为在同时运行的每个并行信道之间初始地均匀分配数据。例如,针对单个H.264信道和单个SR信道,数据划分可以以50/50开始。然而,BW控制器417可以被配置为在确定的时段之后确定或估计针对H.264和SR带宽要求的短期和长期平均。例如,可以在2.5秒之后确定针对H.264和SR带宽要求的短期和长期平均。
[0082] 应当注意的是,在H.264/视频与SR带宽之间的这些值之间存在行为上的差异。对于视频而言,带宽值是被传递至H.264(视频)编码器409并且应该由H.264编码器409遵守的分配。而SR带宽值可以是对由SR信道所使用的带宽的观察,并且媒体平台可以对所述SR带宽值进行监测以确定如何调整SR编码器407内的细节等级参数。
[0083] 接着,分组敏感整形器419可以被配置为接收SR分组片段和H.264分组片段,并且生成被传递至传送设备421的适合的数据分组。分组敏感整形器419可以是感知H.264和SR数据分组的不同的实时要求的(网络业务) 整形器。例如,整形器可以被实现为H.264和SR分组之间的轮询 (round-robin)。
[0084] 传输设备421经由适合的输出流接收数据分组及其输出。
[0085] 关于图4b示出了用针对被配置为接收图像(视频数据)和表面再现 (SR)或网格数据的用户设备的适合的接收管线(媒体栈)架构。
[0086] 用户设备可以包括被配置为接收视频流数据并将该信息传递至接收机/ 分组组合器的P2P传输设备451。
[0087] 分组组合器可以包括SR分组组合器453和H.264分组组合器455。SR 分组片段可以被传递至SR分组组合器453以用于生成经编码的SR数据分组。H.264分组组合器455可以被配置为接收H.264分组片段并且生成经编码的帧数据。
[0088] SR分组组合器453可以 被配置为生成适合的 反馈消息(例如, AcknowledgmentBitMap反馈消息),其可以被发送至SR分组创建器以便控制SR数据的重传。
当检测到内容开始事件时(例如,当检测到 SR1_CONTENT_START_FLAG时),或者当检测到内容停止事件时(例如,当检测到SR1_CONTENT_STOP_FLAG时),或者当检测到文件事件的结束时(例如,当检测到SR1_CONTENT_EOF_FLAG时),可以生成反馈消息。此外,在一些实施例中,当新的SR分组到达SR分组组合器453并且自先前分组以来已经经过了预先确定的时段(例如,250ms)时,生成反馈消息。在一些实施例中,针对每第7(或其他确定的数量)个接收的分组生成反馈消息。在一些实施例中,确定数量的分组可以包括重传的分组。此外,在一些实施例中,可以在指示最后接收到的分组(baseSequence)的反馈值已经由确定数量(例如,7个)的分组增加之后来生成反馈消息。在一些实施例中,当SR解码器457报告错误时生成反馈消息。
[0089] 如在 本文中所 描述的 ,SR分 组创建 器被配 置为接收 反馈消 息 (AcknowledgmentBitMap)并且控制经缓冲的分组的重传。
[0090] 接着,经编码的SR数据分组可以被传递至SR信道解码器457以生成 SR原始数据。
[0091] H.264信道解码器459可以被配置为从H.264分组组合器455接收经编码的帧,并且输出适合的原始帧和相机姿势/投影矩阵数据。接着,可以将 SR原始数据和原始帧以及相机姿势/投影信息传递至视频接收器(sink)461。
[0092] 接着,视频接收器461可以被配置为将所接收的SR原始数据和原始帧以及相机姿势/投影数据输出至任何适合的远程视频应用463或者用于适合的3D场景渲染(在3D场景渲染器465)和视频服务渲染(在视频表面渲染器467)的库。
[0093] 关于图9b示出了用于从经编码的帧和SEI(补充增强信息)消息数据提取原始图像/视频帧以及相机固有和非固有数据(例如,姿势/投影矩阵数据)的示例管线架构。该管线架构与在图9a中所示出的示例管线架构所执行的过程相反。
[0094] 例如,媒体管线层可以包括视频解码器960。在一些实施例中,这是由如在图4b中所示出的H.264信道解码器459实现的。视频解码器960可以包括SEI提取器951,其被配置为从H.264帧数据中检测并提取与相机固有和非固有数据值(相机姿势和/或投影矩阵数据)相关联的任何所接收的SEI 数据。这可以通过解码器扫描到来的网络抽象层单元(NALU)并且从附加到每帧的SEI消息中提取相机固有和非固有数据(如果存在)来在视频 (SLIQ)解码器内实现。接着,可以经由解码器选项使得相机固有和非固有数据可用于解码器扩展和解码器回调。
[0095] 接着,视频解码器(例如,H.264解码器953)可以对不包含SEI消息的H.264比特流进行解码。
[0096] 媒体管线层还可以包括渲染器955,其被配置为使固有和非固有数据与帧数据同步,并且将其传递至OS/平台层。
[0097] OS/平台层还可以如在图9b中所示出的包括3D渲染引擎957,其被配置为转换视频帧图像并且利用固有和非固有数据以及SR数据生成适合于传递至显示器或屏幕959的3D渲染。应当理解的是,3D渲染引擎在一些实施例中可以被实现为应用。
[0098] 在实现如在本文中所描述的架构时,以视频或图像数据为形式的MR 场景以及生成场景的3D渲染所需要的数据可以被可靠地从一个设备传输至另一设备,并且使用可用带宽有效地被传输。
[0099] 如在本文中所描述的,MR的方面中的一个方面是分享和注释所捕获的场景的能力。例如,由场景中的一个参与者所捕获的视频可以通过添加对象来注释。对象可以位于具有经定义的位置和/朝向的场景中。此外,如在本文中所描述的对象可以与诸如视频、图像、音频、或文本之类的媒体类型相关联。在一些情况下,对象可以是交互性对象,这是因为对象可以是可移动的或改变的。例如,交互性对象可以与视频文件相关联,并且当对象由参与者“触摸”或选择时,向共享场景的所有参与者播放该视频。
[0100] 在场景内添加、删除、和修改对象可能是有问题的。然而,可以根据在本文中进一步详述的针对对象信息的示例架构和协议来处理这些问题。
[0101] 关于图5a示出了示例架构,该示例架构示出了适合于处理交互性对象并且与其他参与者共享混合现实(MR)场景的协议端点。在图5a中所示出的示例(以及其中所描述的示例)中,场景所有者491是与其他参与者共享其混合现实场景的协议端点。例如,场景所有者491可以包括操作如在图3中所示出的用户设备并且捕获用户A的环境的用户。场景所有者还可以被允许向场景视野添加、移除、和操纵(虚拟)对象(也被称为注释)。在一些实施例中,对象的添加、移除、或操纵可以使用用户界面来实现。
[0102] 场景参与者495可以是被配置为接收由场景所有者491所生成的混合现实场景的协议端点。场景参与者495还可以被配置为能够添加、移除、和操纵场景中的对象。
[0103] 可视化、位置、以及与先前所描述的共享场景中的这样的对象的交互可能呈现问题。对象可以具有视觉表示并且具有相关联的内容(例如,音频/视频/文本)。例如,参与者可以将视频播放器对象放置在共享场景中,并与其交互以开始播放视频以供所有参与者观看。另一参与者可以尝试与同一对象进行交互以控制回放或改变对象在场景中的位置。由此,对象应该出现在相对于视频或图像内的真实世界对象以及所有参与者的其他(虚拟)对象的相同位置处。
[0104] 此外,对于所有参与者而言,对象的状态也应该是一致的,受制于可接受的延迟。因此,例如当为所有参与者播放视频时,视频对象应该在大致相同的位置处显示相同的视频。
[0105] 还应该实现共享场景或混合现实应用以使得在任何时间加入协作会话的参与者能够将他们的场景视野与其他参与者的视野进行同步。换句话说,场景针对所有参与者是相同的,而与参与者加入会话的时间无关。
[0106] 类似地,混合现实应用程序应该能够使得场景被暂停或快照,从而使得会话可以被暂停,并且接着可以通过恢复快照在之后被继续。换句话说,即使没有用户使用该场景,其也应该具有持久性。
[0107] 在本文中所描述的架构可以用于实现被设计为高效地满足上述要求的消息协议和一组通信机制。因此,概念可以涉及通信机制,例如“仅仅最新的可靠消息传递”和“基于对象”的流控制。“仅仅最新的消息传递”的实现可以降低发送和/或接收的对象信息业务的容量,并且因此高效地利用处理器和网络带宽。这对于其中最小化处理器利用率和网络带宽是普遍的设计目标的移动和可穿戴设备而言是重要且期望的成就。类似地,基于对象的流控制允许发射机和接收机选择性地限制用于同步给定对象的状态的业务要求。
[0108] 如在图5a中所示出的,在一些实施例中,可以采用场景服务器493协议端点。场景服务器493可以被配置为在场景所有者491与参与者495之间中继消息。
[0109] 场景所有者491、参与者495、或服务器493可以采用充当协议客户端实体的应用(或app)。协议客户端实体可以被配置为控制协议端点以用于在协议端点之间传送和控制数据流。
[0110] 在以下示例中,使用如在图5a中所示出的场景服务器中介架构来执行对象消息交换。换句话说,消息经由将每个消息转发至其目的地的场景服务器493来传递。如在图5a中所示出的,场景服务器可以被视为与场景所有者491或参与者495分离的协议端点。然而,场景服务器493可以在场景所有者用户设备、参与者用户设备、或专用服务器设备中的一个内被实现。
[0111] 应当理解的是,在一些实施例中,消息交换是在对等的基础上执行的。由于对等消息交换的情况在概念上是服务器中介情况的特殊情况(其中场景所有者端点和服务器端点共同位于同一设备上),则以下示例也可以应用于对等实施例。
[0112] 本文中的数据模型可以用于促进对用于同步在本文中所描述的对象 (或注释)的协议的描述。在每个协议端点(例如,场景服务器、场景所有者、和参与者)处,会话管理实体或会话管理实体应用可以保持共享场景的视野。场景的视野可以是对场景内的对象(或注释)的表示。对象表示可以包括数据对象,所述数据对象包括诸如对象类型、空间或场景中的坐标和朝向之类的属性。接着,协议端点可以使用会话管理实体应用从而使用对象表示来保持一致的场景视野。以这样的方式,对场景对象的表示的任何更新可以被版本化并且使用协议消息而被传送至其他端点。场景服务器可以中继所有这些消息,并且在合适的情况下丢弃基于陈旧版本的更新。
[0113] 用于交换消息的协议可以分为数据平面和控制平面。在每个协议端点处,数据平面可以实现消息传递实体应用和分组传递实体应用,它们负责保持消息队列/分组队列并且追踪排队发送和/或接收消息和分组的传递状态。在以下实施例中,未完成的出站消息是已被发送但还未被接收机确认的消息。未完成的入站消息是已经被接收但还未被传递至本地端点(例如,会话管理实体)的消息。
[0114] 控制平面声明可以在场景服务器端点内被实现,并且可以被配置为保持场景所有者与其他参与者之间的场景的状态。例如,场景服务器493可以被配置为保持针对每个经连接的端点的协议版本和端点能力。
[0115] 关于图5a示出了在包括对象信息的共享场景混合现实应用的初始化中涉及的消息协议的示例。
[0116] 在以下示例中,场景所有者491可以被配置为使用协议客户端实体来创建端点并且获得服务器端点493的地址。地址确定可以是通过静态配置地址或者是通过域名系统(DNS)查询而进行的。
[0117] 接着,协议客户端实体应用可以通过发布连接请求消息并且将连接请求消息发送至服务器493来将自身声明为场景所有者从而登记所述场景以用于共享。
[0118] 在图5a中由步骤471示出了将连接请求消息从场景所有者491发送至服务器493的操作。
[0119] 接着,服务器493可以用适合的确认消息来对场景所有者491进行响应。
[0120] 在图5a中由步骤473示出了服务器将确认消息至场景所有者491的操作。
[0121] 接着,场景所有者491可以被配置为生成场景通知消息并将该消息发送至服务器493。
[0122] 在图5a中由步骤475示出了发送场景通知消息的操作。
[0123] 接着,服务器493可以将场景通知消息中继至受邀者。换句话说,场景通知消息可以包括由服务器使用以将场景通知消息发送至正确的位置的地址或适合的用户标识符。
[0124] 在图5a中由步骤477示出了从服务器493向参与者495发送场景通知消息的操作。
[0125] 接着,参与者端点可以使用其协议客户端应用生成连接请求消息,并将该消息发送至服务器493以登记加入场景的兴趣。
[0126] 在图5a中由步骤479示出了发送连接请求消息的操作。
[0127] 接着,服务器493可以转发连接请求或生成参与请求消息,并且将该消息发送给场景所有者491。
[0128] 在图5a中由步骤481示出了从服务器493向场景所有者491发送参与请求消息的操作。
[0129] 接着,场景所有者491可以确定参与者是否被授权参与并且生成参与响应消息。接着,可以将参与响应消息发送至服务器493。
[0130] 在图5a中由步骤483示出了从场景所有者491向服务器493发送参与响应消息的操作。
[0131] 接着,服务器493可以被配置为从参与响应消息生成连接响应消息,并且将连接响应消息发送给参与者495。
[0132] 在图5中由步骤485示出了发送连接响应消息485的操作。
[0133] 服务器和其他端点可以保持适合的定时器。例如,连接/加入状态机定时器可以用于在两个端点处交换连接/加入消息。此外,在一些实施例中可以采用保活(keepalive)定时器来触发对保活消息的发送。类似地,可以实现重传定时器来触发仅仅针对可靠消息的重传。
[0134] 关于图5b更加详细地示出了用户设备内的控制架构。逻辑层501,其可以包括处理对象信息的任何适合的应用,例如,会话管理实体应用、消息传递实体应用、分组传递实体应用、和连接状态实体应用。
[0135] 逻辑层501可以被配置为经由(出站)发送路径502和(入站)接收路径504来与I/O或客户层503进行通信。
[0136] I/O或客户端层503可以包括资源管理器511。所述资源管理器可以控制对象数据的处理。此外,所述资源管理器可以被配置为对(出站消息) 发送队列513和(入站消息)接收队列515进行控制。
[0137] 此外,资源管理器511可以被配置为向OS层505和NIC驱动器507 发送控制信号。这些控制信号可以例如是可以经由控制路径516、526发送至OS层505和NIC驱动器507的CancelSend(取消发送)和/或 SetReceiveRateLimit(设置接收速率限制)信号517。
[0138] 发送队列513可以被配置为从资源管理器接收分组,并且通过发送路径512将所述分组发送至OS层。接收队列515可以被配置为经由接收路径 514从OS层505接收消息。
[0139] OS层505可以从发送队列513接收出站消息,并且经由发送路径522 将这些消息传递至NIC驱动器507。此外,OS层505可以通过接收路径524 从NIC驱动器507接收消息,并且还经由接收路径514将这些消息传递至接收队列515。
[0140] 关于图6进一步详细地示出了会话管理实体应用600与消息传递实体和分组传递实体601以及连接状态实体603的交互的示例。
[0141] 会话管理实体600可以被配置为保持或接收对象表示属性,并且还检测何时接收到任何对象交互指令。例如,用户可以移动对象或者与对象交互以引起对象的属性中的一个属性改变。会话管理实体600可以被配置为处理对象交互指令/输入,并且生成或输出经修改的对象属性以使其被传递至消息传递实体/分组传递实体601。此外,连接状态实体应用600可以被配置为控制消息传递实体/分组传递实体。
[0142] 因此,例如,图7示出了示例流程图700,其示出针对发送路径的消息传递实体/分组传递实体601的操作。在该示例中,会话管理实体600可以生成新的或经修改的对象属性消息。
[0143] 在图7中由步骤S702示出了生成对象属性消息的操作。
[0144] 对象属性消息可以被传递至消息传递实体/分组传递实体,并且消息被标戳或者与序号和对象标识值相关联。对象标识值可以标识对象,而序号标识修改的序列内的位置。
[0145] 在图7中由步骤S704示出了利用序号和对象ID值来对消息进行标戳/ 关联的操作。
[0146] 接着,消息传递实体/分组传递实体601可以被配置为确定视频帧时段或其他视频帧相关的时段是否已经结束。
[0147] 在图7由步骤S706示出了确定帧或时段结束的操作。
[0148] 当时段还未结束时,该方法可以返回至生成下一个经修改的对象属性消息的操作。
[0149] 然而,当帧或时段已经被确定时,消息传递实体/分组传递实体可以被配置为检查当前视频帧或时段的具有经确定的对象标识符值的所有消息。
[0150] 在步骤S708中,示出了针对帧或时段而检查具有经确定的对象标识符的所有消息的操作。
[0151] 接着,消息传递实体/分组传递实体601可以被配置为基于序号从帧时段或其他时段内的消息确定最新的多个消息(或最新的一个消息)。
[0152] 在图7中由步骤S710示出了基于序号来确定最新消息的操作。
[0153] 接着,消息传递实体/分组传递实体601可以被配置为在发送路径中删除针对该具体的帧时段或其他时段而具有对象标识值的其他消息中的所有消息。
[0154] 在图7中由步骤S712示出了对帧时段或其他时段中具有对象ID的所有其他对象属性消息的删除。
[0155] 接着,方法可以返回以检查另一对象交互指令或输入。
[0156] 在实现这样的实施例时,可以控制在给定的视频帧时段中或其他时段中的针对具体对象的对象属性消息的消息流,以使得存在对给定对象的状态或位置进行更新的至少一个消息的传输,但网络没有挤满消息。此外,可以使得发送路径API在所有层处对应用可用以丢弃针对给定的对象ID在发送路径排队的多余的消息。
[0157] 此外,在一些实施例中,发送机可以被配置为提供关于经尝试或经取消的传输的反馈。
[0158] 在实现上述实施例时,服务器可以被配置为提供或执行应用层多播,而不超过接收机的消息速率限制。
[0159] 关于图8示出了示例流程图800,其示出针对接收路径的消息传递实体 /分组传递实体601的操作。接收路径是指具有端点处的应用的传输层实体、底层操作系统、和网络驱动器的所有到来的队列阶段。
[0160] 在一些实施例中,接收例如关于发送路径所描述的对象属性消息。
[0161] 在图8中由步骤S802示出了接收对象属性消息的操作。
[0162] 此外,消息传递实体/分组传递实体601还可以被配置为确定视频帧时段(或其他经确定的时段)是否已经结束。
[0163] 在图8中由步骤804示出了确定经确定的帧(或其他时段)的结束的操作。
[0164] 当时段还未结束时,方法可以循环回以接收另外的对象属性消息。
[0165] 接着,当时段结束时,连接状态实体应用603可以被配置为确定可以对其进行接收消息控制的一些参数估计和决策变量。
[0166] 例如,在一些实施例中,连接状态实体应用603可被配置为确定每个更新过程所需要或消耗的CPU周期的数量。
[0167] 在图8中由步骤S806示出了估计每次更新所消耗的CPU周期的操作。
[0168] 在一些实施例中,连接状态实体应用603可以被配置为确定或估计当前CPU负载和/或网络带宽。
[0169] 在图8中由步骤S808示出了确定当前CPU负载/网络带宽的操作。
[0170] 此外,在一些实施例中,连接状态实体应用603可以被配置为确定具体对象的对象优先级。对象优先级可以例如基于以下因素:对象是否在视野中、对象是否最近被查看、或者最近是否已经与对象交互。
[0171] 在图8中由步骤S810示出了确定至少一个决策变量的操作。
[0172] 接着,连接状态实体应用603可以在一些实施例中被配置为基于所确定的变量和容量确定中的至少一个来设置针对对象更新的“速率限制”。
[0173] 在图8中由步骤S812示出了设置速率限制的操作。
[0174] 接着,消息传递实体/分组传递实体601可以被配置为确定时段内的对象的最后的“n”个消息,其中“n”是速率限制。例如,这可以通过确定在时段内所接收的针对对象ID的消息上的最后“n”个序号来执行。
[0175] 在图8中由步骤814示出了确定最后“n”个消息的操作。
[0176] 接着,应用可以在接收的路径中删除针对该时段的该对象ID的所有消息,而不是最后“n”个消息。
[0177] 在图8中由步骤S816示出了删除时段中的具有对象ID的所有其他消息的操作。
[0178] 接着,方法可以返回至接收另外的对象消息的操作。
[0179] 以这样的方式,接收机不会过载有对象属性消息。
[0180] 尽管已经参考由用户对关于到来的实况视频的帧而定位的对象进行的交互而描述了实施例,但是本公开的实施例扩展至在由计算机所生成的图像上的交互。
[0181] 通常而言,可以使用软件、固件、硬件(例如,固定逻辑电路)、或者这些实现的组合来实现在本文中所描述的功能中的任何一个功能。在本文中所使用的术语“控制器”、“功能”、“组件”和“应用”通常表示软件、固件、硬件、或其组合。在软件实现的情况下,控制器、功能、组件、或应用表示在处理器(例如,CPU或多个CPU)上被执行时执行指定任务的程序代码。所述程序代码可以被存储在一个或多个计算机可读存储器设备中。在下文中所描述的技术的特征是平台无关的,这意味着这些技术可以被实现在具有多种处理器的多种商业计算平台上。
[0182] 例如,用户设备(用户终端)还可以包括使得用户终端的硬件执行操作的实体(例如,软件),例如处理器功能等。例如,用户终端可以包括可以被配置为保存使得用户终端并且更加特别地使得操作系统和用户终端的相关联的硬件执行操作的计算机可读介质。因此,所述指令用于配置操作系统和相关联的硬件执行操作,并且以该方式引起操作系统和相关联的硬件转换以执行功能。所述指令可以是由计算机可读介质通过各种不同的配置而向用户终端提供的。
[0183] 计算机可读介质的一个这样的配置是信号承载介质,并且因此被配置为例如经由网络向计算设备发送指令(例如,作为载波)。计算机可读介质还可以被配置为计算机可读存储介质并且因此不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪速存储器、硬盘存储器、以及可以使用磁的、光学的、以及其他技术来存储指令和其他数据的其他存储器设备。
[0184] 根据本公开的第一方面,存在通信架构内的用户设备,所述用户设备包括:图像捕获设备,其被配置为确定用于创建定义共享场景的视频通道的图像数据;固有/非固有数据确定器,其被配置为确定与所述图像捕获设备相关联的固有/非固有捕获设备数据;以及视频编码器,其被配置为对所述视频通道内的所述图像数据和所述固有/非固有捕获设备数据进行编码。
[0185] 所述视频编码器可以包括:帧编码器,其被配置为将所述图像数据编码为图像帧;以及补充增强信息附加器,其被配置为将所述固有/非固有捕获设备数据编码为附加至所述图像帧的补充增强信息消息。
[0186] 所述图像捕获设备可以包括:相机输入,其被配置为接收RGB帧数据;以及媒体捕获实体,其被配置为从所述RGB帧数据生成图像数据。
[0187] 所述媒体捕获实体还被配置为接收所述固有/非固有捕获设备数据,并且将所述固有/非固有捕获设备数据与所述图像数据相关联。
[0188] 所述固有/非固有捕获设备数据可以包括相机投影矩阵数据。
[0189] 所述固有/非固有捕获设备数据可以包括相机姿势数据。
[0190] 根据本公开的第一方面,存在通信架构内的用户设备,所述用户设备包括:接收机,其被配置为接收视频通道,所述视频通道包括针对从图像捕获设备所确定的共享场景的图像数据以及与所述图像捕获设备相关联的固有/非固有捕获设备数据;以及视频解码器,其被配置为从所述视频通道提取和解码所述图像数据以及与所述图像捕获设备相关联的所述固有/非固有捕获设备数据。
[0191] 所述视频通道包括经帧编码的视频数据流,其中,所述视频解码器包括:帧解码器,其被配置为对经编码的视频数据流进行帧解码;以及补充增强信息提取器,其被配置为从所述经编码的视频数据流内提取和解码补充增强信息消息。
[0192] 所述补充增强信息提取器包括:扫描器,其被配置为代理扫描到来的网络抽象层单元;以及提取器,其被配置为从与每帧附加的所述补充增强信息消息中提取固有/非固有捕获设备数据。
[0193] 根据本公开的第三方面,存在在通信架构内的用户设备处实现的方法,所述方法包括:从图像捕获设备确定用于创建定义共享场景的视频通道的图像数据;确定与所述图像捕获设备相关联的固有/非固有捕获设备数据;以及对所述视频通道内的所述图像数据和所述固有/非固有捕获设备数据进行编码。
[0194] 对所述视频通道内的所述图像数据和所述固有/非固有捕获设备数据进行编码包括:将所述图像数据编码为图像帧;以及将所述固有/非固有捕获设备数据编码为附加至所述图像帧的补充增强信息消息。
[0195] 根据本公开的第四方面,存在在通信架构内的用户设备处实现的方法,所述方法包括:接收视频通道,所述视频通道包括针对从图像捕获设备所确定的共享场景的图像数据以及与所述图像捕获设备相关联的固有/非固有捕获设备数据;从所述视频通道提取和解码所述图像数据;以及提取与所述图像捕获设备相关联的所述固有/非固有捕获设备数据。
[0196] 所述视频通道包括经帧编码的视频数据流,其中,从所述视频通道提取和解码所述图像数据包括对所述编码的视频数据流进行帧解码,并且提取与所述图像捕获设备相关联的所述固有/非固有捕获设备数据包括从所述编码的视频数据流内提取和解码补充增强信息消息。
[0197] 根据本公开的第五方面,存在一种计算机程序产品,所述计算机程序产品在非瞬时性计算机可读介质上被实施,并且被配置为当在通信架构内的用户设备的处理器上被执行时,执行以下操作:从图像捕获设备确定用于创建定义共享场景的视频通道的图像数据;确定与所述图像捕获设备相关联的固有/非固有捕获设备数据;以及对所述视频通道内的所述图像数据和所述固有/非固有捕获设备数据进行编码。
[0198] 根据本公开的第六方面,存在一种计算机程序产品,所述计算机程序产品在非瞬时性计算机可读介质上被实施,并且被配置为当在通信架构内的用户设备的处理器上被执行时,执行以下操作:接收视频通道,所述视频通道包括针对从图像捕获设备所确定的共享场景的图像数据以及与所述图像捕获设备相关联的固有/非固有捕获设备数据;从所述视频通道提取和解码所述图像数据;以及提取与所述图像捕获设备相关联的所述固有/非固有捕获设备数据。
[0199] 尽管已经用特定于结构特征和/或方法动作的语言对主题进行了描述,但是应当理解的是,在所附权利要求中限定的主题不一定限于在上文本中所描述的具体特征或动作。相反,在上文中所描述的具体特征和动作是作为实现权利要求的示例形式而公开的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈