SPICE带宽优化-图像压缩方案分析

现状梳理

测试环境:QEMU + Ubuntu20.04 虚拟机全屏播放1920x1080的视频,记录客户端的下行带宽情况。带宽数据的获取使用nload。

编码设置带宽数据(MBit/s)备注
GLZ无损(SPICE默认)

Max: 43.48

Min: 14.03

Avg: 27.43

x86_64-softmmu/qemu-system-x86_64 -enable-kvm -m 4G -spice port=5930,disable-ticketing=on -vga qxl -device virtio-serial -chardev spicevmc,id=vdagent,debug=0,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -drive format=qcow2,file=test.qcow2

JPEG有损

MAX: 7.9

Min: 6.21

Avg: 7.04

qemu-system-x86_64 -enable-kvm -m 4G -spice port=5930,disable-ticketing=on,image-compression=quic,jpeg-wan-compression=always -vga qxl  -device virtio-serial -chardev spicevmc,id=vdagent,debug=0,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -drive format=qcow2,file=test.qcow2

SPICE图像数据处理基本流程

优化方向

JPEG-2000

论文《基于SPICE协议优化的虚拟桌面技术研究》中,采用JPEG2000图像压缩算法对SPICE协议性能表现总结:

维度效果备注
客户端带宽占用

12M → 2M     

客户端CPU占用

40% ~ 70% → 50% ~ 100% 

JPEG2000的解码占用更多的CPU资源,在富交互场景下,会影响用户体验。

延迟

数据量减小带来延迟降低

0.3ms~250ms → 平均15ms

视频质量

不明显。

带宽有限(4~10M)JPEG2000表现更好;

带宽充足(100M),原生SPICE表现更好

算法实现版本的横向对比

Benchmark

有损压缩:

无损压缩:

数据来源:J2K encoder benchmarks: Open JPEG, Kakadu, Fastvideo | fastcompression.com

JXL - JPEG-XL

一个新的位图格式,2017年提案,2020年敲定比特流格式,有开源实现:https://github.com/libjxl/libjxl

Benchmark

性能

性能上Jpeg-xl表现优于jpeg (libjpeg).

图像质量 

(数据来源:Benchmarking JPEG XL image compression

  • y轴(Maximum Butteraugli)数值越低,代表图像质量越好  

图像效果上,jpeg-xl优于jpeg, 与jpeg-2000相近。

参考资料

jpeg-xl intro: https://cloudinary.com/blog/time_for_next_gen_codecs_to_dethrone_jpeg

jpeg-xl benchmark: https://drive.cvte.com/p/DYieqi4QtYsCGJvGEQ

总结和思考

  • 图像压缩算法在压缩率上的提升,对云桌面的带宽降低、延迟降低预期会有帮助。
  • JXL算法在性能上优于jpeg和jpeg-2000, 效果上优于jpeg, 与jpeg-2000相近,建议优先从jpeg-xl算法入手降低spice协议带宽占用。

优化效果测试

测试环境

  • qemu + ubuntu20, jpeg图像质量85, 使用image-compression=quic,jpeg-wan-compression=always 参数强制图像压缩全走jpeg

测试方法

  • 使用enweb进行课件全屏预览,模拟授课场景

测试工具:

reds_stats, 查看display_channel的数据量

数据记录

用例jpeg jxl 分析备注

课件1: 37页

课件分享:《Unit 1 Hello! Part A 李婷》

希沃白板5 为互动教学而生 | 课件制作神器

点击链接可直接预览课件

76307260 

56586318

Diff: 19720942
下降大约 25.8%

课件2: 33页

课件分享:《Unit 4 My home Part B Kiko》

希沃白板5 为互动教学而生 | 课件制作神器

点击链接可直接预览课件

99681360

56738530

diff: 42942830,

下降 ~40%

课件播放

JPEG Quality: 100

158320883

118747477

下降:~25%

存在的问题

  • CPU负载增加15%~30%,内存占用增加4%。

如果您觉得这篇文章有帮助,麻烦点个赞支持一下~感谢各位啦。

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光机121906

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值