CN103959246B - 窗口图像的传输方法、显示方法、终端、服务器及系统 - Google Patents

窗口图像的传输方法、显示方法、终端、服务器及系统 Download PDF

Info

Publication number
CN103959246B
CN103959246B CN201280001095.8A CN201280001095A CN103959246B CN 103959246 B CN103959246 B CN 103959246B CN 201280001095 A CN201280001095 A CN 201280001095A CN 103959246 B CN103959246 B CN 103959246B
Authority
CN
China
Prior art keywords
window
coordinate
masked areas
angle point
width
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
CN201280001095.8A
Other languages
English (en)
Other versions
CN103959246A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103959246A publication Critical patent/CN103959246A/zh
Application granted granted Critical
Publication of CN103959246B publication Critical patent/CN103959246B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

一种窗口图像的传输方法,包括:虚拟机在运行应用的过程中,接收终端发送该应用对应的窗口的窗口信息(11);根据所述窗口信息,确定所述窗口的显示区域信息(12);根据所述窗口的显示区域信息,将与窗口的显示区域信息对应的图像数据发送给所述终端,以使所述终端进行显示(13)。也公开了一种显示方法、终端、服务器及系统。本方案根据应用在终端显示的窗口的显示区域信息,发送与窗口的显示区域信息对应的图像数据,当窗口显示区域小于整个窗口区域时,不需要发送整个窗口区域对应的图像数据,从而达到降低网络负载的效果。

Description

窗口图像的传输方法、显示方法、终端、服务器及系统
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种窗口图像的传输方法、显示方法、终端、服务器及系统。
发明背景
目前,在线应用系统中,终端与服务器一般交互过程为:终端将用户操作产生的应用运行的请求上传到服务器,服务器收到应用运行的请求后进行计算和处理,获得应用运行的窗口图像、声音等数据并发送到终端,以便终端对窗口图像进行解码及显示。
为了有效的实现资源利用率,一台服务器同时运行多个虚拟机,每个虚拟机运行不同的应用。终端向服务器发出应用运行的请求后,服务器选择一个特定虚拟机运行终端请求的应用,然后虚拟机将应用运行的窗口图像实时发送给终端。对终端用户来说,同一终端的桌面上显示了多个应用的数据。然而每个应用都对应于一台虚拟机,也就是说终端会与多个虚拟机建立连接,以获取不同虚拟机上运行的应用的图像、声音等数据。因此,终端就需要接收每个虚拟机的发送来的数据,并解码显示在终端的桌面上.
对于用户来说,虽然终端显示多个应用的数据,但用户有可能只关注于桌面最前端的一个或几个应用显示示的窗口图像。此时,如果虚拟机还将多个应用运行的窗口图像发送给终端,会占用大量网络带宽。而且,终端需要对多个应用运行的窗口图像解码,增加了终端的处理负担。
发明内容
本发明实施例的目的是提供一种窗口图像的传输方法、显示方法、终端、服务器及系统,对多窗口存在遮挡的情况进行窗口显示。
本发明第一方面提供了一种窗口图像的传输方法,包括,虚拟机在运行应用的过程中,接收终端发送该应用对应的窗口的窗口信息,根据所述窗口信息确定所述窗口的显示区域;根据所述窗口的显示区域,将与窗口的显示区域信息对应的图像数据发送给所述终端,以使所述终端进行显示。
本发明第二方面提供了一种服务器,包括,接收单元,用于虚拟机在运行应用的过程中,接收终端发送该应用对应的窗口的窗口信息;
确定单元,用于根据所述窗口信息,确定所述窗口的显示区域信息;
传输单元,用于根据所述窗口的显示区域信息,将与窗口的显示区域信息对应的图像数据发送给所述终端,以使所述终端进行显示。
本发明第三方面提供了一种窗口的显示方法,包括,虚拟机在运行应用的过程中,发送该应用对应的窗口的窗口信息给服务器,以使所述服务器上的虚拟机根据所述窗口信息,确定所述窗口的显示区域信息;接收所述服务器发送的与窗口的显示区域信息对应的图像数据并进行显示。
本发明第四方面提供了一种终端,包括,发送单元,用于虚拟机在运行应用的过程中,发送该应用对应的的窗口的窗口信息给服务器,以使所述服务器上的虚拟机根据所述窗口信息,确定所述窗口的显示区域信息;
接收单元,用于接收所述服务器发送的与窗口的显示区域信息对应的图像数据并进行显示。
本发明第三方面提供了一种窗口的显示系统,包括上述的服务器以及上述的终端。
作为第一方面的第一可能的实现方式中,
本发明实施例窗口图像的传输方法、显示方法、终端、服务器及系统,根据应用在终端显示的窗口的显示区域信息,发送与窗口的显示区域信息对应的图像数据,当窗口显示区域小于整个窗口区域时,不需要发送整个窗口区域对应的图像数据,从而达到降低网络负载,提高终端运行效率。
附图简要说明
图1为本发明实施例窗口图像的传输方法的流程示意图。
图2为本发明实施例窗口图像的传输方法中窗口示意图一。
图3为本发明实施例窗口图像的传输方法统中窗口示意图二。
图4为本发明实施例窗口图像的传输方法中窗口示意图三。
图5为本发明实施例窗口图像的传输方法中窗口意图四。
图6为本发明实施例服务器的构成示意图一。
图7为本发明实施例服务器的构成示意图二。
图8为本发明实施例窗口的显示方法的流程示意图一。
图9为本发明实施例窗口的显示方法的流程示意图一。
图10为本发明实施例终端的构成示意图一。
图11为本发明实施例终端的构成示意图二。
图12为本发明实施例窗口的显示系统的构成示意图。
实施本发明的方式
如图1所示,本发明实施例提供一种窗口图像的传输方法,包括:
步骤11、虚拟机在运行应用的过程中,接收终端发送该应用对应的窗口的窗口信息。
步骤12、根据所述窗口信息,确定所述窗口的显示区域信息;
步骤13、根据所述窗口的显示区域信息,将与窗口的显示区域信息对应的图像数据发送给所述终端,以使所述终端进行显示。
本发明实施例窗口图像的传输方法的执行主体可以是服务器端的虚拟机。在执行步骤11之前,终端向服务器发出携带应用标识的应用运行的请求,服务器根据用应标识选择虚拟机运行终端请求的应用,并由虚拟机和终端建立传输应用运行数据和接收终端发送信息的连接。因此,终端通过该连接将该应用在终端显示窗口的窗口信息或用户针对应用的操作发送给运行该应用的虚拟机。窗口是虚拟机运行的应用在终端显示的窗口。
本发明实施例提供的窗口图像的传输方法,根据应用在终端显示的窗口的显示区域信息,发送与窗口的显示区域信息对应的图像数据,当窗口显示区域小于整个窗口区域时,不需要发送整个窗口区域对应的图像数据,从而达到降低网络负载的效果。
其中,具体而言,上述步骤11中,终端发送的窗口信息包括:窗口显示状态,窗口的遮盖区域任一角点的坐标,以及遮盖区域的宽度和高度。其中,坐标包括X坐标和Y坐标,坐标可采用屏幕坐标系的坐标或者窗口坐标系的坐标,屏幕坐标系是指以显示器屏幕的左上角点为坐标原点(0,0),横向为X轴,纵向为Y轴,窗口坐标系是指以窗口的左上角点为坐标原点(0,0)),横向为X轴,纵向为Y轴;窗口的遮盖区域可以为一个或者多个。可选的,窗口信息还可以包括:遮盖窗口数量。
定义终端发送窗口信息的消息类型为Updata_Window_infrom,消息格式可以如下表1所示,从而虚拟机解析该消息获取终端发送的窗口信息:
表1
表1中,窗口显示状态为全显示或者全遮盖时,遮盖窗口数量、X坐标、Y坐标、宽度及高度的参数为空。值得说明的是,本申请中宽度指区域在X轴的长度,高度为区域在Y轴的长度。另,在表1中,X坐标和Y坐标可以为第一个遮盖区域的任一角点的坐标,表一取值为左上角点的坐标,也可以取其它角点的坐标。本发明实施例在此不做限定。其它表中的相应参数参照此段说明。
表1中,遮盖区域角点可以为遮盖区域左上角点、右上角点、左下角点或者右下角点。较佳的,基于采用的坐标系,如屏幕坐标系(以显示器屏幕的左上角点为坐标原点(0,0))或者窗口坐标系(以窗口的左上角点为坐标原点(0,0)),则优选左上角点。
或者,上述步骤11中,终端发送的窗口信息包括:窗口显示状态,窗口任一角点的坐标,窗口的宽度和高度,Z轴序大于该窗口且遮盖该窗口的窗口的任一角点的坐标,以及Z轴序大于该窗口且遮盖该窗口的窗口宽度和高度。其中,坐标包括X坐标和Y坐标,坐标可采用屏幕坐标系的坐标或者窗口坐标系的坐标;Z轴序大于该窗口且遮盖该窗口的窗口可以为一个或者多个。可选的,窗口信息还可以包括:遮盖窗口数量。
定义终端发送窗口信息的消息类型为Updata_Window_infrom,消息格式可以如下表2所示,从而虚拟机解析该消息获取终端发送的窗口信息:
表2
表2中,窗口显示状态为全显示或者全遮盖时,遮盖窗口数量、X坐标、Y坐标、宽度及高度为空。
表2中,通过窗口的任一角点的X坐标、Y坐标、窗口的宽度和高度,以及z轴序大于该窗口且遮盖该窗口的窗口的任一角点的X坐标、Y坐标、z轴序大于该窗口且遮盖该窗口的窗口的宽度和高度,可以确定如表1所示的窗口的遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度。
表2中,角点可以为左上角点、右上角点、左下角点或者右下角点。较佳的,优选左上角点。
对Z轴序简单说明,Z轴序:在使用操作系统时,会打开多个窗口,从而产生了一个重叠窗口的堆。为了表明这些重叠窗口的位置,使用Z轴序来对各窗口进行标注,每个窗口在Z轴序中都有唯一的一个位置。这个窗口堆是沿着一个虚拟的轴——“Z轴”,从屏幕垂直向外延伸。Z轴序顶部的窗口覆盖Z轴序中的其他窗口。Z轴序底部的窗口被Z轴序中的其他窗口覆盖。
例如,Windows系统把刚刚创建的窗口放在Z轴序的顶部,用户可通过激活另外一个窗口来改变Z轴序;Windows系统总是把活动的窗口放在Z轴序的顶部,应用程序可用函数BringWindowToTop()把一个窗口放置到Z轴序的顶部。
通常,系统用一个单链表维护Z轴序。用户在激活不同的窗口过程中会改变Z轴序。例如通过用GetNextWindow()函数,可以获得Z轴序中的前一个或后一个窗口的句柄。
可见,终端的操作系统可以得到每个窗口的Z轴序、窗口坐标信息,包括左上角顶点坐标及每个窗口的宽度和高度。
或者,上述步骤11中,终端发送的窗口信息包括:窗口任一角点的坐标,窗口的宽度和高度,Z轴序大于该窗口的窗口的任一角点的坐标,以及Z轴序大于该窗口的窗口宽度和高度。其中,坐标包括X坐标和Y坐标,坐标可采用屏幕坐标系的坐标或者窗口坐标系的坐标;Z轴序大于该窗口的窗口可以为一个或者多个。可选的,窗口信息还可以包括:遮盖窗口数量。
定义终端发送窗口信息的消息类型为Updata_Window_infrom,消息格式可以如下表3所示,从而虚拟机解析消息获取终端发送的窗口信息:
表3
表3中,通过窗口的任一角点的X坐标、Y坐标、窗口的宽度和高度,以及z轴序大于该窗口的窗口的任一角点的X坐标、Y坐标、z轴序大于该窗口的窗口的宽度和高度,可以确定如表2所示的z轴序大于该窗口且遮盖该窗口的窗口的任一角点的X坐标、Y坐标、z轴序大于该窗口且遮盖该窗口的窗口的宽度和高度,从而进一步确定如表1所示的窗口的遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度。
表3中,角点可以为左上角点、右上角点、左下角点或者右下角点。较佳的,优选左上角点。
基于终端可以以上述3种消息格式发送窗口信息,则终端与虚拟机可以事先协商具体采用哪种格式发送窗口信息,便于虚拟机对应解析出窗口信息。
可选的,上述步骤11中,窗口的大小是以像素点为单位的,如窗口宽为640,高为480,则指窗口的宽为640个像素点,高为480个像素点。当服务器与终端的屏幕分辨率相同的情况下,对应应用的两个窗口也可能不同。这样的不同可以分为三类:
(1)窗口大小不同:如服务器的窗口大小为640*480,但终端的窗口的大小被用户拖拽变为了480*320。
(2)窗口位置不同:如服务器的窗口左上角坐标为(50,50),但终端的窗口的左上角坐标为(40,70)。
(3)窗口大小和位置均不同:上面两种情况的综合。
终端窗口大小和虚拟机的窗口大小可以通过操作系统提供的API(ApplicationProgramming Interface,应用程序编程接口)获得,在此不做赘述。
因此终端的坐标和虚拟机的坐需要可以互相转换标:如虚拟机的窗口大小为X1*Y1,终端窗口大小为X2*Y2,终端窗口的左上角的坐标为(x1,y1),虚拟机窗口左上角的坐标为(x2,y2),则对于在终端的一个坐标为(a1,b1),宽为c1,高为d1的窗口,其在虚拟机的坐标变为a2=(a1x1+x2)*X2/X1;b2=(b1y1+y2)*Y2/Y1;宽为c2c1*X2/X1;高为d2d1*Y2/Y1。举例说明,对于终端窗口的左上角坐标为(100,100),窗口宽度为480,高320,虚拟机的窗口左上角坐标为(50,60),窗口宽度为800,高度为600,则对于终端侧任意窗口的左上角坐标如(200,200))及宽度如(150)和高度如(80),即x1100,y1100,X1480,Y1320,x250,y260,X2800,Y2600,a1200,b1200,c1150,d180,则根据a2=(a1x1+x2)*X2/X1;b2=(b1y1+y2)*Y2/Y1;c2c1*X2/X1;d2d1*Y2/Y1,转换到虚拟机的此窗口坐标为:(250,300),宽度为250,高度为150;
本领域普通技术人员可以参考现有技术理解坐标转换,坐标变换可以在虚拟机端进行,也可以在终端进行,如果在终端进行坐标变换,则终端向虚拟机发送窗口位置请求消息,以获得虚拟机的窗口大小和位置信息。如果在虚拟机端进行坐标变换,则可以在消息(如表1-表3格式)中包含终端的窗口大小和位置信息,或者终端发送单独的窗口通知消息携带终端的窗口大小和位置信息给虚拟机,以便于虚拟机进行坐标转换,在此不做赘述。
可选的,上述步骤11中,终端发送的窗口的窗口信息可以以屏幕坐标系(屏幕坐标系是指以显示器屏幕的左上角点为坐标原点(0,0))下的坐标表示,也可以以窗口坐标系(窗口坐标系是指以窗口的左上角点为坐标原点(0,0))下的坐标表示。较佳的,如表1格式的窗口信息可以窗口坐标系下的坐标表示,由于虚拟机不需要根据窗口信息计算遮盖区域,虚拟机可以快捷的根据窗口坐标系下的坐标直接获得遮盖区域。而表2和表3格式的窗口信息可以以屏幕坐标系下的坐标表示。
可选的,本发明实施例窗口图像的传输方法,当终端建立窗口,或者窗口的Z轴序发生变化,或者窗口的任一角点的坐标发生变化,或者窗口的宽度或者高度发生变化时,终端需要对窗口的窗口信息更新给对应的虚拟机,从而,对应的虚拟机接收终端发送的更新的窗口的窗口信息。
具体而言,上述步骤12、根据窗口的窗口信息,确定窗口的显示区域信息,包括:
方式1,窗口信息为表1格式时:
根据窗口信息中窗口显示状态为全显示时,确定窗口的显示区域为整个窗口。
或者,根据窗口信息中窗口显示状态为全遮盖时,确定窗口的显示区域为0。
或者,根据窗口信息中窗口显示状态为部分遮盖时,根据窗口信息中遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定窗口的显示区域为整个窗口除遮盖区域外的区域,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域,从而确定窗口的显示区域为整个窗口除联合遮盖区域外的区域。
例如,如图2所示,终端存在四个应用在终端分别对应窗口A、窗口B、窗口C及窗口D,如窗口A的左上角点(X,Y)坐标为(50,50),宽为150,高为100;窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120;窗口C的左上角点(X,Y)坐标为(100,110),宽为140,高为100;如窗口D的左上角点(X,Y)坐标为(210,160),宽为20,高为20。
如窗口C的Z轴序>窗口D的Z轴序>窗口B的Z轴序>窗口A的Z轴序。
如图3所示,对于窗口A,窗口A的窗口信息中窗口显示状态为部分遮盖,窗口A的第一遮盖区域左上角点的(X,Y)坐标为(70,80),第一遮盖区域宽为60,高为70。窗口A的第二遮盖区域左上角点的(X,Y)坐标为(100,110),第二遮盖区域宽为100,高为40。根据第一遮盖区域和第二遮盖区域,确定第一遮盖区域和第二遮盖区域构成的联合遮盖区域,其中坐标为(100,110),宽为30,高为40区域为重叠区域。
进一步根据联合遮盖区域,确定窗口A的显示区域为整个窗口A除联合遮盖区域外的区域。
如图4所示,对于窗口B,窗口B的窗口信息中窗口显示状态为部分遮盖,窗口B的遮盖区域左上角点的(X,Y)坐标为(100,110),遮盖区域宽为30,高为40,从而确定窗口B的显示区域为整个窗口B除遮盖区域外的区域。
对于窗口C,窗口C的窗口信息中窗口显示状态为全显示,则确定窗口的显示区域为整个窗口C。
对于窗口D,窗口D的窗口信息中窗口显示状态为全遮盖,则确定窗口的显示区域为0。
方式2,窗口信息为表2格式时:
根据窗口信息中窗口显示状态为全显示时,确定窗口的显示区域为整个窗口。
或者,根据窗口信息中窗口显示状态为全遮盖时,确定窗口的显示区域为0。
或者,根据窗口信息中窗口显示状态为部分遮盖时,根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及z轴序大于该窗口且遮盖该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度;
以及根据遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定窗口的显示区域为整个窗口除遮盖区域外的区域,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域,从而确定窗口的显示区域为整个窗口除联合遮盖区域外的区域。
例如,仍如图2所示,终端存在四个应用在终端分别对应窗口A、窗口B、窗口C及窗口D,如窗口A的左上角点(X,Y)坐标为(50,50),宽为150,高为100;窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120;窗口C的左上角点(X,Y)坐标为(100,110),宽为140,高为100;如窗口D的左上角点(X,Y)坐标为(210,160),宽为20,高为20。
如窗口C的Z轴序>窗口D的Z轴序>窗口B的Z轴序>窗口A的Z轴序。
如图3所示,对于窗口A,窗口A的窗口信息中窗口显示状态为部分遮盖,根据窗口A的左上角点的(X,Y)坐标为(50,50),宽为150,高为100,z轴序大于窗口A且遮盖窗口A的窗口B的左上角点的(X,Y)坐标为(70,80),宽为60,高为120,以及z轴序大于窗口A且遮盖窗口A的窗口C的左上角点的(X,Y)坐标为(100,110),宽为140,高为100,确定窗口A的第一遮盖区域左上角点的(X,Y)坐标为(70,80),第一遮盖区域宽为60,高为70。窗口A的第二遮盖区域左上角点的(X,Y)坐标为(100,110),第二遮盖区域宽为100,高为40。
进一步,根据第一遮盖区域和第二遮盖区域,确定第一遮盖区域和第一遮盖区域构成的联合遮盖区域,其中坐标为(100,110),宽为30,高为40区域为重叠区域,确定窗口A的显示区域为整个窗口A除联合遮盖区域外的区域。
如图4所示,对于窗口B,窗口B的窗口信息中窗口显示状态为部分遮盖,根据窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120,以及z轴序大于窗口B且遮盖窗口B的窗口C的左上角点的(X,Y)坐标为(100,110),宽为140,高为100,确定窗口B的遮盖区域左上角点的(X,Y)坐标为(100,110),遮盖区域宽为30,高为40,从而确定窗口B的显示区域为整个窗口B除遮盖区域外的区域。
对于窗口C,窗口C的窗口信息中窗口显示状态为全显示,则确定窗口的显示区域为整个窗口C。
对于窗口D,窗口D的窗口信息中窗口显示状态为全遮盖,则确定窗口的显示区域为0。
方式3,窗口信息为表3格式时:
根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及z轴序大于该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定z轴序大于该窗口的窗口是否遮盖该窗口,如果z轴序大于该窗口的窗口没有遮盖该窗口,则该窗口的窗口显示状态为全显示,确定该窗口的显示区域为整个窗口;
如果z轴序大于该窗口的窗口遮盖该窗口,则根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及z轴序大于该窗口且遮盖该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度;
根据遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定遮盖区域是否完全遮盖该窗口,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域是否完全遮盖该窗口;
如果遮盖区域或者联合遮盖区域完全遮盖该窗口,则该窗口的窗口显示状态为全遮盖,从而确定该窗口的显示区域为0,如果遮盖区域或者联合遮盖区域没有完全遮盖该窗口,则该窗口的窗口显示状态为部分遮盖,确定该窗口的显示区域为整个该窗口除遮盖区域外的区域,或者确定该窗口的显示区域为整个该窗口除联合遮盖区域外的区域。
例如,如图2所示,终端存在四个应用在终端分别对应窗口A、窗口B、窗口C及窗口D,如窗口A的左上角点(X,Y)坐标为(50,50),宽为150,高为100;窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120;窗口C的左上角点(X,Y)坐标为(100,110),宽为140,高为100;如窗口D的左上角点(X,Y)坐标为(210,160),宽为20,高为20。
如窗口C的Z轴序>窗口D的Z轴序>窗口B的Z轴序>窗口A的Z轴序。
如图3所示,对于窗口A,根据窗口A的窗口信息中窗口A的左上角点的(X,Y)坐标为(50,50),宽为150,高为100,以及z轴序大于窗口A的窗口B的左上角点的(X,Y)坐标为(70,80),宽为60,高为120,确定窗口B的左上角点坐标位于窗口A的窗口区域内。进一步的,根据窗口A的左上角点(X,Y)坐标为(50,50),宽度150,高度100度计算窗口A的右上角点坐标(X,Y)为(200,50),以及计算左下角点坐标(50,150),确定窗口B的左上角点的X轴坐标70大于窗口A的左上角点的X轴坐标50,小于窗口A的右上角点的X轴坐标200,以及确定窗口B的左上角点的Y轴坐标80小于窗口A的左下角点的Y轴坐标150,大于窗口A的左上角点的Y轴坐标50,从而确定窗口B的左上角点位于窗口A的窗口区域内。进一步的确定窗口B的z轴序大于窗口A且遮盖窗口A。
根据窗口A的窗口信息中窗口A的左上角点的(X,Y)坐标为(50,50),宽为150,高为100,以及z轴序大于窗口A的窗口C的左上角点的(X,Y)坐标为(100,110),宽为140,高为100,确定窗口C的左上角点坐标位于窗口A的窗口区域内。进一步的,根据窗口A的左上角点(X,Y)坐标为(50,50),宽度150,高度100度计算窗口A的右上角点坐标(X,Y)为(200,50),以及计算左下角点坐标(50,150),确定窗口C的左上角点的X轴坐标100大于窗口A的左上角点的X轴坐标50,小于窗口A的右上角点的X轴坐标200,以及确定窗口C的左上角点的Y轴坐标110小于窗口A的左下角点的Y轴坐标150,大于窗口A的左上角点的Y轴坐标50,从而确定窗口C的左上角点位于窗口A的窗口区域内。进一步的确定窗口C的z轴序大于窗口A且遮盖窗口A。
根据窗口A的窗口信息中窗口A的左上角点的(X,Y)坐标为(50,50),以及窗口D的左上角点(X,Y)坐标为(210,160),宽为20,高为20,计算窗口A的右上角点坐标(X,Y)为(200,50),以及计算左下角点坐标(50,150),确定窗口D的左上角点的X轴坐标210大于窗口A的右上角点的X轴坐标200,窗口D的左上角点的Y轴坐标160大于窗口A的右上角点的Y轴坐标150,从而确定窗口D的左上角点位于窗口A的窗口区域之外。进一步的确定窗口D没有遮盖窗口A。
此外,假设确定窗口B的左上角点的X轴坐标大于窗口A的右上角点的X轴坐标,或者窗口B的左上角点的Y轴坐标大于窗口A的左下角点的Y轴坐标,即窗口B的左上角点没有位于窗口A的窗口区域内,则确定窗口A没有被窗口B所遮盖;假设确定窗口C的左上角点的X轴坐标大于窗口A的右上角点的X轴坐标,或者窗口C的左上角点的Y轴坐标大于窗口A的左下角点的Y轴坐标,即窗口C的左上角点没有位于窗口A的窗口区域内,则确定窗口A没有被窗口C所遮盖;因此确定窗口A没有被窗口B、窗口C、窗口D所遮盖,窗口A的窗口显示状态为全显示,确定窗口A的显示区域为整个窗口。
进一步根据窗口B的宽度60和高度120,以及窗口A的左上角点的坐标以及窗口A的宽度和高度获取窗口A被窗口B的遮盖的遮盖区域(即第一遮盖区域)。具体的,根据窗口A的左上角点的坐标以及窗口A的宽度和高度获取窗口A的右上角点坐标(X,Y)为(200,50)以及左下角点坐标(50,150),以及根据窗口B的左上角点的坐标以及窗口B的宽度和高度计算窗口B的右上角点坐标(X,Y)为(130,80)以及左下角点坐标(70,200),确定窗口B的右上角点位于窗口A的区域内,以及窗口B的左下角点位于窗口A的区域之外,则确定第一遮盖区域的宽度为窗口B的宽度60,以及第一遮盖区域的高度为窗口A左下角点的Y轴坐标150减去窗口B左上角点的Y轴坐标80为70。因此,窗口A的第一遮盖区域左上角点的(X,Y)坐标为(70,80),第一遮盖区域宽为60,高为70。进一步的,假设确定窗口B的右上角点的坐标位于窗口A的区域之外,即窗口B的右上角点的X轴坐标大于窗口A的X轴坐标,则第一遮盖区域的宽度为窗口A的右上角点的X轴坐标减去的窗口B左上角点的坐标。此外,假设窗口B的左下角点位于窗于A的区域内,则第一遮盖区域的高度为窗口B的高度。
根据窗口C的宽度140和高度100,以及窗口A的左上角点的坐标以及窗口A的宽度和高度获取窗口A被窗口C的遮盖的遮盖区域(即第二遮盖区域)。具体的,根据窗口A的左上角点的坐标以及窗口A的宽度和高度获取窗口A的右上角点坐标(X,Y)为(200,50)以及左下角点坐标(50,150),以及根据窗口C的左上角点的坐标以及窗口C的宽度和高度计算窗口C的右上角点坐标(X,Y)为(240,100)以及左下角点坐标(100,210),确定窗口C的右上角点位于窗口A的区域之外以及窗口C的左下角点位于窗口A的区域之外,则确定第二遮盖区域的宽度为窗口A的右上角点的X轴坐标200减去窗口C的左上角点的X轴坐标100为100,以及第二遮盖区域的高度为窗口A左下角点的Y轴坐标150减去窗口C左上角点的Y轴坐标110为40。因此,窗口A的第二遮盖区域左上角点的(X,Y)坐标为(100,110),第二遮盖区域宽为100,高为40。进一步的,假设确定窗口C的右上角点的坐标位于窗口A的区域内,则第二遮盖区域的宽度为窗口C的宽度。此外,假设窗口C的左下角点位于窗于A的区域内,则第二遮盖区域的高度为窗口C的高度。
进一步根据第一遮盖区域和第二遮盖区域构成的联合遮盖区域的左上角点的坐标(70,80)于窗口A的区域内,则确定联合遮盖区域没有完全遮盖窗口A,确定窗口A的显示区域为整个该窗口A除联合遮盖区域外的区域。假设联合遮盖区域的左上角点的X轴坐标小于等于窗口A左上角点的X轴坐标,联合遮盖区域的左上角点的Y轴坐标小于等于窗口A左上角点的Y轴坐标,且联合遮盖区域的宽大于等于窗口A的宽,联合遮盖区域的高大于等于窗口A的高,则确定联合遮盖区域完全遮盖窗口A,确定窗口A的显示区域为0。
如图4所示,对于窗口B,根据窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120,以及z轴序大于窗口B的窗口C的左上角点的(X,Y)坐标为(100,110),宽为140,高为100,确定窗口C的左上角点坐标位于窗口B的窗口区域内。进一步的,根据窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120,计算窗口B的右上角点坐标(X,Y)为(130,80),以及计算左下角点坐标(70,200),确定窗口C的左上角点的X轴坐标100大于窗口B的左上角点的X轴坐标70,小于窗口B的右上角点的X轴坐标130,以及确定窗口C的左上角点的Y轴坐标110小于窗口B的左下角点的Y轴坐标200,大于窗口B的左上角点的Y轴坐标80,从而确定窗口C的左上角点位于窗口B的窗口区域内。进一步的确定窗口C的z轴序大于窗口B且遮盖窗口B。
根据窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120,以及窗口D的左上角点(X,Y)坐标为(210,160),宽为20,高为20,计算窗口B的右上角点坐标(X,Y)为(130,80),以及计算左下角点坐标(70,200),确定窗口D的左上角点的X轴坐标210大于窗口B的右上角点的X轴坐标130,从而确定窗口D的左上角点位于窗口B的窗口区域之外。进一步的确定窗口D没有遮盖窗口B。
假设确定窗口C的左上角点的X轴坐标大于窗口B的右上角点的X轴坐标,或者窗口C的左上角点的Y轴坐标大于窗口B的左下角点的Y轴坐标,即窗口C的左上角点没有位于窗口B的窗口区域内,则确定窗口B没有被窗口C、窗口D所遮盖,窗口B的窗口显示状态为全显示,确定窗口B的显示区域为整个窗口。
进一步根据窗口C的宽度140和高度100,以及窗口B的左上角点的坐标以及窗口B的宽度和高度获取窗口B被窗口C的遮盖的遮盖区域。具体的,根据窗口B的左上角点的坐标以及窗口B的宽度和高度获取窗口B的右上角点坐标(X,Y)为(130,80)以及左下角点坐标(70,200),以及根据窗口C的左上角点的坐标以及窗口C的宽度和高度计算窗口C的右上角点坐标(X,Y)为(240,100)以及左下角点坐标(100,110),确定窗口C的右上角点位于窗口B的区域之外,以及窗口C的左下角点位于窗口B的区域之外,则确定遮盖区域的宽度为窗口B右上角点的X轴坐标130减去窗口C左上角点的X轴坐标100为30,以及遮盖区域的高度为窗口B左下角点的Y轴坐标200减去窗口C左上角点的Y轴坐标110为90。因此,窗口B的遮盖区域左上角点的(X,Y)坐标为(100,110),遮盖区域宽为30,高为90。进一步的,假设确定窗口C的右上角点的坐标位于窗口B的区域内,则遮盖区域的宽度为窗口C的宽度。此外,假设窗口C的左下角点位于窗于B的区域内,则遮盖区域的高度为窗口C的高度。
进一步根据遮盖区域的左上角点的坐标(100,110)于窗口B的区域内,则确定遮盖区域没有完全遮盖窗口B,确定窗口B的显示区域为整个该窗口B除遮盖区域外的区域。假设遮盖区域的左上角点的X轴坐标小于等于窗口B左上角点的X轴坐标,遮盖区域的左上角点的Y轴坐标小于等于窗口B左上角点的Y轴坐标,且遮盖区域的宽大于等于窗口B的宽,遮盖区域的高大于等于窗口B的高,则确定遮盖区域完全遮盖窗口B,确定窗口B的显示区域为0。
对于窗口C,窗口C的Z轴序>窗口D的Z轴序>窗口B的Z轴序>窗口A的Z轴序,窗口C的窗口信息中没有z轴序大于窗口C的窗口,窗口C的窗口显示状态为全显示,则确定窗口C的显示区域为整个窗口C。
如图5所示,对于窗口D,根据窗口D的窗口信息中窗口D的左上角点(X,Y)坐标为(210,160),宽为20,高为20,计算窗口D的右上角点坐标(X,Y)为(230,160),以及计算窗口D的左下角点坐标(210,180),根据z轴序大于窗口D的窗口C的左上角点的(X,Y)坐标为(100,110),宽为140,高为100,计算窗口C的右上角点坐标(X,Y)为(240,100),以及计算窗口C的左下角点坐标(100,210),确定窗口D的左上角点的X轴坐标210大于窗口C的左上角点的X轴坐标100,小于窗口C的右上角点的X轴坐标240,以及确定窗口D的左上角点的Y轴坐标160小于窗口C的左下角点的Y轴坐标210,大于窗口C的左上角点的Y轴坐标110,从而确定窗口C遮盖窗口D。
进一步根据D的右上角点坐标(X,Y)为(210,160),窗口D的左下角点坐标(210,180),窗口C的右上角点坐标(X,Y)为(240,100),以及窗口C的左下角点坐标(100,210),确定窗口D的遮盖区域左上角点的(X,Y)坐标为(210,160),窗口D的右上角点的坐标位于窗口C的区域内,则遮盖区域的宽度为窗口D的宽度20,窗口C的左下角点位于窗于C的区域内,则遮盖区域的高度为窗口D的高度20。
进一步根据窗口D的遮盖区域左上角点的(X,Y)坐标为(210,160),遮盖区域的宽度度为窗口D的宽度20,遮盖区域的高度为窗口D的高度20,确定确定遮盖区域完全遮盖窗口D,确定窗口D的显示区域为0。
具体而言,步骤13根据所述窗口的显示区域信息,将与窗口的显示区域信息对应的图像数据发送给所述终端,以使所述终端进行显示,包括:
窗口的显示区域为整个窗口时,获取整个窗口的图像数据,发送给终端,由所述终端进行显示。
或者,窗口的显示区域为整个窗口除遮盖区域外的区域时,获取整个窗口的图像数据,向遮盖区域填充纯色或无色,将填充后的图像数据发送给终端,由所述终端进行显示。
其中,整个窗口的图像数据即为窗口对应的应用运行的图像数据;纯色如黑色或者白色。
可见,对于现有的图像编码方式,对于图像复杂(颜色种类多,颜色分布不均)的编码后的数据大小要大于图像简单的(颜色种类单一,颜色分布均匀),所以说纯色的图像编码后数据量最小。对于视频流来说,即编码多幅连续的图像,前后两幅图像的编码,只需要编码第二幅图像改变的部分,所以将被遮盖的图像以纯色填充后进行编码,此部分由于图像不会发生变化,也不用编码,可降低视频流的数据量。而且,窗口的显示区域为0时,不需要获取图像数据,降低视频流的数据量。
可选的,本发明实施例窗口图像的传输方法,还可以包括:
接收所述终端发送的显示图像传输策略,所述显示图像传输策略包括根据所述窗口的Z轴序小于所述终端其他窗口的Z轴序,降质传输所述窗口的图像或者不传输所述窗口的图像,或者根据所述窗口的遮盖区域与显示区域的比例大于一定阈值时,确定降质传输所述窗口的图像或者不传输所述窗口的图像;
根据所述显示图像传输策略,对应降低图像质量传输或不传输所述窗口的图像。
其中,降质传输所述窗口的图像,例如,将高清图像降质为标清图像,等等,以降低网络负载。
可选,如果终端确定显示图像传输策略为不传输所述窗口的图像,则终端可以直接将窗口的窗口显示状态设置为窗口全遮盖。
可见,虽然启动了多个应用对应的窗口,但用户有可能只关注于桌面最前端(Z轴序最大)的一个或两个应用对应的窗口,并不关注Z轴序小的窗口,因此,可以降质传输Z轴序小的窗口或者不传输Z轴序小的窗口,从而达到降低网络负载。提高终端运行效率,降低服务器负载的效果。
本发明实施例窗口图像的传输方法,适用于在线应用场景,对窗口的音视频数据进行高效压缩(例如采取视频压缩技术)后发送到终端,终端收到压缩后的画面后在本地先解码再展示。
与在线应用场景不同的是,在线应用场景是将服务器运行应用的应用窗口的图像数据传递到终端,而远程桌面是将服务器的整个桌面传递到终端,但在终端都是在一个窗口的方式进行显示。所以如果在终端显示的远程桌面的窗口被其他窗口半遮盖时,可以对服务器对应的被遮盖的远程桌面的区域进行单色填充后再编码传输,如是全遮盖,则整个桌面的图像都不用进行编码,也不用进行传输,同样可以减少网络带宽,降低服务器和终端的资源消耗。
本发明实施例窗口图像的传输方法也适用于远程桌面应用场景。
可见,本发明实施例窗口图像的传输方法,对于多窗口情况下,窗口全显示时,将窗口图像编码传输给终端,窗口被全部遮盖时,不需要将窗口图像编码传输给终端,而窗口被部分遮盖时,对遮盖区域内图像填充纯色,再编码传输给终端,从而达到降低网络负载,提高终端运行效率,降低服务器负载的效果。
如图6所示,对应上述实施例的窗口图像的传输方法,本发明实施例提供一种服务器,包括:
接收单元61,用于虚拟机在运行应用的过程中,接收终端发送该应用对应的窗口的窗口信息;
确定单元62,用于根据所述窗口信息,确定所述窗口的显示区域信息;
传输单元63,用于根据所述窗口的显示区域信息,将与窗口的显示区域信息对应的图像数据发送给所述终端,以使所述终端进行显示。
本发明实施例的服务器,根据应用在终端显示的窗口的显示区域信息,发送与窗口的显示区域信息对应的图像数据,当窗口显示区域小于整个窗口区域时,不需要发送整个窗口区域对应的图像数据,从而达到降低网络负载的效果。
本发明实施例的服务器,接收单元61接收终端发送该应用对应的窗口的窗口信息之前,终端向服务器发出携带应用标识的应用运行的请求,服务器根据用应标识选择虚拟机运行终端请求的应用,并由虚拟机和终端建立传输应用运行数据和接收终端发送信息的连接。因此,终端通过该连接将该应用在终端显示窗口的窗口信息或用户针对应用的操作发送给运行该应用的虚拟机。窗口是虚拟机运行的应用在终端显示的窗口。
可选的,终端发送的窗口信息包括:窗口显示状态,窗口的遮盖区域任一角点的坐标,以及遮盖区域的宽度和高度。其中,坐标包括X坐标和Y坐标,坐标可采用屏幕坐标系的坐标或者窗口坐标系的坐标,屏幕坐标系是指以显示器屏幕的左上角点为坐标原点(0,0),横向为X轴,纵向为Y轴,窗口坐标系是指以窗口的左上角点为坐标原点(0,0)),横向为X轴,纵向为Y轴;窗口的遮盖区域可以为一个或者多个。可选的,窗口信息还可以包括:遮盖窗口数量。定义终端发送窗口信息的消息类型为Updata_Window_infrom,消息格式可以如是上表1所示,从而虚拟机解析该消息获取终端发送的窗口信息。
可选的,终端发送的窗口信息包括:窗口显示状态,窗口任一角点的坐标,窗口的宽度和高度,Z轴序大于该窗口且遮盖该窗口的窗口的任一角点的坐标,以及Z轴序大于该窗口且遮盖该窗口的窗口宽度和高度。其中,坐标包括X坐标和Y坐标,坐标可采用屏幕坐标系的坐标或者窗口坐标系的坐标;Z轴序大于该窗口且遮盖该窗口的窗口可以为一个或者多个。可选的,窗口信息还可以包括:遮盖窗口数量。定义终端发送窗口信息的消息类型为Updata_Window_infrom,消息格式可以如上表2所示,从而虚拟机解析该消息获取终端发送的窗口信息。
可选的,终端发送的窗口信息包括:窗口任一角点的坐标,窗口的宽度和高度,Z轴序大于该窗口的窗口的任一角点的坐标,以及Z轴序大于该窗口的窗口宽度和高度。其中,坐标包括X坐标和Y坐标,坐标可采用屏幕坐标系的坐标或者窗口坐标系的坐标;Z轴序大于该窗口的窗口可以为一个或者多个。可选的,窗口信息还可以包括:遮盖窗口数量。定义终端发送窗口信息的消息类型为Updata_Window_infrom,消息格式可以如上表3所示,从而虚拟机解析消息获取终端发送的窗口信息。
可选的,接收单元61还可以用于接收终端发送的窗口位置请求消息,窗口位置请求消息用于请求获得虚拟机的窗口大小和位置信息。此时,如图7所示,本发明实施例提供的服务器,还可以包括发送单元71,用于将虚拟机的窗口大小和位置信息发送给所述终端。
或者,接收单元61接收终端发送的窗口信息,该窗口信息中包含终端的窗口大小和位置信息,或者接收终端发送的窗口通知消息,该窗口通知消息携带终端的窗口大小和位置信息。此时,如图7所示,本发明实施例提供的服务器,还可以包括坐标转换单元72,用于根据终端的窗口大小和位置信息、虚拟机的窗口大小和位置信息将终端的坐标转换为虚拟机相应坐标。
虚拟机的窗口大小可以通过操作系统提供的API获得。坐标转换公式:如虚拟机的窗口大小为X1*Y1,终端窗口大小为X2*Y2,如终端窗口的左上角的坐标为(x1,y1),虚拟机窗口左上角的坐标为(x2,y2),则对于在终端的一个坐标为(a1,b1),宽为c1,高为d1的窗口,其在虚拟机的坐标变为a2=(a1x1+x2)*X2/X1;b2=(b1y1+y2)*Y2/Y1;宽为c2c1*X2/X1;高为d2d1*Y2/Y1。
当窗口信息为表1格式时:确定单元62,具体可以用于:
根据窗口信息中窗口显示状态为全显示时,确定窗口的显示区域为整个窗口。
或者,根据窗口信息中窗口显示状态为全遮盖时,确定窗口的显示区域为0。
或者,根据窗口信息中窗口显示状态为部分遮盖时,根据窗口信息中遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定窗口的显示区域为整个窗口除遮盖区域外的区域,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域,从而确定窗口的显示区域为整个窗口除联合遮盖区域外的区域。
或者,当窗口信息为表2格式时:确定单元62,具体可以用于:
根据窗口信息中窗口显示状态为全显示时,确定窗口的显示区域为整个窗口。
或者,根据窗口信息中窗口显示状态为全遮盖时,确定窗口的显示区域为0。
或者,根据窗口信息中窗口显示状态为部分遮盖时,根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及z轴序大于该窗口且遮盖该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度;
以及根据遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定窗口的显示区域为整个窗口除遮盖区域外的区域,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域,从而确定窗口的显示区域为整个窗口除联合遮盖区域外的区域。
或者,当窗口信息为表3格式时:确定单元62,具体可以用于:
根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及z轴序大于该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定z轴序大于该窗口的窗口是否遮盖该窗口,如果z轴序大于该窗口的窗口没有遮盖该窗口,则该窗口的窗口显示状态为全显示,确定该窗口的显示区域为整个窗口;
如果z轴序大于该窗口的窗口遮盖该窗口,则根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及z轴序大于该窗口且遮盖该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度;
根据遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定遮盖区域是否完全遮盖该窗口,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域是否完全遮盖该窗口;
如果遮盖区域或者联合遮盖区域完全遮盖该窗口,则该窗口的窗口显示状态为全遮盖,从而确定该窗口的显示区域为0,如果遮盖区域或者联合遮盖区域没有完全遮盖该窗口,则该窗口的窗口显示状态为部分遮盖,确定该窗口的显示区域为整个该窗口除遮盖区域外的区域,或者确定该窗口的显示区域为整个该窗口除联合遮盖区域外的区域。
具体而言,传输单元63,可以用于窗口的显示区域为整个窗口时,获取整个窗口的图像数据,发送给终端,由所述终端进行显示。或者,窗口的显示区域为整个窗口除遮盖区域外的区域时,获取整个窗口的图像数据,向该遮盖区域填充纯色或无色,将填充后的图像数据发送给终端,由所述终端进行显示。
其中,纯色如黑色或者白色。
可选的,本发明实施例服务器,接收单元61还可以用于:
接收所述终端发送的显示图像传输策略,所述显示图像传输策略包括根据所述窗口的Z轴序小于所述终端其他窗口的Z轴序,降质传输所述窗口的图像或者不传输所述窗口的图像,或者根据所述窗口的遮盖区域与显示区域的比例大于一定阈值时,确定降质传输所述窗口的图像或者不传输所述窗口的图像;
此时,传输单元63,用于根据所述显示图像传输策略,对应降低图像质量传输或不传输所述窗口的图像。
其中,降质传输所述窗口的图像,例如,将高清图像降质为标清图像,等等,以降低网络负载。
可选,如果终端确定显示图像传输策略为不传输所述窗口的图像,则终端发送的窗口信息中的窗口显示状态为窗口全遮盖,从而接收单元61接收到终端发送的窗口信息中的窗口显示状态为窗口全遮盖。
本发明实施例服务器可以对应参考上述实施例的窗口图像的传输方法得以具体理解,在此不作赘述。
如图8所示,本发明实施例提供一种窗口的显示方法,包括:
步骤81、虚拟机在运行应用的过程中,发送该应用对应的窗口的窗口信息给服务器,以使所述服务器上的虚拟机根据所述窗口信息,确定所述窗口的显示区域信息;
步骤82、接收所述服务器发送的与窗口的显示区域信息对应的图像数据并进行显示。
本发明实施例窗口的显示方法的执行主体是终端。
本发明实施例窗口的显示方法,终端接收所述服务器发送的与窗口的显示区域信息对应的图像数据,当窗口显示区域小于整个窗口区域时,不需要接收整个窗口区域对应的图像数据,从而达到降低网络负载的效果,并提高终端运行效率。
本发明实施例窗口的显示方法,终端向服务器发出携带应用标识的应用运行的请求,服务器根据用应标识选择虚拟机运行终端请求的应用,并由虚拟机和终端建立传输应用运行数据和接收终端发送信息的连接。因此,终端通过该连接将该应用在终端显示窗口的窗口信息或用户针对应用的操作发送给运行该应用的虚拟机。窗口是虚拟机运行的应用在终端显示的窗口。
本发明实施例窗口的显示方法,在上述步骤81之前,还可以包括:
当终端建立窗口,或者窗口的Z轴序发生变化,或者窗口的任一角点的坐标发生变化,或者窗口的宽度或者高度发生变化时,确定该窗口的窗口信息。
具体的,参见图2图5,终端存在四个应用在终端分别对应窗口A、窗口B、窗口C及窗口D,如图9所示,确定窗口的窗口信息,包括:
步骤91、终端获取终端所有窗口的Z轴序、所有窗口的任一角点的(X,Y)坐标以及所有窗口的宽度和高度。
具体的,终端获取所有窗口的Z轴序,如窗口C的Z轴序>窗口D的Z轴序>窗口B的Z轴序>窗口A的Z轴序。
以下具体都以左上角点为例,终端获取窗口A的左上角点(X,Y)坐标为(50,50),宽为150,高为100;窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120;窗口C的左上角点(X,Y)坐标为(100,110),宽为140,高为100;如窗口D的左上角点(X,Y)坐标为(210,160),宽为20,高为20。
步骤92、终端确定窗口的Z轴序是否为最大,如果是则窗口显示状态为全显示,否则进入步骤93确定z轴序大于该窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度。
具体的,终端根据窗口C的Z轴序>窗口D的Z轴序窗口B的Z轴序>窗口A的Z轴序,确定窗口C的Z轴序最大,即窗口C为Z轴序顶部的窗口,则根据Z轴序顶部的窗口覆盖Z轴序中的其他窗口,确定窗口C的窗口显示状态为全显示。
由于窗口A、窗口B和窗口D的Z轴序不为最大,进入步骤93进一步确定z轴序大于该窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度。
步骤93、终端根据z轴序大于该窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度,确定窗口是否被z轴序大于该窗口的窗口遮盖,如果没有则该窗口的窗口显示状态为全显示,否则确定z轴序大于该窗口且遮盖该窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度。
具体的,窗口C的Z轴序、窗口D的Z轴序以及窗口B的Z轴序大于窗口A的Z轴序,终端根据窗口A的左上角点的横纵轴(X,Y)以及窗口的宽度和高度,确认Z轴序大于窗口A的窗口B的左上角点位于窗口A的窗口区域内,确定窗口A被窗口B遮盖。具体的,如图3所示,对于窗口A,终端根据窗口B的Z轴序>窗口A的Z轴序,以及窗口A的横纵轴(X,Y)坐标为(50,50),宽度150,高度100;窗口B的左上角点(X,Y)坐标为(70,80),确定窗口B的左上角点坐标位于窗口A的窗口区域内。进一步的,终端可以根据窗口A的XY轴(X,Y)坐标为(50,50),宽度150,高度100度计算窗口A的右上角点坐标(X,Y)为(200,50),以及计算左下角点坐标(50,150),确定窗口B的左上角点的X轴坐标70大于窗口A的左上角点的X轴坐标50,小于窗口A的右上角点的X轴坐标200,以及确定窗口B的左上角点的Y轴坐标80小于窗口A的左下角点的Y轴坐标150,大于窗口A的左上角点的Y轴坐标50,从而确定窗口B的左上角点位于窗口A的窗口区域内。
作为另一种可选方式,终端根据窗口A的左上角点的横纵轴(X,Y)以及窗口的宽度和高度以及根据窗口B的左上角点的坐标和/或窗口B的高度,确认Z轴序大于窗口A的窗口B窗口B的左上角点的Y轴标坐小于窗口A的左下角点的Y轴坐标,或确定窗口B的左下角点的Y轴坐标大于窗口A的左上角点的Y轴坐标,则确定窗口A没有被窗口B所遮盖。进一步的,终端根据窗口A的左上角点的横纵轴(X,Y)以及窗口的宽度和高度以及根据窗口B的左上角点的坐标和/或窗口B的高度,确定窗口B的左上角点的X坐标大于窗口A的左上角点的X轴坐标,小于窗口A的右上角点的X轴坐标,且窗口B的左下角点的Y轴坐标大于窗口A的左上角点的Y轴坐标,则确定窗口A被窗口B所遮盖。并可以进一步确定窗口A被遮盖的第一遮盖区域。
根据窗口A的窗口信息中窗口A的左上角点的(X,Y)坐标为(50,50),宽为150,高为100,以及z轴序大于窗口A的窗口C的左上角点的(X,Y)坐标为(100,110),宽为140,高为100,确定窗口C的左上角点坐标位于窗口A的窗口区域内。进一步的,根据窗口A的左上角点(X,Y)坐标为(50,50),宽度150,高度100度计算窗口A的右上角点坐标(X,Y)为(200,50),以及计算左下角点坐标(50,150),确定窗口C的左上角点的X轴坐标100大于窗口A的左上角点的X轴坐标50,小于窗口A的右上角点的X轴坐标200,以及确定窗口C的左上角点的Y轴坐标110小于窗口A的左下角点的Y轴坐标150,大于窗口A的左上角点的Y轴坐标50,从而确定窗口C的左上角点位于窗口A的窗口区域内。进一步的确定窗口C的z轴序大于窗口A且遮盖窗口A。
根据窗口A的窗口信息中窗口A的左上角点的(X,Y)坐标为(50,50),以及窗口D的左上角点(X,Y)坐标为(210,160),宽为20,高为20,计算窗口A的右上角点坐标(X,Y)为(200,50),以及计算左下角点坐标(50,150),确定窗口D的左上角点的X轴坐标210大于窗口A的右上角点的X轴坐标200,窗口D的左上角点的Y轴坐标160大于窗口A的右上角点的Y轴坐标150,从而确定窗口D的左上角点位于窗口A的窗口区域之外。进一步的确定窗口D没有遮盖窗口A。
此外,假设确定窗口B的左上角点的X轴坐标大于窗口A的右上角点的X轴坐标,或者窗口B的左上角点的Y轴坐标大于窗口A的左下角点的Y轴坐标,即窗口B的左上角点没有位于窗口A的窗口区域内,则确定窗口A没有被窗口B所遮盖;假设确定窗口C的左上角点的X轴坐标大于窗口A的右上角点的X轴坐标,或者窗口C的左上角点的Y轴坐标大于窗口A的左下角点的Y轴坐标,即窗口C的左上角点没有位于窗口A的窗口区域内,则确定窗口A没有被窗口C所遮盖;因此确定窗口A没有被窗口B、窗口C、窗口D所遮盖,窗口A的窗口显示状态为全显示。
如图4所示,对于窗口B,窗口C的Z轴序以及窗口D的Z轴序大于窗口B的Z轴序,终端根据窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120,以及z轴序大于窗口B的窗口C的左上角点的(X,Y)坐标为(100,110),宽为140,高为100,确定窗口C的左上角点坐标位于窗口B的窗口区域内。进一步的,根据窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120,计算窗口B的右上角点坐标(X,Y)为(130,80),以及计算左下角点坐标(70,200),确定窗口C的左上角点的X轴坐标100大于窗口B的左上角点的X轴坐标70,小于窗口B的右上角点的X轴坐标130,以及确定窗口C的左上角点的Y轴坐标110小于窗口B的左下角点的Y轴坐标200,大于窗口B的左上角点的Y轴坐标80,从而确定窗口C的左上角点位于窗口B的窗口区域内。进一步的确定窗口C的z轴序大于窗口B且遮盖窗口B。
根据窗口B的左上角点(X,Y)坐标为(70,80),宽为60,高为120,以及窗口D的左上角点(X,Y)坐标为(210,160),宽为20,高为20,计算窗口B的右上角点坐标(X,Y)为(130,80),以及计算左下角点坐标(70,200),确定窗口D的左上角点的X轴坐标210大于窗口B的右上角点的X轴坐标130,从而确定窗口D的左上角点位于窗口B的窗口区域之外。进一步的确定窗口D没有遮盖窗口B。
假设确定窗口C的左上角点的X轴坐标大于窗口B的右上角点的X轴坐标,或者窗口C的左上角点的Y轴坐标大于窗口B的左下角点的Y轴坐标,即窗口C的左上角点没有位于窗口B的窗口区域内,则确定窗口B没有被窗口C、窗口D所遮盖,窗口B的窗口显示状态为全显示。
如图5所示,对于窗口D,窗口C的Z轴序大于窗口D的Z轴序,终端根据窗口D的窗口信息中窗口D的左上角点(X,Y)坐标为(210,160),宽为20,高为20,计算窗口D的右上角点坐标(X,Y)为(230,160),以及计算窗口D的左下角点坐标(210,180),根据z轴序大于窗口D的窗口C的左上角点的(X,Y)坐标为(100,110),宽为140,高为100,计算窗口C的右上角点坐标(X,Y)为(240,100),以及计算窗口C的左下角点坐标(100,210),确定窗口D的左上角点的X轴坐标210大于窗口C的左上角点的X轴坐标100,小于窗口C的右上角点的X轴坐标240,以及确定窗口D的左上角点的Y轴坐标160小于窗口C的左下角点的Y轴坐标210,大于窗口C的左上角点的Y轴坐标110,从而确定C的z轴序大于窗口D且遮盖窗口D。
步骤94、终端根据z轴序大于该窗口且遮盖该窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度,以及该窗口任一角点的(X,Y)坐标以及窗口的宽度和高度,确定该窗口的遮盖区域任一角点的(X,Y)坐标以及遮盖区域的宽度和高度。
如图3所示,对于窗口A,根据窗口B的宽度60和高度120,以及窗口A的左上角点的坐标以及窗口A的宽度和高度获取窗口A被窗口B的遮盖的遮盖区域(即第一遮盖区域)。具体的,终端窗口A的左上角点的坐标以及窗口A的宽度和高度获取窗口A的右上角点坐标(X,Y)为(200,50)以及左下角点坐标(50,150),以及根据窗口B的左上角点的坐标以及窗口B的宽度和高度计算窗口B的右上角点坐标(X,Y)为(130,80)以及左下角点坐标(70,200),终端确定窗口B的右上角点位于窗口A的区域内,则确定第一遮盖区域的宽度为窗口B的宽度60,以及第一遮盖区域的高度为窗口A左下角点的Y轴坐标150减去窗口B左上角点的Y轴坐标80为70.因此,窗口A的第一遮盖区域左上角点的(X,Y)坐标为(70,80),第一遮盖区域宽为60,高为70。进一步的,假设终端确定窗口B的右上角点的坐标位于窗口A的区域之外,即窗口B的右上角点的X轴坐标大于窗口A的X轴坐标,则第一遮盖区域的宽度为窗口A的右上角点的X轴坐标减去窗口B的左上角点的坐标。此外,假设终端窗口B的左下角点位于窗于A的区域内,则第一遮盖区域的高度为窗口B的高度。
根据窗口C的宽度140和高度100,以及窗口A的左上角点的坐标以及窗口A的宽度和高度获取窗口A被窗口C的遮盖的遮盖区域(即第二遮盖区域)。具体的,根据窗口A的左上角点的坐标以及窗口A的宽度和高度获取窗口A的右上角点坐标(X,Y)为(200,50)以及左下角点坐标(50,150),以及根据窗口C的左上角点的坐标以及窗口C的宽度和高度计算窗口C的右上角点坐标(X,Y)为(240,100)以及左下角点坐标(100,210),确定窗口C的右上角点位于窗口A的区域之外以及窗口C的左下角点位于窗口A的区域之外,则确定第二遮盖区域的宽度为窗口A的右上角点的X轴坐标200减去窗口C的左上角点的X轴坐标100为100,以及第二遮盖区域的高度为窗口A左下角点的Y轴坐标150减去窗口C左上角点的Y轴坐标110为40。因此,窗口A的第二遮盖区域左上角点的(X,Y)坐标为(100,110),第二遮盖区域宽为100,高为40。进一步的,假设确定窗口C的右上角点的坐标位于窗口A的区域内,则第二遮盖区域的宽度为窗口C的宽度。此外,假设窗口C的左下角点位于窗于A的区域内,则第二遮盖区域的高度为窗口C的高度。
如图4所示,对于窗口B,根据窗口C的宽度140和高度100,以及窗口B的左上角点的坐标以及窗口B的宽度和高度获取窗口B被窗口C的遮盖的遮盖区域。具体的,根据窗口B的左上角点的坐标以及窗口B的宽度和高度获取窗口B的右上角点坐标(X,Y)为(130,80)以及左下角点坐标(70,200),以及根据窗口C的左上角点的坐标以及窗口C的宽度和高度计算窗口C的右上角点坐标(X,Y)为(240,100)以及左下角点坐标(100,110),确定窗口C的右上角点位于窗口B的区域之外,以及窗口C的左下角点位于窗口B的区域之外,则确定遮盖区域的宽度为窗口B右上角点的X轴坐标130减去窗口C左上角点的X轴坐标100为30,以及遮盖区域的高度为窗口B左下角点的Y轴坐标200减去窗口C左上角点的Y轴坐标110为90。因此,窗口B的遮盖区域左上角点的(X,Y)坐标为(100,110),遮盖区域宽为30,高为90。进一步的,假设确定窗口C的右上角点的坐标位于窗口B的区域内,则遮盖区域的宽度为窗口C的宽度。此外,假设窗口C的左下角点位于窗于B的区域内,则遮盖区域的高度为窗口C的高度。
如图5所示,对于窗口D,根据D的右上角点坐标(X,Y)为(210,160),窗口D的左下角点坐标(210,180),窗口C的右上角点坐标(X,Y)为(240,100),以及窗口C的左下角点坐标(100,210),确定窗口D的遮盖区域左上角点的(X,Y)坐标为(210,160),窗口D的右上角点的坐标位于窗口C的区域内,则遮盖区域的宽度为窗口D的宽度20,窗口C的左下角点位于窗于C的区域内,则遮盖区域的高度为窗口D的高度20。
步骤95、终端确定该窗口的遮盖区域完全遮盖该窗口时,确定窗口的窗口显示状态为全遮盖,根据该窗口的遮盖区域没有完全遮盖该窗口时,确定窗口的窗口显示状态为部分遮盖。
根据第一遮盖区域和第二遮盖区域构成的联合遮盖区域的左上角点的坐标(70,80)于窗口A的区域内,则确定联合遮盖区域没有完全遮盖窗口A,即窗口A的窗口显示状态为部分遮盖。假设联合遮盖区域的左上角点的X轴坐标小于等于窗口A左上角点的X轴坐标,联合遮盖区域的左上角点的Y轴坐标小于等于窗口A左上角点的Y轴坐标,且联合遮盖区域的宽大于等于窗口A的宽,联合遮盖区域的高大于等于窗口A的高,则确定联合遮盖区域完全遮盖窗口A,即窗口A的窗口显示状态为全遮盖。
根据遮盖区域的左上角点的坐标(100,110)于窗口B的区域内,则确定遮盖区域没有完全遮盖窗口B,即窗口B的窗口显示状态为部分遮盖。假设遮盖区域的左上角点的X轴坐标小于等于窗口B左上角点的X轴坐标,遮盖区域的左上角点的Y轴坐标小于等于窗口B左上角点的Y轴坐标,且遮盖区域的宽大于等于窗口B的宽,遮盖区域的高大于等于窗口B的高,则确定遮盖区域完全遮盖窗口B,即窗口B的窗口显示状态为全遮盖。
根据窗口D的遮盖区域左上角点的(X,Y)坐标为(210,160),遮盖区域的宽度度为窗口D的宽度20,遮盖区域的高度为窗口D的高度20,确定遮盖区域完全遮盖窗口D,即窗口D的窗口显示状态为全遮盖。
可选的,本发明实施例窗口的显示方法中,窗口信息中包含终端的窗口大小和位置信息,或者终端发送窗口通知消息,该窗口通知消息携带终端的窗口大小和位置信息,以使服务器根据终端的窗口大小和位置信息、虚拟机的窗口大小和位置信息将终端的坐标转换为虚拟机相应坐标。
或者,可选的,本发明实施例窗口的显示方法,还可以包括:
发送窗口位置请求消息给服务器,窗口位置请求消息用于请求获得虚拟机的窗口大小和位置信息;
接收服务器发送的虚拟机的窗口大小和位置信息;
根据终端的窗口大小和位置信息、虚拟机的窗口大小和位置信息将终端的坐标转换为虚拟机相应坐标。
其中,终端的窗口大小可以通过操作系统提供的API获得。坐标转换公式:如虚拟机的窗口大小为X1*Y1,终端窗口大小为X2*Y2,如终端窗口的左上角的坐标为(x1,y1),虚拟机窗口左上角的坐标为(x2,y2),则对于在终端的一个坐标为(a1,b1),宽为c1,高为d1的窗口,其在虚拟机的坐标变为a2=(a1-x1+x2)*X2/X1;b2=(b1-y1+y2)*Y2/Y1;宽为c2=c1*X2/X1;高为d2=d1*Y2/Y1。
可选的,本发明实施例窗口的显示方法,还可以包括:
根据窗口的Z轴序小于终端其他窗口的Z轴序,确定显示图像传输策略为降质传输所述窗口的图像或者不传输所述窗口的图像,或者根据所述窗口的遮盖区域与显示区域的比例大于一定阈值时,确定显示图像传输策略为降质传输所述窗口的图像或者不传输所述窗口的图像;
将确定显示图像传输策略发送给服务器。
其中,降质传输所述窗口的图像,例如,将高清图像降质为标清图像,等等,以降低网络负载。
可选,如果终端确定显示图像传输策略为不传输所述窗口的图像,则终端发送的窗口信息中的窗口显示状态为窗口全遮盖。
如图10所示,对应于上述实施例窗口的显示方法,本发明实施例提供一种终端,包括:
发送单元101,用于虚拟机在运行应用的过程中,发送该应用对应的窗口的窗口信息给服务器,以使所述服务器上的虚拟机根据所述窗口信息,确定所述窗口的显示区域信息。
接收单元102,用于接收所述服务器发送的与窗口的显示区域信息对应的图像数据并进行显示。
本发明实施例的终端,接收服务器发送的与窗口的显示区域信息对应的图像数据,当窗口显示区域小于整个窗口区域时,不需要接收整个窗口区域对应的图像数据,从而达到降低网络负载的效果,并提高终端运行效率。
本发明实施例终端向服务器发出携带应用标识的应用运行的请求,服务器根据用应标识选择虚拟机运行终端请求的应用,并由虚拟机和终端建立传输应用运行数据和接收终端发送信息的连接。因此,终端通过该连接将该应用在终端显示窗口的窗口信息或用户针对应用的操作发送给运行该应用的虚拟机。窗口是虚拟机运行的应用在终端显示的窗口。
如图11所示,本发明实施例终端,还包括:
确定单元111,用于当终端建立窗口,或者窗口的Z轴序发生变化,或者窗口的任一角点的坐标发生变化,或者窗口的宽度或者高度发生变化时,确定该窗口的窗口信息。
确定单元111具体包括:
获取子单元1111,用于获取终端所有窗口的Z轴序、所有窗口的任一角点的(X,Y)坐标以及所有窗口的宽度和高度;
第一确定子单元1112,用于确定该应用对应的窗口的Z轴序是否为最大,如果是则该应用对应的窗口的窗口显示状态为全显示;
第二确定子单元1113,用于第一确定子单元1112确定该应用对应的窗口的Z轴序不为最大时,根据z轴序大于该应用对应的窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度,确定该应用对应的窗口是否被z轴序大于该应用对应的窗口的窗口遮盖,如果没有则该应用对应的窗口的窗口显示状态为全显示,否则确定z轴序大于该应用对应的窗口且遮盖该窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度;
第三确定子单元1114,用于根据z轴序大于该应用对应的窗口且遮盖该应用对应的窗口的窗口的任一角点的(X,Y)坐标以及窗口的宽度和高度,以及该应用对应的窗口的任一角点的(X,Y)坐标以及窗口的宽度和高度,确定该应用对应的窗口的遮盖区域的任一角点的(X,Y)坐标以及遮盖区域的宽度和高度;
第四确定子单元1115,用于确定该应用对应的窗口的遮盖区域完全遮盖该应用对应的窗口时,确定该应用对应的窗口的窗口显示状态为全遮盖,该应用对应的窗口的遮盖区域没有完全遮盖该应用对应的窗口时,确定该应用对应的窗口的窗口显示状态为部分遮盖。
可选的,发送单元101发送的窗口信息中可以包含终端的窗口大小和位置信息,或者发送单元101发送窗口通知消息,该窗口通知消息携带终端的窗口大小和位置信息,以使服务器根据终端的窗口大小和位置信息、虚拟机的窗口大小和位置信息将终端的坐标转换为虚拟机相应坐标。
或者,可选的,发送单元101,还可以用于发送窗口位置请求消息给服务器,窗口位置请求消息用于请求获得虚拟机的窗口大小和位置信息;此时,接收单元102还可以用于接收服务器发送的虚拟机的窗口大小和位置信息;此时,本发明实施例终端,还包括坐标转换112,用于根据终端的窗口大小和位置信息、虚拟机的窗口大小和位置信息将终端的坐标转换为虚拟机相应坐标。
其中,终端的窗口大小可以通过操作系统提供的API获得。坐标转换公式:如虚拟机的窗口大小为X1*Y1,终端窗口大小为X2*Y2,如终端窗口的左上角的坐标为(x1,y1),虚拟机窗口左上角的坐标为(x2,y2),则对于在终端的一个坐标为(a1,b1),宽为c1,高为d1的窗口,其在虚拟机的坐标变为a2=(a1-x1+x2)*X2/X1;b2=(b1-y1+y2)*Y2/Y1;宽为c2=c1*X2/X1;高为d2=d1*Y2/Y1。
可选的,确定单元111,还可以用于根据窗口的Z轴序小于终端其他窗口的Z轴序,确定显示图像传输策略为降质传输所述窗口的图像或者不传输所述窗口的图像,或者根据所述窗口的遮盖区域与显示区域的比例大于一定阈值时,确定显示图像传输策略为降质传输所述窗口的图像或者不传输所述窗口的图像;
发送单元101,还可以用于将确定显示图像传输策略发送给服务器。
具体的,可以由第一确定子单元1112,确定窗口的Z轴序是否小于终端其他窗口的Z轴序。可以由第四确定子单元1115确定窗口的遮盖区域与显示区域的比例大于一定阈值。
其中,降质传输所述窗口的图像,例如,将高清图像降质为标清图像,等等,以降低网络负载。
可选,如果终端确定显示图像传输策略为不传输所述窗口的图像,则发送单元101发送的窗口信息中的窗口显示状态为窗口全遮盖。
本发明实施例终端可以对应参考上述实施例的窗口的显示方法得以具体理解,在此不作赘述。
如图12所示,本发明实施例窗口的显示系统的应用示意图,窗口的显示系统包括终端121以及服务器122。
具体而言,终端121包括确定单元1211、坐标转换单元1212、输入设备单元1213、发送单元1214、接收单元1215和显示单元1216。服务器122包括接收单元1221、应用运行单元1222、图像截取单元1223、图像填充单元1224、图像位置处理单元1225、编码单元1226和发送单元1226。
确定单元1211,用于确定窗口的窗口信息。
坐标转换单元1212,用于将终端的窗口坐标转换为服务器端虚拟机上窗口的相应坐标。
输入设备单元1213,用于产生输入事件。用户操作的输入事件具体可以指键盘和鼠标事件(PC机型的终端)、按键或触摸屏事件(手机或PDA型的终端)、遥控器或者游戏手柄的操作事件(电视型的终端)等。
发送单元1214,用于发送窗口信息给接收单元1221。
接收单元1221,用于接收发送单元1214发送的窗口信息,并发送给应用运行单元1222和图像位置处理单元1225。
应用运行单元1222,为虚拟机上控制应用的运行,包括应用的启动,暂停,中止等。
处理单元1225,用于当窗口部分遮盖时,确定窗口遮盖区域信息,或者根据窗口遮盖位置信息计算得到窗口遮盖区域信息。
图像截取单元1223,用于根据应用运行单元1222应用的运行,截取窗口的图像,当窗口全显示时,将截取图像发送给编码单元1226。
图像填充单元1224,用于当窗口部分遮盖时,对截取窗口的图像中的遮盖区域填充纯色,将具有填充的截取图像发送给编码单元726。
编码单元1226,用于对接收到的图像进行编码,并发送给发送单元1226。
发送单元226,用于将编码后的图像发送给接收单元1215。
接收单元1215,用于从发送单元1226接收编码后的图像。
显示单元1216,用于对接收单元1215接收到的编码后的图像进行解码显示。
本发明实施例窗口的显示系统中终端121以及服务器122可以对应参考上述实施例的终端以及服务器得以具体理解,在此不作赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。

Claims (16)

1.一种窗口图像的传输方法,其特征在于,包括:
虚拟机在运行应用的过程中,接收终端发送该应用对应的窗口的窗口信息,
根据所述窗口信息确定所述窗口的显示区域;
根据所述窗口的显示区域,将与窗口的显示区域信息对应的图像数据发送给所述终端,以使所述终端进行显示;
所述方法进一步包括,
接收所述终端发送的显示图像传输策略,所述显示图像传输策略包括根据所述窗口的Z轴序小于所述终端其他窗口的Z轴序,降质传输所述窗口的图像或者不传输所述窗口的图像,或者根据所述窗口的遮盖区域与显示区域的比例大于一定阈值时,确定降质传输所述窗口的图像或者不传输所述窗口的图像;
根据所述显示图像传输策略,对应降低图像质量传输或不传输所述窗口的图像。
2.根据权利要求1所述的窗口图像的传输方法,其特征在于,所述窗口信息包括窗口任一角点的坐标,窗口的宽度和高度,以及Z轴序大于该窗口的窗口的任一角点的坐标和Z轴序大于该窗口的窗口宽度和高度,所述确定所述窗口的显示区域具体为:
根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及Z轴序大于该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定z轴序大于该窗口的窗口是否遮盖该窗口,如果Z轴序大于该窗口的窗口没有遮盖该窗口,则该窗口的窗口显示状态为全显示,确定该窗口的显示区域为整个窗口;
如果Z轴序大于该窗口的窗口遮盖该窗口,则根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及Z轴序大于该窗口且遮盖该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度;
根据遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定遮盖区域是否完全遮盖该窗口,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域是否完全遮盖该窗口;
如果遮盖区域或者联合遮盖区域完全遮盖该窗口,则该窗口的窗口显示状态为全遮盖,从而确定该窗口的显示区域为0,如果遮盖区域或者联合遮盖区域没有完全遮盖该窗口,则该窗口的窗口显示状态为部分遮盖,确定该窗口的显示区域为整个该窗口除遮盖区域外的区域,或者确定该窗口的显示区域为整个该窗口除联合遮盖区域外的区域。
3.根据权利要求1所述的窗口图像的传输方法,其特征在于,所述窗口信息包括窗口显示状态,窗口的遮盖区域的任一角点坐标,以及遮盖区域的宽度和高度,所述确定所述窗口的显示区域具体为:
根据窗口信息中窗口显示状态为全显示时,确定窗口的显示区域为整个窗口:
或者,根据窗口信息中窗口显示状态为全遮盖时,确定窗口的显示区域为0;
或者,根据窗口信息中窗口显示状态为部分遮盖时,根据窗口信息中遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定窗口的显示区域为整个窗口除遮盖区域外的区域,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域,从而确定窗口的显示区域为整个窗口除联合遮盖区域外的区域。
4.根据权利要求1所述的窗口图像的传输方法,其特征在于,所述窗口信息包括:窗口显示状态,窗口任一角点的坐标,窗口的宽度和高度,Z轴序大于该窗口且遮盖该窗口的窗口的任一角点的坐标,以及Z轴序大于该窗口且遮盖该窗口的窗口宽度和高度,所述确定所述窗口的显示区域具体为:
根据窗口信息中窗口显示状态为全显示时,确定窗口的显示区域为整个窗口;
或者,根据窗口信息中窗口显示状态为全遮盖时,确定窗口的显示区域为0;
或者,根据窗口信息中窗口显示状态为部分遮盖时,根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及Z轴序大于该窗口且遮盖该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度;
以及根据遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定窗口的显示区域为整个窗口除遮盖区域外的区域,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域,从而确定窗口的显示区域为整个窗口除联合遮盖区域外的区域。
5.根据权利要求1-4任一所述的窗口图像的传输方法,其特征在于,该方法进一步包括:根据所述显示区域,确定与显示区域对应的图像数据。
6.根据权利要求5所述的窗口图像的传输方法,其特征在于,所述根据所述窗口的显示区域,将与窗口的显示区域信息对应的图像数据发送给所述终端,以使所述终端进行显示,包括:
窗口的显示区域为整个窗口时,获取整个窗口的图像数据,发送给终端,由所述终端进行显示;
或者,窗口的显示区域为整个窗口除遮盖区域外的区域时,获取整个窗口的图像数据,向遮盖区域填充纯色或无色,将填充后的图像数据发送给终端,由所述终端进行显示。
7.一种窗口图像传输的服务器,其特征在于,包括:
接收单元,用于虚拟机在运行应用的过程中,接收终端发送该应用对应的窗口的窗口信息;
确定单元,用于根据所述窗口信息,确定所述窗口的显示区域信息;
传输单元,用于根据所述窗口的显示区域信息,将与窗口的显示区域信息对应的图像数据发送给所述终端,以使所述终端进行显示;
其中,所述接收单元,还用于接收所述终端发送的显示图像传输策略,所述显示图像传输策略包括根据所述窗口的Z轴序小于所述终端其他窗口的Z轴序,降质传输所述窗口的图像或者不传输所述窗口的图像,或者根据所述窗口的遮盖区域与显示区域的比例大于一定阈值时,确定降质传输所述窗口的图像或者不传输所述窗口的图像;
所述传输单元,还用于根据所述显示图像传输策略,对应降低图像质量传输或不传输所述窗口的图像。
8.根据权利要求7所述的窗口图像传输的服务器,其特征在于,所述接收单元接收到的所述窗口 信息包括窗口任一角点的坐标,窗口的宽度和高度,以及Z轴序大于该窗口的窗口的任一角点的坐标和Z轴序大于该窗口的窗口宽度和高度,所述确定单元具体用于:
根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及Z轴序大于该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定Z轴序大于该窗口的窗口是否遮盖该窗口,如果z轴序大于该窗口的窗口没有遮盖该窗口,则该窗口的窗口显示状态为全显示,确定该窗口的显示区域为整个窗口;
如果Z轴序大于该窗口的窗口遮盖该窗口,则根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及Z轴序大于该窗口且遮盖该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度;
根据遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定遮盖区域是否完全遮盖该窗口,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域是否完全遮盖该窗口;
如果遮盖区域或者联合遮盖区域完全遮盖该窗口,则该窗口的窗口显示状态为全遮盖,从而确定该窗口的显示区域为0,如果遮盖区域或者联合遮盖区域没有完全遮盖该窗口,则该窗口的窗口显示状态为部分遮盖,确定该窗口的显示区域为整个该窗口除遮盖区域外的区域,或者确定该窗口的显示区域为整个该窗口除联合遮盖区域外的区域。
9.根据权利要求7所述的窗口图像传输的服务器,其特征在于,所述接收单元接收到的所述窗口信息包括窗口显示状态,窗口的遮盖区域的任一角点坐标,以及遮盖区域的宽度和高度,所述确定单元具体用于:
根据窗口信息中窗口显示状态为全显示时,确定窗口的显示区域为整个窗口:
或者,根据窗口信息中窗口显示状态为全遮盖时,确定窗口的显示区域为0;
或者,根据窗口信息中窗口显示状态为部分遮盖时,根据窗口信息中遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定窗口的显示区域为整个窗口除遮盖区域外的区域,当遮盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域,从而确定窗口的显示区域为整个窗口除联合遮盖区域外的区域。
10.根据权利要求7所述的窗口图像传输的服务器,其特征在于,所述接收单元接收到的所述窗口信息包括:窗口信息包括:窗口显示状态,窗口任一角点的坐标,窗口的宽度和高度,Z轴序大于该窗口且遮盖该窗口的窗口的任一角点的坐标,以及Z轴序大于该窗口且遮盖该窗口的窗口宽度和高度,所述确定单元具体用于:
根据窗口信息中窗口显示状态为全显示时,确定窗口的显示区域为整个窗口;根据窗口信息中窗口显示状态为全显示时,确定窗口的显示区域为整个窗口;
或者,根据窗口信息中窗口显示状态为全遮盖时,确定窗口的显示区域为0;
或者,根据窗口信息中窗口显示状态为部分遮盖时,根据窗口信息中窗口的任一角点的X坐标、Y坐标、宽度及高度,以及Z轴序大于该窗口且遮盖该窗口的窗口的任一角点的X坐标、Y坐标、宽度及高度,确定遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度;根据遮盖区域任一角点的X坐标、Y坐标、遮盖区域的宽度和高度,确定窗口的显示区域为整个窗口除遮盖区域外的区域,当遮 盖区域为多个时,确定多个遮盖区域构成的联合遮盖区域,从而确定窗口的显示区域为整个窗口除联合遮盖区域外的区域。
11.根据权利要求7-10中任一所述的窗口图像传输的服务器,其特征在于,所述传输单元,具体用于窗口的显示区域为整个窗口时,获取整个窗口的图像数据,发送给终端,由所述终端进行显示;
或者,窗口的显示区域为整个窗口除遮盖区域外的区域时,获取整个窗口的图像数据,向遮盖区域填充纯色或无色,将填充后的图像数据发送给终端,由所述终端进行显示。
12.一种窗口图像的显示方法,其特征在于,包括:
虚拟机在运行应用的过程中,发送该应用对应的窗口的窗口信息给服务器,以使所述服务器上的虚拟机根据所述窗口信息,确定所述窗口的显示区域信息;
接收所述服务器发送的与窗口的显示区域信息对应的图像数据并进行显示;
所述方法还包括:
根据该应用对应的窗口的Z轴序小于终端其他窗口的Z轴序,确定显示图像传输策略为降质传输所述窗口的图像或者不传输所述窗口的图像,或者根据该应用对应的窗口的遮盖区域与显示区域的比例大于一定阈值时,确定显示图像传输策略为降质传输所述窗口的图像或者不传输所述窗口的图像;
将确定显示图像传输策略发送给服务器。
13.根据权利要求12所述的窗口图像的显示方法,其特征在于,所述方法还包括确定要发送的窗口的窗口信息,具体包括:
获取终端所有窗口的Z轴序、所有窗口的任一角点的(X,Y)坐标以及所有窗口的宽度和高度;
确定该应用对应的窗口的Z轴序是否为最大,如果是则该应用对应的窗口的窗口显示状态为全显示,否则根据Z轴序大于该应用对应的窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度,确定该应用对应的窗口是否被Z轴序大于该应用对应的窗口的窗口遮盖;
如果Z轴序大于该应用对应的窗口的窗口没有遮盖该应用对应的窗口,则该应用对应的窗口的窗口显示状态为全显示,如果Z轴序大于该应用对应的窗口的窗口遮盖该应用对应的窗口,确定Z轴序大于该应用对应的窗口且遮盖该窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度;
根据Z轴序大于该应用对应的窗口且遮盖该应用对应的窗口的窗口的任一角点的(X,Y)坐标以及窗口的宽度和高度,以及该应用对应的窗口的任一角点的(X,Y)坐标以及窗口的宽度和高度,确定该应用对应的窗口的遮盖区域的任一角点的(X,Y)坐标以及遮盖区域的宽度和高度;
确定该应用对应的窗口的遮盖区域完全遮盖该应用对应的窗口时,确定该应用对应的窗口的窗口显示状态为全遮盖,该应用对应的窗口的遮盖区域没有完全遮盖该应用对应的窗口时,确定该应用对应的窗口的窗口显示状态为部分遮盖。
14.一种窗口图像传输的终端,其特征在于,包括:
发送单元,用于虚拟机在运行应用的过程中,发送该应用对应的的窗口的窗口信息给服务器,以使所述服务器上的虚拟机根据所述窗口信息,确定所述窗口的显示区域信息;
接收单元,用于接收所述服务器发送的与窗口的显示区域信息对应的图像数据并进行显示;
所述确定单元,还用于根据该应用对应的窗口的Z轴序小于终端其他窗口的Z轴序,确定显示图像 传输策略为降质传输所述窗口的图像或者不传输所述窗口的图像,或者根据该应用对应的窗口的遮盖区域与显示区域的比例大于一定阈值时,确定显示图像传输策略为降质传输所述窗口的图像或者不传输所述窗口的图像;
所述发送单元,还用于将确定显示图像传输策略发送给服务器。
15.根据权利要求14所述的窗口图像传输的终端,其特征在于,所述终端还包括确定单元,所述确定单元具体包括:
获取子单元,用于获取终端所有窗口的Z轴序、所有窗口的任一角点的(X,Y)坐标以及所有窗口的宽度和高度;
第一确定子单元,用于确定该应用对应的窗口的Z轴序是否为最大,如果是则该应用对应的窗口的窗口显示状态为全显示;
第二确定子单元,用于所述第一确定子单元确定该应用对应的窗口的Z轴序不为最大时,根据Z轴序大于该应用对应的窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度,确定该应用对应的窗口是否被Z轴序大于该应用对应的窗口的窗口遮盖,如果没有则该应用对应的窗口的窗口显示状态为全显示,否则确定Z轴序大于该应用对应的窗口且遮盖该窗口的窗口任一角点的(X,Y)坐标以及窗口的宽度和高度;
第三确定子单元,用于根据Z轴序大于该应用对应的窗口且遮盖该应用对应的窗口的窗口的任一角点的(X,Y)坐标以及窗口的宽度和高度,以及该应用对应的窗口的任一角点的(X,Y)坐标以及窗口的宽度和高度,确定该应用对应的窗口的遮盖区域的任一角点的(X,Y)坐标以及遮盖区域的宽度和高度;
第四确定子单元,用于确定该应用对应的窗口的遮盖区域完全遮盖该应用对应的窗口时,确定该应用对应的窗口的窗口显示状态为全遮盖,该应用对应的窗口的遮盖区域没有完全遮盖该应用对应的窗口时,确定该应用对应的窗口的窗口显示状态为部分遮盖。
16.一种窗口图像的显示系统,其特征在于,包括如权利要求7-11中任一所述的服务器以及如权利要求14或15所述的终端。
CN201280001095.8A 2012-08-22 2012-08-22 窗口图像的传输方法、显示方法、终端、服务器及系统 Active CN103959246B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/080475 WO2014029091A1 (zh) 2012-08-22 2012-08-22 窗口图像的传输方法、显示方法、终端、服务器及系统

Publications (2)

Publication Number Publication Date
CN103959246A CN103959246A (zh) 2014-07-30
CN103959246B true CN103959246B (zh) 2017-03-08

Family

ID=50149354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280001095.8A Active CN103959246B (zh) 2012-08-22 2012-08-22 窗口图像的传输方法、显示方法、终端、服务器及系统

Country Status (2)

Country Link
CN (1) CN103959246B (zh)
WO (1) WO2014029091A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114217758A (zh) * 2021-12-01 2022-03-22 深圳Tcl新技术有限公司 图像显示方法、装置、电子设备及计算机可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107508886A (zh) * 2017-08-24 2017-12-22 西安万像电子科技有限公司 应用显示方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1645320A (zh) * 2005-01-31 2005-07-27 浙江大学 确定图形用户界面中窗口剪切关系的方法
CN102436350A (zh) * 2011-12-06 2012-05-02 北京航空航天大学 远程应用窗口显示方法、服务器及用户终端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950991B2 (en) * 1995-11-13 2005-09-27 Citrix Systems, Inc. Interacting with software applications displayed in a web page

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1645320A (zh) * 2005-01-31 2005-07-27 浙江大学 确定图形用户界面中窗口剪切关系的方法
CN102436350A (zh) * 2011-12-06 2012-05-02 北京航空航天大学 远程应用窗口显示方法、服务器及用户终端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
多窗口显示管理算法及其实现;郑昌睿 等;《小型微型计算机系统》;19940408;第15卷(第04期);第31-36页 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114217758A (zh) * 2021-12-01 2022-03-22 深圳Tcl新技术有限公司 图像显示方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN103959246A (zh) 2014-07-30
WO2014029091A1 (zh) 2014-02-27

Similar Documents

Publication Publication Date Title
US7667704B2 (en) System for efficient remote projection of rich interactive user interfaces
CN103348695B (zh) 针对图形的低延时无线显示器
CN112235626B (zh) 视频渲染方法、装置、电子设备及存储介质
US8042094B2 (en) Architecture for rendering graphics on output devices
CN108108140B (zh) 一种多屏协同显示方法及存储装置及支持3d显示的设备
US8749712B2 (en) Method for processing on-screen display and associated embedded system
CN102375718A (zh) 在无线显示表面上显示特定窗口
CN105096373A (zh) 一种媒体内容渲染的方法、用户设备及系统
CN101911125B (zh) 图形处理系统中对离屏表面的多重缓冲支持
CN102413150A (zh) 服务器、虚拟桌面控制方法以及虚拟桌面控制系统
CN103544441A (zh) 移动图像生成装置
CN109413508A (zh) 图像混合的方法、装置、设备、推流方法及直播系统
US20180293042A1 (en) Method of Switching Display of a Terminal and a Terminal
CN112672131B (zh) 一种全景视频图像显示方法及显示设备
JP2024513708A (ja) 三次元点群の伝送方法、受信方法、伝送装置、受信装置及び記憶媒体
CN112367479B (zh) 一种全景视频图像显示方法及显示设备
CN116821040B (zh) 基于gpu直接存储器访问的显示加速方法、装置及介质
CN111713103A (zh) 用于处理包括堆栈在具有填充的基于立方体的投影布局中的投影面的基于投影的帧的方法
CN103959246B (zh) 窗口图像的传输方法、显示方法、终端、服务器及系统
KR101423915B1 (ko) 3차원 그래픽을 이용한 온스크린 디스플레이 생성 방법 및장치
CN113596571A (zh) 屏幕分享方法、装置、系统、存储介质以及计算机设备
CN114500970B (zh) 一种全景视频图像处理、显示方法及设备
US20030184549A1 (en) Image processing apparatus, and apparatus for and method of receiving processed image
CN111459432B (zh) 虚拟内容的显示方法、装置、电子设备及存储介质
CN108509112B (zh) 菜单的显示方法及装置、显示设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant