WO2023045392A1 - Cloud mobile phone implementation method and apparatus - Google Patents

Cloud mobile phone implementation method and apparatus Download PDF

Info

Publication number
WO2023045392A1
WO2023045392A1 PCT/CN2022/096330 CN2022096330W WO2023045392A1 WO 2023045392 A1 WO2023045392 A1 WO 2023045392A1 CN 2022096330 W CN2022096330 W CN 2022096330W WO 2023045392 A1 WO2023045392 A1 WO 2023045392A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing module
instruction
terminal device
video stream
stream processing
Prior art date
Application number
PCT/CN2022/096330
Other languages
French (fr)
Chinese (zh)
Inventor
罗文通
蒋善斌
王磊
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023045392A1 publication Critical patent/WO2023045392A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

The present application relates to the technical field of computers, and provides a cloud mobile phone implementation method and apparatus, which solve the problem that existing cloud mobile phone implementation modes have relatively large restrictions on the scene, and are not suitable for scenes with high picture quality or high follow-up delay requirements. The method is used for storing and running a cloud service of a cloud mobile phone; an instruction stream processing module and a video stream processing module are mounted on the cloud server; and the method comprises: sending a first data stream to a terminal device by means of a first processing module, the first processing module being the instruction stream processing module or the video stream processing module; if it is determined that a current running state satisfies a switching condition, starting a second processing module and sending a switching instruction to the terminal device, wherein the switching instruction being used for instructing the terminal device to be switched from the first processing module to the second processing module; and sending a second data stream to the terminal device by means of the second processing module and closing the first processing module.

Description

一种云手机的实现方法及装置Implementation method and device of a cloud mobile phone
本申请要求于2021年09月26日提交国家知识产权局、申请号为202111128778.7、申请名称为“一种云手机的实现方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of a Chinese patent application filed with the State Intellectual Property Office on September 26, 2021, with the application number 202111128778.7, and the application name "A method and device for implementing a cloud mobile phone", the entire content of which is incorporated by reference In this application.
技术领域technical field
本申请涉及计算机技术领域,尤其涉及一种云手机的实现方法及装置。The present application relates to the field of computer technology, and in particular to a method and device for implementing a cloud mobile phone.
背景技术Background technique
云手机,是指一种搭建在云服务器上的虚拟手机,云手机平台可以让使用者通过电脑或者手机等物理设备来远程操作云服务器上的虚拟云手机,这些虚拟云手机的功能与物理手机基本相同,可以基于云服务器的处理能力高效搭建各种应用程序,如云游戏、移动办公、视频播放或直播应用等,实现各种用户需求。Cloud mobile phone refers to a virtual mobile phone built on a cloud server. The cloud mobile phone platform allows users to remotely operate the virtual cloud mobile phone on the cloud server through physical devices such as computers or mobile phones. The functions of these virtual cloud mobile phones are the same as those of physical mobile phones. Basically the same, based on the processing power of the cloud server, various applications can be efficiently built, such as cloud games, mobile office, video playback or live broadcast applications, etc., to meet various user needs.
对于目前的物理手机或者物理设备远程接入云手机的方式,主流的包括视频流接入方式,即部署在云服务器上的云手机安装视频流引擎,视频流引擎通过持续捕获云手机的每一帧显示画面(图像),然后将获取的一帧帧图像进行编码转变为视频码流,如H.264码流或H.265码流等,通过网络连接将视频码流实时传送给物理手机。物理手机上的视频流引擎对接收到的视频码流进行解码,然后在物理手机的屏幕上进行实时显示,从而实现了物理手机对云手机的接入控制。For the current remote access methods of physical mobile phones or physical devices to cloud mobile phones, the mainstream method includes video stream access, that is, the cloud mobile phone deployed on the cloud server installs a video streaming engine, and the video streaming engine continuously captures every Display the picture (image) frame by frame, and then encode the acquired frame-by-frame image into a video code stream, such as H.264 code stream or H.265 code stream, etc., and transmit the video code stream to the physical mobile phone in real time through a network connection. The video stream engine on the physical mobile phone decodes the received video code stream, and then displays it in real time on the screen of the physical mobile phone, thus realizing the access control of the physical mobile phone to the cloud mobile phone.
但是,上述应用方式对场景的限制较大,适用于画面质量较低(即分辨率较低)以及对跟手时延要求较低的场景,例如,若实时显示的画面分辨率为1920*1080或者更高,则传输的视频码流数据包较大,会产生较高的传输成本以及对于网络带宽的较大占用,物理手机上实时显示画面的跟手时延也会较长,若网络状态较差,可能还会出现丢包或者卡顿的现象。However, the above-mentioned application method has relatively large restrictions on the scene, and is suitable for scenes with low picture quality (that is, low resolution) and low requirements for follow-up delay. For example, if the real-time display picture resolution is 1920*1080 or higher, the transmitted video stream data packets will be larger, which will result in higher transmission costs and a larger occupation of network bandwidth. Poor, there may be packet loss or freeze phenomenon.
发明内容Contents of the invention
本申请提供一种云手机的实现方法及装置,解决了现有的云手机实现方式对于场景的限制较大,不适用于画面质量较高或者跟手时延要求较高的场景,对于网络状态的限制也比较大。This application provides a method and device for implementing a cloud mobile phone, which solves the problem that the existing cloud mobile phone implementation method has relatively large restrictions on scenarios, and is not suitable for scenarios with high picture quality or high follow-up delay requirements. restrictions are also relatively large.
为达到上述目的,本申请采用如下技术方案:In order to achieve the above object, the application adopts the following technical solutions:
第一方面,提供一种云手机的实现方法,应用于云服务器,云服务器用于存储以及运行云手机,云服务器安装有指令流处理模块和视频流处理模块,方法包括:通过第一处理模块向终端设备发送第一数据流,若第一处理模块为视频流处理模块,则第一数据流为视频流,若第一处理模块为指令流处理模块,则第一数据流为渲染指令流;若确定当前运行状态满足切换条件,则启动第二处理模块并向终端设备发送切换指令,其中,切换指令用于指示终端设备从第一处理模块切换至第二处理模块,若第一处理模块为视频流处理模块,则第二处理模块为指令流处理模块,若第一处理模块为指令流处理模块,则第二处理模块为视频流处理模块;通过第二处理模块向终端设备发送第二数据流,并关闭第一处理模块,其中,第二数据流为渲染指令流或视频流,第二 数据流与第一数据流不同。In the first aspect, a method for implementing a cloud mobile phone is provided, which is applied to a cloud server. The cloud server is used for storing and running the cloud mobile phone. The cloud server is equipped with an instruction stream processing module and a video stream processing module. The method includes: using the first processing module Sending the first data stream to the terminal device, if the first processing module is a video stream processing module, the first data stream is a video stream, and if the first processing module is an instruction stream processing module, then the first data stream is a rendering instruction stream; If it is determined that the current operating state meets the switching condition, then start the second processing module and send a switching instruction to the terminal device, wherein the switching instruction is used to instruct the terminal device to switch from the first processing module to the second processing module, if the first processing module is Video stream processing module, then the second processing module is an instruction stream processing module, if the first processing module is an instruction stream processing module, then the second processing module is a video stream processing module; send the second data to the terminal device through the second processing module stream, and close the first processing module, wherein the second data stream is a rendering instruction stream or a video stream, and the second data stream is different from the first data stream.
上述技术方案中,云服务器上部署的云手机支持指令流处理方式与视频流处理方式,并且可以根据当前实际的运行状态,在指令流处理方式与视频流处理方式之间进行切换,从而可以使得终端设备支持根据视频流进行图像显示,或者根据渲染指令流进行进行图像显示,提高了云手机实现方式的灵活性以及不同场景的适应性,能够提高云手机的实现效率,提高用户体验。In the above technical solution, the cloud mobile phone deployed on the cloud server supports the command stream processing mode and the video stream processing mode, and can switch between the command stream processing mode and the video stream processing mode according to the current actual running state, so that the The terminal device supports image display based on the video stream, or image display based on the rendering instruction stream, which improves the flexibility of the cloud mobile phone implementation and the adaptability to different scenarios, improves the implementation efficiency of the cloud mobile phone, and improves the user experience.
在一种可能的设计方式中,确定当前运行状态满足切换条件,具体包括以下至少一项:确定当前网络状态参数满足预设条件,或者,确定当前显示图像的分辨率满足预设条件,或者,确定当前运行的应用程序的类型满足预设条件,或者,确定当前运行的应用程序的带宽需求满足预设条件,或者,确定终端设备的数据处理能力满足预设条件,其中,网络状态参数包括丢包率、可用带宽或者时延中的至少一项。In a possible design manner, determining that the current operating state meets the switching condition specifically includes at least one of the following: determining that the current network state parameter meets the preset condition, or determining that the resolution of the currently displayed image meets the preset condition, or, Determine that the type of the currently running application meets the preset condition, or determine that the bandwidth requirement of the currently running application meets the preset condition, or determine that the data processing capability of the terminal device meets the preset condition, wherein the network status parameters include loss At least one of packet rate, available bandwidth, or delay.
上述可能的实现方式中,云服务器判断是否需要进行指令流处理方式与视频流处理方式之间的切换可以根据不同的切换决策策略实现,不同策略之间也可以组合使用,提高了云手机实现方式的灵活性,在不同的应用场景下进一步提高了云手机实现方式的准确性和效率,提升用户体验。In the above possible implementation methods, the cloud server can judge whether it is necessary to switch between the instruction stream processing mode and the video stream processing mode, which can be realized according to different switching decision strategies, and different strategies can also be used in combination, which improves the cloud mobile phone implementation. The flexibility further improves the accuracy and efficiency of cloud phone implementation in different application scenarios, and improves user experience.
在一种可能的设计方式中,若第一处理模块为视频流处理模块,启动第二处理模块并向终端设备发送切换指令以及第二数据流,具体包括:启动指令流处理模块,完成图形渲染状态机数据准备;向终端设备发送指示切换至终端设备的指令流处理模块的切换指令;向终端设备发送渲染指令流。In a possible design mode, if the first processing module is a video stream processing module, start the second processing module and send the switching instruction and the second data stream to the terminal device, specifically including: starting the instruction stream processing module to complete graphics rendering State machine data preparation; sending to the terminal device a switching instruction indicating to switch to the instruction stream processing module of the terminal device; sending a rendering instruction stream to the terminal device.
上述可能的实现方式中,当云手机确定从视频流处理模块切换至指令流处理模块时,云手机可以通过启动指令流处理模块,完成图形渲染状态机数据准备,并向终端设备发送切换指令以及指令流处理模块获取的渲染指令流,从而可以自动实现从视频流处理模块切换至指令流处理模块,并且通知终端设备也实现从视频流处理模块切换至指令流处理模块的数据准备,提高云手机实现方式的灵活性以及切换的平滑过度,画面显示不受影响,用户不感知接入方式的切换,提升用户体验。In the above possible implementation, when the cloud mobile phone determines to switch from the video stream processing module to the command stream processing module, the cloud mobile phone can complete the data preparation of the graphics rendering state machine by starting the command stream processing module, and send the switching command to the terminal device and The rendering instruction stream obtained by the instruction stream processing module can automatically switch from the video stream processing module to the instruction stream processing module, and notify the terminal device to also realize the data preparation for switching from the video stream processing module to the instruction stream processing module, improving the cloud mobile phone The flexibility of the implementation method and the smooth transition of the switching, the screen display is not affected, and the user does not perceive the switching of the access mode, which improves the user experience.
在一种可能的设计方式中,关闭第一处理模块,具体包括:接收来自终端设备的切换完成指令,关闭视频流处理模块。In a possible design manner, shutting down the first processing module specifically includes: receiving a switching completion instruction from the terminal device, and shutting down the video stream processing module.
上述可能的实现方式中,云手机可以根据终端设备的切换完成指令,再关闭视频流处理模块,从而可以提高云手机接入方式切换的准确性以及安全性,画面显示平滑过度,用户不感知接入方式的切换,提升用户体验。In the above possible implementation methods, the cloud mobile phone can complete the command according to the switching of the terminal device, and then close the video stream processing module, so as to improve the accuracy and security of the cloud mobile phone access mode switching, the screen display is smooth and excessive, and the user does not perceive the connection mode. Switching of input methods improves user experience.
在一种可能的设计方式中,确定当前运行状态满足切换条件,则启动第二处理模块并向终端设备发送切换指令,具体包括:若确定当前的丢包率大于或者等于第一阈值,则确定满足由指令流处理模块切换至视频流处理模块的条件;启动视频流处理模块并向终端设备发送切换至视频流处理模块的指令。In a possible design manner, if it is determined that the current operating state meets the switching condition, then start the second processing module and send a switching instruction to the terminal device, which specifically includes: if it is determined that the current packet loss rate is greater than or equal to the first threshold, then determining Satisfying the conditions for switching from the instruction stream processing module to the video stream processing module; starting the video stream processing module and sending an instruction to switch to the video stream processing module to the terminal device.
上述可能的实现方式中,云服务器可以根据丢包率大于或者等于预设阈值确定网络状态不佳,为避免指令流处理方式下频繁丢包造成的显示卡顿等问题,云服务器可以确定由指令流处理模块切换至视频流处理模块,从而提高云手机的实现效率,提升用户体验。In the above possible implementation, the cloud server can determine that the network status is not good according to the packet loss rate being greater than or equal to the preset threshold. The stream processing module is switched to the video stream processing module, thereby improving the implementation efficiency of cloud mobile phones and improving user experience.
在一种可能的设计方式中,确定当前运行状态满足切换条件,则启动第二处理模 块并向终端设备发送切换指令,具体包括:若确定当前的可用带宽大于或者等于第二阈值,则确定满足由视频流处理模块切换至指令流处理模块的条件;启动指令流处理模块并向终端设备发送切换至指令流处理模块的指令。In a possible design manner, if it is determined that the current operating state satisfies the switching condition, then start the second processing module and send a switching instruction to the terminal device, which specifically includes: if it is determined that the current available bandwidth is greater than or equal to the second threshold, then determining that the condition is satisfied Conditions for switching from the video stream processing module to the instruction stream processing module; starting the instruction stream processing module and sending an instruction to switch to the instruction stream processing module to the terminal device.
上述可能的实现方式中,云服务确定接入方式的决策策略还可以根据当前的可用带宽是否大于或者等于预设阈值,即确定网络状态较好,则云服务器可以确定由视频流处理方式切换至指令流处理方式,从而实现自动切换,提高灵活性。In the above possible implementations, the decision-making strategy for the cloud service to determine the access method can also be based on whether the current available bandwidth is greater than or equal to the preset threshold, that is, if the network status is determined to be good, the cloud server can determine to switch from the video stream processing method to Instruction stream processing mode, so as to realize automatic switching and improve flexibility.
在一种可能的设计方式中,确定当前运行状态满足切换条件,则启动第二处理模块并向终端设备发送切换指令,具体包括:若确定当前显示图像的分辨率低于或者等于1080*720,则确定满足由指令流处理模块切换至视频流处理模块的条件;启动视频流处理模块并向终端设备发送切换至视频流处理模块的指令;或者,若确定当前显示图像的分辨率高于或者等于1920*1080,则确定满足由视频流处理模块切换至指令流处理模块的条件;启动指令流处理模块并向终端设备发送切换至指令流处理模块的指令。In a possible design manner, if it is determined that the current running state satisfies the switching condition, the second processing module is started and a switching instruction is sent to the terminal device, which specifically includes: if it is determined that the resolution of the currently displayed image is lower than or equal to 1080*720, Then it is determined that the condition for switching from the instruction stream processing module to the video stream processing module is met; the video stream processing module is started and an instruction to switch to the video stream processing module is sent to the terminal device; or, if it is determined that the resolution of the currently displayed image is higher than or equal to 1920*1080, it is determined that the condition for switching from the video stream processing module to the instruction stream processing module is satisfied; the instruction stream processing module is started and an instruction to switch to the instruction stream processing module is sent to the terminal device.
上述可能的实现方式中,云服务器确定当前显示图像的分辨率低于或者等于720P(即1080*720),视频流的数据量较小,则可以使用视频流处理模块;当前显示图像的分辨率高于或者等于1080P(即1920*1080),视频流的数据量较大,则可以切换使用指令流处理模块,从而可以实现自动切换,满足不同的应用场景。In the above-mentioned possible implementation, the cloud server determines that the resolution of the currently displayed image is lower than or equal to 720P (ie 1080*720), and the data volume of the video stream is small, then the video stream processing module can be used; the resolution of the currently displayed image If it is higher than or equal to 1080P (that is, 1920*1080), and the data volume of the video stream is large, the instruction stream processing module can be switched to realize automatic switching to meet different application scenarios.
在一种可能的设计方式中,确定当前运行状态满足切换条件,则启动第二处理模块并向终端设备发送切换指令,具体包括:确定当前运行的应用程序的类型为强交互类的游戏或者其他强交互类型的应用程序,或者,确定当前运行的应用程序对于指令流的带宽需求较小,则确定满足由视频流处理模块切换至指令流处理模块的条件;启动指令流处理模块并向终端设备发送切换至指令流处理模块的指令。In a possible design mode, if it is determined that the current running state satisfies the switching condition, the second processing module is started and a switching instruction is sent to the terminal device, which specifically includes: determining that the type of the currently running application program is a strongly interactive game or other For applications of strong interaction type, or if it is determined that the currently running application has a small bandwidth requirement for the instruction stream, it is determined that the condition for switching from the video stream processing module to the instruction stream processing module is met; the instruction stream processing module is started and sent to the terminal device Send an instruction to switch to the instruction stream processing module.
上述可能的实现方式中,云服务确定接入方式的决策策略还可以根据当前运行的应用程序的类型,例如,强交互类的游戏或者其他强交互类型的应用程序,这类应用程序对于指令流的带宽需求相较于视频流较小,则确定使用指令流处理模块,从而减少云手机实现对于带宽的占用,提高云手机实现效率。In the above possible implementations, the decision-making strategy for the cloud service to determine the access method can also be based on the type of the currently running application, for example, a game with strong interaction or other applications with strong interaction. If the bandwidth requirement is smaller than that of the video stream, it is determined to use the instruction stream processing module, so as to reduce the bandwidth occupation of the cloud mobile phone implementation and improve the efficiency of the cloud mobile phone implementation.
在一种可能的设计方式中,确定当前运行状态满足切换条件,则启动第二处理模块并向终端设备发送切换指令,具体包括:若确定当前运行的应用程序为弱交互类的游戏或者其他弱交互类型的应用程序,或者,确定当前运行的应用程序对于视频流的带宽需求较小,或者,终端设备上图形处理器GPU的处理能力低于预设条件时,则确定满足由指令流处理模块切换至视频流处理模块的条件;启动视频流处理模块并向终端设备发送切换至视频流处理模块的指令。In a possible design mode, if it is determined that the current running state satisfies the switching condition, the second processing module is started and a switching instruction is sent to the terminal device, which specifically includes: if it is determined that the currently running application program is a weakly interactive game or other weak Interactive type of application, or, if it is determined that the currently running application has a small bandwidth requirement for video streams, or, when the processing capability of the graphics processor GPU on the terminal device is lower than the preset condition, then it is determined that the instruction stream processing module meets the requirements. A condition for switching to the video stream processing module; starting the video stream processing module and sending an instruction to switch to the video stream processing module to the terminal device.
上述可能的实现方式中,当应用程序为弱交互类的游戏或者其他弱交互类型的应用程序,或者,移动办公APP或者社交类APP,则确定当前运行的应用程序对于视频流的带宽需求相较于视频流较小,可以确定使用指令流处理模块,从而减少云手机实现对于带宽的占用,提高云手机实现效率。In the above possible implementation manners, when the application is a weak-interaction game or other weak-interaction application, or a mobile office APP or a social APP, it is determined that the bandwidth requirements of the currently running application for the video stream are relatively high. Since the video stream is small, it can be determined to use the instruction stream processing module, thereby reducing the bandwidth occupation of cloud mobile phone implementation and improving the efficiency of cloud mobile phone implementation.
另外,进一步的,云服务确定接入方式的决策策略还可以结合终端设备的图形处理器GPU的处理能力,当终端设备的GPU处理能力较弱时,云服务器可以确定使用视频流处理模块;当终端设备的GPU处理能力足够时,在切换至使用指令流处理模块。 从而减少云手机实现对于终端设备处理能力的占用,提高云手机实现效率。In addition, further, the cloud service's decision-making strategy for determining the access method can also combine the processing capability of the graphics processor GPU of the terminal device. When the GPU processing capability of the terminal device is weak, the cloud server can determine to use the video stream processing module; when When the GPU processing capability of the terminal device is sufficient, switch to using the instruction stream processing module. In this way, the occupation of the processing capacity of the terminal device by the implementation of the cloud mobile phone is reduced, and the efficiency of the implementation of the cloud mobile phone is improved.
第二方面,提供一种云手机的实现方法,应用于终端设备,终端设备用于远程控制云手机,方法包括:接收来自云服务器的第一数据流,第一数据流为视频流或者渲染指令流;根据第一数据流进行图像显示;接收来自云服务器的切换指令,切换指令用于指示终端设备从第一处理模块切换至第二处理模块;其中,第一处理模块为指令流处理模块且第二处理模块为视频流处理模块,或者,第一处理模块为视频流处理模块且第二处理模块为指令流处理模块;接收来自云服务器的第二数据流,并根据第二数据流进行图像显示,其中,第二数据流为渲染指令流或视频流,第二数据流与第一数据流不同。In the second aspect, a method for implementing a cloud mobile phone is provided, which is applied to a terminal device, and the terminal device is used to remotely control the cloud mobile phone. The method includes: receiving a first data stream from a cloud server, where the first data stream is a video stream or a rendering instruction Streaming; performing image display according to the first data stream; receiving a switching instruction from the cloud server, the switching instruction is used to instruct the terminal device to switch from the first processing module to the second processing module; wherein, the first processing module is an instruction stream processing module and The second processing module is a video stream processing module, or the first processing module is a video stream processing module and the second processing module is an instruction stream processing module; receiving the second data stream from the cloud server, and performing image processing according to the second data stream display, wherein the second data stream is a rendering instruction stream or a video stream, and the second data stream is different from the first data stream.
上述技术方案中,终端设备远程控制云手机时,可以根据云服务器的切换指令,实现指令流处理方式与视频流处理方式之间的灵活切换,从而终端设备可以支持根据接收的视频流进行图像显示,或者根据接收的渲染指令流进行进行图像显示,提高了云手机实现方式的灵活性以及不同场景的适应性,能够提高云手机的实现效率,提高用户体验。In the above technical solution, when the terminal device remotely controls the cloud mobile phone, it can flexibly switch between the instruction stream processing method and the video stream processing method according to the switching instruction of the cloud server, so that the terminal device can support image display according to the received video stream , or perform image display according to the received rendering instruction stream, which improves the flexibility of the implementation of the cloud mobile phone and the adaptability of different scenarios, can improve the implementation efficiency of the cloud mobile phone, and improve user experience.
在一种可能的设计方式中,若切换指示用于指示从视频流处理模块切换至指令流处理模块,接收来自云服务器的第二数据流,并根据第二数据流进行图像显示,具体包括:启动指令流处理模块,重建图形渲染状态机;接收来自云服务器的第二数据流,并进行解码得到渲染指令;根据渲染指令进行渲染,得到原始显示图像;从视频流绘制表面切换到指令流绘制表面;关闭视频流处理模块。In a possible design manner, if the switching instruction is used to instruct switching from the video stream processing module to the instruction stream processing module, receive the second data stream from the cloud server, and perform image display according to the second data stream, specifically including: Start the instruction stream processing module to rebuild the graphics rendering state machine; receive the second data stream from the cloud server and decode it to obtain rendering instructions; render according to the rendering instructions to obtain the original display image; switch from the video stream drawing surface to the instruction stream drawing Surface; close the video stream processing module.
上述可能的实现方式中,当终端设备根据切换指令确定需要从视频流处理模块切换至指令流处理模块时,可以通过启动指令流处理模块,重建图形渲染状态机,从而可以根据接收的渲染指令渲染得到显示图像,并且从视频流绘制表面切换到指令流绘制表面,实现两种接入方式的平滑切换,画面显示平滑过度,提升用户的使用体验。In the above possible implementation, when the terminal device determines that it needs to switch from the video stream processing module to the instruction stream processing module according to the switching instruction, the graphics rendering state machine can be rebuilt by starting the instruction stream processing module, so that the graphics rendering state machine can be rendered according to the received rendering instruction. The display image is obtained, and the video stream drawing surface is switched to the instruction stream drawing surface, so as to realize the smooth switching of the two access methods, the screen display is smooth and transitional, and the user experience is improved.
在一种可能的设计方式中,从视频流绘制表面切换到指令流绘制表面之后,方法还包括:向云服务器发送切换完成指令,用于指示云服务器关闭视频流处理模块。In a possible design manner, after switching from the video stream drawing surface to the instruction stream drawing surface, the method further includes: sending a switching completion instruction to the cloud server, which is used to instruct the cloud server to shut down the video stream processing module.
上述可能的实现方式中,终端设备侧的上屏显示完成从视频流处理模块切换至指令流处理模块时,可以通过向云服务器发送切换完成指令,已通知云服务关闭视频流处理模块,从而可以提高云手机接入方式切换的准确性以及安全性,画面显示平滑过度,用户不感知接入方式的切换,提升用户体验。In the above-mentioned possible implementation, when the upper screen display on the terminal device side completes switching from the video stream processing module to the command stream processing module, the cloud server can be notified to close the video stream processing module by sending a switching completion command to the cloud server, so that Improve the accuracy and security of cloud mobile phone access mode switching, the screen display is smooth and transitional, users do not perceive the switching of access modes, and improve user experience.
第三方面,提供一种云手机的实现装置,装置用于存储以及运行云手机,装置包括视频流处理模块和指令流处理模块,所述装置还包括发送模块和处理模块。所述发送模块用于向终端设备发送第一数据流,若第一处理模块为视频流处理模块,则第一数据流为视频流,若第一处理模块为指令流处理模块,则第一数据流为渲染指令流;处理模块用于,若确定当前运行状态满足切换条件,则启动第二处理模块并向终端设备发送切换指令,其中,切换指令用于指示终端设备从第一处理模块切换至第二处理模块,若第一处理模块为视频流处理模块,则第二处理模块为指令流处理模块,若第一处理模块为指令流处理模块,则第二处理模块为视频流处理模块;发送模块还用于向终端设备发送第二数据流,其中,第二数据流为渲染指令流或视频流,第二数据流与第一数据流不同;处理模块还用于关闭第一处理模块。In the third aspect, there is provided a device for implementing a cloud mobile phone. The device is used for storing and running the cloud mobile phone. The device includes a video stream processing module and an instruction stream processing module. The device also includes a sending module and a processing module. The sending module is used to send the first data stream to the terminal device. If the first processing module is a video stream processing module, the first data stream is a video stream. If the first processing module is an instruction stream processing module, the first data stream is The stream is a stream of rendering instructions; the processing module is used to start the second processing module and send a switching instruction to the terminal device if it is determined that the current running state satisfies the switching condition, wherein the switching instruction is used to instruct the terminal device to switch from the first processing module to The second processing module, if the first processing module is a video stream processing module, then the second processing module is an instruction stream processing module, and if the first processing module is an instruction stream processing module, then the second processing module is a video stream processing module; sending The module is also used to send a second data stream to the terminal device, wherein the second data stream is a rendering instruction stream or a video stream, and the second data stream is different from the first data stream; the processing module is also used to close the first processing module.
在一种可能的设计方式中,确定当前运行状态满足切换条件,具体包括以下至少一项:确定当前网络状态参数满足预设条件,或者,确定当前显示图像的分辨率满足预设条件,或者,确定当前运行的应用程序的类型满足预设条件,或者,确定当前运行的应用程序的带宽需求满足预设条件,或者,确定终端设备的数据处理能力满足预设条件,其中,网络状态参数包括丢包率、可用带宽或者时延中的至少一项。In a possible design manner, determining that the current operating state meets the switching condition specifically includes at least one of the following: determining that the current network state parameter meets the preset condition, or determining that the resolution of the currently displayed image meets the preset condition, or, Determine that the type of the currently running application meets the preset condition, or determine that the bandwidth requirement of the currently running application meets the preset condition, or determine that the data processing capability of the terminal device meets the preset condition, wherein the network status parameters include loss At least one of packet rate, available bandwidth, or delay.
在一种可能的设计方式中,若第一处理模块为视频流处理模块,处理模块具体用于启动所述指令流处理模块,完成图形渲染状态机数据准备;发送模块具体用于向终端设备发送指示切换至终端设备的指令流处理模块的切换指令;向终端设备发送渲染指令流。In a possible design mode, if the first processing module is a video stream processing module, the processing module is specifically used to start the instruction stream processing module and complete the data preparation of the graphics rendering state machine; the sending module is specifically used to send the video stream to the terminal device. Instruct to switch to the switching instruction of the instruction stream processing module of the terminal device; send the rendering instruction stream to the terminal device.
在一种可能的设计方式中,该装置还包括接收模块,用于接收来自终端设备的切换完成指令,关闭视频流处理模块。In a possible design manner, the device further includes a receiving module, configured to receive a handover completion instruction from the terminal device, and shut down the video stream processing module.
在一种可能的设计方式中,处理模块具体用于:若确定当前的丢包率大于或者等于第一阈值,则确定满足由指令流处理模块切换至视频流处理模块的条件;启动视频流处理模块并向终端设备发送切换至视频流处理模块的指令。In a possible design manner, the processing module is specifically configured to: if it is determined that the current packet loss rate is greater than or equal to the first threshold, then determine that the condition for switching from the instruction stream processing module to the video stream processing module is met; start the video stream processing module and send an instruction to the terminal device to switch to the video stream processing module.
在一种可能的设计方式中,处理模块具体用于:若确定当前的可用带宽大于或者等于第二阈值,则确定满足由视频流处理模块切换至指令流处理模块的条件;启动指令流处理模块并向终端设备发送切换至指令流处理模块的指令。In a possible design manner, the processing module is specifically configured to: if it is determined that the current available bandwidth is greater than or equal to the second threshold, determine that the condition for switching from the video stream processing module to the instruction stream processing module is met; start the instruction stream processing module And send an instruction to switch to the instruction stream processing module to the terminal device.
在一种可能的设计方式中,处理模块具体用于:若确定当前显示图像的分辨率低于或者等于1080*720,则确定满足由指令流处理模块切换至视频流处理模块的条件;启动视频流处理模块并向终端设备发送切换至视频流处理模块的指令;或者,若确定当前显示图像的分辨率高于或者等于1920*1080,则确定满足由视频流处理模块切换至指令流处理模块的条件;启动指令流处理模块并向终端设备发送切换至指令流处理模块的指令。In a possible design mode, the processing module is specifically used to: if it is determined that the resolution of the currently displayed image is lower than or equal to 1080*720, then determine that the condition for switching from the instruction stream processing module to the video stream processing module is met; start the video The stream processing module sends an instruction to switch to the video stream processing module to the terminal device; or, if it is determined that the resolution of the currently displayed image is higher than or equal to 1920*1080, it is determined that the video stream processing module is switched to the instruction stream processing module. Condition: start the instruction stream processing module and send an instruction to switch to the instruction stream processing module to the terminal device.
在一种可能的设计方式中,处理模块具体用于:确定当前运行的应用程序的类型为强交互类的游戏或者其他强交互类型的应用程序,或者,确定当前运行的应用程序对于指令流的带宽需求较小,则确定满足由视频流处理模块切换至指令流处理模块的条件;启动指令流处理模块并向终端设备发送切换至指令流处理模块的指令。In a possible design manner, the processing module is specifically used to: determine that the type of the currently running application program is a game of strong interaction type or other strong interaction type of application program, or determine that the currently running application program has an If the bandwidth requirement is small, it is determined that the condition for switching from the video stream processing module to the instruction stream processing module is met; the instruction stream processing module is started and an instruction to switch to the instruction stream processing module is sent to the terminal device.
在一种可能的设计方式中,处理模块具体用于:若确定当前运行的应用程序为弱交互类的游戏或者其他弱交互类型的应用程序,或者,确定当前运行的应用程序对于视频流的带宽需求较小,或者,终端设备上图形处理器GPU的处理能力低于预设条件时,则确定满足由指令流处理模块切换至视频流处理模块的条件;启动视频流处理模块并向终端设备发送切换至视频流处理模块的指令。In a possible design mode, the processing module is specifically used for: if it is determined that the currently running application program is a weak-interaction game or other weak-interaction application program, or to determine the bandwidth of the currently running application program for the video stream The demand is small, or when the processing capability of the graphics processor GPU on the terminal device is lower than the preset condition, it is determined that the condition for switching from the instruction stream processing module to the video stream processing module is met; the video stream processing module is started and sent to the terminal device An instruction to switch to the video stream processing module.
第四方面,提供一种云手机的实现装置,装置用于远程控制云手机,装置包括接收模块和处理模块,接收模块用于接收来自云服务器的第一数据流,第一数据流为视频流或者渲染指令流;处理模块用于根据第一数据流进行图像显示;接收模块还用于接收来自云服务器的切换指令,切换指令用于指示装置从第一处理模块切换至第二处理模块;其中,第一处理模块为指令流处理模块且第二处理模块为视频流处理模块,或者,第一处理模块为视频流处理模块且第二处理模块为指令流处理模块;接收模块还用于接收来自云服务器的第二数据流;处理模块还用于根据第二数据流进行图像显 示,其中,第二数据流为渲染指令流或视频流,第二数据流与第一数据流不同。In the fourth aspect, a device for implementing a cloud mobile phone is provided. The device is used to remotely control the cloud mobile phone. The device includes a receiving module and a processing module. The receiving module is used to receive the first data stream from the cloud server, and the first data stream is a video stream Or a rendering instruction stream; the processing module is used to display images according to the first data stream; the receiving module is also used to receive a switching instruction from the cloud server, and the switching instruction is used to instruct the device to switch from the first processing module to the second processing module; wherein , the first processing module is an instruction stream processing module and the second processing module is a video stream processing module, or the first processing module is a video stream processing module and the second processing module is an instruction stream processing module; the receiving module is also used to receive data from The second data stream of the cloud server; the processing module is further configured to display images according to the second data stream, wherein the second data stream is a rendering instruction stream or a video stream, and the second data stream is different from the first data stream.
在一种可能的设计方式中,若切换指示用于指示从视频流处理模块切换至指令流处理模块,处理模块具体用于:启动指令流处理模块,重建图形渲染状态机;接收模块具体用于接收来自云服务器的第二数据流,并进行解码得到渲染指令;处理模块具体用于:根据渲染指令进行渲染,得到原始显示图像;从视频流绘制表面切换到指令流绘制表面;关闭视频流处理模块。In a possible design mode, if the switching instruction is used to indicate switching from the video stream processing module to the instruction stream processing module, the processing module is specifically used to: start the instruction stream processing module, and rebuild the graphics rendering state machine; the receiving module is specifically used to: Receive the second data stream from the cloud server and decode it to obtain a rendering instruction; the processing module is specifically used to: render according to the rendering instruction to obtain the original display image; switch from the video stream drawing surface to the instruction stream drawing surface; close the video stream processing module.
在一种可能的设计方式中,装置还包括发送模块,发送模块用于向云服务器发送切换完成指令,用于指示云服务器关闭视频流处理模块。In a possible design manner, the device further includes a sending module, configured to send a handover completion instruction to the cloud server, and used to instruct the cloud server to shut down the video stream processing module.
第五方面,提供一种电子设备,所述电子设备包括:存储器和一个或多个处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述电子设备用于执行如上述第一方面中任一项所述的方法。According to a fifth aspect, an electronic device is provided, and the electronic device includes: a memory and one or more processors; the memory is coupled to the processor; the memory is used to store computer program code, and the computer program code It includes computer instructions, and when the processor executes the computer instructions, the electronic device is configured to execute the method described in any one of the above first aspects.
第六方面,提供一种电子设备,所述电子设备包括:存储器和一个或多个处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述电子设备用于执行如上述第二方面中任一项所述的方法。According to a sixth aspect, an electronic device is provided, and the electronic device includes: a memory and one or more processors; the memory is coupled to the processor; the memory is used to store computer program code, and the computer program code It includes computer instructions, and when the processor executes the computer instructions, the electronic device is configured to execute the method as described in any one of the above second aspects.
第七方面,提供一种计算机可读存储介质,所述可读存储介质中存储有指令,当所述可读存储介质在电子设备上运行时,使得所述电子设备执行如上述第一方面中任一项所述的方法。In a seventh aspect, there is provided a computer-readable storage medium, and instructions are stored in the readable storage medium, and when the readable storage medium is run on an electronic device, the electronic device executes the above-mentioned first aspect. any one of the methods described.
第八方面,提供一种计算机可读存储介质,所述可读存储介质中存储有指令,当所述可读存储介质在电子设备上运行时,使得所述电子设备执行如上述第二方面中任一项所述的方法。In an eighth aspect, there is provided a computer-readable storage medium, where instructions are stored in the readable storage medium, and when the readable storage medium is run on an electronic device, the electronic device executes the above-mentioned second aspect. any one of the methods described.
第九方面,提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述第一方面中任一项所述的方法。In a ninth aspect, a computer program product is provided. When the computer program product is run on a computer, the computer is made to execute the method described in any one of the above first aspects.
第十方面,提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述第一方面中任一项所述的方法。In a tenth aspect, a computer program product is provided. When the computer program product is run on a computer, the computer is made to execute the method described in any one of the above first aspects.
第十一方面,提供一种通信系统,所述通信系统包括上述第三方面任一项所述的装置和上述第四方面任一项所述的装置。In an eleventh aspect, a communication system is provided, and the communication system includes the device described in any one of the above third aspects and the device described in any one of the above fourth aspects.
可以理解地,上述提供的任一种云手机的实现装置、电子设备、计算机可读存储介质、计算机程序产品或通信系统,均可以通过上文所提供的对应的方法来实现,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。It can be understood that any implementation device, electronic device, computer-readable storage medium, computer program product, or communication system of any cloud phone provided above can be realized by the corresponding method provided above. Therefore, the above-mentioned For the beneficial effects that can be achieved, reference can be made to the beneficial effects in the corresponding methods provided above, which will not be repeated here.
附图说明Description of drawings
图1为本申请实施例提供的一种通信系统的架构图;FIG. 1 is an architecture diagram of a communication system provided by an embodiment of the present application;
图2为本申请实施例提供的一种视频流云手机实现方式的示意图;FIG. 2 is a schematic diagram of an implementation of a video streaming cloud mobile phone provided by an embodiment of the present application;
图3为本申请实施例提供的一种指令流云手机实现方式的示意图;FIG. 3 is a schematic diagram of an implementation of an instruction flow cloud mobile phone provided by an embodiment of the present application;
图4为本申请实施例提供的一种电子设备的硬件结构示意图;FIG. 4 is a schematic diagram of a hardware structure of an electronic device provided in an embodiment of the present application;
图5为本申请实施例提供的一种电子设备的软件结构示意图;FIG. 5 is a schematic diagram of a software structure of an electronic device provided in an embodiment of the present application;
图6为本申请实施例提供的一种云手机的实现方法流程示意图;FIG. 6 is a schematic flowchart of a method for implementing a cloud mobile phone provided by an embodiment of the present application;
图7为本申请实施例提供的一种云手机的实现方法的执行模块及执行流程示意图;FIG. 7 is a schematic diagram of an execution module and an execution flow of an implementation method of a cloud mobile phone provided by an embodiment of the present application;
图8为本申请实施例提供的一种云手机包括的切换策略示意图;FIG. 8 is a schematic diagram of a switching strategy included in a cloud mobile phone provided by an embodiment of the present application;
图9、图10为本申请实施例提供的一种云手机实现方法流程示意图一和图二;Fig. 9 and Fig. 10 are schematic flow diagrams 1 and 2 of a cloud mobile phone implementation method provided by the embodiment of the present application;
图11为本申请实施例提供的一种云手机实现装置的结构示意图;FIG. 11 is a schematic structural diagram of a device for realizing a cloud mobile phone provided by an embodiment of the present application;
图12为本申请实施例提供的另一种云手机实现装置的结构示意图。FIG. 12 is a schematic structural diagram of another device for implementing a cloud mobile phone provided by an embodiment of the present application.
具体实施方式Detailed ways
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。Hereinafter, the terms "first" and "second" are used for descriptive purposes only, and cannot be understood as indicating or implying relative importance or implicitly specifying the quantity of indicated technical features. Thus, a feature defined as "first" and "second" may explicitly or implicitly include one or more of these features. In the description of this embodiment, unless otherwise specified, "plurality" means two or more.
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。It should be noted that, in this application, words such as "exemplary" or "for example" are used as examples, illustrations or illustrations. Any embodiment or design described herein as "exemplary" or "for example" is not to be construed as preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "such as" is intended to present related concepts in a concrete manner.
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。The following will clearly and completely describe the technical solutions in the embodiments of the application with reference to the drawings in the embodiments of the application. Apparently, the described embodiments are only some of the embodiments of the application, not all of them. Based on the embodiments in this application, all other embodiments obtained by persons of ordinary skill in the art without making creative efforts belong to the scope of protection of this application.
首先,对本申请实施例的实施环境和应用场景进行简单介绍。First, the implementation environment and application scenarios of the embodiments of the present application are briefly introduced.
本申请应用于如图1所示的通信系统,该通信系统100可以包括服务器101和终端设备102,其中,服务器101可以为云手机的数据处理中心即云服务器,服务器101上安装和运行至少一个云手机。This application is applied to the communication system shown in Figure 1. The communication system 100 may include a server 101 and a terminal device 102, wherein the server 101 may be a data processing center of a cloud mobile phone, that is, a cloud server, and at least one Cloud phone.
云手机部署在服务器101上,云手机上运行的操作系统可以是原生安卓(Android)操作系统或者定制的Android兼容系统等,并提供Android运行环境。另外,云手机上还可以安装多个应用程序(Application,APP),例如,游戏、视频播放APP、办公类APP或者其他可以安装到Android操作系统的应用程序。The cloud mobile phone is deployed on the server 101, and the operating system running on the cloud mobile phone can be a native Android (Android) operating system or a customized Android compatible system, etc., and an Android operating environment is provided. In addition, multiple applications (Applications, APPs) can also be installed on the cloud mobile phone, for example, games, video playing APPs, office APPs or other applications that can be installed on the Android operating system.
终端设备102可以通过网络连接远程控制服务器101上部署的云手机,并实时显示云手机的画面。例如,用户通过终端设备102启动云手机,打开云手机上安装的某一应用程序,例如视频播放APP,选择其中一个视频进行播放,终端设备102上实时显示云手机上运行的该视频播放APP的画面。The terminal device 102 can remotely control the cloud mobile phone deployed on the server 101 through a network connection, and display the image of the cloud mobile phone in real time. For example, the user starts the cloud mobile phone through the terminal device 102, opens a certain application program installed on the cloud mobile phone, such as a video playback APP, selects one of the videos to play, and the terminal device 102 displays in real time the content of the video playback APP running on the cloud mobile phone. screen.
其中,终端设备具体可以是智能手机、智能摄像头、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、车载设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)、虚拟现实(virtual reality,VR)以及可穿戴设备等。Wherein, the terminal device specifically may be a smart phone, a smart camera, a tablet computer, a desktop, a laptop, a handheld computer, a notebook computer, a vehicle-mounted device, an ultra-mobile personal computer (UMPC), a netbook, and a cellular phone. Phones, personal digital assistants (PDAs), augmented reality (augmented reality, AR), virtual reality (virtual reality, VR) and wearable devices.
需要说明的是,在本申请的实施例中,仅将终端设备为智能手机作为示例对本申请方案进行详细介绍。为区分云手机以及远程控制云手机的物理设备,本申请中将实现远程控制的终端设备称为物理手机,其并不对本申请的保护范围构成一定限制。It should be noted that, in the embodiments of the present application, the solution of the present application is described in detail by taking the terminal device as an example of a smart phone. In order to distinguish the cloud phone from the physical device that remotely controls the cloud phone, the terminal device that realizes remote control is referred to as a physical phone in this application, which does not limit the scope of protection of this application.
目前,物理手机远程接入云手机的方式包括视频流接入方式,如图2所示,云手 机部署在云服务上,云手机上包括至少一个APP、显卡驱动、显卡以及视频流处理模块。其中,视频流处理模块可以安装在云手机的安卓操作系统上,也可以安装在云服务器上的操作系统上。At present, the remote access methods of physical mobile phones to cloud mobile phones include video stream access methods. As shown in Figure 2, cloud mobile phones are deployed on cloud services, and cloud mobile phones include at least one APP, graphics card driver, graphics card, and video stream processing module. Wherein, the video stream processing module can be installed on the Android operating system of the cloud mobile phone, or can be installed on the operating system on the cloud server.
其中,视频流处理模块具体可以是软件实现的模块,还可以称为视频流引擎。进一步的,安装在云手机上的视频流处理模块可以称为视频流引擎服务端,安装在终端设备如物理手机上的视频流处理模块可以称为视频流引擎客户端。Wherein, the video stream processing module may specifically be a module implemented by software, and may also be called a video stream engine. Furthermore, the video stream processing module installed on the cloud mobile phone may be called a video stream engine server, and the video stream processing module installed on a terminal device such as a physical mobile phone may be called a video stream engine client.
云手机上运行某一APP,该APP基于Android的图形库完成界面显示的开发。其中,Android支持的图形库包括OpenGL ES、Vukan以及其他的图形库。示例性的,Android图形库调用显卡驱动接口OpenGL ES应用程序编程接口(Application Programming Interface,API),完成图形的渲染出图。An APP runs on the cloud phone, and the APP completes the development of the interface display based on the Android graphics library. Among them, the graphics libraries supported by Android include OpenGL ES, Vukan and other graphics libraries. Exemplarily, the Android graphics library calls the graphics card driver interface OpenGL ES application programming interface (Application Programming Interface, API) to complete the rendering of graphics.
视频流处理模块通过显卡驱动接口或者Android接口,持续捕获APP的每一帧图像,例如可以是RGB,YUV或其他格式的图片流,并将捕获的每一帧图像(即图片流)送入编码服务,编码服务将每一帧图像进行编码压缩转变为视频流并将视频码流通过网络传送给物理手机。示例性的,视频流可以为H.264码流、H.265码流、或者其他公开或者自定义的码流等。The video stream processing module continuously captures each frame of image of the APP through the graphics card driver interface or the Android interface, for example, it can be an image stream in RGB, YUV or other formats, and sends each frame of captured image (that is, the image stream) to the encoding Service, the encoding service encodes and compresses each frame of image into a video stream and transmits the video stream to the physical mobile phone through the network. Exemplarily, the video stream may be an H.264 code stream, an H.265 code stream, or other public or custom code streams.
其中,编码服务可能是软件编码器,如Open264或x264等;还可以是硬件编码器,如各类视频编码卡;或者还可以是云端编码服务,例如通过公有云的API接口提供编码服务。Among them, the encoding service may be a software encoder, such as Open264 or x264, etc.; it may also be a hardware encoder, such as various video encoding cards; or it may be a cloud encoding service, such as providing an encoding service through an API interface of a public cloud.
物理手机上的视频流处理模块对接收到的视频码流进行解码,得到持续的图片流,如RGB、YUV或其他格式的图片流,即可以在物理手机的显示屏上显示每一帧图像。The video stream processing module on the physical mobile phone decodes the received video code stream to obtain a continuous image stream, such as RGB, YUV or other format image streams, which can display each frame of image on the display screen of the physical mobile phone.
上述的视频流渲染方式适用于画面质量较低(即分辨率较低)的显示场景,例如720P视,即画面分辨率为1080*720,视频的帧率为30fps,即每秒显示30帧图像。若实时显示画面分辨率为1920*1080或者更高,则传输的视频码流数据包较大,会产生较高的传输成本以及对于网络带宽的较大占用,物理手机上实时显示画面的跟手时延也会较长,若网络状态较差,可能还会出现丢包或者卡顿的现象。The above-mentioned video stream rendering method is suitable for display scenarios with low image quality (that is, low resolution), such as 720P video, that is, the image resolution is 1080*720, and the frame rate of the video is 30fps, that is, 30 frames of images are displayed per second. . If the resolution of the real-time display screen is 1920*1080 or higher, the transmitted video stream data packets will be larger, which will result in higher transmission costs and a larger occupation of network bandwidth. The delay will also be longer, and if the network status is poor, there may be packet loss or freezing.
另外,物理手机远程接入云手机的方式还可以为指令流接入方式,如图3所示,云手机部署在云服务上,云手机上包括至少一个APP以及指令流处理模块。其中,指令流处理模块可以安装在云手机的安卓操作系统上,也可以安装在云服务器上的操作系统上。In addition, the remote access method of the physical mobile phone to the cloud mobile phone can also be an instruction stream access method. As shown in Figure 3, the cloud mobile phone is deployed on the cloud service, and the cloud mobile phone includes at least one APP and an instruction stream processing module. Wherein, the instruction stream processing module can be installed on the Android operating system of the cloud mobile phone, or can be installed on the operating system on the cloud server.
其中,指令流处理模块具体可以是软件实现的模块,还可以称为指令流引擎。进一步的,安装在云手机上的指令流处理模块可以称为指令流引擎服务端,安装在终端设备如物理手机上的指令流处理模块可以称为指令流引擎客户端。Wherein, the instruction stream processing module may specifically be a module implemented by software, and may also be called an instruction stream engine. Furthermore, the instruction stream processing module installed on the cloud mobile phone may be called an instruction stream engine server, and the instruction stream processing module installed on a terminal device such as a physical mobile phone may be called an instruction stream engine client.
云手机上运行某一APP,该APP基于Android的图形库完成界面显示的开发。An APP runs on the cloud phone, and the APP completes the development of the interface display based on the Android graphics library.
指令流处理模块接管图形库的接口调用,接口调用可以包括函数调用以及其中的参数等,指令流处理模块将接口调用编码成渲染指令流(即二进制数据流),通过网络将渲染指令流传送到物理手机。The instruction stream processing module takes over the interface calls of the graphics library. The interface calls may include function calls and parameters therein. The instruction stream processing module encodes the interface calls into rendering instruction streams (ie, binary data streams), and sends the rendering instruction streams to physical phone.
物理手机上的指令流处理模块可以将接收到的渲染指令流进行解码,还原成对图形库的接口调用,并调用物理手机的显卡驱动,显卡根据渲染指令完成渲染出图。例如物理手机的显卡集成有图形处理器(Graphics Processing Unit,GPU),调用GPU驱 动,物理手机的GPU根据渲染指令完成图形渲染,投送上物理手机的显示屏。The command stream processing module on the physical mobile phone can decode the received rendering command stream, restore it to an interface call to the graphics library, and call the graphics card driver of the physical mobile phone, and the graphics card can complete the rendering according to the rendering command. For example, the graphics card of a physical mobile phone is integrated with a Graphics Processing Unit (GPU), which invokes the GPU driver, and the GPU of the physical mobile phone completes graphics rendering according to rendering instructions, and projects them on the display screen of the physical mobile phone.
上述的指令流渲染方式,云手机与物理手机之间传输的是编码后的渲染指令流,可以适用于画面质量较高(即分辨率较高)的显示场景,即支持超高清画质,并且与视频流渲染方式相比跟手时延较小,适用于与用户交互较频繁的应用场景,对于中小型应用所消耗的流量较低。但是,对于与用户交互较频繁的应用场景,云手机实时生成的渲染指令数据量较大,会产生较高的传输成本以及对于网络带宽的较大占用。另外,由于指令流渲染方式对于丢包的容忍度较小,当网络状态较差时,频繁丢包会造成渲染指令流报文频繁重传,从而导致画面卡顿严重,影响用户体验。In the above instruction stream rendering method, the encoded rendering instruction stream is transmitted between the cloud mobile phone and the physical mobile phone, which can be applied to display scenes with high picture quality (that is, high resolution), that is, ultra-high-definition image quality is supported, and Compared with the video streaming rendering method, the follow-up delay is smaller, and it is suitable for application scenarios with frequent user interactions, and consumes less traffic for small and medium-sized applications. However, for application scenarios with frequent interactions with users, the real-time rendering instruction data generated by the cloud mobile phone is large, which will result in high transmission costs and a large occupation of network bandwidth. In addition, because the command stream rendering method has a small tolerance for packet loss, when the network status is poor, frequent packet loss will cause frequent retransmission of rendering command stream packets, resulting in serious screen freezes and affecting user experience.
综上所述,指令流渲染方式和视频流渲染方式都只适用部分场景,不管云手机上应用的是哪种渲染方式,用户都无法在所有场景下得到较优的体验。To sum up, the command stream rendering method and the video stream rendering method are only applicable to some scenarios. No matter which rendering method is applied on the cloud phone, users cannot get a better experience in all scenarios.
本申请实施例提供一种云手机的实现方法及装置,通过在云手机和物理手机上都部署有视频流处理模块以及指令流处理模块,从而可以在物理手机远程开启云手机时,云手机可以根据策略选择视频流渲染方式或者指令流渲染方式进行图像渲染,可以根据实时状态进行不同渲染方式的平滑切换,并且用户无感知,提升云手机的使用体验。The embodiment of the present application provides a method and device for implementing a cloud mobile phone. By deploying a video stream processing module and an instruction stream processing module on both the cloud mobile phone and the physical mobile phone, when the physical mobile phone remotely starts the cloud mobile phone, the cloud mobile phone can According to the policy, the video stream rendering method or the instruction stream rendering method is selected for image rendering, and different rendering methods can be smoothly switched according to the real-time status, and the user has no perception, which improves the experience of using the cloud mobile phone.
本申请实施例可以应用于如图1所示的通信系统,本申请的实施例中对云服务器以及终端设备的具体形态不作特殊限制,下述的实施例仅以电子设备作为示例进行介绍。The embodiment of the present application can be applied to the communication system shown in FIG. 1 . In the embodiment of the present application, there are no special restrictions on the specific forms of the cloud server and the terminal device. The following embodiments only use electronic devices as examples for introduction.
需要说明的是,本申请实施例中云服务器或终端设备可采用图4所示的组成结构或者包括图4所示的部件。图4为本申请实施例提供的一种电子设备400的结构示意图,如:当该电子设备400具有本申请实施例所述的网络设备的功能时,该电子设备400可以为网络设备或者网络设备中的芯片或者芯片系统。当电子设备400具有本申请实施例所述的终端设备的功能时,电子设备400可以为终端设备或者终端设备中的芯片或者芯片系统。It should be noted that the cloud server or the terminal device in the embodiment of the present application may adopt the composition structure shown in FIG. 4 or include the components shown in FIG. 4 . FIG. 4 is a schematic structural diagram of an electronic device 400 provided by the embodiment of the present application. For example, when the electronic device 400 has the function of the network device described in the embodiment of the present application, the electronic device 400 can be a network device or a network device chip or system-on-a-chip. When the electronic device 400 has the function of the terminal device described in the embodiment of the present application, the electronic device 400 may be a terminal device or a chip or a chip system in the terminal device.
如图4所示,该电子设备400可以包括处理器401,通信线路402以及通信接口403。可选的,该电子设备400还可以包括存储器404。其中,处理器401,存储器404以及通信接口403之间可以通过通信线路402连接。As shown in FIG. 4 , the electronic device 400 may include a processor 401 , a communication line 402 and a communication interface 403 . Optionally, the electronic device 400 may further include a memory 404 . Wherein, the processor 401 , the memory 404 and the communication interface 403 may be connected through a communication line 402 .
其中,处理器401可以是中央处理器(central processing unit,CPU)、通用处理器网络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、微处理器、微控制器、可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器401还可以是其它具有处理功能的装置,如电路、器件或软件模块等。Wherein, the processor 401 may be a central processing unit (central processing unit, CPU), a general-purpose processor, a network processor (network processor, NP), a digital signal processor (digital signal processing, DSP), a microprocessor, a microcontroller , programmable logic device (programmable logic device, PLD) or any combination thereof. The processor 401 may also be other devices with processing functions, such as circuits, devices, or software modules.
通信线路402,用于在电子设备400所包括的各部件之间传送信息。The communication line 402 is used for transmitting information between the components included in the electronic device 400 .
通信接口403,用于与其他设备或其它通信网络进行通信。该其它通信网络可以为以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。通信接口403可以是射频模块或者任何能够实现通信的装置。本申请实施例仅以通信接口403为射频模块为例进行说明,其中,射频模块可以包括天线、射频电路等,射频电路可以包括射频集成芯片、功率放大器等。The communication interface 403 is used for communicating with other devices or other communication networks. The other communication network may be an Ethernet, a radio access network (radio access network, RAN), a wireless local area network (wireless local area networks, WLAN), and the like. The communication interface 403 may be a radio frequency module or any device capable of realizing communication. This embodiment of the present application is described only by taking the communication interface 403 as an example of a radio frequency module, where the radio frequency module may include an antenna, a radio frequency circuit, etc., and the radio frequency circuit may include a radio frequency integrated chip, a power amplifier, and the like.
存储器404,用于存储指令。其中,指令可以是计算机程序。The memory 404 is used for storing instructions. Wherein, the instruction may be a computer program.
其中,存储器404可以是只读存储器(read-only memory,ROM)或可存储静态 信息和/或指令的其他类型的静态存储设备,也可以是随机存取存储器(random access memory,RAM)或者可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储、磁盘存储介质或其他磁存储设备,光碟存储包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等。Wherein, the memory 404 may be a read-only memory (read-only memory, ROM) or other types of static storage devices capable of storing static information and/or instructions, or may be a random access memory (random access memory, RAM) or may Other types of dynamic storage devices that store information and/or instructions can also be electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD- ROM) or other optical disc storage, optical disc storage, magnetic disk storage media, or other magnetic storage devices, including compact discs, laser discs, compact discs, digital versatile discs, Blu-ray discs, etc.
需要说明的是,存储器404可以独立于处理器401存在,也可以和处理器401集成在一起。存储器404可以用于存储指令或者程序代码或者一些数据等。存储器404可以位于电子设备400内,也可以位于电子设备400外,不予限制。处理器401,用于执行存储器404中存储的指令,以实现本申请下述实施例提供的通信方法。It should be noted that the memory 404 may exist independently of the processor 401 or may be integrated with the processor 401 . The memory 404 can be used to store instructions or program codes or some data, etc. The memory 404 may be located inside the electronic device 400 or outside the electronic device 400, without limitation. The processor 401 is configured to execute instructions stored in the memory 404, so as to implement the communication method provided by the following embodiments of the present application.
或者,可选的,本申请实施例中,也可以是处理器401执行本申请下述实施例提供的通信方法中的处理相关的功能,通信接口403负责与其他设备或通信网络通信,本申请实施例对此不作具体限定。Or, optionally, in the embodiment of the present application, the processor 401 may also perform processing-related functions in the communication method provided in the following embodiments of the present application, and the communication interface 403 is responsible for communicating with other devices or communication networks. The embodiment does not specifically limit this.
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。Optionally, the computer-executed instructions in the embodiments of the present application may also be referred to as application program codes, which is not specifically limited in the embodiments of the present application.
在一种示例中,处理器401可以包括一个或多个CPU,例如图4中的CPU0和CPU1。In an example, the processor 401 may include one or more CPUs, such as CPU0 and CPU1 in FIG. 4 .
作为一种可选的实现方式,电子设备400包括多个处理器,例如,除图4中的处理器401之外,还可以包括处理器406。As an optional implementation manner, the electronic device 400 includes multiple processors, for example, in addition to the processor 401 in FIG. 4 , it may further include a processor 406 .
作为一种可选的实现方式,电子设备400还包括输出设备405和输入设备407。示例性地,输入设备407是键盘、鼠标、麦克风或操作杆等设备,输出设备406是显示屏、扬声器(speaker)等设备。As an optional implementation manner, the electronic device 400 further includes an output device 405 and an input device 407 . Exemplarily, the input device 407 is a device such as a keyboard, a mouse, a microphone, or a joystick, and the output device 406 is a device such as a display screen and a speaker (speaker).
需要说明的是,电子设备400可以是有图4中类似结构的设备或芯片系统。此外,图4中示出的组成结构并不构成对该电子设备的限定,除图4所示部件之外,该电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。It should be noted that the electronic device 400 may be a device or a chip system having a structure similar to that shown in FIG. 4 . In addition, the composition structure shown in FIG. 4 does not constitute a limitation to the electronic device. In addition to the components shown in FIG. 4, the electronic device may include more or less components than those shown in the illustration, or combine certain components , or different component arrangements.
本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。In the embodiment of the present application, the system-on-a-chip may be composed of chips, or may include chips and other discrete devices.
下面结合图4所示电子设备,对本申请实施例提供的方法进行描述。其中,下述实施例中的电子设备可以具有图4所示部件。其中,本申请各实施例之间涉及的动作,术语等均可以相互参考,不予限制。本申请的实施例中各个设备之间交互的消息名称或消息中的参数名称等只是一个示例,具体实现中也可以采用其他的名称,不予限制。The method provided by the embodiment of the present application will be described below with reference to the electronic device shown in FIG. 4 . Wherein, the electronic equipment in the following embodiments may have the components shown in FIG. 4 . The actions and terms involved in the various embodiments of the present application may refer to each other without limitation. In the embodiment of the present application, the names of messages exchanged between various devices or the names of parameters in messages are just examples, and other names may also be used in specific implementations, which are not limited.
以下实施例中所涉及的技术方案均可以在具有上述硬件架构的电子设备中实现。The technical solutions involved in the following embodiments can all be implemented in electronic devices with the above hardware architecture.
另外,上述的云服务器上部署的云手机的软件系统可以为原生安卓系统或者定制的安卓兼容系统。终端设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。例如,物理手机的操作系统可以为安卓Android、ios、塞班、鸿蒙Harmony或者其他终端操作系统等,本申请实施例仅以分层架构的Android系统为例,示例性说明电子设备的软件结构,下述示意的软件架构并不构成对电子设备的具体限定。In addition, the software system of the cloud mobile phone deployed on the above cloud server can be a native Android system or a customized Android compatible system. The software system of the terminal device may adopt a layered architecture, an event-driven architecture, a micro-kernel architecture, a micro-service architecture, or a cloud architecture. For example, the operating system of the physical mobile phone can be Android, ios, Symbian, Hongmeng Harmony or other terminal operating systems, etc. The embodiment of the present application only uses the Android system with a layered architecture as an example to illustrate the software structure of the electronic device. The software architecture shown below does not constitute a specific limitation on the electronic device.
图5是本申请实施例的电子设备的软件结构图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为三层,从上至下分别为应用程序层,应用程序框架层(framework), 以及内核层。FIG. 5 is a software structure diagram of an electronic device according to an embodiment of the present application. The layered architecture divides the software into several layers, and each layer has a clear role and division of labor. Layers communicate through software interfaces. In some embodiments, the Android system is divided into three layers, which are application program layer, application program framework layer (framework), and kernel layer from top to bottom.
电子设备400的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备400的软件结构。The software system of the electronic device 400 may adopt a layered architecture, an event-driven architecture, a micro-kernel architecture, a micro-service architecture, or a cloud architecture. In the embodiment of the present invention, the software structure of the electronic device 400 is illustrated by taking the Android system with a layered architecture as an example.
图5是本发明实施例的电子设备400的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。FIG. 5 is a block diagram of a software structure of an electronic device 400 according to an embodiment of the present invention. The layered architecture divides the software into several layers, and each layer has a clear role and division of labor. Layers communicate through software interfaces. In some embodiments, the Android system is divided into four layers, which are respectively the application program layer, the application program framework layer, Android runtime (Android runtime) and system library, and the kernel layer from top to bottom.
应用程序层可以包括一系列应用程序包。如图5所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。The application layer can consist of a series of application packages. As shown in FIG. 5, the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, and short message.
应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。The application framework layer provides an application programming interface (application programming interface, API) and a programming framework for applications in the application layer. The application framework layer includes some predefined functions.
如图5所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。As shown in Figure 5, the application framework layer can include window managers, content providers, view systems, phone managers, resource managers, notification managers, and so on.
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。A window manager is used to manage window programs. The window manager can get the size of the display screen, determine whether there is a status bar, lock the screen, capture the screen, etc.
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。Content providers are used to store and retrieve data and make it accessible to applications. Said data may include video, images, audio, calls made and received, browsing history and bookmarks, phonebook, etc.
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。The view system includes visual controls, such as controls for displaying text, controls for displaying pictures, and so on. The view system can be used to build applications. A display interface can consist of one or more views. For example, a display interface including a text message notification icon may include a view for displaying text and a view for displaying pictures.
电话管理器用于提供电子设备400的通信功能。例如通话状态的管理(包括接通,挂断等)。The phone manager is used to provide communication functions of the electronic device 400 . For example, the management of call status (including connected, hung up, etc.).
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。The resource manager provides various resources for the application, such as localized strings, icons, pictures, layout files, video files, and so on.
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。The notification manager enables the application to display notification information in the status bar, which can be used to convey notification-type messages, and can automatically disappear after a short stay without user interaction. For example, the notification manager is used to notify the download completion, message reminder, etc. The notification manager can also be a notification that appears on the top status bar of the system in the form of a chart or scroll bar text, such as a notification of an application running in the background, or a notification that appears on the screen in the form of a dialog window. For example, prompting text information in the status bar, issuing a prompt sound, vibrating the electronic device, and flashing the indicator light, etc.
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。Android Runtime includes core library and virtual machine. The Android runtime is responsible for the scheduling and management of the Android system. The core library consists of two parts: one part is the function function that the java language needs to call, and the other part is the core library of Android.
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。The application layer and the application framework layer run in virtual machines. The virtual machine executes the java files of the application program layer and the application program framework layer as binary files. The virtual machine is used to perform functions such as object life cycle management, stack management, thread management, security and exception management, and garbage collection.
系统库可以包括多个功能模块。例如:表面管理器(surface manage),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。A system library can include multiple function modules. For example: surface manager (surface manage), media library (Media Libraries), 3D graphics processing library (eg: OpenGL ES), 2D graphics engine (eg: SGL), etc.
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图 层的融合。The surface manager is used to manage the display subsystem and provides the fusion of 2D and 3D layers for multiple applications.
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4、H.264、MP3、AAC、AMR、JPG或PNG等。The media library supports playback and recording of various commonly used audio and video formats, as well as still image files, etc. The media library can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG or PNG, etc.
三维图形处理库用于实现三维图形绘图、图像渲染、合成、和图层处理等。2D图形引擎是2D绘图的绘图引擎。The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing, and layer processing, etc. 2D graphics engine is a drawing engine for 2D drawing.
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。The kernel layer is the layer between hardware and software. The kernel layer includes at least a display driver, a camera driver, an audio driver, and a sensor driver.
以下实施例中的方法均可以在具有上述图4所述的硬件结构和图5所示的软件结构的电子设备400中实现。接下来,将结合上述图4和图5,对本申请实施例提供的方法进行详细介绍。本申请的以下实施例仅以电子设备为物理手机作为示例,进行详细说明。The methods in the following embodiments can all be implemented in the electronic device 400 having the hardware structure shown in FIG. 4 and the software structure shown in FIG. 5 . Next, the method provided by the embodiment of the present application will be described in detail with reference to the foregoing FIG. 4 and FIG. 5 . The following embodiments of the present application are described in detail by taking the electronic device as a physical mobile phone as an example.
本申请实施例提供一种云手机的实现方法,可以应用于云服务器以及终端设备之间交互,示例性的,下述实施例中仅以物理手机作为示例进行详细说明。如图6所示,该方法包括如下步骤。The embodiment of the present application provides a method for implementing a cloud mobile phone, which can be applied to the interaction between a cloud server and a terminal device. For example, the following embodiments only use a physical mobile phone as an example for detailed description. As shown in Fig. 6, the method includes the following steps.
601:云服务器向终端设备发送第一数据流。601: The cloud server sends the first data stream to the terminal device.
其中,云服务器上部署有云手机,云手机运行的是原生安卓系统或者定制的安卓兼容系统。并且,云服务器安装有指令流处理模块和视频流处理模块,或者,云手机安装有指令流处理模块和视频流处理模块,用于实现指令流接入和视频流接入这两种云手机的访问和控制方式。Among them, a cloud mobile phone is deployed on the cloud server, and the cloud mobile phone runs a native Android system or a customized Android compatible system. In addition, the cloud server is equipped with an instruction stream processing module and a video stream processing module, or the cloud mobile phone is equipped with an instruction stream processing module and a video stream processing module, which are used to realize the connection between the instruction stream access and the video stream access. means of access and control.
在一种实施方式中,云服务器响应于终端设备访问或者控制云手机的指令,通过第一处理模块向终端设备发送第一数据流。其中,云手机的初始接入方式可以默认设置为指令流处理模块,或者设置为视频流处理模块。或者,可以根据用户的指示,确定云手机的初始接入方式为指令流处理模块和视频流处理模块。In one embodiment, the cloud server sends the first data stream to the terminal device through the first processing module in response to an instruction of the terminal device to access or control the cloud mobile phone. Wherein, the initial access mode of the cloud mobile phone can be set as an instruction stream processing module by default, or as a video stream processing module. Alternatively, according to the user's instruction, it may be determined that the initial access mode of the cloud mobile phone is an instruction stream processing module and a video stream processing module.
进一步的,若第一处理模块为视频流处理模块,则第一数据流为视频流;若第一处理模块为指令流处理模块,则第一数据流为渲染指令流。其中,第一处理模块对应于第一处理方式,即前述的根据视频流进行图像显示的云手机实现方式;第二处理模块对应于第二处理方式,即前述的根据渲染指令流实现图像渲染以及图像显示的云手机实现方式。Further, if the first processing module is a video stream processing module, then the first data stream is a video stream; if the first processing module is an instruction stream processing module, then the first data stream is a rendering instruction stream. Among them, the first processing module corresponds to the first processing method, that is, the aforementioned implementation of cloud mobile phone image display based on video stream; the second processing module corresponds to the second processing method, that is, the aforementioned implementation of image rendering according to the rendering instruction stream and The image shows the cloud phone implementation.
602:终端设备根据第一数据流进行图像显示。602: The terminal device displays an image according to the first data stream.
终端设备接收到第一数据流之后,可以根据第一数据流进行图像显示。其中,第一数据流是视频流或者第一数据流是渲染指令流,其图像显示的具体处理方式不同。After receiving the first data stream, the terminal device may display images according to the first data stream. Wherein, the first data stream is a video stream or the first data stream is a rendering instruction stream, and the specific processing manners of image display are different.
在一种实施方式中,若第一数据流为视频流,则终端设备根据第一数据流进行图像显示,结合图7所示,具体可以包括:In one embodiment, if the first data stream is a video stream, the terminal device performs image display according to the first data stream, as shown in FIG. 7 , specifically may include:
1、终端设备将第一数据流解码为原始视频流。1. The terminal device decodes the first data stream into an original video stream.
2、终端设备根据原始视频流中的每一帧图像依次进行上屏显示。2. The terminal device sequentially displays each frame of image in the original video stream on the screen.
在另一种实施方式中,若第一数据流为渲染指令流,则终端设备根据第一数据流进行图像显示,结合图7所示,具体可以包括:In another implementation manner, if the first data stream is a rendering instruction stream, the terminal device performs image display according to the first data stream, as shown in FIG. 7 , specifically may include:
1、终端设备将第一数据流解码为渲染指令。1. The terminal device decodes the first data stream into a rendering instruction.
2、终端设备依次根据渲染指令进行图像渲染,得到一帧帧图像。2. The terminal device sequentially performs image rendering according to the rendering instructions to obtain a frame of images.
3、终端设备依次将每一帧图像进行上屏显示。3. The terminal device sequentially displays each frame of image on the screen.
需要说明的是,在本申请实施例的执行过程中,例如上述的步骤601或602的执行过程中,用户可能会随时在终端设备(如物理手机)上点击或对云手机发起控制操作,例如,点击打开视频播放APP,点击快进图标,点击关闭购物APP等操作。则云手机会实时响应于用户的操作指令,并更新或者实时生成云手机的显示图像,并将编码后的视频流传输至终端设备。从而终端设备上可以实时显示云手机的显示图像,实现远程控制。另外,在上述的步骤601或602之前或者执行过程中,可能用户点击打开某一视频进行播放之后,没有再做其他控制操作,此时,云手机也可以将该视频的实时显示图像进行编码后传输至终端设备。从而终端设备上可以实时显示云手机的显示图像,实现远程播放。本申请对具体的控制操作或者指令没有限制。It should be noted that during the execution of the embodiment of the present application, for example, during the execution of the above-mentioned step 601 or 602, the user may click on the terminal device (such as a physical mobile phone) or initiate a control operation on the cloud mobile phone at any time, such as , click to open the video playback app, click the fast forward icon, click to close the shopping app, etc. Then the cloud mobile phone will respond to the user's operation instruction in real time, and update or generate the display image of the cloud mobile phone in real time, and transmit the encoded video stream to the terminal device. Therefore, the display image of the cloud mobile phone can be displayed on the terminal device in real time, and remote control can be realized. In addition, before or during the above step 601 or 602, the user may not perform other control operations after clicking to open a certain video to play. At this time, the cloud mobile phone may also encode the real-time display image of the video. transmitted to the terminal device. Therefore, the display image of the cloud mobile phone can be displayed on the terminal device in real time, realizing remote playback. The present application has no limitation on specific control operations or instructions.
603:云服务器确定当前运行状态满足切换条件,启动第二处理模块并向终端设备发送切换指令。603: The cloud server determines that the current running state satisfies the switching condition, starts the second processing module, and sends a switching instruction to the terminal device.
其中,第一处理模块为指令流处理模块且第二处理模块为视频流处理模块,或者,第一处理模块为视频流处理模块且第二处理模块为指令流处理模块。Wherein, the first processing module is an instruction stream processing module and the second processing module is a video stream processing module, or, the first processing module is a video stream processing module and the second processing module is an instruction stream processing module.
切换指令用于指示进行视频流处理模块与指令流处理模块之间的切换。例如,当第一处理模块为指令流处理模块时,所述切换指令用于指示切换至视频流处理模块。当第一处理模块为视频流处理模块时,所述切换指令用于指示切换至指令流处理模块。The switching instruction is used to instruct switching between the video stream processing module and the instruction stream processing module. For example, when the first processing module is an instruction stream processing module, the switching instruction is used to instruct switching to a video stream processing module. When the first processing module is a video stream processing module, the switching instruction is used to instruct switching to the instruction stream processing module.
在一种实施方式中,云服务器确定当前运行状态满足切换条件,具体可以包括以下至少一项:In one embodiment, the cloud server determines that the current running state meets the switching condition, which may specifically include at least one of the following:
确定当前网络状态参数满足预设条件;或者,确定当前显示图像的分辨率满足预设条件;或者,确定当前运行的应用程序的类型满足预设条件;或者,确定当前运行的应用程序的带宽需求满足预设条件;或者,确定终端设备的数据处理能力满足预设条件,。Determine that the current network status parameters meet the preset conditions; or, determine that the resolution of the currently displayed image meets the preset conditions; or, determine that the type of the currently running application meets the preset conditions; or, determine the bandwidth requirements of the currently running application Satisfying the preset condition; or, determining that the data processing capability of the terminal device satisfies the preset condition.
具体的,网络状态参数包括丢包率、可用带宽或者时延等中的至少一项。Specifically, the network status parameter includes at least one of packet loss rate, available bandwidth, or delay.
示例性的,云服务器确定当前网络状态参数满足预设条件具体可以包括:云服务器确定当前的丢包率大于或者等于预设阈值(如第一阈值),则云服务器确定网络状态不佳,满足由指令流处理模块切换至视频流处理模块的条件,为避免指令流处理方式下频繁丢包造成的显示卡顿等问题,云服务器可以确定由指令流处理方式切换至视频流处理方式。Exemplarily, the cloud server determines that the current network state parameter meets the preset condition may specifically include: the cloud server determines that the current packet loss rate is greater than or equal to a preset threshold (such as the first threshold), then the cloud server determines that the network state is not good, and satisfies The conditions for switching from the command stream processing module to the video stream processing module. In order to avoid problems such as display freeze caused by frequent packet loss in the command stream processing mode, the cloud server can determine to switch from the command stream processing mode to the video stream processing mode.
或者,云服务器确定当前的可用带宽大于或者等于预设阈值(如第二阈值),则云服务器确定网络状态较好,满足由视频流处理模块切换至指令流处理模块的条件,则云服务器可以确定由视频流处理方式切换至指令流处理方式。Or, if the cloud server determines that the current available bandwidth is greater than or equal to a preset threshold (such as the second threshold), then the cloud server determines that the network status is better and satisfies the condition for switching from the video stream processing module to the instruction stream processing module, then the cloud server can Determine to switch from the video stream processing mode to the instruction stream processing mode.
或者,云服务器确定当前的传输时延大于或者等于预设阈值(如第三阈值),则云服务器确定网络状态较差,满足由指令流处理模块切换至视频流处理模块的条件,为避免指令流处理方式下时延过大造成的显示卡顿等问题,云服务器可以确定由指令流处理方式切换至视频流处理方式。Or, if the cloud server determines that the current transmission delay is greater than or equal to a preset threshold (such as the third threshold), then the cloud server determines that the network status is poor and satisfies the condition for switching from the instruction stream processing module to the video stream processing module. For problems such as display freeze caused by excessive delay in the stream processing mode, the cloud server can determine to switch from the command stream processing mode to the video stream processing mode.
在一种实施方式中,云服务器可以根据当前显示图像的分辨率是否满足预设条件,作为视频流处理模块与指令流处理模块之间自动切换的决策判断。示例性的,云服务 器确定当前显示图像的分辨率低于或者等于720P(即1080*720),则确定使用视频流处理模块;当前显示图像的分辨率高于或者等于1080P(即1920*1080),则确定使用指令流处理模块。In one embodiment, the cloud server may determine whether the resolution of the currently displayed image satisfies a preset condition as a decision to automatically switch between the video stream processing module and the instruction stream processing module. Exemplarily, the cloud server determines that the resolution of the currently displayed image is lower than or equal to 720P (ie 1080*720), then determines to use the video stream processing module; the resolution of the currently displayed image is higher than or equal to 1080P (ie 1920*1080) , it is determined to use the instruction stream processing module.
在一种实施方式中,云服务器可以根据当前运行的应用程序的类型或者应用程序的带宽需求是否满足预设条件,作为视频流处理模块与指令流处理模块之间自动切换的决策判断。In one embodiment, the cloud server can make a decision to automatically switch between the video stream processing module and the instruction stream processing module according to the type of the currently running application program or whether the bandwidth requirement of the application program meets a preset condition.
例如,云服务器确定当前运行的应用程序的类型为强交互类的游戏,或者其他强交互类型的应用程序,则确定使用指令流处理模块,可以确定由视频流处理模块切换至指令流处理模块。For example, when the cloud server determines that the type of the currently running application program is a game with strong interaction, or other application programs with strong interaction, it determines to use the instruction stream processing module, and may determine to switch from the video stream processing module to the instruction stream processing module.
例如,云服务器确定当前运行的应用程序对于指令流的带宽需求较小,该类型的APP对于指令流的带宽需求相较于视频流较小,例如,移动办公APP或者社交类APP,则确定使用指令流处理模块,可以确定由视频流处理模块切换至指令流处理模块。For example, the cloud server determines that the currently running application has relatively small bandwidth requirements for instruction streams, and this type of APP has relatively small bandwidth requirements for instruction streams compared to video streams. The instruction stream processing module may determine to switch from the video stream processing module to the instruction stream processing module.
例如,云服务器确定当前运行的应用程序对于视频流的带宽需求较小,该类型的APP对于视频流的带宽需求相较于指令流较小,例如,APP类型为大型3D游戏类,则确定使用视频流处理模块,可以确定由指令流处理模块切换至视频流处理模块。For example, the cloud server determines that the currently running application has relatively small bandwidth requirements for video streams, and this type of APP has relatively small bandwidth requirements for video streams compared to instruction streams. For example, if the APP type is a large-scale 3D game, it is determined to use The video stream processing module may determine to switch from the instruction stream processing module to the video stream processing module.
在一种实施方式中,云服务器还可以根据当前接入云手机的终端设备的数据处理能力、GPU处理能力或者设备兼容性等检测结果,作为视频流处理模块与指令流处理模块之间自动切换的决策判断。其中,终端设备的数据处理能力、GPU处理能力或者设备兼容性等检测结果可以是终端设备主动向云服务器上报的,或者,还可以是云服务向终端设备请求获取的。In one embodiment, the cloud server can also automatically switch between the video stream processing module and the instruction stream processing module according to the detection results such as the data processing capability, GPU processing capability, or device compatibility of the terminal device currently connected to the cloud mobile phone. decision-making judgment. The detection results such as data processing capability, GPU processing capability, or device compatibility of the terminal device may be actively reported by the terminal device to the cloud server, or may be obtained by the cloud service requesting the terminal device.
示例性的,当终端设备的GPU处理能力较弱时,云服务器可以确定使用视频流处理模块;当终端设备的GPU处理能力足够时,在切换至使用指令流处理模块。Exemplarily, when the GPU processing capability of the terminal device is weak, the cloud server may determine to use the video stream processing module; when the GPU processing capability of the terminal device is sufficient, switch to using the instruction stream processing module.
示例性的,对于异构非Android的终端设备,云服务器可以确定使用视频流处理模块。其中,异构非Android的终端设备是指该终端设备上安装的是非安卓的操作系统,例如iOS操作系统等。或者,异构非Android的终端设备是指该终端设备为非手机类型的终端设备,例如,终端设备为笔记本电脑,即用户通过笔记本电脑访问或者控制云手机的场景,则对于上述这几种异构非Android的终端设备,云服务器可以确定使用视频流处理模块完成云手机的实现。Exemplarily, for heterogeneous non-Android terminal devices, the cloud server may determine to use the video stream processing module. Wherein, the heterogeneous non-Android terminal device means that a non-Android operating system, such as an iOS operating system, is installed on the terminal device. Alternatively, a heterogeneous non-Android terminal device refers to a terminal device that is not a mobile phone type. For example, the terminal device is a notebook computer, that is, the user accesses or controls the cloud mobile phone through the notebook computer. For non-Android terminal devices, the cloud server can determine to use the video stream processing module to complete the realization of the cloud mobile phone.
在一种实施方式中,云服务器进行视频流处理模块与指令流处理模块之间自动切换的决策策略可以为上述示意的一种,或者可以为多种决策策略的结合,或者也可以是基于业务特征定制的其他决策策略等。In one embodiment, the decision strategy for the cloud server to automatically switch between the video stream processing module and the instruction stream processing module may be one of the above-mentioned ones, or may be a combination of multiple decision strategies, or may be based on business Other decision-making strategies for feature customization, etc.
结合图8所示,云服务器还可以包括切换策略控制模块,所述切换策略控制模块用于根据上述的反映当前运行状态的各种检测结果,根据预先配置的多种决策策略进行决策,确定运行视频流处理模块或者运行指令流处理模块,从而实现自动切换。示例性的,如图8所示,该云服务器的切换策略控制模块可以包括策略1至策略8。As shown in FIG. 8 , the cloud server may also include a switching strategy control module, which is used to make decisions according to various pre-configured decision-making strategies based on the above-mentioned various detection results reflecting the current running state, and determine the operation The video stream processing module or the operation instruction stream processing module realizes automatic switching. Exemplarily, as shown in FIG. 8 , the switching policy control module of the cloud server may include policies 1 to 8.
其中,多种决策策略之间可以设置不同的优先级,云服务器可以根据决策策略的优先级从高到底进行判断,直到确定满足其中任一切换条件时执行切换。进一步的,该云服务器的切换策略控制模块可以包括按照优先级排序的策略1至策略8。Among them, different priorities can be set among multiple decision-making strategies, and the cloud server can judge from high to low according to the priorities of the decision-making strategies until it is determined that any of the switching conditions is met to perform switching. Further, the switching policy control module of the cloud server may include policies 1 to 8 sorted by priority.
另外,云服务器进行视频流处理模块与指令流处理模块之间自动切换的决策策略 还可以支持用户自定义。即云服务器中进行自动切换的决策策略中支持用户自行添加、删除、修改或者调整多个策略的优先级等设置。从而提高了本申请中云手机实现方式切换的灵活性和准确性,增加与用户之间的良好交互,提升用户的使用体验。In addition, the cloud server's decision-making strategy for automatically switching between the video stream processing module and the instruction stream processing module can also support user-defined. That is, the decision-making policy for automatic switching in the cloud server supports users to add, delete, modify or adjust the priority settings of multiple policies by themselves. Thereby, the flexibility and accuracy of switching the implementation mode of the cloud mobile phone in this application are improved, good interaction with the user is increased, and user experience is improved.
604:终端设备接收切换指令,启动第二处理模块。604: The terminal device receives the switching instruction, and starts the second processing module.
终端设备接收到来自所述云服务器的切换指令之后,确定当前需要从第一处理模块切换至第二处理模块实现云手机接入方式的切换。因此,终端设备启动第二处理模块,进行图像显示的数据准备。After receiving the switching instruction from the cloud server, the terminal device determines that it needs to switch from the first processing module to the second processing module to realize the switching of the cloud mobile phone access mode. Therefore, the terminal device starts the second processing module to prepare data for image display.
在本申请的实施方式中,为了使得云手机的实现方式在第一处理方式以及第二处理方式之间的自动切换实现用户无感知的切换,即终端设备(即物理手机)上显示的图像平滑过渡,因此,终端设备需要在第一处理模块关闭之前,启动第二处理模块,并做好图像显示的数据准备工作,以便云服务上的第一处理模块关闭之后,终端设备可以实时根据云服务上启动的第二处理模块对于图像处理的数据流,进行图像处理以及显示。具体的实现方式将在下文详细描述,此处不再赘述。In the embodiment of the present application, in order to realize the automatic switching between the first processing method and the second processing method of the cloud mobile phone to realize the switching without the user's perception, that is, the image displayed on the terminal device (that is, the physical mobile phone) is smooth Transition, therefore, the terminal device needs to start the second processing module before the first processing module is closed, and prepare the data for image display, so that after the first processing module on the cloud service is closed, the terminal device can real-time according to the cloud service The second processing module started on above performs image processing and display on the image processing data stream. The specific implementation manner will be described in detail below, and will not be repeated here.
605:云服务器向终端设备发送第二数据流。605: The cloud server sends the second data stream to the terminal device.
在一种实现方式中,为了使得云手机的实现方式在第一处理方式以及第二处理方式之间的自动切换实现用户无感知切换,在步骤603之后,即云服务器启动第二处理模块之后,云服务器即向终端设备发送第二数据流。其中,第二数据流为视频流或者渲染指令流。当第二处理模块为视频流处理模块时,第二数据流为视频流;当第二处理模块为指令流处理模块时,第二数据流为渲染指令流。In one implementation, in order to realize the automatic switching between the first processing method and the second processing method of the cloud mobile phone to realize user-unaware switching, after step 603, that is, after the cloud server starts the second processing module, The cloud server sends the second data stream to the terminal device. Wherein, the second data stream is a video stream or a rendering instruction stream. When the second processing module is a video stream processing module, the second data stream is a video stream; when the second processing module is an instruction stream processing module, the second data stream is a rendering instruction stream.
606:终端设备根据第二数据流进行图像显示。606: The terminal device performs image display according to the second data stream.
在一种实现方式中,若第一处理模块为视频流处理模块,第二处理模块为指令流处理模块,则步骤603-606具体可以包括:云服务器根据当前运行的应用程序,确定切换至指令流处理模块,则云服务器启动指令流处理模块并向终端设备发送切换指令以及第二数据流,结合图9所示,则具体的切换处理过程可以包括:In one implementation, if the first processing module is a video stream processing module and the second processing module is an instruction stream processing module, steps 603-606 may specifically include: the cloud server determines to switch to the instruction stream according to the currently running application program. stream processing module, the cloud server starts the command stream processing module and sends the switching command and the second data stream to the terminal device, as shown in Figure 9, the specific switching process may include:
1、云服务器启动指令流处理模块,完成图形渲染状态机数据准备。1. The cloud server starts the instruction stream processing module to complete the data preparation of the graphics rendering state machine.
云服务器启动指令流处理模块之后,查询云服务器上的图形渲染状态机的实时快照数据,基于上述实时快照数据构造图形渲染状态机恢复消息包,向终端设备上的指令流处理模块发送所述图形渲染状态机恢复消息包,使得终端设备的指令流处理模块可以根据所述图形渲染状态机恢复消息包完成图形渲染状态机重建。After the cloud server starts the instruction flow processing module, query the real-time snapshot data of the graphics rendering state machine on the cloud server, construct the graphics rendering state machine recovery message packet based on the above real-time snapshot data, and send the graphics to the instruction flow processing module on the terminal device The rendering state machine restoration message packet enables the instruction stream processing module of the terminal device to complete the reconstruction of the graphics rendering state machine according to the graphics rendering state machine restoration message packet.
2、云服务器向终端设备发送切换至指令流处理模块的切换指令。2. The cloud server sends a switch command to the terminal device to switch to the command stream processing module.
终端设备根据切换指令启动指令流处理模块,指令流处理模块完成初始化,并根据云服务发送的图形渲染状态机恢复消息包重建本地图形渲染状态机。The terminal device starts the instruction flow processing module according to the switching instruction, the instruction flow processing module completes the initialization, and rebuilds the local graphics rendering state machine according to the graphics rendering state machine restoration message package sent by the cloud service.
3、云服务器上的指令流处理模块接管图形库接口调用,并持续向终端设备发送第二数据流,即渲染指令流。3. The command stream processing module on the cloud server takes over the call of the graphics library interface, and continuously sends the second data stream, that is, the rendering command stream, to the terminal device.
云服务器上的指令流处理模块(即指令流引擎服务端)接管安卓系统的图形库接口调用之后,指令流处理模块开始向终端设备上的指令流处理模块(即指令流引擎客户端)发送渲染指令流,以使得终端设备可以实现指令流引擎客户端根据渲染指令流进行渲染出图。After the command stream processing module on the cloud server (that is, the command stream engine server) takes over the graphics library interface call of the Android system, the command stream processing module starts to send the rendering to the command stream processing module on the terminal device (that is, the command stream engine client). Instruction stream, so that the terminal device can implement the instruction stream engine client to render the image according to the rendering instruction stream.
在一种实施方式中,云服务器向终端设备发送切换至指令流处理模块的可以为第 一切换指令,第一切换指令具体可以指示终端设备启动指令流处理模块(即指令流引擎客户端)。In one embodiment, the cloud server sends the terminal device to switch to the instruction stream processing module may be a first switching instruction, and the first switching instruction may specifically instruct the terminal device to start the instruction stream processing module (that is, the instruction stream engine client).
云服务器向终端设备发送第一切换指令之后,指令流引擎服务端向指令流引擎客户端发送若干帧渲染指令,例如,可以预配置为发送10帧渲染指令。After the cloud server sends the first switching instruction to the terminal device, the instruction stream engine server sends several frame rendering instructions to the instruction stream engine client, for example, it may be pre-configured to send 10 frame rendering instructions.
此时,指令流引擎客户端可以根据这若干帧渲染指令进行渲染出图,并与视频流引擎客户端进行帧同步,即实现指令流引擎客户端和视频流引擎客户端能够在同一时刻生成同一帧图像。At this time, the command stream engine client can render the image according to these frame rendering commands, and perform frame synchronization with the video stream engine client, that is, the command stream engine client and the video stream engine client can generate the same image at the same time. frame image.
当指令流引擎服务端向指令流引擎客户端发送若干帧渲染指令之后,云服务器再向终端设备发送第二切换指示,该第二切换指示完成视频流处理模块切换至指令流处理模块。或者,也可以是,当指令流引擎客户端已可以正常渲染出图并与视频流引擎客户端帧同步之后,终端设备向云服务发送切换完成指令,已指示云服务关闭视频流引擎服务端,完成视频流处理切换至指令流处理的流程。After the command stream engine server sends several frame rendering commands to the command stream engine client, the cloud server sends a second switching instruction to the terminal device, and the second switching instruction completes the switching from the video stream processing module to the command stream processing module. Or, it can also be that, after the command stream engine client can render images normally and synchronize with the frame of the video stream engine client, the terminal device sends a switching completion command to the cloud service, which has instructed the cloud service to shut down the video stream engine server, Complete the process of switching from video stream processing to instruction stream processing.
在本申请的上述实施例中,云服务器向终端设备发送的第一切换指令和第二切换指令可以称为切换指令序列,本申请对发送切换指令序列的时机不作具体限定,另外切换指令序列并不局限于第一切换指令和第二切换指令,可能还包括第三切换指令等,上述实施例仅为示例性描述,用于实现云手机实现方式的平滑切换,本申请对此不作具体限定。In the above embodiments of the present application, the first switching instruction and the second switching instruction sent by the cloud server to the terminal device may be referred to as a switching instruction sequence. This application does not specifically limit the timing of sending the switching instruction sequence. In addition, the switching instruction sequence does not It is not limited to the first switching instruction and the second switching instruction, and may also include the third switching instruction, etc. The above-mentioned embodiment is only an exemplary description, and is used to realize smooth switching of the cloud mobile phone implementation mode, which is not specifically limited in this application.
在一种实现方式中,若第一处理模块为视频流处理模块,所述切换指示用于指示从视频流处理模块切换至指令流处理模块,则终端设备接收来自云服务器的第二数据流,并根据第二数据流进行图像显示,结合图9与图10所示,具体可以包括:In one implementation, if the first processing module is a video stream processing module, and the switching instruction is used to indicate switching from the video stream processing module to the instruction stream processing module, then the terminal device receives the second data stream from the cloud server, And perform image display according to the second data stream, as shown in FIG. 9 and FIG. 10 , specifically may include:
1、终端设备启动指令流处理模块,重建图形渲染状态机。1. The terminal device starts the instruction stream processing module and rebuilds the graphics rendering state machine.
此时,终端设备的视频流处理模块正在运行,视频流处理模块处于持续做视频解码播放的阶段。例如显示屏模块根据视频流解码得到原始图像,图像1显示上屏、图像2、图像3等显示上屏依次进行。At this time, the video stream processing module of the terminal device is running, and the video stream processing module is in the stage of continuous video decoding and playback. For example, the display module decodes the video stream to obtain the original image, image 1 is displayed on the screen, image 2, image 3, etc. are displayed on the screen sequentially.
终端设备根据接收到切换指令,启动指令流处理模块,并进行初始化;进一步的,指令流引擎客户端完成图形渲染状态机重建。The terminal device starts the command stream processing module and initializes it according to the received switching command; further, the command stream engine client completes the reconstruction of the graphics rendering state machine.
2、终端设备接收来自云服务器的第二数据流,并进行解码得到渲染指令。2. The terminal device receives the second data stream from the cloud server, and decodes it to obtain a rendering instruction.
3、终端设备根据渲染指令进行渲染,得到原始显示图像。3. The terminal device renders according to the rendering instruction to obtain the original display image.
具体的,终端设备上的GPU根据渲染指令进行渲染出图。Specifically, the GPU on the terminal device renders the image according to the rendering instruction.
4、终端设备上的视频流绘制表面切换到指令流绘制表面。4. The video stream drawing surface on the terminal device is switched to the instruction stream drawing surface.
终端设备根据接收到切换指令,首先完成帧同步,即保持指令流处理模块和视频流处理模块能够在同一时刻生成同一帧图像。After receiving the switching instruction, the terminal device firstly completes the frame synchronization, that is, keeps the instruction stream processing module and the video stream processing module to generate the same frame of image at the same time.
终端设备侧实现帧同步之后,终端设备上的视频流绘制表面切换到指令流绘制表面。After frame synchronization is implemented on the terminal device side, the video stream drawing surface on the terminal device is switched to the instruction stream drawing surface.
具体的,终端设备上的显示屏模块接收到指令流处理模块生成的原始图像(即图像a显示上屏),则可以在下一帧显示时将显示屏模块的显示内容切换到指令流处理模块的渲染输出。例如显示屏模块根据指令流渲染得到原始图像,图像b显示上屏、图像c显示上屏等依次进行。Specifically, when the display screen module on the terminal device receives the original image generated by the instruction stream processing module (that is, the image a is displayed on the upper screen), the display content of the display screen module can be switched to that of the instruction stream processing module when the next frame is displayed. Render output. For example, the display module renders the original image according to the instruction stream, the image b is displayed on the screen, the image c is displayed on the screen, etc. sequentially.
5、终端设备关闭视频流处理模块。5. The terminal device closes the video stream processing module.
此时,终端设备上的视频流处理模块正常关闭,指令流处理模块持续进行图像渲染,并生成实时显示图像,直至下一次切换。At this time, the video stream processing module on the terminal device is normally closed, and the instruction stream processing module continues to perform image rendering, and generates a real-time display image until the next switching.
在一种实现方式中,终端设备上的视频流绘制表面切换到指令流绘制表面之后,终端设备还可以向云服务器发送切换完成指令,用于指示云服务器关闭视频流处理模块。In an implementation manner, after the video stream drawing surface on the terminal device is switched to the instruction stream drawing surface, the terminal device may also send a switching completion instruction to the cloud server, which is used to instruct the cloud server to shut down the video stream processing module.
从而云服务器向终端设备发送第二数据流之后,可以直接关闭第一处理模块。或者,云服务器还可以在接收到来自终端设备的切换完成指令之后,再关闭视频流处理模块。Therefore, after the cloud server sends the second data stream to the terminal device, it can directly close the first processing module. Alternatively, the cloud server may also shut down the video stream processing module after receiving the switching completion instruction from the terminal device.
通过上述实施方式,云服务器与终端设备之间进行交互,实现云手机的远程控制时,可以不受限于特定的场景且不局限于一种实现方式,云服务器可以根据当前的运行状态确定执行视频流处理方式还是指令流处理方式,并可以实现用户无感知的自动切换,不影响云手机显示图像的流畅度与实时性,提升了云手机的使用体验。Through the above implementation, when the cloud server interacts with the terminal device to realize the remote control of the cloud mobile phone, it is not limited to a specific scenario and is not limited to one implementation method, and the cloud server can determine the execution according to the current operating status. The video stream processing method is still the command stream processing method, and can realize automatic switching without user perception, without affecting the smoothness and real-time performance of the image displayed by the cloud mobile phone, and improving the user experience of the cloud mobile phone.
基于前述的实施方式,本申请还提供一种云手机的实现装置,该装置用于存储以及运行云手机,该装置包括视频流处理模块和指令流处理模块。如图11所示,该装置1100包括发送模块1101和处理模块1102。Based on the aforementioned embodiments, the present application also provides a device for implementing a cloud mobile phone, which is used for storing and running the cloud mobile phone, and the device includes a video stream processing module and an instruction stream processing module. As shown in FIG. 11 , the apparatus 1100 includes a sending module 1101 and a processing module 1102 .
其中,发送模块1101用于向终端设备发送第一数据流,若第一处理模块为视频流处理模块,则第一数据流为视频流,若第一处理模块为指令流处理模块,则第一数据流为渲染指令流。Wherein, the sending module 1101 is used to send the first data stream to the terminal device. If the first processing module is a video stream processing module, the first data stream is a video stream; if the first processing module is an instruction stream processing module, the first The data stream is the stream of rendering instructions.
处理模块1102用于,若确定当前运行状态满足切换条件,则启动第二处理模块并向终端设备发送切换指令。其中,切换指令用于指示终端设备从第一处理模块切换至第二处理模块,若第一处理模块为视频流处理模块,则第二处理模块为指令流处理模块,若第一处理模块为指令流处理模块,则第二处理模块为视频流处理模块。The processing module 1102 is configured to start a second processing module and send a switching instruction to the terminal device if it is determined that the current running state satisfies the switching condition. Wherein, the switching instruction is used to instruct the terminal device to switch from the first processing module to the second processing module, if the first processing module is a video stream processing module, then the second processing module is an instruction stream processing module, and if the first processing module is an instruction stream processing module, the second processing module is a video stream processing module.
发送模块1101还用于向终端设备发送第二数据流,其中,第二数据流为渲染指令流或视频流,第二数据流与第一数据流不同。The sending module 1101 is further configured to send a second data stream to the terminal device, where the second data stream is a rendering instruction stream or a video stream, and the second data stream is different from the first data stream.
处理模块1102还用于关闭第一处理模块。The processing module 1102 is also used to shut down the first processing module.
在一种可能的设计方式中,确定当前运行状态满足切换条件,具体包括以下至少一项:确定当前网络状态参数满足预设条件,或者,确定当前显示图像的分辨率满足预设条件,或者,确定当前运行的应用程序的类型满足预设条件,或者,确定当前运行的应用程序的带宽需求满足预设条件,或者,确定终端设备的数据处理能力满足预设条件,其中,网络状态参数包括丢包率、可用带宽或者时延中的至少一项。In a possible design manner, determining that the current operating state meets the switching condition specifically includes at least one of the following: determining that the current network state parameter meets the preset condition, or determining that the resolution of the currently displayed image meets the preset condition, or, Determine that the type of the currently running application meets the preset condition, or determine that the bandwidth requirement of the currently running application meets the preset condition, or determine that the data processing capability of the terminal device meets the preset condition, wherein the network status parameters include loss At least one of packet rate, available bandwidth, or delay.
在一种可能的设计方式中,若第一处理模块为视频流处理模块,处理模块1102具体用于启动指令流处理模块,完成图形渲染状态机数据准备。In a possible design manner, if the first processing module is a video stream processing module, the processing module 1102 is specifically configured to start the instruction stream processing module and complete the data preparation of the graphics rendering state machine.
发送模块1101具体用于向终端设备发送指示切换至终端设备的指令流处理模块的切换指令;向终端设备发送渲染指令流。The sending module 1101 is specifically configured to send a switching instruction indicating to switch to an instruction stream processing module of the terminal device to the terminal device; and send a rendering instruction stream to the terminal device.
在一种可能的设计方式中,所述装置1100还包括接收模块,用于接收来自终端设备的切换完成指令,关闭视频流处理模块。In a possible design manner, the apparatus 1100 further includes a receiving module, configured to receive a handover completion instruction from the terminal device, and shut down the video stream processing module.
在一种可能的设计方式中,处理模块1102具体用于:若确定当前的丢包率大于或者等于第一阈值,则确定满足由指令流处理模块切换至视频流处理模块的条件;启动视频流处理模块并向终端设备发送切换至视频流处理模块的指令。In a possible design, the processing module 1102 is specifically configured to: if it is determined that the current packet loss rate is greater than or equal to the first threshold, determine that the condition for switching from the instruction stream processing module to the video stream processing module is met; start the video stream The processing module sends an instruction to switch to the video stream processing module to the terminal device.
在一种可能的设计方式中,处理模块1102具体用于:若确定当前的可用带宽大于或者等于第二阈值,则确定满足由视频流处理模块切换至指令流处理模块的条件;启动指令流处理模块并向终端设备发送切换至指令流处理模块的指令。In a possible design manner, the processing module 1102 is specifically configured to: if it is determined that the current available bandwidth is greater than or equal to the second threshold, determine that the condition for switching from the video stream processing module to the instruction stream processing module is met; start instruction stream processing module and send an instruction to the terminal device to switch to the instruction stream processing module.
在一种可能的设计方式中,处理模块1102具体用于:若确定当前显示图像的分辨率低于或者等于1080*720,则确定满足由指令流处理模块切换至视频流处理模块的条件;启动视频流处理模块并向终端设备发送切换至视频流处理模块的指令;或者,若确定当前显示图像的分辨率高于或者等于1920*1080,则确定满足由视频流处理模块切换至指令流处理模块的条件;启动指令流处理模块并向终端设备发送切换至指令流处理模块的指令。In a possible design manner, the processing module 1102 is specifically configured to: if it is determined that the resolution of the currently displayed image is lower than or equal to 1080*720, determine that the condition for switching from the instruction stream processing module to the video stream processing module is met; start The video stream processing module sends an instruction to switch to the video stream processing module to the terminal device; or, if it is determined that the resolution of the currently displayed image is higher than or equal to 1920*1080, it is determined that the video stream processing module is switched to the instruction stream processing module conditions; start the instruction stream processing module and send an instruction to switch to the instruction stream processing module to the terminal device.
在一种可能的设计方式中,处理模块1102具体用于:确定当前运行的应用程序的类型为强交互类的游戏或者其他强交互类型的应用程序,或者,确定当前运行的应用程序对于指令流的带宽需求较小,则确定满足由视频流处理模块切换至指令流处理模块的条件;启动指令流处理模块并向终端设备发送切换至指令流处理模块的指令。In a possible design manner, the processing module 1102 is specifically configured to: determine that the type of the currently running application program is a game of strong interaction type or other strong interaction type of application program, or determine that the type of the currently running application program is If the bandwidth demand is small, it is determined that the condition for switching from the video stream processing module to the instruction stream processing module is met; the instruction stream processing module is started and an instruction to switch to the instruction stream processing module is sent to the terminal device.
在一种可能的设计方式中,处理模块1102具体用于:若确定当前运行的应用程序为弱交互类的游戏或者其他弱交互类型的应用程序,或者,确定当前运行的应用程序对于视频流的带宽需求较小,或者,终端设备上图形处理器GPU的处理能力低于预设条件时,则确定满足由指令流处理模块切换至视频流处理模块的条件;启动视频流处理模块并向终端设备发送切换至视频流处理模块的指令。In a possible design manner, the processing module 1102 is specifically configured to: if it is determined that the currently running application program is a game of weak interaction type or other weak interaction type application program, or determine that the currently running application program has an The bandwidth requirement is small, or when the processing capability of the graphics processor GPU on the terminal device is lower than the preset condition, it is determined that the condition for switching from the instruction stream processing module to the video stream processing module is met; the video stream processing module is started and sent to the terminal device Send an instruction to switch to the video stream processing module.
基于前述的实施方式,本申请还提供一种云手机的实现装置,该装置用于远程控制云手机,可以用来实现前述实施方式中的终端设备或者物理手机执行的动作。如图12所示,该装置1200包括接收模块1201和处理模块1202。Based on the foregoing embodiments, the present application also provides an implementation device for a cloud mobile phone, which is used for remote control of the cloud mobile phone, and can be used to realize the actions performed by the terminal device or the physical mobile phone in the foregoing embodiments. As shown in FIG. 12 , the apparatus 1200 includes a receiving module 1201 and a processing module 1202 .
接收模块1201用于接收来自云服务器的第一数据流,第一数据流为视频流或者渲染指令流。The receiving module 1201 is configured to receive a first data stream from a cloud server, where the first data stream is a video stream or a rendering instruction stream.
处理模块1202用于根据第一数据流进行图像显示.The processing module 1202 is used for performing image display according to the first data stream.
接收模块1201还用于接收来自云服务器的切换指令,切换指令用于指示装置从第一处理模块切换至第二处理模块;其中,第一处理模块为指令流处理模块且第二处理模块为视频流处理模块,或者,第一处理模块为视频流处理模块且第二处理模块为指令流处理模块。The receiving module 1201 is also used to receive a switching instruction from the cloud server, and the switching instruction is used to instruct the device to switch from the first processing module to the second processing module; wherein, the first processing module is an instruction stream processing module and the second processing module is a video processing module. A stream processing module, or, the first processing module is a video stream processing module and the second processing module is an instruction stream processing module.
接收模块1201还用于接收来自云服务器的第二数据流。The receiving module 1201 is also configured to receive the second data stream from the cloud server.
处理模块1202还用于根据第二数据流进行图像显示,其中,第二数据流为渲染指令流或视频流,第二数据流与第一数据流不同。The processing module 1202 is further configured to display images according to the second data stream, where the second data stream is a rendering instruction stream or a video stream, and the second data stream is different from the first data stream.
在一种可能的设计方式中,若切换指示用于指示从视频流处理模块切换至指令流处理模块,处理模块1202具体用于:启动指令流处理模块,重建图形渲染状态机。In a possible design manner, if the switching instruction is used to indicate switching from the video stream processing module to the instruction stream processing module, the processing module 1202 is specifically configured to: start the instruction stream processing module, and rebuild the graphics rendering state machine.
接收模块1201具体用于接收来自云服务器的第二数据流,并进行解码得到渲染指令。The receiving module 1201 is specifically configured to receive the second data stream from the cloud server, and decode it to obtain a rendering instruction.
处理模块1202具体用于:根据渲染指令进行渲染,得到原始显示图像;从视频流绘制表面切换到指令流绘制表面;关闭视频流处理模块。The processing module 1202 is specifically configured to: render according to the rendering instruction to obtain the original display image; switch from the video stream drawing surface to the instruction stream drawing surface; close the video stream processing module.
在一种可能的设计方式中,装置1200还包括发送模块1203,发送模块1203用于向云服务器发送切换完成指令,用于指示云服务器关闭视频流处理模块。In a possible design manner, the device 1200 further includes a sending module 1203, and the sending module 1203 is configured to send a switching completion instruction to the cloud server, and is used to instruct the cloud server to shut down the video stream processing module.
可以理解的,本申请实施例中同一个步骤或者具有相同功能的步骤或者消息在不同实施例之间可以互相参考借鉴。It can be understood that in the embodiments of the present application, the same step or steps or messages having the same function can be used for reference in different embodiments.
需要说明的是,上述装置或者电子设备中具体的执行过程和实施例可以参照上述方法实施例中云服务或者终端设备执行的步骤和相关的描述,所解决的技术问题和带来的技术效果也可以参照前述实施例所述的内容,此处不再一一赘述。It should be noted that, for the specific execution process and embodiments of the above-mentioned device or electronic device, refer to the steps and related descriptions executed by the cloud service or terminal device in the above-mentioned method embodiments, and the technical problems solved and the technical effects brought about are also Reference may be made to the content described in the foregoing embodiments, and details are not repeated here.
在本实施例中,该电子设备可以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定电路、执行一个或多个软件或固件程序的处理器和存储器、集成逻辑电路、和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该电子设备可以采用如前述中的图4或者图7中所示的形式。In this embodiment, the electronic device may be presented in the form of dividing various functional modules in an integrated manner. A "module" here may refer to a specific circuit, a processor and memory executing one or more software or firmware programs, an integrated logic circuit, and/or other devices that can provide the above functions. In a simple embodiment, those skilled in the art can imagine that the electronic device can take the form shown in FIG. 4 or FIG. 7 in the foregoing.
在一些实施方式中,图4中的处理器401可以通过调用存储器404中存储的计算机执行指令,使得电子设备400可以执行上述各个方法实施例中的云服务或者终端设备执行的操作,实现本申请的上述各个可能的实施方法。In some implementations, the processor 401 in FIG. 4 can call the computer-executed instructions stored in the memory 404, so that the electronic device 400 can execute the cloud service or the operation performed by the terminal device in the above-mentioned various method embodiments, and implement the present application. Each of the above possible implementation methods.
上述各个实施例中的电子设备可以与方法实施例中的云服务或者终端设备完全对应,由相应的模块或者单元执行相应的步骤,例如,当该电子设备以芯片的方式实现时,以上用于发送模块或接收模块是一种该芯片的接口电路,用于向其他装置发送信号。The electronic device in each of the above embodiments can completely correspond to the cloud service or terminal device in the method embodiment, and the corresponding steps are performed by the corresponding modules or units. For example, when the electronic device is implemented in the form of a chip, the above is used to The sending module or receiving module is an interface circuit of the chip, which is used to send signals to other devices.
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,或者计算机程序产品,上述指令可由电子设备400的处理器401执行以完成上述实施例的方法。因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。In an exemplary embodiment, there is also provided a computer-readable storage medium including instructions, or a computer program product. The above-mentioned instructions can be executed by the processor 401 of the electronic device 400 to implement the methods of the above-mentioned embodiments. Therefore, the technical effects that can be obtained can refer to the above-mentioned method embodiments, and will not be repeated here.
本申请还提供了一种计算机程序产品,该计算机程序产品包括指令,当该指令被执行时,以使得该计算机分别可以执行对应于上述方法中的云服务或者终端设备的操作。The present application also provides a computer program product, the computer program product includes instructions, and when the instructions are executed, the computer can respectively perform operations corresponding to the cloud service or the terminal device in the above method.
本申请实施例还提供了一种系统芯片,该系统芯片包括:处理单元和通信单元,该处理单元,例如可以是处理器,该通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行计算机指令,以使该芯片所应用的通信装置执行上述本申请实施例提供的方法中的云服务或者终端设备执行的操作。The embodiment of the present application also provides a system chip. The system chip includes: a processing unit and a communication unit. The processing unit may be, for example, a processor, and the communication unit may be, for example, an input/output interface, a pin, or a circuit. The processing unit may execute computer instructions, so that the communication device used by the chip executes the operations performed by the cloud service or the terminal device in the method provided by the above embodiments of the present application.
可选地,上述本申请实施例中提供的任意一种电子设备可以包括该系统芯片。Optionally, any electronic device provided in the foregoing embodiments of the present application may include the system chip.
可选地,该计算机指令被存储在存储单元中。Optionally, the computer instructions are stored in a storage unit.
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。In the above embodiments, all or part of them may be implemented by software, hardware, firmware or any combination thereof. When implemented using a software program, it may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the processes or functions according to the embodiments of the present application will be generated in whole or in part. A computer can be a general purpose computer, special purpose computer, computer network, or other programmable device.
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。Other embodiments of the present application will be readily apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any modification, use or adaptation of the application, these modifications, uses or adaptations follow the general principles of the application and include common knowledge or conventional technical means in the technical field not disclosed in the application .
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的 保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。Finally, it should be noted that: the above is only a specific implementation of the application, but the scope of protection of the application is not limited thereto, and any changes or replacements within the technical scope disclosed in the application shall be covered by this application. within the scope of the application. Therefore, the protection scope of the present application should be determined by the protection scope of the claims.

Claims (31)

  1. 一种云手机的实现方法,其特征在于,应用于云服务器,所述云服务器用于存储以及运行所述云手机,所述云服务器安装有指令流处理模块和视频流处理模块,所述方法包括:A method for implementing a cloud mobile phone, characterized in that it is applied to a cloud server, the cloud server is used to store and run the cloud mobile phone, and the cloud server is equipped with an instruction stream processing module and a video stream processing module, the method include:
    通过第一处理模块向所述终端设备发送第一数据流,若所述第一处理模块为所述视频流处理模块,则所述第一数据流为视频流,若所述第一处理模块为所述指令流处理模块,则所述第一数据流为渲染指令流;Send the first data stream to the terminal device through the first processing module, if the first processing module is the video stream processing module, then the first data stream is a video stream, if the first processing module is In the instruction stream processing module, the first data stream is a rendering instruction stream;
    若确定当前运行状态满足切换条件,则启动第二处理模块并向所述终端设备发送切换指令,其中,所述切换指令用于指示所述终端设备从所述第一处理模块切换至所述第二处理模块,若所述第一处理模块为所述视频流处理模块,则所述第二处理模块为指令流处理模块,若所述第一处理模块为指令流处理模块,则所述第二处理模块为所述视频流处理模块;If it is determined that the current operating state satisfies the switching condition, start the second processing module and send a switching instruction to the terminal device, wherein the switching instruction is used to instruct the terminal device to switch from the first processing module to the second processing module Two processing modules, if the first processing module is the video stream processing module, then the second processing module is an instruction stream processing module, if the first processing module is an instruction stream processing module, then the second The processing module is the video stream processing module;
    通过所述第二处理模块向所述终端设备发送第二数据流,并关闭所述第一处理模块,其中,所述第二数据流为渲染指令流或视频流,所述第二数据流与所述第一数据流不同。Sending a second data stream to the terminal device through the second processing module, and closing the first processing module, wherein the second data stream is a rendering instruction stream or a video stream, and the second data stream is the same as The first data streams are different.
  2. 根据权利要求1所述的方法,其特征在于,所述确定当前运行状态满足切换条件,具体包括以下至少一项:The method according to claim 1, wherein the determining that the current operating state satisfies the switching condition specifically includes at least one of the following:
    确定当前网络状态参数满足预设条件,或者,确定当前显示图像的分辨率满足预设条件,或者,确定当前运行的应用程序的类型满足预设条件,或者,确定当前运行的应用程序的带宽需求满足预设条件,或者,确定所述终端设备的数据处理能力满足预设条件,其中,所述网络状态参数包括丢包率、可用带宽或者时延中的至少一项。Determine that the current network status parameters meet the preset conditions, or determine that the resolution of the currently displayed image meets the preset conditions, or determine that the type of the currently running application meets the preset conditions, or determine the bandwidth requirements of the currently running application A preset condition is met, or it is determined that the data processing capability of the terminal device satisfies a preset condition, wherein the network status parameter includes at least one of packet loss rate, available bandwidth, or delay.
  3. 根据权利要求1或2所述的方法,其特征在于,若所述第一处理模块为视频流处理模块,所述启动第二处理模块并向所述终端设备发送切换指令以及所述第二数据流,具体包括:The method according to claim 1 or 2, wherein if the first processing module is a video stream processing module, the second processing module is started and the switching instruction and the second data are sent to the terminal device flow, including:
    启动所述指令流处理模块,完成图形渲染状态机数据准备;Start the instruction stream processing module to complete the data preparation of the graphics rendering state machine;
    向所述终端设备发送指示切换至所述终端设备的指令流处理模块的切换指令;sending to the terminal device a switching instruction indicating to switch to the instruction stream processing module of the terminal device;
    向所述终端设备发送渲染指令流。Send a rendering instruction stream to the terminal device.
  4. 根据权利要求3所述的方法,其特征在于,所述关闭所述第一处理模块,具体包括:The method according to claim 3, wherein the closing the first processing module specifically comprises:
    接收来自所述终端设备的切换完成指令,关闭所述视频流处理模块。receiving a switching completion instruction from the terminal device, and closing the video stream processing module.
  5. 根据权利要求1-4任一项所述的方法,其特征在于,所述确定当前运行状态满足切换条件,则启动第二处理模块并向所述终端设备发送切换指令,具体包括:The method according to any one of claims 1-4, wherein the determining that the current operating state satisfies the switching condition, then starting the second processing module and sending a switching instruction to the terminal device, specifically includes:
    若确定当前的丢包率大于或者等于第一阈值,则确定满足由所述指令流处理模块切换至所述视频流处理模块的条件;If it is determined that the current packet loss rate is greater than or equal to the first threshold, it is determined that the condition for switching from the instruction stream processing module to the video stream processing module is met;
    启动所述视频流处理模块并向所述终端设备发送切换至所述视频流处理模块的指令。Start the video stream processing module and send an instruction to switch to the video stream processing module to the terminal device.
  6. 根据权利要求1-5任一项所述的方法,其特征在于,所述确定当前运行状态满足切换条件,则启动第二处理模块并向所述终端设备发送切换指令,具体包括:The method according to any one of claims 1-5, wherein the determining that the current operating state satisfies the switching condition, then starting the second processing module and sending a switching instruction to the terminal device, specifically includes:
    若确定当前的可用带宽大于或者等于第二阈值,则确定满足由所述视频流处理模 块切换至所述指令流处理模块的条件;If it is determined that the current available bandwidth is greater than or equal to the second threshold, then it is determined that the condition for switching from the video stream processing module to the instruction stream processing module is met;
    启动所述指令流处理模块并向所述终端设备发送切换至所述指令流处理模块的指令。Starting the instruction stream processing module and sending an instruction to switch to the instruction stream processing module to the terminal device.
  7. 根据权利要求1-6任一项所述的方法,其特征在于,所述确定当前运行状态满足切换条件,则启动第二处理模块并向所述终端设备发送切换指令,具体包括:The method according to any one of claims 1-6, wherein the determining that the current operating state satisfies the switching condition, then starting the second processing module and sending a switching instruction to the terminal device, specifically includes:
    若确定当前显示图像的分辨率低于或者等于1080*720,则确定满足由所述指令流处理模块切换至所述视频流处理模块的条件;If it is determined that the resolution of the currently displayed image is lower than or equal to 1080*720, it is determined that the condition for switching from the instruction stream processing module to the video stream processing module is met;
    启动所述视频流处理模块并向所述终端设备发送切换至所述视频流处理模块的指令;Start the video stream processing module and send an instruction to switch to the video stream processing module to the terminal device;
    或者,若确定当前显示图像的分辨率高于或者等于1920*1080,则确定满足由所述视频流处理模块切换至所述指令流处理模块的条件;Or, if it is determined that the resolution of the currently displayed image is higher than or equal to 1920*1080, it is determined that the condition for switching from the video stream processing module to the instruction stream processing module is met;
    启动所述指令流处理模块并向所述终端设备发送切换至所述指令流处理模块的指令。Starting the instruction stream processing module and sending an instruction to switch to the instruction stream processing module to the terminal device.
  8. 根据权利要求1-7任一项所述的方法,其特征在于,所述确定当前运行状态满足切换条件,则启动第二处理模块并向所述终端设备发送切换指令,具体包括:The method according to any one of claims 1-7, wherein the determining that the current operating state satisfies the switching condition, then starting the second processing module and sending a switching instruction to the terminal device, specifically includes:
    确定当前运行的应用程序的类型为强交互类的游戏或者其他强交互类型的应用程序,或者,确定当前运行的应用程序对于指令流的带宽需求较小,则确定满足由所述视频流处理模块切换至所述指令流处理模块的条件;Determine that the type of the currently running application is a game with strong interaction or other strong interaction type of application, or determine that the currently running application has a small bandwidth requirement for the instruction stream, then determine that the video stream processing module meets the requirements A condition for switching to the instruction stream processing module;
    启动所述指令流处理模块并向所述终端设备发送切换至所述指令流处理模块的指令。Starting the instruction stream processing module and sending an instruction to switch to the instruction stream processing module to the terminal device.
  9. 根据权利要求1-8任一项所述的方法,其特征在于,所述确定当前运行状态满足切换条件,则启动第二处理模块并向所述终端设备发送切换指令,具体包括:The method according to any one of claims 1-8, wherein the determining that the current operating state satisfies the switching condition, then starting the second processing module and sending a switching instruction to the terminal device, specifically includes:
    若确定当前运行的应用程序为弱交互类的游戏或者其他弱交互类型的应用程序,或者,确定当前运行的应用程序对于视频流的带宽需求较小,或者,终端设备上图形处理器GPU的处理能力低于预设条件时,则确定满足由所述指令流处理模块切换至所述视频流处理模块的条件;If it is determined that the currently running application program is a weak interaction game or other weak interaction type application program, or it is determined that the currently running application program has a small bandwidth requirement for video streams, or the graphics processing unit GPU on the terminal device When the capability is lower than the preset condition, it is determined that the condition for switching from the instruction stream processing module to the video stream processing module is met;
    启动所述视频流处理模块并向所述终端设备发送切换至所述视频流处理模块的指令。Start the video stream processing module and send an instruction to switch to the video stream processing module to the terminal device.
  10. 一种云手机的实现方法,其特征在于,应用于终端设备,所述终端设备用于远程控制云手机,所述方法包括:A method for implementing a cloud mobile phone, characterized in that it is applied to a terminal device, and the terminal device is used to remotely control the cloud mobile phone, and the method includes:
    接收来自所述云服务器的第一数据流,所述第一数据流为视频流或者渲染指令流;receiving a first data stream from the cloud server, where the first data stream is a video stream or a rendering instruction stream;
    根据所述第一数据流进行图像显示;performing image display according to the first data stream;
    接收来自所述云服务器的切换指令,所述切换指令用于指示所述终端设备从第一处理模块切换至第二处理模块;其中,所述第一处理模块为指令流处理模块且所述第二处理模块为视频流处理模块,或者,所述第一处理模块为视频流处理模块且所述第二处理模块为指令流处理模块;receiving a switching instruction from the cloud server, the switching instruction is used to instruct the terminal device to switch from the first processing module to the second processing module; wherein, the first processing module is an instruction stream processing module and the second processing module The second processing module is a video stream processing module, or, the first processing module is a video stream processing module and the second processing module is an instruction stream processing module;
    接收来自所述云服务器的第二数据流,并根据所述第二数据流进行图像显示,其中,所述第二数据流为渲染指令流或视频流,所述第二数据流与所述第一数据流不同。receiving a second data stream from the cloud server, and performing image display according to the second data stream, wherein the second data stream is a rendering instruction stream or a video stream, and the second data stream is identical to the first A data flow is different.
  11. 根据权利要求10所述的方法,其特征在于,若所述切换指示用于指示从所述 视频流处理模块切换至所述指令流处理模块,所述接收来自所述云服务器的第二数据流,并根据所述第二数据流进行图像显示,具体包括:The method according to claim 10, wherein if the switching instruction is used to indicate switching from the video stream processing module to the instruction stream processing module, the receiving the second data stream from the cloud server , and perform image display according to the second data stream, specifically including:
    启动所述指令流处理模块,重建图形渲染状态机;Start the instruction stream processing module to rebuild the graphics rendering state machine;
    接收来自所述云服务器的第二数据流,并进行解码得到渲染指令;receiving the second data stream from the cloud server, and decoding to obtain rendering instructions;
    根据所述渲染指令进行渲染,得到原始显示图像;performing rendering according to the rendering instruction to obtain an original display image;
    从视频流绘制表面切换到指令流绘制表面;switch from the video stream drawing surface to the instruction stream drawing surface;
    关闭所述视频流处理模块。Close the video stream processing module.
  12. 根据权利要求11所述的方法,其特征在于,所述从视频流绘制表面切换到指令流绘制表面之后,所述方法还包括:The method according to claim 11, wherein after switching from the video stream drawing surface to the instruction stream drawing surface, the method further comprises:
    向所述云服务器发送切换完成指令,用于指示所述云服务器关闭所述视频流处理模块。Sending a switching completion instruction to the cloud server, for instructing the cloud server to shut down the video stream processing module.
  13. 一种云手机的实现装置,其特征在于,所述装置用于存储以及运行所述云手机,所述装置包括视频流处理模块和指令流处理模块,所述装置包括发送模块和处理模块:A device for implementing a cloud mobile phone, wherein the device is used to store and run the cloud mobile phone, the device includes a video stream processing module and an instruction stream processing module, and the device includes a sending module and a processing module:
    所述发送模块用于向所述终端设备发送第一数据流,若所述第一处理模块为视频流处理模块,则所述第一数据流为视频流,若所述第一处理模块为指令流处理模块,则所述第一数据流为渲染指令流;The sending module is used to send a first data stream to the terminal device. If the first processing module is a video stream processing module, the first data stream is a video stream. If the first processing module is an instruction A stream processing module, the first data stream is a rendering instruction stream;
    所述处理模块用于,若确定当前运行状态满足切换条件,则启动所述第二处理模块并向所述终端设备发送切换指令,其中,所述切换指令用于指示所述终端设备从第一处理模块切换至第二处理模块,若所述第一处理模块为所述视频流处理模块,则所述第二处理模块为指令流处理模块,若所述第一处理模块为指令流处理模块,则所述第二处理模块为所述视频流处理模块;The processing module is configured to start the second processing module and send a switching instruction to the terminal device if it is determined that the current operating state satisfies the switching condition, wherein the switching instruction is used to instruct the terminal device to switch from the first The processing module switches to the second processing module, if the first processing module is the video stream processing module, the second processing module is an instruction stream processing module, and if the first processing module is an instruction stream processing module, Then the second processing module is the video stream processing module;
    所述发送模块还用于向所述终端设备发送第二数据流,其中,所述第二数据流为渲染指令流或视频流,所述第二数据流与所述第一数据流不同;The sending module is further configured to send a second data stream to the terminal device, where the second data stream is a rendering instruction stream or a video stream, and the second data stream is different from the first data stream;
    所述处理模块还用于关闭所述第一处理模块。The processing module is also used to shut down the first processing module.
  14. 根据权利要求13所述的装置,其特征在于,所述确定当前运行状态满足切换条件,具体包括以下至少一项:The device according to claim 13, wherein the determining that the current operating state satisfies the switching condition specifically includes at least one of the following:
    确定当前网络状态参数满足预设条件,或者,确定当前显示图像的分辨率满足预设条件,或者,确定当前运行的应用程序的类型满足预设条件,或者,确定当前运行的应用程序的带宽需求满足预设条件,或者,确定所述终端设备的数据处理能力满足预设条件,其中,所述网络状态参数包括丢包率、可用带宽或者时延中的至少一项。Determine that the current network status parameters meet the preset conditions, or determine that the resolution of the currently displayed image meets the preset conditions, or determine that the type of the currently running application meets the preset conditions, or determine the bandwidth requirements of the currently running application A preset condition is met, or it is determined that the data processing capability of the terminal device satisfies a preset condition, wherein the network status parameter includes at least one of packet loss rate, available bandwidth, or delay.
  15. 根据权利要求13或14所述的装置,其特征在于,若所述第一处理模块为视频流处理模块,所述处理模块具体用于启动所述指令流处理模块,完成图形渲染状态机数据准备;The device according to claim 13 or 14, wherein if the first processing module is a video stream processing module, the processing module is specifically used to start the instruction stream processing module to complete the data preparation of the graphics rendering state machine ;
    所述发送模块具体用于向所述终端设备发送指示切换至所述终端设备的指令流处理模块的切换指令;向所述终端设备发送渲染指令流。The sending module is specifically configured to send to the terminal device a switching instruction indicating to switch to the instruction stream processing module of the terminal device; and send a rendering instruction stream to the terminal device.
  16. 根据权利要求15所述的方法,其特征在于,所述装置还包括接收模块,所述接收模块用于接收来自所述终端设备的切换完成指令;The method according to claim 15, wherein the device further comprises a receiving module, the receiving module is configured to receive a handover completion instruction from the terminal device;
    则所述处理模块用于关闭所述视频流处理模块。Then the processing module is used to close the video stream processing module.
  17. 根据权利要求13-16任一项所述的装置,其特征在于,所述处理模块具体用于:The device according to any one of claims 13-16, wherein the processing module is specifically configured to:
    若确定当前的丢包率大于或者等于第一阈值,则确定满足由所述指令流处理模块切换至所述视频流处理模块的条件;If it is determined that the current packet loss rate is greater than or equal to the first threshold, it is determined that the condition for switching from the instruction stream processing module to the video stream processing module is met;
    启动所述视频流处理模块并向所述终端设备发送切换至所述视频流处理模块的指令。Start the video stream processing module and send an instruction to switch to the video stream processing module to the terminal device.
  18. 根据权利要求13-17任一项所述的装置,其特征在于,所述处理模块具体用于:The device according to any one of claims 13-17, wherein the processing module is specifically configured to:
    若确定当前的可用带宽大于或者等于第二阈值,则确定满足由所述视频流处理模块切换至所述指令流处理模块的条件;If it is determined that the current available bandwidth is greater than or equal to the second threshold, it is determined that the condition for switching from the video stream processing module to the instruction stream processing module is met;
    启动所述指令流处理模块并向所述终端设备发送切换至所述指令流处理模块的指令。Starting the instruction stream processing module and sending an instruction to switch to the instruction stream processing module to the terminal device.
  19. 根据权利要求13-18任一项所述的装置,其特征在于,所述处理模块具体用于:The device according to any one of claims 13-18, wherein the processing module is specifically configured to:
    若确定当前显示图像的分辨率低于或者等于1080*720,则确定满足由所述指令流处理模块切换至所述视频流处理模块的条件;If it is determined that the resolution of the currently displayed image is lower than or equal to 1080*720, it is determined that the condition for switching from the instruction stream processing module to the video stream processing module is met;
    启动所述视频流处理模块并向所述终端设备发送切换至所述视频流处理模块的指令;Start the video stream processing module and send an instruction to switch to the video stream processing module to the terminal device;
    或者,若确定当前显示图像的分辨率高于或者等于1920*1080,则确定满足由所述视频流处理模块切换至所述指令流处理模块的条件;Or, if it is determined that the resolution of the currently displayed image is higher than or equal to 1920*1080, it is determined that the condition for switching from the video stream processing module to the instruction stream processing module is met;
    启动所述指令流处理模块并向所述终端设备发送切换至所述指令流处理模块的指令。Starting the instruction stream processing module and sending an instruction to switch to the instruction stream processing module to the terminal device.
  20. 根据权利要求13-19任一项所述的装置,其特征在于,所述处理模块具体用于:The device according to any one of claims 13-19, wherein the processing module is specifically configured to:
    确定当前运行的应用程序的类型为强交互类的游戏或者其他强交互类型的应用程序,或者,确定当前运行的应用程序对于指令流的带宽需求较小,则确定满足由所述视频流处理模块切换至所述指令流处理模块的条件;Determine that the type of the currently running application is a game with strong interaction or other strong interaction type of application, or determine that the currently running application has a small bandwidth requirement for the instruction stream, then determine that the video stream processing module meets the requirements A condition for switching to the instruction stream processing module;
    启动所述指令流处理模块并向所述终端设备发送切换至所述指令流处理模块的指令。Starting the instruction stream processing module and sending an instruction to switch to the instruction stream processing module to the terminal device.
  21. 根据权利要求13-20任一项所述的装置,其特征在于,所述处理模块具体用于:The device according to any one of claims 13-20, wherein the processing module is specifically configured to:
    若确定当前运行的应用程序为弱交互类的游戏或者其他弱交互类型的应用程序,或者,确定当前运行的应用程序对于视频流的带宽需求较小,或者,终端设备上图形处理器GPU的处理能力低于预设条件时,则确定满足由所述指令流处理模块切换至所述视频流处理模块的条件;If it is determined that the currently running application program is a weak interaction game or other weak interaction type application program, or it is determined that the currently running application program has a small bandwidth requirement for video streams, or the graphics processing unit GPU on the terminal device When the capability is lower than the preset condition, it is determined that the condition for switching from the instruction stream processing module to the video stream processing module is met;
    启动所述视频流处理模块并向所述终端设备发送切换至所述视频流处理模块的指令。Start the video stream processing module and send an instruction to switch to the video stream processing module to the terminal device.
  22. 一种云手机的实现装置,其特征在于,所述装置用于远程控制云手机,所述装置包括接收模块和处理模块,A device for implementing a cloud mobile phone, characterized in that the device is used to remotely control the cloud mobile phone, and the device includes a receiving module and a processing module,
    所述接收模块用于接收来自所述云服务器的第一数据流,所述第一数据流为视频流或者渲染指令流;The receiving module is configured to receive a first data stream from the cloud server, where the first data stream is a video stream or a rendering instruction stream;
    所述处理模块用于根据所述第一数据流进行图像显示;The processing module is configured to perform image display according to the first data stream;
    所述接收模块还用于接收来自所述云服务器的切换指令,所述切换指令用于指示所述装置从第一处理模块切换至第二处理模块;其中,所述第一处理模块为指令流处理模块且所述第二处理模块为视频流处理模块,或者,所述第一处理模块为视频流处 理模块且所述第二处理模块为指令流处理模块;The receiving module is also used to receive a switching instruction from the cloud server, the switching instruction is used to instruct the device to switch from the first processing module to the second processing module; wherein, the first processing module is an instruction stream A processing module and the second processing module is a video stream processing module, or, the first processing module is a video stream processing module and the second processing module is an instruction stream processing module;
    所述接收模块还用于接收来自所述云服务器的第二数据流;The receiving module is also used to receive the second data stream from the cloud server;
    所述处理模块还用于根据所述第二数据流进行图像显示,其中,所述第二数据流为渲染指令流或视频流,所述第二数据流与所述第一数据流不同。The processing module is further configured to perform image display according to the second data stream, wherein the second data stream is a rendering instruction stream or a video stream, and the second data stream is different from the first data stream.
  23. 根据权利要求22所述的装置,其特征在于,若所述切换指示用于指示从所述视频流处理模块切换至所述指令流处理模块,所述处理模块具体用于:The device according to claim 22, wherein if the switching instruction is used to instruct switching from the video stream processing module to the instruction stream processing module, the processing module is specifically configured to:
    启动所述指令流处理模块,重建图形渲染状态机;Start the instruction stream processing module to rebuild the graphics rendering state machine;
    所述接收模块具体用于接收来自所述云服务器的第二数据流,并进行解码得到渲染指令;The receiving module is specifically configured to receive the second data stream from the cloud server, and decode it to obtain a rendering instruction;
    所述处理模块具体用于:根据所述渲染指令进行渲染,得到原始显示图像;The processing module is specifically used for: performing rendering according to the rendering instruction to obtain an original display image;
    从视频流绘制表面切换到指令流绘制表面;switch from the video stream drawing surface to the instruction stream drawing surface;
    关闭所述视频流处理模块。Close the video stream processing module.
  24. 根据权利要求23所述的装置,其特征在于,所述装置还包括发送模块,所述发送模块用于向所述云服务器发送切换完成指令,用于指示所述云服务器关闭所述视频流处理模块。The device according to claim 23, wherein the device further comprises a sending module, the sending module is configured to send a switching completion instruction to the cloud server, and is used to instruct the cloud server to close the video stream processing module.
  25. 一种电子设备,其特征在于,所述电子设备包括:存储器和一个或多个处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述电子设备用于执行权利要求1-9中任一项所述的方法。An electronic device, characterized in that the electronic device includes: a memory and one or more processors; the memory is coupled to the processor; the memory is used to store computer program code, and the computer program code includes A computer instruction, when the processor executes the computer instruction, the electronic device is configured to execute the method according to any one of claims 1-9.
  26. 一种电子设备,其特征在于,所述电子设备包括:存储器和一个或多个处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述电子设备用于执行权利要求10-12中任一项所述的方法。An electronic device, characterized in that the electronic device includes: a memory and one or more processors; the memory is coupled to the processor; the memory is used to store computer program code, and the computer program code includes Computer instructions, when the processor executes the computer instructions, the electronic device is configured to execute the method according to any one of claims 10-12.
  27. 一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有指令,当所述可读存储介质在电子设备上运行时,使得所述电子设备执行权利要求1-9中任一项所述的方法。A computer-readable storage medium, characterized in that instructions are stored in the readable storage medium, and when the readable storage medium runs on an electronic device, the electronic device executes any of claims 1-9. one of the methods described.
  28. 一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有指令,当所述可读存储介质在电子设备上运行时,使得所述电子设备执行权利要求10-12中任一项所述的方法。A computer-readable storage medium, characterized in that instructions are stored in the readable storage medium, and when the readable storage medium runs on an electronic device, the electronic device executes any one of claims 10-12. one of the methods described.
  29. 一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行权利要求1-9中任一项所述的方法。A computer program product, characterized in that, when the computer program product is run on a computer, the computer is made to execute the method according to any one of claims 1-9.
  30. 一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行权利要求10-12中任一项所述的方法。A computer program product, characterized in that, when the computer program product is run on a computer, the computer is made to execute the method according to any one of claims 10-12.
  31. 一种通信系统,其特征在于,所述通信系统包括如权利要求13-21任一项所述的装置和权利要求22-24任一项所述的装置。A communication system, characterized in that the communication system comprises the device according to any one of claims 13-21 and the device according to any one of claims 22-24.
PCT/CN2022/096330 2021-09-26 2022-05-31 Cloud mobile phone implementation method and apparatus WO2023045392A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111128778.7A CN115883614A (en) 2021-09-26 2021-09-26 Cloud mobile phone implementation method and device
CN202111128778.7 2021-09-26

Publications (1)

Publication Number Publication Date
WO2023045392A1 true WO2023045392A1 (en) 2023-03-30

Family

ID=85719272

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/096330 WO2023045392A1 (en) 2021-09-26 2022-05-31 Cloud mobile phone implementation method and apparatus

Country Status (2)

Country Link
CN (1) CN115883614A (en)
WO (1) WO2023045392A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105096373A (en) * 2015-06-30 2015-11-25 华为技术有限公司 Media content rendering method, user device and rendering system
US20160330493A1 (en) * 2013-12-26 2016-11-10 Singapore University Of Technology And Design A method and apparatus for reducing data bandwidth between a cloud server and a thin client
CN106550025A (en) * 2016-10-25 2017-03-29 深圳大学 A kind of data processing method and device of mobile cloud computing system
CN111861854A (en) * 2019-04-30 2020-10-30 华为技术有限公司 Method and device for graphic rendering
CN112099884A (en) * 2020-08-11 2020-12-18 西安万像电子科技有限公司 Image rendering method and device
CN112445624A (en) * 2021-02-01 2021-03-05 江苏北弓智能科技有限公司 Task-oriented GPU resource optimal configuration method and device
CN112929700A (en) * 2021-02-01 2021-06-08 福建多多云科技有限公司 Video stream dynamic switching method based on cloud mobile phone

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160330493A1 (en) * 2013-12-26 2016-11-10 Singapore University Of Technology And Design A method and apparatus for reducing data bandwidth between a cloud server and a thin client
CN105096373A (en) * 2015-06-30 2015-11-25 华为技术有限公司 Media content rendering method, user device and rendering system
CN106550025A (en) * 2016-10-25 2017-03-29 深圳大学 A kind of data processing method and device of mobile cloud computing system
CN111861854A (en) * 2019-04-30 2020-10-30 华为技术有限公司 Method and device for graphic rendering
CN112099884A (en) * 2020-08-11 2020-12-18 西安万像电子科技有限公司 Image rendering method and device
CN112445624A (en) * 2021-02-01 2021-03-05 江苏北弓智能科技有限公司 Task-oriented GPU resource optimal configuration method and device
CN112929700A (en) * 2021-02-01 2021-06-08 福建多多云科技有限公司 Video stream dynamic switching method based on cloud mobile phone

Also Published As

Publication number Publication date
CN115883614A (en) 2023-03-31

Similar Documents

Publication Publication Date Title
CN108491275B (en) Program optimization method, device, terminal and storage medium
WO2022052773A1 (en) Multi-window screen projection method and electronic device
CN113553014B (en) Application interface display method under multi-window screen projection scene and electronic equipment
CN112394895B (en) Picture cross-device display method and device and electronic device
WO2021143182A1 (en) Game processing method and apparatus, electronic device, and computer-readable storage medium
US20220398059A1 (en) Multi-window display method, electronic device, and system
CN114339332B (en) Mobile terminal, display device and cross-network screen projection method
CN109743442A (en) Incoming call reminding method and terminal
WO2022083465A1 (en) Electronic device screen projection method, medium thereof, and electronic device
WO2019071618A1 (en) Image processing method and device
CN116033158B (en) Screen projection method and electronic equipment
WO2023083218A1 (en) Method for smoothly displaying picture during screen mirroring, and related apparatus and system
WO2023045392A1 (en) Cloud mobile phone implementation method and apparatus
CN116700601B (en) Memory optimization method, equipment and storage medium
WO2020107992A1 (en) Video processing method, device, electronic device and storage medium
WO2023025191A1 (en) Communication method and electronic device
WO2021248988A1 (en) Cross-terminal screen recording method, terminal device, and storage medium
CN116684521B (en) Audio processing method, device and storage medium
CN116033157B (en) Screen projection method and electronic equipment
CN116055738B (en) Video compression method and electronic equipment
WO2024022137A1 (en) Screen mirroring method and device
CN114327317B (en) Mirror image screen projection method, device and system
CN116709557B (en) Service processing method, device and storage medium
US20240073415A1 (en) Encoding Method, Electronic Device, Communication System, Storage Medium, and Program Product
WO2023169276A1 (en) Screen projection method, terminal device, and computer-readable storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22871453

Country of ref document: EP

Kind code of ref document: A1