CN113891080B - 一种spice云桌面中图像处理的优化方法 - Google Patents

一种spice云桌面中图像处理的优化方法 Download PDF

Info

Publication number
CN113891080B
CN113891080B CN202111472438.6A CN202111472438A CN113891080B CN 113891080 B CN113891080 B CN 113891080B CN 202111472438 A CN202111472438 A CN 202111472438A CN 113891080 B CN113891080 B CN 113891080B
Authority
CN
China
Prior art keywords
spice
image
data flow
cloud desktop
flow per
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
CN202111472438.6A
Other languages
English (en)
Other versions
CN113891080A (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.)
Kirin Software Co Ltd
Original Assignee
Kirin Software 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 Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202111472438.6A priority Critical patent/CN113891080B/zh
Publication of CN113891080A publication Critical patent/CN113891080A/zh
Application granted granted Critical
Publication of CN113891080B publication Critical patent/CN113891080B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种SPICE云桌面中图像处理的优化方法,在SPICE服务端上安装libjpeg‑turbo库;当SPICE客户端和SPICE服务端建立连接时,SPICE服务端自动测试并记录当前连接的网络带宽,并维护SPICE服务端到SPICE客户端的每秒数据流量,记录本次更新的每秒数据流量和上次更新的每秒数据流量,提升SPICE云桌面的图像压缩特别是JPEG有损图像压缩的速度和压缩率,将SPICE云桌面在高分辨率下的数据传输量控制在10M/s以内,确保SPICE云桌面在低带宽环境下的流畅体验。同时,确保优化后的SPICE云桌面的通用性和兼容性,确保客户端仍能在不变动的前提下正常与云桌面交互。

Description

一种SPICE云桌面中图像处理的优化方法
技术领域
本申请涉及云桌面图像传输技术领域,尤其涉及一种SPICE云桌面中图像处理的优化方法。
背景技术
云桌面是虚拟化和云计算时代的典型应用。通过在云端数据中心搭建服务器集群、创建多个虚拟机、用户通过云终端设备远程连入虚拟机的方式,云桌面可以提供给用户与本地PC一致的使用体验。这种技术使得管理人员只需云端数据中心进行集中的系统维护,大大降低了管理人员的工作量,也使得使用人员无需担心因本地PC故障导致的数据丢失问题,越来越受到企业和个人的青睐。
SPICE云桌面主要由SPICE协议、SPICE服务端和SPICE客户端三个部分组成。SPICE协议是基于KVM虚拟机的开源云桌面传输协议,主要应用于RedHat桌面虚拟化,也可用于其他的云桌面应用。它提供了和云桌面进行交互的解决方案;SPICE客户端可以通过SPICE协议访问云桌面和使用本地设备(例如键盘、USB等)。SPICE服务端则负责完成服务器虚拟机与SPICE客户端之间的交互。
在SPICE云桌面中,主要采用图像传输方式,由SPICE服务端将服务器虚拟机中的桌面图像一帧一帧通过网络传递到SPICE客户端显示,这种方式会产生大量的数据传输(1920X1080的高分辨率桌面的数据传输量接近每秒1000M)。为减少传输的数据量,SPICE服务端在图像传输前可以通过压缩算法将图像进行压缩。目前,SPICE提供的图像压缩方式包括LZ、GLZ、LZ4、QUICK以及JPEG,其中JPEG属于有损压缩,对图像的压缩率最高,采用JPEG压缩的SPICE云桌面的数据传输量最小(1920X1080的高分辨率桌面的数据传输量在20M/s到40M/s之间,极限情况下接近80M/s)。
尽管采用JPEG压缩的SPICE云桌面已经大大减少了传输的数据量,但为保证在所有场景下的高分辨率桌面的流畅体验,仍需要40M/s左右的带宽的支持。在低带宽环境(本发明中10M/s及以下为低带宽)下,SPICE云桌面会出现画面卡顿、跳帧等问题,特别是当用户进行快速窗口拖动操作时(此时云桌面会产生大量的待发送图像),大量的待发送数据会阻塞网络,导致云桌面出现画面滞后、撕裂甚至假死的现象,严重影响了云桌面的使用体验。
现有技术虽然提出一些解决方案,但是仍然存在不少问题。例如中国发明专利“基于H.265的SPICE云桌面传输和展现方法及系统”(专利号:CN105262825A)。该专利主要解决现有云桌面视频压缩效率低,桌面抖动以及启动风暴问题。该专利使用h265来进行spice的视频压缩,使用jpeg2000来进行图像压缩。在相同压缩质量条件下,jpeg2000相比jpeg可以提升30%左右的压缩率,也没有JPEG压缩中的马赛克失真效果(主要是模糊失真),但其缺点是压缩时时间开销太大,跟jpeg相比,在同样硬件环境下,压缩时间要增加5倍以上,并不适合需要近实时快速压缩的场合。使用jpeg2000作为spice的图像压缩算法,对于每一帧画面均需要更长的时间进行图像压缩,会导致spice云桌面的流畅度降低。
中国发明专利“一种桌面虚拟化SPICE协议下的图像传输方法”(专利号:CN104768009B)。该专利采用改进后的NSC算法替换掉spice中原有的jpeg算法进行图像有损压缩,目标是在保证SPICE协议传输图像质量较高的情况下,使图像在压缩的过程中,获得更高的压缩比,在传输过程中占用更少的网络带宽,同时加快了图像压缩的处理速度。这种方式,需要同时对spice的服务端和客户端进行改造,使其支持改进后的NSC算法,并不适用于采用virt-viewer等通用客户端连接云桌面的用户。
中国发明专利“一种动态实时调整spice图像品质的方法”(专利号:CN105430006B)。该专利采用在传输过程中定时监测网络通讯情况,根据网络通讯情况动态调整jpeg压缩质量的方式来降低spice云桌面的网络传输流量,使其适应低带宽环境。但该专利方法的定时监测网络的操作会带来额外的网络开销,影响图像数据传输;此外,该专利方法是在发现平均每秒实际发送的图像字节数小于平均每秒需要发送的图像数据字节数后,才逐步降低图像压缩率,方法效果有一定的滞后性,当用户在云桌面进行诸如窗口快速拖动等操作时,仍无法避免在操作开始阶段(四、五秒内)的云桌面图像卡顿、跳帧的情况。
中国发明专利“一种基于FPGA优化虚拟桌面传输的方法”(专利号:CN110018873A)。该专利方法主要思想是通过加装的带有万兆网口的FPGA卡来硬件加速spice的图像、视频编解码速度,并未实现图像压缩率的提升,在低带宽环境下无法解决或缓解桌面卡顿、跳帧的情况。且该方法需要在服务器端、客户端均加装FPGA卡,改造的硬件成本较高。
国际发明专利“SPICE PROTOCOL-BASED IMAGE TRANSMISSION METHOD ANDAPPARATUS”(专利号:WO2017041551A1)。该专利将每帧图像划分为宏块分别进行编码压缩处理,本质上是采用h264视频编码方式,将整个云桌面图像当做视频进行h264编码处理,这种方式利用了h264视频压缩的高压缩率优势,可以有效降低每帧图像的传输数据量,适合低带宽环境下的云桌面使用。但h264编码需要额外的时间开销,压缩解压的整个流程会造成一定的时间延时,在用户角度看来,就是操作响应滞后:用户在操作后需要零点几秒的延时后才会看到操作后的效果,影响了用户对云桌面的体验。
因此,有必要从数据压缩的角度,研究如何提升SPICE云桌面的图像压缩率,进一步减少SPICE云桌面对网络带宽的依赖,确保SPICE云桌面在低带宽环境下的流畅体验。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种SPICE云桌面中图像处理的优化方法,能够减少SPICE云桌面对网络带宽的依赖,确保SPICE云桌面在低带宽环境下的流畅体验。
为实现上述目的,本发明提供了一种SPICE云桌面中图像处理的优化方法,SPICE云桌面包括SPICE协议、SPICE服务端和SPICE客户端,SPICE服务端用于完成服务器虚拟机与SPICE客户端之间的交互,包括如下步骤:
步骤S101、在SPICE服务端上安装libjpeg-turbo库;
步骤S102、当SPICE客户端和SPICE服务端建立连接时,SPICE服务端自动测试并记录当前连接的网络带宽,并维护SPICE服务端到SPICE客户端的每秒数据流量,记录本次更新的每秒数据流量和上次更新的每秒数据流量;
步骤S103、开始SPICE云桌面的使用,SPICE 服务端接收并分析服务器虚拟机发送的图像,当确认采用jpeg算法对图像进行处理后,进入下一步骤;
步骤S104、进行算术编码设置,使libjpeg-turbo库使用自适应二进制算术编码进行熵编码;
步骤S105、SPICE服务端检测当前的JPEG图像处理库是否是libjpeg-turbo库,若是,则在输入参数中设置图像格式为BGR或BGRX,若否,则进行BGR、BGRX图像到RGB、XRGB图像的格式转换;
步骤S106、SPICE服务端将本次更新的每秒数据流量与当前连接的网络带宽进行对比,当本次更新的每秒数据流量达到网络带宽的预设阈值时,开始调节压缩质量,将本次更新的每秒数据流量与上次更新的每秒数据流量进行对比,若本次更新的每秒数据流量增加,则降低压缩质量,若本次更新的每秒数据流量减少,则提高压缩质量;
步骤S107、SPICE服务端调用libjpeg-turbo库的图像压缩接口,进行图像压缩,获得压缩后的JPEG图像数据;
步骤S108、SPICE服务端将压缩后的JPEG图像数据,发送给SPICE客户端;
步骤S109、SPICE客户端接收JPEG图像数据,向SPICE服务端发送接收确认信息,以及将JPEG图像数据解压还原为位图图像并输出到显示窗口;
步骤S110、SPICE服务端收到SPICE客户端的接收确认信息后,根据当前发送的JPEG图像数据的数据量和上次更新到本次更新的时间间隔更新每秒数据流量;
步骤S111、SPICE服务端准备下一帧图像的处理。
其中,所述根据当前发送的JPEG图像数据的数据量和上次更新到本次更新的时间间隔更新每秒数据流量的计算公式为:
Figure 100002_DEST_PATH_IMAGE002
其中,
Figure 100002_DEST_PATH_IMAGE004
表示本次更新的每秒数据流量;
Figure 100002_DEST_PATH_IMAGE006
表示本次发送的数据量;
interval表示上次更新到本次更新的时间间隔;
Figure 100002_DEST_PATH_IMAGE008
表示上次更新的每秒数据流量。
其中,所述预设阈值为网络带宽的40%-80%。
其中,所述预设阈值为网络带宽的60%。
其中,在步骤S106中,若本次更新的每秒数据流量增加,则降低压缩质量,若本次更新的每秒数据流量减少,则提高压缩质量包括:
本次更新的每秒数据流量每增加10%,则图像压缩质量降低10直至图像压缩质量降低至预设的最小值;本次更新的每秒数据流量每减少10%,则图像压缩质量增加10直至图像压缩质量增加至预设的最大值。
其中,所述进行算术编码设置的步骤为:
在调用libjpeg-turbo库进行图像压缩前,将压缩参数中的arith_code参数设置为true。
从以上技术方案可以看出,本发明的技术方案具有以下优点:
(1)实现效果明显,提升SPICE云桌面的图像压缩特别是JPEG有损图像压缩的速度和压缩率,将SPICE云桌面在1920X1080的高分辨率下的数据传输量控制在10M/s以内,确保SPICE云桌面在10M/s的低带宽环境下的流畅体验。同时,确保优化后的SPICE云桌面的通用性和兼容性,确保客户端仍能在不变动的前提下正常与云桌面交互。
(2)自主可控性,由于优化算法的设计和实现都是自主设计研发,具有完全的知识产权。
附图说明
为了更清楚地表达说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为采用本发明的SPICE云桌面服务端的图像处理框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的目的,是对SPICE云桌面的图像压缩处理步骤进行优化和改进,提升SPICE云桌面的图像压缩特别是JPEG有损图像压缩的速度和压缩率,将SPICE云桌面在1920X1080的高分辨率下的数据传输量控制在10M/s以内,确保SPICE云桌面在10M/s的低带宽环境下的流畅体验。同时,确保优化后的SPICE云桌面的通用性和兼容性,确保客户端仍能在不变动的前提下正常与云桌面交互。
为了实现上述目的,需要解决以下问题:
(1) 如何改进SPICE的有损图像压缩算法,确保压缩率和压缩速度的兼得
当前的有损图像压缩算法中,为提升图像的压缩率,往往需要更多的计算开销,导致压缩速度的降低。比如最新的JPEG2000、MOZJPEG以及WEBP等图像压缩算法,在同样的图像压缩质量下比常用的JPEG的压缩率高20%到60%,但压缩耗时也比JPEG高出5到10倍。如果采用这些图像压缩算法作为SPICE的图像压缩算法,增加的压缩耗时也会严重影响SPICE图像处理的效率,导致SPICE云桌面的画面卡顿和滞后。
本优化方法的目标,是在不影响甚至提高压缩速度的同时,进一步提升SPICE云桌面中的有损图像压缩的压缩率。
(2) 如何确保优化后的SPICE云桌面的通用性和兼容性
为确保优化后的SPICE云桌面的通用性和兼容性,则要求优化后的SPICE云桌面在有损图像压缩处理后发送的图像数据格式仍为JPEG格式,这样才能保证客户端无需改动即可实现对接收图像数据的解压操作。
(3) 如何进一步确保优化方法能满足低带宽环境下SPICE的流畅体验要求
因为SPICE原始的JPEG压缩算法仍需40M/s左右的带宽支持,要想使其满足10M/s的带宽环境的使用要求,需要将压缩率相比JPEG的压缩率提升近4倍左右,而这是目前所有有损图像压缩算法难以实现的。因此,考虑在极限情况(接近和达到带宽上限),通过动态调节图像压缩质量的方式,来进一步提高图像的压缩率。
进行图像压缩质量的动态调节,还需要尽可能实现预判,即需及早发现每秒数据传输量将达到和超过带宽上限的趋势,提前调节图像压缩质量,确保每秒数据传输量始终不超过带宽上限,避免因不及时的动态调节导致短时间内的网络数据阻塞。
为了解决上述问题,本发明实施例提出了一种SPICE云桌面中图像处理的优化方法,参见图1,SPICE云桌面包括SPICE协议、SPICE服务端和SPICE客户端,SPICE服务端用于完成服务器虚拟机与SPICE客户端之间的交互,包括如下步骤:
步骤S101、在SPICE服务端上安装libjpeg-turbo库。
步骤S102、当SPICE客户端和SPICE服务端建立连接时,SPICE服务端自动测试并记录当前连接的网络带宽,并维护SPICE服务端到SPICE客户端的每秒数据流量,记录本次更新的每秒数据流量和上次更新的每秒数据流量。
步骤S103、开始SPICE云桌面的使用,SPICE 服务端接收并分析服务器虚拟机发送的图像,当确认采用jpeg算法对图像进行处理后,进入下一步骤;
步骤S104、进行算术编码设置,使libjpeg-turbo库使用自适应二进制算术编码进行熵编码。算术编码设置地具体步骤为:在调用libjpeg-turbo库进行图像压缩前,将压缩参数中的arith_code参数设置为true,告知libjpeg-turbo库使用自适应二进制算术编码进行熵编码。
步骤S105、SPICE服务端检测当前的JPEG图像处理库是否是libjpeg-turbo库,若是,则在输入参数中设置图像格式为BGR或BGRX,若否,则进行BGR、BGRX图像到RGB、XRGB图像的格式转换。
步骤S106、SPICE服务端将本次更新的每秒数据流量与当前连接的网络带宽进行对比,当本次更新的每秒数据流量达到网络带宽的预设阈值时,开始调节压缩质量,将本次更新的每秒数据流量与上次更新的每秒数据流量进行对比,若本次更新的每秒数据流量增加,则降低压缩质量,若本次更新的每秒数据流量减少,则提高压缩质量。
预设阈值为网络带宽的40%-80%,在一个优选实施例中,预设阈值为网络带宽的60%。图像压缩质量降低或增加的数值可根据实际情况设定。例如,本次更新的每秒数据流量每增加10%,则图像压缩质量降低10直至图像压缩质量降低至预设的最小值;本次更新的每秒数据流量每减少10%,则图像压缩质量增加10直至图像压缩质量增加至预设的最大值。在本实施例中,预设的最小值为50,预设的最大值为初始值。
步骤S107、SPICE服务端调用libjpeg-turbo库的图像压缩接口,进行图像压缩,获得压缩后的JPEG图像数据。
步骤S108、SPICE服务端将压缩后的JPEG图像数据,发送给SPICE客户端。
步骤S109、SPICE客户端接收JPEG图像数据,向SPICE服务端发送接收确认信息,以及将JPEG图像数据解压还原为位图图像并输出到显示窗口。
步骤S110、所述根据当前发送的JPEG图像数据的数据量和上次更新到本次更新的时间间隔更新每秒数据流量的计算公式为:
Figure 167843DEST_PATH_IMAGE002
其中,
Figure 451057DEST_PATH_IMAGE004
表示本次更新的每秒数据流量;
Figure 883306DEST_PATH_IMAGE006
表示本次发送的数据量;interval表示上次更新到本次更新的时间间隔;
Figure 619181DEST_PATH_IMAGE008
表示上次更新的每秒数据流量。本次更新的每秒数据流量根据上次更新的每秒数据流量、上次更新到本次更新的时间间隔以及本次发送的数据量大小来进行计算,上次更新到本次更新的时间间隔和本次发送的数据量大小决定了每秒数据流量的调整量:时间间隔越短,本次发送的数据量越大,则每秒数据流量增加得越快;反之,时间间隔越长,本次发送的数据量越小,则每秒数据流量减少得越快。
步骤S111、SPICE服务端准备下一帧图像的处理。
针对要解决的技术难题,本发明主要从以下几个方面来对SPICE的JPEG有损图像压缩处理流程进行了改进,达到确保SPICE云桌面在低带宽环境下体验流畅的优化效果。
首先,针对SPICE云桌面中原始JPEG算法的熵编码环节,使用自适应二进制算术编码来替换原本的哈夫曼编码,可以在同等图像压缩质量下,实现20%左右的压缩率的提升。这种方式只需对SPICE云桌面中JPEG算法进行小小的改动即可,无需引入其他的图像压缩算法,且压缩后输出的图像格式仍为JPEG格式,客户端可以接收后直接解压,对整个SPICE云桌面的改动量最小。但需要注意,这种方法同时也增加了1倍左右的压缩时间。
其次,为了抵消自适应二进制算术编码方式增加的时间开销,考虑到SPICE云桌面是基于libjpeg库进行JPEG压缩,改用libjpeg-turbo库来替换libjpeg库。libjpeg_turbo库提供了与libjpeg库相同的压缩和解压缩接口,且因为是使用SIMD指令,其速度通常是libjpeg的2-4倍,且libjpeg_turbo库的替换无需改动SPICE云桌面,只需要在服务器操作系统中安装libjpeg_turbo库即可实现。采用libjpeg_turbo库后,图像的压缩和解压速度得到大大提升。
再次,因为libjpeg库仅支持对RGB和XRGB格式图像的压缩,而SPICE云桌面中的原始位图图像格式为BGR和BGRX,所以spice在图像压缩前,还需进行像素级别的字节位置交换,将BGR、BGRX位图图像转换为RGB、XRGB位图图像,浪费了大量时间。而libjpeg-turbo默认支持RGB、BGR、XRGB和BGRX等多种格式的位图图像的压缩,因此,可以修改SPICE在图像压缩前的处理步骤,当发现当前的jpeg库为libjpeg-turbo时,不进行RGB、XRGB位图图像格式转换,而直接将图像发送给libjpeg-turbo进行压缩。这种方式,可以进一步节省60%左右的压缩时间。
接下来,还需要监控SPICE云桌面到客户端之间的数据流量。为避免对实际传输数据造成大的影响,数据流量的监控不采用实时检测网络情况的方法,而采用统计SPICE云桌面到客户端的每秒数据流量的方式,只需在发送数据后计算并保存每秒数据流量即可。每秒数据流量根据上次更新的每秒数据流量、上次更新到本次更新的时间间隔以及本次发送的数据量大小来进行计算,上次更新的每秒数据流量也即当前取值决定了每秒数据流量的基准值,上次更新到本次更新的时间间隔和本次发送的数据量大小决定了每秒数据流量的调整量:时间间隔越短,本次发送的数据量越大,则每秒数据流量增加得越快;反之,时间间隔越长,本次发送的数据量越小,则每秒数据流量减少得越快。
最后,为进一步提升图像压缩率,在进行图像处理前,系统将根据每秒数据流量来动态调节图像压缩质量。当发现每秒数据流量达到阈值(比如网络带宽的60%)时,开始调节压缩质量。调节的原则是通过降低压缩质量来增加图像的压缩率,确保每秒数据流量不能高于网络带宽,当每秒数据流量增加,则降低压缩质量(压缩质量最低不能低于50,否则会导致明显的图像清晰度的下降);当每秒数据流量减少,则慢慢恢复压缩质量到初始值。采用这种动态调节图像压缩质量的方法,可根据预测网络流量的变化从而提前进行图像压缩质量和压缩率的调整,最多可以实现3倍的压缩率的提升。
通过上述四个方面的改进后,SPICE云桌面的JPEG图像压缩速度更快、压缩率更高,且能够根据当前情况动态调整压缩质量来确保每秒数据流量控制在10M/s以内,可以确保在低带宽环境下SPICE云桌面的体验流畅。
本发明中涉及的缩略语和关键术语定义:
云桌面:云桌面又称桌面虚拟化,是虚拟化和云计算时代的典型应用。云桌面通过云计算技术在云端数据中心搭建服务器集群,创建多个虚拟机以提供远程的计算、存储、应用程序等个性化内容的远程服务,用户通过各种云终端设备通过网络连入远程云桌面,获得属于自己的计算、存储、个性化应用和数据内容,实现与本地PC一致的使用体验。云桌面通过云桌面传输协议向用户交付。云桌面传输协议是云桌面核心技术之一,决定着云桌面的效率和展现效果。
SPICE:SPICE(SimpleProtocol for Independent Computing Environment,简单协议独立计算环境)协议是最新的基于KVM虚拟机的开源云桌面传输协议,主要应用于RedHat桌面虚拟化,提供了和云桌面进行交互的解决方案,客户端可以通过该协议访问云桌面和使用本地设备(例如键盘、USB等)。
JPEG图像压缩:JPEG(Joint Photographic Experts Group)是面向连续色调静止图像的一种压缩标准。主要采用预测编码(DPCM)、离散余弦变换(DCT)以及熵编码的联合编码方式,去除冗余的图像和彩色数据,属于有损压缩,压缩比率通常在10:1到40:1。JPEG具有调节图像质量的功能,支持多种压缩级别,允许用不同的压缩比例对文件进行压缩,压缩比越大,图像品质就越低;相反地,压缩比越小,图像品质就越高。
libjpeg:libjpeg是采用C语言编写的开源JPEG图像处理库,包含了JPEG编码、JPEG解码以及其他的JPEG功能的实现。在SPICE协议中,SPICE服务端和客户端均是通过调用libjpeg提供的接口来实现对云桌面图像的有损压缩解压处理。
libjpeg-turbo:libjpeg-turbo 是一个专门为 x86 和 arm 处理器优化的高速libjpeg 的改进版本。它使用SIMD指令来加速JPEG压缩和解压缩流程,其速度通常是libjpeg的2-4倍。为实现对使用libjpeg的应用程序的兼容,libjpeg-turbo提供了与libjpeg相同的压缩和解压缩接口。
SIMD指令:SIMD(Single Instruction Multiple Data,单指令多数据流)指令能够复制多个操作数,并把它们打包在大型寄存器的一组指令集中,以同步方式,在同一时间内执行同一条指令,实现多个数据流的并发执行,提高程序的运算速度,特别适用于对有大量重复计算操作的应用的优化。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

Claims (6)

1.一种SPICE云桌面中图像处理的优化方法,SPICE云桌面包括SPICE协议、SPICE服务端和SPICE客户端,SPICE服务端用于完成服务器虚拟机与SPICE客户端之间的交互,其特征在于,包括如下步骤:
步骤S101、在SPICE服务端上安装libjpeg-turbo库;
步骤S102、当SPICE客户端和SPICE服务端建立连接时,SPICE服务端自动测试并记录当前连接的网络带宽,并维护SPICE服务端到SPICE客户端的每秒数据流量,记录本次更新的每秒数据流量和上次更新的每秒数据流量;
步骤S103、开始SPICE云桌面的使用,SPICE 服务端接收并分析服务器虚拟机发送的图像,当确认采用jpeg算法对图像进行处理后,进入下一步骤;
步骤S104、进行算术编码设置,使libjpeg-turbo库使用自适应二进制算术编码进行熵编码;
步骤S105、SPICE服务端检测当前的JPEG图像处理库是否是libjpeg-turbo库,若是,则在输入参数中设置图像格式为BGR或BGRX,若否,则进行BGR、BGRX图像到RGB、XRGB图像的格式转换;
步骤S106、SPICE服务端将本次更新的每秒数据流量与当前连接的网络带宽进行对比,当本次更新的每秒数据流量达到网络带宽的预设阈值时,开始调节压缩质量,将本次更新的每秒数据流量与上次更新的每秒数据流量进行对比,若本次更新的每秒数据流量增加,则降低压缩质量,若本次更新的每秒数据流量减少,则提高压缩质量;
步骤S107、SPICE服务端调用libjpeg-turbo库的图像压缩接口,进行图像压缩,获得压缩后的JPEG图像数据;
步骤S108、SPICE服务端将压缩后的JPEG图像数据,发送给SPICE客户端;
步骤S109、SPICE客户端接收JPEG图像数据,向SPICE服务端发送接收确认信息,以及将JPEG图像数据解压还原为位图图像并输出到显示窗口;
步骤S110、SPICE服务端收到SPICE客户端的接收确认信息后,根据当前发送的JPEG图像数据的数据量和上次更新到本次更新的时间间隔更新每秒数据流量;
步骤S111、SPICE服务端准备下一帧图像的处理。
2.根据权利要求1所述的SPICE云桌面中图像处理的优化方法,其特征在于,所述根据当前发送的JPEG图像数据的数据量和上次更新到本次更新的时间间隔更新每秒数据流量的计算公式为:
Figure DEST_PATH_IMAGE002
其中,
Figure DEST_PATH_IMAGE004
表示本次更新的每秒数据流量;
Figure DEST_PATH_IMAGE006
表示本次发送的数据量;
interval表示上次更新到本次更新的时间间隔;
Figure DEST_PATH_IMAGE008
表示上次更新的每秒数据流量。
3.根据权利要求1所述的SPICE云桌面中图像处理的优化方法,其特征在于,所述预设阈值为网络带宽的40%-80%。
4.根据权利要求3所述的SPICE云桌面中图像处理的优化方法,其特征在于,所述预设阈值为网络带宽的60%。
5.根据权利要求1所述的SPICE云桌面中图像处理的优化方法,其特征在于,在步骤S106中,若本次更新的每秒数据流量增加,则降低压缩质量,若本次更新的每秒数据流量减少,则提高压缩质量包括:
本次更新的每秒数据流量每增加10%,则图像压缩质量降低10直至图像压缩质量降低至预设的最小值;本次更新的每秒数据流量每减少10%,则图像压缩质量增加10直至图像压缩质量增加至预设的最大值。
6.根据权利要求1所述的SPICE云桌面中图像处理的优化方法,其特征在于,所述进行算术编码设置的步骤为:
在调用libjpeg-turbo库进行图像压缩前,将压缩参数中的arith_code参数设置为true。
CN202111472438.6A 2021-12-06 2021-12-06 一种spice云桌面中图像处理的优化方法 Active CN113891080B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111472438.6A CN113891080B (zh) 2021-12-06 2021-12-06 一种spice云桌面中图像处理的优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111472438.6A CN113891080B (zh) 2021-12-06 2021-12-06 一种spice云桌面中图像处理的优化方法

Publications (2)

Publication Number Publication Date
CN113891080A CN113891080A (zh) 2022-01-04
CN113891080B true CN113891080B (zh) 2022-02-18

Family

ID=79016261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111472438.6A Active CN113891080B (zh) 2021-12-06 2021-12-06 一种spice云桌面中图像处理的优化方法

Country Status (1)

Country Link
CN (1) CN113891080B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422807B (zh) * 2022-03-28 2022-10-21 麒麟软件有限公司 一种基于Spice协议的传输优化方法
CN117519887B (zh) * 2023-12-13 2024-03-12 南京云玑信息科技有限公司 一种提升云电脑远程操作体验的方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104768009A (zh) * 2015-03-19 2015-07-08 中国科学院信息工程研究所 一种桌面虚拟化spice协议下的图像传输方法
CN105302415A (zh) * 2015-10-19 2016-02-03 四川长虹电器股份有限公司 图像缩略图生成方法
CN105430006A (zh) * 2015-12-25 2016-03-23 深圳市研唐科技有限公司 一种动态实时调整spice图像品质的方法
CN107360443A (zh) * 2016-05-09 2017-11-17 中兴通讯股份有限公司 一种云桌面图像处理方法、云桌面服务器及客户端
CN108769735A (zh) * 2018-05-23 2018-11-06 江苏网进科技股份有限公司 一种网络传输的数据压缩中优化Spice方法
CN111181953A (zh) * 2019-12-26 2020-05-19 山东乾云启创信息科技股份有限公司 一种鲲鹏虚拟化支持spice协议的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI497986B (zh) * 2011-06-10 2015-08-21 Chicony Electronics Co Ltd 具畫面品質調整功能之影像傳輸方法以及系統

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104768009A (zh) * 2015-03-19 2015-07-08 中国科学院信息工程研究所 一种桌面虚拟化spice协议下的图像传输方法
CN105302415A (zh) * 2015-10-19 2016-02-03 四川长虹电器股份有限公司 图像缩略图生成方法
CN105430006A (zh) * 2015-12-25 2016-03-23 深圳市研唐科技有限公司 一种动态实时调整spice图像品质的方法
CN107360443A (zh) * 2016-05-09 2017-11-17 中兴通讯股份有限公司 一种云桌面图像处理方法、云桌面服务器及客户端
CN108769735A (zh) * 2018-05-23 2018-11-06 江苏网进科技股份有限公司 一种网络传输的数据压缩中优化Spice方法
CN111181953A (zh) * 2019-12-26 2020-05-19 山东乾云启创信息科技股份有限公司 一种鲲鹏虚拟化支持spice协议的方法及装置

Also Published As

Publication number Publication date
CN113891080A (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
CN113891080B (zh) 一种spice云桌面中图像处理的优化方法
US7930436B1 (en) System and method for dynamically adjusting data compression parameters
US8392596B2 (en) Methods for detecting and handling video and video-like content in remote display system
US9510048B2 (en) Dynamically changing streaming video quality
US7916956B1 (en) Methods and apparatus for encoding a shared drawing memory
US8638337B2 (en) Image frame buffer management
US7844848B1 (en) Method and apparatus for managing remote display updates
WO2021068598A1 (zh) 共享屏幕的编码方法、装置、存储介质及电子设备
US20180063555A1 (en) Network-enabled graphics processing module
CN111163318B (zh) 一种基于反馈优化的人机视觉编码方法和装置
WO2010062701A2 (en) Remote computing platforms providing high-fidelity display and interactivity for clients
WO1994001824A1 (en) A single chip integrated circuit system architecture for video-instruction-set-computing
WO2022252488A1 (zh) 一种图像压缩方法、装置、电子设备及可读存储介质
US20030120747A1 (en) Thin client network system and data transmitting method therefor
CN109274973A (zh) 嵌入式arm平台上的快速视频解码方法
US8760366B2 (en) Method and system for remote computing
EP3806462A1 (en) Image encoding and decoding method , related device and storage medium
WO2014207439A1 (en) Efficient encoding of display data
US20090262126A1 (en) System and Method for Separated Image Compression
KR20170107667A (ko) 원격화면 전송 방법 및 원격화면 전송 시스템
KR20120058227A (ko) 프리젠테이션 가상화를 위한 화면 부호화 방법 및 서버
CN111836092A (zh) 一种虚拟桌面的数据处理方法、装置及相关组件
CN113849073A (zh) 一种面向远程操控的鼠标与回传画面的同步方法及系统
CN115701709A (zh) 视频编码方法、装置、计算机可读介质及电子设备
CN112804527A (zh) 图像输出方法、装置及计算机可读存储介质

Legal Events

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