Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Ускорение видео по API ( VA-API ) является открытым исходным кодом API , который позволяет приложения , такие как VLC Media Player или GStreamer , чтобы использовать аппаратные возможности ускорения видео, как правило , предоставляемые Графический процессор (GPU). Он реализуется с помощью бесплатной библиотеки с открытым исходным кодом libva в сочетании с аппаратным драйвером, обычно предоставляемым вместе с драйвером графического процессора.

Интерфейс декодирования / кодирования видео VA-API не зависит от платформы и оконной системы, но в первую очередь ориентирован на инфраструктуру прямого рендеринга (DRI) в X Window System в Unix- подобных операционных системах (включая Linux , FreeBSD , Solaris ) и Android , однако он может потенциально также может использоваться с прямым кадровым буфером и графическими подсистемами для вывода видео. Ускоренная обработка включает в себя поддержку декодирования видео , кодирование видео , титр смешивание, и рендеринг. [2]

Спецификация VA-API была первоначально разработана Intel для серии графических процессоров GMA (Graphics Media Accelerator) с конкретной целью в конечном итоге заменить стандарт XvMC в качестве многоплатформенного эквивалента Unix по умолчанию API Microsoft Windows DirectX Video Acceleration (DxVA). , но сегодня API больше не ограничивается аппаратным обеспечением или графическими процессорами Intel. [3] Другое оборудование и производители могут свободно использовать этот открытый стандартный API для аппаратной ускоренной обработки видео на собственном оборудовании без уплаты роялти. [4]

Обзор [ править ]

Пример вывода vainfo, показывающий поддерживаемые видеокодеки для ускорения VA-API

Основная мотивация VA-API - обеспечение возможности аппаратного ускорения декодирования видео в различных точках входа ( VLD , IDCT , компенсация движения , снятие блочности [5] ) для преобладающих сегодня стандартов кодирования ( MPEG-2 , MPEG-4 ASP / H .263 , MPEG-4 AVC / H.264 , H.265 / HEVC и VC-1 / WMV3 ). Рассматривалось расширение XvMC, но из-за его первоначального дизайна только для MPEG-2 MotionComp было разумнее разработать интерфейс с нуля, который может полностью раскрыть возможности декодирования видео в современных графических процессорах . [6]

Поддерживаемое оборудование и драйверы [ править ]

По состоянию на 2019 год VA-API изначально поддерживается: [7]

  • Драйверы Intel Quick Sync с открытым исходным кодом для Linux
  • Драйверы Mesa с открытым исходным кодом для видеокарт AMD и Intel
  • Драйверы AMDGPU-PRO для видеокарт AMD в Linux
  • Проприетарный драйвер Nvidia для видеокарт Nvidia в Linux
  • libva-vdpau-driver для карт, поддерживаемых VDPAU

Поддерживаемые видеокодеки [ править ]

VA-API в настоящее время поддерживает эти видеокодеки в официальной основной версии, но обратите внимание, что именно поддерживаемые видеокодеки зависят от оборудования и возможностей драйвера.

  • Ускорение декодирования MPEG-2 Основной профиль
  • Расширенный профиль ускорения декодирования VC-1 / WMV3
  • MPEG-4 Part 2 (H.263) (также известный как MPEG-4 SP / MPEG-4 ASP, более известный как Xvid ) ускорение декодирования
  • Основной профиль ускорения кодирования H.264 AVC
  • Ускорение декодирования H.264 AVC High Profile
    • Аппаратное декодирование переменной длины (VLD) H.264 / AVC - CABAC
    • Аппаратное декодирование переменной длины (VLD) H.264 / AVC - CAVLC
    • Аппаратное обратное преобразование H.264 / AVC (IT)
    • Аппаратная компенсация движения H.264 / AVC (HWMC)
    • Аппаратная деблокировка H.264 / AVC в цикле (ILDB)
  • Ускорение кодирования H.265 / HEVC
  • Ускорение декодирования H.265 / HEVC
  • VP9 8-битное ускорение кодирования [8]
  • VP9 8-битное и 10-битное ускорение декодирования [8]

Процессы, которые можно ускорить с помощью VA-API [ править ]

Процессы декодирования и постобработки видео, которые могут быть выгружены и ускорены, если их поддерживают как драйверы устройств, так и оборудование графического процессора:

  • Компенсация движения (mocomp)
  • Обратное дискретное косинусное преобразование (iDCT)
  • Петлевой фильтр деблокирования
  • Внутрикадровое предсказание
  • Декодирование переменной длины (VLD), более известное как ускорение на уровне среза
  • Обработка битового потока ( CAVLC / CABAC )

Архитектура программного обеспечения [ править ]

Архитектура API ускорения видео

Текущий интерфейс не зависит от оконной системы, поэтому он потенциально может использоваться с графическими подсистемами, отличными от DRI (Direct Rendering Infrastructure) в X Window System , например, напрямую с кадровым буфером , и может работать со сторонним DRM ( Direct Rendering Manager) библиотеки. В двух словах, это схема для передачи различных типов буферов данных из приложения к GPU для декодирования или кодирующих в сжатый битовый поток .

Программное обеспечение, поддерживающее VA-API [ править ]

  • Беспорядок (инструментарий)
  • Медиа-сервер Jellyfin
  • Emby медиа - сервер (начиная с версии 3.0.6400) [9]
  • Медиаплеер Helix ( Linux ) [10] [11]
  • ffmpeg , инструмент командной строки из проекта FFmpeg , поддерживает кодирование VA-API через интерфейс командной строки с версией, начиная с 3.1, а также libavcodec (также часть проекта FFmpeg) действительно содержит код, который другие приложения используют для поддержки аппаратного ускоренного декодирования, включая VA- API. [12]
  • Флуендо [13]
  • Проигрыватель Gnash Flash / SWF [14]
  • GStreamer через gstreamer-vaapi [15]
  • Kodi (ранее XBMC Media Center) ( Linux ) [16]
  • Kodibuntu (ранее XBMC Live) (операционная система Linux Live CD / USB) [16]
  • MPlayer (v1 с патчами) [17] и его форк mpv (родной)
  • MythTV (начиная с версии 0.25) [18]
  • Медиаплеер VLC (начиная с версии 1.1.0) [19]
  • Клиент Bluecherry DVR (начиная с версии 2.2.6) [20]
  • Xine (через библиотеку " xine-lib-vaapi "), начиная с версии 1.2.3 [21]
  • Программное обеспечение Open Broadcaster [22]
  • Firefox (в Wayland с выпуска 78 и на X11 с выпуска 80) [23] [24]

См. Также [ править ]

  • Distributed Codec Engine (libdce) - API Texas Instruments для движка видеокодеков во встроенных системах на основе OMAP
  • OpenMAX - бесплатный кроссплатформенный API абстракции медиа от Khronos Group

Ссылки [ править ]

  1. ^ "Выпуск 2.10.0" . 11 декабря 2020 . Проверено 18 декабря 2020 года .
  2. ^ "Ускорение видео VA-API на Intel Medfield - Phoronix" . Phoronix.com . Проверено 23 февраля 2019 .
  3. ^ «Video4Linux2: путь к стандартизированному API видеокодеков» (PDF) . Events.linuxfoundation.org . Проверено 23 февраля 2019 .
  4. Натан Уиллис (01.07.2009). «VA API медленно, но верно прогрессирует» . Lwn.net .
  5. ^ "Mplayer, FFmpeg Gain VA-API Support - Phoronix" . Phoronix.com . Проверено 23 февраля 2019 .
  6. ^ "ваапи" . Freedesktop.org . Проверено 23 февраля 2019 .
  7. ^ «Аппаратное ускорение видео» . wiki.ArchLinux.org .
  8. ^ a b "Аппаратное обеспечение / ваапи" . wiki.libav.org . Архивировано 01 февраля 2017 года . Проверено 20 января 2017 .
  9. ^ "Emby Server 3.0.6400 выпущен" . Emby.media . 29 августа 2016 . Проверено 23 февраля 2019 .
  10. ^ «Запись в списке рассылки, описывающая использование VA-API» . Lists.moblin.org . Проверено 23 февраля 2019 .
  11. ^ «Часто задаваемые вопросы по RealPlayer для MID и Intel / Linux» . HelixCommunity.org . Архивировано из оригинала на 2012-03-24 . Проверено 12 мая 2011 .
  12. ^ "Архивная копия" . Архивировано из оригинала на 2016-09-16 . Проверено 31 августа 2016 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  13. ^ "Новые кодеки Fluendo поддерживают VDPAU, VA-API - Phoronix" . Phoronix.com . Проверено 23 февраля 2019 .
  14. ^ «H.264 VA-API GPU для ускорения видео для Flash - Phoronix» . Phoronix.com . Проверено 23 февраля 2019 .
  15. ^ «Аппаратное ускорение декодирования, кодирования и обработки видео на графике Intel через VA-API» . Cgit.freedesktop.org . Проверено 23 февраля 2019 .
  16. ^ a b «XBMC получает рабочую поддержку Intel VA-API - Phoronix» . Phoronix.com . Проверено 23 февраля 2019 .
  17. ^ "Архивная копия" . Архивировано из оригинала на 2013-08-03 . Проверено 10 февраля 2014 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  18. ^ «Примечания к выпуску - 0.25 - Официальная вики MythTV» . Mythtv.org . Проверено 23 февраля 2019 .
  19. ^ «Релиз VLC 1.1.0 - VideoLAN» . Videolan.org . Проверено 23 февраля 2019 .
  20. ^ "[Клиент] 2.2.6 Выпущен - Включено значительное снижение загрузки ЦП" . Bluecherrydvr.com . 2 марта 2017 . Проверено 23 февраля 2019 .
  21. ^ "Проект xine - Лента новостей" . Xine-project.org . Проверено 23 февраля 2019 .
  22. ^ «OBS Studio теперь поддерживает VA-API для кодирования видео - Phoronix» . www.phoronix.com . Проверено 6 августа 2020 .
  23. ^ "Firefox в Fedora наконец-то получил VA-API в Wayland" . mastransky.wordpress.com . Проверено 19 августа 2020 .
  24. ^ «Firefox 80 доступен с VA-API на X11, поддержка компиляции параллельных шейдеров WebGL» . www.phoronix.com . Проверено 25 августа 2020 .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Intel Media and Audio для Linux
  • мобильный-hw-decode
  • «VA API медленно, но верно - прогрессирует» - обзор за 2009 год.
  • «MPlayer, FFmpeg Gain VA-API Support» - с 2008 г.