vk.com

Выберите язык

Большая доработка кодирования видео для драйвера AMD Mesa 24.3 с открытым исходным кодом

   Набор из дюжины исправлений переработал обработку кодирования видео в Mesa 24.3 для интерфейса ускорения видео (VA) и кода драйвера RadeonSI / VCN. Целью этой доработки является продвижение новых функций, улучшение общего драйвера и "значительная" экономия памяти при кодировании видео H.265 / HEVC.

Разработчик Дэвид Роска объединил дюжину своих патчей для изменения кодирования видео в Mesa 24.3 с особым упором на поддержку драйверов AMD Radeon. В запросе на слияние он объяснил эту работу:
- Полная поддержка таких функций, как долгосрочные ссылки, переупорядочивание ref pic, аннулирование ref pic и многое другое
- Удаляет множество ненужной логики драйвера
- Подготовка к дополнительным улучшениям, которые невозможно было бы реализовать в противном случае
- На radeonsi значительная экономия памяти благодаря кодированию HEVC

В настоящее время существуют две основные проблемы с кодированием: как мы обрабатываем ссылки в DPB и как мы пишем заголовки.

Драйверы теперь получают только ограниченную информацию о том, какие ссылки используются для кодирования данного кадра, и с этими ограниченными знаниями они реализуют свою собственную логику для обработки DPB (слот, где хранится текущий кадр, ссылки на который удаляются, ...). VAAPI требует, чтобы приложения самостоятельно управляли DPB, поэтому это легко сломается, если приложение попытается выполнить что-то более продвинутое, чем базовое скользящее окно. Решение здесь заключается в простом переключении на управление DPB в приложении, это полностью устраняет проблему и позволяет нам упростить драйвер, удалив логику, которой там быть не должно.

Из-за вышесказанного драйверы не могут корректно реализовать какие-либо расширенные функции, такие как долгосрочные ссылки, изменение порядка ref pic и аннулирование ref pic. VAAPI требует, чтобы приложения записывали заголовки и передавали их драйверу, поэтому нам нужно убедиться, что установленные там параметры также будут присутствовать в выходном потоке битов. В настоящее время у нас ограниченная поддержка синтаксического анализа заголовков VPS / SPS / PPS / Slice, это MR значительно расширяет ее, позволяя поддерживать вышеупомянутые функции. Драйверам по-прежнему необходимо записывать эти заголовки и, возможно, переопределять некоторые параметры, если это необходимо, из-за ограничений кодировщика, поэтому они не могут быть переданы напрямую.

Планируется, что все драйверы перейдут на новый интерфейс, а затем удалят старый (ссылки на номера кадров и другие неиспользуемые поля).

Хотя прямо сейчас это обеспечивает экономию памяти при кодировании HEVC с ускорением GPU, улучшает логику драйвера и другие функциональные возможности, этот код все еще необходимо адаптировать для улучшения кодирования AV1. Среди прочих изменений также планируется разрешить драйверам напрямую использовать surfaces в качестве буферов DPB.

команда vainfo


Эта доработка кодирования видео доступна в Mesa 24.3-devel для дебюта в рамках выпуска драйверов 4 квартала 2024 года.

Ссылка на источник.