云应用画面传输方法、设备和存储介质与流程

文档序号:33461390发布日期:2023-03-15 03:58阅读:27来源:国知局
云应用画面传输方法、设备和存储介质与流程

1.本发明涉及互联网技术领域,尤其涉及一种云应用画面传输方法、设备和存储介质。


背景技术:

2.云应用,运行在云端服务器,用户端不需要安装应用,用户可以通过客户端或网页的方式使用远端的云应用。云服务器通过视频流推流协议,以视频流的方式对云应用界面进行编码,之后将编码出的一帧帧云应用画面数据发送至客户端,以使用户能够使用云端的云应用。实际应用中,云端可以运行有诸如云游戏、元宇宙等各种云应用。当然,泛化来说,也可以将诸如云桌面、云手机等也视为是一种云应用。
3.在云应用的运行过程中,可能在云应用某界面中需要加载多媒体数据(比如视频、动画、图片等),该多媒体数据可能来源于外部,也可能是该云应用界面中原本就设置好的。这些多媒体数据往往原本已经经过某种编码方式的编码。在这种情形下,该云应用界面向客户端的传输过程是:云服务器加载多媒体数据,进行多媒体数据的解码,之后在该云应用界面中播放出解码的多媒体数据,之后,对该播放多媒体数据的云应用画面进行一帧帧地采样,采样出一帧帧云应用画面,基于某种视频流推流协议对采样出的云应用画面进行视频流的编码处理,将编码后的一帧帧云应用画面发送至客户端。客户端采用对应的解码方式解码出一帧帧云应用画面并进行渲染显示。
4.由于在向客户端传输云应用画面时,云服务器需要执行多媒体数据的解码和渲染显示,以及包含多媒体数据的云应用界面编码的处理,反复的编码、解码以及渲染处理带来较大的算力开销,而且还会影响画质。


技术实现要素:

5.本发明实施例提供一种云应用画面传输方法、设备和存储介质,用以降低云端在向客户端传输云应用画面过程中的算力开销。
6.第一方面,本发明实施例提供一种云应用画面传输方法,应用于云服务器,所述方法包括:
7.加载云应用界面中当前时刻需要显示的已编码的多媒体数据;
8.根据所述多媒体数据和所述云应用界面,生成所述当前时刻的第一云应用画面数据;
9.确定所述第一云应用画面数据中的播放区域画面数据和非播放区域画面数据以及所述播放区域画面数据对应的画面布局信息;
10.将所述播放区域画面数据和所述播放区域画面数据对应的画面布局信息分别发送至云应用对应的客户端,以使所述客户端解码所述播放区域画面数据并根据所述画面布局信息渲染解码后的播放区域画面数据。
11.第二方面,本发明实施例提供一种云应用画面传输装置,应用于云服务器,所述装
置包括:
12.获取模块,用于加载云应用界面中当前时刻需要显示的已编码的多媒体数据,根据所述多媒体数据和所述云应用界面,生成所述当前时刻的第一云应用画面数据;
13.确定模块,用于确定所述第一云应用画面数据中的播放区域画面数据和非播放区域画面数据以及所述播放区域画面数据对应的画面布局信息;其中,所述多媒体数据包含于所述播放区域画面数据;
14.发送模块,用于将所述播放区域画面数据和所述播放区域画面数据对应的画面布局信息分别发送至云应用对应的客户端,以使所述客户端解码所述播放区域画面数据并根据所述画面布局信息渲染解码后的播放区域画面数据。
15.第三方面,本发明实施例提供一种云服务器,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如第一方面所述的云应用画面传输方法。
16.第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被云服务器的处理器执行时,使所述处理器执行如第一方面所述的云应用画面传输方法。
17.第五方面,本发明实施例提供一种云应用画面传输方法,应用于与云应用对应的客户端,所述方法包括:
18.向所述云应用对应的云服务器发送数据播放请求,以使所述云服务器基于所述数据播放请求加载云应用界面中当前时刻需要显示的已编码的多媒体数据;
19.接收所述云服务器发送的第一云应用画面数据中的播放区域画面数据和所述播放区域画面数据对应的画面布局信息;其中,所述第一云应用画面数据根据所述多媒体数据和所述云应用界面生成,所述多媒体数据包含于所述播放区域画面数据;
20.解码所述播放区域画面数据并根据所述画面布局信息渲染解码后的播放区域画面数据。
21.第六方面,本发明实施例提供一种云应用画面传输装置,应用于与云应用对应的客户端,所述装置包括:
22.发送模块,用于向所述云应用对应的云服务器发送数据播放请求,以使所述云服务器基于所述数据播放请求加载云应用界面中当前时刻需要显示的已编码的多媒体数据;
23.接收模块,用于接收所述云服务器发送的第一云应用画面数据中的播放区域画面数据和所述播放区域画面数据对应的画面布局信息;其中,所述第一云应用画面数据根据所述多媒体数据和所述云应用界面生成,所述多媒体数据包含于所述播放区域画面数据;
24.渲染模块,用于解码所述播放区域画面数据并根据所述画面布局信息渲染解码后的播放区域画面数据。
25.第七方面,本发明实施例提供一种终端设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如第五方面所述的云应用画面传输方法。
26.第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被终端设备的处理器执行时,使所述处理器执行如第五方面所述的云应用画面传输方法。
27.本发明实施例提供一种可以用于将云应用画面传输至客户端的云应用画面传输方法,基于该方法,云服务器获取需要在云应用界面中显示的原本已编码的多媒体数据,根据云应用界面中需要显示的其他内容生成需要向客户端发送的第一云应用画面数据,云服务器本地并不渲染显示该云应用界面。在向客户端传输第一云应用画面数据的过程中,首先,基于画面数据的动态变化特征,将第一云应用画面数据划分为两部分,一是播放区域画面数据,剩余的是非播放区域画面数据。动态变化的多媒体数据一般会包含在播放区域画面数据中。之后,将播放区域画面数据和播放区域画面数据对应的画面布局信息分别发送至客户端,以由客户端解码播放区域画面数据并根据上述画面布局信息进行渲染显示,这样在客户端就合成了完整的云应用界面。
28.通过上述过程可知,云服务器不再需要解码多媒体数据并进行渲染显示,也不需要再抓取一帧帧包含多媒体数据的完整云应用画面再进行编码,而是在加载到完整的云应用画面数据到内存后便直接基于数据变化性将云应用画面数据中的播放区域画面数据重定向到客户端去进行解码、显示,云端不需要额外的解码、渲染、编码处理,仅需要再将更新的非播放区域画面数据以及播放区域画面数据的画面布局信息发送至客户端即可,节省了云端算力开销,且保证了画质。
附图说明
29.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.图1为本发明实施例提供的一种云应用画面传输系统的示意图;
31.图2为一种传统的云应用画面传输方法的原理示意图;
32.图3为本发明实施例提供的一种云应用画面传输方法的流程图;
33.图4a为本发明实施例提供的一种云应用画面传输方法的原理示意图;
34.图4b为本发明实施例提供的一种云应用画面传输方法的执行过程示意图;
35.图5为本发明实施例提供的一种云应用画面传输方法的流程图;
36.图6为本发明实施例提供的一种云应用画面传输方法的流程图;
37.图7为本发明实施例提供的一种云应用画面传输方法的应用示意图;
38.图8为本发明实施例提供的一种云应用画面传输方法的应用示意图;
39.图9为本发明实施例提供的一种云应用画面传输装置的结构示意图;
40.图10为本发明实施例提供的一种云应用画面传输装置的结构示意图;
41.图11为本实施例提供的一种云服务器的结构示意图;
42.图12为本实施例提供的一种终端设备的结构示意图。
具体实施方式
43.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
45.图1为本发明实施例提供的一种云应用画面传输系统的示意图,如图1所示,该画面传输系统包括客户端、云服务器,以及多个数据源(图中假设为n个)。
46.其中,云服务器可以是基于某种操作系统(如安卓操作系统)构建出一些用于运行某种云应用的虚拟机。一个云服务器中可以部署有多个云应用。
47.云应用在运行过程中,基于用户通过客户端触发的交互行为或云应用中本身设置的一些链接等情形,可能需要加载外部数据源提供的多媒体数据,比如图1中示意的一些外部数据源,这些数据源可能是一些视频网站等。多媒体数据比如包括音视频、动画、图片等。
48.在一些实际应用场景中,比如视频数据等多媒体数据在生成时便是已经采用某种编码方式进行了编码处理,从而比如运行上述云应用的云服务器在从数据源中下载该视频数据时,下载下来的便是已编码的视频数据。
49.下面基于上述系统组成,结合图2示例型说明一种传统的云应用画面传输方案。
50.如图2中所示,假设需要在某云应用界面中显示某多媒体数据,此时的传输过程是:云服务器从相应数据源加载已编码的多媒体数据到云服务器本地,之后,云服务器通过内部设置的某种解码器(比如media coder)进行多媒体数据的解码,之后在该云应用界面中播放出解码的多媒体数据,即逐步解码渲染一帧帧多媒体数据。之后,对该播放多媒体数据的云应用界面进行一帧帧地画面抓取,对抓取到的每帧云应用画面,基于某种视频流推流协议中提供的编码方式进行视频流的编码处理,将编码后的一帧帧云应用画面发送至客户端。客户端采用对应的解码方式解码出一帧帧云应用画面并进行渲染显示。
51.上述数据流需要经过解码-渲染显示-编码-解码的过程,反复的解码、渲染、编码使得云服务器算力消耗较大。
52.而为了降低云服务器的算力开销,本发明实施例中,上述画面传输系统中各组成部分的工作过程可以概括为:
53.客户端,向云应用对应的云服务器发送数据播放请求,以使云服务器基于该数据播放请求加载某云应用界面中当前时刻需要显示的已编码的多媒体数据。
54.云服务器,加载所述已编码的多媒体数据,根据加载到的多媒体数据和该云应用界面,生成当前时刻的第一云应用画面数据,确定第一云应用画面数据中的播放区域画面数据和非播放区域画面数据以及播放区域画面数据对应的画面布局信息,将播放区域画面数据和播放区域画面数据对应的画面布局信息分别发送至云应用对应的客户端。
55.客户端,解码播放区域画面数据并根据上述画面布局信息渲染解码后的播放区域画面数据。
56.实际上,如果上述非播放区域画面数据相比于上一次发送至客户端的非播放区域画面数据(上一非播放区域画面数据)已经更新,则也会将当前的非播放区域画面数据发送至客户端,以使客户端渲染非播放区域画面数据。
57.需要说明的是,本发明实施例中所说的云应用画面数据,是指等待渲染的画面数据,而非是指已经渲染出的画面数据。而且,如果不考虑云应用界面中用户触发的交互行为以及界面中需要加载的动态变化的多媒体数据,假设该云应用界面是固定不变的,那么云服务器在不同时刻得到的云应用画面实际上就是这个云应用界面。但是,如果该云应用界
面中还添加了额外的动态变化的内容时,不同时刻的云应用画面就不只是包含这个云应用界面了,还包括相应的动态内容,比如多媒体数据、交互行为数据。
58.下面结合以下实施例详细介绍云服务器在云应用画面传输过程中的具体执行过程。
59.图3为本发明实施例提供的一种云应用画面传输方法的流程图,如图3所示,该方法可以应用于云服务器,具体包括如下步骤:
60.301、加载云应用界面中当前时刻需要显示的已编码的多媒体数据。
61.302、根据多媒体数据和云应用界面,生成当前时刻的第一云应用画面数据。
62.303、确定第一云应用画面数据中的播放区域画面数据和非播放区域画面数据以及播放区域画面数据对应的画面布局信息。
63.304、将播放区域画面数据和播放区域画面数据对应的画面布局信息分别发送至云应用对应的客户端,以使客户端解码播放区域画面数据并根据画面布局信息渲染解码后的播放区域画面数据。
64.假设在客户端的屏幕上显示着某云应用画面a,在该云应用画面a中显示有至少一个视频播放窗口,且在该视频播放窗口内呈现有一个播放按钮,围绕该视频播放窗口周围显示有多个视频信息供用户选择播放。假设用户当前通过鼠标或触控等操作方式选中了目标视频,则客户端向云服务器发送包含该选择信息的数据播放请求。其中,假设用户选择目标视频后应该显示的云应用界面仍是该云应用界面a,只是其中视频播放窗口内的数据较之前发生了变化。那么云服务器基于当前时刻t1收到的该数据播放请求,从相应的数据源中加载已编码的目标视频数据到云服务器内存中,而且,云服务器也将云应用界面a的界面数据加载到内存中,从而便可以基于云应用界面a的界面数据以及目标视频数据得到当前时刻的第一云应用画面数据。界面数据,概括来说,其中包含了云应用界面a中在各个像素位置应该以何种方式显示出什么数据的描述信息,若将云应用界面a类比为一张图像,界面数据就是描述这张图像的信息,包括各个像素位置的像素值、颜色、亮度等属性信息。
65.本发明实施例中,云服务器在基于加载到内存中的已编码多媒体数据和云应用界面数据得到上述第一云应用画面数据后,并不在云服务器进行渲染显示对应的云应用画面。本发明实施例中所说的云应用画面数据是指用于渲染显示一帧完整的云应用界面所需的数据。
66.云服务器在得到上述第一云应用画面数据后,基于云应用画面数据的动态变化性,将第一云应用画面数据划分为两部分,一是播放区域画面数据,剩余的是非播放区域画面数据。动态变化的多媒体数据一般会包含在播放区域画面数据中。
67.可以理解的是,该第一云应用画面数据包括上述视频播放窗口内需要展示的画面数据以及该视频播放窗口外云应用界面a内包含的界面数据。其中,视频播放窗口内需要展示的画面数据包含在播放区域画面数据中,而该视频播放窗口外的界面数据可能有部分包含在播放区域画面数据中,也可能都包含在非播放区域画面数据。
68.具体地,云应用画面数据的动态变化性,是指同一用户使用某云应用过程中,在短时间内的不同时刻(不同采样时刻或者说不同加载时刻)生成的云应用画面数据进行对比,以确定不同云应用画面数据中动态变化的区域,这个区域即对应于播放区域画面数据。
69.针对上述当前时刻生成的第一云应用画面数据而言,对比第一云应用画面数据和
历史时刻生成的第二云应用画面数据,以确定第一云应用画面数据中与第二云应用画面数据中不同的画面数据为第一云应用画面数据中的播放区域画面数据,相同的画面数据为非播放区域画面数据。其中,上述历史时刻可以是:假设云服务器以频率δt来不断生成需要向客户端发送的一帧帧云应用画面数据,假设第一云应用画面数据是t1时刻得到的,那么第二云应用画面数据可以是(t1-δt)的时刻得到的云应用画面数据。
70.在通过上述对比过程确定第一云应用画面数据中的播放区域画面数据和非播放区域画面数据之后,可以分别将播放区域画面数据和非播放区域画面数据,以及播放区域画面数据的画面布局信息发送至客户端。
71.其中,关于非播放区域画面数据,由于其更新频率相比于播放区域画面数据更低,因此,若第二云应用画面数据中的非播放区域画面数据与第一云应用画面数据中的非播放区域画面数据不相同,则将第一云应用画面数据中的非播放区域画面数据发送至客户端,以使客户端渲染第一云应用画面数据中的非播放区域画面数据。也就是说,如果当前时刻确定出的非播放区域画面数据与上一历史时刻确定出的非播放区域画面数据相同,则此时不需要再重复发送该非播放区域画面数据至客户端。
72.其中,上述画面布局信息,简单来说就是包括播放区域在完整的云应用画面中对应的位置以及视图层级信息。该画面布局信息可以从云应用界面的相关属性信息、多媒体数据的属性信息中提取得到。
73.在一可选实施例中,在得到第一云应用画面数据中的非播放区域画面数据之后,可以对比确定与第二云应用画面数据中的非播放区域画面数据是否一致,若不一致,则此时会将第一云应用画面数据中的非播放区域画面数据发送到客户端,若一致,则此时不用将第一云应用画面数据中的非播放区域画面数据发送到客户端。
74.由于上述播放区域和非播放区域画面数据的定义,在实际应用中,非播放区域画面数据的更新频率会远低于播放区域画面数据的更新频率,所以,不需要重复的向客户端发送相同的非播放区域画面数据,以降低云服务器的带宽开销。
75.另外,在云服务器向客户端发送第一云应用画面数据中的播放区域画面数据和非播放区域画面数据时,播放区域画面数据直接被发送至客户端,而对于非播放区域画面数据,可以采用视频流推流协议中提供的编码方式进行编码后再传输至客户端。
76.为了便于区别,将对非播放区域画面数据进行编码时所采用的编码方式称为第二编码方式,而数据源对多媒体数据编码时所采用的编码方式为第一编码方式,两种编码方式可以不同。由于动态变化的多媒体数据经过上述播放区域和非播放区域画面数据的判定后,一般是包含在播放区域画面数据中的,因此,客户端可以采用第一解码器(比如media coder)对播放区域画面数据进行解码,其中,第一解码器采用的解码方式与多媒体数据采用的第一编码方式相对应。客户端可以采用第二解码器对非播放区域画面数据进行解码,其中,第二解码器采用的解码方式与非播放区域画面数据采用的第二编码方式相对应。需要说明的是,如果播放区域画面数据中除上述多媒体数据外,还包括其他数据,比如用户的交互行为数据,则服务端对该其他数据也采用上述第一编码方式进行编码,从而使得播放区域画面数据中包括第一编码方式编码的多媒体数据和其他数据。客户端采用上述第一解码器对该报废区域画面数据进行解码。
77.与传统的云应用画面传输方案相比,实际上,在本发明实施例提供的方案中,客户
端侧的算力并不会增加,因为传统方案中客户端也是需要对接收到的一阵阵完整的经过编码后的云应用画面进行解码之后渲染显示,本发明实施例中,客户端分别对播放区域画面数据进行解码、渲染以及对非播放区域画面数据进行解码、渲染,播放区域画面数据和非播放区域画面数据都是完整云应用画面数据中的一部分,因此算力上并未增加。而且,如上文所述,假设云服务器向客户端一共进行n次不同云应用画面数据传输,其中,需要依次传输n个不同的播放区域画面数据,但是可能仅需要依次传输m个不同的非播放区域画面数据,m小于n,从而使得客户端对非播放区域画面数据的解码算力开销更低。
78.综上,本发明实施例中,通过将流式的多媒体数据及其画面布局信息直接重定向推送到客户端侧进行解码、渲染显示,可以省去云服务器侧多媒体数据解码、截屏(抓取云应用画面)、再编码的处理过程,节省了云服务器的计算资源。而且,客户端是直接处理原始的多媒体数据而非抓取的云应用画面,可以提供更佳的画质观感。
79.在一可选实施例中,上述对比第一云应用画面数据和第二云应用画面数据,可以是逐条数据进行对比的方式。其中,一条数据可以是对应于一个像素点的数据,其中包括像素位置、像素值、视图层级等各种相关属性信息。
80.在另一可选实施例中,为提高处理效率,也可以采用如下对比方式:
81.确定所述云应用界面中包含的目标界面组件,目标界面组件是显示的数据可动态变化的预设类型的界面组件;
82.对比第一云应用画面数据和第二云应用画面数据中目标界面组件上需要显示的画面数据是否一致;
83.若不一致,则确定第一云应用画面数据中目标界面组件上需要显示的画面数据包含于所述播放区域画面数据。
84.也就是说,可以预先设定一些类型的其上显示的数据常常会动态变化的界面组件构成目标界面组件,比如视频播放窗口、弹窗、输入框,等等。基于已知的上述云应用界面的界面布局描述信息,可以得知该应用界面中包含的各种界面组件以及其对应的位置。之后,在上述云应用界面中包含的若干界面组件中确定其中包含的目标界面组件。由于第一云应用画面数据和第二云应用画面数据都是对应于同一云应用界面的,因此,可以通过对比第一云应用画面数据和第二云应用画面数据中相同目标界面组件上需要显示的画面数据是否一致来确定第一云应用画面数据中的播放区域画面数据。具体地,若这两个云应用画面数据中同一目标界面组件上对应的画面数据不同,则认为第一云应用画面数据中对应于这个目标界面组件的画面数据是应该包含在第一云应用画面数据中的播放区域画面数据中的。
85.上述这种对比方式虽然可能会遗漏部分本应该属于播放区域画面数据中的数据,但是通常也会识别出大部分呈现动态变化特征的画面数据,将通过这种对比方式得到的播放区域画面数据直接发送至客户端才进行解码、渲染显示,同样可以降低云服务器的计算开销,且保证客户端的画面质量。
86.为了能够更直观地理解本发明实施例提供的云应用画面传输方案相对传统方案的差异,结合图4a和图4b进行示意说明。
87.图4a为本发明实施例提供的一种云应用画面传输方法的原理示意图。
88.如图4a所示,假设需要在某云应用界面中显示多媒体数据,此时的传输过程是:云
服务器从相应数据源加载已编码的多媒体数据到云服务器本地,之后,根据加载到的已编码的多媒体数据和该云应用界面生成当前时刻的第一云应用画面数据,并确定出第一云应用画面数据中的播放区域画面数据和非播放区域画面数据以及播放区域画面数据对应的画面布局信息。之后,将播放区域画面数据、编码后的非播放区域画面数据以及画面布局信息发送至客户端。客户端渲染非播放区域画面数据以及解码播放区域画面数据并根据画面布局信息渲染解码后的播放区域画面数据。
89.图4b为本发明实施例提供的一种云应用画面传输方法的执行过程示意图,如图4b所示,假设客户端需要在云应用界面401中播放视频数据(即多媒体数据)402。
90.云服务器加载云应用界面401中的已编码的视频数据402,并根据云应用界面401和视频数据402生成第一云应用画面数据,之后,云服务器确定出第一云应用画面数据中的播放区域画面数据、非播放区域画面数据以及播放区域画面数据对应的画面布局信息。本实施例中以视频数据402为播放区域画面数据,云应用界面401为非播放区域画面为例,相应的,画面布局信息即为视频数据402对应的画面布局信息。
91.云服务器将播放区域画面数据、非播放区域画面数据以及画面布局信息分别发送至客户端。客户端渲染非播放区域画面数据以及解码播放区域画面数据,根据画面布局信息渲染解码后的播放区域画面数据后得到云应用画面。
92.图5为本发明实施例提供的一种云应用画面传输方法的流程图,如图5所示,该方法可以应用于云服务器,具体包括如下步骤:
93.501、加载云应用界面中当前时刻需要显示的已编码的多媒体数据,多媒体数据原本已被采用第一编码方式进行编码。
94.502、若检测到当前时刻用户在云应用界面中触发了交互行为数据,则根据多媒体数据、交互行为数据和云应用界面,生成当前时刻的第一云应用画面数据。
95.503、确定第一云应用画面数据中的播放区域画面数据和非播放区域画面数据以及播放区域画面数据对应的画面布局信息。
96.504、若确定播放区域画面数据中包含上述交互行为数据,则采用第一编码方式对交互行为数据进行编码处理。
97.505、将播放区域画面数据、采用第二编码方式编码的非播放区域画面数据和播放区域画面数据对应的画面布局信息分别发送至云应用对应的客户端,以使客户端解码、渲染非播放区域画面数据以及解码播放区域画面数据并根据画面布局信息渲染解码后的播放区域画面数据。
98.其中,本实施例中假设的是当前时刻确定出的非播放区域画面数据相比于上一次发送至客户端的非播放区域画面数据已经发生更新的情形。
99.本实施例中假设的实际情形是,用户在通过某云应用看某多媒体数据的过程中,在客户端的屏幕上触发了交互行为,从而,客户端采集对应的交互行为数据,将该交互行为数据发送至云服务器。交互行为数据的发生,也会导致云应用画面数据发生更新,不仅可能导致新的播放区域画面数据的产生,还可能导致非播放区域画面数据的更新。其中,交互行为数据中描述了用户在本地显示的云应用画面中的什么位置触发了什么样的交互行为,这种交互行为对应的界面元素是什么。比如用户拖动鼠标,那么交互行为数据中包括不同坐标点以及鼠标图形。再比如,用户点击鼠标行为,对应的交互行为数据中包括相应的坐标
点,以及点击这个操作行为信息。
100.具体来说,本实施例中,假设在当前t1时刻需要生成与某云应用界面对应的一帧云应用画面数据,此时,一方面加载需要在该云应用界面上展示的已编码多媒体数据(采用第一编码方式编码),另一方面,假设此时还接收到了客户端发送的交互行为数据,那么该已编码多媒体数据、交互行为数据以及该云应用界面的界面数据都将被加载到内存中,从而便可以得到包括该多媒体数据、交互行为数据和云应用界面的界面数据的第一云应用画面数据。之后,通过前述实施例中介绍的对比过程,确定第一云应用画面数据中的播放区域画面数据和非播放区域画面数据,并获取播放区域画面数据对应的画面布局信息。
101.由于相比于此前t2时刻的第二云应用画面数据,假设t1时刻的第一云应用画面数据中增加了交互行为数据,而且多媒体数据内容也发生了变化,因此,可以理解的是,第一云应用画面数据中的播放区域画面数据此时会包含该交互行为数据以及采用第一编码方式编码了的多媒体数据。此时,云服务器采用第一编码方式对该交互行为数据进行编码处理,使得播放区域画面数据中包含的是采用同一编码方式编码的数据。这样,播放区域画面数据发送至客户端后,客户端便可以使用同一解码器对播放区域画面数据进行解码即可。
102.可以理解的是,假设t2时刻的第二云应用画面数据中也包含交互行为数据,而且该交互行为数据与之后的t1时刻的第一云应用画面数据中包含的交互行为数据相同,那么第一云应用画面数据中的播放区域画面数据中将不会包含该交互行为数据。比如,用户在t2时刻将鼠标图形放置到了屏幕的某个位置处保持不动,那么t2时刻的第二云应用画面数据中包含的交互行为数据与之后的t1时刻的第一云应用画面数据中包含的交互行为数据将会是相同的。
103.综上各实施例可知,本发明实施例所提供方案的一个关键点是:需要在客户端屏幕上显示的云应用画面数据中播放区域画面数据的重定向:在云端基于不同时刻加载出的云应用画面数据的对比,将画面中变化的区域定义为播放区域。这个播放区域画面数据中往往会包括在画面中需要显示的内容不断变化的多媒体数据、交互数据等,将其重定向给客户端直接进行解码、渲染显示,不需要经过云端的解码、渲染显示、画面抓取的处理。其中,所谓重定向简单来说就是将传统方案中由云服务器执行的解码多媒体数据的操作,替换为由客户端来执行。
104.实际应用中,客户端用于解码播放区域画面数据的解码器,与原本在云服务器中设置的用于解码多媒体数据的解码器可以是相同的,如果该解码器是基于某种操作系统的,那么可以理解的是,云服务器中运行云应用的虚拟机所采用的操作系统与客户端侧的操作系统保持一致。
105.图6为本发明实施例提供的一种云应用画面传输方法的流程图,如图6所示,该方法可以应用于与某云应用对应的客户端,具体包括如下步骤:
106.601、向云应用对应的云服务器发送数据播放请求,以使云服务器基于该数据播放请求加载云应用界面中当前时刻需要显示的已编码的多媒体数据。
107.602、接收云服务器发送的第一云应用画面数据中的播放区域画面数据、非播放区域画面数据和播放区域画面数据对应的画面布局信息;其中,第一云应用画面数据根据所述多媒体数据和云应用界面生成。
108.603、渲染非播放区域画面数据,解码播放区域画面数据并根据所述画面布局信息
渲染解码后的播放区域画面数据。
109.本发明实施例提供的云应用画面传输方案,是可以跨应用、跨数据类型的。首先,针对跨数据类型,简单来说,上文中所说的播放区域画面数据中可以包括不同类型的多媒体数据,还可以包括交互行为数据,其中,不同类型的多媒体数据比如包括视频、动画、图片、表,等等。
110.针对跨应用,下面结合图7和图8示例型说明两种不同的应用场景。
111.在图7中,假设用户在使用云桌面,如图7中所示,云桌面700上包含多个云应用:应用1、应用2、应用3、应用4。假设用户正在使用应用1和应用2,应用1的某个应用界面701显示在云桌面的中间区域,应用2的某应用界面702显示在云桌面的右上角区域。假设应用1是一个视频应用,应用2是一个交友应用,用户正在通过应用1观看某视频,使用应用2在与某好友聊天。
112.在上述举例的应用场景中,云服务器会基于不同时刻加载的云桌面、应用1和应用2的界面数据,形成不同时刻的完整的云应用画面数据。通过上文中的对比过程可知,此时,某云应用画面数据中的播放区域画面数据对应于图中示意的应用界面701和应用界面702所在的区域,云桌面上的剩余区域对应于非播放区域画面数据。
113.在图8中,假设用户在使用云应用a,在云应用a的某界面中包含一个链接地址,该链接地址对应于一个视频,该视频由另一个云应用b提供且是编码后的。假设若用户点击该链接地址,云应用a的界面上会显示出如图8中所示的应用界面801。应用界面801中包含一个视频播放窗口,用于播放上述视频。
114.在上述假设情形下,云服务器基于不同时刻加载的编码后的视频帧和应用界面801的界面数据,以形成不同时刻的完整的云应用画面数据。通过上文中的对比过程可知,此时,某云应用画面数据中的播放区域画面数据对应于图中示意的视频播放窗口,剩余区域对应于非播放区域画面数据。以下将详细描述本发明的一个或多个实施例的云应用画面传输装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
115.图9为本发明实施例提供的一种云应用画面传输装置的结构示意图,如图9所示,该装置应用于云服务器,包括:获取模块11、确定模块12和发送模块13。
116.获取模块11,用于加载云应用界面中当前时刻需要显示的已编码的多媒体数据,根据多媒体数据和云应用界面,生成当前时刻的第一云应用画面数据;
117.确定模块12,用于确定第一云应用画面数据中的播放区域画面数据和非播放区域画面数据以及播放区域画面数据对应的画面布局信息;其中,多媒体数据包含于播放区域画面数据;
118.发送模块13,用于将播放区域画面数据和播放区域画面数据对应的画面布局信息分别发送至云应用对应的客户端,以使客户端解码播放区域画面数据并根据画面布局信息渲染解码后的播放区域画面数据。
119.可选地,确定模块12具体用于:对比第一云应用画面数据和历史时刻生成的第二云应用画面数据,以确定第一云应用画面数据中与第二云应用画面数据中不同的画面数据为播放区域画面数据,相同的画面数据为非播放区域画面数据。
120.可选地,确定模块12具体用于:确定云应用界面中包含的目标界面组件,目标界面
组件是显示的数据可动态变化的预设类型的界面组件;对比第一云应用画面数据和第二云应用画面数据中目标界面组件上需要显示的画面数据是否一致;若不一致,则确定第一云应用画面数据中目标界面组件上需要显示的画面数据包含于播放区域画面数据。
121.可选地,发送模块13具体用于:若第二云应用画面数据中的非播放区域画面数据与第一云应用画面数据中的非播放区域画面数据不相同,则将第一云应用画面数据中的非播放区域画面数据发送至客户端,以使所述客户端渲染所述第一云应用画面数据中的非播放区域画面数据。
122.可选地,已编码的多媒体数据是由对应的数据源采用第一编码方式对多媒体数据进行编码处理得到的。
123.可选地,获取模块11具体用于:若检测到当前时刻用户在云应用界面中触发了交互行为数据,则根据多媒体数据、交互行为数据和云应用界面,生成当前时刻的第一云应用画面数据。相应地,将播放区域画面数据发送至云应用对应的客户端之前,发送模块13还用于:若确定播放区域画面数据中包含交互行为数据,则采用第一编码方式对交互行为数据进行编码处理。
124.可选地,发送模块13具体用于:采用第二编码方式对第一云应用画面数据中的非播放区域画面数据进行编码处理,将编码处理后的非播放区域画面数据发送至客户端。
125.图10为本发明实施例提供的一种云应用画面传输装置的结构示意图,如图10所示,该装置应用于与云应用对应的客户端,包括:发送模块21、接收模块22和渲染模块23。
126.发送模块21,用于向云应用对应的云服务器发送数据播放请求,以使云服务器基于数据播放请求加载云应用界面中当前时刻需要显示的已编码的多媒体数据;
127.接收模块22,用于接收云服务器发送的第一云应用画面数据中的播放区域画面数据和播放区域画面数据对应的画面布局信息;其中,第一云应用画面数据根据多媒体数据和云应用界面生成,多媒体数据包含于播放区域画面数据;
128.渲染模块23,用于解码播放区域画面数据并根据画面布局信息渲染解码后的播放区域画面数据。
129.可选地,第一云应用画面数据中的播放区域画面数据和非播放区域画面数据,是云服务器通过对比第一云应用画面数据和历史时刻生成的第二云应用画面数据确定出的第一云应用画面数据中与第二云应用画面数据中不同的画面数据为播放区域画面数据,相同的画面数据为非播放区域画面数据。
130.图9和图10所示装置可以执行前述实施例中的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
131.在一个可能的设计中,上述图9所示云应用画面传输装置的结构可实现为一云服务器。如图11所示,该云服务器可以包括:处理器31、存储器32、通信接口33。其中,存储器32上存储有可执行代码,当所述可执行代码被处理器31执行时,使处理器31至少可以实现如前述实施例中提供的云应用画面传输方法。
132.在一个可能的设计中,上述图10所示云应用画面传输装置的结构可实现为一终端设备。如图12所示,该终端设备可以包括:处理器41、存储器42、通信接口43。其中,存储器42上存储有可执行代码,当所述可执行代码被处理器41执行时,使处理器41至少可以实现如前述实施例中提供的云应用画面传输方法。
133.另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的云应用画面传输方法。
134.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
135.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
136.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1