Mesa 24.3 中的视频加速(VA)前端和 RadeonSI/VCN 驱动程序代码中的视频编码处理已重新打上了十几个补丁。此次重做的目的是实现新功能,增强整体驱动程序,并为 H.265/HEVC 视频编码节省 “大量 ”内存。
开源开发者大卫-罗斯卡(David Rosca)的十几个补丁已被合并,用于重做 Mesa 24.3 中的视频编码,重点是 AMD Radeon 驱动程序支持。他在合并请求中解释了这项工作:
- 全面支持长期引用、参考图片重新排序、参考图片失效等功能
- 删除大量不必要的驱动程序逻辑
- 为更多无法实现的改进做准备
- 在 Radeonsi 上,使用 HEVC 编码可显著节省内存
- 目前,编码存在两个主要问题:我们如何处理 DPB 中的参考图片以及如何编写标头。
- 驱动程序现在只能获得有关使用哪些参考来编码给定帧的有限信息,并且凭借这些有限的知识,它们可以实现自己的逻辑来处理 DPB(存储当前帧的插槽、要驱逐的参考图片等)。VAAPI 要求应用程序进行自己的 DPB 管理,因此如果应用程序尝试执行比基本滑动窗口更高级的操作,这将很容易中断。这里的解决方案是简单地切换到应用程序 DPB 管理,这完全解决了问题,并允许我们通过删除不应该存在的逻辑来简化驱动程序。
- 由于上述原因,驱动程序无法正确实现任何高级功能,如长期引用、参考图片重新排序和参考图片失效。 VAAPI 要求应用程序编写标头并将其提供给驱动程序,因此我们需要确保在那里设置的参数也将出现在输出比特流中。目前,我们对解析 VPS/SPS/PPS/Slice 标头的支持有限,此 MR 大大扩展了它,使其能够支持上述功能。驱动程序仍然需要编写这些标头,并且由于编码器限制,可能需要覆盖某些参数,因此这些参数不能直接传递。
- 计划是让所有驱动程序切换到新接口,然后删除旧接口(帧号引用和其他未使用的字段)。
虽然这目前可以为 GPU 加速的 HEVC 编码节省内存,改进驱动程序逻辑和其他功能工作,但仍需要调整此代码以利于 AV1 编码。除其他更改外,还计划允许驱动程序直接将表面用作 DPB 缓冲区。
上周视频编码重做已发布在 Mesa 24.3-devel 中,并将作为 Q4-2024 驱动程序功能发布的一部分首次亮相。
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/zixun/51762.html