继Virtualization SIG率先实现VirtIO-GPU硬件视频加速技术,获国际社区认可后,近日,在Virtualization SIG团队成员的努力研发下,成功为Virtio GPU增添了AV1解码功能。目前,其相关源码已顺利合入上游开源社区mesa和virglrenderer,并再次受到了国际媒体Phoronix的追踪报道。
报道原文:
https://www.phoronix.com/news/Mesa-23.3-VirGL-AV1-Decode
一、AV1 简介
AV1是下一代开源的、版权免费的视频压缩格式,由开放媒体联盟(AOMedia)于2018年初联合开发并最终定稿。AV1支持高清、4K和8K等视频,在相同的比特率下比VP9、H.265等有更好的视频质量,或在较低的比特率下有类似的视频质量。根据AOMedia官方和Bitmovin的数据,在相同场景下,AV1比H.265平均节省约30%的码率。
由于AV1良好的性能以及背后厂家的支持,AV1已经逐渐流行起来。目前,谷歌、网飞等厂商都已经采用,各显卡制造商也陆续增加了对AV1的支持,常见的支持AV1规范的显卡有AMD Radeon RX 6600以及NVIDIA GeForce RTX 3060等。
二、Virtio GPU AV1
Virtio GPU AV1解码功能基于之前的“Virtio GPU硬件视频加速框架”开发,在此基础上实现了AV1前端驱动、AV1后端服务程序等,并扩展了Virtio GPU视频协议,整体结构如下:
其中,Virtio GPU AV1 驱动主要负责接收来自虚拟机应用程序和视频加速库的视频解码请求,并将其封装成Virtio GPU AV1协议报文,通过virtio队列发送给Virtio GPU设备。Virtio GPU设备接收、解析报文后,继续将请求转发给AV1后端。AV1后端则调用物理机侧的视频加速库,借助物理显卡进行硬件解码,并最终将解码后的图像原路传回。
在x86环境下,经测试使用Virtio GPU AV1硬件解码功能后,可显著降低虚拟机内播放器等视频程序对vCPU的占用,提高系统流畅度和用户体验。
未来,Virtualization SIG将不断努力,继续完善Virtio GPU硬件视频加速框架,使其支持更多的视频编码规范,兼容不同GPU厂商的专用视频库及驱动等。欢迎有志伙伴加入openKylin社区Virtualization SIG,与大家一起交流、共同开发、共同演进,构建openKylin社区系统虚拟化技术。
- Virtualization SIG主页:
- https://gitee.com/openkylin/community/tree/master/sig/Virtualization
- Mesa补丁:
- https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23386
- Virglrenderer补丁:
- https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1135
创新永无止境,科技引领未来,openKylin作为我国桌面操作系统根社区,将加速科技协同创新,持续参与国际开源社区交流与合作,进一步提升在国际开源技术社区的影响力,构建技术话语权。