发明内容
本发明实施例提供一种处理图像信息的方法、装置及系统,用以提高压缩比和压缩效率、降低带宽。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种处理图像信息的方法,包括:
从虚拟机的操作系统获取第一图像信息,所述第一图像信息包括第一图像指令以及第一图像数据;
根据所述第一图像指令、由历史图像指令生成的信息以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景;
根据用户操作场景与压缩算法的对应关系,确定与所述第一用户操作场景对应的第一压缩算法;
利用所述第一压缩算法对所述第一图像数据进行压缩,得到第二图像数据;
向客户端发送第二图像信息,所述第二图像信息包括所述第二图像数据以及所述第一用户操作场景的标识和/或所述第一压缩算法的标识。
在第一种可能的方式中,根据第一方面,所述由历史图像指令生成的信息包括由历史图像指令所生成的历史指令特征结构体,
所述根据所述第一图像指令、历史图像指令以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景,包括:
根据所述第一图像指令生成第一指令特征结构体,所述指令特征结构体包括:目的表面图像id,源表面图像句柄、源表面图像尺寸、目的表面图像使用区域、源表面图像使用区域、指令出现时间;
根据所述第一指令特征结构体、所述历史指令特征结构体以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景为视频播放场景。
在第二种可能的方式中,根据第一种可能的实现方式,所述根据所述第一指令特征结构体、所述历史指令特征结构体以及预设的场景特征库判断所述第一图像指令所对应的第一用户操作场景为视频播放场景,包括:
根据所述第一指令特征结构体的目的表面图像id判断所述第一图像指令对应的目的表面图像是否为主表面图像;
若是,则根据所述第一指令特征结构体中的指令出现时间、以及所述历史指令特征结构体中的指令出现时间确定图像指令的获取频率;
当所述第一指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域均与所述历史指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域相等,且所述图像指令信息的获取频率与预设的频率匹配时,确定所述第一用户操作场景为视频播放场景。
在第三种可能的方式中,结合第一种可能的实现方式或第二种可能的实现方式,所述第一用户操作场景不为视频播放场景时,所述方法还包括:
当所述第一指令特征结构体中的源表面图像使用区域的尺寸与目的表面图像使用区域的尺寸的差值在预设阈值范围内时,判断所述第一指令特征结构体中的源表面图像所使用的区域与源表面图像的大小是否相等;
若是,则确定所述第一用户操作场景为翻页场景;
若否,则确定所述第一用户操作场景为打字场景。
在第四种可能的方式中,结合第一方面或者第一种可能的方式至第三种可能的实现方式任一种,在所述根据所述第一图像指令、由历史图像指令生成的信息以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景之后,所述方法还包括:
根据所述第一用户操作场景确定是否对所述第一图像数据进行缓存;
当所述第一用户操作场景为视频播放场景时,不对所述第一图像数据进行缓存;
当所述第一用户操作场景不为视频播放场景时,根据用户操作场景与缓存方式的对应关系确定所述第一用户操作场景对应的第一缓存方式,利用所述第一缓存方式对所述第一图像数据进行缓存。
第二方面,提供一种处理图像信息的方法,包括:
接收虚拟机发送的第二图像信息;所述第二图像信息包括第二图像数据以及第一用户操作场景的标识和/或第一压缩算法的标识,其中,所述第一用户操作场景与从所述虚拟机的操作系统中获取的第一图像指令相对应,所述第一压缩算法与所述第一操作场景相对应;
根据用户操作场景与解压算法的对应关系、或者压缩算法与解压算法的对应关系,确定与所述第一用户操作场景对应的第一解压算法;
根据所述第一解压算法对所述第二图像数据进行解压,得到第一图像数据。
在第一种可能的实现方式中,根据第二方面,所述方法还包括:
根据所述第一用户操作场景确定是否对所述第一图像数据进行缓存;
当所述第一用户操作场景为视频播放场景时,不对所述第一图像数据进行缓存;
当所述第一用户操作场景不为视频播放场景时,根据用户操作场景与缓存方式的对应关系确定所述第一用户操作场景对应的第一缓存方式,利用所述第一缓存方式对所述第一图像数据进行缓存。
第三方面,提供一种处理图像信息的装置,包括:图像信息获取单元、用户操作场景识别单元、压缩算法确定单元、压缩单元以及发送单元,其中,
所述图像信息获取单元,用于从所述处理图像信息的装置的操作系统获取第一图像信息,所述第一图像信息包括第一图像指令以及第一图像数据;
所述用户操作场景识别单元,用于根据所述第一图像指令、由历史图像指令生成的信息以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景;
所述压缩算法确定单元,用于根据用户操作场景与压缩算法的对应关系,确定与所述第一用户操作场景对应的第一压缩算法;
所述压缩单元,用于利用所述第一压缩算法对所述第一图像数据进行压缩,得到第二图像数据;
所述发送单元,用于向客户端发送第二图像信息,所述第二图像信息包括所述第二图像数据以及所述第一用户操作场景的标识和/或所述第一压缩算法的标识。
在第一种可能的实现方式中,根据第三方面,所述由历史图像指令生成的信息包括由历史图像指令所生成的历史指令特征结构体,
所述用户操作场景识别单元,包括:
指令特征结构体生成模块,用于根据所述第一图像指令生成第一指令特征结构体,所述指令特征结构体包括:目的表面图像id,源表面图像句柄、源表面图像尺寸、目的表面图像使用区域、源表面图像使用区域、指令出现时间;
确定模块,用于根据所述第一指令特征结构体、历史图像指令信息以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景为视频播放场景。
在第二种可能的实现方式中,根据第一种可能的实现方式,
所述确定模块具体用于,根据所述第一指令特征结构体的目的表面图像id判断所述第一图像指令对应的目的表面图像是否为主表面图像;若是,则根据所述第一指令特征结构体中的指令出现时间、以及所述历史指令特征结构体中的指令出现时间确定图像指令的获取频率;当所述第一指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域均与所述历史指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域相等,且所述图像指令信息的获取频率与预设的频率匹配时,确定所述第一用户操作场景为视频播放场景。
在第三种可能的实现方式中,结合第一种可能的实现方式或第二种可能的实现方式,所述第一用户操作场景不为视频播放场景时,
所述确定模块还用于,当所述第一指令特征结构体中的源表面图像使用区域的尺寸与目的表面图像使用区域的尺寸的差值在预设阈值范围内时,判断所述第一指令特征结构体中的源表面图像所使用的区域与源表面图像的大小是否相等;若是,则确定所述第一用户操作场景为翻页场景;若否,则确定所述第一用户操作场景为打字场景。
在第四种可能的实现方式中,结合第三方面或者第一种可能的实现方式至第三种可能的实现方式任一种,所述处理图像信息的装置还包括:
缓存单元,用于根据所述第一用户操作场景确定是否对所述第一图像数据进行缓存;当所述第一用户操作场景为视频播放场景时,不对所述第一图像数据进行缓存;当所述第一用户操作场景不为视频播放场景时,根据用户操作场景与缓存方式的对应关系确定所述第一用户操作场景对应的第一缓存方式,利用所述第一缓存方式对所述第一图像数据进行缓存。
第四方面,提供一种处理图像信息的装置,包括:
接收单元,用于接收虚拟机发送的第二图像信息;所述第二图像信息包括第二图像数据以及第一用户操作场景的标识和/或第一压缩算法的标识,其中,所述第一用户操作场景与从所述虚拟机的操作系统中获取的第一图像指令相对应,所述第一压缩算法与所述第一操作场景相对应;
解压算法确定单元,用于根据用户操作场景与解压算法的对应关系、或者压缩算法与解压算法的对应关系,确定与所述第一用户操作场景对应的第一解压算法;
解压单元,用于根据所述第一解压算法对所述第二图像数据进行解压,得到第一图像数据。
在第一种可能的实现方式中,根据第四方面,所述处理图像信息的装置还包括:
缓存单元,用于根据所述第一用户操作场景确定是否对所述第一图像数据进行缓存;当所述第一用户操作场景为视频播放场景时,不对所述第一图像数据进行缓存;当所述第一用户操作场景不为视频播放场景时,根据用户操作场景与缓存方式的对应关系确定所述第一用户操作场景对应的第一缓存方式,利用所述第一缓存方式对所述第一图像数据进行缓存。
第五方面,提供一种处理图像信息的系统,包括:如上述第三方面提供的处理图像信息的装置以及上述第四方面提供的处理图像信息的装置。
本发明实施例提供的处理图像信息的方法、装置及系统,通过第一图像指令对应的第一用户操作场景确定第一压缩算法,并利用第一压缩算法对第一图像指令进行压缩,提高了压缩比、压缩效率,进而降低了传输带宽,解决了现有技术中,使用同一种压缩算法对不同的图像指令信息进行压缩,导致的压缩比、压缩效率低,传输图像指令的带宽高的问题。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
虚拟桌面(远程桌面)基础架构(Virtual Desktop Infrastructure,简称VDI)中至少包括一个服务器以及一个用户设备,该用户设备可以为普通电脑、平板电脑、只能手机等。用户设备的虚拟桌面系统以虚拟机(Virtual Machine,简称VM)的软件形式存储于服务器中,用户设备通过安装的虚拟桌面客户端软件登陆服务器。
服务器主要由硬件平台、虚拟机执行空间、以及虚拟机管理器(Hypervisor)构成,其中,硬件平台包含服务器物理结构中的硬盘、CPU、网卡、内存等;虚拟机执行空间包含多个虚拟机,虚拟机包含应用程序、操作系统、设备驱动层、显示协议代理程序等,设备驱动层包含显示驱动、网卡驱动等;虚拟机管理器用于协调虚拟机对服务器硬件的访问,包含多个虚拟机监视器,虚拟机监视器包含虚拟硬件平台,虚拟硬件平台包含虚拟的硬盘、CPU、网卡、内存等,虚拟机的软件系统运行在虚拟硬件平台上。
从“用户期望登陆的虚拟桌面客户端软件的屏幕图像发生变化”到“变化后的屏幕图像显示在用户设备上”的过程可以包括:用户对用户设备进行操作,使得用户设备向服务器发送操作指令;服务器中与该用户设备对应的虚拟机中的应用程序调用虚拟机的操作系统的应用程序编程接口(Application Programming Interface,简称API)应用程序的界面,API将实现变化后的屏幕图像的数据以图像指令的形式发送给显示驱动;显示驱动对该图像指令进行处理后,由显示协议代理程序根据远程桌面协议对图像指令进行进一步处理;最后,经网卡驱动、虚拟网卡、服务器上的物理网卡将图像指令发送给用户设备,使得用户设备中的虚拟桌面客户端根据远程桌面协议对该图像指令进行解压,并将屏幕图像显示在用户设备的屏幕上。
本发明实施例基于上述虚拟桌面基础架构以及从“用户期望登陆的虚拟桌面客户端软件的屏幕图像发生变化”到“变化后的屏幕图像显示在用户设备上”的过程,对本发明提供的一种处理图像信息的方法、装置及系统进行说明。
一方面,参见图1,本发明实施例提供一种处理图像信息的方法,包括:
101:从虚拟机的操作系统获取第一图像信息,所述第一图像信息包括第一图像指令以及第一图像数据;
示例性的,图像信息是指,虚拟机的应用程序根据用户设备发送的操作指令向虚拟机的操作系统调用API应用程序,生成的矢量绘图命令以及图像数据;将该矢量绘图命令称为图像指令,图像指令可以包括:图像的拷贝指令、文字绘制指令、线条处理指令等,由于图像的拷贝指令应用最为广泛,因此本实施例以第一图像指令为图像的拷贝指令为例进行说明。
由于不同的指令类型携带不同的标识信息,因此虚拟机可以根据指令的标识信息判断第一图像指令是否为拷贝指令。
102:根据所述第一图像指令、由历史图像指令生成的信息以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景;
示例性的,虚拟机的操作系统会不断地获取图像信息,可以将获取第一图像信息之前的图像信息称为历史图像信息,由历史图像指令生成的信息可以包括:历史图像指令或者由历史图像指令生成的历史指令特征结构体,且该由历史图像指令生成的信息可以存储于虚拟机中。可以预先在虚拟机中设置存储的由历史图像指令生成的信息的个数,例如,设置存储的由历史图像指令生成的信息的个数为20,那么当将获取到的第21个图像信息的图像数据经处理并发送给客户端后,可以将存储的第1个图像指令相关的信息自动删除。
预设的场景特征库,主要为判断不同用户操作场景时用到的、预先存储在虚拟机中的数据。
根据期望得到的屏幕图像的特点可以将用户操作场景分为:视频播放场景、翻页场景、打字场景、文件拖动场景、窗口拖动场景等,当然,也可以按照其他标准将用户操作场景分为其他类型,本发明实施例对此不进行限定,本实施例中以用户操作场景包括视频播放场景、翻页场景、打字场景以及其他场景4种情况进行说明。
进一步地,在步骤102确定第一图像指令所对应的第一用户操作场景之后,虚拟机可以根据第一用户操作场景对第一图像指令进行处理,如指令整合、指令消除、图像指令缓存等。
103:根据用户操作场景与压缩算法的对应关系,确定与所述第一用户操作场景对应的第一压缩算法;
示例性的,为了减小传输图像指令时所使用的带宽,可以先将图像指令进行压缩,再发送给用户设备,用户设备在接收到该图像指令时,可以先对其进行解压,再使用。
由于不同的用户操作场景对屏幕图像有不同的要求,例如,打字场景要求图像清晰,视频播放场景要求播放流畅等。为了提高压缩比和压缩效率,可以根据不同用户操作场景对屏幕图像的要求,对某一种用户操作场景对应的图像数据采用特定的压缩算法进行压缩,例如,对于打字场景对应的图像数据,可以使用无损压缩算法进行压缩;对于视频播放场景对应的图像数据,可以使用视频编码压缩。
由于不同的用户操作场景对应的图像指令具有不同的特点,因此,可以首先根据第一图像指令的特点对第一图像信息进行用户操作场景识别,再根据预存的用户操作场景与压缩算法的对应关系,确定与该第一用户操作场景对应的压缩算法。
104:利用所述第一压缩算法对所述第一图像数据进行压缩,得到第二图像数据;
105:向客户端发送第二图像信息,所述第二图像信息包括所述第二图像数据以及所述第一用户操作场景的标识和/或所述第一压缩算法的标识。
示例性的,第二图像信息包括第一用户操作场景的标识和/或第一压缩算法的标识,使得第二图像信息经服务器的物理网卡发送至用户设备后,该用户设备中的客户端可以根据第一用户操作场景的标识和/或第一压缩算法的标识确定解压算法,从而对第二图像数据进行解压,得到第一图像数据,再根据该第一图像数据将屏幕图像显示在用户设备上。
进一步地,所述由历史图像指令生成的信息包括由历史图像指令所生成的历史指令特征结构体时,步骤102可以包括:
(1)根据所述第一图像指令生成第一指令特征结构体,所述指令特征结构体包括:目的表面图像id,源表面图像句柄、源表面图像尺寸、目的表面图像使用区域、源表面图像使用区域、指令出现时间;
示例性的,经处理后图像指令均可以包含以下各种参数的相关信息:目的表面图像id,源表面图像句柄、源表面图像尺寸、目的表面图像使用区域、源表面图像使用区域、指令出现时间等,本实施例中将上述列举的6项参数称为指令特征结构体。
不同用户操作场景对应的图像指令生成的指令特征结构体不同,同一用户操作场景对应的两个图像指令分别生成的指令特征结构体中的某些参数可能相同,也可能不同。
(2)根据所述第一指令特征结构体、历史指令特征结构体以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景为视频播放场景。
示例性的,本发明实施例提供的方法为在确定该第一操作场景不是视频播放场景的前提下,确定第一操作场景为翻页场景、打字场景、其他场景中的任一种。
可选的,确定第一用户操作场景为视频播放场景的具体步骤可以包括:
a)根据所述第一指令特征结构体的目的表面图像id确定所述第一图像指令对应的目的表面图像为主表面图像;
示例性的,目的表面图像id由虚拟机的显示驱动产生,可以通过判断目的表面图像id是否与主表面图像id相等,来判断该目的表面是否为主表面图像,例如,可以在显示驱动创建表面的过程中将id设置为0,当第一指令特征结构体中的目的表面图像id为0,则判断其为主表面。
b)若是,则根据所述第一指令特征结构体中的指令出现时间、以及所述历史指令结构体中的指令出现时间确定图像指令的获取频率;
示例性的,第一指令特征结构体中的指令出现时间即为第一图像指令的出现时间;历史指令结构体中的指令出现时间即为历史图像指令的出现时间。
c)当所述第一指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域均与所述历史指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域相等,且所述图像指令信息的获取频率与预设的频率匹配时,确定所述第一用户操作场景为视频播放场景。
示例性的,视频播放场景对应的图像指令与除视频播放场景之外的场景对应的图像指令相比,有两个显著特点:第一,视频播放场景对应的图像指令的获取频率比较高;第二,视频播放场景对应的图像指令生成的指令特征结构体的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域均与历史图像指令信息所包含的历史指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域相等。因此,可以通过以上两个显著特点确定第一用户操作场景为视频播放场景,
示例性的,图像指令信息的获取频率与预设的频率匹配可以包括:比较图像指令信息的获取频率与预设的频率的大小,若该获取频率大于或者等于该预设的频率,则认为图像指令信息的获取频率与预设的频率匹配。
可选的,当第一用户操作场景不为视频播放场景时,该方法还可以包括:
当所述第一指令特征结构体中的源表面图像使用区域的尺寸与目的表面图像使用区域的尺寸的差值在预设阈值范围内时,判断所述第一指令特征结构体中的源表面图像所使用的区域与源表面图像的大小是否相等;
若是,则所述第一用户操作场景为翻页场景;
若否,则所述第一用户操作场景为打字场景。
示例性的,翻页场景可以包括:word翻页场景、pdf翻页场景、浏览器翻页场景等,当翻页场景为pdf翻页场景或者浏览器翻页场景时,该翻页场景对应的图像指令生成的指令特征结构体中的源表面图像使用区域与目的表面图像使用区域基本相同,且源表面图像所使用的区域与源表面图像的大小相等;当翻页场景为word翻页场景时,该翻页场景对应的图像指令生成的指令特征结构体中的源表面图像使用区域的尺寸与目的表面图像使用区域的尺寸基本相同,且源表面图像所使用的区域与源表面图像的大小相等。因此可以只需根据第一指令特征结构体中的源表面图像使用区域的尺寸与目的表面图像使用区域的尺寸的差值在预设阈值范围内,且源表面图像所使用的区域与源表面图像的大小相等,即可确定第一用户操作场景为翻页场景。
具体的,若要判断翻页场景具体是否为word翻页场景,可以通过比较第一指令特征结构体中的源表面图像使用区域与目的表面图像使用区域的差值是否在预设的第一阈值范围内,若是,则判断该翻页场景不是word场景翻页,那么,该翻页场景可以为pdf翻页场景或者浏览器翻页场景;若不是,则判断该翻页场景为word翻页场景。
示例性的,打字场景主要为word打字场景,该翻页场景对应的图像指令生成的指令特征结构体中的源表面图像使用区域与目的表面图像使用区域基本相同,但是,该第一指令特征结构体中的源表面图像所使用的区域与源表面图像的大小不相等,一般情况下,源表面图像所使用的区域远小于源表面图像的大小。
word翻页场景与word打字场景的区别在于,word翻页场景下源表面图像所使用的区域贴近源表面图像的上部或者下部,word打字场景下源表面图像所使用的区域贴近源表面图像的中间区域。
进一步地,当第一操作场景不为视频播放场景、翻页场景以及打字场景任一种时,则将其归为其他场景。对于其他场景对应的图像指令采用统一的压缩算法进行压缩。
进一步地,为了加快客户端和虚拟机之间的通信速率,可以通过将图像数据缓存于虚拟机中的虚拟缓存中,但是,对于视频播放场景对应的图像数据而言,由于相同的屏幕图像再此出现的概率非常小,因此可以不对视频播放场景对应的图像数据进行缓存。
该方法还可以包括:根据所述第一用户操作场景确定是否对所述第一图像数据进行缓存;当所述第一用户操作场景为视频播放场景时,不对所述第一图像数据进行缓存;根据用户操作场景与缓存方式的对应关系确定所述第一用户操作场景对应的第一缓存方式,利用所述第一缓存方式对所述第一图像数据进行缓存。
示例性的,可以将用户操作场景与缓存方式的对应关系预先存储在虚拟机中,例如,翻页场景对应的图像数据可以缓存于超级缓存中,打字场景和其他场景对应的图像数据可以存储于一般缓存中。
下面通过一个具体的实施例对上述方法中的识别用户操作场景的过程进行详细说明。参见图2,包括:
201:从虚拟机的操作系统获取第一图像信息,其中,第一图像信息包括第一图像指令以及第一图像数据;
202:根据第一图像指令生成第一指令特征结构体,其中,指令特征结构体包括:目的表面图像id,源表面图像句柄、源表面图像尺寸、目的表面图像使用区域、源表面图像使用区域、指令出现时间;
203:判断第一图像指令对应的目的表面图像是否为主表面图像;
示例性的,可以根据第一指令特征结构体的目的表面图像id确定所述第一图像指令对应的目的表面图像是否为主表面图像,具体的,可以通过判断目的表面图像id是否与主表面图像id相等来确定来判断该目的表面是否为主表面图像。
204:若否,则结束;
205:若是,则根据第一图像指令的指令出现时间以及历史图像指令的指令出现时间确定图像指令的获取频率;
206:判断图像指令的获取频率是否大于或者等于预设的频率;
207:若否,则转到步骤210;
208:若是,则分别判断第一指令特征结构体与历史指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域是否相等;
示例性的,该步骤中可以包括三次判断,即判断第一指令特征结构体中的源表面图像句柄与历史指令特征结构体中的源表面图像句柄是否相等,判断第一指令特征结构体中的源表面图像使用区域与历史指令特征结构体中的源表面图像使用区域是否相等,以及判断第一指令特征结构体中的目的表面图像使用区域与历史指令特征结构体中的目的表面图像使用区域是否相等。当然,本实施例对于该三个判断动作的执行顺序不作限定。
209:若是,则确定第一用户操作场景为视频播放场景;
示例性的,步骤208中的三个判断动作的结果均为“是”时,执行步骤209。
示例性的,第一用户操作场景对应第一图像指令。
210:若否,则判断第一指令特征结构体中的源表面图像使用区域的尺寸与目的表面图像使用区域的尺寸的差值是否在预设阈值范围内;
211:若否,则确定第一用户操作场景为其他场景;
212:若是,则判断第一指令特征结构体中的源表面图像所使用的区域与源表面图像的大小是否相等;
213:若否,则第一用户操作场景为打字场景;
214:若是,则第一用户操作场景为翻页场景。
进一步地,本发明实施例提供的处理图像信息的方法,还用于普通远程桌面技术。在普通远程桌面技术中,可以在其中的一台计算机中安装与另一台计算机安装的虚拟桌面客户端软件对应的虚拟机,从而利用上述方法处理图像信息。
本发明实施例提供的处理图像信息的方法,通过第一图像指令对应的第一用户操作场景确定第一压缩算法,并利用第一压缩算法对第一图像数据进行压缩,提高了压缩比、压缩效率,进而降低了传输带宽,解决了现有技术中,使用同一种压缩算法对不同的图像信息中的图像数据进行压缩,导致的压缩比、压缩效率低,传输图像指令的带宽高的问题。
一方面,本发明实施例提供一种处理图像信息的方法。上述实施例提供的处理图像信息的方法主要描述的是,为第一图像数据选择压缩算法的方法,本实施例提供一种与上述实施例中的“为第一图像数据选择压缩算法”相对应的“通过选择解压算法得到第一图像数据的方法”。参见图3,包括:
301:接收虚拟机发送的第二图像信息;所述第二图像信息包括第二图像数据以及第一用户操作场景的标识和/或第一压缩算法的标识,其中,所述第一用户操作场景与从所述虚拟机的操作系统中获取的第一图像指令相对应,所述第一压缩算法与所述第一操作场景相对应;
示例性的,当用户期望登陆的虚拟桌面客户端软件的屏幕图像发生变化时,用户可以对安装有该虚拟桌面客户端软件的用户设备进行操作,使得该用户设备向服务器中的虚拟机发送操作指令,进而使得虚拟机根据该操作指令获取第一图像信息,根据图像指令与用户操作场景的关系获取与第一图像信息中的第一图像指令对应的第一用户操作场景,根据用户操作场景与压缩算法的对应关系,获取与第一用户操作场景对应的第一压缩算法,利用第一压缩算法对第一图像数据进行压缩得到第二图像数据。
虚拟机得到第二图像数据的过程可以参见图1的实施例,此处不再赘述。
302:根据用户操作场景与解压算法的对应关系、或者压缩算法与解压算法的对应关系,确定与所述第一用户操作场景对应的第一解压算法;
303:根据所述第一解压算法对所述第二图像数据进行解压,得到第一图像数据。
示例性的,安装有该虚拟桌面客户端软件的用户设备中可以预先存储图像信息携带的第一用户操作场景的标识和/或第一压缩算法的标识与解压算法的对应关系。
进一步地,为了加快根据第一图像数据生成屏幕图像的执行速度,可以将图像数据缓存于客户端的缓存中,但是,对于视频播放场景对应的图像数据而言,由于相同的屏幕图像再此出现的概率非常小,因此可以不对视频播放场景对应的图像数据进行缓存。
该方法还可以包括:根据所述第一用户操作场景确定是否对所述第一图像数据进行缓存;当所述第一用户操作场景为视频播放场景时,不对所述第一图像数据进行缓存;当所述第一用户操作场景不为视频播放场景时,根据用户操作场景与缓存方式的对应关系确定所述第一用户操作场景对应的第一缓存方式,利用所述第一缓存方式对所述第一图像数据进行缓存。
示例性的,可以将用户操作场景与缓存方式的对应关系预先存储在虚拟机中,例如,翻页场景对应的图像数据可以缓存于超级缓存中,打字场景和其他场景对应的图像数据可以存储于一般缓存中。
进一步地,安装有该虚拟桌面客户端软件的用户设备可以根据该第一图像指令将用户期望的屏幕图像显示到该用户设备的显示屏上。
本发明实施例提供的处理图像信息的方法,基于图1所示的处理图像信息的方法,通过接收虚拟机发送的第二图像信息,并选择与第一用户操作场景对应的第一解压算法,以及利用第一解压算法对第二图像数据进行解压,从而得到第一图像数据。由于采用了图1所示的处理图像信息的方法对第一图像数据进行压缩,使得压缩比、压缩效率,从而降低了传输带宽,进而使得可以采用本发明实施例提供的处理图像信息的方法对第二图像数据进行解压,解决了现有技术中,使用同一种压缩算法对不同的图像数据进行压缩,导致的压缩比、压缩效率低,传输带宽高的问题,以及导致的只能使用同一种解压算法对图像数据进行解压的问题。
一方面,本发明实施例提供一种处理图像信息的装置40,用于执行图1所示的处理图像信息的方法,参见图4,包括:图像信息获取单元401、用户操作场景识别单元402、压缩算法确定单元403、压缩单元404以及发送单元405,其中,
所述图像信息获取单元401,用于从所述处理图像信息的装置的操作系统获取第一图像信息,所述第一图像信息包括第一图像指令以及第一图像数据;
所述用户操作场景识别单元402,用于根据所述第一图像指令、由历史图像指令生成的信息以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景;
所述压缩算法确定单元403,用于根据用户操作场景与压缩算法的对应关系,确定与所述第一用户操作场景对应的第一压缩算法;
所述压缩单元404,用于利用所述第一压缩算法对所述第一图像数据进行压缩,得到第二图像数据;
所述发送单元405,用于向客户端发送第二图像信息,所述第二图像信息包括所述第二图像数据以及所述第一用户操作场景的标识和/或所述第一压缩算法的标识。
进一步地,参见图5,所述用户操作场景识别单元402,包括:
指令特征结构体生成模块4021,用于根据所述第一图像指令生成第一指令特征结构体,所述指令特征结构体包括:目的表面图像id,源表面图像句柄、源表面图像尺寸、目的表面图像使用区域、源表面图像使用区域、指令出现时间;
确定模块4022,用于根据所述第一指令特征结构体、所述历史指令特征结构体以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景为视频播放场景。
可选的,所述确定模块4022具体用于,根据所述第一指令特征结构体的目的表面图像id判断所述第一图像指令对应的目的表面图像是否为主表面图像;若是,则根据所述第一指令特征结构体中的指令出现时间、以及所述历史指令特征结构体中的指令出现时间确定图像指令的获取频率;当所述第一指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域均与所述历史指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域相等,且所述图像指令信息的获取频率与预设的频率匹配时,确定所述第一用户操作场景为视频播放场景。
进一步可选的,当所述第一用户操作场景不为视频播放场景时,
所述确定模块4022还可以用于,当所述第一指令特征结构体中的源表面图像使用区域的尺寸与目的表面图像使用区域的尺寸的差值在预设阈值范围内时,判断所述第一指令特征结构体中的源表面图像所使用的区域与源表面图像的大小是否相等;若是,则确定所述第一用户操作场景为翻页场景;若否,则确定所述第一用户操作场景为打字场景。
进一步地,参见图5,该处理图像信息的装置40还可以包括:
缓存单元406,用于根据所述第一用户操作场景确定是否对所述第一图像数据进行缓存;当所述第一用户操作场景为视频播放场景时,不对所述第一图像数据进行缓存;当所述第一用户操作场景不为视频播放场景时,根据用户操作场景与缓存方式的对应关系确定所述第一用户操作场景对应的第一缓存方式,利用所述第一缓存方式对所述第一图像数据进行缓存。
可选的,该处理图像信息的装置40可以为虚拟机或者安装有该虚拟机的服务器。
本发明实施例提供的处理图像信息的装置,通过第一图像指令对应的第一用户操作场景确定第一压缩算法,并利用第一压缩算法对第一图像数据进行压缩,提高了压缩比、压缩效率,进而降低了传输带宽,解决了现有技术中,使用同一种压缩算法对不同的图像信息中的图像数据进行压缩,导致的压缩比、压缩效率低,传输图像指令的带宽高的问题。
一方面,本发明实施例提供一种处理图像信息的装置40,用于执行图1所示的处理图像信息的方法,参见图6,包括:存储器601、发送器603以及与该存储器601、发送器603连接的处理器602,其中,存储器601用于存储一组代码,该代码用于控制处理器602执行以下动作:
从虚拟机的操作系统获取第一图像信息,所述第一图像信息包括第一图像指令以及第一图像数据;
根据所述第一图像指令、由历史图像指令生成的信息以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景;
根据用户操作场景与压缩算法的对应关系,确定与所述第一用户操作场景对应的第一压缩算法;
利用所述第一压缩算法对所述第一图像数据进行压缩,得到第二图像数据;
向客户端发送第二图像信息,所述第二图像信息包括所述第二图像数据以及所述第一用户操作场景的标识和/或所述第一压缩算法的标识。
进一步地,所述由历史图像指令生成的信息包括由历史图像指令所生成的历史指令特征结构体,该代码用于控制处理器602具体执行以下动作:根据所述第一图像指令生成第一指令特征结构体,所述指令特征结构体包括:目的表面图像id,源表面图像句柄、源表面图像尺寸、目的表面图像使用区域、源表面图像使用区域、指令出现时间;根据所述第一指令特征结构体、所述历史指令特征结构体以及预设的场景特征库确定所述第一图像指令所对应的第一用户操作场景为视频播放场景。
可选的,处理器602具体执行以下动作:根据所述第一指令特征结构体的目的表面图像id判断所述第一图像指令对应的目的表面图像是否为主表面图像;若是,则根据所述第一指令特征结构体中的指令出现时间、以及所述历史指令特征结构体中的指令出现时间确定图像指令的获取频率;当所述第一指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域均与所述历史指令特征结构体中的源表面图像句柄、源表面图像使用区域、目的表面图像使用区域相等,且所述图像指令信息的获取频率与预设的频率匹配时,确定所述第一用户操作场景为视频播放场景。
进一步可选的,当所述第一用户操作场景不为视频播放场景时,
处理器602具体执行以下动作:当所述第一指令特征结构体中的源表面图像使用区域的尺寸与目的表面图像使用区域的尺寸的差值在预设阈值范围内时,判断所述第一指令特征结构体中的源表面图像所使用的区域与源表面图像的大小是否相等;若是,则确定所述第一用户操作场景为翻页场景;若否,则确定所述第一用户操作场景为打字场景。
进一步地,处理器602具体执行以下动作:根据所述第一用户操作场景确定是否对所述第一图像数据进行缓存;当所述第一用户操作场景为视频播放场景时,不对所述第一图像数据进行缓存;当所述第一用户操作场景不为视频播放场景时,根据用户操作场景与缓存方式的对应关系确定所述第一用户操作场景对应的第一缓存方式,利用所述第一缓存方式对所述第一图像数据进行缓存。
可选的,该处理图像信息的装置40可以为虚拟机或者安装有该虚拟机的服务器。
本发明实施例提供的处理图像信息的装置,通过第一图像指令对应的第一用户操作场景确定第一压缩算法,并利用第一压缩算法对第一图像数据进行压缩,提高了压缩比、压缩效率,进而降低了传输带宽,解决了现有技术中,使用同一种压缩算法对不同的图像信息中的图像数据进行压缩,导致的压缩比、压缩效率低,传输图像指令的带宽高的问题。
一方面,本发明实施例提供一种处理图像信息的装置70,用于执行图3所示的处理图像信息的方法,参见图7,包括:
接收单元701,用于接收虚拟机发送的第二图像信息;所述第二图像信息包括第二图像数据以及第一用户操作场景的标识和/或第一压缩算法的标识,其中,所述第一用户操作场景与从所述虚拟机的操作系统中获取的第一图像指令相对应,所述第一压缩算法与所述第一操作场景相对应;
解压算法确定单元702,用于根据用户操作场景与解压算法的对应关系、或者压缩算法与解压算法的对应关系,确定与所述第一用户操作场景对应的第一解压算法;
解压单元703,用于根据所述第一解压算法对所述第二图像数据进行解压,得到第一图像数据。
进一步地,参见图8,该处理图像信息的装置70还可以包括:
缓存单元704,用于根据所述第一用户操作场景确定是否对所述第一图像数据进行缓存;当所述第一用户操作场景为视频播放场景时,不对所述第一图像数据进行缓存;当所述第一用户操作场景不为视频播放场景时,根据用户操作场景与缓存方式的对应关系确定所述第一用户操作场景对应的第一缓存方式,利用所述第一缓存方式对所述第一图像数据进行缓存。
可选的,该处理图像信息的装置70可以为虚拟桌面客户端软件或者安装有该虚拟桌面客户端软件的用户设备。
本发明实施例提供的处理图像信息的装置,基于上述处理图像信息的装置40,通过接收虚拟机发送的第二图像信息,并选择与第一用户操作场景对应的第一解压算法,以及利用第一解压算法对第二图像数据进行解压,从而得到第一图像数据。由于使用处理图像信息的装置40对第一图像指令进行压缩,使得压缩比、压缩效率,从而降低了传输带宽,进而使得可以采用本发明实施例提供的处理图像信息的装置对第二图像数据进行解压,解决了现有技术中,使用同一种压缩算法对不同的图像数据进行压缩,导致的压缩比、压缩效率低,传输带宽高的问题,以及导致的只能使用同一种解压算法对图像数据进行解压的问题。
一方面,本发明实施例提供一种处理图像信息的装置70,用于执行图3所示的处理图像信息的方法,参见图9,包括:存储器901,以及与该存储器901连接的处理器902,其中,存储器901用于存储一组代码,该代码用于控制处理器902执行以下动作:
接收虚拟机发送的第二图像信息;所述第二图像信息包括第二图像数据以及第一用户操作场景的标识和/或第一压缩算法的标识,其中,所述第一用户操作场景与从所述虚拟机的操作系统中获取的第一图像指令相对应,所述第一压缩算法与所述第一操作场景相对应;
根据用户操作场景与解压算法的对应关系、或者压缩算法与解压算法的对应关系,确定与所述第一用户操作场景对应的第一解压算法;
根据所述第一解压算法对所述第二图像数据进行解压,得到第一图像数据。
可选的,该处理图像信息的装置70可以为虚拟桌面客户端软件或者安装有该虚拟桌面客户端软件的用户设备。
本发明实施例提供的处理图像信息的装置,基于上述处理图像信息的装置40,通过接收虚拟机发送的第二图像信息,并选择与第一用户操作场景对应的第一解压算法,以及利用第一解压算法对第二图像数据进行解压,从而得到第一图像数据。由于使用处理图像信息的装置40对第一图像指令进行压缩,使得压缩比、压缩效率,从而降低了传输带宽,进而使得可以采用本发明实施例提供的处理图像信息的装置对第二图像数据进行解压,解决了现有技术中,使用同一种压缩算法对不同的图像数据进行压缩,导致的压缩比、压缩效率低,传输带宽高的问题,以及导致的只能使用同一种解压算法对图像数据进行解压的问题。
一方面,本发明实施例提供一种处理图像信息的系统,包括上述实施例中的任一种处理图像信息的装置40以及处理图像信息的装置70。
本发明实施例提供的处理图像信息的系统,处理图像信息的装置40根据第一图像指令所对应的第一用户操作场景获取第一压缩算法,利用第一压缩算法对所述第一图像数据进行压缩,并将得到的第二图像数据发送给处理图像信息的装置70,从而提高了压缩比、压缩效率,进而降低了传输带宽,解决了现有技术中,使用同一种压缩算法对不同的图像数据进行压缩,导致的压缩比、压缩效率低,传输带宽高的问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独在一个单元中,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。