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