虚拟桌面图像传输方法及装置与流程

文档序号:11230136阅读:499来源:国知局
虚拟桌面图像传输方法及装置与流程

本发明涉及虚拟桌面技术领域,尤其涉及虚拟桌面图像传输方法及装置。



背景技术:

虚拟桌面是一种支持企业级实现桌面系统的远程动态访问与数据中心统一托管的技术。虚拟桌面利用虚拟化技术,实现数据和应用等集中管理,从服务器中虚拟多个桌面,客户通过客户端连接服务器使用桌面操作系统。虚拟桌面通过将个人桌面集中部署在数据中心,实现桌面统一管控,不仅能够节约硬件成本,而且能够节约管理成本和运维成本,同时为用户提供按需访问的云桌面。但是虚拟桌面基础架构需要实时传送大量图像数据,对带宽要求高,而广域网带宽通常是有限的,因此如何削减服务器和客户端之间的传输流量成为虚拟桌面基础架构的关键问题。

目前,已有的削减流量方案包括微软的rdp(remotedesktopprotocol,远程桌面协议)协议以及红帽公司的spice(simpleprotocolforindependentcomputingenvironment,独立计算环境简单协议)协议中的图像压缩和传输协议。这两种方案存在一定程度的不足:rdp协议使用行程编码压缩图像,这是一种无损压缩算法,虽然压缩后的图像质量很好,但由于无损压缩算法的压缩比低,导致服务器和客户端之间需要传输的数据量大,对带宽要求高;spice协议使用了无损压缩算法和有损压缩算法,利用简单的方法判断图像适用何种压缩算法,这种方法识别准确率低,容易误判,被误判的图像选择不合适的压缩算法反而可能导致流量上升,此外,spice协议中的缓存方法只保存单帧图像的哈希值,只能匹配重复传输的图像,一旦图像稍有变化便无法命中,因此缓存命中率低,通过命中缓存削减流量的效果不明显。



技术实现要素:

本发明的主要目的在于提出一种虚拟桌面图像传输方法及装置,旨在实现保证图像质量的前提下削减虚拟桌面的图像传输流量。

为实现上述目的,本发明提供一种虚拟桌面图像传输方法,所述方法包括如下步骤:

获取待传输的虚拟桌面图像;

判断所述虚拟桌面图像是否全部或部分命中缓存;

根据判断结果将所述虚拟桌面图像分割为命中块和非命中块;

对所述非命中块进行图像分析,根据预设的与图像分析结果对应的压缩算法压缩所述非命中块;

将压缩后的所述非命中块对应的的图像数据发送至客户端,同时获取所述命中块的缓存位置发送至客户端。

可选地,所述判断所述虚拟桌面图像是否全部或部分命中缓存的步骤包括:

按照滚动哈希算法计算所述虚拟桌面图像的滚动哈希值;

将计算得到的滚动哈希值与缓存数据库中预先存储的滚动哈希值进行匹配;

若所述虚拟桌面图像的滚动哈希值全部存在于所述缓存数据库中,则判定所述虚拟桌面图像全部命中缓存;

若所述虚拟桌面图像的滚动哈希值部分存在于所述缓存数据库中,则判定所述虚拟桌面图像部分命中缓存。

可选地,所述根据判断结果将所述虚拟桌面图像分割为命中块和非命中块的步骤包括:

在所述虚拟桌面图像部分命中缓存时,将命中缓存的区域进行扩展匹配,得到对应的最大匹配区域;

将所述最大匹配区域进行去重处理,得到所述虚拟桌面图像的命中块,并将未命中缓存的区域中与所述命中块不重合的部分作为所述虚拟桌面图像的非命中块。

可选地,所述对所述非命中块进行图像分析,根据预设的与图像分析结果对应的压缩算法压缩所述非命中块的步骤包括:

获取所述非命中块的图像尺寸,将所述图像尺寸与预设尺寸进行比较;

若所述图像尺寸小于所述预设尺寸,则根据无损压缩算法压缩所述非命中块;

若所述图像尺寸大于或等于所述预设尺寸,则计算所述非命中块的平滑性得分,根据预设的与所述平滑性得分对应的压缩算法压缩所述非命中块。

可选地,所述根据预设的与所述平滑性得分对应的压缩算法压缩所述非命中块的步骤包括:

确定所述平滑性得分所处的预设级别区间,其中,所述预设级别区间按照预设平滑性得分阈值分为高、中、低三个级别;

若所述非命中块的平滑性得分处于高级别区间,则根据有损压缩算法压缩所述非命中块;

若所述非命中块的平滑性得分处于中级别区间,则判断当前服务器所处的网络资源状态是否繁忙,若是,则根据有损压缩算法压缩所述非命中块,否则根据无损压缩算法压缩所述非命中块;

若所述非命中块的平滑性得分处于低级别区间,则根据无损压缩算法压缩所述非命中块。

此外,为实现上述目的,本发明还提供一种虚拟桌面图像传输装置,所述装置包括:

获取模块,用于获取待传输的虚拟桌面图像;

判断模块,用于判断所述虚拟桌面图像是否全部或部分命中缓存;

分割模块,用于根据判断结果将所述虚拟桌面图像分割为命中块和非命中块;

压缩模块,用于对所述非命中块进行图像分析,根据预设的与图像分析结果对应的压缩算法压缩所述非命中块;

发送模块,用于将压缩后的所述非命中块对应的的图像数据发送至客户端,同时获取所述命中块的缓存位置发送至客户端。

可选地,所述判断模块包括:

计算单元,用于按照滚动哈希算法计算所述虚拟桌面图像的滚动哈希值;

匹配单元,用于将计算得到的滚动哈希值与缓存数据库中预先存储的滚动哈希值进行匹配;

判定单元,用于若所述虚拟桌面图像的滚动哈希值全部存在于所述缓存数据库中,则判定所述虚拟桌面图像全部命中缓存;若所述虚拟桌面图像的滚动哈希值部分存在于所述缓存数据库中,则判定所述虚拟桌面图像部分命中缓存。

可选地,所述分割模块包括:

扩展单元,用于在所述虚拟桌面图像部分命中缓存时,将命中缓存的区域进行扩展匹配,得到对应的最大匹配区域;

去重单元,用于将所述最大匹配区域进行去重处理,得到所述虚拟桌面图像的命中块,并将未命中缓存的区域中与所述命中块不重合的部分作为所述虚拟桌面图像的非命中块。

可选地,所述压缩模块包括:

比较单元,用于获取所述非命中块的图像尺寸,将所述图像尺寸与预设尺寸进行比较;

第一压缩单元,用于若所述图像尺寸小于所述预设尺寸,则根据无损压缩算法压缩所述非命中块;

第二压缩单元,用于若所述图像尺寸大于或等于所述预设尺寸,则计算所述非命中块的平滑性得分,根据预设的与所述平滑性得分对应的压缩算法压缩所述非命中块。

可选地,所述第二压缩单元还用于:

确定所述平滑性得分所处的预设级别区间,其中,所述预设级别区间按照预设平滑性得分阈值分为高、中、低三个级别;

若所述非命中块的平滑性得分处于高级别区间,则根据有损压缩算法压缩所述非命中块;

若所述非命中块的平滑性得分处于中级别区间,则判断当前服务器所处的网络资源状态是否繁忙,若是,则根据有损压缩算法压缩所述非命中块,否则根据无损压缩算法压缩所述非命中块;

若所述非命中块的平滑性得分处于低级别区间,则根据无损压缩算法压缩所述非命中块。

本发明获取待传输的虚拟桌面图像;判断所述虚拟桌面图像是否全部或部分命中缓存;根据判断结果将所述虚拟桌面图像分割为命中块和非命中块;对所述非命中块进行图像分析,根据预设的与图像分析结果对应的压缩算法压缩所述非命中块;将压缩后的所述非命中块对应的的图像数据发送至客户端,同时获取所述命中块的缓存位置发送至客户端。本发明基于图像缓存和图像压缩算法框架,通过判断虚拟桌面图像是否命中缓存以将虚拟桌面图像分割为命中块和非命中块,对于命中块,直接将命中块的缓存位置发送至客户端而不必发送完整的图像数据,从而削减了图像传输流量,对于非命中块,通过采用与图像特征对应的压缩算法进行压缩后发送至客户端,能够实现较高的压缩性能和压缩比,进一步大幅削减图像传输流量,同时保证图像质量。本发明能够实现保证图像质量的前提下削减虚拟桌面的图像传输流量。

附图说明

图1为本发明虚拟桌面图像传输方法一实施例的流程示意图;

图2为图1中步骤s20的细化步骤示意图;

图3为图1中步骤s30的细化步骤示意图;

图4为图1中步骤s40的细化步骤示意图;

图5为本发明虚拟桌面图像传输装置一实施例的功能模块示意图;

图6为图5中判断模块20的细化功能模块示意图;

图7为图5中分割模块30的细化功能模块示意图;

图8为图5中压缩模块40的细化功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例中的虚拟桌面基于桌面虚拟化技术,所谓桌面虚拟化,是指将计算机的终端系统(也称作桌面)进行虚拟化,以达到桌面使用的安全性和灵活性,用户可以通过任何设备,在任何地点,任何时间通过网络访问该桌面系统。

桌面虚拟化依赖于服务器虚拟化,在数据中心的服务器上进行服务器虚拟化,生成大量的独立的桌面操作系统(虚拟机或者虚拟桌面),同时根据专有的虚拟桌面协议发送给终端设备。用户终端通过以太网登陆到虚拟主机上,只需要记住用户名和密码及网关信息,即可随时随地的通过网络访问自己的桌面系统,从而实现单机多用户。

然而,虚拟桌面基础架构需要实时传送大量图像数据,对带宽要求较高,在带宽有限的情况下,图像传输速率受限,如果不对待传输图像作任何处理,不仅会导致图像数据的传输不流畅,影响用户的使用体验,同时也会使客户端消耗大量流量,因此如何削减服务器和客户端之间的传输流量成为虚拟桌面基础架构的关键问题。

目前,已有的削减流量方案包括微软的远程桌面协议(remotedesktopprotocol,rdp)协议以及红帽公司的spice协议中的图像压缩和传输协议。这两种方案存在一定程度的不足:rdp协议使用行程编码压缩图像,这是一种无损压缩算法,虽然压缩后的图像质量很好,但由于无损压缩算法的压缩比低,导致服务器和客户端之间需要传输的数据量大,对带宽要求高;spice协议使用了无损压缩算法和有损压缩算法,利用简单的方法判断图像适用何种压缩算法,这种方法识别准确率低,容易误判,被误判的图像选择不合适的压缩算法反而可能导致流量上升,此外,spice协议中的缓存方法只保存单帧图像的哈希值,只能匹配重复传输的图像,一旦图像稍有变化便无法命中,因此缓存命中率低,通过命中缓存削减流量的效果不明显。

基于上述虚拟桌面的基础架构和现有技术的缺陷,为实现保证图像质量的前提下削减虚拟桌面的图像传输流量,提出本发明虚拟桌面图像传输方法及装置各个实施例。

本发明提供一种虚拟桌面图像传输方法。

参照图1,图1为本发明虚拟桌面图像传输方法一实施例的流程示意图。所述方法包括如下步骤:

步骤s10,获取待传输的虚拟桌面图像;

本实施例的应用场景可以为:用户通过计算机或移动终端等客户端登录虚拟主机访问虚拟桌面,无论是办公应用还是浏览网页,短时间内屏幕的大部分数据都不会发生变化,而只有少部分改变,理论上,数据在发送过一遍之后,后续重复传输数据都属于冗余数据。

由于虚拟桌面基础架构中传输的图像数据具有一定的冗余度,一种很好的解决办法是利用缓存的思想,发送方和接收方把已经传输过的图像数据缓存起来,下次发送方发送数据前,先在缓存中查找是否已经存在,如果存在则无需再次发送数据,只需发送图像数据的缓存位置,从而减少了图像传输流量。

本实施例服务器和客户端进行虚拟桌面的图像数据传输时,服务器首先获取待传输的虚拟桌面图像,该虚拟桌面图像为单帧图像。

步骤s20,判断所述虚拟桌面图像是否全部或部分命中缓存;

然后,服务器判断获取到的虚拟桌面图像是否全部或部分命中缓存。具体地,由于由哈希算法计算得到的哈希值可唯一代表某一图像区域,因此,作为一种实施方式,可通过滚动哈希算法计算获取到的虚拟桌面图像的滚动哈希值,然后再将其与缓存的虚拟桌面图像的滚动哈希值进行匹配,若该虚拟桌面图像的滚动哈希值全部存在于该缓存数据库中,则判定该虚拟桌面图像全部命中缓存,若该虚拟桌面图像的滚动哈希值部分存在于该缓存数据库中,则判定该虚拟桌面图像部分命中缓存。当然,若缓存数据库中不存在计算得到的该虚拟桌面图像的滚动哈希值,则判定该虚拟桌面图像未命中缓存。

步骤s30,根据判断结果将所述虚拟桌面图像分割为命中块和非命中块;

服务器可根据上述判断结果将所述虚拟桌面图像分割为命中块和非命中块。具体地,在虚拟桌面图像全部命中缓存时,只存在命中块;在虚拟桌面图像部分命中缓存时,存在命中块和非命中块,此时可以在命中缓存的图像区域周围作进一步的扩展匹配,以得到最大匹配区域。

步骤s40,对所述非命中块进行图像分析,根据预设的与图像分析结果对应的压缩算法压缩所述非命中块;

未被缓存命中的图像构成了未命中区域,如果直接传输未命中区域图像,流量仍然较大,因此可以使用图像压缩算法对图像进行压缩处理,从而降低流量传输。压缩算法包括有损压缩算法和无损压缩算法,其中经过无损压缩算法处理得到的图像质量高,但是压缩比低;有损压缩算法的压缩比高但是图像质量在某些情况下较差。有损和无损压缩算法适合不同类型的图像。

本实施例中,用户可预先设置图像类型与压缩算法之间的对应关系存储至服务器中,服务器对上述步骤得到的非命中块进行图像分析,得到图像分析结果,然后根据图像分析结果选择对应的压缩算法对非命中块进行压缩。

典型的图像可以分为两类:自然类图像和文字类图像。每类图像都有适用的压缩算法。如果文字类图像使用有损压缩,由于文字边缘变化较大,会造成文字边缘模糊,导致用户体验较差。因此为了在压缩比和压缩质量之间取得平衡,需要根据图像内容信息动态选择合适的压缩算法。

比如,对于自然类图像,其图像变换缓慢,由于人类肉眼对高频区域并不敏感,因而使用有损压缩算法更为合适,在不降低视觉体验的情况下,能够大幅提升压缩比;对于纯色或者文字类图像,这类图像色彩简单,重复内容较多,因此适合无损压缩。

步骤s50,将压缩后的所述非命中块对应的的图像数据发送至客户端,同时获取所述命中块的缓存位置发送至客户端。

在对非命中块进行压缩后,服务器再将压缩后的非命中块对应的的图像数据发送至客户端,同时获取所述命中块的缓存位置发送至客户端,如此,客户端能够根据缓存位置提取自身缓存区的命中块图像,然后结合接收到的非命中块图像进行拼接,就能得到整个虚拟桌面图像。

在当前图像帧传输完成后,服务器和客户端同步更新图像缓存,以使得缓存区缓存实时的传输图像。

本实施例基于图像缓存和图像压缩算法框架,通过判断虚拟桌面图像是否命中缓存以将虚拟桌面图像分割为命中块和非命中块,对于命中块,直接将命中块的缓存位置发送至客户端而不必发送完整的图像数据,从而削减了图像传输流量,对于非命中块,通过采用与图像特征对应的压缩算法进行压缩后发送至客户端,能够实现较高的压缩性能和压缩比,进一步大幅削减图像传输流量,同时保证图像质量。本实施例能够实现保证图像质量的前提下削减虚拟桌面的图像传输流量。

进一步地,参照图2,图2为图1中步骤s20的细化步骤示意图。基于上述图1所示的实施例,所述步骤s20可以包括:

步骤s21,按照滚动哈希算法计算所述虚拟桌面图像的滚动哈希值;

步骤s22,将计算得到的滚动哈希值与缓存数据库中预先存储的滚动哈希值进行匹配;

步骤s23,若所述虚拟桌面图像的滚动哈希值全部存在于所述缓存数据库中,则判定所述虚拟桌面图像全部命中缓存;

步骤s24,若所述虚拟桌面图像的滚动哈希值部分存在于所述缓存数据库中,则判定所述虚拟桌面图像部分命中缓存;

本实施例利用滚动方式匹配待传输的虚拟桌面图像和缓存的虚拟桌面图像,首先,服务器按照滚动哈希算法计算所述虚拟桌面图像的滚动哈希值,对于某一虚拟桌面图像,将得到若干滚动哈希值,然后,将计算得到的滚动哈希值与缓存数据库中预先存储的滚动哈希值进行匹配,若所述虚拟桌面图像的滚动哈希值全部存在于所述缓存数据库中,则判定所述虚拟桌面图像全部命中缓存,若所述虚拟桌面图像的滚动哈希值部分存在于所述缓存数据库中,则判定所述虚拟桌面图像部分命中缓存。

进一步地,参照图3,图3为图1中步骤s30的细化步骤示意图,所述步骤s30可以包括:

步骤s31,在所述虚拟桌面图像部分命中缓存时,将命中缓存的区域进行扩展匹配,得到对应的最大匹配区域;

步骤s32,将所述最大匹配区域进行去重处理,得到所述虚拟桌面图像的命中块,并将未命中缓存的区域中与所述命中块不重合的部分作为所述虚拟桌面图像的非命中块。

在滚动哈希匹配过程中,为了能够找到更大的匹配区域,因此需要向周边区域扩展,在本实施例中,在所述虚拟桌面图像部分命中缓存时,服务器将命中缓存的区域进行扩展匹配,以进一步得到对应的最大匹配区域。多个最大匹配区域可能存在交集,因此需要再将多个最大匹配区域进行去重处理,从而得到所述虚拟桌面图像的命中块,然后,将未命中缓存的区域中与命中块不重合的部分作为所述虚拟桌面图像的非命中块,由此将虚拟桌面图像分割为了命中块和非命中块。

上述算法是近似穷举的快速匹配算法,不仅能够提高匹配效率,而且缓存命中率较高,从而能够大幅削减图像传输流量。

进一步地,参照图4,图4为图1中步骤s40的细化步骤示意图,基于上述的实施例,所述步骤s40可以包括:

步骤s41,获取所述非命中块的图像尺寸,将所述图像尺寸与预设尺寸进行比较;

步骤s42,若所述图像尺寸小于所述预设尺寸,则根据无损压缩算法压缩所述非命中块;

步骤s43,若所述图像尺寸大于或等于所述预设尺寸,则计算所述非命中块的平滑性得分,根据预设的与所述平滑性得分对应的压缩算法压缩所述非命中块。

为进一步削减图像传输流量,在使用缓存算法对待传输图像作缓存处理后,可以使用图像压缩算法对未命中块进行压缩处理。

对于尺寸较小的图像,有损压缩算法可能有数据填充,反而导致压缩比降低,因此小尺寸图像可以直接使用无损压缩。具体地,服务器首先获取非命中块的图像尺寸,然后将获取到的图像尺寸与预设尺寸进行比较,若非命中块图像尺寸小于预设尺寸,则根据无损压缩算法压缩所述非命中块;若非命中块图像尺寸大于或等于预设尺寸,则计算所述非命中块的平滑性得分,根据预设的与所述平滑性得分对应的压缩算法压缩所述非命中块。

本实施例可根据图像相邻像素关系计算图像平滑性得分值,如果图像变化越缓慢,则评分越高,说明图像越平滑,更趋近于自然类图像;如果图像变化越剧烈,则评分越低,说明图像边缘较多,更趋近于文字类图像。

进一步地,根据预设的与所述平滑性得分对应的压缩算法压缩所述非命中块的步骤可以包括:

步骤s431,确定所述平滑性得分所处的预设级别区间,其中,所述预设级别区间按照预设平滑性得分阈值分为高、中、低三个级别;

步骤s432,若所述非命中块的平滑性得分处于高级别区间,则根据有损压缩算法压缩所述非命中块;

步骤s433,若所述非命中块的平滑性得分处于中级别区间,则判断当前服务器所处的网络资源状态是否繁忙,若是,则根据有损压缩算法压缩所述非命中块,否则根据无损压缩算法压缩所述非命中块;

步骤s434,若所述非命中块的平滑性得分处于低级别区间,则根据无损压缩算法压缩所述非命中块。

具体地,服务器确定计算得到的非命中块的平滑性得分所处的预设级别区间,其中,预设级别区间按照预设平滑性得分阈值分为高、中、低三个级别,若非命中块的平滑性得分处于高级别区间,说明该非命中块图像接近自然类图像,此时根据有损压缩算法压缩该非命中块;若非命中块的平滑性得分处于低级别区间,说明该非命中块图像接近文字类图像,此时根据无损压缩算法压缩该非命中块;若非命中块的平滑性得分处于中级别区间,此时即可采用有损压缩算法也可采用无损压缩算法,具体算法选择方式为:判断当前服务器所处的网络资源状态是否繁忙,若是,则说明带宽资源相对紧张,此时根据有损压缩算法压缩该非命中块,否则可以根据无损压缩算法压缩该非命中块。

本实施例通过将单帧图像进行分割而得到若干非命中块,对每个非命中块根据其特征并结合当前网络状况选择合适的压缩算法,相对于现有技术的固定压缩算法和简单识别单帧图像以选择压缩算法的方式,本实施例压缩算法的选择更具灵活性,压缩性能和压缩比更高,既能够保证图像质量,又能够进一步削减图像传输流量,从而能够在保证视觉效果的前提下,使用户流畅使用虚拟桌面,显著提高在广域网环境中使用虚拟桌面的用户体验。

本发明还提供一种虚拟桌面图像传输装置。

参照图5,图5为本发明虚拟桌面图像传输装置一实施例的功能模块示意图。所述装置包括:

获取模块10,用于获取待传输的虚拟桌面图像;

本实施例的应用场景可以为:用户通过计算机或移动终端等客户端登录虚拟主机访问虚拟桌面,无论是办公应用还是浏览网页,短时间内屏幕的大部分数据都不会发生变化,而只有少部分改变,理论上,数据在发送过一遍之后,后续重复传输数据都属于冗余数据。

由于虚拟桌面基础架构中传输的图像数据具有一定的冗余度,一种很好的解决办法是利用缓存的思想,发送方和接收方把已经传输过的图像数据缓存起来,下次发送方发送数据前,先在缓存中查找是否已经存在,如果存在则无需再次发送数据,只需发送图像数据的缓存位置,从而减少了图像传输流量。

本实施例服务器和客户端进行虚拟桌面的图像数据传输时,获取模块10首先获取待传输的虚拟桌面图像,该虚拟桌面图像为单帧图像。

判断模块20,用于判断所述虚拟桌面图像是否全部或部分命中缓存;

然后,判断模块20判断获取到的虚拟桌面图像是否全部或部分命中缓存。具体地,由于由哈希算法计算得到的哈希值可唯一代表某一图像区域,因此,作为一种实施方式,可通过滚动哈希算法计算获取到的虚拟桌面图像的滚动哈希值,然后再将其与缓存的虚拟桌面图像的滚动哈希值进行匹配,若该虚拟桌面图像的滚动哈希值全部存在于该缓存数据库中,则判定该虚拟桌面图像全部命中缓存,若该虚拟桌面图像的滚动哈希值部分存在于该缓存数据库中,则判定该虚拟桌面图像部分命中缓存。当然,若缓存数据库中不存在计算得到的该虚拟桌面图像的滚动哈希值,则判定该虚拟桌面图像未命中缓存。

分割模块30,用于根据判断结果将所述虚拟桌面图像分割为命中块和非命中块;

分割模块30可根据上述判断结果将所述虚拟桌面图像分割为命中块和非命中块。具体地,在虚拟桌面图像全部命中缓存时,只存在命中块;在虚拟桌面图像部分命中缓存时,存在命中块和非命中块,此时可以在命中缓存的图像区域周围作进一步的扩展匹配,以得到最大匹配区域。

压缩模块40,用于对所述非命中块进行图像分析,根据预设的与图像分析结果对应的压缩算法压缩所述非命中块;

未被缓存命中的图像构成了未命中区域,如果直接传输未命中区域图像,流量仍然较大,因此可以使用图像压缩算法对图像进行压缩处理,从而降低流量传输。压缩算法包括有损压缩算法和无损压缩算法,其中经过无损压缩算法处理得到的图像质量高,但是压缩比低;有损压缩算法的压缩比高但是图像质量在某些情况下较差。有损和无损压缩算法适合不同类型的图像。

本实施例中,用户可预先设置图像类型与压缩算法之间的对应关系存储至服务器中,压缩模块40对上述步骤得到的非命中块进行图像分析,得到图像分析结果,然后根据图像分析结果选择对应的压缩算法对非命中块进行压缩。

典型的图像可以分为两类:自然类图像和文字类图像。每类图像都有适用的压缩算法。如果文字类图像使用有损压缩,由于文字边缘变化较大,会造成文字边缘模糊,导致用户体验较差。因此为了在压缩比和压缩质量之间取得平衡,需要根据图像内容信息动态选择合适的压缩算法。

比如,对于自然类图像,其图像变换缓慢,由于人类肉眼对高频区域并不敏感,因而使用有损压缩算法更为合适,在不降低视觉体验的情况下,能够大幅提升压缩比;对于纯色或者文字类图像,这类图像色彩简单,重复内容较多,因此适合无损压缩。

发送模块50,用于将压缩后的所述非命中块对应的的图像数据发送至客户端,同时获取所述命中块的缓存位置发送至客户端。

在压缩模块40对非命中块进行压缩后,发送模块50再将压缩后的非命中块对应的的图像数据发送至客户端,同时获取所述命中块的缓存位置发送至客户端,如此,客户端能够根据缓存位置提取自身缓存区的命中块图像,然后结合接收到的非命中块图像进行拼接,就能得到整个虚拟桌面图像。

在当前图像帧传输完成后,服务器和客户端同步更新图像缓存,以使得缓存区缓存实时的传输图像。

本实施例基于图像缓存和图像压缩算法框架,通过判断虚拟桌面图像是否命中缓存以将虚拟桌面图像分割为命中块和非命中块,对于命中块,直接将命中块的缓存位置发送至客户端而不必发送完整的图像数据,从而削减了图像传输流量,对于非命中块,通过采用与图像特征对应的压缩算法进行压缩后发送至客户端,能够实现较高的压缩性能和压缩比,进一步大幅削减图像传输流量,同时保证图像质量。本实施例能够实现保证图像质量的前提下削减虚拟桌面的图像传输流量。

进一步地,参照图6,图6为图5中判断模块20的细化功能模块示意图。基于上述图5所示的实施例,所述判断模块20可以包括:

计算单元21,用于按照滚动哈希算法计算所述虚拟桌面图像的滚动哈希值;

匹配单元22,用于将计算得到的滚动哈希值与缓存数据库中预先存储的滚动哈希值进行匹配;

判定单元23,用于若所述虚拟桌面图像的滚动哈希值全部存在于所述缓存数据库中,则判定所述虚拟桌面图像全部命中缓存;若所述虚拟桌面图像的滚动哈希值部分存在于所述缓存数据库中,则判定所述虚拟桌面图像部分命中缓存。

本实施例利用滚动方式匹配待传输的虚拟桌面图像和缓存的虚拟桌面图像,首先,计算单元21按照滚动哈希算法计算所述虚拟桌面图像的滚动哈希值,对于某一虚拟桌面图像,将得到若干滚动哈希值,然后,匹配单元22将计算得到的滚动哈希值与缓存数据库中预先存储的滚动哈希值进行匹配,若所述虚拟桌面图像的滚动哈希值全部存在于所述缓存数据库中,则判定单元23判定所述虚拟桌面图像全部命中缓存,若所述虚拟桌面图像的滚动哈希值部分存在于所述缓存数据库中,则判定单元23判定所述虚拟桌面图像部分命中缓存。

进一步地,参照图7,图7为图5中分割模块30的细化功能模块示意图。所述分割模块30可以包括:

扩展单元31,用于在所述虚拟桌面图像部分命中缓存时,将命中缓存的区域进行扩展匹配,得到对应的最大匹配区域;

去重单元32,用于将所述最大匹配区域进行去重处理,得到所述虚拟桌面图像的命中块,并将未命中缓存的区域中与所述命中块不重合的部分作为所述虚拟桌面图像的非命中块。

在滚动哈希匹配过程中,为了能够找到更大的匹配区域,因此需要向周边区域扩展,在本实施例中,在所述虚拟桌面图像部分命中缓存时,扩展单元31将命中缓存的区域进行扩展匹配,以进一步得到对应的最大匹配区域。多个最大匹配区域可能存在交集,因此去重单元32需要再将多个最大匹配区域进行去重处理,从而得到所述虚拟桌面图像的命中块,然后,将未命中缓存的区域中与命中块不重合的部分作为所述虚拟桌面图像的非命中块,由此将虚拟桌面图像分割为了命中块和非命中块。

上述算法是近似穷举的快速匹配算法,不仅能够提高匹配效率,而且缓存命中率较高,从而能够大幅削减图像传输流量。

进一步地,参照图8,图8为图5中压缩模块40的细化功能模块示意图。基于上述的实施例,所述压缩模块40可以包括:

比较单元41,用于获取所述非命中块的图像尺寸,将所述图像尺寸与预设尺寸进行比较;

第一压缩单元42,用于若所述图像尺寸小于所述预设尺寸,则根据无损压缩算法压缩所述非命中块;

第二压缩单元43,用于若所述图像尺寸大于或等于所述预设尺寸,则计算所述非命中块的平滑性得分,根据预设的与所述平滑性得分对应的压缩算法压缩所述非命中块。

为进一步削减图像传输流量,在使用缓存算法对待传输图像作缓存处理后,可以使用图像压缩算法对未命中块进行压缩处理。

对于尺寸较小的图像,有损压缩算法可能有数据填充,反而导致压缩比降低,因此小尺寸图像可以直接使用无损压缩。具体地,比较单元41首先获取非命中块的图像尺寸,然后将获取到的图像尺寸与预设尺寸进行比较,若非命中块图像尺寸小于预设尺寸,则第一压缩单元42根据无损压缩算法压缩所述非命中块;若非命中块图像尺寸大于或等于预设尺寸,则第二压缩单元43计算所述非命中块的平滑性得分,根据预设的与所述平滑性得分对应的压缩算法压缩所述非命中块。

本实施例第二压缩单元43可根据图像相邻像素关系计算图像平滑性得分值,如果图像变化越缓慢,则评分越高,说明图像越平滑,更趋近于自然类图像;如果图像变化越剧烈,则评分越低,说明图像边缘较多,更趋近于文字类图像。

进一步地,所述第二压缩单元43还用于:

确定所述平滑性得分所处的预设级别区间,其中,所述预设级别区间按照预设平滑性得分阈值分为高、中、低三个级别;若所述非命中块的平滑性得分处于高级别区间,则根据有损压缩算法压缩所述非命中块;若所述非命中块的平滑性得分处于中级别区间,则判断当前服务器所处的网络资源状态是否繁忙,若是,则根据有损压缩算法压缩所述非命中块,否则根据无损压缩算法压缩所述非命中块;若所述非命中块的平滑性得分处于低级别区间,则根据无损压缩算法压缩所述非命中块。

具体地,第二压缩单元43确定计算得到的非命中块的平滑性得分所处的预设级别区间,其中,预设级别区间按照预设平滑性得分阈值分为高、中、低三个级别,若非命中块的平滑性得分处于高级别区间,说明该非命中块图像接近自然类图像,此时根据有损压缩算法压缩该非命中块;若非命中块的平滑性得分处于低级别区间,说明该非命中块图像接近文字类图像,此时根据无损压缩算法压缩该非命中块;若非命中块的平滑性得分处于中级别区间,此时即可采用有损压缩算法也可采用无损压缩算法,具体算法选择方式为:判断当前服务器所处的网络资源状态是否繁忙,若是,则说明带宽资源相对紧张,此时根据有损压缩算法压缩该非命中块,否则可以根据无损压缩算法压缩该非命中块。

本实施例通过将单帧图像进行分割而得到若干非命中块,对每个非命中块根据其特征并结合当前网络状况选择合适的压缩算法,相对于现有技术的固定压缩算法和简单识别单帧图像以选择压缩算法的方式,本实施例压缩算法的选择更具灵活性,压缩性能和压缩比更高,既能够保证图像质量,又能够进一步削减图像传输流量,从而能够在保证视觉效果的前提下,使用户流畅使用虚拟桌面,显著提高在广域网环境中使用虚拟桌面的用户体验。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1