可变端点用户界面渲染

文档序号:55013 发布日期:2021-09-28 浏览:28次 >En<

阅读说明:本技术 可变端点用户界面渲染 (Variable endpoint user interface rendering ) 是由 尼古拉斯·瓦伊宁 保罗·拉隆德 于 2019-02-25 设计创作,主要内容包括:本文描述了用于渲染组合用户界面(UI)的不同组件的方法和系统。处理设备接收对待经由包括一个或多个视频内容组件和一个或多个UI控件组件的组合UI呈现的媒体项的用户请求。处理设备生成视频内容组件的渲染并将包括视频内容组件的渲染的第一流传送到端点设备,其中,第一流被编码为第一分辨率,并且其中,视频内容组件的渲染将在端点设备处与UI控件组件的渲染合并成组合UI,该组合UI具有第二分辨率。(Methods and systems for rendering different components of a combined User Interface (UI) are described herein. A processing device receives a user request for a media item to be presented via a composite UI that includes one or more video content components and one or more UI control components. The processing device generates a rendering of the video content component and transmits a first stream including the rendering of the video content component to the endpoint device, wherein the first stream is encoded at a first resolution, and wherein the rendering of the video content component is to be merged at the endpoint device with the rendering of the UI control component into a combined UI, the combined UI having a second resolution.)

可变端点用户界面渲染

技术领域

本公开的各方面一般涉及用户界面渲染,并且更具体地涉及单独地渲染组合用户界面的不同组件。

背景技术

流传输的内容可以经由用户界面(UI)呈现在用户设备上。UI可以包括视频内容组件和UI控件组件。例如,用于在线游戏的UI可以包括呈现游戏的实况内容的游戏玩法组件以及呈现关于游戏的信息并提供允许游戏观众和/或参与者与游戏交互的控件的游戏控制组件。

通常,流传输的内容UI的视频内容组件和UI控件组件在服务器处一起被渲染以创建一个视频流,然后以一种分辨率对其进行编码并传送到用户设备。用于编码的分辨率通常是用户设备支持的最大分辨率(例如,4096x4096)。

发明内容

下述发明内容是本公开的简要发明内容以便提供对本公开的一些方面的基本理解。本发明内容不是本公开的广泛概述。它既不旨在标识本公开的关键或决定性要素,也不旨在描绘本公开的特定实施例的任何范围或权利要求的任何范围。其唯一目的是以简化形式呈现本公开的一些概念作为稍后呈现的更详细描述的序言。

根据本公开的一些方面,提供了一种方法,其包括在服务器处接收对待经由组合用户界面(UI)呈现的媒体项的用户请求,该组合用户界面(UI)包括一个或多个视频内容组件和一个或多个UI控件组件;生成视频内容组件的渲染;以及将包括视频内容组件的渲染的第一流传送到端点设备,其中,第一流被编码为第一分辨率,并且其中,视频内容组件的渲染将在端点设备处与UI控件组件的渲染合并成组合UI,该组合UI具有第二分辨率。

根据本公开的其他方面,提供了一种方法,其包括在服务器处接收对待经由组合用户界面(UI)呈现的媒体项的用户请求,该组合用户界面(UI)包括一个或多个视频内容组件和一个或多个UI控件组件;生成视频内容组件的渲染;将包括视频内容组件的渲染的第一流传送到端点设备,其中,第一流被编码为第一分辨率;确定在服务器处或者在端点设备处生成UI控件组件的渲染;响应于确定在端点设备处生成UI控件组件的渲染,经由网络向端点设备传送用于渲染UI控件组件的命令集,该UI控件组件的渲染具有第一分辨率或第二分辨率;以及响应于确定在服务器处生成UI控件组件的渲染:在服务器处执行用于渲染UI控件组件的命令集以生成UI控件组件的渲染,以及将包括UI控件组件的渲染的第二流传送到端点设备。

可选地,该方法可以包括在服务器处执行命令集以生成UI控件组件的渲染并且将包括UI控件组件的渲染的第二流传送到端点设备,第二流被编码为第二分辨率。该方法可以包括将用于渲染UI控件组件的命令集传送到端点设备以在端点设备处以第二分辨率生成UI控件组件的渲染。该方法可以包括确定是在服务器处或者在端点设备处生成UI控件组件的渲染;响应于确定在端点设备处生成UI控件组件的渲染,经由网络向端点设备传送用于渲染UI控件组件的命令集,该UI控件组件的渲染具有第二分辨率;以及响应于确定在服务器处生成UI控件组件的渲染,在服务器处执行用于渲染UI控件组件的命令集以生成UI控件组件的渲染,并且将包括UI控件组件的渲染的第二流传送到端点设备。第二分辨率可以高于第一分辨率,并且可以修改视频内容组件的渲染以匹配在端点设备处的UI控件组件的第二分辨率。是否在服务器处或者在端点设备处执行该命令集的确定可以基于以下至少一项:端点设备的硬件能力、端点设备的分辨率、组合UI的目标分辨率、服务器的渲染能力、或网络上可用的带宽。组合UI可以经由视频内容组件呈现在线游戏,并且经由UI控件组件呈现关于游戏的信息并且接收属于游戏的用户输入。

根据本公开的一些方面,提供了一种系统,其包括存储器和耦合到该存储器的处理设备。处理设备被配置成:接收对待经由包括一个或多个视频内容组件和一个或多个UI控件组件的组合UI呈现的媒体项的用户请求;生成视频内容组件的渲染;并且将包括视频内容组件的渲染的第一流传送到端点设备,其中,第一流被编码为第一分辨率,并且其中,视频内容组件的渲染在端点设备处将与UI控件组件的渲染合并成组合UI,该组合UI具有第二分辨率。

根据本公开的其他方面,提供了一种系统,其包括存储器和耦合到该存储器的处理设备。处理设备被配置成:接收对待经由组合用户界面(UI)呈现的媒体项的用户请求,该组合用户界面(UI)包括一个或多个视频内容组件以及一个或多个UI控件组件;生成视频内容组件的渲染;将包括视频内容组件的渲染的第一流传送到端点设备,其中,第一流被编码为第一分辨率;确定是否在服务器处或者在端点设备处生成UI控件组件的渲染;响应于确定在端点设备处生成UI控件组件的渲染,经由网络向端点设备传送用于渲染UI控件组件的命令集,UI控件组件的渲染具有第一分辨率或第二分辨率;以及响应于确定在服务器处生成UI控件组件的渲染:在服务器处执行用于渲染UI控件组件的命令集以生成UI控件组件的渲染,并且向端点设备传送包括UI控件组件的渲染的第二流。

根据本公开的一些方面,提供了一种包括指令的计算机可读介质,所述指令在由处理设备执行时使处理设备执行上述方法。

可以在本发明的任何其它方面或实施例中分别地且个别地、单独或与任何其它定义的特征相结合地利用在上面依照本发明的任何方面或者在下面关于本发明的任何具体实施例所定义的个别特征和/或特征的组合。此外,本发明旨在涵盖被配置成执行在本文中关于方法描述的任何特征的装置和/或使用或者产生、使用或者制造本文描述的任何装置特征的方法。

附图说明

在附图的图中通过示例而非限制的方式图示本公开,其中同样的附图标记指示相似的元件。应注意的是,本公开中对“一个”或“一个”实施例的不同引用并不一定具有相同的实施例,并且此类引用意指至少一个。

图1图示根据本公开的一些方面的用于提供具有不同组件的组合用户界面的系统架构的示例。

图2图示根据本公开的一些方面的用于向端点设备提供组合用户界面的示例方法的流程图。

图3图示根据本公开的一些方面的用于向端点设备提供组合用户界面的另一示例方法的流程图。

图4图示根据本公开的一些方面的用于向端点设备提供组合用户界面的又一示例方法的流程图。

图5图示根据本公开的一个或多个方面操作的计算设备的示例框图。

具体实施方式

以下公开阐述了许多具体细节,诸如特定系统、组件、方法等的示例,以便提供对本公开的若干实施例的良好理解。然而,本领域技术人员显而易见的是,可以在没有这些特定细节的情况下实践本公开的至少一些实施例。在其他情况下,不详细描述众所周知的组件或方法,或者以简单的框图格式呈现,以避免不必要地模糊本公开。因此,所阐述的具体细节仅仅是示例。特定实现方式可以在这些示例细节中不同,并且仍然可以预期在本公开的范围内。

通过本公开的实现方式解决的技术问题是将内容流传输到端点设备可能需要大量的网络带宽。例如,如果内容正在以4K分辨率流传输到端点设备,则可以使用大量网络带宽来以足够高的分辨率传送内容流以确保用户的内容的清晰显示。如果内容以较低的分辨率传送到端点设备,则流传输的内容的部分可能不清晰,并且用户可能无法完全享受观看体验。因此,可能需要在网络(例如,所需带宽)上实现分辨率和需求之间的折衷。

流传输的内容可以经由UI呈现,该UI可以包括多个组件(不同类型的UI组件)。可能不需要以相同的分辨率流传输多个组件以确保对用户的整体内容的清晰显示,因为用户对这些组件的感知可能是不同的。例如,用户可能想要观看和/或参与被流传输到端点设备的在线游戏。在线游戏可以包括视频内容组件和UI控件组件。用户可能未注意某些组件(诸如视频内容组件)以较低的分辨率流传输,而她能够注意到其他组件(诸如UI控件组件)以较低分辨率流传输。然而,传统上,视频内容组件和UI控件组件一起被渲染以创建一个视频流,然后以一个显示分辨率被编码并被传送到端点设备。该限制导致视频内容组件以更高的分辨率编码,而不是用户享受内容的清晰显示所要求的。因此,浪费大量的网络带宽,以及用于处理更高分辨率内容的计算资源和功率。该问题的一个替代方案是将内容流编码为较低的分辨率以节省网络带宽、计算资源和功率成本。然而,因为用户可以注意到UI控件组件的低分辨率,所以用户可能无法完全享受游戏体验。

另外地,可以通过与视频内容组件相比不频繁地更新和/或更换UI控件组件。然而,因为传统上视频内容组件和UI控件组件被一起渲染,所以在创建组合UI视频流中UI控件组件可以被不必要的重新渲染。这也导致大量的网络带宽和/或计算资源被浪费。

因此,本公开的实现方式提供了从UI控件组件分离地流传输视频内容组件,并确定渲染视频内容组件和UI控件组件的位置和/或方式。服务器可以基于以下至少一个进行该确定:端点设备的硬件能力、端点设备的最大分辨率、组合UI的目标分辨率、服务器的渲染能力以及网络可用的带宽。基于这些因素,服务器可以确定渲染视频内容组件和UI控件组件:(1)在服务器处一起;(2)在服务器上分离地,其中UI控件组件被编码为更高的显示分辨率;或者(3)分离地,其中视频内容组件在服务器处被渲染,并且UI控件组件在端点设备处被渲染。

因此,技术效果可以包括分离地流传输视频内容组件和UI控件组件,并使用适当的分辨率,使得允许用户充分享受内容流传输体验。例如,如果用户请求流传输在线游戏,则可以使用更高的分辨率来流传输UI控件组件,给予用户对于UI控件组件的清晰显示,而可以使用较低的分辨率流传输视频内容组件,这用户不会或至少不太可能注意到。通过在适当的分辨率下流传输不同的组件,在将内容流传输到用户时需要较少的网络带宽,并且在处理被渲染的内容时需要较少的计算资源和功率。因此,可以减轻分辨率和对网络需求之间的折衷。

如果在端点设备上渲染UI控件组件,则进一步减少带宽使用,因为在端点设备处传送命令流以渲染UI控件命令,与传送UI控件命令的渲染相比需要较少的带宽。此外,带宽使用也减少了,因为对UI控件组件的更改不需要像当前技术通常需要的那样来回地传输到服务器。如果端点设备包含渲染命令集,则端点设备可以确定在设备上多久更改用户的UI控件组件。

图1图示了根据本公开的实现方式的用于提供具有不同组件的组合用户界面的系统架构100的示例。系统架构100包括端点设备110A至110Z、一个或多个网络105、一个或多个服务器106、一个或多个电子设备170和一个或多个平台(例如,内容分享平台120、推荐平台157、广告平台165、移动平台150、社交网络平台160、搜索平台145、内容提供商平台195和协作平台155)。这些平台可以是一个或多个计算设备(诸如机架式服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板计算机、台式计算机等)和一个或多个数据存储(例如,硬盘、存储器和数据库)并且可以被耦合到一个或者多个网络105。

一个或多个网络105可以包括一个或多个公用网络(例如,互联网)、一个或多个专用网络(例如,局域网(LAN)或一个或多个广域网(WAN))、一个或多个有线网络(例如,以太网网络)、一个或多个无线网络(例如,802.11网络或Wi-Fi网络)、一个或多个蜂窝网络(例如,长期演进(LTE)网络)、路由器、集线器、交换机、服务器计算机和/或其组合。在一个实现方式中,架构100的一些组件彼此不直接地连接。在一个实现方式中,架构100包括单独的网络105。

一个或多个数据存储(未示出)可以驻留在存储器(例如,随机存取存储器)、缓存、驱动器(例如,硬盘驱动器)、闪存驱动器等等,并且可以是一个或多个数据库系统、一个或多个文件系统、或能够存储数据的另一类型的组件或设备的一部分。一个或多个数据存储可以包括也可以横跨多个计算设备(例如,多个服务器计算机)的多个存储组件(例如,多个驱动器或多个数据库)。数据存储可以是能够存储数据的持久存储。持久存储可以是本地存储单元或远程存储单元、电子存储单元(主存储器)或类似的存储单元。持久存储可以是分布式单片设备或设备集。如本文所使用的“集”指代任何正整数个项。

内容项121(例如,媒体内容项)可以被存储在一个或多个数据存储中。数据存储可以是一个或多个平台的一部分。内容项121的示例可以包括但不限于数字视频、数字电影、动画图像、数字照片、数字音乐、数字音频、数字视频游戏、协作媒体内容呈现、网站内容、社交媒体更新、电子书(ebooks)、电子杂志、数字报纸、数字有声读物、电子期刊、web博客、真正简单聚合(RSS)馈源、电子漫画书、软件应用等。内容项121也被称为媒体项。内容项121可以被预记录或者实时流传输。为了简洁和简单,在线视频游戏(在下文中也称为游戏)在本文档中可以被用作内容项121的示例。

内容项121可以由内容提供商提供。内容提供商可以是用户、公司、组织等。内容提供商可提供作为视频游戏的内容项121。例如,内容项121可以是由游戏发布者提供的视频游戏。在另一示例中,内容项121可以是由媒体内容提供商提供的协作媒体内容呈现。

端点设备110A-110Z可以包括设备,诸如电视、智能电话、蜂窝电话、个人数字助理(PDA)、便携式媒体播放器、上网本、膝上型计算机、电子书阅读器、平板计算机、台式计算机、机顶盒、游戏控制台等。

个别端点设备110A-110Z可以包括通信应用115。可经由通信应用115、互联网等消费内容项121。如本文所使用的,“媒体”、“媒体项”、“在线媒体项”、“数字媒体”、“数字媒体项”、“内容”、“媒体内容项”和“内容项”可以包括可使用被配置成呈现内容项的软件、固件或硬件来执行或者加载的电子文件。在一个实现方式中,通信应用115可以是允许用户通过平台(例如,内容分享平台120、推荐平台157、广告平台165、移动平台150、社交网络平台160、搜索平台145、协作平台155和内容提供商平台195)和/或平台和/或网络的组合组成、发送和接收内容项121(例如,游戏)的应用。

例如,通信应用115可以是社交联网应用、视频分享应用、视频流应用、视频游戏流传输应用、视频点播应用、照片分享应用、聊天应用、内容提供商的移动应用或此类应用的任何组合。端点设备110A-110Z中的通信应用115可向一个或多个用户渲染、显示和/或呈现一个或多个内容项121(例如,游戏)。例如,通信应用115可以提供一个或多个用户界面(例如,图形用户界面)以在用于接收和/或播放视频内容的端点设备110A-110Z上显示。

在一个实现方式中,通信应用115可以包括搜索组件114和内容查看器113,并且可以提供用户界面116,该用户界面116可以用于经由虚拟键盘搜索媒体内容项,并且可以在用户界面116的内容查看器113部分中播放内容项121。内容查看器113可以向一个或多个用户渲染、显示和/或呈现内容项121(例如,视频游戏)。在一个实现方式中,内容查看器113被嵌入在应用(例如,通信应用115)中。在另一实现方式中,内容查看器113可以是独立应用(例如,移动应用、桌面应用、游戏控制台应用、电视应用等),诸如通信应用115,其允许用户消费(例如,播放、显示)内容项121,诸如视频、图像、文档(例如,web页面)等。例如,内容查看器113可以是web浏览器,所述web浏览器可访问、检索、呈现和/或导航由平台的web服务器所服务的内容(例如,诸如超文本标记语言(HTML)页面的web页面、数字媒体项等)。在另一示例中,内容查看器113可以显示被嵌入在文档(例如,用户界面116(web页面))中的嵌入式媒体播放器(例如,播放器或HTML5播放器)。

内容查看器113可以由服务器和/或平台提供给端点设备110A-110Z。例如,内容查看器113可以是嵌入式媒体播放器,其被嵌入在由内容分享平台120或者内容提供商平台195所提供的用户界面116(例如,文档(web页面))或者独立应用的画面)中。在另一示例中,内容查看器113可以是从平台(例如,内容分享平台1020、推荐平台1057、广告平台1065、移动平台150、社交网络平台160、搜索平台145、协作平台155和内容提供商平台195)下载的应用。在另一示例中,内容查看器113可以是被预先安装在端点设备110A-110Z上的独立应用。

电子设备170可以是能够将向端点设备110A-110Z传达方向键输入的任何合适的电子设备。例如,电子设备170可以包括遥控器、游戏控制器、智能手机、平板电脑等。电子设备170可以包括物理或虚拟方向键盘(“D-pad”)175,其包括对应于上、下、左、右和回车(选择)的键。当用户按下方向键盘175的一个或多个键时,电子设备170可以接收键输入选择。电子设备170可以将键输入传送到端点设备110a-110z以便由运行搜索组件114的一个或多个处理器处理。

在一些实施例中,端点设备110A-110Z可以包括一个或多个数据存储。在该示例中,(多个)数据存储可以包括渲染组合UI的命令。该命令可以包括渲染视频内容组件和UI控件组件的指令。在一个实现方式中,命令可以包括渲染UI控件组件的指令,并且视频内容组件可以在其他地方(例如,通过第三方)被渲染。渲染UI控件组件的命令可以包括命令是渲染UI控件组件的显式指示。开发人员和/或发布者可以显式地指示命令是在创建命令时渲染UI控件组件。

一个或多个服务器106可以包括计算设备,诸如机架式服务器、路由器计算机、服务器计算机、个人计算机、大型机计算机、膝上型计算机、平板计算机、台式计算机等,并且可能耦合到一个或多个网络105。一个或多个服务器106可以是独立的设备或任何平台的一部分(例如,内容共享平台120、推荐平台157、广告平台165、移动平台150、社交网络平台160、搜索平台145、内容提供商平台195和协作平台155)。服务器106可以包括渲染组件122。渲染组件122可以确定在终点设备110a-110z上向用户呈现要被渲染的UI控件组件的位置。访问端点设备110a-110z上的内容项的用户可以传送访问内容项的请求。该请求可以包括关于端点设备的能力的信息。例如,该请求可以包括关于端点设备显示一个或多个视频流的能力的信息和/或关于呈现给用户的内容项可以被编码到的最大分辨率的信息。渲染组件122可以分析请求中包括的信息,并且确定是否在服务器106处或端点设备110A-110Z处生成UI控件组件的渲染。如果渲染组件122确定在服务器106处渲染UI控件组件,则渲染组件122可以进一步确定是否以与视频内容组件的渲染一起或者与视频内容组件的渲染分离来渲染UI控件组件。

内容提供商平台195可以提供服务提供商的服务。例如,内容提供商可以是视频游戏流传输服务提供商,其经由通信应用产生在线视频游戏,用于用户经由内容提供商平台195在端点设备110A-110Z上与在线视频游戏交互。在另一个示例中,内容提供商可以是视频流传输服务提供商,其经由通信应用115产生媒体流服务,用于用户经由内容提供商平台195在端点设备110A-110Z上播放视频、电视节目、视频剪辑、音频、音频剪辑和电影。

社交网络平台160可以提供在线社交网络服务。社交网络平台160可以提供通信应用115以便用户创建配置文件并按其配置文件而执行活动。活动可以包括更新配置文件、与其它用户交换消息、评估(例如,点赞、评论、分享、推荐)状态更新、照片、视频等以及接收其它用户活动的通知。

移动平台150可以用于允许用户使用一个或多个移动设备(例如,电话、平板计算机、膝上型计算机、可穿戴计算设备等)和/或任何其它适合的设备来连接到彼此、与彼此分享信息和/或与彼此交互。例如,移动平台150可以启用电话通信、短消息服务(SMS)消息传送、多媒体消息服务(MMS)消息传送、文本聊天和/或用户之间的任何其它通信。移动平台150可经由视频消息传送、视频聊天和/或视频会议支持用户通信。

协作平台155可以使用例如流视频或基于IP的语音(VoIP)技术、蜂窝技术、LAN和/或WAN技术来启用协作服务,诸如视频聊天、视频消息传送以及音频和/或视频会议(例如,在设备110A-110Z的用户之中),并且可以被用于面向个人娱乐、商业、教育或学术的交互。

推荐平台157可以用于生成并提供内容推荐(例如,文章、视频、帖子、新闻、游戏等)。

搜索平台145可以被用于允许用户查询一个或者多个数据存储106和/或一个或者多个平台并且接收查询结果。

广告平台165可以被用于提供视频广告。

内容分享平台120可以用于向一个或多个用户提供对内容项121的访问和/或将内容项121提供给一个或多个用户。例如,内容分享平台120可以允许用户消费、上传、下载和/或搜索内容项121。在另一示例中,内容分享平台120可以允许用户评估内容项121,诸如赞同(“点赞”)、不赞同(“点踩”)、推荐、分享、评定(rate)和/或评论内容项121。在另一示例中,内容分享平台120可以允许用户编辑内容项121。内容分享平台还可以包括可用于例如经由端点设备110A-110Z给一个或多个用户提供对内容项121的访问的网站(例如,一个或多个网页)和/或一个或多个应用(例如,通信应用115)。内容分享平台120可以包括提供对内容项121的访问的任何类型的内容递送网络。

内容分享平台120可以包括多个频道(例如,频道A125至频道Z129)。频道可以是可从公共源获得的数据内容或具有公共话题或主题的数据内容。数据内容可以是由用户选取的数字内容、可由用户获得的数字内容、由用户上传的数字内容、由内容提供商选取的数字内容、由广播公司选取的数字内容等。例如,频道A125可以包含视频Y和Z。频道可以与所有者相关联,所有者是可对频道执行动作的用户。数据内容可以是一个或多个内容项121。频道中的内容可以是预先录制的或实时流传输的。尽管频道被描述为内容分享平台的一个实现方式,但是本公开的实现方式不限于经由频道模型提供内容项121的内容分享平台。

图2-4图示根据本公开的各方面的向端点设备提供组合用户界面的示例方法。为了解释的简单起见,这些方法被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序和/或同时发生,并且与本文未呈现和描述的其他动作一起发生。此外,可能不需要所有图示的动作来实施根据所公开的主题的方法。此外,本领域的技术人员将理解和领会到,这些方法可以替代地经由状态图或事件表示为一系列相互关联的状态。此外,应当领会,本说明书中公开的方法能够存储在制品上以促进将这些方法运输和转移到计算设备。如本文所用,术语“制造品”旨在涵盖可从任何计算机可读设备或存储介质访问的计算机程序。

此外,上面已经结合各自的系统图详细描述各种动作。应当领会,先前图中对这些动作的详细描述可以是并且旨在根据以下方法来实施。

这些方法可由处理逻辑执行,所述处理逻辑可包括硬件(电路、专用逻辑等)、软件(例如,在处理设备上运行的指令)或其组合。在一些实施例中,这些方法的一些或所有操作可以由图1的服务器106执行。

参考图2,流程图示出根据本公开的一些方面的用于向端点设备提供组合用户界面的示例方法200。在块210处,可以接收用户请求以经由用户界面呈现媒体项。用户请求可以包括关于将在其上呈现媒体项的端点设备的信息。在一个实现方式中,用户请求可以包括关于端点设备的能力的信息。例如,用户请求可能包括关于端点设备显示一个或多个视频流的能力的信息。用户请求可以进一步包括与端点设备支持的可用于对要呈现给用户的媒体项进行编码的最大分辨率有关的信息。

响应于对要经由用户界面呈现的媒体项的用户请求,服务器可以确定用户界面是包括一个或多个视频内容组件以及一个或多个UI控件组件的组合用户界面。视频内容组件可以提供视频(例如,实况视频、先前上传的视频、3D视频等)的回放。UI控件组件可以呈现关于视频的信息(例如,视频的标题、视频当前播放部分的副标题、视频当前播放部分的评论等),并允许用户提供属于视频的输入(例如,键入可能导致视频的一个或多个后续部分的内容更改或视频的一个或多个后续部分的回放序列更改的数据,以请求关于视频当前播放部分的信息,诸如关于相关地理位置的信息或关于描绘的角色或对象的信息等)。在一个实现方式中,所请求的媒体项可以是要流传输到端点设备的在线游戏。在这样的实现方式中,视频内容组件可以包括游戏玩法组件(也称为游戏世界组件),并且UI控件组件可以包括呈现关于游戏或游戏中的角色的信息的游戏UI组件(例如、游戏的标题、游戏当前玩的部分的副标题、游戏当前玩的部分的评论等),并且允许用户提供属于游戏的输入(例如,键入可能导致游戏的一个或多个后续部分的角色或动作更改或一系列后续游戏玩法更改的数据,以请求关于游戏玩法当前玩的部分的信息,诸如关于相关地理位置的信息或关于所描绘角色或对象等的信息)。

在确定用户界面是包括视频内容组件和UI控件组件的组合用户界面时,服务器可以与UI控件组件的渲染分离地生成视频内容组件的渲染。服务器可以针对应该经由组合用户界面呈现的每个请求的媒体项这样做,或者替代地,服务器可以确定是否这样做(例如,基于包括在请求中的信息,如将在下文中结合图4更详细地讨论的)。

在框220处,可以生成视频内容组件的渲染。可以使用用于渲染图形的机制来生成视频内容组件的渲染。在一个实现方式中,视频内容组件的渲染可以通过在图形处理单元(GPU)上的图形渲染流水线中执行操作来生成。在另一个实现方式中,可以通过在中央处理单元(CPU)或图形渲染单元(也称为渲染输出单元)上的软件渲染流水线中执行操作来生成视频内容组件的渲染。在又一实现方式中,视频内容组件的渲染可以通过调用与加速器通信以生成渲染的图形应用编程接口(API)来发起。

为了生成组合UI的UI控件组件的渲染,服务器标识命令集以渲染UI控件组件。此类命令可以被预先提供(例如,由软件开发者或视频内容发布者)并且存储在服务器可访问的数据存储中。在块230处,可以执行以上命令集以生成UI控件组件的渲染。在一个实现方式中,当开发组合UI时,软件开发者可以显式地指定用于生成UI控件组件的渲染的命令集。在另一实现方式中,该命令集可以从第三方接收并且该第三方可以将该命令集显式地指定为用于生成UI控件组件的渲染的命令。在又一实现方式中,该命令集可以由从多个第三方接收的多个命令集组成。在这样的实现方式中,第三方可以将命令集显式地指示为生成UI控件组件的一部分的渲染的命令。

在框240处,可以将包括视频内容组件的渲染的第一流和包括UI控件组件的渲染的第二流传送到端点设备。在一个实现方式中,第一流和第二流可以被编码为不同的显示分辨率。特别地,第二流可以被编码为比第一流更高的显示分辨率。例如,第二流可以被编码为端点设备支持的最大分辨率,并且第一流可以被编码为小于端点设备支持的最大分辨率的分辨率。

端点设备可以接收第一流和第二流。端点设备可以确定第二流被编码为比第一流更高的分辨率,并且可以对第一流使用上采样技术(例如,通过在第一流的原始样本之间插入零值样本以增加采样率)以匹配第二流的分辨率。端点设备可以向用户呈现第一流和第二流。在一个实现方式中,端点设备可以将第二流呈现为覆盖第一流,使得第一流和第二流被作为一个媒体项呈现给用户。

图3图示根据本公开的一些方面的用于向端点设备提供组合用户界面的另一示例方法的流程图。在块310处,可以接收用户请求以经由用户界面呈现媒体项。块310可以类似于图2的块210。

响应于对要经由用户界面呈现的媒体项的用户请求,服务器可以确定用户界面是包括一个或多个视频内容组件和一个或多个UI控件组件的组合用户界面。在确定用户界面是包括视频内容组件和UI控件组件的组合用户界面时,服务器可以生成视频内容组件的渲染并且可以指示端点设备生成UI控件组件的渲染(通过向端点设备提供用于渲染UI控件组件的命令集)。服务器可以针对应该经由组合用户界面呈现的每个请求的媒体项这样做,或者可替代地,服务器可以确定是否这样做(例如,基于包括在请求中的信息,如将在下文中结合图4详细地讨论的)。

在框320处,可以生成视频内容组件的渲染,如以上结合图2更详细地讨论的。

在框330处,可以将包括视频内容组件的渲染的第一流传送到端点设备。在一个实现方式中,第一流可以被编码为小于端点设备所支持的最大分辨率的分辨率。可替选地,第一流可以被编码为端点设备所支持的最大分辨率。

在块340处,该命令集可以被传送到端点设备以渲染与第一视频流的视频内容组件相关联的UI控件组件。在一个实现方式中,当开发组合UI时,开发者可以显式地指示用于生成UI控件组件的渲染的命令集。在另一实现方式中,该命令集可以从第三方接收并且该第三方可以将该命令集显式地指定为用于生成UI控件组件的渲染的命令。在又一个实现方式中,该命令集可以由从多个第三方接收到的多个命令集组成。在这样的实现方式中,第三方可以将命令集显式地指示为生成UI控件组件的一部分的渲染的命令。

在一个实现方式中,可以基于用于渲染UI控件组件的初始命令集来生成用于渲染UI控件组件的第二命令集。第二命令集可以包括用于渲染UI控件组件的高级指令。例如,第二命令集可以包括渲染UI控件组件的高级指令,而初始命令集可以包括具有实际渲染UI控件组件所需的信息的特定指令。在一个实现方式中,可以将第二命令集传送到端点设备以代替初始命令集。使用第二命令集,端点设备可以确定应该在UI中包括什么类型的UI控件,并且可以使用本地存储的针对这种特定类型的UI控件的指令来生成渲染。

端点设备可以接收第一流和用于生成UI控件组件的渲染的命令集。端点设备可以执行接收到的命令集并且生成UI控件组件的渲染。在一个实现方式中,端点设备可以使用针对第一流的上采样技术以匹配端点设备的最大分辨率。可替选地,第一流可以被编码为用于渲染UI控件组件的相同分辨率,这在带宽使用方面仍然是有利的,因为传送命令需要比传送UI控件组件的渲染更少的带宽和计算资源。

端点设备可以向用户呈现第一流和UI控件组件的渲染。例如,端点设备可以将UI控件组件的渲染呈现为覆盖第一流,使得第一流和UI控件组件被作为一个媒体项向用户呈现。

图4图示了根据本公开的一些方面的用于向端点设备提供组合用户界面的又一示例方法的流程图。在框410处,可以接收用户请求以经由组合用户界面呈现媒体项。组合用户界面可以包括一个或多个视频内容组件和一个或多个UI控件组件。在一个实现方式中,所请求的媒体项可以是要流传输到端点设备的游戏。在这样的实现方式中,视频内容组件可以包括游戏组件(也称为游戏世界组件)并且UI控件组件可以包括游戏UI组件。在一个实现方式中,可以经由UI控件组件接收用户输入。

用户请求可以包括关于在其上呈现媒体项的端点设备的信息。在一个实现方式中,用户请求可以包括关于端点设备的能力的信息。例如,用户请求可以包括关于端点设备显示一个或多个视频流的能力的信息。用户请求可以进一步包括关于呈现给用户的媒体项可以被编码成的最大分辨率的信息。

在框415处,可以确定是在服务器处(例如,在参考图1描述的平台处)或者在端点设备处生成UI控件组件的渲染。在一个实现方式中,确定是否生成UI控件组件的渲染可以基于以下至少之一:端点设备的硬件能力、端点设备的分辨率、组合UI的目标分辨率、服务器的渲染能力或网络(例如,图1的网络105)上可用的带宽。

在一个实现方式中,可以确定是否在服务器处生成UI控件组件的渲染。例如,如果端点设备处理能力低,则可以确定在服务器处生成UI控件组件的渲染。如果确定在服务器处生成UI控件组件的渲染,则方法400可以继续到块420。

在块420处,可以确定是否随着视频内容组件的渲染来生成UI控件组件的渲染。在一个实现方式中,可以确定随着视频内容组件的渲染来生成UI控件组件的渲染。例如,如果端点设备能够一次向用户显示一个视频流,则可以确定随着视频内容组件的渲染来生成UI控件组件的渲染。在另一示例中,如果端点设备具有低的最大分辨率,则可以确定随着视频内容组件的渲染来生成UI控件组件的渲染。

如果确定随着视频内容组件的渲染来生成UI控件组件的渲染,则方法400可以继续到块425。在块425处,视频内容组件和UI控件组件的渲染可以被生成为组合UI的渲染。在一个实现方式中,可以通过用于渲染图形的任何方法来生成组合UI的渲染,如上面参考图2所讨论的。在另一实现方式中,如以上参考图2所讨论的,可以通过在GPU上的图形渲染流水线中执行的操作来生成组合UI的渲染。在又一实现方式中,如以上参考图2所讨论的,可以通过在CPU或图形渲染单元上的软件渲染流水线中执行的操作来生成组合UI的渲染。在又一实现方式中,可以使用图形API来呈现组合UI,如上面参考图2所讨论的。

在块430处,第一流可以被传送到端点设备。第一流可以包含在块425处生成的组合UI的渲染。端点设备可以向用户呈现第一流。

在一个实现方式中,可以确定与视频内容组件的渲染分离地生成UI控件组件的渲染。例如,如果端点设备能够同时向用户显示多个视频流,则可以确定与视频控件组件的渲染分离地生成UI控件组件的渲染。在另一个示例中,如果没有大量的网络带宽来以端点设备能够呈现的最大分辨率传送包括视频内容组件和UI控件组件的渲染的单个流,则可以确定与视频控制组件的渲染分离地生成UI控件组件的渲染。

在块420处,如果确定与视频内容组件的渲染分离地生成UI控件组件的渲染,则方法400可以继续到块435。在块435处,可以生成视频内容组件的渲染,如上面参考图2所讨论的。视频内容组件的渲染可以包括在第一视频流中。在一个实现方式中,第一视频流可以被编码为小于端点设备能够呈现的最大分辨率的分辨率。

在框440处,可以执行命令集以生成UI控件组件的渲染,如上面参考图2所讨论的。

UI控件组件的渲染可以被包括在第二流中。在一个实现方式中,第二流可以被编码为端点能够呈现的最大分辨率。在一个实现方式中,第二流可以被编码为高于第一流的分辨率的分辨率。

在块445处,第一流和第二流可以被传送到端点设备。第一流可以包括视频内容组件的渲染。第二流可以包括UI控件组件的渲染。

端点设备可以接收第一流和第二流。端点设备可以确定第二流被编码为比第一流更高的显示分辨率。在一个实现方式中,端点设备可以对第一流使用上采样技术以匹配第二流的分辨率。端点设备可以向用户呈现第一流和第二流。在一个实现方式中,端点设备可以将第二流呈现为覆盖第一流,使得第一流和第二流被作为一个媒体项向用户呈现。

在一个实现方式中,可以确定在端点设备处生成UI控件组件的渲染。例如,如果端点设备具有高处理能力,则可以确定在端点设备处生成UI控件组件的渲染。

在块415处,如果确定在端点设备处生成UI控件组件的渲染,则方法400可以继续到块450。在块450处,可以生成视频内容组件的渲染,如上面参考图2所讨论的。视频内容组件的渲染可以被包括在第一流中。在一个实现方式中,第一流可以被编码为小于端点设备能够呈现的最大分辨率的分辨率。在另一个实现方式中,第一流可以被编码为端点设备能够呈现的最大分辨率。

在一个实现方式中,可以基于用于渲染UI控件组件的初始命令集来生成用于渲染UI控件组件的第二命令集。第二命令集可以包括用于渲染UI控件组件的高级指令,如上面参考图3所讨论的。在一个实现方式中,可以将第二命令集传送到端点设备以代替初始命令集。

在块455处,第一流可以被传送到端点设备。第一流可以包括视频内容组件的渲染。也可以将命令集传送到端点设备例如以端点设备所支持的最大分辨率进行渲染。该命令集可以是用于渲染UI控件组件的命令集。在一个实现方式中,端点设备可以对第一流使用上采样技术以匹配端点设备的最大分辨率。端点设备可以向用户呈现第一流和UI控件组件的渲染。例如,端点设备可以将UI控件组件的渲染呈现为覆盖第一流,使得第一流和UI控件组件被作为一个媒体项向用户呈现。

图5图示了根据本公开的一个或者多个方面的计算设备的示例框图。计算机系统600可以是图1中的服务器106或者端点设备110A-110Z。机器可以在端点-服务器网络环境中以服务器或者端点机器来操作,或者在对等(或分布式)网络环境中作为对等机器来操作。机器可以是电视、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web电器、服务器、网络路由器、交换机或桥接器,或能够执行指定要由该机器采取的动作的指令集(顺序的或以其他方式)的任何机器。另外,虽然仅图示了单个机器,但是术语“机器”也应被视为包括任何的机器的集合,该机器的集合单独地或联合地执行指令集(或多个指令集)以执行本文讨论的方法中的任何一个或多个。

示例计算机系统500包括经由总线540彼此通信的处理设备(处理器)502、主存储器504(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM),诸如同步DRAM(SDRAM)、双数据速率(DDR SDRAM)或DRAM(RDRAM)等)、静态存储器506(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储设备518。

处理器(处理设备)502表示诸如微处理器、中央处理单元等这样的一个或多个通用处理设备。更具体地,处理器502可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实现其它指令集的处理器或实现指令集的组合的处理器。处理器502还可以是诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等这样的一个或多个专用处理设备。处理器502被配置成执行指令505(例如,渲染组件122或者通信应用115)以便执行本文讨论的操作和步骤。

计算机系统500可以进一步包括网络接口设备508。计算机系统500还可以包括视频显示单元510(例如,液晶显示器(LCD)或阴极射线管(CRT))、输入设备512(例如,键盘和字母数字键盘、运动感测输入设备、触摸屏)、光标控制设备514(例如,鼠标)和信号生成设备520(例如,扬声器)。

数据存储设备518可以包括非暂时性机器可读存储介质524(也是计算机可读存储介质),在其上存储有具体实现本文描述的方法或功能中的任何一个或者多个指令集505(例如,渲染组件122或者通信应用115等等)。指令还可以在其由计算机系统500执行期间完全地或至少部分地驻留在主存储器504内和/或在处理器502内,主存储器504和处理器502也构成计算机可读存储介质。可进一步经由网络接口设备508通过网络530传送或者接收指令。

在一个实现方式中,指令505包括用于渲染视频内容组件和/或UI控件组件的指令。虽然计算机可读存储介质524(机器可读存储介质)在示例性实现方式中被示出为单个介质,但是术语“计算机可读存储介质”和“机器可读存储介质”应该被视为包括单个介质或存储一组或多组指令的多个介质(例如,集中式或分布式数据库和/或关联的缓存和服务器)。术语“计算机可读存储介质”和“机器可读存储介质”也应被视为包括能够对一组指令进行存储、编码或者承载以供由机器执行并且使机器执行本公开的方法中的任何一种或多种的任何介质。术语“计算机可读存储介质”和“机器可读存储介质”因此应被视为包括但不限于固态存储器、光学介质和磁介质。

贯穿本说明书对“一个实现方式”或“实现方式”的参考意味着连同该实现方式一起描述的特定特征、结构或特性被包括在至少一个实现方式中。因此,取决于情形,短语“在一个实现方式中”或“在实现方式中”贯穿本说明书在各个地方中的出现不一定全部都参考相同的实现方式。此外,特定特征、结构或特性可以在一个或多个实现方式中以任何合适的方式组合。

就在详细描述或权利要求中使用术语“包括”、“包括”、“具有”、“包含”、其变体和其他类似的词语来说,这些术语旨在以类似于术语“包括”的方式作为开放式过渡词而不排除任何附加或其他元素。

如在本说明书中使用的,术语“组件”、“模块”、“系统”等通常旨在指代计算机的相关实体、硬件(例如,电路)、软件、硬件和软件的组合,或与具有一个或多个特定功能性的操作机器相关的实体。例如,组件可以是但不限于在处理器(例如,数字信号处理器)上运行的过程、处理器、对象、可执行文件、执行线程、程序和/或计算机。以实例说明,在控制器上运行的应用和控制器都可以是一个组件。一个或多个组件可以驻留在一个过程和/或执行线程中,并且组件可以定位于一台计算机上和/或分布在两台或多台计算机之间。此外,“设备”可以采用专门设计的硬件形式;通过在其上执行软件而使硬件能够执行特定功能(例如,生成兴趣点和/或描述符)而专门化的通用硬件;计算机可读介质上的软件;或其组合。

已经关于若干组件和/或块之间的交互描述了前述系统、电路、模块等。可以领会,这样的系统、电路、组件、块等可以包括那些组件或指定的子组件、指定的组件或子组件中的一些和/或附加组件,并且根据各种前述的排列和组合。子组件也可以实现为与其他组件通信耦合的组件,而不是包含在父组件(分级)中。此外,应该注意的是,一个或多个组件可以组合成提供聚合功能性的单个组件或分成几个单独的子组件,并且可以提供任何一个或多个中间层,诸如管理层,以通信耦合到此类子组件以便于提供集成功能性。本文描述的任何组件也可以与本文未具体描述但本领域技术人员已知的一个或多个其他组件相互作用。

此外,此处使用的词语“示例”或“示例性”意指用作示例、实例或图示。在此描述为“示例性”的任何方面或设计不一定被解释为超过其他方面或设计是优选的或者有利的。相反,使用“示例”或“示例性”单词旨在以具体方式呈现概念。如在本申请中使用的术语“或”旨在意指包含的“或”而不是排他的“或”。也就是说,除非另有说明或从上下文中清楚地知道,“X采用A或B”旨在意指任何自然包容性排列。也就是说,如果X采用A;X采用B;或X采用A和B两者,则在上述任何情况下都满足“X采用A或B”。此外,除非另有说明或从上下文清楚指向单数形式,否则本申请和所附权利要求中使用的冠词“一个”和“一个”通常应被解释为意指“一个或多个”。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于认证和授权基于网络的媒体处理的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类