图形App会通过 Windows 平台提供的图形 API(Application Programming Interface,
应用程序编程接口)来绘图,这些图形接口通过 Windows 图形子系统的转换会调用
到虚拟显示驱动中(图形接口调用我们暂且称为图形指令),图形指令内部的参数数
据描述了图形程序具体的显示内容,并把这些图形指令写入共享内存,并通过IO中断
通知QEMU;桌面云服务端通过共享内存获取到这些图形指令后,由于原命令数据量
比较大且是明文数据,需要对这些指令进行进一步处理(压缩、重新编码和加密),
再通过网络发送给桌面云客户端。
桌面云客户端接收到图形指令后,进行一系列的解密、解码、解压操作后把图形还原,
并调用系统的绘图API把图形绘制到窗口上,这样用户就看到了虚拟机的图形界面。
SRAP 显示架构
SRAP协议又分为SRAP和HEDC(High Efficiency Desktop Coding,高效能桌面编码)
子显示协议,HEDC子显示协议是基于SRAP子显示协议上针对广域网场景的优化版,
它和SRAP子显示协议一样支持智能缓存,JPEG编码、视频流识别等,但其还支持智
能帧控质控(即根据网络情况智能调整帧率和H264编码画质)和H264编码。HEDC
采用的定时编码方式,QXL有图像刷新时,虚拟化服务端先把图像绘制到画布上,再
每隔33ms取一帧图像进行编码,并对自然图像(动图或视频)进行H264编码压缩;
而SRAP采用的是及时编码方式,QXL有数据刷新时,立刻编码,并对自然图像(动
图或视频)进行JPEG编码压缩,并发送给VDI 客户端。
HEDC子显示协议由于对自然图像进行了H264压缩,故其流量占用小,且其实现了智
能帧控和智能质控,能根据网络带宽情况,动态调整自然图像的帧率和画质,所以在
弱网场景下,依然能流畅办公。但由于其对自然图像采用H264编码和服务端需要渲染
图像,CPU资源消耗比SRAP子显示协议高,自然图像画质比SRAP的差。
图5:深信服桌面云协议画面显示流程图
表2:深信服桌面云协议模块功能表
SRAP 显示优势
1. 画质清晰:SRAP协议在纯文字、文字+图片、纯图片的显示效果优于SPICE和RDP协议。
2. 流畅度高、流量低:对视频、动态场景,显示流畅度优于SPICE和RDP协议,流量低于SPICE和RDP协议。
3. 智能适应网络:根据网络状态动态调整画质或者流畅度,给用户最优的体验。
SRAP 显示关键技术
1. 重复图像不传输,自动识别图像中变化区域,仅对变化区域的图像进行压缩编码,并发送给客户端显示,极大地降低了带宽消耗。
2. 高效识别图像特征,根据变化区域的图像特征,识别文字、Windows 图框、线条等非自然图像和图片、视频等自然图像;由于人眼对文字等非自然图像比较敏感,画质要求比较高,故采用Sangfor自研的无损压缩。对图片、视频等自然图像采用JPEG、H264等有损压缩。达到最佳的体验效果。
3. Sangfor自研的高命中率缓存算法,根据变化区域的图像特征,把部分图像数据预缓存在客户端,下次变化区域内容跟缓存中某块图像一致时,直接通知客户端采用该缓存块的图像进行更新,大大降低窗口拖动、滚动文档等场景的内存消耗。
4. 智能帧控、质控,根据当前网络状态,动图调整自然图像的帧率和画质,尽可能保证用户操作流畅,体验效果最佳