虚拟化SIG最新技术成果:VirtIO-GPU硬件视频加速获国际 区认可

Virtualization SIG负责构建openKylin 区系统虚拟化技术,打造面向端、边、云的全场景虚拟化解决方案。近期,SIG小组在虚拟GPU优化方向取得了不错成果,率先实现VirtIO-GPU支持硬件视频加速技术,解放系统CPU占用。
目前,该技术相关补丁已经合入到mesa、virglrenderer上游开源项目,填补了上游国际开源 区虚拟显卡视频硬件解码领域技术空白,并获得国际开源 区认可。

技术介绍

openKylin Virtualization SIG目前使用的虚拟GPU优化方案采用了基于API转发的VirtIO-GPU虚拟化技术,并借助virglrenderer组件实现了3D硬件加速,大幅的提升了虚拟机的图形性能(可达60%以上),也大幅提高了用户在 页浏览、文件办公和游戏等场景下使用体验。虽然3D性能得到了显著优化,但是虚拟GPU不支持硬件解码的弊端却导致软件解码CPU占用率过高、画面不流畅,甚至丢帧等现象。

所以针对此类问题,openKylin Virtualization SIG为VirtIO-GPU创建了一套采用前后端架构的硬件视频加速机制,为其增加硬件编解码功能。其前端为“VirtIO-GPU视频驱动”,后端为“VirtIO-GPU视频服务程序”。前后端之间采用“VirtIO-GPU视频协议”进行通信,该协议主要定义了编解码相关的一些命令,如创建编解码器、创建视频缓冲区、解码比特流等。

VirtIO-GPU硬件视频加速机制整体框架

效果展示

在虚拟机内使用MPV播放器分别播放不同编码标准和清晰度的视频文件,可以发现,使用VirtIO-GPU硬件解码时的CPU占有率明显低于软件编解码,在X86_64架构上降幅超过70%,在ARM架构上降幅则超过90%!大幅提高了用户的使用体验。

另外,使用Firefox浏览器进行4K在线视频的播放测试,结果表明使用VirtIO-GPU硬件解码时Firefox解码进程的CPU占用率相较于软件解码降低了95%以上,同时画面清晰流畅。

目前,VirtIO-GPU硬件视频加速机制已经实现了H.264和H.265的硬件解码功能,后续将逐步支持其它视频规范及编码功能,待openKylin新的版本发布后,大家即可体验。

同时,上游合入后Virtualization SIG也同AMD开源团队开展了相关技术交流探讨后续开发计划,欢迎有志伙伴加入openKylin 区Virtualization SIG,与大家一起交流、共同开发、共同演进,构建openKylin 区系统虚拟化技术。

  • openKylin 区Virtualization SIG:
  • https://gitee.com/openkylin/community/tree/master/sig/Virtualization
  • Mesa项目补丁:
  • https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17157
  • Virglrenderer项目补丁:
  • https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/838
  • 创新永无止境,科技引领未来,openKylin作为我国首个桌面操作系统根 区,将加速科技协同创新,持续参与国际开源 区交流与合作,进一步提升在国际开源技术 区的影响力,构建技术话语权。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年9月6日
    下一篇 2022年9月6日

    相关推荐