CN115202550A - 云应用画面的显示方法、装置、服务器、终端及存储介质 - Google Patents

云应用画面的显示方法、装置、服务器、终端及存储介质 Download PDF

Info

Publication number
CN115202550A
CN115202550A CN202110375861.8A CN202110375861A CN115202550A CN 115202550 A CN115202550 A CN 115202550A CN 202110375861 A CN202110375861 A CN 202110375861A CN 115202550 A CN115202550 A CN 115202550A
Authority
CN
China
Prior art keywords
picture
cloud application
sub
edge
pictures
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
Application number
CN202110375861.8A
Other languages
English (en)
Inventor
张富春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110375861.8A priority Critical patent/CN115202550A/zh
Publication of CN115202550A publication Critical patent/CN115202550A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1407General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/30Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
    • A63F2300/308Details of the user interface
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/807Role playing or strategy games

Abstract

本申请公开了一种云应用画面的显示方法、装置、服务器、终端及存储介质,涉及云应用领域。方法包括:运行云应用程序,获取云应用程序运行过程中的云应用画面;基于云应用程序对应的画面分割策略,将云应用画面分割为至少两个子画面;对至少两个子画面进行并行编码,得到云应用画面对应的至少两个子编码数据块;向代理服务器并行发送至少两个子编码数据块,以便代理服务器将至少两个子编码数据块发送至终端,由终端对至少两个子编码数据块进行解码,并对解码得到至少两个子画面进行拼接,得到云应用画面。在充分利用硬件资源的情况下,通过对云应用画面进行分割,提高编码以及传输过程的并行度,达到降低终端侧云应用画面的显示延迟的效果。

Description

云应用画面的显示方法、装置、服务器、终端及存储介质
技术领域
本申请实施例涉及云应用领域,特别涉及一种云应用画面的显示方法、装置、服务器、终端及存储介质。
背景技术
云应用是一种以云计算技术为基础的在线应用技术。在云应用场景下,应用程序在云服务器中运行,并由云服务器将渲染得到的应用画面以视频流的形式,通过网络传输至终端,以便终端进行显示。
相关技术中,云服务器中通常设置有高性能图形处理器(Graphics ProcessingUnit,GPU),从而通过高性能GPU提高云应用画面的编码速度,进而降低终端侧云应用画面的显示延迟。
然而,由于硬件性能具有上限,因此单纯提高硬件性能对降低云应用画面显示延迟的效果有限,导致云应用画面的显示延迟较大,无法达到接近本地应用程序的运行效果。
发明内容
本申请实施例提供了一种云应用画面的显示方法、装置、服务器、终端及存储介质,能够降低云应用画面的显示延迟。所述技术方案如下:
一方面,本申请实施例提供了一种云应用画面的显示方法,所述方法用于云应用服务器,所述方法包括:
运行云应用程序,获取所述云应用程序运行过程中的云应用画面;
基于所述云应用程序对应的画面分割策略,将所述云应用画面分割为至少两个子画面;
对至少两个所述子画面进行并行编码,得到所述云应用画面对应的至少两个子编码数据块;
向代理服务器并行发送至少两个所述子编码数据块,以便所述代理服务器将至少两个所述子编码数据块发送至终端,由所述终端对至少两个所述子编码数据块进行解码,并对解码得到至少两个所述子画面进行拼接,得到所述云应用画面。
另一方面,本申请实施例提供了一种云应用画面的显示方法,所述方法用于终端,所述方法包括:
接收代理服务器发送的至少两个子编码数据块,所述子编码数据块由云应用服务器对至少两个子画面并行编码得到,至少两个所述子画面基于云应用程序对应的画面分割策略对云应用画面进行分割得到;
对至少两个所述子编码数据块进行解码,得到至少两个所述子画面;
对至少两个所述子画面进行拼接,得到所述云应用画面并进行显示。
另一方面,本申请实施例提供了一种云应用画面的显示装置,所述装置包括:
画面获取模块,用于运行云应用程序,获取所述云应用程序运行过程中的云应用画面;
画面分割模块,用于基于所述云应用程序对应的画面分割策略,将所述云应用画面分割为至少两个子画面;
编码模块,用于对至少两个所述子画面进行并行编码,得到所述云应用画面对应的至少两个子编码数据块;
数据发送模块,用于向代理服务器并行发送至少两个所述子编码数据块,以便所述代理服务器将至少两个所述子编码数据块发送至终端,由所述终端对至少两个所述子编码数据块进行解码,并对解码得到至少两个所述子画面进行拼接,得到所述云应用画面。
另一方面,本申请实施例提供了一种云应用画面的显示装置,所述装置包括:
数据接收模块,用于接收代理服务器发送的至少两个子编码数据块,所述子编码数据块由云应用服务器对至少两个子画面并行编码得到,至少两个所述子画面基于云应用程序对应的画面分割策略对云应用画面进行分割得到;
解码模块,用于对至少两个所述子编码数据块进行解码,得到至少两个所述子画面;
显示模块,用于对至少两个所述子画面进行拼接,得到所述云应用画面并进行显示。
另一方面,本申请实施例提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述方面云服务器侧的云应用画面的显示方法。
另一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述方面终端侧的云应用画面的显示方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上述方面所述的云应用画面的显示方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的云应用画面的显示方法。
本申请实施例中,云应用服务器在运行云应用程序过程中,采用云应用程序对应的画面分割策略,将云应用画面分割为若干子画面,并对若干子画面进行并行编码,从而向代理服务器并行发送编码得到的若干子编码数据块,以便代理服务器将子编码数据块发送至终端后,由终端对子编码数据块进行解码拼接,还原云应用画面;采用本申请实施例提供的方案,在充分利用硬件资源的情况下,通过对云应用画面进行分割并进行并行编码传输,能够降低对单个子画面进行编码时的编码计算量,提高编码以及传输过程的并行度,加快单帧云应用画面的编码传输速度,达到降低终端侧云应用画面的显示延迟的效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例示出的云应用画面显示过程的原理示意图;
图2示出了本申请一个示例性实施例提供的实施环境的示意图;
图3示出了本申请一个示例性实施例提供的云应用画面的显示方法的流程图;
图4示出了本申请另一个示例性实施例提供的云应用画面的显示方法的流程图;
图5是本申请一个示意性实施例示出的主区域以及边缘区域分割方式的示意图;
图6是本申请一个示例性实施例示出的云应用画面分割编码过程的实施示意图;
图7是本申请一个示例性实施例示出的子编码数据块传输过程的实施示意图;
图8是本申请另一个示例性实施例示出的云应用画面分割编码过程的实施示意图;
图9示出了本申请另一个示例性实施例提供的云应用画面的显示方法的流程图;
图10是本申请一个示例性实施例示出的子数据编码块解码拼接过程的实施示意图;
图11示出了本申请一个示例性实施例提供的云应用画面的显示装置的方框图;
图12示出了本申请另一个示例性实施例提供的云应用画面的显示装置的方框图;
图13示出了本申请一个示例性实施例提供的服务器的结构示意图;
图14示出了本申请一个示例性实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
相关技术中,云应用服务器为终端提供云应用服务时,云应用服务器完成云应用画面渲染后,以帧为单位对云应用画面进行逐帧编码得到视频帧,并以视频流的形式将视频帧传输至终端。相应的,终端对视频流中的视频帧进行逐帧解码,从而还原出云应用画面。
然而,采用上述方式,当云应用画面的分辨率较高时(比如4K分辨率),对完整的云应用画面进行逐帧编码所耗费的编码时长较长,且终端侧进行解码时,需要接收到完整的视频帧后才能够进行解码,导致云应用服务器侧完成云应用画面渲染到终端侧显示云应用画面之间存在较大延迟。
而本申请实施例提供的技术方案中,如图1所示,云应用服务器11完成云应用画面111渲染后,并非直接对云应用画面111进行编码,而是首先基于画面分割策略,将云应用画面111划分为若干子画面112,并采用并行编码的方式,对若干子画面112进行并行编码,得到若干子编码数据块113。进一步的,云应用服务器11采用并行传输方式,将若干子编码数据块113并行传输至代理服务器12,由代理服务器12将子编码数据块113进一步传输至终端13。终端13每接收到一个子编码数据块113后,即可对其进行解码,得到对应的子画面112,当同一云应用画面111对应的各个子编码数据块113均经过解码时,终端13即可对各个子画面112进行拼接,还原出云应用画面111。
通过将云应用画面分割为若干子画面,并对若干子画面进行并行编码,在降低编码过程计算量的同时,提高编码过程的并行度,相较于直接对单帧云应用画面进行直接编码,有助于降低云应用服务器侧的编码耗时;此外,采用并行传输的方式向终端传输子编码数据块,有助于降低传输过程造成的传输延迟,且终端每接收到一个子编码数据块后即可进行解码,无需等待完整视频帧接收完毕后进行解码,在降低解码过程计算量的同时,提高了解码过程的并行度,有助于降低终端侧的解码耗时。可见,本申请实施例提供的方案,能够降低编码、传输以及解码三个阶段的耗时,进而缩短云应用服务器侧完成云应用画面渲染到终端侧显示云应用画面之间的延迟,对于高分辨率的云应用程序尤为明显。
图2示出了本申请一个示例性实施例提供的实施环境的示意图。该实施环境可以包括:云应用服务器210、代理服务器220和终端230。
云应用服务器210安装并运行有云应用程序。其可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请在此不做限制。
在一种可能的实施方式中,云应用服务器210提供沙盒的虚拟化机制,将原本运行于终端的应用程序运行于服务器中,并借助设置的高性能的CPU和GPU为应用程序提供强大的算力。
此外,云应用服务器210还具有对云应用画面进行编码的功能。云应用画面绘制完成后,云应用服务器210即对云应用画面进行编码,得到编码数据块。本申请实施例中,对云应用画面进行编码前,首先需要将云应用画面分割为若干子画面,从而对各个子画面进行并行编码,得到若干子编码数据块。
如图2所示,云应用服务器210中设置有N个CPU、N个GPU以及内存。运行云应用程序过程中,应用进程运行在应用沙盒中,由CPU和GPU为应用进程提供算力支持。应用进程完成云应用画面绘制后,基于画面分割策略将云应用画面分割为若干子画面,从而通过编码进程对若干子画面进行并行编码,得到若干子编码数据块。其中,画面分割策略可以存储在区块链中。
在一些实施例中,云应用服务器210中运行的云应用程序为云游戏。云游戏又可称为游戏点播,是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云游戏服务器中运行,并由云游戏服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云游戏服务器的能力即可。
云应用服务器210通过有线网络或无线网络与代理服务器220相连。可选的,云应用服务器210与代理服务器220之间建立有专线连接,从而保证两者间数据传输的稳定性,并降低传输延迟。
代理(Proxy)服务器220部署在靠近(比如200km内)终端230的边缘节点上,用于提供高带宽、低延迟、抗抖动的网络传输服务。本申请实施例中,代理服务器220作为云应用服务11与终端13之间的中转节点,用于接收云应用服务器210并行传输的子编码数据块,并将子编码数据块转发至终端230。
在一些实施例中,代理服务器220使用多队列网卡、零拷贝等技术,实现数据转发过程中的低延迟;并且,代理服务器220通过侦测终端230的网络状态,动态调整向终端230传输数据时的码率和帧率,优化终端侧的云应用使用体验。
代理服务器220通过有线网络或无线网络与终端230相连。
终端230是运行有云应用客户端的电子设备,该电子设备可以是智能手机、平板电脑或个人计算机等等。在一些实施例中,不同云应用程序对应同一云应用客户端,即用户可以通过该云应用客户端使用不同的云应用程序。比如,用户可以通过云应用客户端使用游戏应用、即时通信应用、办公应用等等,本实施例对此不作限定。
本申请实施例中,终端230接收到代理服务器220发送的子编码数据块后,云应用客户端对子编码数据块进行软件解码,和/或,调用硬件资源对子编码数据块进行硬件解码,得到子编码数据块对应的子画面,从而对属于同一云应用画面的若干子画面进行拼接,还原出分割前的云应用画面,并进行显示。
云应用程序运行过程中,用户可以通过作用于物理显示器的触控操作或外接输入设备(例如鼠标、键盘)等对云应用程序进行控制。
在一种可能的场景下,当云应用程序为游戏应用时,终端230接收到用户触发的控制操作后,生成控制指令,并通过代理服务器220将控制指令发送至云应用服务器210,由云应用服务器210基于控制指令对游戏应用中的虚拟对象进行控制。
需要说明的是,图2仅以云应用服务器为单一终端提供云应用服务为例进行说明,在实际应用中,云应用服务器可以同时为多个终端提供云应用服务器,本申请实施例对此不作赘述。
图3示出了本申请一个示例性实施例提供的云应用画面的显示方法的流程图。本实施例以该方法应用于图2所示的云应用服务器210为例进行说明,该方法包括如下步骤。
步骤301,运行云应用程序,获取云应用程序运行过程中的云应用画面。
其中,该云应用程序可以是游戏应用、即时通信应用、社交类应用、办公类应用等等,本申请实施例并不对云应用程序的具体类型进行限定。
在一种可能的实施方式中,云应用服务器在应用沙盒中运行云应用程序,并获取云应用程序绘制的云应用画面。
步骤302,基于云应用程序对应的画面分割策略,将云应用画面分割为至少两个子画面。
本申请实施例中,在对云应用画面进行编码前,云应用服务器首先需要对云应用画面进行分割,得到至少两个子画面。其中,不同子画面为互不重叠的矩形区域。
画面分割策略用于指示云应用画面的分割方式,且由于不同云应用程序具有不同画面特点,因此在进行画面分割前,云应用服务器确定云应用程序对应的画面分割策略,从而采用该画面分割策略所指示的分割方式,将云应用画面分割为至少两个子画面。
可选的,各个子画面的尺寸相同,或者,各个子画面的尺寸不同。
在一种可能的实施方式中,同一云应用程序对应单一画面分割策略,即在云应用程序运行过程中,云应用服务器采用统一的画面分割方式对云应用画面进行分割,或者,同一云应用程序对应至少两种画面分割策略,即在云应用程序的不同运行场景下,云应用服务器采用不同的画面分割方式对云应用画面进行分割。
步骤303,对至少两个子画面进行并行编码,得到云应用画面对应的至少两个子编码数据块。
对于分割得到的各个子画面,云应用服务器对各个子画面进行并行编码,从得到各个子画面各自对应的子编码数据块。其中,云应用服务器可以将子画面编码为H264或H265格式的子编码数据块,本申请实施例并不对具体的编码格式进行限定。
由于分割得到的子画面为云应用画面的一部分,因此相较于对完整的云应用画面进行编码,对单个子画面进行编码的编码速度更快(因为编码计算量更小),且由于若干子画面的编码并行执行,因此对至少两个子画面进行并行编码的速度(取决于并行编码过程中最慢的编码速度)快于对完整云应用画面进行编码的速度。
在一种可能的实施方式中,云应用服务器通过GPU对子画面进行并行编码,或,通过GPU和CPU对子画面进行并行编码。其中,使用GPU对子画面进行硬件编码的速度快于使用CPU对子画面进行软件编码的速度。
步骤304,向代理服务器并行发送至少两个子编码数据块,以便代理服务器将至少两个子编码数据块发送至终端,由终端对至少两个子编码数据块进行解码,并对解码得到至少两个子画面进行拼接,得到云应用画面。
在一种可能的实施方式中,云应用服务器与代理服务器之间建立有至少两条通信连接,为了降低子编码数据块的传输延迟,云应用服务器采用并行传输方式,将同一云应用画面对应的至少两个子编码数据块并行传输至代理服务器,而非采用串行方式向代理服务器传输子编码数据块。
在一个示意性的例子中,云应用服务器将云运用画面分割为四个子画面,并对四个子画面并行编码,得到四个子编码数据块,从而通过与代理服务器之间的四条通信连接,向代理服务器并行发送四个子编码数据块。
进一步的,代理服务器将接收到的多个子编码数据块转发至终端。可选的,云应用程序运行过程中,代理服务器与终端之间保持多条连接,代理服务器通过多条连接,将子编码数据块并行转发至终端。
在一些实施例中,代理服务器可以通过网络加速技术,通过多个网络节点向终端并行传输子编码数据块,提高复杂网络环境下子编码数据块的传输速度,避免单一网络节点拥塞造成的传输延迟。
终端接收到对子编码数据块后,对子编码数据块进行解码,还原出编码前的子画面,并对同一云应用画面对应的至少两个子画面进行拼接,还原出分割前的云应用画面。
相较于对完整云应用画面进行编码传输时,终端需要接收到完整的编码数据块才能进行解码(数据接收与解码串行执行),本实施例中,由于不同子编码数据块之间相互独立,因此终端每接收到一个子编码数据块即可进行解码(即数据接收与解码可以并行执行),无需等待同一云应用画面对应的所有子编码数据块均接收完毕,提高了终端侧的解码速度。
综上所述,本申请实施例中,云应用服务器在运行云应用程序过程中,采用云应用程序对应的画面分割策略,将云应用画面分割为若干子画面,并对若干子画面进行并行编码,从而向代理服务器并行发送编码得到的若干子编码数据块,以便代理服务器将子编码数据块发送至终端后,由终端对子编码数据块进行解码拼接,还原云应用画面;采用本申请实施例提供的方案,在充分利用硬件资源的情况下,通过对云应用画面进行分割并进行并行编码传输,能够降低对单个子画面进行编码时的编码计算量,提高编码以及传输过程的并行度,加快单帧云应用画面的编码传输速度,达到降低终端侧云应用画面的显示延迟的效果。
云应用程序运行过程中,并非云应用画面的所有区域均为用户关注区域。比如,对于游戏应用,用户关注的区域为游戏画面的中部区域。因此在对云应用画面进行图像分割时,可以基于用户对不同画面区域的关注程度,将云应用画面分给为主画面和边缘画面,并对主画面和边缘画面采用不同的编码以及传输策略,保证用户关注区域内画面的质量。下面采用示例性的实施例进行说明。
图4示出了本申请另一个示例性实施例提供的云应用画面的显示方法的流程图。本实施例以该方法应用于图1所示的云应用服务器210为例进行说明,该方法包括如下步骤。
步骤401,运行云应用程序,获取云应用程序运行过程中的云应用画面。
本步骤的实施方式可以参考步骤301,本实施例在此不再赘述。
步骤402,从云应用程序对应的画面分割策略中,获取云应用画面中主区域的主区域信息以及边缘区域的边缘区域信息。
在一种可能的实施方式中,开发人员预先基于用户对云应用程序中不同画面区域的关注程度,确定云应用画面中的主区域以及边缘区域,从而生成包含主区域信息以及边缘区域信息的画面分割策略。其中,用户对主区域的关注程度高于对边缘区域的关注程度。相应的,当接收到云应用程序运行指令时,云应用服务器获取该云应用程序对应的画面分割策略。
其中,云应用画面中包括至少一块主区域和至少一块边缘区域。可选的,主区域的尺寸大于任意一块边缘区域的尺寸。
在一种可能的实施方式中,在对云应用画面进行区域划分时,主区域与边缘区域的尺寸与云应用画面的画面变化幅度相关。其中,云应用画面的画面变化幅度越大,主区域的尺寸越大,边缘区域的尺寸越小;云应用画面的画面变化幅度越小,主区域的尺寸越小,边缘区域的尺寸越大。
比如,以游戏应用为例,角色扮演游戏(Role-Playing Game,RPG)的画面变化幅度较小,因此边缘区域的尺寸较大(例如主区域面积占比为60%,边缘区域面积占比为40%),而赛车、射击类游戏的画面变化幅度较大,因此边缘区域的尺寸较小(例如主区域面积占比为90%,边缘区域面积占比为10%)。
由于不同应用程序的界面布局以及操作方式存在差异,因此不同应用画面中用户关注的区域也存在差别,相应的,不同云应用程序对应云应用画面的区域划分方式不同。
示意性的,如图5所示,云应用程序A的云应用画面被划分为一个主区域和两个边缘区域,其中,主区域位于云应用画面的左上角区域;云应用程序B的云应用画面被划分为一个主区域和两个边缘区域,其中,主区域位于云应用画面的右下角区域;云应用程序C的云应用画面被划分为一个主区域和四个边缘区域,其中,主区域位于云应用画面的中央,且四个边缘区域围合在主区域四周。需要说明的是,图5所示的区域划分方式仅用于示意性说明,并不对实际应用过程中具体的区域划分方式构成限定。
可选的,该主区域信息用于指示主区域在云应用画面中所处的位置以及主区域尺寸,边缘区域信息用于指示边缘区域在云应用画面中所处的位置以及边缘区域尺寸。
在一些实施例中,区域在画面中的位置可以使用区域左上角顶点坐标进行表示,区域尺寸可以使用区域的宽高表示。
在一个示意性的例子中,如图6所示,云应用画面61的尺寸为1920×1080,且云应用画面61的左上角顶点为坐标原点,其对应的画面分割策略中包含:主区域的主区域信息为“(0,0),1600×980”,第一边缘区域的边缘区域信息为“(1600,0),320×980”,第二边缘区域的边缘区域信息为“(0,980),1920×100”。
步骤403,基于主区域信息以及边缘区域信息,将云应用画面分割为至少一个主画面和至少一个边缘画面,其中,主画面的重要程度高于边缘画面的重要程度。
基于获取到的主区域信息和边缘区域信息,云应用服务器将云应用画面分割为主画面和边缘画面。由于主画面为用户关注的画面,因此主画面在编码以及传输过程中的重要程度均高于边缘画面。
示意性的,如图6所示,云应用服务器将云应用画面61分割为主画面62、第一边缘画面63以及第二边缘画面64。
步骤404,通过渲染云应用画面的目标GPU对主画面进行编码,得到主画面对应的主画面编码数据块。
由于主画面的尺寸通常较大,因此为了避免因数据拷贝造成的延迟,本申请实施例中,云应用服务器通过渲染云应用画面的目标GPU对主画面进行编码,得到主画面编码数据块。
示意性的,如图6所示,由于云应用画面61由GPU1渲染得到,因此云应用服务器完成画面分割后,利用GPU 1对主画面62进行编码,得到主画面编码数据块65。
步骤405,将边缘画面拷贝至目标GPU以外的其它GPU,并通过其它GPU对边缘画面进行编码,得到边缘画面对应的边缘画面编码数据块。
云应用服务器中设置有多个GPU,因此在利用目标GPU对主画面进行编码时,云应用服务器可以通过其它GPU对边缘画面进行并行编码,以此提高编码过程的并行度。
其中,利用其它GPU对边缘画面进行并行编码前,云应用服务器首先需要将边缘画面从目标GPU拷贝至其它GPU。由于边缘画面的尺寸通常较小,因此数据拷贝带来的延迟可控。
在一种可能的实施方式中,云应用服务器通过总线(比如PCIe总线、nvadia总线或nvlink总线)将边缘画面的画面数据目标GPU拷贝至其它GPU。
为了避免调用其它GPU进行编码时,对应用画面渲染造成影响,在一种可能的实施方式中,云应用服务器获取目标GPU外其它GPU的工作状态,该工作状态包括空闲状态和忙碌状态。当存在空闲GPU时,云应用服务器将边缘画面拷贝至空闲GPU,并通过空闲GPU对边缘画面进行编码,得到边缘画面对应的边缘画面编码数据块。可选的,该空闲GPU为使用率低于使用率阈值(比如40%)的GPU。
在一种可能的应用场景下,当存在大量终端使用云应用程序时,云应用服务器中可能不存在空闲GPU,为了保证边缘画面的正常编码,在一种可能的实施方式中,当不存在空闲GPU时,云应用服务器将边缘画面拷贝至内存,并通过CPU对边缘画面进行编码,得到边缘画面对应的边缘画面编码数据块。
虽然通过GPU进行硬件编码的速度快于通过CPU进行软件编码的速度,但是由于多画面并行编码,因此整体编码速度仍旧快于对多画面进行串行编码。
示意性的,如图6所示,云应用服务器通过GPU1对主画面62进行编码的同时,将第一边缘画面63至GPU2,将第二边缘画面64拷贝至GPU3,从而通过GPU2和GPU3进行并行编码,得到第一边缘画面编码数据块66以及第二边缘画面编码数据块67。
步骤406,向代理服务器并行发送主画面编码数据块和边缘画面编码数据块。
进一步的,云应用服务器将编码得到的主画面编码数据块和边缘画面编码数据块并行发送至代理服务器。
在一种可能的实施方式中,为了保证终端侧进行子画面拼接时的准确性,云应用服务器向代理服务器发送子编码数据块前,需要为各个子编码数据块添加时间戳和画面位置标识,其中,同一云应用画面对应的至少两个子编码数据块具有相同时间戳,且画面位置标识用于指示子画面在云应用画面中所处的位置。
可选的,画面位置标识可以采用子画面对应的子画面标识进行表示,终端基于该子画面标识以及云应用程序对应的画面分割策略,即可确定子编码数据块解码得到的子画面在云应用画面中所处的位置。当然,在其他可能的实施方式中,画面位置标识也可以采用主区域信息以及边缘区域信息进行表示,本实施例对此不作限定。
示意性的,如图6所示,云应用服务器为主画面编码数据块65、第一边缘画面编码数据块66以及第二边缘画面编码数据块67设置同一时间戳,并为主画面编码数据块65设置画面位置标识“1”,为第一边缘画面编码数据块66设置画面位置标识“2”,为第二边缘画面编码数据块67设置画面位置标识“3”。
在一种可能的实施方式中,代理服务器向终端转发主画面编码数据块和边缘编码数据块时,优先通过延迟最低、拥塞程度最低的连接向终端发送主画面编码数据块,并采用其他连接向终端并行发送边缘画面编码数据块,即优先保证主画面编码数据块的传输质量。
步骤407,接收终端通过代理服务器发送的控制指令,控制指令用于控制云应用程序。
当用户需要对云应用程序进行控制时,即可通过终端的触控屏或外部输入设备在云应用画面上进行操作,相应的,终端接收到控制操作后,基于控制操作的操作位置以及操作类型,生成控制指令,并通过代理服务器将控制指令转发至云应用服务器,由云应用服务器基于对该控制指令进行响应。
比如,当用户通过触控屏对云应用画面中的控件进行点击操作时,终端向云应用服务器发送包含点击坐标以及操作类型“点击”的控制指令,云应用服务器接收到该控制指令后,即模拟用户点击云应用画面中的点击操作。
步骤408,基于控制指令所指示的控制区域,更新云应用画面内不同区域的操作频率。
通常情况下,用户通常在关注的画面区域内进行操作,因此为了提高主区域和边缘区域划分的准确性,在一种可能的实施方式中,云应用服务器对控制指令所指示的控制区域进行统计,从而根据统计结果更新云应用画面内不同区域的操作频率。
可选的,云应用服务器对不同终端发送的控制指令进行分析,确定出不同终端的公共控制区域,并更新公共控制区域的操作频率,以提高后续更新后画面分割策略的适用性。
步骤409,基于操作频率,对云应用程序对应画面分割策略中的主区域信息和边缘区域信息进行更新。
在一种可能的实施方式中,云应用服务器根据操作频率的降序,对云应用画面中的区域进行排序,从而将前k个区域构成的矩形区域确定为主区域,将主区域以外的区域确定为边缘区域,进而对主区域信息和边缘区域信息进行更新。后续即根据更新后的主区域信息和边缘区域信息进行画面分割。
在一个示意性的例子中,更新前的主区域信息为“(0,0),1600×980”,更新后的主区域信息为“(0,0),1600×1000”。
本实施例中,云应用服务器基于主区域信息和边缘区域信息,将云应用画面分割为对应不同重要程度的主画面和边缘画面,并在编码过程中,利用渲染云应用画面的目标GPU对主画面进行编码,利用其它处于空闲状态的GPU对边缘画面进行并行编码,降低并行编码过程中数据拷贝对编码速度的影响,进一步提高了云应用画面的编码速度。
此外,本实施例中,云应用服务器基于接收到的控制指令,对云应用画面中不同区域内的操作频率进行更新,确定用户使用云应用程序时所关注的区域,进而对画面分割策略中的主区域信息和边缘区域信息进行更新,有助于提高后续画面分割的准确性。
上述实施例中,由于主画面的重要程度高于边缘画面的重要程度,且用户注意力通常集中在主画面,因此云应用服务器进行编码时,需要优先保证主画面的编码质量,对于边缘画面则可以降低对编码质量的要求。
在一种可能的实施方式中,对边缘画面进行编码时,云应用服务器采用至少两种编码方式,通过其它GPU对边缘画面进行编码,得到至少两种边缘画面编码数据块,其中,不同编码方式对应不同压缩率,且压缩率越高,编码得到数据块越小,相应的,解码后还原得到子画面的质量越差。
可选的,云应用服务器优先向代理服务器发送高压缩率的边缘画面编码数据块。
示意性的,如图7所示,对于分割得到第一边缘画面和第二边缘画面,云应用服务器分别采用两种编码方式对两者进行冗余编码,得到第一边缘画面对应的第一边缘画面编码块71和第二边缘画面编码块72(第二边缘画面编码块72的压缩率高于第一边缘画面编码块71的压缩率),第二边缘画面对应的第三边缘画面编码块73和第四边缘画面编码块74(第四边缘画面编码块74的压缩率高于第三边缘画面编码块73的压缩率)。
进一步的,向代理服务器发送子编码数据块时,云应用服务器向代理服务器并行发送主画面编码数据块和至少两种边缘画面编码数据块,以便代理服务器基于与终端之间的网络状态,确定向终端发送的边缘画面编码数据块,其中,向终端发送的边缘画面编码数据块的压缩率与网络状态呈负相关关系,即网络状态良好发送的边缘画面编码数据块的压缩率低于网络状态不佳发送的边缘画面编码数据块的压缩率。
示意性的,如图7所示,代理服务器与终端之间的网络状态良好时,代理服务器向终端并行发送主画面编码数据块70、低压缩率的第一边缘画面编码数据块71以及第三边缘画面编码数据块73,丢弃高压缩率的第二边缘画面编码数据块72以及第四边缘画面编码数据块74,提高边缘画面的显示质量;而当代理服务器与终端之间的网络状态不佳时,代理服务器向终端并行发送主画面编码数据块70、高压缩率的第二边缘画面编码数据块72以及第四边缘画面编码数据块74,丢弃低压缩率的第一边缘画面编码数据块71以及第三边缘画面编码数据块73,优先保证边缘画面的正常显示,而非显示质量。
需要说明的是,代理服务器向终端发送子编码数据块时,需要告知终端子编码数据块所采用的编码方式,以便终端采用对应的解码方式进行解码。
在一些实施例中,若网络状态进一步变差,代理服务器可以丢弃边缘画面对应的边缘画面编码数据块,并保证主画面编码数据块的正常传输。终端在仅接收到主画面编码数据块的情况下,可以通过预训练的神经网络模型(比如生成对抗网络),基于解码得到主画面生成完整的云应用画面,或者,对主画面进行放大,使主画面的尺寸与云应用画面的尺寸一致,或者,复用之前解码得到的边缘画面,优先保证云应用画面的流畅显示。
本实施例中,云应用服务器针对同一边缘画面,采用不同的编码方式生成不同压缩率的边缘画面编码数据块,并向代理服务器冗余发送不同压缩率的边缘画面编码数据块,由代理服务器根据网络状态,选择发送一种边缘画面编码数据块,在网络状态良好时保证边缘画面的画面质量,在网络状态不佳时保证边缘画面的正常显示。
上述实施例中,由于主画面和边缘画面的重要程度不同,因此对主画面和边缘画面采用不同的编码以及传输策略。然而,并非所有应用程序都适用主画面和边缘画面的划分方式。比如对于应用画面变化幅度较大的应用程序,若将云应用画面划分为主画面和边缘画面,并基于画面的重要程度在传输过程中丢弃部分边缘画面对应的编码数据块,将会影响终端侧应用画面的整体观感。
因此在另一种可能的实施方式中,云应用服务器从画面分割策略中获取等比例分割信息,并基于等比例分割信息,将云应用画面等比例分割为至少两个重要程度相同的子画面。
其中,等比例分割信息用于指示云应用画面在宽度以及高度上的划分方式。比如,等比例分割信息为2×2时,表示需要将云应用画面划分为4个子画面,每个子画面的宽度为云应用画面宽度的1/2,高度为云应用画面高度的1/2;等比例分割信息为3×4时,表示需要将云应用画面划分为12个子画面,每个子画面的宽度为云应用画面宽度的1/3,高度为云应用画面高度的1/4。
可选的,对于分割得到的子画面,云应用服务器可以通过目标GPU对其中一个子画面进行编码,并将剩余子画面拷贝至其它处于空闲状态的GPU,从而通过空闲GPU对剩余子画面进行并行编码。若不存在空闲CPU,云应用服务器可以将剩余子画面拷贝至内存,从而通过CPU对剩余子画面进行软件解码。
在一个示意性的例子中,如图8所示,云应用服务器通过GPU1渲染得到1920×1080的云应用画面后,基于画面分割策略中的等比例分割信息(2×2),将云应用画面81等比例划分为4个960×540的子画面,分别为第一子画面82、第二子画面83、第三子画面84以及第四子画面85。进一步的,云应用服务器通过GPU1对第一子画面82进行编码,并将第二子画面83、第三子画面84以及第四子画面85分别拷贝至处于空闲状态的GPU2、GPU3以及GPU4,从而通过4个GPU对4个子画面进行并行编码,得到第一子编码数据块86、第二子编码数据块87、第三子编码数据块88以及第四子编码数据块89。
上述实施例中,对采用主/边缘画面分割以及等比例分割这两种画面分割策略下,云应用画面的编码、传输以及解码过程进行了说明,关于画面分割策略的确定方式,在一种可能的实施方式中,云应用服务器基于云应用程序的应用标识确定画面分割策略。
可选的,云应用服务器中存储有应用标识与画面分割策略之间的对应关系,在接收到云应用程序的运行指令时,云应用服务器即获取云应用程序的应用标识,从而基于该应用标识获取对应的画面分割策略。其中,该画面分割策略包括指示进行主画面和边缘画面划分的第一画面分割策略,以及指示进行等比例分割的第二画面分割策略。
在一个示意性的例子中,当运行RPG游戏时,云应用服务器采用第一画面分割策略对游戏画面进行主画面以及边缘画面分割;当运行赛车游戏时,云应用服务器采用第二画面分割策略对游戏画面进行等比例分割。
在实际应用中发现,不同运行场景下,同一云应用程序的云应用画面可能会呈现出不同的画面特点,比如对于游戏应用,在非团战场景下,云应用画面的变化幅度较小,而在团战场景下,云应用的变化幅度较大。若在云应用程序运行过程中采用单一画面分割策略,可能会对终端侧画面显示造成影响。比如,若在非团战场景和团战场景下均进行主/边缘画面分割,在网络状态不佳的情况下,丢弃边缘画面对应的子编码数据块会影响团战画面的正常显示。
因此,在另一种可能的实施方式中,云应用服务器基于云应用程序的应用标识以及当前运行场景动态确定画面分割策略。
在一些实施例中,当基于云应用程序的应用标识确定出两种画面分割策略时,云应用服务器实时监测云应用程序的当前运行场景,从而基于当前运行场景,动态确定所采用的画面分割策略。其中,采用的画面分割策略与当前运行场景下画面的变化幅度相关。
可选的,当云应用程序对应第一画面分割策略和第二画面分割策略,且当前运行场景为第一运行场景时,云应用服务器确定画面分割策略为第一画面分割策略。
当云应用程序对应第一画面分割策略和第二画面分割策略,且当前运行场景为第二运行场景时,云应用服务器确定画面分割策略为第二画面分割策略,其中,第二运行场景下画面的变化幅度大于第一运行场景下画面的变化幅度。
可选的,云应用服务器可以通过比较预设时长内云应用画面之间的变化幅度确定当前所处的运行场景,比如,若预设时长内云应用画面的变化幅度小于幅度阈值,则确定处于第一运行场景;若预设时长内云应用画面的变化幅度大于幅度阈值,则确定处于第二运行场景。当然,在其他可能的实施方式中,云应用服务器也可以从云应用程序的应用进程中获取场景信息,从而确定当前运行场景,本申请实施例对此不作限定。
在一个示意性的例子中,在运行RPG游戏过程中,在非团战场景下,云应用服务器对游戏画面进行主画面和边缘画面划分,而在团战场景下(画面变化幅度较大),云应用服务器则对游戏画面进行等比例划分。
需要说明的是,在进行画面分割策略切换时,云应用服务器需要保证同一画面组(Group of Pictures,GOP)中的画面采用相同画面分割策略,以确保云应用画面的正常编解码。
本实施例中,云应用服务器基于云应用程序以及当前运行场景,动态调整云应用画面的画面分割策略,使采用的画面分割方式符合实际运行场景,避免单一画面分割策略无法适用于部分运行场景,导致部分运行场景下云应用画面的显示质量较差的问题,有助于提高不同运行场景下云应用画面的显示质量。
图9示出了本申请一个示例性实施例提供的云应用画面的显示方法的流程图。本实施例以该方法应用于图2所示的终端230为例进行说明,该方法包括如下步骤。
步骤901,接收代理服务器发送的至少两个子编码数据块,子编码数据块由云应用服务器对至少两个子画面并行编码得到,至少两个子画面基于云应用程序对应的画面分割策略对云应用画面进行分割得到。
在一种可能的实施方式中,终端通过与代理服务器之间的至少两条连接,并行接收代理服务器发送的至少两个子编码数据块,其中,至少两个子编码数据块可能同时接收到,也可能先后接收到。
步骤902,对至少两个子编码数据块进行解码,得到至少两个子画面。
由于同一云应用画面对应的至少两个子编码数据块之间相互独立,因此终端无需等待同一云应用画面对应的所有子编码数据块均接收完毕后再进行解码,而是每接收到一个子编码数据块即进行解码,得到子编码数据块对应的子画面,从而提高数据块接收与解码过程之间的并行度,提高终端侧的解码效率。
其中,终端对子编码数据块进行硬件解码或软件解码。
在一种可能的实施方式中,当云应用服务器基于画面的重要程度将云应用画面分割为主画面和边缘画面时,由于主画面的尺寸通常大于边缘画面的尺寸,因此主画面对应的主画面编码数据块大于边缘画面对应的边缘画面编码数据块。为了提高主画面编码数据块的解码速度,终端通过GPU对主画面编码数据块进行解码,并通过CPU对边缘画面编码数据块进行解码,得到主画面和边缘画面;进一步的,终端对解码得到的主画面和边缘画面进行拼接,得到云应用画面。其中,使用GPU进行硬件解码的速度大于使用CPU进行软件解码的速度。
可选的,使用CPU对边缘画面编码数据块进行解码时,终端首先将边缘画面数据块拷贝至内存,然后利用CPU对边缘画面数据块进行软件解码,得到对应的边缘画面。
示意性的,如图10所示,终端接收到主画面编码数据块1001、第一边缘画面编码数据块1002以及第二边缘画面编码数据块1003后,通过GPU对主画面编码数据块1001进行硬件解码,通过CPU1和CPU2分别对第一边缘画面编码数据块1002以及第二边缘画面编码数据块1003进行软件解码,得到主画面1004、第一边缘画面1005以及第二边缘画面1006。进一步的,终端对主画面1004、第一边缘画面1005以及第二边缘画面1006进行拼接,还原得到1920×1080的云应用画面1007。
可选的,当云应用服务器采用至少两种编码方式对边缘画面进行编码,并将编码得到的至少两种不同压缩率的子编码数据块冗余发送至代理服务器,由代理服务器基于与终端之间的网络状态,选择向终端发送其中一种子编码数据块时,终端需要采用与编码方式相对应的解码方式对子编码数据块进行解码,以保证解码过程的正常执行。
此外,当代理服务器与终端之间的网络状态进一步变差时,代理服务器可能会丢弃边缘画面对应的子编码数据块,仅对主画面对应的子编码数据块进行传输,可选的,若在预设时长内未接收到边缘画面对应的子编码数据块,且仅接收到主画面对应的子编码数据块,终端则通过预训练的神经网络模型(比如生成对抗网络),基于解码得到主画面生成完整的云应用画面,或者,对主画面进行放大,使主画面的尺寸与云应用画面的尺寸一致,或者,复用之前解码得到的边缘画面,以此保证云应用画面的流畅显示。
在其他可能的实施方式中,当云应用服务器将云应用画面等比例分割为若干重要程度相同的子画面时,终端通过GPU对其中一个子画面对应的子编码数据块进行硬件解码,并通过CPU对剩余子画面对应的子编码数据块进行软件解码,提高终端侧解码过程的并行度。
步骤903,对至少两个子画面进行拼接,得到云应用画面并进行显示。
当同一云应用画面对应的所有子编码数据块均解码完成时,终端即对解码得到的各个子画面进行拼接,还原得到分割前的云应用画面并进行显示。
在一种可能的实施方式中,子编码数据块中添加有时间戳和画面位置标识,终端即根据时间戳确定同一云应用画面对应的子画面,并基于画面位置标识确定各个子画面在云应用画面中所处的位置,从而提高云应用画面拼接过程的准确性。
综上所述,本申请实施例中,云应用服务器在运行云应用程序过程中,采用云应用程序对应的画面分割策略,将云应用画面分割为若干子画面,并对若干子画面进行并行编码,从而向代理服务器并行发送编码得到的若干子编码数据块,以便代理服务器将子编码数据块发送至终端后,由终端对子编码数据块进行解码拼接,还原云应用画面;采用本申请实施例提供的方案,在充分利用硬件资源的情况下,通过对云应用画面进行分割并进行并行编码传输,能够降低对单个子画面进行编码时的编码计算量,提高编码以及传输过程的并行度,加快单帧云应用画面的编码传输速度,达到降低终端侧云应用画面的显示延迟的效果。
图11示出了本申请一个示例性实施例提供的云应用画面的显示装置的方框图。该装置包括:
画面获取模块1101,用于运行云应用程序,获取所述云应用程序运行过程中的云应用画面;
画面分割模块1102,用于基于所述云应用程序对应的画面分割策略,将所述云应用画面分割为至少两个子画面;
编码模块1103,用于对至少两个所述子画面进行并行编码,得到所述云应用画面对应的至少两个子编码数据块;
数据发送模块1104,用于向代理服务器并行发送至少两个所述子编码数据块,以便所述代理服务器将至少两个所述子编码数据块发送至终端,由所述终端对至少两个所述子编码数据块进行解码,并对解码得到至少两个所述子画面进行拼接,得到所述云应用画面。
可选的,所述画面分割模块1102,包括:
第一信息获取单元,用于从所述画面分割策略中,获取所述云应用画面中主区域的主区域信息以及边缘区域的边缘区域信息;
第一分割单元,用于基于所述主区域信息以及所述边缘区域信息,将所述云应用画面分割为至少一个主画面和至少一个边缘画面,其中,所述主画面的重要程度高于所述边缘画面的重要程度。
可选的,所述编码模块1103,包括:
第一编码单元,用于通过渲染所述云应用画面的目标GPU对所述主画面进行编码,得到所述主画面对应的主画面编码数据块;
第二编码单元,用于将所述边缘画面拷贝至所述目标GPU以外的其它GPU,并通过其它GPU对所述边缘画面进行编码,得到所述边缘画面对应的边缘画面编码数据块。
可选的,所述将第二编码单元,用于:
获取所述目标GPU外其它GPU的工作状态,所述工作状态包括空闲状态和忙碌状态;
响应于存在空闲GPU,将所述边缘画面拷贝至所述空闲GPU,并通过所述空闲GPU对所述边缘画面进行编码,得到所述边缘画面对应的所述边缘画面编码数据块;
所述编码模块1103,还包括:
第三编码单元,用于响应于不存在所述空闲GPU,将所述边缘画面拷贝至内存,并通过CPU对所述边缘画面进行编码,得到所述边缘画面对应的所述边缘画面编码数据块。
可选的,所述第二编码单元,还用于:
采用至少两种编码方式,通过其它GPU对所述边缘画面进行编码,得到至少两种所述边缘画面编码数据块,其中,不同编码方式对应不同压缩率;
所述数据发送模块1104,用于:
向所述代理服务器并行发送所述主画面编码数据块和至少两种所述边缘画面编码数据块,以便所述代理服务器基于与所述终端之间的网络状态,确定向所述终端发送的所述边缘画面编码数据块,其中,向所述终端发送的所述边缘画面编码数据块的压缩率与所述网络状态呈负相关关系。
可选的,所述装置还包括:
指令接收模块,用于接收所述终端通过所述代理服务器发送的控制指令,所述控制指令用于控制所述云应用程序;
频率更新模块,用于基于所述控制指令所指示的控制区域,更新所述云应用画面内不同区域的操作频率;
策略更新模块,用于基于所述操作频率,对所述云应用程序对应画面分割策略中的所述主区域信息和所述边缘区域信息进行更新。
可选的,所述画面分割模块1102,还包括:
第二信息获取单元,用于从所述画面分割策略中获取等比例分割信息;
第二分割单元,用于基于所述等比例分割信息,将所述云应用画面等比例分割为至少两个所述子画面,其中,不同子画面的重要程度相同。
可选的,所述装置还包括:
第一策略确定模块,用于基于所述云应用程序的应用标识确定所述画面分割策略;
或,
第二策略确定模块,用于基于所述云应用程序的应用标识以及当前运行场景确定所述画面分割策略;
其中,所述画面分割策略包括第一画面分割策略和第二画面分割策略,所述第一画面分割策略指示进行主画面和边缘画面分割,所述主画面的重要程度高于所述边缘画面的重要程度,第二画面分割策略指示进行等比例分割。
可选的,所述第二策略确定模块,包括:
第一策略确定单元,用于响应于所述云应用程序对应所述第一画面分割策略和所述第二画面分割策略,且所述当前运行场景为第一运行场景,确定所述画面分割策略为所述第一画面分割策略;
第二策略确定单元,用于响应于所述云应用程序对应所述第一画面分割策略和所述第二画面分割策略,且所述当前运行场景为第二运行场景,确定所述画面分割策略为所述第二画面分割策略,其中,所述第二运行场景下画面的变化幅度大于所述第一运行场景下画面的变化幅度。
可选的,所述装置还包括:
添加模块,用于为各个所述子编码数据块添加时间戳和画面位置标识,其中,同一云应用画面对应的至少两个所述子编码数据块具有相同时间戳,且所述画面位置标识用于指示子画面在所述云应用画面中所处的位置。
综上所述,本申请实施例中,云应用服务器在运行云应用程序过程中,采用云应用程序对应的画面分割策略,将云应用画面分割为若干子画面,并对若干子画面进行并行编码,从而向代理服务器并行发送编码得到的若干子编码数据块,以便代理服务器将子编码数据块发送至终端后,由终端对子编码数据块进行解码拼接,还原云应用画面;采用本申请实施例提供的方案,在充分利用硬件资源的情况下,通过对云应用画面进行分割并进行并行编码传输,能够降低对单个子画面进行编码时的编码计算量,提高编码以及传输过程的并行度,加快单帧云应用画面的编码传输速度,达到降低终端侧云应用画面的显示延迟的效果。
图12示出了本申请另一个示例性实施例提供的云应用画面的显示装置的方框图。该装置包括:
数据接收模块1201,用于接收代理服务器发送的至少两个子编码数据块,所述子编码数据块由云应用服务器对至少两个子画面并行编码得到,至少两个所述子画面基于云应用程序对应的画面分割策略对云应用画面进行分割得到;
解码模块1202,用于对至少两个所述子编码数据块进行解码,得到至少两个所述子画面;
显示模块1203,用于对至少两个所述子画面进行拼接,得到所述云应用画面并进行显示。
可选的,所述解码模块1202,用于:
通过GPU对主画面编码数据块进行解码,并通过CPU对边缘画面编码数据块进行解码,得到主画面和边缘画面,所述主画面的重要程度高于所述边缘画面的重要程度;
所述显示模块1203,用于:
对所述主画面和所述边缘画面进行拼接,得到所述云应用画面并进行显示。
可选的,所述数据接收模块1201,用于:
通过与所述代理服务器之间的至少两条连接,并行接收所述代理服务器发送的至少两个所述子编码数据块。
综上所述,本申请实施例中,云应用服务器在运行云应用程序过程中,采用云应用程序对应的画面分割策略,将云应用画面分割为若干子画面,并对若干子画面进行并行编码,从而向代理服务器并行发送编码得到的若干子编码数据块,以便代理服务器将子编码数据块发送至终端后,由终端对子编码数据块进行解码拼接,还原云应用画面;采用本申请实施例提供的方案,在充分利用硬件资源的情况下,通过对云应用画面进行分割并进行并行编码传输,能够降低对单个子画面进行编码时的编码计算量,提高编码以及传输过程的并行度,加快单帧云应用画面的编码传输速度,达到降低终端侧云应用画面的显示延迟的效果。
需要说明的是:上述实施例提供的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其实现过程详见方法实施例,这里不再赘述。
请参考图13,其示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲:所述服务器1300包括中央处理单元(Central Processing Unit,CPU)1301、包括随机存取存储器1302和只读存储器1303的系统存储器1304,以及连接系统存储器1304和中央处理单元1301的系统总线1305。所述服务器1300还可以包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)1306,和用于存储操作系统1313、应用程序1314和其他程序模块1315的大容量存储设备1307。
在一些实施例中,所述基本输入/输出系统1306可以包括有用于显示信息的显示器1308和用于用户输入信息的诸如鼠标、键盘之类的输入设备1309。其中所述显示器1308和输入设备1309都通过连接到系统总线1305的输入输出控制器1310连接到中央处理单元1301。所述基本输入/输出系统1306还可以包括输入输出控制器1310以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1310还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1307通过连接到系统总线1305的大容量存储控制器(未示出)连接到中央处理单元1301。所述大容量存储设备1307及其相关联的计算机可读介质为服务器1300提供非易失性存储。也就是说,所述大容量存储设备1307可以包括诸如硬盘或者驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括随机存取记忆体(RAM,Random Access Memory)、只读存储器(ROM,Read Only Memory)、闪存或其他固态存储其技术,只读光盘(Compact Disc Read-Only Memory,CD-ROM)、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1304和大容量存储设备1307可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1301执行,一个或多个程序包含用于实现上述方法的指令,中央处理单元1301执行该一个或多个程序实现上述各个方法实施例中云应用服务器侧的步骤。
根据本申请的各种实施例,所述服务器1300还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1300可以通过连接在所述系统总线1305上的网络接口单元1311连接到网络1312,或者说,也可以使用网络接口单元1311来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的方法中由云应用服务器所执行的步骤。
请参考图14,其示出了本申请一个示例性实施例提供的终端的结构框图。该终端1400可以是便携式移动终端,比如:智能手机、平板电脑、动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III,MP3)播放器、动态影像专家压缩标准音频层面4(Moving Picture Experts Group Audio Layer IV,MP4)播放器。终端1400还可能被称为用户设备、便携式终端等其他名称。
通常,终端1400包括有:处理器1401和存储器1402。
处理器1401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1401可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器1401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1401可以在集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1401还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器1402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1401所执行以实现本申请实施例提供的方法。
在一些实施例中,终端1400还可选包括有:外围设备接口1403和至少一个外围设备。具体地,外围设备包括:射频电路1404、触摸显示屏1405、摄像头组件1406、音频电路1407、定位组件1408和电源1409中的至少一种。
外围设备接口1403可被用于将输入/输出(Input/Output,I/O)相关的至少一个外围设备连接到处理器1401和存储器1402。在一些实施例中,处理器1401、存储器1402和外围设备接口1403被集成在同一芯片或电路板上;在一些其他实施例中,处理器1401、存储器1402和外围设备接口1403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1404用于接收和发射射频(Radio Frequency,RF)信号,也称电磁信号。射频电路1404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1404包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或无线保真(Wireless Fidelity,WiFi)网络。在一些实施例中,射频电路1404还可以包括近距离无线通信(Near Field Communication,NFC)有关的电路,本申请对此不加以限定。
触摸显示屏1405用于显示UI。该UI可以包括图形、文本、图标、视频及其它们的任意组合。触摸显示屏1405还具有采集在触摸显示屏1405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1401进行处理。触摸显示屏1405用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,触摸显示屏1405可以为一个,设置终端1400的前面板;在另一些实施例中,触摸显示屏1405可以为至少两个,分别设置在终端1400的不同表面或呈折叠设计;在再一些实施例中,触摸显示屏1405可以是柔性显示屏,设置在终端1400的弯曲表面上或折叠面上。甚至,触摸显示屏1405还可以设置成非矩形的不规则图形,也即异形屏。触摸显示屏1405可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等材质制备。
摄像头组件1406用于采集图像或视频。可选地,摄像头组件1406包括前置摄像头和后置摄像头。通常,前置摄像头用于实现视频通话或自拍,后置摄像头用于实现照片或视频的拍摄。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能,主摄像头和广角摄像头融合实现全景拍摄以及虚拟现实(Virtual Reality,VR)拍摄功能。在一些实施例中,摄像头组件1406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1407用于提供用户和终端1400之间的音频接口。音频电路1407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1401进行处理,或者输入至射频电路1404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1401或射频电路1404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1407还可以包括耳机插孔。
定位组件1408用于定位终端1400的当前地理位置,以实现导航或基于位置的服务(Location Based Service,LBS)。定位组件1408可以是基于美国的全球定位系统(GlobalPositioning System,GPS)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1409用于为终端1400中的各个组件进行供电。电源1409可以是交流电、直流电、一次性电池或可充电电池。当电源1409包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1400还包括有一个或多个传感器1410。该一个或多个传感器1410包括但不限于:加速度传感器1411、陀螺仪传感器1412、压力传感器1413、指纹传感器1414、光学传感器1415以及接近传感器1416。
加速度传感器1411可以检测以终端1400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1411可以用于检测重力加速度在三个坐标轴上的分量。处理器1401可以根据加速度传感器1411采集的重力加速度信号,控制触摸显示屏1405以横向视图或纵向视图进行用户界面的显示。加速度传感器1411还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1412可以检测终端1400的机体方向及转动角度,陀螺仪传感器1412可以与加速度传感器1411协同采集用户对终端1400的3D动作。处理器1401根据陀螺仪传感器1412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1413可以设置在终端1400的侧边框和/或触摸显示屏1405的下层。当压力传感器1413设置在终端1400的侧边框时,可以检测用户对终端1400的握持信号,根据该握持信号进行左右手识别或快捷操作。当压力传感器1413设置在触摸显示屏1405的下层时,可以根据用户对触摸显示屏1405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1414用于采集用户的指纹,以根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1401授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1414可以被设置终端1400的正面、背面或侧面。当终端1400上设置有物理按键或厂商标志(Logo)时,指纹传感器1414可以与物理按键或厂商Logo集成在一起。
光学传感器1415用于采集环境光强度。在一个实施例中,处理器1401可以根据光学传感器1415采集的环境光强度,控制触摸显示屏1405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1405的显示亮度;当环境光强度较低时,调低触摸显示屏1405的显示亮度。在另一个实施例中,处理器1401还可以根据光学传感器1415采集的环境光强度,动态调整摄像头组件1406的拍摄参数。
接近传感器1416,也称距离传感器,通常设置在终端1400的正面。接近传感器1416用于采集用户与终端1400的正面之间的距离。在一个实施例中,当接近传感器1416检测到用户与终端1400的正面之间的距离逐渐变小时,由处理器1401控制触摸显示屏1405从亮屏状态切换为息屏状态;当接近传感器1416检测到用户与终端1400的正面之间的距离逐渐变大时,由处理器1401控制触摸显示屏1405从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图14中示出的结构并不构成对终端1400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述任一实施例所述的云应用画面的显示方法。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例所述的云应用画面的显示方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种云应用画面的显示方法,其特征在于,所述方法用于云应用服务器,所述方法包括:
运行云应用程序,获取所述云应用程序运行过程中的云应用画面;
基于所述云应用程序对应的画面分割策略,将所述云应用画面分割为至少两个子画面;
对至少两个所述子画面进行并行编码,得到所述云应用画面对应的至少两个子编码数据块;
向代理服务器并行发送至少两个所述子编码数据块,以便所述代理服务器将至少两个所述子编码数据块发送至终端,由所述终端对至少两个所述子编码数据块进行解码,并对解码得到至少两个所述子画面进行拼接,得到所述云应用画面。
2.根据权利要求1所述的方法,其特征在于,所述基于所述云应用程序对应的画面分割策略,将所述云应用画面分割为至少两个子画面,包括:
从所述画面分割策略中,获取所述云应用画面中主区域的主区域信息以及边缘区域的边缘区域信息;
基于所述主区域信息以及所述边缘区域信息,将所述云应用画面分割为至少一个主画面和至少一个边缘画面,其中,所述主画面的重要程度高于所述边缘画面的重要程度。
3.根据权利要求2所述的方法,其特征在于,所述对至少两个所述子画面进行并行编码,得到所述云应用画面对应的至少两个子编码数据块,包括:
通过渲染所述云应用画面的目标GPU对所述主画面进行编码,得到所述主画面对应的主画面编码数据块;
将所述边缘画面拷贝至所述目标GPU以外的其它GPU,并通过其它GPU对所述边缘画面进行编码,得到所述边缘画面对应的边缘画面编码数据块。
4.根据权利要求3所述的方法,其特征在于,所述将所述边缘画面拷贝至所述目标GPU以外的其它GPU,并通过其它CPU对所述边缘画面进行编码,得到所述边缘画面对应的边缘画面编码数据块,包括:
获取所述目标GPU外其它GPU的工作状态,所述工作状态包括空闲状态和忙碌状态;
响应于存在空闲GPU,将所述边缘画面拷贝至所述空闲GPU,并通过所述空闲GPU对所述边缘画面进行编码,得到所述边缘画面对应的所述边缘画面编码数据块;
所述对至少两个所述子画面进行并行编码,得到所述云应用画面对应的至少两个子编码数据块,还包括:
响应于不存在所述空闲GPU,将所述边缘画面拷贝至内存,并通过CPU对所述边缘画面进行编码,得到所述边缘画面对应的所述边缘画面编码数据块。
5.根据权利要求3所述的方法,其特征在于,所述通过其它GPU对所述边缘画面进行编码,得到所述边缘画面对应的边缘画面编码数据块,包括:
采用至少两种编码方式,通过其它GPU对所述边缘画面进行编码,得到至少两种所述边缘画面编码数据块,其中,不同编码方式对应不同压缩率;
所述向代理服务器并行发送至少两个所述子编码数据块,包括:
向所述代理服务器并行发送所述主画面编码数据块和至少两种所述边缘画面编码数据块,以便所述代理服务器基于与所述终端之间的网络状态,确定向所述终端发送的所述边缘画面编码数据块,其中,向所述终端发送的所述边缘画面编码数据块的压缩率与所述网络状态呈负相关关系。
6.根据权利要求1所述的方法,其特征在于,所述基于所述云应用程序对应的画面分割策略,将所述云应用画面分割为至少两个子画面,包括:
从所述画面分割策略中获取等比例分割信息;
基于所述等比例分割信息,将所述云应用画面等比例分割为至少两个所述子画面,其中,不同子画面的重要程度相同。
7.根据权利要求1至6任一所述的方法,其特征在于,所述基于所述云应用程序对应的画面分割策略,将所述云应用画面分割为至少两个子画面之前,所述方法包括:
基于所述云应用程序的应用标识确定所述画面分割策略;
或,
基于所述云应用程序的应用标识以及当前运行场景确定所述画面分割策略;
其中,所述画面分割策略包括第一画面分割策略和第二画面分割策略,所述第一画面分割策略指示进行主画面和边缘画面分割,所述主画面的重要程度高于所述边缘画面的重要程度,第二画面分割策略指示进行等比例分割。
8.根据权利要求7所述的方法,其特征在于,所述基于所述云应用程序的应用标识以及当前运行场景确定所述画面分割策略,包括:
响应于所述云应用程序对应所述第一画面分割策略和所述第二画面分割策略,且所述当前运行场景为第一运行场景,确定所述画面分割策略为所述第一画面分割策略;
响应于所述云应用程序对应所述第一画面分割策略和所述第二画面分割策略,且所述当前运行场景为第二运行场景,确定所述画面分割策略为所述第二画面分割策略,其中,所述第二运行场景下画面的变化幅度大于所述第一运行场景下画面的变化幅度。
9.一种云应用画面的显示方法,其特征在于,所述方法用于终端,所述方法包括:
接收代理服务器发送的至少两个子编码数据块,所述子编码数据块由云应用服务器对至少两个子画面并行编码得到,至少两个所述子画面基于云应用程序对应的画面分割策略对云应用画面进行分割得到;
对至少两个所述子编码数据块进行解码,得到至少两个所述子画面;
对至少两个所述子画面进行拼接,得到所述云应用画面并进行显示。
10.根据权利要求9所述的方法,其特征在于,所述对至少两个所述子编码数据块进行解码,得到至少两个所述子画面,包括:
通过GPU对主画面编码数据块进行解码,并通过CPU对边缘画面编码数据块进行解码,得到主画面和边缘画面,所述主画面的重要程度高于所述边缘画面的重要程度;
所述对至少两个所述子画面进行拼接,得到所述云应用画面并进行显示,包括:
对所述主画面和所述边缘画面进行拼接,得到所述云应用画面并进行显示。
11.一种云应用画面的显示装置,其特征在于,所述装置包括:
画面获取模块,用于运行云应用程序,获取所述云应用程序运行过程中的云应用画面;
画面分割模块,用于基于所述云应用程序对应的画面分割策略,将所述云应用画面分割为至少两个子画面;
编码模块,用于对至少两个所述子画面进行并行编码,得到所述云应用画面对应的至少两个子编码数据块;
数据发送模块,用于向代理服务器并行发送至少两个所述子编码数据块,以便所述代理服务器将至少两个所述子编码数据块发送至终端,由所述终端对至少两个所述子编码数据块进行解码,并对解码得到至少两个所述子画面进行拼接,得到所述云应用画面。
12.一种云应用画面的显示装置,其特征在于,所述装置包括:
数据接收模块,用于接收代理服务器发送的至少两个子编码数据块,所述子编码数据块由云应用服务器对至少两个子画面并行编码得到,至少两个所述子画面基于云应用程序对应的画面分割策略对云应用画面进行分割得到;
解码模块,用于对至少两个所述子编码数据块进行解码,得到至少两个所述子画面;
显示模块,用于对至少两个所述子画面进行拼接,得到所述云应用画面并进行显示。
13.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至8任一所述的云应用画面的显示方法。
14.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求9至10任一所述的云应用画面的显示方法。
15.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至8任一所述的云应用画面的显示方法,或,实现如权利要求9至10任一所述的云应用画面的显示方法。
CN202110375861.8A 2021-04-08 2021-04-08 云应用画面的显示方法、装置、服务器、终端及存储介质 Pending CN115202550A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110375861.8A CN115202550A (zh) 2021-04-08 2021-04-08 云应用画面的显示方法、装置、服务器、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110375861.8A CN115202550A (zh) 2021-04-08 2021-04-08 云应用画面的显示方法、装置、服务器、终端及存储介质

Publications (1)

Publication Number Publication Date
CN115202550A true CN115202550A (zh) 2022-10-18

Family

ID=83571111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110375861.8A Pending CN115202550A (zh) 2021-04-08 2021-04-08 云应用画面的显示方法、装置、服务器、终端及存储介质

Country Status (1)

Country Link
CN (1) CN115202550A (zh)

Similar Documents

Publication Publication Date Title
CN110213636B (zh) 在线视频的视频帧生成方法、装置、存储介质及设备
CN108391127B (zh) 视频编码方法、装置、存储介质及设备
CN109874043B (zh) 视频流发送方法、播放方法及装置
US20220191557A1 (en) Method for displaying interaction data and electronic device
CN109194972B (zh) 直播流获取方法、装置、计算机设备及存储介质
JP7361890B2 (ja) 通話方法、通話装置、通話システム、サーバ及びコンピュータプログラム
CN111327694B (zh) 文件上传方法、装置、存储介质及电子设备
CN113230655B (zh) 虚拟对象的控制方法、装置、设备、系统及可读存储介质
CN112822522B (zh) 视频播放方法、装置、设备及存储介质
CN111494965A (zh) 信息处理方法、装置、设备及存储介质
CN113490010B (zh) 基于直播视频的互动方法、装置、设备及存储介质
CN111596830A (zh) 消息提醒方法及装置
CN110750734A (zh) 天气显示方法、装置、计算机设备及计算机可读存储介质
CN110149491B (zh) 视频编码方法、视频解码方法、终端及存储介质
CN109168032B (zh) 视频数据的处理方法、终端、服务器及存储介质
CN111586444B (zh) 视频处理方法、装置、电子设备及存储介质
CN111935542A (zh) 视频处理方法、视频播放方法、装置、设备及存储介质
CN110662105A (zh) 动画文件的生成方法、装置及存储介质
CN111010588B (zh) 直播处理方法、装置、存储介质及设备
CN111083554A (zh) 直播礼物显示的方法和装置
CN113144622A (zh) 节点切换方法、装置、设备及计算机可读存储介质
CN114071224B (zh) 视频数据处理方法、装置、计算机设备及存储介质
CN111698262B (zh) 带宽确定方法、装置、终端及存储介质
CN112188268B (zh) 虚拟场景展示方法、虚拟场景的介绍视频生成方法及装置
CN115202550A (zh) 云应用画面的显示方法、装置、服务器、终端及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40074964

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination