Allwinner VPU получает драйвер Linux с открытым исходным кодом для своего аппаратного видео-кодера H.264

Давние читатели CNX Software, возможно, помнят краудфандинговую кампанию Bootlin, запущенную в 2018 году, целью которой являлось предоставление драйверов Allwinner VPU с открытым исходным кодом для аппаратного кодирования и декодирования видео в mainline Linux. Им удалось собрать достаточно средств (более 30 000 евро) от мелких пользователей и нескольких компаний (Olimex, Pine64, Libre Computer, FriendlyELEC и Orange Pi) для работы над драйверами VPU с открытым исходным кодом для mainline Linux, но только для MPEG2, H264 и декодирование H265 для ряда процессоров Allwinner, таких как A20 и H5, но этого не достаточно, чтобы покрыть стоимость кодирования видео в формате H264.

Пять лет спустя компания Bootlin взяла на себя задачу завершить работу без поддержки или поддержки со стороны Allwinner и теперь выпустила драйвер V4L2 на базе ядра Linux с открытым исходным кодом для поддержки видео-кодера H.264, присутствующего в процессорах Allwinner V3, V3s, and S3.

Новый драйвер основан на более ранней работе компании по поддержке интерфейса камеры MIPI CSI-2 и ISP (процессора сигналов изображения) в процессорах Allwinner V3/V3s/S3, которые были добавлены в mainline Linux в 2021 году.

Поддержка ядра Linux Bootlin для кодирования видео H.264 на платформах Allwinner V3/V3s/S3 состоит из наборов патчей поверх основного драйвера Linux Cedrus (который уже поддерживает декодирование), который можно найти в ветке кодирования h264 в репозитории Bootlin Linux на GitHub и специальный инструмент тестирования пользовательского пространства под названием v4l2-cedrus-enc-test .

Драйвер Cedrus теперь использует /dev/video0 для декодирования видео и /dev/video1 для кодирования видео в процессорах камер Allwinner V3, V3s и S3. Bootlin объясняет, что он не совсем готов к включению в mainline Linux и полной поддержке кодировки H.264 по следующим причинам:

  • Для предоставления доступа к кодировщикам без сохранения состояния в mainline Linux необходим новый API пользовательского пространства (uAPI). Подробности смотрите в обсуждении в списке рассылки linux-media.
  • Необходимо отправить переработанный драйвер и объединить его с вышестоящим проектом;
  • Управление скоростью в настоящее время не реализовано, и доступно только прямое управление QP.
  • Новый драйвер поддерживает только платформы Allwinner V3/V3s/S3, но другие поколения используют другие, но довольно похожие блоки кодирования H.264, поддержка которых также может поддерживаться при дополнительной работе.
  • Функции предварительной обработки, такие как масштабирование и преобразование формата пикселей, пока не поддерживаются.
  • FFmpeg, GStreamer и/или другие библиотеки пользовательского пространства необходимо обновить для поддержки uAPI кодировщика без сохранения состояния.

В объявлении Bootlin содержится больше технических подробностей, и компания также приветствует финансирование от компаний, которым нужен более полный драйвер видеокодера Allwinner с открытым исходным кодом.

Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments