CN116964553A - 投屏方法及装置、电子设备、计算机可读介质 - Google Patents

投屏方法及装置、电子设备、计算机可读介质 Download PDF

Info

Publication number
CN116964553A
CN116964553A CN202280000091.1A CN202280000091A CN116964553A CN 116964553 A CN116964553 A CN 116964553A CN 202280000091 A CN202280000091 A CN 202280000091A CN 116964553 A CN116964553 A CN 116964553A
Authority
CN
China
Prior art keywords
target
information
original
frame data
display data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280000091.1A
Other languages
English (en)
Inventor
汪然
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BOE Technology Group Co Ltd
Original Assignee
BOE Technology Group 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 BOE Technology Group Co Ltd filed Critical BOE Technology Group Co Ltd
Publication of CN116964553A publication Critical patent/CN116964553A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本公开提供一种投屏方法及装置、电子设备、计算机可读介质,属于互联网技术领域,可解决投屏动态调整的问题。本公开的投屏方法包括基于原始显示数据生成原始帧数据,并将原始帧数据传送至目标设备,以供目标设备显示基于原始帧数据生成的原始图像;接收目标设备传送的目标区域信息;其中,目标区域信息是目标设备上待调整的目标区域的位置信息;基于目标区域信息从原始显示数据提取目标显示数据;基于目标显示数据生成目标帧数据,并将目标帧数据传送至目标设备,以供目标设备显示基于目标帧数据生成的目标图像。本公开既可实现对目标设备的用户界面的动态调整,又能提高画面的清晰度。

Description

投屏方法及装置、电子设备、计算机可读介质 技术领域
本公开属于互联网技术领域,具体涉及一种投屏方法及装置、电子设备、计算机可读介质。
背景技术
随着大尺寸显示设备的发展,不同尺寸的广告机、信息屏、会议机等显示设备的应用逐渐扩大,但是这些显示设备受制于使用场景等因素无法直接进行触摸操作,并且受限于安装环境,无法连接鼠标等输入设备,造成控制操作不便。
通过同屏方式将大尺寸显示设备所显示的内容投屏到手机或PAD等移动终端,并通过移动终端反向控制,可以实现对大尺寸显示设备的控制操作。
发明内容
本公开旨在提供一种投屏方法及装置、电子设备、计算机可读介质。
本公开第一方面提供一种投屏方法,应用于源设备,其包括:
基于原始显示数据生成原始帧数据,并将所述原始帧数据传送至目标设备,以供所述目标设备显示基于所述原始帧数据生成的原始图像;
接收所述目标设备传送的目标区域信息;其中,所述目标区域信息是所述目标设备上待调整的目标区域的位置信息;
基于所述目标区域信息从所述原始显示数据提取目标显示数据;
基于所述目标显示数据生成目标帧数据,并将所述目标帧数据传送至所述目标设备,以供所述目标设备显示基于所述目标帧数据生成的目标图像。
其中,所述目标区域信息包括目标区域的坐标信息;
所述基于所述目标区域信息从所述原始显示数据提取目标显示数据,包括:
基于所述目标区域的坐标信息确定编码区域;
根据所述编码区域从所述原始显示数据提取目标显示数据。
其中,所述基于所述目标显示数据生成目标帧数据,包括:
基于设定的编码分辨率对所述目标显示数据进行编码,生成所述目标帧数据。
其中,所述基于所述目标显示数据生成目标帧数据,并将所述目标帧数据发送至所述目标设备之后,还包括:
接收并存储所述目标设备返回的坐标更新信息;其中,所述坐标更新信息是基于所述目标区域信息和源设备的用户界面的分辨率。
其中,所述基于原始显示数据生成原始帧数据,包括:
对所述原始显示数据进行合成,获得显示数据;
对所述显示数据进行编码,获得原始帧数据。
本公开第二方面提供一种投屏方法,应用于目标设备,其包括:
基于原始帧数据获得原始图像,并显示所述原始图像;其中,所述原始帧数据是源设备基于原始显示数据生成并传送来的帧数据;
获取目标区域信息,并将所述目标区域信息传送至所述源设备;
接收所述目标帧数据;其中,所述目标帧数据是所述源设备基于所述目标区域信息从所述原始显示数据提取目标显示数据;并基于所述目标显示数据生成的帧数据;
基于所述目标帧数据获得目标图像,并显示所述目标图像。
其中,所述基于原始帧数据获得原始图像,并显示所述原始图像,包括:
对所述原始帧数据进行解码,获得所述原始图像;
在用户界面中显示所述原始图像。
其中,所述获取目标区域信息,包括:
响应激活指令,获取轨迹信息;其中,所述轨迹信息是用户在所述目标 设备上选取所述目标区域的轨迹信息;
基于所述轨迹信息确定所述目标区域信息。
其中,所述基于所述轨迹信息确定所述目标区域信息,包括:
基于所述轨迹信息确定移动轨迹的起点坐标和终点坐标;
基于所述起点坐标和所述终点坐标确定所述目标区域信息。
其中,所述基于所述轨迹信息确定所述目标区域信息,包括:
基于所述轨迹信息确定移动轨迹的起点坐标和与所述起点坐标相对的对角的坐标;
基于所述起点坐标和所述对角的坐标确定所述目标区域信息。
其中,所述基于所述目标帧数据获得目标图像,并显示所述目标图像之后,还包括:
基于所述目标区域信息和所述源设备的分辨率的宽度和高度确定坐标更新信息;
将所述坐标更新信息传送至所述源设备。
本公开第三方面提供一种投屏装置,应用于源设备,其包括:
生成模块,被配置为基于原始显示数据生成原始帧数据;
第一发送模块,被配置为将所述原始帧数据传送至目标设备,以供所述目标设备显示基于所述原始帧数据生成的原始图像;
第一接收模块,被配置为接收所述目标设备传送的目标区域信息;其中,所述目标区域信息是所述目标设备上待调整的目标区域的位置信息;
提取模块,被配置为基于所述目标区域信息从所述原始显示数据提取目标显示数据;
所述生成模块,还被配置为基于所述目标显示数据生成目标帧数据;
所述第一发送模块,还被配置为将所述目标帧数据传送至所述目标设备,以供所述目标设备显示基于所述目标帧数据生成的目标图像。
其中,所述目标区域信息包括目标区域的坐标信息;
所述提取模块,包括:
确定单元,被配置为基于所述目标区域的坐标信息确定编码区域;
提取单元,被配置为根据所述编码区域从所述原始显示数据提取目标显示数据。
其中,所述生成模块,被配置为基于设定的编码分辨率对所述目标显示数据进行编码,生成所述目标帧数据。
其中,所述第一接收模块,还被配置为接收所述目标设备返回的坐标更新信息;其中,所述坐标更新信息是基于所述目标区域信息和源设备的分辨率的宽度和高度确定的信息
所述装置还包括:存储模块,被配置为存储所述坐标更新信息。
其中,所述生成模块包括:
合成单元,被配置为将所述原始图像显示信息输入虚拟显示设备进行合成,获得显示数据;其中,所述虚拟显示设备是通过表面创作客户端创建的虚拟显示设备;
编码单元,被配置为对所述显示数据进行编码,获得原始帧数据。
本公开第四方面提供一种投屏装置,应用于目标设备,其包括:
获得模块,被配置为基于原始帧数据获得原始图像;其中,所述原始帧数据是源设备基于原始显示数据生成并传送来的帧数据;
显示模块,被配置为显示所述原始图像;
获取模块,被配置为获取目标区域信息;
第二发送模块,被配置为将所述目标区域信息传送至所述源设备;
第二接收模块,被配置为接收所述目标帧数据;其中,所述目标帧数据所述源设备基于所述目标区域信息从所述原始显示数据提取目标显示数据;并基于所述目标显示数据生成的帧数据;
所述获得模块,还被配置为基于所述目标帧数据获得目标图像;
所述显示模块,还被配置为显示所述目标图像。
其中,所述获得模块,包括:
解码单元,被配置为对所述原始帧数据进行解码,获得所述原始图像。
其中,所述获取模块,包括:
响应单元,被配置为响应激活指令;
获取单元,被配置为获取轨迹信息;其中,所述轨迹信息是用户在目标设备的用户界面移动的轨迹信息;
确定单元,被配置为基于所述轨迹信息确定所述目标区域信息。
其中,所述确定单元,包括:
第一确定子单元,被配置为基于所述轨迹信息确定移动轨迹的起点坐标和终点坐标;
第二确定子单元,被配置为基于所述起点坐标和所述终点坐标确定所述目标区域信息。
其中,所述确定单元,包括:
第三确定子单元,被配置为基于所述轨迹信息确定移动轨迹的起点坐标和与所述起点坐标相对的相对角的坐标;
第四确定子单元,被配置为基于所述起点坐标和所述相对角的坐标确定所述目标区域信息。
其中,所述装置,还包括:
坐标信息更新模块,被配置为基于所述目标区域信息和所述源设备的分辨率的宽度和高度确定坐标更新信息;
所述第二发送模块,还被配置为将所述坐标更新信息传送至所述源设备。
本公开第五方面提供一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面和第二方面中任意一项所述的方法;
一个或多个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。
本公开第六方面提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现第一方面和第二方面提供的任意一项所述的方法。
附图说明
图1为大尺寸显示设备与移动设备进行投屏的应用场景图;
图2为本公开实施例提供的一种投屏方法的流程图;
图3为本公开实施例中基于目标区域信息从原始显示数据提取目标显示数据的流程图;
图4a为本公开实施例提供的一种选取目标区域的示意图;
图4b为本公开实施例提供的另一种选取目标区域的示意图;
图5为本公开实施例提供的一种投屏方法的流程图;
图6为本公开实施例中获取目标区域信息的流程图;
图7为本公开实施例提供的一种投屏装置的结构示意图;
图8为本公开实施例提供的一种投屏装置的结构示意图;
图9为本公开实施例提供的一种获取模块的结构示意图;
图10为本公开实施例提供的一种投屏方法的流程图;
图11a-11e为本公开实施例中大尺寸显示设备和移动终端的用户界面显示的图像;
图12为本公开实施例提供的一种电子设备的结构示意图。
其中附图标记为:1、大尺寸显示设备;2、移动设备;11、Surface模块;12、虚拟显示设备;13、编码器;14、守护进程模块;21、应用程序包模块;22、解码器;23、Surface View模块;700、投屏装置;701、生成模块;702、第一发送模块;703、第一接收模块;704、提取模块;800、投屏模块;801、获得模块;802、显示模块;803、获取模块;804、第二发送模块;805、第二接收模块;806、坐标信息更新模块;900、获取模块;901、响应单元;902、获取单元;903、确定单元;1201、处理器;1202、存储器;1203、I/O接口。
具体实施方式
为使本领域技术人员更好地理解本公开/实用新型的技术方案,下面结合附图和具体实施方式对本公开/实用新型作进一步详细描述。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
将大尺寸显示设备的显示内容投屏至移动终端,借助移动终端能够实现对大尺寸显示设备的反向控制。然而,由于大尺寸显示设备具有较大的显示分辨率,而移动终端的显示屏幕的尺寸较小,在将大尺寸显示设备的用户界 面(User Interface,简称UI)投屏到移动终端时,需要对大尺寸显示设备的用户界面等比例缩小,这将导致操控按钮等UI控件显示过小,操作困难。同时,由于大尺寸显示设备具有较大的显示分辨率,基于编码的投屏方式,需要进行低分辨率的编码,否则数据量过大会影响传输效率,甚至会导致关键帧丢失的现象,造成花屏。但是低分辨率的编码又会造成移动设备上投屏显示不清晰的缺陷,尤其影响关键区域的观看效果。
图1为大尺寸显示设备与移动设备进行投屏的应用场景图。如图1所示,大尺寸显示设备1可以获得视频显示数据,并对视频显示数据进行编码,获得帧数据,再将帧数据发送至移动设备2,移动设备2对帧数据解码,获得视频,并在用户界面显示视频。
以安卓系统为例,大尺寸显示设备1的Native(本地)层创建虚拟显示设备12,获取Surface(表面)模块11的视频显示数据,并使用编码器(如MediaCodec)13进行编码,得到帧数据(如H.264码流),通过守护进程(如Deamon进程)模块14发送至移动设备2的应用程序包(Android application package,简称APK)模块21。之后通过解码器(如MediaCodec)22将帧数据解码,并在利用SurfaceView模块23创建的窗口中进行显示。
需要说明的是,本公开实施例提及的大尺寸显示设备是一个相对概念,大尺寸并不表示对显示设备的尺寸进行限定。通常,大尺寸显示设备是指42寸以上的显示屏,这种显示屏通常因为环境等因素未连接鼠标、键盘等输入设备,无法进行操控,通过本公开实施例提供的投屏方法,借助移动终端可以进行操控。但本公开实施例对大尺寸显示设备的定义并不局限于此,实际上,即使显示屏小于42寸,若没有连接输入设备,又希望对其进行操控,均可以借助移动终端采用本公开实施例提供的投屏方式进行操控。
还需要说明的是,本公开实施例中的移动设备可以是手机、IPAD等设备,也可以是其它便于携带、且方便用户操作的设备,如笔记本电脑,或者 是与大尺寸显示设备配套使用的小型移动设备,在移动设备上的操作可以反向控制大尺寸显示设备,以在移动设备上仅显示放大区域的帧数据,从而方便控制大尺寸显示设备。
第一方面,本公开实施例提供的一种投屏方法,应用于源设备(如大尺寸显示设备),该投屏方法可以对目标设备的用户界面的显示内容进行动态调整(如局部放大UI控件区域),以提高目标设备的用户界面的清晰度。
图2为本公开实施例提供的一种投屏方法的流程图。如图2所示,投屏方法包括:
步骤S201,基于原始显示数据生成原始帧数据,并将原始帧数据传送至目标设备,以供目标设备显示基于原始帧数据生成的原始图像。
其中,原始显示数据是未经选择的显示数据,可以同时在源设备和目标设备的用户界面显示,即源设备将原始图像投屏至目标设备。
通常原始显示数据并不直接发送至目标设备,而是对原始显示数据进行处理,获得原始帧数据,再将原始帧数据发送至目标设备。在一些实施例中,对原始显示数据进行编码处理,获得原始帧数据。本公开实施例对编码方式以及原始帧数据的格式不作限定。例如,在安卓系统中,使用MediaCodec对原始显示数据进行编码,获得H.264格式的原始帧数据。
在一些实施例中,目标设备收到原始帧数据后,对原始帧数据进行处理获得原始图像,并在用户界面(窗口)显示原始图像。其中,目标设备对原始帧数据的处理方式与源设备对原始显示数据的处理方式匹配。例如,在源设备使用MediaCodec对原始显示数据进行解码处理时,目标设备使用MediaCodec对原始帧数据进行解码,获得原始图像。
在一些实施例中,目标设备的用户界面的尺寸小于源设备的用户界面的尺寸,即,源设备的用户界面较大,而目标设备的用户界面较小,原始图像在源设备的显示图像比目标设备的显示图像大,尤其在源设备的用户界面与 目标设备的用户界面相差较大的情况下,在源设备显示的图像比目标设备显示的图像的大小相差悬殊,不利于用户在目标设备上操控UI控件(按键区域)。因此,需要将UI控件的图像尺寸在目标设备上放大。
步骤S202,接收目标设备传送的目标区域信息。
其中,目标区域信息是目标设备上待调整的目标区域的位置信息。其中,目标区域可以是原始图像中的任何区域。本公开实施例对目标区域不作限定。例如,目标区域可以是UI控件所在区域。
本公开实施例对调整操作的具体方式不作限定,例如调整操作可以是放大等操作。
在一些实施例中,目标区域的位置信息可以是确定目标区域的点、线等信息,本公开实施例对此不做限定。例如,目标区域的位置信息可以是确定目标区域中一些位置点的坐标信息。
在一些实施例中,源设备与目标设备信号连接,用于相互之间的数据传输。本公开实施例对源设备与目标设备之间连接方式不作限定。例如,连接方式包括用户数据包协议(UDP)、数据传输协议(UDT)和传输控制协议(TCP)中的任意一种方式。
步骤S203,基于目标区域信息从原始显示数据提取目标显示数据。
其中,目标显示数据是原始显示数据中的部分显示数据。在一些实施例中,目标显示数据是用户选择的目标区域对应的显示数据。
步骤S204,基于目标显示数据生成目标帧数据,并将目标帧数据传送至目标设备,以供目标设备显示基于目标帧数据生成的目标图像。
本公开实施例对目标显示数据的处理方式不作限定,例如,可以采用与原始显示数据相同的处理方式对目标显示数据进行处理,获得目标帧数据。
示例地,使用MediaCodec对目标显示数据进行编码处理,获得H.264格式的目标帧数据。
本公开实施例提供的投屏方法,在接收到目标区域信息后,基于目标区域信息从原始显示数据提取目标显示数据,并基于目标显示数据生成目标帧数据,实现了动态调整目标设备的显示范围,方便用户在目标设备上进行操作。另外,由于目标显示数据是直接从原始显示数据提取,可以对目标显示数据的分辨率进行调整,而且目标显示数据相对于原始显示数据,减少了编码区域的像素,可以提高编码的分辨率,从而提高目标设备的清晰度。
在一些实施例中,目标区域信息包括目标区域的坐标信息。如图3所示,步骤S203,基于目标区域信息从原始显示数据提取目标显示数据,包括:
步骤S301,基于目标区域的坐标信息确定编码区域。
步骤S302,根据编码区域从原始显示数据提取目标显示数据。
在本公开实施例中,目标区域可以通过用户在目标设备的用户界面上的移动轨迹确定。通过移动轨迹可以确定目标区域在用户界面的坐标,基于用户界面的坐标可以确定目标区域在原始图像中的坐标,进而确定目标区域在原始显示数据中的位置。
示例地,当目标区域为矩形区域时,通过触摸方式在用户界面移动,通过移动轨迹可以确定矩形区域,由于用户界面的坐标与原始图像的坐标存在对应关系,通过矩形区域的角坐标可以确定目标区域在原始图像中的坐标。
图4a为本公开实施例提供的一种选取目标区域的示意图。如图4a所示,用户在目标设备的用户界面上用手指画斜线来选取目标区域,即手指的移动轨迹为斜线。例如,用户在用户界面从左上向右下斜向移动,移动轨迹的起始点(手指的按压点)和终止点(手指的抬起点)为目标区域的两个角,通过这两个角可以确定矩形的目标区域。目标设备可以根据手指在用户界面的起始点的坐标(X 1,Y 1)和终止点的坐标(X 2,Y 2)准确地确定目标区域,起始点的坐标(X 1,Y 1)和终止点的坐标(X 2,Y 2)是目标区域在目标设备 的坐标,而目标设备的坐标与原始图像的坐标存在对应关系,基于起始点的坐标(X 1,Y 1)和终止点的坐标(X 2,Y 2)可以确定目标区域在原始图像中的坐标。源设备根据起始点的坐标(X 1,Y 1)和终止点的坐标(X 2,Y 2)同样可以确定目标区域。需要说明的是,手指的移动方向并不局限于从左上向右下移动,也可以是从左下向右上、从右下向左上或者从右上向左下,只要移动轨迹在用户界面为斜向,即可确定矩形的目标区域。
图4b为本公开实施例提供的另一种选取目标区域的示意图。如图4b所示,用户在目标设备的用户界面上用手画框来选取目标区域,手指的移动轨迹为矩形或接近矩形。例如,用户从目标区域的左上角开始,依次向下移动、向右移动、向上移动、向左移动,该移动过程为逆时针移动,手指不抬起,移动轨迹为矩形。移动的起始点为目标区域的左上角,与起始点相对的点为目标区域的对角,由起始点和与起始点相对的角可确定目标区域,目标设备根据起始点的坐标(X 1,Y 1)和对角的坐标(X 2,Y 2)可以确定该矩形的位置,源设备根据起始点的坐标(X 1,Y 1)和对角的坐标(X 2,Y 2)同样可以确定目标区域。需要说明的是,手指的移动方向也可以是顺时针移动。
在本公开实施例中,目标设备根据轨迹信息确定目标区域信息,再将目标区域信息发送至源设备,源设备直接获得目标区域信息。或者,目标设备可以将轨迹信息全部发送至源设备,源设备根据轨迹信息确定目标区域。
在一些实施例中,源设备可以根据目标区域信息从原始显示数据中提取目标区域对应的显示数据。本公开实施例对提取的方式不作限定。
为了提高目标图像的像素率,使得目标图像在目标设备的用户界面能够清晰地显示。本公开实施例在基于目标显示数据生成目标帧数据时,结合目标设备的用户界面(屏幕)的分辨率,确定编码分辨率,再基于编码分辨率和目标显示数据生成目标帧数据。
在一些实施例中,步骤S204,基于目标显示数据生成目标帧数据,包 括:基于设定的编码分辨率对目标显示数据进行编码,生成目标帧数据。
其中,编码分辨率可以根据目标设备的用户界面的分辨率预先设定,表1为本公开实施例中编码分辨率与用户界面的分辨率的对应关系,其中,分辨率向下兼容。
表1
序号 目标设备的用户界面的分辨率 编码分辨率
1 3840×2160(ppi) 640P
2 1920×1080(ppi) 720P
3 1280×720(ppi) 1080P
在本公开实施例中,基于预先设定的编码分辨率对目标显示数据进行编码,生成目标帧数据,由于该目标帧数据的分辨率可以根据目标设备的配置进行调整,可以使目标图像的画面更清晰。
本公开实施例基于编码分辨率对目标显示数据进行编码可以采用任何可以实现的方式,本公开实施例对具体方式不作限定。
在一些实施例中,步骤S204,基于目标显示数据生成目标帧数据,并将目标帧数据发送至目标设备之后,还包括:接收并存储目标设备返回的坐标更新信息,以更新目标设备的坐标与原始显示数据的坐标的对应关系。
其中,坐标更新信息是基于目标区域信息和源设备的用户界面的分辨率的宽度和高度确定的信息。由于目标设备显示的图像与源设备显示的图像发生变化,需要对目标设备的坐标与原始显示数据的坐标的对应关系进行更新,以便后续准确确定原始显示数据中需要编码的区域。
示例地,对于矩形的目标区域,根据两个能够确定目标区域的坐标点、源设备的用户界面的分辨率确定坐标更新信息。如,确定目标区域的坐标点为起始点的坐标(X 1,Y 1)和终止点的坐标(X 2,Y 2),则重新计算数据坐标(X d,Y d)。坐标更新信息为更新后的数据坐标(X d,Y d),更新后的数据 坐标(X d,Y d)可以根据以下计算公式(1)至公式(4)来确定:
X d=X 1+X×X' (1)
Y d=Y 1+Y×Y' (2)
其中,X d为更新后的横坐标,Y d为更新后的纵坐标,W为源设备的分辨率宽度,H为源设备的分辨率高度。
在本公开实施例中,目标设备根据目标区域的放大比例计算坐标更新信息,该坐标更新信息用于对源设备的反向控制,以供源设备模拟目标设备的触摸位置。
在一些实施例中,步骤S201,基于原始显示数据生成原始帧数据,包括:对原始图像显示信息进行合成,获得显示数据;对显示数据进行编码,获得原始帧数据。
示例地,以安卓系统为例,通过SurfaceComposerClient创建虚拟显示设备,并将该虚拟显示设备注册到安卓系统的显示设备列表中。当SurfaceFlinger中有画面更新时,将画面更新信息(部分原始图像显示信息)发送至该虚拟显示设备进行面向嵌入式系统的开源图形库(OpenGL for Embedded Systems,简称GLES)合成,获得显示数据,即该虚拟显示设备获得了源设备的画面更新数据。
在创建虚拟显示设备的同时,将MediaCodec用于编码的Surface作为BufferQueue,以同步获取GLES合成的显示数据,通过MediaCodec对该显示数据进行H.264编码,获得原始帧数据。
在本公开实施例中,步骤S204,基于目标显示数据生成目标帧数据包括:对目标图像显示信息进行合成,获得显示数据;对显示数据进行编码, 获得目标帧数据。
需要说明的是,基于目标显示数据生成目标帧数据与基于原始显示数据生成原始帧数据的方式相同,不同之处在于合成的对象为目标图像显示信息,生成了目标帧数据。
在一些实施例中,在步骤S201之前,还包括:源设备与目标设备建立网络连接,以进行数据交互。源设备与目标设备的网络连接可采用用户数据包协议(UDP)、数据传输协议(UDT)和传输控制协议(TCP)中的任意一种协议。本公开实施例中源设备将原始帧数据、目标帧数据传送给目标设备,以及目标设备将目标区域信息传送给源设备均可通过上述任意一种协议传输。
第二方面,本公开实施例提供的一种投屏方法,应用于目标设备(如便携设备),该投屏方法可以对目标设备的用户界面的显示内容进行动态调整,以提高目标设备的用户界面的清晰度。
图5为本公开实施例提供的一种投屏方法的流程图。如图5所示,投屏方法包括:
步骤S501,基于原始帧数据获得原始图像,并显示原始图像。
其中,原始帧数据是源设备基于原始显示数据生成并传送来的帧数据,原始显示数据是未经选择的显示数据,可以在源设备和目标设备的用于界面显示。
通常原始显示数据并不直接发送至目标设备,而是对原始显示数据进行处理,获得原始帧数据,再将原始帧数据发送至目标设备。在一些实施例中,对原始显示数据进行编码处理,获得原始帧数据。本公开实施例对编码方式以及原始帧数据的格式不作限定。例如,在安卓系统中,使用MediaCodec对原始显示数据进行编码,获得H.264格式的原始帧数据。
在一些实施例中,目标设备收到原始帧数据后,对原始帧数据进行处理 获得原始图像,并在用户界面显示原始图像。其中,目标设备对原始帧数据的处理方式与源设备对原始显示数据的处理方式匹配。例如,在源设备使用MediaCodec对原始显示数据进行解码处理时,目标设备使用MediaCodec对原始帧数据进行解码,获得原始图像。
在一些实施例中,目标设备的用户界面的尺寸小于源设备的用户界面的尺寸,即,源设备的用户界面较大,而目标设备的用户界面较小,原始图像在源设备的显示图像比目标设备的显示图像大,尤其在源设备的用户界面与目标设备的用户界面相差较大的情况下,在源设备显示的图像比目标设备显示的图像的大小相差悬殊,不利于用户在目标设备上操控UI控件(按键)。因此,需要将UI控件的图像尺寸在目标设备上放大。
步骤S502,获取目标区域信息,并将目标区域信息传送至源设备。
其中,目标区域信息是目标设备上待调整的目标区域的位置信息。其中,目标区域可以是目标设备的用户界面上显示的任何区域。本公开实施例对目标区域不作限定。例如,目标区域可以是UI控件所在区域。
本公开实施例对目标区域的调整操作不作限定,例如调整操作可以是放大操作。
在一些实施例中,目标区域的位置信息可以是确定目标区域的点、线等信息,本公开实施例对此不做限定。例如,目标区域的位置信息可以是确定目标区域中一些位置点的坐标信息。
在一些实施例中,源设备与目标设备信号连接,用于相互之间的数据传输。本公开实施例对源设备与目标设备之间连接方式不作限定。例如,连接方式包括用户数据包协议(UDP)、数据传输协议(UDT)和传输控制协议(TCP)中的任意一种方式。
步骤S503,接收目标帧数据。
其中,目标帧数据是源设备基于目标区域信息从原始显示数据中提取的 目标显示数据;并基于目标显示数据生成的帧数据。
在本公开实施例中,源设备基于目标区域信息从原始显示数据中提取的目标显示数据的步骤和方法与步骤S203相同,基于目标显示数据生成目标帧数据的步骤和方法与步骤S204相同,在此不再赘述。
步骤S504,基于目标帧数据获得目标图像,并显示目标图像。
在本公开实施例中,目标设备对目标帧数据进行解码,获得目标图像,并在用户界面显示目标图像。
在一些实施例中,步骤S504,基于原始帧数据获得原始图像,并显示原始图像,包括:对原始帧数据进行解码,获得原始图像;在用户界面中显示原始图像。
在本公开实施例中,目标设备的解码方式与源设备的编码方式相匹配,例如,在源设备使用MediaCodec对原始显示数据进行解码处理时,目标设备使用MediaCodec对原始帧数据进行解码,获得原始图像。
图6为本公开实施例中获取目标区域信息的流程图。如图6所示,步骤S502,获取目标区域信息,包括:
步骤S601,响应激活指令,获取轨迹信息。
其中,激活指令是用户在目标设备的用户界面上激活获取目标区域的启动信息,轨迹信息是用户在目标设备上选取目标区域时移动(触摸)的轨迹信息。
在一些实施例中,目标设备在收到激活指令后,监测用户在用户界面上的操作动作(如触摸动作),获取操作动作获得获得轨迹信息,再基于轨迹信息确定目标区域信息。在结束目标区域的选择时,通过退出指令结束对操作轨迹的监控。
在一些实施例中,移动轨迹可以是斜线、框形或其它能够确定目标区域的轨迹。目标区域的形状可以是矩形或其它形状。参阅图4a,移动轨迹为 斜线,通过斜线可以确定矩形的目标区域。参阅图4b,移动轨迹为框形,通过框形可以确定矩形的目标区域。
本公开实施例对激活指令和退出指令的具体方式不作限定。例如,激活指令和退出指令可以通过目标设备的用户界面上的悬浮窗按钮实现,点击悬浮窗按钮可以发出激活指令,再次点击悬浮窗按钮可以发出退出指令。
本公开实施例通过激活指令和退出指令可以避免错误地启动用户界面的动态调整。
步骤S602,基于轨迹信息确定目标区域信息。
在一些实施例中,步骤S602,基于轨迹信息确定目标区域信息,包括:基于轨迹信息确定移动轨迹的起点坐标和终点坐标,基于起点坐标和终点坐标确定目标区域信息。
如图4a所示,移动轨迹为斜线时,移动轨迹的起始点(手指的按压点)和终止点(手指的抬起点)为移动轨迹的起点和终点,也是目标区域的两个角,通过这两个角的坐标可以确定矩形的目标区域。即移动轨迹的起始点的坐标(X 1,Y 1)和终止点的坐标(X 2,Y 2)是目标区域在用户界面的坐标,由于用户界面的坐标与原始图像的坐标存在对应关系,从而可以确定目标区域在原始图像中的坐标。
在一些实施例中,步骤S602,基于移动轨迹轨迹信息确定移动轨迹目标区域信息,包括:基于轨迹信息确定移动轨迹的起点坐标和与起点坐标相对的对角的坐标;基于起点坐标和对角坐标确定目标区域信息。
参阅图4b,移动轨迹为框形时,移动轨迹的起始点为目标区域的左上角,与起始点相对的点为目标区域的对角,由起始点的坐标和与起始点相对的对角的坐标可确定目标区域,即,根据起始点的坐标(X 1,Y 1)和对角的坐标(X 2,Y 2)可以确定该矩形的位置,即目标区域在用户界面的坐标,由于目标设备的坐标与原始图像的坐标存在对应关系,基于起始点的坐标 (X 1,Y 1)和对角的坐标(X 2,Y 2)可以确定目标区域在原始图像中的坐标。
在一些实施例中,目标设备收到源设备传送的目标帧数据后,在用户界面显示对应的目标图像。然而,由于目标设备的用户界面显示的图像是动态调整(如动态放大)后的目标图像的图像,而源设备的用户界面显示的图像仍然是原始图像的图像,此时,目标设备的用户界面显示的图像坐标与源设备的用户界面显示的图像坐标已发生变化,因此,需要获得目标设备的用户界面显示的图像坐标与源设备的用户界面显示的图像坐标的对应关系。
因此,步骤S504,基于目标帧数据获得目标图像,并显示目标图像之后,还包括:基于目标区域信息和源设备的分辨率的宽度和高度确定坐标更新信息;将坐标更新信息传送至源设备。
其中,坐标更新信息可以根据本公开实施例中公式(1)至公式(4)确定,在此不再赘述。
需要说明的是,本公开实施例中,原始显示数据可以是图片数据,对应的原始图像是图片;原始显示数据也可以是视频数据,对应的原始图像是视频中的某个图像。
本公开实施例提供的投屏方法,目标设备基于用户的操作确定目标区域信息后,使源设备基于目标区域信息从原始显示数据提取目标显示数据,并基于目标显示数据生成目标帧数据,目标设备显示目标帧数据生成的目标图像,实现目标设备的用户界面动态调整显示范围,如将UI控件局部放大,方便用户在目标设备进行操作;另外,由于目标显示数据是直接从原始显示数据提取,可以对目标显示数据的分辨率进行调整;而且,目标显示数据相对于原始显示数据,减少了编码区域的像素,可以提高编码的分辨率,从而提高目标设备的清晰度。
第三方面,本公开实施例提供一种投屏装置,应用于源设备(如大尺寸显示设备),该投屏装置可以对目标设备的用户界面的显示内容进行动态调 整,以提高目标设备的用户界面的清晰度。
图7为本公开实施例提供的一种投屏装置的结构示意图。如图7所示,投屏装置700,包括:
生成模块701,被配置为基于原始显示数据生成原始帧数据。
其中,原始显示数据是未经选择的显示数据,可以同时在源设备和目标设备的用户界面显示,即源设备将原始图像投屏至目标设备。
第一发送模块702,被配置为将原始帧数据传送至目标设备,以供目标设备显示基于原始帧数据生成的原始图像,目标设备的用户界面的尺寸小于源设备的用户界面的尺寸。
第一接收模块703,被配置为接收目标设备传送的目标区域信息;其中,目标区域信息是目标设备上待调整的目标区域的位置信息。
在一些实施例中,第一发送模块702和第一接收模块703采用用户数据包协议(UDP)、数据传输协议(UDT)和传输控制协议(TCP)中的任意一种方式实现数据的传输。
提取模块704,被配置为基于目标区域信息从原始显示数据提取目标显示数据。
在一些实施例中,提取模块704被配置为基于目标区域的坐标信息确定编码区域,根据编码区域从原始显示数据提取目标显示数据。
生成模块701,还被配置为基于设定的编码分辨率对所述目标显示数据进行编码,生成所述目标帧数据。
第一发送模块702,还被配置为将所述目标帧数据传送至所述目标设备,以供所述目标设备显示基于所述目标帧数据生成的目标图像。
本公开实施例提供的投屏装置,第一接收模块在接收到目标区域信息后,提取模块基于目标区域信息从原始显示数据提取目标显示数据,并基于目标显示数据生成目标帧数据,实现了动态调整目标设备的显示范围,方便 用户在目标设备上进行操作。另外,由于目标显示数据是直接从原始显示数据提取,可以对目标显示数据的分辨率进行调整,而且目标显示数据相对于原始显示数据,减少了编码区域的像素,可以提高编码的分辨率,从而提高目标设备的清晰度。
在一些实施例中,目标区域信息包括目标区域的坐标信息。提取模块704括确定单元和提取单元,其中,确定单元,被配置为基于所述目标区域的坐标信息确定目标区域;提取单元,被配置为根据所述编码区域从所述原始显示数据提取目标显示数据。
在本公开实施例中,目标区域可以通过用户在目标设备的用户界面的移动轨迹确定。示例地,当目标区域为矩形区域时,可以通过画对角线或矩形框的方式确定,并通过矩形区域的角的坐标信息来确定目标区域的位置。
在一些实施例中,目标设备收到原始帧数据后,对原始帧数据进行处理获得原始图像,并在用户界面显示原始图像。其中,目标设备对原始帧数据的处理方式与源设备对原始显示数据的处理方式匹配。例如,在源设备使用MediaCodec对原始显示数据进行解码处理时,目标设备使用MediaCodec对原始帧数据进行解码,获得原始图像。
在一些实施例中,目标设备的用户界面的尺寸小于源设备的用户界面的尺寸,即,源设备的用户界面较大,而目标设备的用户界面较小,原始图像在源设备的显示图像比目标设备的显示图像大,尤其在源设备的用户界面与目标设备的用户界面相差较大的情况下,在源设备显示的图像比目标设备显示的图像的大小相差悬殊,不利于用户在目标设备上操控UI控件。因此,需要将UI控件的图像尺寸在目标设备上放大。
在一些实施例中,生成模块701,被配置为基于设定的编码分辨率对所述目标显示数据进行编码,生成所述目标帧数据。
在本公开实施例中,基于预先设定的编码分辨率对目标显示数据进行编 码,生成目标帧数据,由于该目标帧数据的分辨率可以根据目标设备的配置进行调整,可以使目标图像的画面更清晰。
在一些实施例中,第一接收模块703,还被配置为接收所述目标设备返回的坐标更新信息;其中,所述坐标更新信息是基于所述目标区域信息和源设备的分辨率的宽度和高度确定的信息。所述装置还包括:存储模块(图中未示出),被配置为存储所述坐标更新信息。
其中,坐标更新信息可以基于目标区域信息和源设备的用户界面的分辨率的宽度和高度确定的信息,坐标更新信息可以根据本公开第一方面实施例中公式(1)至公式(4),在此不再赘述。
在一些实施例中,生成模块701包括合成单元和编码单元,其中,合成单元,被配置为将所述原始图像显示信息输入虚拟显示设备进行合成,获得显示数据;其中,所述虚拟显示设备是通过表面创作客户端创建的虚拟显示设备;编码单元,被配置为对所述显示数据进行编码,获得原始帧数据。
示例地,以安卓系统为例,通过SurfaceComposerClient创建虚拟显示设备,并将该虚拟显示设备注册到安卓系统的显示设备列表中。当SurfaceFlinger中有画面更新时,将画面更新信息(部分目标图像显示信息)发送至该虚拟显示设备进行面向嵌入式系统的开源图形库(OpenGL for Embedded Systems,简称GLES)合成,获得显示数据,即该虚拟显示设备获得了源设备的画面更新数据。
在创建虚拟显示设备的同时,将MediaCodec用于编码的Surface作为BufferQueue,以同步获取GLES合成的显示数据,通过MediaCodec对该显示数据进行H.264编码,获得目标帧数据。
本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文第一方面方法实施例描述的投屏方法,其具体实现和技术效果可参照上文方法实施例的描述,为了简洁,这里不再赘述。
第四方面,本公开实施例提供的一种投屏装置,应用于目标设备(如便携设备),该投屏方法可以对目标设备的用户界面的显示内容进行动态调整,以提高目标设备的用户界面的清晰度。
图8为本公开实施例提供的一种投屏装置的结构示意图。如图8所示,投屏装置800,包括:
获得模块801,被配置为基于原始帧数据获得原始图像。
其中,所述原始帧数据是源设备基于原始显示数据生成并传送来的帧数据。
通常原始显示数据并不直接发送至目标设备,而是对原始显示数据进行处理,获得原始帧数据,再将原始帧数据发送至目标设备。在一些实施例中,对原始显示数据进行编码处理,获得原始帧数据。本公开实施例对编码方式以及原始帧数据的格式不作限定。例如,在安卓系统中,使用MediaCodec对原始显示数据进行编码,获得H.264格式的原始帧数据。
在一些实施例中,目标设备收到原始帧数据后,对原始帧数据进行处理获得原始图像,并在用户界面显示原始图像。其中,目标设备对原始帧数据的处理方式与源设备对原始显示数据的处理方式匹配。例如,在源设备使用MediaCodec对原始显示数据进行解码处理时,目标设备使用MediaCodec对原始帧数据进行解码,获得原始图像。
显示模块802,被配置为显示所述原始图像。
其中,显示模块802可以是目标设备的显示屏。
获取模块803,被配置为获取目标区域信息。
在一些实施例中,目标设备的用户界面的尺寸小于源设备的用户界面的尺寸,即,源设备的用户界面较大,而目标设备的用户界面较小,原始图像在源设备的显示图像比目标设备的显示图像大,尤其在源设备的用户界面与目标设备的用户界面相差较大的情况下,在源设备显示的图像比目标设备显 示的图像的大小相差悬殊,不利于用户在目标设备上操控UI控件。因此,需要将UI控件的图像尺寸在目标设备上放大,即获取目标区域,并将目标区域放大。
其中,目标区域信息是目标设备上待调整的目标区域的位置信息。其中,目标区域可以是目标设备的用户界面上显示的任何区域。本公开实施例对目标区域不作限定。例如,目标区域可以是UI控件所在区域。
在一些实施例中,目标区域的位置信息可以是确定目标区域的位置的点、线等信息,本公开实施例对此不做限定。例如,目标区域的位置信息可以是确定目标区域中一些位置点的坐标信息。
第二发送模块804,被配置为将所述目标区域信息传送至所述源设备。
第二接收模块805,被配置为接收所述目标帧数据;其中,所述目标帧数据所述源设备基于所述目标区域信息从所述原始显示数据提取目标显示数据;并基于所述目标显示数据生成的帧数据。
在本公开实施例中,第二发送模块804和第二接收模块805可以采用用户数据包协议(UDP)、数据传输协议(UDT)和传输控制协议(TCP)中的任意一种方式进行数据传输。
获得模块801,还被配置为基于所述目标帧数据获得目标图像,并显示所述目标图像。
在本公开实施例中,目标设备对目标帧数据进行解码,获得目标图像,并在用户界面显示目标图像。
在一些实施例中,获得模块801包括解码单元,被配置为对所述原始帧数据进行解码,获得所述原始图像。其中,解码单元解码方式与源设备的编码方式相匹配,例如,在源设备使用MediaCodec对原始显示数据进行解码处理时,目标设备使用MediaCodec对原始帧数据进行解码,获得原始图像。
图9为本公开实施例提供的一种获取模块的结构示意图。如图9所示, 获取模块900包括响应单元901、获取单元902和确定单元903,其中,响应单元901被配置为响应激活指令;获取单元902被配置为获取轨迹信息;其中,所述轨迹信息是用户在目标设备的用户界面移动的轨迹信息;确定单元903被配置为基于所述轨迹信息确定所述目标区域信息。
其中,激活指令是用户在目标设备的用户界面上激活获取目标区域的启动信息,轨迹信息是用户在目标设备上选取目标区域时移动(触摸)的轨迹信息。
在一些实施例中,目标设备在收到激活指令后,监测用户在用户界面上的操作动作(如触摸动作),获取操作动作获得获得轨迹信息,再基于轨迹信息确定目标区域信息。在结束目标区域的选择时,通过退出指令结束对操作轨迹的监控。
在一些实施例中,移动轨迹可以是斜线、框形或其它能够确定目标区域的轨迹。目标区域的形状可以是矩形或其它形状。参阅图4a,移动轨迹为斜线,通过斜线可以确定矩形的目标区域。参阅图4b,移动轨迹为框形,通过框形可以确定矩形的目标区域。
在一些实施例中,确定单元903包括第一确定子单元和第二确定子单元,其中,第一确定子单元被配置为基于所述轨迹信息确定移动轨迹的起点坐标和终点坐标;第二确定子单元被配置为基于所述起点坐标和所述终点坐标确定所述目标区域信息。
本公开实施例确定单元903确定目标区域信息的方式参阅第二方面投屏方法中步骤S602和图4a,在此不再赘述。
在一些实施例中,确定单元903包括第三确定子单元和第四确定子单元,其中,第三确定子单元被配置为基于所述轨迹信息确定移动轨迹的起点坐标和与所述起点坐标相对的相对角的坐标;第四确定子单元被配置为基于所述起点坐标和所述相对角的坐标确定所述目标区域信息。
本公开实施例确定单元903确定目标区域信息的方式参阅第二方面投屏方法中步骤S602和图4b,在此不再赘述。
在一些实施例中,投屏装置还包括:坐标信息更新模块806,其中,坐标信息更新模块806,被配置为基于所述目标区域信息和所述源设备的分辨率的宽度和高度确定坐标更新信息;第二发送模块804,还被配置为将所述坐标更新信息传送至所述源设备。
其中,坐标更新信息可以根据本公开实施例中公式(1)至公式(4)确定,在此不再赘述。
本公开实施例提供的投屏装置,获得模块基于原始帧数据获得原始图像,并由显示模块显示原始图像,获取模块获取目标区域信息后,通过第二发送模块发送至源设备,以供源设备获得目标帧数据,第二接收模块接收所述目标帧数据,获得模块基于所述目标帧数据获得目标图像,在由显示模块显示目标图像,由于源设备基于目标区域信息从原始显示数据提取目标显示数据,并基于目标显示数据生成目标帧数据,实现了动态调整显示范围,如将UI控件局部放大,方便用户在目标设备上进行操作;另外,由于目标显示数据是直接从原始显示数据提取,可以对目标显示数据的分辨率进行调整;而且,目标显示数据相对于原始显示数据,减少了编码区域的像素,可以提高编码的分辨率,从而提高目标设备的清晰度。
图10为本公开实施例提供的一种投屏方法的流程图。该投屏方法是以安卓系统为例,源设备为大尺寸显示设备,目标设备为移动设备,大尺寸显示设备将原始图像投屏至移动设备。
为了更好地理解本公开的技术方案,在介绍本公开实施例的投屏方法之前,有必要简单介绍现有安卓系统的投屏方式。
安卓系统通常是基于TextureView(Android4.0(API level 14)中引入)在目标设备进移动和缩放操作。其中,TextureView可以将帧数据直接投影 到View控件中,并可以用于实现Live preview等功能。但TextureView不会在窗口管理(WMS)中单独创建窗口,而是作为View hierachy中的一个普通View控件,可以和其它普通View一样进行移动、旋转、缩放、动画等变化。基于TextureView即可显示帧数据,也可进行移动和缩放的特征,可实现投屏区域在移动端设备屏幕显示的动态调整。
但是,由于TextureView无法单独建立窗口,因此,无法像本公开实施例的SurfaceView一样运行于与UI线程相互独立的线程中,势必对UI刷新造成影响。同时,TextureView只是在播放端放大,无法改变帧数据的分辨率,导致画面更加模糊,清晰度降低。
本公开实施例采用SurfaceView在移动终端的用户界面展示图像及目标区域的选取,在大尺寸显示设备基于目标区域信息重新确定编码区域,提高编码分辨率,实现移动终端的用户界面的显示图像的动态调整。
如图10所示,本公开实施例提供的投屏方法包括:
在步骤S1001中,大尺寸显示设备与移动设备建立网络连接,并开启投屏功能。
在步骤S1002中,大尺寸显示设备基于原始显示数据生成原始帧数据,同时在用户界面显示原始图像。
在步骤S1003中,将原始帧数据投屏至移动终端,如图11a所示,大尺寸显示设备和移动设备的用户界面显示相同的原始图像。
在步骤S1004中,用户在移动终端的用户界面点击激活指令,如图11b所示,点击用户界面的下拉菜单,选择放大功能按键,开启选择区域事件。用手指在用户界面滑动,滑动轨迹可以是对角线或矩形框,通过轨迹信息可以确定需要放大的目标区域的目标区域信息,如图11c所示。
需要说明的是,在用户选择目标区域时,可以通过放弃按键放弃已选择的目标区域,通过重绘按键重新选择目标区域,也可以通过确认按键对选择 的目标区域确认,如图11d所示。
需要说明的是,移动终端获得滑动轨迹后,可以通过轨迹信息确定目标区域信息,并将目标区域信息发送至大尺寸显示设备。或者,移动终端直接将轨迹信息发送至大尺寸显示设备,由大尺寸显示设备基于轨迹信息确定目标区域信息。
在步骤S1005中,移动终端将目标区域信息发送至大尺寸显示设备。
在步骤S1006中,大尺寸显示设备基于目标区域信息重新计算编码区域,从原始显示数据提取目标显示数据,并对目标显示数据进行编码,获得目标帧数据。
在步骤S1007中,大尺寸显示设备将目标帧数据发送至移动设备。
在步骤S1008中,移动设备对目标帧数据进行解码,获得目标图像,并在用户界面显示目标图像,此时,大尺寸显示设备的用户界面显示的是仍然是原始图像,但移动终端的用户界面仅显示目标区域的视频,即放大后的目标区域的图像,如图11e所示。
在步骤S1009中,移动设备基于放大后的目标图像重新计算触摸控制数据坐标,获得坐标更新信息,坐标更新信息的计算方式参阅公式(1)至公式(4),在此不再赘述。
在步骤S1010中,将坐标更新信息发送至大尺寸显示设备,以供大尺寸显示设备在后续的反向控制中,基于更新后的坐标计算编码区域。
参照图12,本公开实施例提供一种电子设备,其包括:
一个或多个处理器1201;
存储器1202,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述任意一项的设备身份验证方法;
一个或多个I/O接口1203,连接在处理器与存储器之间,配置为实现 处理器与存储器的信息交互。
其中,处理器1201为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器1202为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH);I/O接口(读写接口)1203连接在处理器1201与存储器1202间,能实现处理器1201与存储器1202的信息交互,其包括但不限于数据总线(Bus)等。
在一些实施例中,处理器1201、存储器1202和I/O接口1203通过总线相互连接,进而与计算设备的其它组件连接。
本公开实施例还提供一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本实施例提供的设备身份验证方法,为避免重复描述,在此不再赘述设备身份验证方法的具体步骤。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功 能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
可以理解的是,以上实施方式仅仅是为了说明本公开/实用新型的原理而采用的示例性实施方式,然而本公开/实用新型并不局限于此。对于本领域内的普通技术人员而言,在不脱离本公开/实用新型的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本公开/实用新型的保护范围。

Claims (24)

  1. 一种投屏方法,应用于源设备,其包括:
    基于原始显示数据生成原始帧数据,并将所述原始帧数据传送至目标设备,以供所述目标设备显示基于所述原始帧数据生成的原始图像;
    接收所述目标设备传送的目标区域信息;其中,所述目标区域信息是所述目标设备上待调整的目标区域的位置信息;
    基于所述目标区域信息从所述原始显示数据提取目标显示数据;
    基于所述目标显示数据生成目标帧数据,并将所述目标帧数据传送至所述目标设备,以供所述目标设备显示基于所述目标帧数据生成的目标图像。
  2. 根据权利要求1所述的方法,其中,所述目标区域信息包括目标区域的坐标信息;
    所述基于所述目标区域信息从所述原始显示数据提取目标显示数据,包括:
    基于所述目标区域的坐标信息确定编码区域;
    根据所述编码区域从所述原始显示数据提取目标显示数据。
  3. 根据权利要求2所述的方法,其中,所述基于所述目标显示数据生成目标帧数据,包括:
    基于设定的编码分辨率对所述目标显示数据进行编码,生成所述目标帧数据。
  4. 根据权利要求1-3任意一项所述的方法,其中,所述基于所述目标显示数据生成目标帧数据,并将所述目标帧数据发送至所述目标设备之后,还包括:
    接收并存储所述目标设备返回的坐标更新信息;其中,所述坐标更新信息是基于所述目标区域信息和源设备的用户界面的分辨率确定的信息。
  5. 根据权利要求1-3任意一项所述的方法,其中,所述基于原始显示数据生成原始帧数据,包括:
    对所述原始显示数据进行合成,获得显示数据;
    对所述显示数据进行编码,获得原始帧数据。
  6. 一种投屏方法,应用于目标设备,其包括:
    基于原始帧数据获得原始图像,并显示所述原始图像;其中,所述原始帧数据是源设备基于原始显示数据生成并传送来的帧数据;
    获取目标区域信息,并将所述目标区域信息传送至所述源设备;
    接收所述目标帧数据;其中,所述目标帧数据是所述源设备基于所述目标区域信息从所述原始显示数据提取目标显示数据;并基于所述目标显示数据生成的帧数据;
    基于所述目标帧数据获得目标图像,并显示所述目标图像。
  7. 根据权利要求6所述的方法,其中,所述基于原始帧数据获得原始图像,并显示所述原始图像,包括:
    对所述原始帧数据进行解码,获得所述原始图像;
    在用户界面中显示所述原始图像。
  8. 根据权利要求6所述的方法,其中,所述获取目标区域信息,包括:
    响应激活指令,获取轨迹信息;其中,所述轨迹信息是用户在所述目标设备上选取所述目标区域的轨迹信息;
    基于所述轨迹信息确定所述目标区域信息。
  9. 根据权利要求8所述的方法,其中,所述基于所述轨迹信息确定所述目标区域信息,包括:
    基于所述轨迹信息确定移动轨迹的起点坐标和终点坐标;
    基于所述起点坐标和所述终点坐标确定所述目标区域信息。
  10. 根据权利要求8所述的方法,其中,所述基于所述轨迹信息确定所述目标区域信息,包括:
    基于所述轨迹信息确定移动轨迹的起点坐标和与所述起点坐标相对的对角的坐标;
    基于所述起点坐标和所述对角坐标确定所述目标区域信息。
  11. 根据权利要求6-10任意一项所述的方法,其中,所述基于所述目标帧数据获得目标图像,并显示所述目标图像之后,还包括:
    基于所述目标区域信息和所述源设备的分辨率的宽度和高度确定坐标更新信息;
    将所述坐标更新信息传送至所述源设备。
  12. 一种投屏装置,应用于源设备,其包括:
    生成模块,被配置为基于原始显示数据生成原始帧数据;
    第一发送模块,被配置为将所述原始帧数据传送至目标设备,以供所述目标设备显示基于所述原始帧数据生成的原始图像;
    第一接收模块,被配置为接收所述目标设备传送的目标区域信息;其中,所述目标区域信息是所述目标设备上待调整的目标区域的位置信息;
    提取模块,被配置为基于所述目标区域信息从所述原始显示数据提取目标显示数据;
    所述生成模块,还被配置为基于所述目标显示数据生成目标帧数据;
    所述第一发送模块,还被配置为将所述目标帧数据传送至所述目标设备,以供所述目标设备显示基于所述目标帧数据生成的目标图像。
  13. 根据权利要求12所述的装置,其中,所述目标区域信息包括目标区域的坐标信息;
    所述提取模块,包括:
    确定单元,被配置为基于所述目标区域的坐标信息确定编码区域;
    提取单元,被配置为根据所述编码区域从所述原始显示数据提取目标显示数据。
  14. 根据权利要求12所述的装置,其中,所述生成模块,被配置为基 于设定的编码分辨率对所述目标显示数据进行编码,生成所述目标帧数据。
  15. 根据权利要求12-14任意一项所述的装置,其中,所述第一接收模块,还被配置为接收所述目标设备返回的坐标更新信息;其中,所述坐标更新信息是基于所述目标区域信息和源设备的分辨率确定的信息
    所述装置还包括:存储模块,被配置为存储所述坐标更新信息。
  16. 根据权利要求12-14任意一项所述的装置,其中,所述生成模块包括:
    合成单元,被配置为将所述原始图像显示信息输入虚拟显示设备进行合成,获得显示数据;其中,所述虚拟显示设备是通过表面创作客户端创建的虚拟显示设备;
    编码单元,被配置为对所述显示数据进行编码,获得原始帧数据。
  17. 一种投屏装置,应用于目标设备,其包括:
    获得模块,被配置为基于原始帧数据获得原始图像;其中,所述原始帧数据是源设备基于原始显示数据生成并传送来的帧数据;
    显示模块,被配置为显示所述原始图像;
    获取模块,被配置为获取目标区域信息;
    第二发送模块,被配置为将所述目标区域信息传送至所述源设备;
    第二接收模块,被配置为接收所述目标帧数据;其中,所述目标帧数据所述源设备基于所述目标区域信息从所述原始显示数据提取目标显示数据;并基于所述目标显示数据生成的帧数据;
    所述获得模块,还被配置为基于所述目标帧数据获得目标图像;
    所述显示模块,还被配置为显示所述目标图像。
  18. 根据权利要求17所述的装置,其中,所述获得模块,包括:
    解码单元,被配置为对所述原始帧数据进行解码,获得所述原始图像。
  19. 根据权利要求17所述的装置,其中,所述获取模块,包括:
    响应单元,被配置为响应激活指令;
    获取单元,被配置为获取轨迹信息;其中,所述轨迹信息是用户在目标设备的用户界面移动的轨迹信息;
    确定单元,被配置为基于所述轨迹信息确定所述目标区域信息。
  20. 根据权利要求19所述的装置,其中,所述确定单元,包括:
    第一确定子单元,被配置为基于所述轨迹信息确定移动轨迹的起点坐标和终点坐标;
    第二确定子单元,被配置为基于所述起点坐标和所述终点坐标确定所述目标区域信息。
  21. 根据权利要求19所述的装置,其中,所述确定单元,包括:
    第三确定子单元,被配置为基于所述轨迹信息确定移动轨迹的起点坐标和与所述起点坐标相对的相对角的坐标;
    第四确定子单元,被配置为基于所述起点坐标和所述相对角的坐标确定所述目标区域信息。
  22. 根据权利要求17-21任意一项所述的装置,其中,所述装置,还包括:
    坐标信息更新模块,被配置为基于所述目标区域信息和所述源设备的分辨率的宽度和高度确定坐标更新信息;
    所述第二发送模块,还被配置为将所述坐标更新信息传送至所述源设备。
  23. 一种电子设备,其包括:
    一个或多个处理器;
    存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求1-6或7-13中任意一项所述的方法;
    一个或多个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。
  24. 一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1-5或6-11中任意一项所述的方法。
CN202280000091.1A 2022-01-27 2022-01-27 投屏方法及装置、电子设备、计算机可读介质 Pending CN116964553A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/074210 WO2023141857A1 (zh) 2022-01-27 2022-01-27 投屏方法及装置、电子设备、计算机可读介质

Publications (1)

Publication Number Publication Date
CN116964553A true CN116964553A (zh) 2023-10-27

Family

ID=87469884

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280000091.1A Pending CN116964553A (zh) 2022-01-27 2022-01-27 投屏方法及装置、电子设备、计算机可读介质

Country Status (3)

Country Link
US (1) US20240264790A1 (zh)
CN (1) CN116964553A (zh)
WO (1) WO2023141857A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019004221A (ja) * 2017-06-12 2019-01-10 三菱電機株式会社 制御装置及びプログラム
CN111666119B (zh) * 2019-03-06 2023-11-21 华为终端有限公司 Ui组件显示的方法及电子设备
CN112073647A (zh) * 2019-06-10 2020-12-11 杭州海康威视数字技术股份有限公司 图像缩放显示方法、图像处理设备及显示系统
CN111221491A (zh) * 2020-01-09 2020-06-02 Oppo(重庆)智能科技有限公司 交互控制方法及装置、电子设备、存储介质
CN112269527B (zh) * 2020-11-16 2022-07-08 Oppo广东移动通信有限公司 应用界面的生成方法及相关装置
CN112306246A (zh) * 2020-11-25 2021-02-02 北京恒泰实达科技股份有限公司 一种基于wifi6技术的可视化回显交互的系统及方法
CN115048067A (zh) * 2021-02-26 2022-09-13 华为技术有限公司 一种投屏显示方法及电子设备

Also Published As

Publication number Publication date
US20240264790A1 (en) 2024-08-08
WO2023141857A1 (zh) 2023-08-03

Similar Documents

Publication Publication Date Title
US9485290B1 (en) Method and system for controlling local display and remote virtual desktop from a mobile device
EP2701152A1 (en) Collaborative 3D video object browsing, editing and augmented reality rendering on a mobile
US20120005630A1 (en) Highly Responsive Screen Output Device, Screen Output System, and Screen Output Method
US9516267B2 (en) Remote magnification and optimization of shared content in online meeting
CN111107418A (zh) 视频数据处理方法、装置、计算机设备和存储介质
US10432681B1 (en) Method and system for controlling local display and remote virtual desktop from a mobile device
US20210192751A1 (en) Device and method for generating image
CN107103890B (zh) 在固定方向显示器上显示应用的方法及设备
CN114237419B (zh) 显示设备、触控事件的识别方法
CN113655975B (zh) 图像显示方法、装置、电子设备和介质
TWI845492B (zh) 程式、資訊處理方法及資訊處理裝置
KR20140086979A (ko) 인터넷 브라우저-기반 원격 사용자 인터페이스 가상 마우스 커서 위치결정 방법
US10609305B2 (en) Electronic apparatus and operating method thereof
CN117768628A (zh) 投影设备及一种投影处理方法
CN115836528A (zh) 一种显示设备及投屏方法
US10686983B1 (en) Automatic image capture mode based on changes in a target region
CN116964553A (zh) 投屏方法及装置、电子设备、计算机可读介质
US9424808B2 (en) Image cropping manipulation method and portable electronic device
WO2022237460A1 (zh) 图像处理方法、设备、存储介质及程序产品
CN113810755B (zh) 全景视频预览的方法、装置、电子设备及存储介质
WO2022193475A1 (zh) 显示设备、接收投屏内容的方法及投屏方法
CN116801027A (zh) 显示设备和投屏方法
US9161009B2 (en) System, terminal device, and image capturing method
CN112650418A (zh) 一种显示设备
JP2021036401A (ja) 表示装置、表示方法、プログラム

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