CN109302637B - 图像处理方法、图像处理装置和电子设备 - Google Patents

图像处理方法、图像处理装置和电子设备 Download PDF

Info

Publication number
CN109302637B
CN109302637B CN201811307394.XA CN201811307394A CN109302637B CN 109302637 B CN109302637 B CN 109302637B CN 201811307394 A CN201811307394 A CN 201811307394A CN 109302637 B CN109302637 B CN 109302637B
Authority
CN
China
Prior art keywords
image frames
image
processing device
screen
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811307394.XA
Other languages
English (en)
Other versions
CN109302637A (zh
Inventor
贺国睿
荆彦青
方亮
孙大伟
李林申
韩尹波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Chengdu Co Ltd
Original Assignee
Tencent Technology Chengdu Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Chengdu Co Ltd filed Critical Tencent Technology Chengdu Co Ltd
Priority to CN201811307394.XA priority Critical patent/CN109302637B/zh
Publication of CN109302637A publication Critical patent/CN109302637A/zh
Application granted granted Critical
Publication of CN109302637B publication Critical patent/CN109302637B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供了用于云真机系统的图像处理方法、图像处理装置和电子设备。图像处理方法包括:实时采集屏幕上显示的连续图像帧;缓存采集的连续图像帧;每隔预定时间间隔,渲染缓存的连续图像帧中当前时刻的图像帧,并且输出渲染后的当前时刻的图像帧;以及硬件编码渲染后的当前时刻的图像帧,生成并且输出对应于屏幕上显示的连续图像帧的视频流。通过利用电子设备端的硬件编码器执行屏幕图像的编码,减小了云真机系统的延迟,并且降低了对于本地处理设备的硬件要求,增加了单台远程处理设备能够接入的电子设备的数量,降低了部署成本。此外,电子设备直接向本地处理设备传输视频流,相比于同等清晰度下的图像数据,减小了对于传输带宽的需求。

Description

图像处理方法、图像处理装置和电子设备
技术领域
本公开涉及图像处理领域,更具体地,本公开涉及一种用于云真机系统的图像处理方法、图像处理装置和电子设备。
背景技术
云真机系统将本地电子设备(诸如,智能电话、平板电脑)的屏幕图像提供给远程处理设备(诸如、计算机)的用户,采集用户在远程处理设备上针对屏幕图像进行的实时操作,将该实时操作再传输回本地电子设备以便由本地电子设备响应该实时操作,并且将本地电子设备响应于该实时操作的运行结果提供给远程处理设备的用户。通过云真机系统,远程处理设备的用户无需拥有多种不同的电子设备,即可体验不同系统、不同配置的电子设备,并且在不同系统、不同配置的电子设备上进行应用的测试。
在云真机系统中,重要的一个环节在于对本地电子设备的屏幕图像执行采集和编码,并且将编码后的视频提供给远程处理设备的用户。通常,需要将电子设备的屏幕图像传输到与其连接的本地处理设备,并在本地处理设备上借助软件或硬件编码器将电子设备实时屏幕图像进行编码,然后再传输给远程处理设备的用户,以降低电子设备实时屏幕图像传输所占用的网络带宽。然而,本地处理设备对于图像编码所需要的计算量极大,占用CPU计算周期长,而远程云端真机是一种强实时性的云系统,因而为了降低延迟,本地处理设备必须要配置计算能力强、主频高的CPU,以降低图像编码所耗时间。由于图像编码对CPU和内存消耗较大,因而极大的限制了单台本地处理设备所能接入的电子设备数量。由于电子设备和本地处理设备之间连接(例如,USB2.0连接)的传输带宽和传输速度的限制,导致了远程处理设备的用户所能接收到的电子设备实时图像的质量较低。此外,电子设备图像尺寸较大、电子设备与本地处理设备之间传输额外需要的压缩和解压缩处理也增大了电子设备屏幕图像采集到最终显示在远程处理设备上的延迟时间。
发明内容
鉴于上述问题而提出了本公开。本公开提供了一种用于云真机系统的图像处理方法、图像处理装置和电子设备。
根据本公开的一个方面,提供了一种图像处理方法,包括:实时采集屏幕上显示的连续图像帧;缓存采集的所述连续图像帧;每隔预定时间间隔,渲染缓存的所述连续图像帧中当前时刻的图像帧,并且输出渲染后的所述当前时刻的图像帧;以及硬件编码渲染后的所述当前时刻的图像帧,生成并且输出对应于所述屏幕上显示的连续图像帧的视频流。
此外,根据本公开一个方面的图像处理方法,其中,以第一帧速率显示所述连续图像帧,并且所述视频流具有第二帧速率。
此外,根据本公开一个方面的图像处理方法,其中,所述硬件编码渲染后的所述当前时刻的图像帧,生成并且输出对应于所述屏幕上显示的连续图像帧的视频流包括:响应于接收到渲染后的所述当前时刻的图像帧,硬件编码渲染后的所述当前时刻的图像帧;缓存编码后的所述当前时刻的图像帧;以及读取并且输出多个编码后的所述当前时刻的图像帧,作为对应于所述屏幕上显示的连续图像帧的视频流。
此外,根据本公开一个方面的图像处理方法,还包括:初始化用于渲染的上下文环境,建立纹理资源;将缓存采集的所述连续图像帧的缓存区与所述上下文环境中的上述纹理资源相关联。
此外,根据本公开一个方面的图像处理方法,其中,所述实时采集屏幕上显示的连续图像帧包括:将屏幕上显示的连续图像帧投影到所述缓存区。
根据本公开的另一个方面,提供了一种图像处理装置,包括:图像采集单元,用于实时采集屏幕上显示的连续图像帧;缓存单元,用于缓存采集的所述连续图像帧;渲染单元,用于每隔预定时间间隔,渲染缓存的所述连续图像帧中当前时刻的图像帧,并且输出渲染后的所述当前时刻的图像帧;以及编码单元,用于硬件编码渲染后的所述当前时刻的图像帧,生成并且输出对应于所述屏幕上显示的连续图像帧的视频流。
此外,根据本公开另一个方面的图像处理装置,其中,以第一帧速率显示所述连续图像帧,并且所述视频流具有第二帧速率。
此外,根据本公开另一个方面的图像处理装置,其中,所述编码单元包括硬件编码子单元、输出缓存子单元和输出子单元:所述硬件编码子单元用于响应于接收到渲染后的所述当前时刻的图像帧,硬件编码渲染后的所述当前时刻的图像帧;所述输出缓存子单元用于缓存编码后的所述当前时刻的图像帧;以及所述输出子单元用于读取并且输出多个编码后的所述当前时刻的图像帧,作为对应于所述屏幕上显示的连续图像帧的视频流。
此外,根据本公开另一个方面的图像处理装置,其中,所述渲染单元初始化用于渲染的上下文环境,建立纹理资源;并且将所述缓存单元与所述上下文环境中的上述纹理资源相关联。
此外,根据本公开另一个方面的图像处理装置,其中,所述图像采集单元将屏幕上显示的连续图像帧投影到所述缓存单元。
根据本公开的又一个方面,提供了一种电子设备,包括:显示器,用于显示连续图像帧;图像处理器,用于实时采集所述显示器上显示的连续图像帧,缓存采集的所述连续图像帧,并且每隔预定时间间隔,渲染缓存的所述连续图像帧中当前时刻的图像帧,输出渲染后的所述当前时刻的图像帧;以及硬件编解码器,用于编码渲染后的所述当前时刻的图像帧,生成并且输出对应于所述屏幕上显示的连续图像帧的视频流。
此外,根据本公开又一个方面的电子设备,还包括:中央处理器,用于接收来自与所述电子设备连接的本地处理设备的启动指令,响应于所述启动指令,指示所述图像处理器开始实时采集和渲染处理,并且将所述视频流输出给所述本地处理设备,其中,所述视频流经由所述本地处理设备转发给远程处理设备,用于所述远程处理设备解码和页面显示。
如以下将详细描述的,根据本公开实施例的用于云真机系统的图像处理方法、图像处理装置和电子设备,通过利用电子设备端的硬件编码器执行屏幕图像的编码,并且对提供给远程处理设备的屏幕图像视频流执行帧速率控制,减少了电子设备屏幕图像到远程处理设备的传输时间,减小了云真机系统的延迟,并且降低了对于与电子设备连接的本地处理设备的硬件要求,增加了单台远程处理设备能够接入的电子设备数量,降低了相同规模的部署要求下的成本。此外,电子设备直接向本地处理设备传输视频流,相比于同等清晰度下的图像数据,减小了对于电子设备与本地处理设备之间传输带宽的需求。
要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并且意图在于提供要求保护的技术的进一步说明。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1A和图1B是概述根据本公开实施例的图像处理方法的应用场景的示意图;
图2是概述根据本公开实施例的图像处理方法的流程图;
图3是进一步图示根据本公开实施例的图像处理方法的流程图;
图4是图示根据本公开实施例的远程处理设备执行的图像处理的流程图;
图5是图示根据本公开实施例的本地处理设备执行的图像处理的流程图;
图6是图示根据本公开实施例的图像处理装置的功能框图;以及
图7是图示根据本公开实施例的电子设备的硬件框图。
具体实施方式
为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
首先,参照图1A示意性地描述根据本公开实施例的图像处理方法的应用场景。
如图1A所示,云真机系统100配置有多个电子设备101a-101n(诸如,智能电话、平板电脑等)和本地处理设备102(诸如,用作云真机系统服务器的本地计算机)。多个电子设备101a-101c与本地处理设备102直接连接(例如通过USB 2.0接口)。
云真机系统100的本地处理设备102经由通信网络103与远程处理设备104(诸如,使用云真机系统服务的远程计算机)执行数据通信。通信网络103包括但不限于遵循诸如传输控制协议和互联网协议(TCP/IP)、用户数据报协议(UDP)、超文本传输协议(HTTP)和/或文件传输协议(FTP)配置的互联网、IPTV网络、无线保真(Wi-Fi)网络、无线局域网(WLAN)、局域网(LAN)和/或城域网(MAN)等。
在本公开的一个实施例中,远程处理设备104经由通信网络103向本地处理设备102发送云真机服务请求。本地处理设备102响应于该服务请求,经由直接连接向该服务请求所对应的电子设备101a-101n之一(例如,电子设备101a)发送启动指令。电子设备101a-101n之一响应于该启动指令,执行与该启动指令对应的操作,例如运行与启动指令一起发送的应用等,同时采集自身显示器上显示的连续图像帧,渲染采集的图像帧,并且编码渲染后图像帧,从而生成对应于显示器上显示的连续图像帧的视频流。
此后,电子设备101a经由直接连接向本地处理设备102发送生成的视频流,再由本地处理设备102经由通信网络103向远程处理设备104转发。需要注意的是,通过配置本地处理设备102,保证远程处理设备104与电子设备101a-101n之间的网络安全隔离,本地处理设备102同时也用于对于利用云真机服务过程中的相关测试信息、测试过程进行记录等。在本公开的另一个实施例中,在内部直接通过本地处理设备102对多个直接连接的电子设备101a-101n执行测试的情况下,由电子设备101a-101n直接将采集和编码的视频流提供给执行测试的本地处理设备102,而无需额外的外部网络的数据通信。
图1B示出了在远程处理设备104上云真机服务的示意性界面。远程处理设备104利用接收到的视频流,通过Web看到电子设备101a的显示器上界面的实时图像,并且通过进一步经由通信网络103通过本地处理设备102向电子设备101a发送指令,看到电子设备101a响应于指令执行处理过程中显示器上界面的实时图像。
在如上所述的云真机系统100中,电子设备101a的屏幕图像帧的采集以及编码都在电子设备101a自己完成,降低了对于与电子设备101a连接的本地处理设备102的硬件要求。以下,将参照附图进一步详细描述根据本公开实施例的电子设备执行的图像处理方法。
图2是概述根据本公开实施例的图像处理方法的流程图。如图2所示,根据本公开实施例的电子设备执行的图像处理方法包括以下步骤。
在步骤S201中,实时采集屏幕上显示的连续图像帧。在本公开的一个实施例中,根据本公开实施例的电子设备是使用安卓操作系统的智能电话。安卓操作系统提供有虚拟显示器API模块(VirtualDisplay)。例如,由电子设备的图形处理单元(GPU)新建VirtualDisplay,并且将当前屏幕上显示的连续图像帧通过显示投影机制(DisplayProjection)投影到VirtualDisplay的缓存区(FrameBuffer)。当屏幕的显示缓存区出现内容刷新时,就同步投影到VirtualDisplay的FrameBuffer。也就是说,VirtualDisplay的FrameBuffer中缓存的图像帧的帧速率与屏幕的刷新率相同,例如为60帧/秒。以下,将参照图3进一步详细描述该投影采集步骤。
在步骤S202中,缓存采集的连续图像帧。在步骤S201中投影到VirtualDisplay的FrameBuffer的连续图像帧在FrameBuffer中缓存,以便用于随后的渲染和编码。
在步骤S203中,每隔预定时间间隔,渲染缓存的连续图像帧中当前时刻的图像帧,并且输出渲染后的当前时刻的图像帧。在本公开的一个实施例中,VirtualDisplay的FrameBuffer中缓存的图像帧具有第一帧速率例如为60帧/秒。如果不执行帧速率控制,直接将其编码为视频流提供给远程处理设备执行Web端的解码处理,而Web端的解码处理仅能支持30帧/秒以下的实时视频流,如果将导致在远程处理设备Web端的显示延迟。为此,在步骤S203中首先提供帧速率控制机制,即每隔预定时间间隔,渲染缓存的连续图像帧中当前时刻的图像帧。例如,设置目标帧速率为25帧/秒,则每隔40ms执行一次缓存的连续图像帧中当前时刻的图像帧的渲染。在本公开的一个实施例中,利用安卓操作系统提供的OpenGL技术执行图像帧的渲染。通过OpenGL每隔40ms执行一次缓存的连续图像帧中当前时刻的图像帧的渲染,输出渲染后的图像帧将具有第二帧速率25帧/秒,该帧速率将适于远程处理设备执行Web端的解码处理能力。容易理解的是,通过设置预定时间间隔,第二帧速率满足小于等于第一帧速率。
在步骤S204中,硬件编码渲染后的当前时刻的图像帧,生成并且输出对应于屏幕上显示的连续图像帧的视频流。在本公开的一个实施例中,利用安卓操作系统提供的硬件编码器MediaCodec对OpenGL渲染后的图像帧进行硬件编码,从而生成并且输出对应于屏幕上显示的连续图像帧的视频流。以下,将参照图3进一步详细描述该硬件编码步骤。
如参照图2概述的根据本公开实施例的图像处理方法,采用电子设备内部的硬件编码器MediaCodec执行屏幕图像的编码,并且在编码之前执行了帧速率控制机制。以下,将进一步参照图3详细描述根据本公开实施例的图像处理方法。
在步骤S301中,接收启动指令。在本公开的一个实施例中,电子设备从与其连接的本地处理设备接收通过ADB(Android Debug Bridge)Shell命令给出的启动指令。
在步骤S302中,将屏幕上显示的连续图像帧投影到缓存区。如上参照图2描述的步骤S201,在本公开的一个实施例中,由电子设备的图形处理单元(GPU)新建VirtualDisplay,并且将当前屏幕上显示的连续图像帧通过显示投影机制(DisplayProjection)投影到VirtualDisplay的缓存区(FrameBuffer)。
在步骤S303中,初始化用于渲染的上下文环境,建立纹理资源。在本公开的一个实施例中,初始化用于渲染的OpenGL上下文环境,并且新建一个纹理资源。
在步骤S304中,将缓存采集的连续图像帧的缓存区与上下文环境中的上述纹理资源相关联。在本公开的一个实施例中,将VirtualDisplay的FrameBuffer与OpenGL上下文环境中的纹理资源绑定,用于OpenGL的渲染。也就是说,在OpenGL随后进行渲染时,可以直接使用VirtualDisplay的FrameBuffer的当前的图像帧。
在步骤S305中,初始化硬件编码器。在本公开的一个实施例中,初始化硬件编码器MediaCodec的相关参数,诸如关键帧组、宽、高、编码器类型等。
在步骤S306中,每隔预定时间间隔,渲染缓存的连续图像帧中当前时刻的图像帧,并且输出渲染后的当前时刻的图像帧。如上参照图2描述的步骤S203,步骤S306用于对采集后待编码的屏幕上显示的连续图像帧执行帧速率控制。
在步骤S307中,响应于接收到渲染后的当前时刻的图像帧,硬件编码渲染后的当前时刻的图像帧。在本公开的一个实施例中,硬件编码器MediaCodec在接收到OpenGL渲染后的输出图像帧是,就自动触发其编码过程。
在步骤S308中,缓存编码后的当前时刻的图像帧。在本公开的一个实施例中,硬件编码器MediaCodec将编码后的当前时刻的图像帧缓存在输出缓存区(OutputBuffer)中。
在步骤S309中,读取并且输出多个编码后的当前时刻的图像帧,作为对应于屏幕上显示的连续图像帧的视频流。在本公开的一个实施例中,整体的编码完成后,从硬件编码器MediaCodec的OutputBuffer读取并且输出编码后的视频流。该视频流将通过直接连接传输到本地处理设备,并且通过本地处理设备经由通信网络传输到远程处理设备,由远程处理设备通过Web端解码和显示。在本公开的一个实施例中,电子设备的硬件编码器MediaCodec例如执行H.264编码算法,采用25帧/秒、1080×1920分辨率的格式,则需要20Mb/s的传输带宽,这是电子设备与本地处理设备之间的USB 2.0连接所能够支持的。
如参照图3详述的根据本公开实施例的图像处理方法,通过利用电子设备端的硬件编码器执行屏幕图像的编码,并且对提供给远程处理设备的屏幕图像视频流执行帧速率控制,减少了电子设备屏幕图像到远程处理设备的传输时间,减小了云真机系统的延迟,并且降低了对于与电子设备连接的本地处理设备的硬件要求,增加了单台远程处理设备能够接入的电子设备数量,降低了相同规模的部署要求下的成本。此外,电子设备直接向本地处理设备传输视频流,相比于同等清晰度下的图像数据,减小了对于电子设备与本地处理设备之间传输带宽的需求。
以下,将参照图4和图5描述远程处理设备和本地处理设备执行的图像处理流程。图4是图示根据本公开实施例的远程处理设备执行的图像处理的流程图。
在步骤S401中,连接到本地处理设备,发送启动指令。在本公开的一个实施例中,远程处理设备连接到本地处理设备,发送启动指令。
在步骤S402中,接收来自本地处理设备的视频流。在本公开的一个实施例中,电子设备接收经由本地处理设备转发的启动指令,执行如上参照图2和图3描述的图像处理方法,并将编码后的视频流经由本地处理设备传输到远程处理设备。
在步骤S403中,解码视频流,执行Web显示。在本公开的一个实施例中,远程处理设备在接收到完整的一帧视频流数据后,开始解码视频流,并且刷新到Web页面执行显示。例如,显示如图1B所示的示意性界面。
在步骤S404中,利用Web显示,进行用户交互响应处理。在本公开的一个实施例中,远程处理设备的用户通过Web看到电子设备的显示器上界面的实时图像,并且通过Web显示与电子设备执行交互处理,即进一步经由通信网络通过本地处理设备向电子设备发送指令,接收并且显示电子设备响应于指令执行处理过程中显示器上界面的实时图像。
在步骤S405中,向本地处理设备发送结束指令。在本公开的一个实施例中,在利用云真机系统的测试过程完成后,远程处理设备向本地处理设备发送结束指令,本地处理设备向电子设备转发该结束指令以便电子设备结束屏幕显示图像的采集和编码。
图5是图示根据本公开实施例的本地处理设备执行的图像处理的流程图。
在步骤S501中,接收来自远程处理设备的启动指令。在本公开的一个实施例中,远程处理设备和本地电子设备之间通过通信网络执行指令的传输。
在步骤S502中,向电子设备发送启动指令。在本公开的一个实施例中,本地处理设备通过ADB(Android Debug Bridge)Shell命令向与其连接的电子设备发送启动指令。
在步骤S503中,接收由电子设备采集、渲染、编码的视频流。在本公开的一个实施例中,电子设备接收经由本地处理设备转发的启动指令,执行如上参照图2和图3描述的图像处理方法,并将编码后的视频流经由本地处理设备传输到远程处理设备。本地处理设备与电子设备之间通过诸如USB 2.0接口的直接连接进行视频流的传输。
在步骤S504中,将视频流转发给远程处理设备。在本公开的一个实施例中,远程处理设备和本地电子设备之间通过通信网络执行视频流的传输。
在步骤S505中,接收来自远程处理设备的结束指令,指示电子设备结束处理。
以上,参照流程图描述了根据本公开实施例的图像处理方法。以下,将参照附图描述根据本公开实施例的图像处理装置和电子设备。
图6是图示根据本公开实施例的图像处理装置的功能框图。如图6所示,根据本公开实施例的图像处理装置60包括图像采集单元601、缓存单元602、渲染单元603和编码单元604。上述各模块可以分别执行如上参照图2和图3描述的根据本公开的实施例的图像处理方法的各个步骤。本领域的技术人员理解:这些单元模块可以单独由硬件、单独由软件或者由其组合以各种方式实现,并且本公开不限于它们的任何一个。
图像采集单元601用于实时采集屏幕上显示的连续图像帧。缓存单元602用于缓存采集的所述连续图像帧。所述图像采集单元601将屏幕上显示的连续图像帧投影到所述缓存单元602。在本公开的一个实施例中,图像采集单元601例如为安卓操作系统提供的虚拟显示器API模块(VirtualDisplay)。所述缓存单元602例如为VirtualDisplay的缓存区(FrameBuffer)。当屏幕的显示缓存区出现内容刷新时,图像采集单元601就同步投影到缓存单元602。
渲染单元603用于每隔预定时间间隔,渲染缓存的所述连续图像帧中当前时刻的图像帧,并且输出渲染后的所述当前时刻的图像帧。在本公开的一个实施例中,渲染单元603由安卓操作系统提供的OpenGL技术实现。渲染单元603初始化用于渲染的上下文环境,建立纹理资源;并且将缓存单元602与所述上下文环境中的上述纹理资源相关联。在本公开的一个实施例中,缓存单元602中缓存的图像帧的帧速率例如为60帧/秒。设置目标帧速率为25帧/秒,则渲染单元603每隔40ms执行一次缓存的连续图像帧中当前时刻的图像帧的渲染。通渲染单元603每隔40ms执行一次缓存的连续图像帧中当前时刻的图像帧的渲染,输出渲染后的图像帧将具有25帧/秒的帧速率,该帧速率将适于远程处理设备执行Web端的解码处理能力。
编码单元604用于硬件编码渲染后的所述当前时刻的图像帧,生成并且输出对应于所述屏幕上显示的连续图像帧的视频流。在本公开的一个实施例中,编码单元604利用安卓操作系统提供的硬件编码器MediaCodec实现。更具体地,编码单元604包括硬件编码子单元6041、输出缓存子单元6042和输出子单元6043。所述硬件编码子单元6041用于响应于接收到渲染后的所述当前时刻的图像帧,硬件编码渲染后的所述当前时刻的图像帧。所述输出缓存子单元6042用于缓存编码后的所述当前时刻的图像帧。所述输出子单元6043用于读取并且输出多个编码后的所述当前时刻的图像帧,作为对应于所述屏幕上显示的连续图像帧的视频流。
图7是图示根据本公开实施例的电子设备的硬件框图。根据本公开实施例的电子设备例如为智能电话、平板电脑等。
如图7所示,根据本公开实施例的电子设备70包括显示器701、图像处理器702、硬件编码器703和中央处理器704。这些硬件组件例如通过系统总线互相连接。容易理解的是,图7仅是示例性地示出了与本公开相关的硬件组件,根据本公开实施例的电子设备70还可以包括其他未示出的硬件组件。
显示器701用于显示连续图像帧。
图像处理器702例如为电子设备70的GPU,用于实时采集所述显示器上显示的连续图像帧,缓存采集的所述连续图像帧,并且每隔预定时间间隔,渲染缓存的所述连续图像帧中当前时刻的图像帧,输出渲染后的所述当前时刻的图像帧。
硬件编解码器703例如为电子设备70的MediaCodec,用于编码渲染后的所述当前时刻的图像帧,生成并且输出对应于所述显示器上显示的连续图像帧的视频流。
中央处理器704例如为电子设备70的CPU,用于接收来自与所述电子设备70连接的本地处理设备的启动指令,响应于所述启动指令,指示所述图像处理器702开始实时采集和渲染处理,并且将所述视频流输出给所述本地处理设备,所述视频流经由所述本地处理设备转发给远程处理设备,用于所述远程处理设备解码和页面显示。
以上,参照附图描述了根据本公开实施例的根据本公开实施例的用于云真机系统的图像处理方法、图像处理装置和电子设备,通过利用电子设备端的硬件编码器执行屏幕图像的编码,并且对提供给远程处理设备的屏幕图像视频流执行帧速率控制,减少了电子设备屏幕图像到远程处理设备的传输时间,减小了云真机系统的延迟,并且降低了对于与电子设备连接的本地处理设备的硬件要求,增加了单台远程处理设备能够接入的电子设备数量,降低了相同规模的部署要求下的成本。此外,电子设备直接向本地处理设备传输视频流,相比于同等清晰度下的图像数据,减小了对于电子设备与本地处理设备之间传输带宽的需求。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
另外,如在此使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。
还需要指出的是,在本公开的系统和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (3)

1.一种用于云真机系统中的电子设备的图像处理方法,所述云真机系统包括至少一个所述电子设备和本地处理设备,所述图像处理方法包括:
所述电子设备从与其连接的所述本地处理设备接收启动指令;
响应于所述启动指令,实时采集在所述电子设备的屏幕上显示的连续图像帧;由所述电子设备的图形处理单元GPU新建虚拟显示器API模块VirtualDisplay,将屏幕上显示的连续图像帧通过显示投影机制DisplayProjection投影到虚拟显示器API模块VirtualDisplay的缓存区,其中,所述缓存的连续图像帧与屏幕的刷新率相同且具有第一帧速率;
初始化用于渲染的OpenGL上下文环境并新建一个纹理资源;将缓存连续图像帧的缓存区与所述纹理资源相关联;初始化所述电子设备的硬件编码器;每隔预定时间间隔,渲染缓存的所述连续图像帧中当前时刻的图像帧,并且输出渲染后的所述当前时刻的图像帧,所述渲染后的图像帧具有第二帧速率,所述第二帧速率小于所述第一帧速率;以及
响应于接收到OpenGL渲染后的所述当前时刻的图像帧,触发所述硬件编码器硬件编码渲染后的所述当前时刻的图像帧,生成并且输出对应于所述屏幕上显示的连续图像帧的视频流,并且将所述视频流输出给所述本地处理设备,
其中,所述视频流经由所述本地处理设备转发给远程处理设备,用于所述远程处理设备解码和页面显示,
其中,所述硬件编码渲染后的所述当前时刻的图像帧,生成并且输出对应于所述屏幕上显示的连续图像帧的视频流包括:
响应于接收到渲染后的所述当前时刻的图像帧,硬件编码渲染后的所述当前时刻的图像帧;
缓存编码后的所述当前时刻的图像帧;以及
读取并且输出多个编码后的所述当前时刻的图像帧,作为对应于所述屏幕上显示的连续图像帧的视频流。
2.一种图像处理装置,所述图像处理装置配置在云真机系统中的电子设备中,所述云真机系统包括至少一个所述电子设备和本地处理设备,所述图像处理装置包括:
图像采集单元,用于在从与所述电子设备连接的所述本地处理设备接收启动指令之后,响应于所述启动指令,实时采集所述电子设备的屏幕上显示的连续图像帧;由所述电子设备的图形处理单元GPU新建虚拟显示器API模块VirtualDisplay,将屏幕上显示的连续图像帧通过显示投影机制DisplayProjection投影到虚拟显示器API模块VirtualDisplay的缓存区,其中,所述缓存的连续图像帧与屏幕的刷新率相同且具有第一帧速率;
渲染单元,用于初始化用于渲染的OpenGL上下文环境并新建一个纹理资源;将缓存连续图像帧的缓存区与所述纹理资源相关联;初始化所述电子设备的硬件编码器;每隔预定时间间隔,渲染缓存的所述连续图像帧中当前时刻的图像帧,并且输出渲染后的所述当前时刻的图像帧,所述渲染后的图像帧具有第二帧速率,所述第二帧速率小于所述第一帧速率;以及
编码单元,用于响应于接收到OpenGL渲染后的所述当前时刻的图像帧,触发所述硬件编码器硬件编码渲染后的所述当前时刻的图像帧,生成并且输出对应于所述屏幕上显示的连续图像帧的视频流,并且将所述视频流输出给所述本地处理设备,
其中,所述视频流经由所述本地处理设备转发给远程处理设备,用于所述远程处理设备解码和页面显示,
其中,所述编码单元包括硬件编码子单元、输出缓存子单元和输出子单元:
所述硬件编码子单元用于响应于接收到渲染后的所述当前时刻的图像帧,硬件编码渲染后的所述当前时刻的图像帧;
所述输出缓存子单元用于缓存编码后的所述当前时刻的图像帧;以及
所述输出子单元用于读取并且输出多个编码后的所述当前时刻的图像帧,作为对应于所述屏幕上显示的连续图像帧的视频流。
3.一种云真机系统中的电子设备,所述云真机系统包括至少一个所述电子设备和本地处理设备,所述电子设备包括:
显示器,用于显示连续图像帧;
中央处理器,用于接收来自与所述电子设备连接的所述本地处理设备的启动指令,响应于所述启动指令,指示所述图像处理器开始实时采集和渲染处理;
图像处理器,用于实时采集响应于所述启动指令在所述显示器上显示的连续图像帧,由所述电子设备的图形处理单元GPU新建虚拟显示器API模块VirtualDisplay,将屏幕上显示的连续图像帧通过显示投影机制DisplayProjection投影到虚拟显示器API模块VirtualDisplay的缓存区,其中,所述缓存的连续图像帧与屏幕的刷新率相同且具有第一帧速率;初始化用于渲染的OpenGL上下文环境并新建一个纹理资源;将缓存连续图像帧的缓存区与所述纹理资源相关联;初始化所述电子设备的硬件编码器;并且每隔预定时间间隔,渲染缓存的所述连续图像帧中当前时刻的图像帧,输出渲染后的所述当前时刻的图像帧,所述渲染后的图像帧具有第二帧速率,所述第二帧速率小于所述第一帧速率;以及
硬件编解码器,用于响应于接收到OpenGL渲染后的所述当前时刻的图像帧,编码渲染后的所述当前时刻的图像帧,生成并且输出对应于所述显示器上显示的连续图像帧的视频流,并且将所述视频流输出给所述本地处理设备,
其中,所述视频流经由所述本地处理设备转发给远程处理设备,用于所述远程处理设备解码和页面显示,
其中,所述硬件编解码器包括硬件编码子单元、输出缓存子单元和输出子单元:
所述硬件编码子单元用于响应于接收到渲染后的所述当前时刻的图像帧,硬件编码渲染后的所述当前时刻的图像帧;
所述输出缓存子单元用于缓存编码后的所述当前时刻的图像帧;以及
所述输出子单元用于读取并且输出多个编码后的所述当前时刻的图像帧,作为对应于所述屏幕上显示的连续图像帧的视频流。
CN201811307394.XA 2018-11-05 2018-11-05 图像处理方法、图像处理装置和电子设备 Active CN109302637B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811307394.XA CN109302637B (zh) 2018-11-05 2018-11-05 图像处理方法、图像处理装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811307394.XA CN109302637B (zh) 2018-11-05 2018-11-05 图像处理方法、图像处理装置和电子设备

Publications (2)

Publication Number Publication Date
CN109302637A CN109302637A (zh) 2019-02-01
CN109302637B true CN109302637B (zh) 2023-02-17

Family

ID=65144966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811307394.XA Active CN109302637B (zh) 2018-11-05 2018-11-05 图像处理方法、图像处理装置和电子设备

Country Status (1)

Country Link
CN (1) CN109302637B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113491877B (zh) * 2020-04-01 2023-12-08 华为技术有限公司 触发信号生成方法及装置
CN111654720B (zh) * 2020-07-17 2023-08-25 腾讯科技(深圳)有限公司 视频编码方法、装置、设备及可读存储介质
CN112085828B (zh) * 2020-09-18 2024-04-26 深圳市欢太科技有限公司 图像处理方法及装置、云真机系统、存储介质和电子设备
CN112422875A (zh) * 2020-10-14 2021-02-26 西安万像电子科技有限公司 图像处理方法及装置
CN112788193A (zh) * 2020-12-30 2021-05-11 北京达佳互联信息技术有限公司 图像传输方法、装置、电子设备及存储介质
CN113923507B (zh) * 2021-12-13 2022-07-22 北京蔚领时代科技有限公司 Android端的低延迟视频渲染方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101918921A (zh) * 2008-01-27 2010-12-15 思杰系统有限公司 用于远程提供三维图形的方法和系统
US7969444B1 (en) * 2006-12-12 2011-06-28 Nvidia Corporation Distributed rendering of texture data
CN103064644A (zh) * 2011-10-21 2013-04-24 联想(北京)有限公司 一种图像显示方法、显卡及电子设备
CN104917990A (zh) * 2014-03-12 2015-09-16 索尼电脑娱乐美国公司 通过调整垂直消隐进行视频帧速率补偿
CN105871916A (zh) * 2016-06-08 2016-08-17 浙江宇视科技有限公司 视频流送显处理方法、装置及系统
CN105988688A (zh) * 2016-01-22 2016-10-05 腾讯科技(深圳)有限公司 一种截图的方法及装置
CN106603543A (zh) * 2016-12-22 2017-04-26 努比亚技术有限公司 校正流媒体音视频同步的方法及装置
CN107277616A (zh) * 2017-07-21 2017-10-20 广州爱拍网络科技有限公司 视频特效渲染方法、装置及终端
CN108174214A (zh) * 2017-12-08 2018-06-15 重庆邮电大学 一种基于屏幕内容视频编码的远程桌面共享方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100571396C (zh) * 2008-04-25 2009-12-16 清华大学 用于解码复杂度限制下的视频编码方法
CN103152458B (zh) * 2011-12-07 2016-04-27 中国移动通信集团广东有限公司 测试手机、远程手机测试系统、远程手机测试方法与装置
US10616086B2 (en) * 2012-12-27 2020-04-07 Navidia Corporation Network adaptive latency reduction through frame rate control
CN105279006B (zh) * 2014-07-09 2019-12-17 腾讯科技(深圳)有限公司 基于Android系统的屏幕截图方法及终端
CN108156520B (zh) * 2017-12-29 2020-08-25 珠海市君天电子科技有限公司 视频播放方法、装置、电子设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7969444B1 (en) * 2006-12-12 2011-06-28 Nvidia Corporation Distributed rendering of texture data
CN101918921A (zh) * 2008-01-27 2010-12-15 思杰系统有限公司 用于远程提供三维图形的方法和系统
CN103064644A (zh) * 2011-10-21 2013-04-24 联想(北京)有限公司 一种图像显示方法、显卡及电子设备
CN104917990A (zh) * 2014-03-12 2015-09-16 索尼电脑娱乐美国公司 通过调整垂直消隐进行视频帧速率补偿
CN105988688A (zh) * 2016-01-22 2016-10-05 腾讯科技(深圳)有限公司 一种截图的方法及装置
CN105871916A (zh) * 2016-06-08 2016-08-17 浙江宇视科技有限公司 视频流送显处理方法、装置及系统
CN106603543A (zh) * 2016-12-22 2017-04-26 努比亚技术有限公司 校正流媒体音视频同步的方法及装置
CN107277616A (zh) * 2017-07-21 2017-10-20 广州爱拍网络科技有限公司 视频特效渲染方法、装置及终端
CN108174214A (zh) * 2017-12-08 2018-06-15 重庆邮电大学 一种基于屏幕内容视频编码的远程桌面共享方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Android动画与OpenGL开发;mannoo123;《百度文库》;20161013;网页第二部分OpenGL基础以及第三部分Android oengl应用开发 *
基于Android的医疗超声远程操作软件设计与实现;周之锐;《中国优秀硕士学位论文 全文数据库 信息科技辑》;20170215;论文第三至四章和附图4-3 *

Also Published As

Publication number Publication date
CN109302637A (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
CN109302637B (zh) 图像处理方法、图像处理装置和电子设备
US9665332B2 (en) Display controller, screen transfer device, and screen transfer method
US20130254417A1 (en) System method device for streaming video
CN109040786B (zh) 摄像头数据的传输方法、装置、系统及存储介质
CN111625211B (zh) 一种屏幕投屏方法、装置、安卓设备及显示设备
JP2017517910A (ja) ビデオ同期再生方法、装置、およびシステム
CN110430467B (zh) 远程设备访问方法和装置
WO2012151957A1 (zh) 服务器、客户端及利用其远程播放视频文件的方法和系统
KR101942269B1 (ko) 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법
US9392063B2 (en) Information processing apparatus that controls transfer of image, control method therefor, and storage medium
CN113973224B (zh) 媒体信息的传输方法、计算设备及存储介质
CN109587118B (zh) Android网游的分布式支持多终端和多网络的系统
EP2563038A1 (en) Method for transmitting video signals from an application on a server over an IP network to a client device
CN114302176A (zh) 视频播放方法及装置
CN108933769B (zh) 流媒体截图系统、方法及装置
US20230153137A1 (en) Remote rendering system, method and device based on virtual mobile architecture
CN114666562A (zh) 3d场景交互方法、装置和系统
CN106851134B (zh) 传输图像数据的方法、装置及系统
CN115516431A (zh) 一种智能摄像头的测试方法及装置
CN110990109A (zh) 一种拼接屏回显方法、终端、系统及存储介质
JP6436762B2 (ja) 情報処理装置およびサービス提供方法
CN115209117B (zh) 一种投屏方法及装置
CN110798700B (zh) 视频处理方法、视频处理装置、存储介质与电子设备
JP6067085B2 (ja) 画面転送装置
CN115731338A (zh) 一种基于x协议的二三维一体化远程渲染方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant