虚拟化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作为我国首个桌面操作系统根社区,将加速科技协同创新,持续参与国际开源社区交流与合作,进一步提升在国际开源技术社区的影响力,构建技术话语权。

审核:openKylin

投稿作者 作者网站

评论

 
 

发表评论

 
你的昵称*
电子邮件*
网址(选填)
我的评论*
  • 发表评论
  • 为您推荐


    请支持IMCN发展!

    谁在捐赠

    微信捐赠 支付宝捐赠
    微信捐赠 支付宝捐赠




    微信公众号二维码

    归档