CN113396389A - 用于分离式渲染的标准化的api的方法和设备 - Google Patents
用于分离式渲染的标准化的api的方法和设备 Download PDFInfo
- Publication number
- CN113396389A CN113396389A CN202080009618.8A CN202080009618A CN113396389A CN 113396389 A CN113396389 A CN 113396389A CN 202080009618 A CN202080009618 A CN 202080009618A CN 113396389 A CN113396389 A CN 113396389A
- Authority
- CN
- China
- Prior art keywords
- server
- api
- user device
- split
- communication interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开涉及用于图形处理的方法和装置。本公开的各方面可以为用户设备和服务器确定至少一个分离式API。此外,本公开的方面可以基于分离式API在用户设备与服务器之间建立通信接口。此外,本公开的方面可以基于通信接口和分离式API在用户设备与服务器之间进行通信。在一些方面,本公开可以在用户设备或服务器中的至少一个上实现至少一个分离式API。本公开的各方面还可以基于至少一个分离式API在用户设备与服务器之间划分至少一个应用工作负载。此外,本公开的方面可以在用户设备或服务器处编码或解码应用信息。
Description
相关申请的交叉引用
本申请要求于2019年1月23日提交的、题为“METHODS AND APPARATUS FORSTANDARDIZED APIS FOR SPLIT RENDERING”的印度临时申请第201941002809号,以及于2020年1月13提交的、题为“METHODS AND APPARATUS FOR STANDARDIZED APIS FOR SPLITRENDERING”的美国专利申请第16/741,554号的权益,通过引用将其全部内容明确并入本文。
技术领域
本公开通常涉及处理***,更具体地,涉及一种或多种用于图形处理的技术。
背景技术
计算设备经常利用图形处理单元(GPU)来加速用于显示的图形数据的渲染。例如,这样的计算设备可以包括计算机工作站、诸如所谓的智能手机的移动电话、嵌入式***、个人计算机、平板计算机和视频游戏控制台。GPU执行包括一个或多个处理级的图形处理管线,这些处理级一起操作以执行图形处理命令并输出帧。中央处理单元(CPU)可以通过向GPU发出一个或多个图形处理命令来控制GPU的操作。现代的CPU通常能够同时执行多个应用(application),每个应用可能需要在执行过程中利用GPU。为显示器上的视觉呈现提供内容的设备通常包括GPU。
通常,设备的GPU被配置为执行图形处理管线中的过程。然而,随着无线通信和更小的手持设备的出现,人们越来越需要改进的图形处理。
发明内容
以下呈现了一个或多个方面的简化概述,以便提供对这些方面的基本理解。该概述不是所有预期方面的广泛概述,并且既不旨在标识所有方面的关键元素,也不旨在描绘任何或所有方面的范围。其唯一目的是以简化的形式呈现一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。
在本公开的一个方面,提供了一种方法、计算机可读介质和装置。该装置可以是用户设备、服务器、中央处理单元(CPU)、图形处理单元(GPU)或能够执行图形处理的任何装置。装置可以为用户设备和服务器确定至少一个分离式(split)应用程序接口(application program interference,API)。此外,装置可以基于至少一个分离式API在用户设备与服务器之间建立通信接口。在一些方面,装置可以在用户设备或服务器中的至少一个上实现至少一个分离式API。装置还可以基于至少一个分离式API在用户设备与服务器之间划分至少一个应用工作负载。此外,装置可以在用户设备或服务器处编码或解码应用信息。另外,装置可以基于通信接口和至少一个分离式API在用户设备与服务器之间进行通信。
在附图和以下描述中阐述本公开的一个或多个示例的细节。从说明书和附图以及权利要求中,本公开的其他特征、目的和优点将变得显而易见。
附图说明
图1是示出根据本公开的一种或多种技术的示例内容生成***的框图。
图2示出了根据本公开的一种或多种技术的示例GPU。
图3示出了包括应用接口的示例流程图。
图4示出了根据本公开的一种或多种技术的示例架构。
图5示出了根据本公开的一种或多种技术的示例架构。
图6示出了根据本公开的一种或多种技术的示例架构。
图7示出了根据本公开的一种或多种技术的示例架构。
图8示出了根据本公开的一种或多种技术的示例架构。
图9示出了根据本公开的一种或多种技术的示例方法的示例流程图。
具体实施方式
在一些情况下,开放式扩展现实(XR)可以被不同的XR设备和应用利用,以通过标准化的应用程序接口(API)彼此通信。然而,开放式XR中的一些过程可能假设应用和XR运行时(runtime)是同位的,即,在同一设备上。在渲染负载可能完全或部分偏离(offset)到远程服务器的分离式XR的上下文中,标准化的API可能不存在。例如,可能需要为单个设备设计应用,因为分离式XR内的应用可能无法与任何类型的设备互操作。本公开的各方面包括标准化用于分离式渲染的API的***和方法。通过这样做,本发明的各方面可以在XR、增强现实(AR)或虚拟现实(VR)设置中引入应用与设备之间的互操作性。因此,基于本公开的API架构,不同类型的分离式渲染设备或应用可以与其他分离式渲染设备或应用互操作。
以下将参考附图更全面地描述***、装置、计算机程序产品和方法的各个方面。然而,本公开可以以许多不同的形式来体现,并且不应该被解释为限于贯穿本公开呈现的任何特定结构或功能。相反,提供这些方面是为了使本公开详尽和完整,并将本公开的范围完全传达给本领域技术人员。基于本文的教导,本领域技术人员应该理解,本公开的范围旨在覆盖本文公开的***、装置、计算机程序产品和方法的任何方面,无论是独立于本公开的其他方面还是与本公开的其他方面结合来实现。例如,可以使用本文阐述的任何数量的方面来实现装置或实践方法。此外,本公开的范围旨在覆盖这样的装置或方法,该装置或方法使用除了本文阐述的本公开的各个方面之外或者与之不同的其他结构、功能或结构和功能来实践。本文公开的任何方面可以由权利要求的一个或多个元素来体现。
尽管本文描述了各个方面,但是这些方面的许多变化和置换都落入本公开的范围内。尽管提到了本公开各方面的一些潜在的益处和优点,但是本公开的范围并不旨在局限于特定的益处、用途或目标。相反,本公开的方面旨在广泛适用于不同的无线技术、***配置、网络和传输协议,其中一些在附图和以下描述中以示例的方式示出。具体实施方式和附图仅仅是对本公开的说明,而不是限制本公开的范围,本公开的范围由所附权利要求及其等价物限定。
参考各种装置和方法呈现了几个方面。在以下具体实施例中描述了这些装置和方法,并在附图中通过各种块、组件、电路、过程、算法等(统称为“元素”)将其示出。这些元素可以使用电子硬件、计算机软件或其任意组合来实现。将这些元素实现为硬件还是软件取决于特定的应用和对整个***施加的设计限制。
举例来说,元素、或元素的任何部分、或元素的任何组合可以被实现为包括一个或多个处理器(也可以被称为处理单元)的“处理***”。处理器的示例包括微处理器、微控制器、图形处理单元(GPU)、通用GPU(GPGPU)、中央处理单元(CPU)、应用处理器、数字信号处理器(DSP)、精简指令集计算(RISC)处理器、片上***(SOC)、基带处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、选通逻辑、分立硬件电路以及被配置为执行贯穿本公开描述的各种功能的其他合适硬件。处理***中的一个或多个处理器可以执行软件。无论是指软件、固件、中间件、微码、硬件描述语言还是其他,软件可以被广义地理解为指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用、软件应用、软件包、例程、子程序、对象、可执行程序、执行线程、过程、函数等。术语应用可以指软件。如本文所述,一种或多种技术可以指应用,即,被配置为执行一个或多个功能的软件。在这样的示例中,应用可以被存储在存储器(例如,处理器的片上存储器、***存储器或任何其他存储器)上。本文描述的硬件(例如处理器)可以被配置为执行应用。例如,应用可以被描述为包括代码,当由硬件执行时,该代码使得硬件执行本文描述的一种或多种技术。作为示例,硬件可以从存储器访问代码,并执行从存储器访问的代码,以执行本文描述的一种或多种技术。在一些示例中,在本公开中标识了组件。在这样的示例中,组件可以是硬件、软件或其组合。这些组件可以是单独的组件或单个组件的子组件。
因此,在本文描述的一个或多个示例中,所描述的功能可以以硬件、软件或其任意组合来实现。如果以软件实现,这些功能可以被存储在计算机可读介质上或被编码为计算机可读介质上的一个或多个指令或代码。计算机可读介质包括计算机存储介质。存储介质可以是可由计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、光盘存储、磁盘存储、其他磁存储设备、上述类型的计算机可读介质的组合,或者可以用于以可由计算机访问的指令或数据结构的形式存储计算机可执行代码的任何其他介质。
总的来说,本公开描述了用于在单个设备或多个设备中具有图形处理管线、改善图形内容的渲染和/或减少处理单元(即,被配置为执行本文描述的一种或多种技术的任何处理单元,例如GPU)的负载的技术。例如,本公开描述了用于利用图形处理的任何设备中的图形处理的技术。贯穿本公开描述了其他示例益处。
如本文所使用的,术语“内容”的实例可以指“图形内容”、“图像”,反之亦然。不管这些术语是用作形容词、名词还是其他词类,都是如此。在一些示例中,如本文所使用的,术语“图形内容”可以指由图形处理管线的一个或多个过程产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指由被配置为执行图形处理的处理单元产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指由图形处理单元产生的内容。
在一些示例中,如本文所使用的,术语“显示内容”可以指由被配置为执行显示处理的处理单元生成的内容。在一些示例中,如本文所使用的,术语“显示内容”可以指由显示处理单元生成的内容。图形内容可以被处理成为显示内容。例如,图形处理单元可以向缓冲区(其可以被称为帧缓冲区)输出图形内容(例如帧)。显示处理单元可以从缓冲区读取图形内容(例如一个或多个帧),并在其上执行一种或多种显示处理技术以生成显示内容。例如,显示处理单元可以被配置为在一个或多个渲染层上执行合成以生成帧。作为另一个示例,显示处理单元可以被配置为将两个或更多层合成、混合或以其他方式组合在一起成为单个帧。显示处理单元可以被配置为执行缩放,例如对帧执行放大或缩小。在一些示例中,帧可以指层。在其他示例中,帧可以指已经混合在一起形成该帧的两层或更多层,即,帧包括两层或更多层,并且包括两层或更多层的帧可以被随后混合。
图1是示出被配置为实现本公开的一种或多种技术的示例内容生成***100的框图。内容生成***100包括设备104。设备104可以包括用于执行本文描述的各种功能的一个或多个组件或电路。在一些示例中,设备104的一个或多个组件可以是SOC的组件。设备104可以包括被配置为执行本公开的一种或多种技术的一个或多个组件。在所示的示例中,设备104可以包括处理单元120、内容编码器/解码器122和***存储器124。在一些方面,设备104可以包括多个可选组件,例如,通信接口126、收发器132、接收器128、发送器130、显示处理器127以及一个或多个显示器131。对显示器131的引用可以指一个或多个显示器131。例如,显示器131可以包括单个显示器或多个显示器。显示器131可以包括第一显示器和第二显示器。第一显示器可以是左眼显示器,并且第二显示器可以是右眼显示器。在一些示例中,第一显示器和第二显示器可以接收用于在其上呈现的不同的帧。在其他示例中,第一显示器和第二显示器可以接收用于在其上呈现的相同的帧。在另外的示例中,图形处理的结果可能不显示在设备上,例如,第一显示器和第二显示器可能不接收任何用于在其上呈现的帧。相反,帧或图形处理结果可能被传送到另一个设备。在一些方面,这可以称为分离式渲染。
处理单元120可以包括内部存储器121。处理单元120可以被配置为(例如在图形处理管线107中)执行图形处理。内容编码器/解码器122可以包括内部存储器123。在一些示例中,设备104可以包括显示处理器,例如显示处理器127,以在由一个或多个显示器131呈现之前,对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。显示处理器127可以被配置为执行显示处理。例如,显示处理器127可以被配置为对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。一个或多个显示器131可以被配置为显示或以其他方式呈现由显示处理器127处理的帧。在一些示例中,一个或多个显示器131可以包括以下之中的一个或多个:液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、投影显示设备、增强现实显示设备、虚拟现实显示设备、头戴式显示器或任何其他类型的显示设备。
处理单元120和内容编码器/解码器122外部的存储器(例如***存储器124)可以被处理单元120和内容编码器/解码器122访问。例如,处理单元120和内容编码器/解码器122可以被配置为从外部存储器(例如***存储器124)读取和/或向外部存储器写入。处理单元120和内容编码器/解码器122可以经由总线通信地耦合到***存储器124。在一些示例中,处理单元120和内容编码器/解码器122可以经由总线或不同的连接彼此通信地耦合。
内容编码器/解码器122可以被配置为从任何源(例如***存储器124和/或通信接口126)接收图形内容。***存储器124可以被配置为存储接收到的经编码或经解码的图形内容。内容编码器/解码器122可以被配置为以经编码的像素数据的形式(例如从***存储器124和/或通信接口126)接收经编码或经解码的图形内容。内容编码器/解码器122可以被配置为编码或解码任何图形内容。
内部存储器121或***存储器124可以包括一个或多个易失性或非易失性存储器或存储设备。在一些示例中,内部存储器121或***存储器124可以包括RAM、SRAM、DRAM、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、磁数据介质或光存储介质或任何其他类型的存储器。
根据一些示例,内部存储器121或***存储器124可以是非暂时性存储介质。术语“非暂时性”可以指示存储介质没有被体现在载波或传播的信号中。然而,术语“非暂时性”不应被解释为意味着内部存储器121或***存储器124是不可移动的,或者其内容是静态的。作为一个示例,***存储器124可以从设备104移除并移动到另一个设备。作为另一个示例,***存储器124可以是不可从设备104移除的。
处理单元120可以是中央处理单元(CPU)、图形处理单元(GPU)、通用GPU(GPGPU)或可以被配置为执行图形处理的任何其他处理单元。在一些示例中,处理单元120可以被集成到设备104的主板中。在一些示例中,处理单元120可以存在于安装在设备104的主板中的端口中的图形卡上,或者可以以其他方式被并入被配置为与设备104互操作的***设备中。处理单元120可以包括一个或多个处理器,例如一个或多个微处理器、GPU、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、分立逻辑、软件、硬件、固件、其他等效的集成或分立逻辑电路或其任意组合。如果这些技术部分地以软件来实现,则处理单元120可以将软件的指令存储在合适的非暂时性计算机可读存储介质(例如,内部存储器121)中,并且可以使用一个或多个处理器在硬件中执行指令以执行本公开的技术。前述任何一种,包括硬件、软件、硬件和软件的组合等,可以被认为是一个或多个处理器。
内容编码器/解码器122可以是被配置为执行内容解码的任何处理单元。在一些示例中,内容编码器/解码器122可以被集成到设备104的主板中。内容编码器/解码器122可以包括一个或多个处理器,例如一个或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、视频处理器、分立逻辑、软件、硬件、固件、其他等效的集成或分立逻辑电路或其任意组合。如果这些技术部分以软件实现,则内容编码器/解码器122可以将软件的指令存储在合适的非暂时性计算机可读存储介质(例如,内部存储器123)中,并且可以使用一个或多个处理器在硬件中执行指令以执行本公开的技术。前述任何一种,包括硬件、软件、硬件和软件的组合等,可以被认为是一个或多个处理器。
在一些方面,内容生成***100可以包括可选的通信接口126。通信接口126可以包括接收器128和发送器130。接收器128可以被配置为执行本文描述的关于设备104的任何接收功能。此外,接收器128可以被配置为从另一设备接收信息,例如,眼睛或头部位置信息、渲染命令或位置信息。发送器130可以被配置为执行本文描述的关于设备104的任何发送功能。例如,发送器130可以被配置为向另一设备发送信息,该信息可以包括对内容的请求。接收器128和发送器130可以被组合成收发器132。在这样的示例中,收发器132可以被配置为执行本文描述的关于设备104的任何接收功能和/或发送功能。
再次参考图1,在某些方面,图形处理管线107可以包括确定组件198,其被配置成为用户设备和服务器确定至少一个分离式应用程序接口(API)。确定组件198还可以被配置为基于至少一个分离式API在用户设备与服务器之间建立通信接口。确定组件198还可以被配置为在用户设备或服务器中的至少一个上实现至少一个分离式API。确定组件198还可以被配置为基于至少一个分离式API在用户设备与服务器之间划分至少一个应用工作负载。确定组件198还可以被配置为在用户设备或服务器处编码或解码应用信息。确定组件198还可以被配置为基于通信接口和至少一个分离式API在用户设备与服务器之间进行通信。
如本文所述,诸如设备104的设备可以指被配置为执行本文所述的一种或多种技术的任何设备、装置或***。例如,设备可以是服务器、基站、用户设备、客户端设备、站、接入点、计算机(例如,个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站或大型计算机)以及终端产品、装置、电话、智能电话、服务器、视频游戏平台或控制台、手持设备(例如,便携式视频游戏设备或个人数字助理(PDA))、可穿戴计算设备(智能手表、增强现实设备或虚拟现实设备)、不可穿戴设备、显示器或显示设备、电视、电视机顶盒、中间网络设备、数字媒体播放器、视频流设备、内容流设备、车载计算机、任何移动设备、被配置为生成图形内容的任何设备、或者被配置为执行本文描述的一种或多种技术的任何设备。本文的过程可以被描述为由符合公开的实施例的特定组件(例如,GPU)执行,但是在另外的实施例中,可以使用符合公开的实施例的其他组件(例如,CPU)执行。
GPU可以处理GPU管线中的多种类型的数据或数据包。例如,在一些方面,GPU可以处理两种类型的数据或数据包,例如,上下文寄存器包和绘制调用(draw call)数据。上下文寄存器包可以是一组全局状态信息(例如,关于全局寄存器、着色程序或常量数据的信息),全局状态信息可以控制图形上下文的处理方式。例如,上下文寄存器包可以包括关于颜色格式的信息。在上下文寄存器包的某些方面,可以有一个比特来指示哪个工作负载属于上下文寄存器。此外,可以有多个同时和/或并行运行的功能或编程。例如,功能或编程可以描述某个操作,例如,颜色模式或颜色格式。因此,上下文寄存器可以定义GPU的多个状态。
上下文状态可以用来确定单个处理单元(例如,顶点提取器(vertex fetcher,VFD)、顶点着色器(vertex shader,VS)、着色器处理器或几何处理器)如何运行,和/或处理单元以何种模式运行。为此,GPU可以使用上下文寄存器和编程数据。在一些方面,GPU可以生成工作负载,例如,基于模式或状态的上下文寄存器定义的管线中的顶点或像素工作负载。某些处理单元(例如,VFD)可以使用这些状态来确定某些功能,例如,顶点是如何装配的。由于这些模式或状态可能会改变,GPU可能需要改变对应的上下文。此外,对应于模式或状态的工作负载可能会遵循变化的模式或状态。
图2示出了根据本公开的一种或多种技术的示例GPU 200。如图2所示,GPU 200包括命令处理器(command processor,CP)210、绘制调用包212、VFD 220、VS 222、顶点缓存(vertex cache,VPC)224、三角形设置引擎(triangle setup engine,TSE)226、光栅化器(rasterizer,RAS)228、Z处理引擎(Z process engine,ZPE)230、像素插值器(pixelinterpolator,PI)232、片段着色器(fragment shader,FS)234、渲染后端(renderbackend,RB)236、L2缓存(L2 cache,UCHE)238和***存储器240。虽然图2显示了GPU 200包括处理单元220-238,但是GPU 200可以包括多个附加的处理单元。此外,处理单元220-238仅是一个示例,根据本公开,处理单元的任何组合或顺序都可以由GPU使用。GPU 200还包括命令缓冲区250、上下文寄存器包260和上下文状态261。
如图2所示,GPU可以利用CP(例如,CP 210)或硬件加速器将命令缓冲区解析成上下文寄存器包(例如,上下文寄存器包260),和/或绘制调用数据包(例如,绘制调用包212)。然后CP 210可以通过单独的路径向GPU中的处理单元或块发送上下文寄存器包260或绘制调用数据包212。此外,命令缓冲区250可以交替不同状态的上下文寄存器和绘制调用。例如,命令缓冲区可以以下述方式构造:上下文N的上下文寄存器、上下文N的(多个)绘制调用、上下文N+1的上下文寄存器和上下文N+1的(多个)绘制调用。
GPU可以以各种不同的方式渲染图像。在一些情况下,GPU可以使用渲染或图块渲染(tiled rendering)来渲染图像。在图块渲染GPU中,图像可以被划分或分离成不同的部分或图块。在图像的划分之后,可以分别渲染每个部分或图块。图块渲染GPU可以将计算机图形图像划分成网格格式,使得网格的每个部分(即,图块)被单独渲染。在一些方面,在装箱过程(binning pass)中,图像可以被划分成不同的面元(bin)或图块。在一些方面,在装箱过程中,在可以识别可见图元(primitive)或绘制调用的情况下,可以构建可见性流。
在一些方面,可以在多个位置和/或多个设备中执行图像或帧的渲染,例如,以便在不同设备之间划分渲染工作负载。例如,可以在服务器与用户设备之间分离渲染工作负载。在一些方面,这种过程可以被称为“分离式渲染”。在一些情况下,分离式渲染可以是用于将内容带到用户设备或头戴式显示器(HMD)的方法,其中计算机或图形处理的一部分可以在用户设备或HMD之外(例如,在服务器上)执行。
可以为许多不同类型的应用(例如,虚拟现实(VR)应用、增强现实(AR)应用、增强虚拟(AV)和/或扩展现实(XR)应用)执行分离式渲染。在VR应用中,在用户设备处显示的内容可以对应于渲染内容或动画内容(例如,在服务器或用户设备处渲染的内容)。在AR或XR应用中,在用户设备处显示的一部分内容可以对应于真实世界的内容(例如,真实世界中的对象),并且一部分内容可以是渲染内容或动画内容。
此外,可以在光学透视或视频透视设备中显示渲染内容或动画内容和真实世界内容,使得用户可以同时观看真实世界对象和渲染内容。在某些方面,XR内容可以指VR和AR内容两者。XR、VR和AR应用都可能涉及用户通过头戴设备查看的渲染内容。
分离式渲染可以通过在客户端或用户设备(例如,HMD或头戴设备)与服务器之间分离计算工作负载来在XR、AR或VR应用中提供高质量的用户体验。在一些方面,用户设备和服务器可以经由低延迟通信链路(例如,5G或Wi-Fi)彼此连接。此外,服务器可以位于低延迟通信链路附近,以减少时延。在一些方面,服务器可以被称为边缘服务器或云服务器。
在XR、VR和AR应用的一些情况下,用户设备或头戴设备可以包括GPU或图形处理设备,其可以为渲染内容执行必要的计算或图形处理。利用分离式渲染可以将大部分计算或图形处理转移到服务器。在这些情况下,服务器可以是能够执行从用户设备转移的一些计算或图形处理的任何设备。例如,服务器可以是云服务器、边缘服务器、个人计算机、智能电话或任何合适的设备。
开放式XR或OpenXR是用于不同的XR、AR、AV和/或VR设备和应用相互通信的一种方法。例如,在XR、AR、AV和/或VR应用的上下文中,开放式XR可以允许不同的设备和应用进行通信。这可以允许应用开发人员和设备制造商在很大程度上彼此不可知。例如,游戏开发人员可以开发开放式XR兼容的VR游戏,该游戏可以与不同的VR头戴设备或VR设备一起工作,这些设备反过来具有开放式XR兼容的运行时。
图3示出了示例流程图300。如图3所示,图300是开放式XR接口的图。更具体地,图300包括一个或多个步骤或应用:便携式VR和AR应用与引擎步骤302、开放式XR应用接口步骤304、VR和AR供应商运行时***失真校正和显示输出坐标***统一与预测步骤306、开放式XR设备插件扩展步骤308、设备供应商提供的设备驱动程序步骤310以及便携式VR和AR设备步骤312。
图3显示了当前设备状态可以从便携式VR和AR设备步骤312流向便携式VR和AR应用与引擎步骤302。如图3中进一步显示的,当前设备状态包括控制器或***设备状态或原始姿态(raw pose)。此外,当前设备状态包括归一化的预测姿态或输入事件。图3还显示了流出(outgoing)请求可以从便携式VR和AR应用与引擎步骤302流向便携式VR和AR设备步骤312。流出请求可以包括预失真(pre-distortion)图像到显示(image-to-display)、触觉(haptics)或后失真(post-distortion)图像到显示。
如上所述,开放式XR或OpenXR可以是用于不同XR设备和应用通过标准化的应用程序接口(API)相互通信的一种方法。API可以在服务器和设备上运行。然而,开放式XR中的一些过程可能假设应用和XR运行时是同位的,即,在同一设备上。在其中渲染负载可能完全或部分偏离到远程服务器的分离式XR或SplitXR的上下文中,标准化的API可能不存在。例如,可能需要为单个设备设计应用,因为分离式XR内的应用可能无法与任何类型的设备互操作。因此,目前需要分离式XR设备经由API架构与不同的应用程序互操作。
本公开的各方面包括将用于分离式渲染的API标准化的***和方法。通过这样做,本发明的各方面可以在XR、AR或VR设置中引入应用与设备之间的互操作性。因此,可以为支持分离式XR的任何设备设计应用,而不仅仅是为单个设备设计应用。因此,基于本公开的API架构,不同类型的设备可以与其他设备或应用互操作。例如,本公开可以包括将(例如,用于分离式渲染的)API标准化的架构。
本公开可以提出一种或多种API架构,其允许游戏开发者创建分离式XR体验,尽管游戏开发者对应用的终端设备或终端设备消费不可知。例如,可能不需要为特定设备设计应用,因为存在与不同设备的互操作性。此外,本公开可以提出允许分离式XR应用对用户设备或头戴式显示器(HMD)设备规范不可知的API架构。例如,本公开包括将开放式XR兼容的应用和设备包括为所提议的架构的专门化的方法。
图4示出了根据本公开的一种或多种技术的架构400。如图4所示,架构400是针对分离式XR提出的API架构。如图4进一步所示,架构400包括设备450和移动边缘计算(mobileedge compute,MEC)服务器410。图4还显示了用于分离式XR流量(traffic)的标准化协议在设备450与MEC服务器410之间通信。
MEC服务器410可以包括基于MEC的XR应用和引擎412、分离式XR API 414、分离式XR兼容的MEC供应商中间件416、分离式XR通信接口430和/或MEC到云接口420。设备450可以包括XR运行时452、分离式XR API 454、分离式XR兼容的设备中间件456、分离式XR通信接口460和/或设备到云接口470。如图4所示,用于分离式XR流量的标准化协议可以在分离式XR通信接口430与分离式XR通信接口460之间进行通信。
在一个方面,游戏或应用可以被部署在边缘服务器(例如,MEC服务器410)上。游戏可以通过MEC服务器410上的分离式XR通信接口430,向设备运行时(例如,XR运行时452)提交帧。在一些方面,边缘服务器处的底层中间件(例如,中间件416)可以确保到设备450的标准化通信栈的实现,以及编排(orchestrate)游戏实例。中间件416可以将帧或信息编码到例如编解码器,并且将该信息传送到设备450上的中间件456。中间件456可以解码来自中间件416的信息。此外,基于MEC的XR应用和引擎412可以经由分离式XR API 414与中间件416通信。如图4所示,中间件416可以是分离式XR兼容的。
此外,XR设备制造商可以类似地实现中间件(例如,中间件456),该中间件通过标准化的通信接口(例如,通信接口460)接收和发送分离式XR流量。在一些情况下,这种中间件可以由芯片制造商提供。此外,XR运行时452可以通过分离式XR API(例如,分离式XR API414和454)接收信息并将信息发送到服务器410。例如,XR运行时452可以向边缘服务器发送相机帧的流以运行对象识别。
在一些情况下,服务器410上的中间件416可以与设备450上的中间件456通信,例如,经由分离式XR通信接口430和分离式XR通信接口460。此外,XR运行时452可以经由分离式XR API 454与中间件456通信。这样,中间件456可以向运行时452提供信息。中间件456也可以是(例如,服务器410上的)应用或游戏的代理。
此外,中间件456可以帮助确保运行时452对于应用或游戏是否正在服务器上运行是不可知的。因此,运行时452可能不知道应用是正在设备450上运行还是在服务器410上运行。在一些方面,XR运行时452可以向中间件456揭露(expose)分离式XR API 454。中间件456还可以从运行时452提取姿态信息,并与中间件416通信该信息。因此,服务器410上的中间件416和设备450上的中间件456两者都可以编码或解码信息或数据。
在一些方面,应用或游戏的一部分可以在服务器410上运行,并且应用或游戏的一部分可以在设备450上运行。当在服务器410上产生某些信息时,设备450上的运行时452可以获得这些信息。此外,在可以被运行时452获得之前该信息可以在服务器410上首先被处理。此外,在设备450上产生的某些信息在其在设备450上被处理之前或之后,可以被服务器410获得。例如,在设备450上产生的相机信息或其他信息可以被发送到在服务器410上运行的应用。在一些方面,运行时452可以是在设备450上运行的应用或游戏。此外,服务器410可以产生将由运行时452利用的信息。
在一些方面,中间件416可以编码或解码信息(例如,来自中间件456的信息)。例如,中间件416可以编码或解码来自设备450的相机信息、应用或游戏信息、片段信息和/或点云信息。同样,中间件456可以编码或解码信息(例如,来自中间件416的信息)。例如,中间件456可以编码或解码来自服务器410的相机信息、应用或游戏信息、片段信息和/或点云信息。
此外,API 414和454可以被标准化,使得可以与任何设备实现互操作性。通信接口430和通信接口460也可以被标准化。这样,相同的应用可以在设备中间件(例如,中间件456)上运行,而不管中间件的类型如何。在一些情况下,中间件416和中间件456可能不需要被标准化,例如,中间件416和中间件456可以来自不同的供应商。基于以上,架构400可以帮助确保不同类型设备之间的互操作性。
在一些方面,分离式XR API兼容的应用可以在具有分离式XR API中间件的服务器上运行和/或与分离式XR API兼容的HMD或设备通信。类似地,分离式XR API兼容的设备可以与分离式XR API兼容的服务器通信,并且访问也是分离式XR API兼容的并且在该服务器上运行的应用。
图5示出了根据本公开的一种或多种技术的架构500。如图5所示,架构500是另一个用于分离式XR的API架构。如图5进一步所示,架构500包括设备550和MEC服务器510。图5还显示了用于分离式XR流量的标准化协议在设备550与MEC服务器510之间通信。
MEC服务器510可以包括基于MEC的XR应用和引擎512、分离式XR API 514、分离式XR兼容的MEC供应商中间件516、分离式XR通信接口530和/或MEC到云接口520。设备可以包括XR运行时552、分离式XR API 554、XR应用562、分离式XR API 564、分离式XR兼容的设备中间件556、分离式XR通信接口560和/或设备到云接口570。
在一些方面,可以在MEC服务器510与设备550之间分离应用或游戏。边缘服务器处的应用或游戏可以通过分离式XR通信接口530向运行时552提交一些纹理。设备550上的应用可以消耗这些纹理,渲染互补部分,和/或通过分离式XR API 554向XR运行时552提交帧。此外,运行时552可以直接向服务器510传输信息,或者该流量可以被设备上的应用拦截。在一些方面,XR运行时552可以向中间件556揭露分离式XR API 564。
图6示出了根据本公开的一种或多种技术的架构600。如图6所示,架构600将开放式XR集成在分离式XR内。如图6进一步所示,架构600包括设备650和MEC服务器610。图6还显示了用于分离式XR流量的标准化协议在设备650与MEC服务器610之间通信。
MEC服务器610可以包括基于MEC的XR应用和引擎612、分离式XR API 614、分离式XR兼容的MEC供应商中间件616、分离式XR通信接口630和/或MEC到云接口620。设备650可以包括XR运行时652、开放式XR API 654、分离式XR兼容的设备中间件656、分离式XR通信接口660和/或设备到云接口670。
在一些方面,设备650上的中间件656可以通过分离式XR通信接口660从服务器610上的游戏引擎接收帧。然后中间件656可以通过开放式XR API 654将这些帧提交给运行时652。例如,设备650上的开放式XR API 654可以是分离式XR通信接口660的专门化。通过利用设备650上的开放式XR API 654,本公开的各方面可以实现可以为开放式XR编写的分离式XR应用。在一些方面,XR运行时652可以向中间件656揭露开放式XR API 654。
此外,中间件可以通过开放式XR API 654轮询(poll)或监控姿态,和/或将其作为流传输到服务器610。此外,游戏引擎可以与分离式XR API 614兼容。游戏引擎也可以对于用户设备是否是开放式XR兼容的不可知。例如,游戏引擎可以响应姿态流来渲染帧。
图7示出了根据本公开的一种或多种技术的架构700。类似于上面讨论的架构600,架构700可以将开放式XR集成在分离式XR内。也如图7所示,架构700包括设备750和MEC服务器710。图7还显示了用于分离式XR流量的标准化协议在设备750与MEC服务器710之间通信。
如图7所示,MEC服务器710可以包括基于MEC的XR应用和引擎712、开放式XR API714、分离式XR兼容的MEC供应商中间件716、分离式XR通信接口730和/或MEC到云接口720。设备750可以包括XR运行时752、开放式XR API 754、分离式XR兼容的设备中间件756、分离式XR通信接口760和/或设备到云接口770。
在一些方面,服务器710上的应用或游戏可以是开放式XR兼容的。例如,服务器710上的游戏或应用可能不知道它是要部署在服务器710上还是设备750上。此外,服务器710上的游戏或应用可以通过开放式XR接口来轮询或监控姿态和控制器信息。然后游戏或应用可以向MEC供应商中间件716提交帧。
在一些情况下,服务器710上的开放式XR API 714可以是一种类型的分离式XRAPI。通过利用服务器710上的开放式XR API 714和/或设备750上的开放式XR API 754,本公开的各方面可以实现可以为开放式XR编写的分离式XR应用。例如,开放式XR API 714和开放式XR API 754可以经由预定义的接口(例如,接口730和接口760)进行通信。在一些方面,XR运行时752可以向中间件756揭露开放式XR API 754。此外,MEC供应商中间件716可以确保游戏引擎对于设备750是不可知的。MEC供应商中间件716还可以确保游戏引擎对被部署在服务器710上是不可知的。
图8示出了根据本公开的一种或多种技术的架构800。类似于上面讨论的架构600和700,架构800可以将开放式XR集成到分离式XR内。也如图8所示,架构800包括设备850和MEC服务器810。图8还显示了用于分离式XR流量的标准化协议在设备850与MEC服务器810之间通信。
如图8所示,MEC服务器810可以包括基于MEC的XR应用和引擎812、分离式XR API814、分离式XR兼容的MEC供应商中间件816、分离式XR通信接口830和/或MEC到云接口820。设备850可以包括XR运行时852、开放式XR API 854、XR应用862、分离式XR API 864、分离式XR兼容的设备中间件856、分离式XR通信接口860和/或设备到云接口870。
在一些方面,可以在服务器810与设备850之间分离游戏或应用。在向运行时852提交帧和/或从设备850轮询姿态信息或控制器事件时,设备850处的应用可以是开放式XR兼容的。在一些实例中,XR运行时852可以向中间件856揭露开放式XR API 854。此外,应用可以经由分离式XR API(例如,分离式XR API 814和/或分离式XR API 864)与MEC服务器810上的对应方通信。
图6、图7和图8示出了前述用于将用于分离式渲染的API标准化的过程的示例。如图6、图7和图8所示,本公开的各方面(例如,本文的服务器和用户设备)可以执行许多不同的步骤或过程来将用于分离式渲染的API标准化。例如,本文的服务器和用户设备可以为用户设备(例如,设备850)和服务器(例如,服务器810)确定至少一个分离式API(例如,API814和API 864)。在一些方面,该至少一个分离式API(例如,API 814和API 864)可以是至少一个分离式扩展现实(XR)API(例如,分离式XR API 814和分离式XR API 864)。
此外,本文的服务器和用户设备可以基于至少一个分离式API(例如,API 814和API 864),在用户设备(例如,设备850)与服务器(例如,服务器810)之间建立通信接口(例如,接口830和接口860)。装置还可以在用户设备(例如,设备750)或服务器(例如,服务器710)中的至少一个上实现至少一个分离式API(例如,API 714和API 764)。在一些方面,在用户设备(例如,设备750)或服务器(例如,服务器710)中的至少一个上实现的至少一个分离式API可以是至少一个开放式XR API(例如,开放式XR API 714和开放式XR API 764)。装置还可以基于至少一个分离式API(例如,开放式XR API 714和开放式XR API 764)在用户设备(例如,设备750)与服务器(例如,服务器710)之间划分至少一个应用工作负载。
此外,装置可以经由中间件816或中间件856在用户设备或服务器处编码或解码应用信息。在一些方面,经编码或经解码的应用信息可以允许用户设备和服务器经由接口830和接口860彼此通信。同样,应用信息可以基于中间件(例如,中间件816或中间件856)在用户设备或服务器处被编码或解码。
在一些情况下,用户设备可以包括设备中间件(例如,设备中间件856),并且服务器可以包括服务器中间件(例如,MEC供应商中间件816)。此外,用户设备可以包括基于设备中间件(例如,设备中间件856)和分离式API(例如,分离式XR API 864)的XR运行时应用(例如,XR运行时852)。在一些方面,应用信息可以包括例如在中间件856或中间件816处编码的应用信息的相机信息、游戏信息、片段信息或点云信息中的至少一个。此外,服务器可以包括至少一个基于引用信息的服务器应用(例如,应用和引擎812)。
此外,装置可以基于通信接口和至少一个分离式API在用户设备与服务器之间进行通信,例如,接口830和接口860可以通信信息。在一些方面,用户设备可以包括设备通信接口(例如,通信接口860),并且服务器可以包括服务器通信接口(例如,通信接口830)。此外,用户设备和服务器可以经由设备通信接口(例如,通信接口860)和服务器通信接口(例如,通信接口860)进行通信。
图9示出了根据本公开的一种或多种技术的示例方法的流程图900。该方法可以由诸如用户设备、服务器、CPU、GPU或任何能够执行图形处理的装置来执行。结合图3、图4、图5、图6、图7和图8中的示例所述,在902,装置可以为用户设备和服务器确定至少一个分离式API。在一些方面,结合图3、图4、图5、图6、图7和图8中的示例所述,至少一个分离式API可以是至少一个分离式扩展现实(XR)API。
结合图3、图4、图5、图6、图7和图8中的示例所述,在904,装置可以基于至少一个分离式API在用户设备与服务器之间建立通信接口。结合图3、图4、图5、图6、图7和图8中的示例所述,在906,装置还可以在用户设备或服务器中的至少一个上实现至少一个分离式API。
在一些方面,结合图3、图4、图5、图6、图7和图8中的示例所述,在用户设备或服务器中的至少一个上实现的至少一个分离式API可以是至少一个开放式XR API。结合图3、图4、图5、图6、图7和图8中的示例所述,在908,装置可以基于至少一个分离式API在用户设备与服务器之间划分至少一个应用工作负载。
结合图3、图4、图5、图6、图7和图8中的示例所述,在910,装置可以在用户设备或服务器处编码或解码应用信息。在一些方面,结合图3、图4、图5、图6、图7和图8中的示例所述,经编码或经解码的应用信息可以允许用户设备和服务器彼此通信。此外,结合图3、图4、图5、图6、图7和图8中的示例所述,应用信息可以是基于中间件在用户设备或服务器处被编码或被解码的。
在一些方面,结合图3、图4、图5、图6、图7和图8中的示例所述,用户设备可以包括设备中间件,并且服务器可以包括服务器中间件。此外,结合图3、图4、图5、图6、图7和图8中的示例所述,用户设备可以包括基于设备中间件和分离式API的XR运行时应用。在一些方面,结合图3、图4、图5、图6、图7和图8中的示例所述,应用信息可以包括相机信息、游戏信息、片段信息或点云信息中的至少一个。此外,结合图3、图4、图5、图6、图7和图8中的示例所述,服务器可以包括基于应用信息的至少一个服务器应用。
结合图3、图4、图5、图6、图7和图8中的示例所述,在912,装置可以基于通信接口和至少一个分离式API在用户设备与服务器之间进行通信。在一些方面,结合图3、图4、图5、图6、图7和图8中的示例所述,用户设备可以包括设备通信接口,并且服务器可以包括服务器通信接口。此外,结合图3、图4、图5、图6、图7和图8中的示例所述,用户设备和服务器可以经由设备通信接口和服务器通信接口进行通信。
在一个配置中,提供了一种用于图形处理的方法或装置。该装置可以是用户设备、服务器、CPU、GPU或能够执行图形处理的一些其他处理器。在一个方面,装置可以是设备104内的处理单元120,或者可以是设备104或另一设备内的一些其他硬件。装置可以包括用于为用户设备和服务器确定至少一个分离式应用程序接口(API)的部件。装置还可以包括用于基于至少一个分离式API在用户设备与服务器之间建立通信接口的部件。装置还可以包括用于基于通信接口和至少一个分离式API在用户设备与服务器之间进行通信的部件。装置还可以包括用于在用户设备或服务器中的至少一个上实现至少一个分离式API的部件。装置还可以包括用于基于至少一个分离式API在用户设备与服务器之间划分至少一个应用工作负载的部件。装置还可以包括用于在用户设备或服务器处编码或解码应用信息的部件。
本文描述的主题可以被实现以实现一个或多个益处或优点。例如,所描述的图形处理技术可以被用户设备、服务器、GPU、CPU或能够执行图形处理的一些其他处理器使用,以实现本文描述的标准化的API技术。与其他图形处理技术相比,这也可以低成本完成。此外,本文的图形处理技术可以改善或加快数据处理或执行。此外,本文的图形处理技术可以改善资源或数据利用率和/或资源效率。此外,本公开的各方面可以利用标准化的API来改善分离式渲染过程期间的性能。
根据本公开,在上下文没有另外规定的情况下,术语“或”可以被解释为“和/或”。此外,虽然诸如“一个或多个”或“至少一个”等的短语可能已经用于本文公开的一些特征而不是其它特征,但是在上下文没有另外规定的情况下,没有使用这样的语言的特征可以被解释为具有暗示的这种含义。
在一个或多个示例中,本文描述的功能可以以硬件、软件、固件或其任意组合来实现。例如,尽管贯穿本公开已经使用了术语“处理单元”,但是这种处理单元可以以硬件、软件、固件或其任意组合来实现。如果本文描述的任何功能、处理单元、技术或其他模块以软件来实现,则本文描述的功能、处理单元、技术或其他模块可以作为一个或多个指令或代码存储在计算机可读介质上或通过其传输。计算机可读介质可以包括计算机数据存储介质或通信介质,通信介质包括便于将计算机程序从一个地方传输到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)有形的计算机可读存储介质,其是非暂时性的,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机、或者一个或多个处理器访问,以检索指令、代码和/或数据结构来实现本公开中描述的技术的任何可用介质。作为示例而非限制,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备。本文使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。以上的组合也应该包括在计算机可读介质的范围内。计算机程序产品可以包括计算机可读介质。
代码可以由一个或多个处理器(例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、算术逻辑单元(ALU)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路)来实现。因此,本文使用的术语“处理器”可以指前述结构中的任何一种或者适于实现本文描述的技术的任何其他结构。此外,这些技术可以完全在一个或多个电路或逻辑元件中实现。
本公开的技术可以在各种各样的设备或装置中实现,包括无线手持设备、集成电路(IC)或IC集(芯片集)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,各种单元可以组合在任何硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合结合合适的软件和/或固件来提供。
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。
Claims (43)
1.一种图形处理的方法,包括:
为用户设备和服务器确定至少一个分离式应用程序接口(API);
基于所述至少一个分离式API在所述用户设备与所述服务器之间建立通信接口;以及
基于所述通信接口和所述至少一个分离式API在所述用户设备与所述服务器之间进行通信。
2.根据权利要求1所述的方法,其中,所述至少一个分离式API是至少一个分离式扩展现实(XR)API。
3.根据权利要求1所述的方法,还包括:
在所述用户设备或所述服务器中的至少一个上实现所述至少一个分离式API。
4.根据权利要求3所述的方法,其中,在所述用户设备或所述服务器中的至少一个上实现的所述至少一个分离式API是至少一个开放式XR API。
5.根据权利要求1所述的方法,还包括:
基于所述至少一个分离式API,在所述用户设备与所述服务器之间划分至少一个应用工作负载。
6.根据权利要求1所述的方法,还包括:
在所述用户设备或所述服务器处编码或解码应用信息。
7.根据权利要求6所述的方法,其中,经编码或经解码的应用信息允许所述用户设备和所述服务器彼此通信。
8.根据权利要求6所述的方法,其中,所述应用信息是基于中间件在所述用户设备或所述服务器处被编码或被解码的。
9.根据权利要求8所述的方法,其中,所述用户设备包括设备中间件,并且所述服务器包括服务器中间件。
10.根据权利要求9所述的方法,其中,所述用户设备包括基于所述设备中间件和所述分离式API的XR运行时应用。
11.根据权利要求6所述的方法,其中,所述应用信息包括相机信息、游戏信息、片段信息或点云信息中的至少一个。
12.根据权利要求6所述的方法,其中,所述服务器包括基于所述应用信息的至少一个服务器应用。
13.根据权利要求1所述的方法,其中,所述用户设备包括设备通信接口,并且所述服务器包括服务器通信接口。
14.根据权利要求13所述的方法,其中,所述用户设备和所述服务器经由所述设备通信接口和所述服务器通信接口进行通信。
15.一种用于图形处理的装置,包括:
存储器;以及
耦合到所述存储器的至少一个处理器,被配置为:
为用户设备和服务器确定至少一个分离式应用程序接口(API);
基于所述至少一个分离式API在所述用户设备与所述服务器之间建立通信接口;以及
基于所述通信接口和所述至少一个分离式API在所述用户设备与所述服务器之间进行通信。
16.根据权利要求15所述的装置,其中,所述至少一个分离式API是至少一个分离式扩展现实(XR)API。
17.根据权利要求15所述的装置,其中,所述至少一个处理器还被配置为:
在所述用户设备或所述服务器中的至少一个上实现所述至少一个分离式API。
18.根据权利要求17所述的装置,其中,在所述用户设备或所述服务器中的至少一个上实现的所述至少一个分离式API是至少一个开放式XRAPI。
19.根据权利要求15所述的装置,其中,所述至少一个处理器还被配置为:
基于所述至少一个分离式API,在所述用户设备与所述服务器之间划分至少一个应用工作负载。
20.根据权利要求15所述的装置,其中,所述至少一个处理器还被配置为:
在所述用户设备或所述服务器处编码或解码应用信息。
21.根据权利要求20所述的装置,其中,经编码或经解码的应用信息允许所述用户设备和所述服务器彼此通信。
22.根据权利要求20所述的装置,其中,所述应用信息是基于中间件在所述用户设备或所述服务器处被编码或被解码的。
23.根据权利要求22所述的装置,其中,所述用户设备包括设备中间件,并且所述服务器包括服务器中间件。
24.根据权利要求23所述的装置,其中,所述用户设备包括基于所述设备中间件和所述分离式API的XR运行时应用。
25.根据权利要求20所述的装置,其中,所述应用信息包括相机信息、游戏信息、片段信息或点云信息中的至少一个。
26.根据权利要求20所述的装置,其中,所述服务器包括基于所述应用信息的至少一个服务器应用。
27.根据权利要求15所述的装置,其中,所述用户设备包括设备通信接口,并且所述服务器包括服务器通信接口。
28.根据权利要求27所述的装置,其中,所述用户设备和所述服务器经由所述设备通信接口和所述服务器通信接口进行通信。
29.一种用于图形处理的装置,包括:
用于为用户设备和服务器确定至少一个分离式应用程序接口(API)的部件;
用于基于所述至少一个分离式API在所述用户设备与所述服务器之间建立通信接口的部件;以及
用于基于所述通信接口和所述至少一个分离式API在所述用户设备与所述服务器之间进行通信的部件。
30.根据权利要求29所述的装置,其中,所述至少一个分离式API是至少一个分离式扩展现实(XR)API。
31.根据权利要求29所述的装置,还包括:
用于在所述用户设备或所述服务器中的至少一个上实现所述至少一个分离式API的部件。
32.根据权利要求31所述的装置,其中,在所述用户设备或所述服务器中的至少一个上实现的所述至少一个分离式API是至少一个开放式XRAPI。
33.根据权利要求29所述的装置,还包括:
用于基于所述至少一个分离式API在所述用户设备与所述服务器之间划分至少一个应用工作负载的部件。
34.根据权利要求29所述的装置,还包括:
用于在所述用户设备或所述服务器处编码或解码应用信息的部件。
35.根据权利要求34所述的装置,其中,经编码或经解码的应用信息允许所述用户设备和所述服务器彼此通信。
36.根据权利要求34所述的装置,其中,所述应用信息是基于中间件在所述用户设备或所述服务器处被编码或被解码的。
37.根据权利要求36所述的装置,其中,所述用户设备包括设备中间件,并且所述服务器包括服务器中间件。
38.根据权利要求37所述的装置,其中,所述用户设备包括基于所述设备中间件和所述分离式API的XR运行时应用。
39.根据权利要求34所述的装置,其中,所述应用信息包括相机信息、游戏信息、片段信息或点云信息中的至少一个。
40.根据权利要求34所述的装置,其中,所述服务器包括基于所述应用信息的至少一个服务器应用。
41.根据权利要求29所述的装置,其中,所述用户设备包括设备通信接口,并且所述服务器包括服务器通信接口。
42.根据权利要求41所述的装置,其中,所述用户设备和所述服务器经由所述设备通信接口和所述服务器通信接口进行通信。
43.一种存储用于图形处理的计算机可执行代码的计算机可读介质,包括用于以下的代码:
为用户设备和服务器确定至少一个分离式应用程序接口(API);
基于所述至少一个分离式API在所述用户设备与所述服务器之间建立通信接口;和
基于所述通信接口和所述至少一个分离式API在所述用户设备与所述服务器之间进行通信。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201941002809 | 2019-01-23 | ||
IN201941002809 | 2019-01-23 | ||
US16/741,554 | 2020-01-13 | ||
US16/741,554 US11625806B2 (en) | 2019-01-23 | 2020-01-13 | Methods and apparatus for standardized APIs for split rendering |
PCT/US2020/014455 WO2020154312A1 (en) | 2019-01-23 | 2020-01-21 | Methods and apparatus for standardized apis for split rendering |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113396389A true CN113396389A (zh) | 2021-09-14 |
Family
ID=71609062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080009618.8A Pending CN113396389A (zh) | 2019-01-23 | 2020-01-21 | 用于分离式渲染的标准化的api的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11625806B2 (zh) |
EP (1) | EP3915008B1 (zh) |
CN (1) | CN113396389A (zh) |
TW (1) | TW202040411A (zh) |
WO (1) | WO2020154312A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11252226B2 (en) * | 2020-03-05 | 2022-02-15 | Qualcomm Incorporated | Methods and apparatus for distribution of application computations |
US12003601B2 (en) * | 2021-12-01 | 2024-06-04 | Tencent America LLC | Method and apparatus for split rendering for lightfield/immersive media using proxy edge cloud architecture |
US20240080377A1 (en) * | 2022-09-06 | 2024-03-07 | At&T Intellectual Property I, L.P. | Facilitating elastic distributed computing for resource intensive tasks including split rendering in advanced networks |
Family Cites Families (250)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU681433B2 (en) * | 1993-08-03 | 1997-08-28 | Sun Microsystems, Inc. | Flexible multi-platform partitioning for computer applications |
US5826085A (en) * | 1995-07-12 | 1998-10-20 | Oracle Corporation | Object oriented computer interface supporting interactive networked applications |
US6721952B1 (en) * | 1996-08-06 | 2004-04-13 | Roxio, Inc. | Method and system for encoding movies, panoramas and large images for on-line interactive viewing and gazing |
US6640244B1 (en) * | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
US6615253B1 (en) * | 1999-08-31 | 2003-09-02 | Accenture Llp | Efficient server side data retrieval for execution of client side applications |
US6640238B1 (en) * | 1999-08-31 | 2003-10-28 | Accenture Llp | Activity component in a presentation services patterns environment |
US6842906B1 (en) * | 1999-08-31 | 2005-01-11 | Accenture Llp | System and method for a refreshable proxy pool in a communication services patterns environment |
US6715145B1 (en) * | 1999-08-31 | 2004-03-30 | Accenture Llp | Processing pipeline in a base services pattern environment |
US6606660B1 (en) * | 1999-08-31 | 2003-08-12 | Accenture Llp | Stream-based communication in a communication services patterns environment |
US6615199B1 (en) * | 1999-08-31 | 2003-09-02 | Accenture, Llp | Abstraction factory in a base services pattern environment |
US6640249B1 (en) * | 1999-08-31 | 2003-10-28 | Accenture Llp | Presentation services patterns in a netcentric environment |
US7289964B1 (en) * | 1999-08-31 | 2007-10-30 | Accenture Llp | System and method for transaction services patterns in a netcentric environment |
US6742015B1 (en) * | 1999-08-31 | 2004-05-25 | Accenture Llp | Base services patterns in a netcentric environment |
US7424543B2 (en) * | 1999-09-08 | 2008-09-09 | Rice Iii James L | System and method of permissive data flow and application transfer |
US6681251B1 (en) * | 1999-11-18 | 2004-01-20 | International Business Machines Corporation | Workload balancing in clustered application servers |
US6625226B1 (en) * | 1999-12-03 | 2003-09-23 | Allen Gersho | Variable bit rate coder, and associated method, for a communication station operable in a communication system |
USRE42153E1 (en) * | 2000-03-30 | 2011-02-15 | Hubbard Edward A | Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures |
US7082474B1 (en) * | 2000-03-30 | 2006-07-25 | United Devices, Inc. | Data sharing and file distribution method and associated distributed processing system |
US7139821B1 (en) * | 2000-10-20 | 2006-11-21 | Sun Microsystems, Inc. | Method and apparatus for creating and deploying applications from a server application |
US6934709B2 (en) * | 2001-03-26 | 2005-08-23 | Matrixone, Inc. | Interface definition language compiler |
US6907461B2 (en) * | 2001-03-29 | 2005-06-14 | International Business Machines Corporation | Interactive data processor controlled display interface for tracking allocated messages in a dynamic workload balancing communication system |
US6950833B2 (en) * | 2001-06-05 | 2005-09-27 | Silicon Graphics, Inc. | Clustered filesystem |
US20030028514A1 (en) * | 2001-06-05 | 2003-02-06 | Lord Stephen Philip | Extended attribute caching in clustered filesystem |
US7117267B2 (en) * | 2001-06-28 | 2006-10-03 | Sun Microsystems, Inc. | System and method for providing tunnel connections between entities in a messaging system |
US7562145B2 (en) * | 2003-08-28 | 2009-07-14 | International Business Machines Corporation | Application instance level workload distribution affinities |
US7810105B2 (en) * | 2004-12-29 | 2010-10-05 | Motorola, Inc. | Method and apparatus for running different types of applications on a wireless mobile device |
US8429630B2 (en) * | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US7954108B2 (en) * | 2005-11-21 | 2011-05-31 | Prismtech Corporation | Method and apparatus for accelerating generic inter-ORB protocol for a CORBA ORB |
DE102006012449A1 (de) * | 2006-03-17 | 2007-09-20 | Benq Mobile Gmbh & Co. Ohg | Verfahren zum Dekodieren eines Datenstroms und Empfänger |
US7725531B1 (en) * | 2006-09-18 | 2010-05-25 | George Mason Intellectual Properties, Inc. | Single use server system |
US8380880B2 (en) * | 2007-02-02 | 2013-02-19 | The Mathworks, Inc. | Scalable architecture |
US8209674B2 (en) * | 2007-02-12 | 2012-06-26 | Microsoft Corporation | Tier splitting support for distributed execution environments |
US7685200B2 (en) * | 2007-03-01 | 2010-03-23 | Microsoft Corp | Ranking and suggesting candidate objects |
US8924469B2 (en) * | 2008-06-05 | 2014-12-30 | Headwater Partners I Llc | Enterprise access control and accounting allocation for access networks |
US9052958B2 (en) * | 2008-11-21 | 2015-06-09 | Samsung Electronics Co., Ltd. | Extending the capability of computing devices by using dynamically scalable external resources |
US8239538B2 (en) * | 2008-11-21 | 2012-08-07 | Samsung Electronics Co., Ltd. | Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments |
AU2008258132B2 (en) * | 2008-12-15 | 2011-11-10 | Canon Kabushiki Kaisha | Load balancing in multiple processor rendering systems |
US9565707B2 (en) * | 2009-01-28 | 2017-02-07 | Headwater Partners I Llc | Wireless end-user device with wireless data attribution to multiple personas |
US8601534B2 (en) * | 2009-07-02 | 2013-12-03 | Samsung Electronics Co., Ltd. | Securely using service providers in elastic computing systems and environments |
US8935317B2 (en) * | 2010-06-23 | 2015-01-13 | Microsoft Corporation | Dynamic partitioning of applications between clients and servers |
US9205886B1 (en) * | 2011-05-06 | 2015-12-08 | Google Inc. | Systems and methods for inventorying objects |
US20120306850A1 (en) * | 2011-06-02 | 2012-12-06 | Microsoft Corporation | Distributed asynchronous localization and mapping for augmented reality |
US20120317488A1 (en) * | 2011-06-13 | 2012-12-13 | Microsoft Corporation | Techniques for adapting an interpretive run time application to multiple clients |
US20120317504A1 (en) * | 2011-06-13 | 2012-12-13 | Microsoft Corporation | Automated user interface object transformation and code generation |
CN102843349B (zh) * | 2011-06-24 | 2018-03-27 | 中兴通讯股份有限公司 | 实现移动增强现实业务的方法及***、终端及服务器 |
US9058336B1 (en) * | 2011-06-30 | 2015-06-16 | Emc Corporation | Managing virtual datacenters with tool that maintains communications with a virtual data center that is moved |
US9600807B2 (en) * | 2011-12-20 | 2017-03-21 | Excalibur Ip, Llc | Server-side modification of messages during a mobile terminal message exchange |
US9052792B2 (en) * | 2011-12-20 | 2015-06-09 | Yahoo! Inc. | Inserting a search box into a mobile terminal dialog messaging protocol |
US8621074B2 (en) * | 2012-04-27 | 2013-12-31 | Xerox Business Services, Llc | Intelligent work load manager |
US9430876B1 (en) * | 2012-05-10 | 2016-08-30 | Aurasma Limited | Intelligent method of determining trigger items in augmented reality environments |
US9064326B1 (en) * | 2012-05-10 | 2015-06-23 | Longsand Limited | Local cache of augmented reality content in a mobile computing device |
US9066200B1 (en) * | 2012-05-10 | 2015-06-23 | Longsand Limited | User-generated content in a virtual reality environment |
US8713633B2 (en) * | 2012-07-13 | 2014-04-29 | Sophos Limited | Security access protection for user data stored in a cloud computing facility |
US20140089260A1 (en) * | 2012-09-27 | 2014-03-27 | International Business Machines Corporation | Workload transitioning in an in-memory data grid |
US9116706B2 (en) * | 2012-10-09 | 2015-08-25 | Tamer Yunten | Yunten's web application methodology and web programming language (YWAM and WPL) |
JP2014123347A (ja) * | 2012-11-22 | 2014-07-03 | Panasonic Corp | クライアント端末、サーバ、及び分散処理方法 |
EP2926501A4 (en) * | 2012-12-03 | 2016-07-13 | Hewlett Packard Development Co | ASYNCHRONOUS FRAMEWORK FOR IAAS MANAGEMENT |
US9043421B1 (en) * | 2013-03-15 | 2015-05-26 | Amazon Technologies, Inc. | Monitoring and sharing data among server groups |
EP2809031B1 (en) * | 2013-05-31 | 2023-09-27 | Dassault Systèmes | Communication middleware for managing multicast channels |
US9674251B2 (en) * | 2013-06-17 | 2017-06-06 | Qualcomm Incorporated | Mediating content delivery via one or more services |
US20150006620A1 (en) * | 2013-06-27 | 2015-01-01 | Applied Materials, Inc. | Scalable manufacturing facility management system |
US20150007619A1 (en) * | 2013-07-08 | 2015-01-08 | Snowgate, LLC. | Apparatus for management of access key used for locker access |
US10419305B2 (en) * | 2013-07-26 | 2019-09-17 | International Business Machines Corporation | Visualization of workload distribution on server resources |
US9996974B2 (en) * | 2013-08-30 | 2018-06-12 | Qualcomm Incorporated | Method and apparatus for representing a physical scene |
US10938960B2 (en) * | 2013-09-13 | 2021-03-02 | John Wason | System and method for implementing augmented object members for remote procedure call |
US20150095360A1 (en) * | 2013-09-27 | 2015-04-02 | Qualcomm Incorporated | Multiview pruning of feature database for object recognition system |
US9461969B2 (en) * | 2013-10-01 | 2016-10-04 | Racemi, Inc. | Migration of complex applications within a hybrid cloud environment |
US20150106091A1 (en) * | 2013-10-14 | 2015-04-16 | Spence Wetjen | Conference transcription system and method |
WO2015066491A2 (en) * | 2013-11-01 | 2015-05-07 | RIZVI, Avez, Ali | Hand hygiene use and tracking in the clinical setting via wearable computers |
US9398069B2 (en) * | 2013-11-08 | 2016-07-19 | Elastic Path Software, Inc. | Stateless microkernel web server architecture |
US20150156131A1 (en) * | 2013-12-04 | 2015-06-04 | International Business Machines Corporation | Method and system of geographic migration of workloads between private and public clouds |
US9233308B2 (en) * | 2014-01-02 | 2016-01-12 | Ubitus Inc. | System and method for delivering media over network |
US9370718B2 (en) * | 2014-01-02 | 2016-06-21 | Ubitus Inc. | System and method for delivering media over network |
US10083368B2 (en) * | 2014-01-28 | 2018-09-25 | Qualcomm Incorporated | Incremental learning for dynamic feature database management in an object recognition system |
US9978126B2 (en) * | 2014-04-30 | 2018-05-22 | Empire Technology Development Llc | Image resolution modification |
US9424084B2 (en) * | 2014-05-20 | 2016-08-23 | Sandeep Gupta | Systems, methods, and media for online server workload management |
US10659523B1 (en) * | 2014-05-23 | 2020-05-19 | Amazon Technologies, Inc. | Isolating compute clusters created for a customer |
US9658874B2 (en) * | 2014-06-18 | 2017-05-23 | International Business Machines Corporation | Selecting optimal hypervisor platforms that satisfy application workload requirements |
US9424065B2 (en) * | 2014-06-26 | 2016-08-23 | Vmware, Inc. | Methods and apparatus to scale application deployments in cloud computing environments using virtual machine pools |
US20150379416A1 (en) * | 2014-06-27 | 2015-12-31 | QuDec, Inc. | Decision assistance system |
US10318882B2 (en) * | 2014-09-11 | 2019-06-11 | Amazon Technologies, Inc. | Optimized training of linear machine learning models |
US10318361B2 (en) * | 2014-07-02 | 2019-06-11 | Atheer, Inc. | Methods and systems for multiple access to a single hardware data stream |
US10044795B2 (en) * | 2014-07-11 | 2018-08-07 | Vmware Inc. | Methods and apparatus for rack deployments for virtual computing environments |
US9802309B2 (en) * | 2014-07-24 | 2017-10-31 | X Development Llc | Methods and systems for generating instructions for a robotic system to carry out a task |
US9858720B2 (en) * | 2014-07-25 | 2018-01-02 | Microsoft Technology Licensing, Llc | Three-dimensional mixed-reality viewport |
US11537777B2 (en) * | 2014-09-25 | 2022-12-27 | Huawei Technologies Co., Ltd. | Server for providing a graphical user interface to a client and a client |
US9916187B2 (en) * | 2014-10-27 | 2018-03-13 | Oracle International Corporation | Graph database system that dynamically compiles and executes custom graph analytic programs written in high-level, imperative programming language |
US20170243403A1 (en) * | 2014-11-11 | 2017-08-24 | Bent Image Lab, Llc | Real-time shared augmented reality experience |
US10275543B1 (en) * | 2014-12-03 | 2019-04-30 | X Development Llc | End-of-arm fingertip pipeline |
WO2016144741A1 (en) * | 2015-03-06 | 2016-09-15 | Illinois Tool Works Inc. | Sensor assisted head mounted displays for welding |
US10275749B2 (en) * | 2015-03-20 | 2019-04-30 | International Business Machines Corporation | Tracking use of a virtualization service according to globalization characteristic based usage |
US9779554B2 (en) * | 2015-04-10 | 2017-10-03 | Sony Interactive Entertainment Inc. | Filtering and parental control methods for restricting visual activity on a head mounted display |
US20160323063A1 (en) * | 2015-05-01 | 2016-11-03 | Qualcomm Incorporated | Bundled Forward Error Correction (FEC) for Multiple Sequenced Flows |
US9813490B2 (en) * | 2015-05-13 | 2017-11-07 | Oracle International Corporation | Scheduled network communication for efficient re-partitioning of data |
US20160364115A1 (en) * | 2015-06-12 | 2016-12-15 | Scapeflow, Inc. | Method, system, and media for collaborative learning |
US10728169B1 (en) * | 2015-06-26 | 2020-07-28 | Amazon Technologies, Inc. | Instance upgrade migration |
US9870514B2 (en) * | 2015-07-02 | 2018-01-16 | Qualcomm Incorporated | Hypotheses line mapping and verification for 3D maps |
WO2017066801A1 (en) * | 2015-10-16 | 2017-04-20 | Bent Image Lab, Llc | Augmented reality platform |
US10962780B2 (en) * | 2015-10-26 | 2021-03-30 | Microsoft Technology Licensing, Llc | Remote rendering for virtual images |
US10140464B2 (en) * | 2015-12-08 | 2018-11-27 | University Of Washington | Methods and systems for providing presentation security for augmented reality applications |
US9990689B2 (en) * | 2015-12-16 | 2018-06-05 | WorldViz, Inc. | Multi-user virtual reality processing |
US10681078B2 (en) * | 2016-06-10 | 2020-06-09 | Sophos Limited | Key throttling to mitigate unauthorized file access |
US10521315B2 (en) * | 2016-02-23 | 2019-12-31 | Vmware, Inc. | High availability handling network segmentation in a cluster |
US10559112B2 (en) * | 2016-03-11 | 2020-02-11 | Intel Corporation | Hybrid mechanism for efficient rendering of graphics images in computing environments |
US10382518B2 (en) * | 2016-03-22 | 2019-08-13 | Google Llc | Low latency applications using multiple servers |
US10122788B2 (en) * | 2016-03-29 | 2018-11-06 | Amazon Technologies, Inc. | Managed function execution for processing data streams in real time |
CN109416842B (zh) * | 2016-05-02 | 2023-08-29 | 华纳兄弟娱乐公司 | 在虚拟现实和增强现实中的几何匹配 |
US10867328B2 (en) * | 2016-05-03 | 2020-12-15 | Yembo, Inc. | Systems and methods for providing AI-based cost estimates for services |
US10185549B2 (en) * | 2016-06-28 | 2019-01-22 | Microsoft Technology Licensing, Llc | Updating live system with static changes |
US10877796B1 (en) * | 2016-06-28 | 2020-12-29 | Amazon Technologies, Inc. | Job execution with scheduled reserved compute instances |
US11281498B1 (en) * | 2016-06-28 | 2022-03-22 | Amazon Technologies, Inc. | Job execution with managed compute environments |
GB2551983B (en) * | 2016-06-30 | 2020-03-04 | Sophos Ltd | Perimeter encryption |
US10015504B2 (en) * | 2016-07-27 | 2018-07-03 | Qualcomm Incorporated | Compressing image segmentation data using video coding |
US10019298B2 (en) * | 2016-08-17 | 2018-07-10 | Google Llc | Middleware interface and middleware interface generator |
US11646114B2 (en) * | 2016-08-26 | 2023-05-09 | Sap Se | Method and system for processing of electronic medical invoices |
US10402227B1 (en) * | 2016-08-31 | 2019-09-03 | Amazon Technologies, Inc. | Task-level optimization with compute environments |
US10289400B2 (en) * | 2016-09-07 | 2019-05-14 | Amplidata N.V. | Outdated resource handling and multiple-version upgrade of cloud software |
US10068553B2 (en) * | 2016-09-12 | 2018-09-04 | Intel Corporation | Enhanced rendering by a wearable display attached to a tethered computer |
US10389800B2 (en) * | 2016-10-11 | 2019-08-20 | International Business Machines Corporation | Minimizing execution time of a compute workload based on adaptive complexity estimation |
US10306180B2 (en) * | 2016-10-21 | 2019-05-28 | Liquidsky Software, Inc. | Predictive virtual reality content streaming techniques |
US20180150256A1 (en) * | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
RU2632427C1 (ru) * | 2016-12-09 | 2017-10-04 | Общество с ограниченной ответственностью "Аби Девелопмент" | Оптимизация обмена данными между клиентским устройством и сервером |
US10374885B2 (en) * | 2016-12-13 | 2019-08-06 | Amazon Technologies, Inc. | Reconfigurable server including a reconfigurable adapter device |
US10109030B1 (en) * | 2016-12-27 | 2018-10-23 | EMC IP Holding Company LLC | Queue-based GPU virtualization and management system |
US11138960B2 (en) * | 2017-02-14 | 2021-10-05 | Cinesamples, Inc. | System and method for a networked virtual musical instrument |
US10430147B2 (en) * | 2017-04-17 | 2019-10-01 | Intel Corporation | Collaborative multi-user virtual reality |
CN111510782A (zh) * | 2017-04-28 | 2020-08-07 | 华为技术有限公司 | 视频播放方法、虚拟现实设备、服务器及计算机存储介质 |
US10467818B2 (en) * | 2017-05-31 | 2019-11-05 | Marie Manvel | System and method for virtual wardrobe selection |
US20180357922A1 (en) * | 2017-06-08 | 2018-12-13 | Honeywell International Inc. | Apparatus and method for assessing and tracking user competency in augmented/virtual reality-based training in industrial automation systems and other systems |
EP3571855A1 (en) * | 2017-06-15 | 2019-11-27 | Dolby International AB | Methods, apparatus and systems for optimizing communication between sender(s) and receiver(s) in computer-mediated reality applications |
US10776992B2 (en) * | 2017-07-05 | 2020-09-15 | Qualcomm Incorporated | Asynchronous time warp with depth data |
EP3531244A1 (en) * | 2018-02-26 | 2019-08-28 | Thomson Licensing | Method, apparatus and system providing alternative reality environment |
US11347295B2 (en) * | 2017-07-19 | 2022-05-31 | Citrix Systems, Inc. | Virtual machine power management |
US10304239B2 (en) * | 2017-07-20 | 2019-05-28 | Qualcomm Incorporated | Extended reality virtual assistant |
US10779011B2 (en) * | 2017-07-31 | 2020-09-15 | Qualcomm Incorporated | Error concealment in virtual reality system |
US10489951B2 (en) * | 2017-09-29 | 2019-11-26 | Qualcomm Incorporated | Display of a live scene and auxiliary object |
US11212089B2 (en) * | 2017-10-04 | 2021-12-28 | Amir Keyvan Khandani | Methods for secure data storage |
US11179635B2 (en) * | 2017-10-11 | 2021-11-23 | Sony Interactive Entertainment LLC | Sound localization in an augmented reality view of a live event held in a real-world venue |
US10891526B2 (en) * | 2017-12-22 | 2021-01-12 | Google Llc | Functional image archiving |
US10798455B2 (en) * | 2017-12-22 | 2020-10-06 | Comcast Cable Communications, Llc | Video delivery |
EP3721417A1 (en) * | 2017-12-22 | 2020-10-14 | Huawei Technologies Co., Ltd. | Vr 360 video for remote end users |
US20190205647A1 (en) * | 2017-12-29 | 2019-07-04 | Shiftsmart, Inc. | Systems and methods for integrated augmented reality |
US11003764B2 (en) * | 2018-02-06 | 2021-05-11 | Jayant Shukla | System and method for exploiting attack detection by validating application stack at runtime |
US10614133B2 (en) * | 2018-02-08 | 2020-04-07 | Timothy J Pollock | Distributed web browser software architecture |
US11014001B2 (en) * | 2018-03-05 | 2021-05-25 | Sony Interactive Entertainment LLC | Building virtual reality (VR) gaming environments using real-world virtual reality maps |
US11218553B2 (en) * | 2018-03-05 | 2022-01-04 | Intel Corporation | Inter-MEC system communication for V2X services |
US11145096B2 (en) * | 2018-03-07 | 2021-10-12 | Samsung Electronics Co., Ltd. | System and method for augmented reality interaction |
US20210056762A1 (en) * | 2018-03-23 | 2021-02-25 | Hoverlay, Inc. | Design and generation of augmented reality experiences for structured distribution of content based on location-based triggers |
US10977089B2 (en) * | 2018-04-16 | 2021-04-13 | International Business Machines Corporation | Fusing and unfusing operators during a job overlay |
US11360553B2 (en) * | 2018-04-19 | 2022-06-14 | Pcms Holdings, Inc. | Systems and methods employing predictive overfilling for virtual reality |
US10861215B2 (en) * | 2018-04-30 | 2020-12-08 | Qualcomm Incorporated | Asynchronous time and space warp with determination of region of interest |
US11232532B2 (en) * | 2018-05-30 | 2022-01-25 | Sony Interactive Entertainment LLC | Multi-server cloud virtual reality (VR) streaming |
US11032662B2 (en) * | 2018-05-30 | 2021-06-08 | Qualcomm Incorporated | Adjusting audio characteristics for augmented reality |
US10812774B2 (en) * | 2018-06-06 | 2020-10-20 | At&T Intellectual Property I, L.P. | Methods and devices for adapting the rate of video content streaming |
US11184247B2 (en) * | 2018-06-19 | 2021-11-23 | International Business Machines Corporation | Workload management for computing cluster |
US10761901B2 (en) * | 2018-06-28 | 2020-09-01 | International Business Machines Corporation | Dynamic runtime workload balancing in a distributed computing environment |
US10644970B2 (en) * | 2018-07-11 | 2020-05-05 | Sony Interactive Entertainment LLC | Tracking application utilization of microservices |
US10671163B2 (en) * | 2018-07-24 | 2020-06-02 | Microsoft Technology Licensing, Llc | Refining virtual mesh models through physical contacts |
US10835827B1 (en) * | 2018-07-25 | 2020-11-17 | Facebook, Inc. | Initiating real-time games in video communications |
US11178373B2 (en) * | 2018-07-31 | 2021-11-16 | Intel Corporation | Adaptive resolution of point cloud and viewpoint prediction for video streaming in computing environments |
CN112805750A (zh) * | 2018-08-13 | 2021-05-14 | 奇跃公司 | 跨现实*** |
US10446119B1 (en) * | 2018-08-17 | 2019-10-15 | Qualcomm Incorporated | Method for supporting multiple layers in split rendering |
US11032590B2 (en) * | 2018-08-31 | 2021-06-08 | At&T Intellectual Property I, L.P. | Methods, devices, and systems for providing panoramic video content to a mobile device from an edge server |
US10573057B1 (en) * | 2018-09-05 | 2020-02-25 | Citrix Systems, Inc. | Two-part context-based rendering solution for high-fidelity augmented reality in virtualized environment |
US11127214B2 (en) * | 2018-09-17 | 2021-09-21 | Qualcomm Incorporated | Cross layer traffic optimization for split XR |
US11057636B2 (en) * | 2018-09-17 | 2021-07-06 | Qualcomm Incorporated | Affine motion prediction |
US11109065B2 (en) * | 2018-09-26 | 2021-08-31 | Google Llc | Video encoding by providing geometric proxies |
US11429753B2 (en) * | 2018-09-27 | 2022-08-30 | Citrix Systems, Inc. | Encryption of keyboard data to avoid being read by endpoint-hosted keylogger applications |
US10769754B2 (en) * | 2018-10-31 | 2020-09-08 | Dolby Laboratories Licensing Corporation | Virtual reality cinema-immersive movie watching for headmounted displays |
US11240525B2 (en) * | 2018-11-08 | 2022-02-01 | Dell Products, L.P. | Systems and methods for video encoding acceleration in virtual, augmented, and mixed reality (xR) applications |
US10482677B1 (en) * | 2018-11-20 | 2019-11-19 | Dell Products, L.P. | Distributed simultaneous localization and mapping (SLAM) in virtual, augmented, and mixed reality (xR) applications |
US10798183B2 (en) * | 2018-12-13 | 2020-10-06 | Sap Se | Tunneling protcol and gateway for distributed computing environments |
CN112262545B (zh) * | 2019-01-04 | 2023-09-15 | 百度时代网络技术(北京)有限公司 | 主机***与数据处理加速器之间的证明协议 |
CN112334902A (zh) * | 2019-01-04 | 2021-02-05 | 百度时代网络技术(北京)有限公司 | 建立主机***与数据处理加速器之间的安全信息交换信道的方法 |
US10936055B2 (en) * | 2019-01-24 | 2021-03-02 | Dell Products, L.P. | Encoding content for virtual, augmented, and mixed reality (xR) applications in connectivity-constrained environments |
US10816341B2 (en) * | 2019-01-25 | 2020-10-27 | Dell Products, L.P. | Backchannel encoding for virtual, augmented, or mixed reality (xR) applications in connectivity-constrained environments |
US10817050B2 (en) * | 2019-01-25 | 2020-10-27 | Dell Products, L.P. | Backchannel resilience for virtual, augmented, or mixed reality (xR) applications in connectivity-constrained environments |
US20200242595A1 (en) * | 2019-01-30 | 2020-07-30 | Salesforce.Com, Inc. | Systems, methods, and apparatuses utilizing a blended blockchain ledger in a cloud service to address local storage |
US11971874B2 (en) * | 2019-01-31 | 2024-04-30 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing efficient storage and validation of data and metadata within a blockchain using distributed ledger technology (DLT) |
US11064228B2 (en) * | 2019-04-02 | 2021-07-13 | Qualcomm Incorporated | Audio playback timing adjustment |
US11113114B2 (en) * | 2019-04-09 | 2021-09-07 | Cisco Technology, Inc. | Distributed object placement, replication, and retrieval for cloud-scale storage and data delivery |
US11004256B2 (en) * | 2019-05-08 | 2021-05-11 | Citrix Systems, Inc. | Collaboration of augmented reality content in stereoscopic view in virtualized environment |
US11010921B2 (en) * | 2019-05-16 | 2021-05-18 | Qualcomm Incorporated | Distributed pose estimation |
US10937192B2 (en) * | 2019-05-29 | 2021-03-02 | Dell Products, L.P. | Resolving incorrect distributed simultaneous localization and mapping (SLAM) data in edge cloud architectures |
US10854012B1 (en) * | 2019-05-29 | 2020-12-01 | Dell Products, L.P. | Concealing loss of distributed simultaneous localization and mapping (SLAM) data in edge cloud architectures |
US11770441B2 (en) * | 2019-06-07 | 2023-09-26 | Qualcomm Incorporated | File delivery failure feedback and application feedback |
CA3046003C (en) * | 2019-06-11 | 2024-01-02 | Eidos Interactive Corp. | Systems and methods for augmented reality applications |
US12040993B2 (en) * | 2019-06-18 | 2024-07-16 | The Calany Holding S. À R.L. | Software engine virtualization and dynamic resource and task distribution across edge and cloud |
US11063823B2 (en) * | 2019-06-19 | 2021-07-13 | International Business Machines Corporation | Inter-service data transportation through data fragmentation and socket replication |
US11159645B2 (en) * | 2019-06-21 | 2021-10-26 | Dell Products, L.P. | Adaptive backchannel synchronization for virtual, augmented, or mixed reality (xR) applications in edge cloud architectures |
US11632732B2 (en) * | 2019-06-24 | 2023-04-18 | Qualcomm Incorporated | Wireless communication including XR traffic awareness |
US20210014198A1 (en) * | 2019-07-09 | 2021-01-14 | Saudi Arabian Oil Company | Network security system and method with multilayer filtering |
US11017231B2 (en) * | 2019-07-10 | 2021-05-25 | Microsoft Technology Licensing, Llc | Semantically tagged virtual and physical objects |
US11039149B2 (en) * | 2019-08-01 | 2021-06-15 | Qualcomm Incorporated | Dynamic video insertion based on feedback information |
US11652520B2 (en) * | 2019-08-01 | 2023-05-16 | Qualcomm Incorporated | Batch-based feedback in new radio |
US11336410B2 (en) * | 2019-08-01 | 2022-05-17 | Qualcomm Incorporated | Zone-based signaling in new radio |
US11516242B2 (en) * | 2019-08-27 | 2022-11-29 | Illumio, Inc. | Virtual patching in a label-based segmented network environment |
US11153173B1 (en) * | 2019-09-10 | 2021-10-19 | Juniper Networks, Inc. | Dynamically updating compute node location information in a distributed computing environment |
US11132827B2 (en) * | 2019-09-19 | 2021-09-28 | Facebook Technologies, Llc | Artificial reality system architecture for concurrent application execution and collaborative 3D scene rendering |
US20200142735A1 (en) * | 2019-09-28 | 2020-05-07 | Intel Corporation | Methods and apparatus to offload and onload workloads in an edge environment |
CN114503571B (zh) * | 2019-10-03 | 2024-06-14 | Lg电子株式会社 | 点云数据发送装置和方法、点云数据接收装置和方法 |
CN114402640A (zh) * | 2019-10-04 | 2022-04-26 | 英特尔公司 | 用于传输层拥塞控制和基于扩展的提前服务质量通知的存在点优化的边缘计算技术 |
US11792420B2 (en) * | 2019-11-04 | 2023-10-17 | Qualcomm Incorporated | Methods and apparatus for foveated compression |
US11189100B2 (en) * | 2019-11-25 | 2021-11-30 | Verizon Patent and Acessing Inc. | Systems and methods for optimizing extended reality experiences |
US20210166487A1 (en) * | 2019-12-02 | 2021-06-03 | BundlAR | Decoupled content management system for augmented reality |
CN114762008A (zh) * | 2019-12-09 | 2022-07-15 | 奇跃公司 | 简化的虚拟内容编程的交叉现实*** |
US11132590B2 (en) * | 2019-12-12 | 2021-09-28 | Lablightar Inc. | Augmented camera for improved spatial localization and spatial orientation determination |
US11303875B2 (en) * | 2019-12-17 | 2022-04-12 | Valve Corporation | Split rendering between a head-mounted display (HMD) and a host computer |
US11321926B2 (en) * | 2019-12-18 | 2022-05-03 | Apple Inc. | Method and device for content placement |
JP2021100222A (ja) * | 2019-12-23 | 2021-07-01 | ソニーグループ株式会社 | 端末装置、アプリケーションサーバ、受信方法及び送信方法 |
US11663736B2 (en) * | 2019-12-27 | 2023-05-30 | Snap Inc. | Marker-based shared augmented reality session creation |
US11429423B2 (en) * | 2020-01-07 | 2022-08-30 | Kyndryl, Inc. | Workload scheduling with localized virtual network resources |
US11156843B2 (en) * | 2020-01-10 | 2021-10-26 | Facebook Technologies, Llc | End-to-end artificial reality calibration testing |
EP4104145A4 (en) * | 2020-02-13 | 2024-01-24 | Magic Leap, Inc. | CROSS-REALLY SYSTEM PRIORITIZING GEOLOCALIZATION INFORMATION FOR LOCALIZATION |
US20210263317A1 (en) * | 2020-02-25 | 2021-08-26 | Facebook Technologies, Llc | Angularly selective diffusive combiner |
CN115461787A (zh) * | 2020-02-26 | 2022-12-09 | 奇跃公司 | 具有快速定位的交叉现实*** |
US20210271513A1 (en) * | 2020-02-28 | 2021-09-02 | Sap Se | Generic peer-to-peer platform as a service framework |
US11252226B2 (en) * | 2020-03-05 | 2022-02-15 | Qualcomm Incorporated | Methods and apparatus for distribution of application computations |
US11074526B1 (en) * | 2020-03-16 | 2021-07-27 | Skoot Ride.Com Ltd. | Transport coordination system |
US20210287321A1 (en) * | 2020-03-16 | 2021-09-16 | Skoot Ride.Com Ltd. | Transport coordination system |
US11995561B2 (en) * | 2020-03-17 | 2024-05-28 | MeetKai, Inc. | Universal client API for AI services |
BR112022019005A2 (pt) * | 2020-03-23 | 2022-11-01 | Apple Inc | Estrutura de descoberta de serviços e descarregamento dinâmico para sistemas de rede celular com base em computação de borda |
US11886898B2 (en) * | 2020-03-30 | 2024-01-30 | Vmware, Inc. | GPU-remoting latency aware virtual machine migration |
US11915305B2 (en) * | 2020-04-01 | 2024-02-27 | Snap Inc. | Identification of physical products for augmented reality experiences in a messaging system |
US11468629B2 (en) * | 2020-04-03 | 2022-10-11 | Qualcomm Incorporated | Methods and apparatus for handling occlusions in split rendering |
US11321905B2 (en) * | 2020-04-03 | 2022-05-03 | Qualcomm Incorporated | Error concealment in split rendering |
US20210312704A1 (en) * | 2020-04-03 | 2021-10-07 | Qualcomm Incorporated | Rendering using shadow information |
US11838383B2 (en) * | 2020-04-23 | 2023-12-05 | Qualcomm Incorporated | Edge application context relocation and replication |
US20210350550A1 (en) * | 2020-05-11 | 2021-11-11 | Nvidia Corporation | Gaze estimation using one or more neural networks |
US20210350139A1 (en) * | 2020-05-11 | 2021-11-11 | Nvidia Corporation | Highlight determination using one or more neural networks |
US11321928B2 (en) * | 2020-05-14 | 2022-05-03 | Qualcomm Incorporated | Methods and apparatus for atlas management of augmented reality content |
US11144117B1 (en) * | 2020-05-18 | 2021-10-12 | Qualcomm Incorporated | Deep learning based head motion prediction for extended reality |
US11412310B2 (en) * | 2020-05-18 | 2022-08-09 | Qualcomm Incorporated | Performing and evaluating split rendering over 5G networks |
CN114080615A (zh) * | 2020-06-13 | 2022-02-22 | 谷歌有限责任公司 | 反映用户偏好的基于机器学习的图像压缩设置 |
US11349917B2 (en) * | 2020-07-23 | 2022-05-31 | Pure Storage, Inc. | Replication handling among distinct networks |
US11917638B2 (en) * | 2020-09-18 | 2024-02-27 | Qualcomm Incorporated | Techniques for enhanced scheduling request configuration |
US11917637B2 (en) * | 2020-09-18 | 2024-02-27 | Qualcomm Incorporated | Techniques for enhanced configured grant configuration |
US11019031B1 (en) * | 2020-09-22 | 2021-05-25 | Netskope, Inc. | Client software connection inspection and access control |
US20220100265A1 (en) * | 2020-09-30 | 2022-03-31 | Qualcomm Incorporated | Dynamic configuration of user interface layouts and inputs for extended reality systems |
US20220122326A1 (en) * | 2020-10-15 | 2022-04-21 | Qualcomm Incorporated | Detecting object surfaces in extended reality environments |
US20220172440A1 (en) * | 2020-12-01 | 2022-06-02 | Samsung Electronics Co., Ltd. | Extended field of view generation for split-rendering for virtual reality streaming |
US11600039B2 (en) * | 2020-12-14 | 2023-03-07 | Qualcomm Incorporated | Mechanism for improved light estimation |
US20220206772A1 (en) * | 2020-12-30 | 2022-06-30 | Accenture Global Solutions Limited | Scalable, robust, and secure multi-tenant edge architecture for mission-critical applications |
US11017322B1 (en) * | 2021-01-28 | 2021-05-25 | Alipay Labs (singapore) Pte. Ltd. | Method and system for federated learning |
US20220256359A1 (en) * | 2021-02-05 | 2022-08-11 | Qualcomm Incorporated | Updating beam or measurement configurations using antenna orientation information associated with user equipments |
US20220256647A1 (en) * | 2021-02-05 | 2022-08-11 | Veea Inc. | Systems and Methods for Collaborative Edge Computing |
US11514641B2 (en) * | 2021-03-03 | 2022-11-29 | Qualcomm Incorporated | Error concealment in split rendering using shading atlases |
US12035020B2 (en) * | 2021-05-12 | 2024-07-09 | Qualcomm Incorporated | Split rendering of extended reality data over 5G networks |
US12017140B2 (en) * | 2021-06-07 | 2024-06-25 | Sony Interactive Entertainment LLC | Systems and methods for emulation of graphical and audio parameters during a play of a legacy game |
US11762952B2 (en) * | 2021-06-28 | 2023-09-19 | Meta Platforms Technologies, Llc | Artificial reality application lifecycle |
-
2020
- 2020-01-13 US US16/741,554 patent/US11625806B2/en active Active
- 2020-01-21 CN CN202080009618.8A patent/CN113396389A/zh active Pending
- 2020-01-21 EP EP20705602.9A patent/EP3915008B1/en active Active
- 2020-01-21 WO PCT/US2020/014455 patent/WO2020154312A1/en unknown
- 2020-01-22 TW TW109102643A patent/TW202040411A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP3915008A1 (en) | 2021-12-01 |
EP3915008C0 (en) | 2024-05-01 |
WO2020154312A1 (en) | 2020-07-30 |
EP3915008B1 (en) | 2024-05-01 |
US11625806B2 (en) | 2023-04-11 |
TW202040411A (zh) | 2020-11-01 |
US20200234395A1 (en) | 2020-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11321928B2 (en) | Methods and apparatus for atlas management of augmented reality content | |
US11481865B2 (en) | Methods and apparatus for tensor object support in machine learning workloads | |
US11625806B2 (en) | Methods and apparatus for standardized APIs for split rendering | |
US11694384B2 (en) | Fast incremental shared constants | |
KR20160148638A (ko) | 비특권 애플리케이션에 의한 그래픽 작업부하 실행의뢰 | |
US11080928B2 (en) | Methods and apparatus for visibility stream management | |
CN114930446A (zh) | 用于帧缓冲器的部分显示的方法和装置 | |
US20230368714A1 (en) | Smart compositor module | |
US20210111976A1 (en) | Methods and apparatus for augmented reality viewer configuration | |
US11574380B2 (en) | Methods and apparatus for optimizing GPU kernel with SIMO approach for downscaling utilizing GPU cache | |
US12033603B2 (en) | Methods and apparatus for plane planning for overlay composition | |
US11087431B2 (en) | Methods and apparatus for reducing draw command information | |
US12008677B2 (en) | Compatible compression for different types of image views | |
US11893654B2 (en) | Optimization of depth and shadow pass rendering in tile based architectures | |
WO2023141917A1 (en) | Sequential flexible display shape resolution | |
WO2021042331A1 (en) | Methods and apparatus for graphics and display pipeline management | |
US11373267B2 (en) | Methods and apparatus for reducing the transfer of rendering information | |
WO2021012257A1 (en) | Methods and apparatus to facilitate a unified framework of post-processing for gaming | |
CN117980956A (zh) | 动态可变速率着色 | |
CN117616398A (zh) | Gpu范围界定中的性能开销优化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |