Video Decode and Presentation API for Unix ( VDPAU ) - это бесплатный интерфейс прикладного программирования (API), а также его реализация в виде бесплатной библиотеки с открытым исходным кодом ( libvdpau ), распространяемой по лицензии MIT . [1] VDPAU также поддерживается Nvidia . [2]
Автор (ы) оригинала | Nvidia |
---|---|
Разработчики) | freedesktop.org |
Стабильный выпуск | 1.3 / 18 октября 2019 г . |
Написано в | C , C ++ |
Операционная система | Кроссплатформенность |
Тип | |
Лицензия | Лицензия MIT |
Веб-сайт | www |
Интерфейс VDPAU должен быть реализован драйверами устройств , такими как драйвер Nvidia GeForce , nouveau , amdgpu , чтобы предложить конечному пользователю программное обеспечение, такое как медиаплеер VLC или GStreamer , стандартизованный доступ к имеющемуся оборудованию для ускорения декомпрессии видео в виде приложения. -специализированные интегральные схемы (ASIC) на графических процессорах (GPU), таких как PureVideo от Nvidia или Unified Video Decoder от AMD, и используют их.
VDPAU ориентирован на Unix-подобные операционные системы (включая Linux , FreeBSD , Solaris ). [3] [4] [5]
Функциональный диапазон интерфейса
VDPAU позволяет видеопрограммы для доступа специализированного декодирования видео ASIC на GPU , чтобы разгрузить части декодирования видео процессы и видео пост-обработки от центрального процессора к GPU. [6]
В настоящее время части, которые могут быть выгружены VDPAU на GPU, - это компенсация движения (mo comp), обратное дискретное косинусное преобразование (iDCT), VLD (декодирование с переменной длиной) и деблокирование для MPEG-1 , MPEG-2 , MPEG-4. Видео с кодировкой ASP (MPEG-4, часть 2) , H.264 / MPEG-4 AVC и VC-1 , WMV3 / WMV9 . [3] Какие именно кодеки из них могут быть выгружены в GPU, зависит от версии поколения аппаратного обеспечения GPU.
История
VDPAU был первоначально разработан Nvidia для их блока PureVideo SIP, присутствующего в их графических процессорах серии GeForce 8 и более поздних версиях. [7]
9 марта 2015 года Nvidia выпустила VDPAU версии 1.0, которая поддерживает декодирование High Efficiency Video Coding (HEVC) для профилей Main, Main 4: 4: 4, Main Still Picture, Main 10 и Main 12. [8]
Драйверы устройств и видеоконтроллеры, реализующие VDPAU
VDPAU реализован в программных драйверах устройств X11 , но полагается на функции ускорения в аппаратном графическом процессоре.
Все графические карты Nvidia, для которых драйвер реализует VDPAU, перечислены в Nvidia PureVideo . [9]
S3 Graphics добавила VDPAU в драйверы Linux для своих видеокарт Chrome 400 . Начиная с версии 14.02.17 драйвера устройства для Linux, VDPAU доступен с оборудованием S3 Chrome 430 GT, S3 Chrome 440 GTX, S3 Chrome 530 GT и S3 Chrome 540 GTX. [10]
ATI / AMD выпустили драйвер с открытым исходным кодом для графических карт Radeon HD 4000+ с ускорением VDPAU. [11] [12]
Intel не предлагает драйверы VDPAU, они поддерживают только свой VA-API . Однако можно использовать драйверы Intel VA-API посредством libvdpau-va-gl .
Nvidia надеется, что другие разработчики графических процессоров сделают свои продукты совместимыми с библиотекой VDPAU с открытым исходным кодом и предоставят драйверы с ускорением VDPAU, указав примеры названий драйверов для оборудования Intel и ATI: libvdpau_intel.so и libvdpau_ati.so. [13] Intel заявила, что рассматривает возможность использования VDPAU. [14]
SoC sunxi ( Allwinner ) имеют экспериментальную реализацию VDPAU. [15]
Mesa, начиная с версии 8.0, включает VDPAU для видеокарт, использующих Gallium3D .
Универсальный драйвер VDPAU
По состоянию на конец 2013 года существует независимо разработанный серверный драйвер, который, в свою очередь, использует OpenGL (для рисования и масштабирования) и VA-API, если он доступен (для декодирования). [16] Сообщается, что он работает с графикой Intel и Adobe Flash Player . [17]
Ускоренное масштабирование с использованием только функций OpenGL необходимо в основном из-за Flash Player, который использует неускоренное масштабирование, если VDPAU недоступен. Почти все другое программное обеспечение для работы с видео, работающее в Linux или FreeBSD, поддерживает Xv . Это важно для полноэкранного видео на более медленных компьютерах без встроенной поддержки VDPAU.
Преобразование VDPAU в VA-API для HW-декодирования полезно с последним графическим оборудованием Intel, поскольку некоторое программное обеспечение поддерживает HW-декодирование через VDPAU, но не VA-API.
Программное обеспечение, поддерживающее VDPAU
- Avidemux начиная с версии 2.6
- Boxee [18]
- FFmpeg
- GStreamer [19]
- MPlayer
- MythTV [20]
- Коди (ранее XBMC) [21] [22] [23] [24]
- Ксин [25] [26]
- MLT [27]
- Adobe Flash 10.2 Stage Video и более поздние версии [28]
- Медиаплеер VLC 2.1
- mpv [29]
VDPAU также может использоваться как серверная часть для VA-API и OpenMAX IL , которые сами по себе покрывают подмножество возможностей VDPAU; поэтому любое программное обеспечение, использующее VA-API или OpenMAX IL, также частично способно использовать VDPAU (например, медиаплеер VLC). [30]
Наборы функций Nvidia VDPAU
Наборы функций Nvidia VDPAU [31] представляют собой различные поколения графических процессоров, поддерживающих различные уровни возможностей аппаратного декодирования (Nvidia PureVideo). Для наборов функций A, B и C максимальная ширина и высота видео составляют 2048 пикселей , минимальная ширина и высота - 48 пикселей, и все кодеки в настоящее время ограничены максимум 8192 макроблоками (8190 для VC-1 / WMV9). Частичное ускорение означает, что декодирование VLD (битового потока) выполняется на CPU, а GPU выполняет только IDCT , компенсацию движения и снятие блочности . Полное ускорение означает, что графический процессор выполняет все VLD, IDCT, компенсацию движения и снятие блокировки.
- Набор функций A
- Поддерживает полное ускорение для H.264 и частичное ускорение для MPEG-1 , MPEG-2 , VC-1 / WMV9
- Набор функций B
- Поддерживает полное ускорение для MPEG-1, MPEG-2, VC-1 / WMV9 и H.264.
- Обратите внимание, что все оборудование Feature Set B не может декодировать H.264 для следующей ширины: 769-784, 849-864, 929-944, 1009-1024, 1793-1808, 1873-1888, 1953-1968, 2033-2048 пикселей.
- Набор функций C
- Поддерживает полное ускорение для MPEG-1, MPEG-2, MPEG-4 Part 2 (также известного как MPEG-4 ASP) , VC-1 / WMV9 и H.264.
- Компенсация глобального движения и разделение данных не поддерживаются для MPEG-4 Part 2.
- Набор функций D
- Аналогичен набору функций C, но добавлена поддержка декодирования H.264 с разрешением до 4032 × 4080 и MPEG-1 / MPEG-2 с разрешением до 4032 × 4048 пикселей.
- Набор функций E
- Аналогичен набору функций D, но добавлена поддержка декодирования H.264 с разрешением до 4096 × 4096 и MPEG-1 / MPEG-2 с разрешением до 4080 × 4080 пикселей. Графические процессоры с набором функций VDPAU E поддерживают расширенный режим маскирования ошибок, который обеспечивает более надежную обработку ошибок при декодировании поврежденных видеопотоков. [32]
- Набор функций F
- Введены специальные функции декодирования видео HEVC Main (8 бит) и Main 10 (10 бит) с разрешением до 4096 × 2304 пикселей.
- Набор функций G
- Аппаратная поддержка декодирования видео HEVC Main 12 (12-бит), но VDPAU в настоящее время не поддерживает этот профиль. [33]
- Набор функций H
- Набор функций H поддерживает декодирование с аппаратным ускорением 8192x8192 (разрешение 8k) видеопотоков H.265 / HEVC. [34]
libvdpau автономная библиотека VDPAU
Автономная библиотека VDPAU libvdpau распространяется Nvidia независимо от их проприетарного графического драйвера Linux, чтобы помочь пользователям за пределами Nvidia принять VDPAU. Этот пакет библиотеки с открытым исходным кодом содержит библиотеку-оболочку и библиотеку отладки, позволяющую другим производителям внедрять VDPAU в свои драйверы устройств. [7] [35] [36] [37]
Смотрите также
- PureVideo
- Единый видеодекодер
- DirectX Video Acceleration (DXVA) - API, эквивалентный VDPAU для операционной системы Microsoft Windows .
- Video Acceleration API (VA API) - альтернативный API ускорения видео для операционной системы Linux / UNIX.
- X-Video Bitstream Acceleration (XvBA) - альтернативный API ускорения видео для операционной системы Linux / UNIX.
- X-Video Motion Compensation (XvMC) API - альтернативный и самый старый API для ускорения видео для операционных систем Linux / UNIX.
- Distributed Codec Engine (libcde) - это API-интерфейс Texas Instruments для механизма видеокодеков во встроенных системах на основе OMAP.
- Video Decode Acceleration Framework - это API Apple Inc. для аппаратного ускорения декодирования H.264 в Mac OS X
- VideoToolbox является API от компании Apple Inc. для аппаратного ускорения декодирования на Apple TV и Mac OS X . [38]
- OpenMAX IL (Open Media Acceleration Integration Layer) - бесплатный кроссплатформенный API абстракции медиа от Khronos Group
Рекомендации
- ^ "Объявление libvdpau 0.2" . freedesktop.org . 2009-09-17.
- ^ https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-NVDEC-GStreamer
- ^ а б Майкл Ларабель ( 14 ноября 2008 г.). «Драйвер NVIDIA привносит функции PureVideo в Linux» . Фороникс . Проверено 13 марта 2009 .
- ^ Майкл Ларабель ( 14 ноября 2008 г.). «Тесты NVIDIA VDPAU» . Фороникс . Проверено 13 марта 2009 .
- ^ «VDPAU: Video Decode and Presentation API для Unix» . Nvidia.
- ^ «Video4Linux2: путь к стандартизированному API видеокодеков» (PDF) . Events.linusfoundation.org \ accessdate = 25.05.2016 .
- ^ а б «NVIDIA выпускает автономную библиотеку VDPAU - Phoronix» . Фороникс.
- ^ Ларабель, Майкл (9 марта 2015 г.). «NVIDIA анонсирует VDPAU 1.0 с декодированием HEVC / H.265» . Фороникс . Проверено 9 марта 2015 года .
- ^ «Таблица поддержки PureVideo» (PDF) . Nvidia . Проверено 22 мая 2014 .
- ^ «Архивная копия» . Архивировано из оригинала на 2012-07-08 . Проверено 28 февраля 2010 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ «[ПАТЧ] drm / radeon: поддержка UVD для RV710-SI» . Lists.freedesktop.org . Проверено 25 мая 2016 .
- ^ «AMD выпускает поддержку видео UVD с открытым исходным кодом - Phoronix» . Фороникс . Проверено 25 мая 2016 .
- ^ "VDPAU: Уровень интеграции оконной системы X11" . Download.nvidia.com .
- ^ «Intel рассматривает поддержку VDPAU для драйвера X.Org - Phoronix» . Фороникс . Проверено 25 мая 2016 .
- ^ «GitHub - linux-sunxi / libvdpau-sunxi: экспериментальный VDPAU для Allwinner sunxi SoC (WiP)» . GitHub . Проверено 25 мая 2016 .
- ^ «GitHub - i-rinat / libvdpau-va-gl: драйвер VDPAU с бэкэндом OpenGL / VAAPI» . GitHub . Проверено 25 мая 2016 .
- ^ «Аппаратное ускорение Adobe Flash Player на видеокартах Intel» . WebUpd8 . 5 сентября 2013 . Проверено 25 мая 2016 .
- ^ «Архивная копия» . Архивировано из оригинального 26 июня 2009 года . Проверено 26 июня 2009 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ «Новые кодеки Fluendo поддерживают VDPAU, VA-API - Phoronix» . Phoronix.com . Проверено 25 мая 2016 .
- ^ Майкл Ларабель ( 29 ноября 2008 г.). «MythTV добавляет поддержку NVIDIA VDPAU» . Фороникс . Проверено 13 марта 2009 .
- ^ «XBMC for Linux VDPAU - поддержка декодирования видео графическим процессором NVIDIA (теперь в основной линии SVN)» . Xbmc.org. Архивировано из оригинала на 2009-02-28 . Проверено 25 мая 2016 .
- ^ «Kodi - программное обеспечение для домашнего кинотеатра с открытым исходным кодом» . Xbmc.org. Архивировано из оригинала на 2009-04-14 . Проверено 25 мая 2016 .
- ^ «XBMC получает основную поддержку для VDPAU - Phoronix» . Фороникс.
- ^ «XBMC получает основную поддержку для VDPAU» . Phoronix.com . 2009-03-23 . Проверено 25 мая 2016 .
- ^ Майкл Ларабель ( 17 декабря 2008 г.). «Xine получает поддержку VDPAU NVIDIA» . Фороникс . Проверено 13 марта 2009 .
- ^ «xine-lib / xine-lib-1.2: набор изменений 11335: 9b68f6efb713» . Debian.org . Проверено 25 мая 2016 .
- ^ ddennedy (30 ноября 2009 г.). «VDPAU для MLT 0.4.11 версии Git» . MLT . Архивировано из оригинала на 2010-02-27 . Проверено 30 ноября 2009 .
- ^ «Flash Player 10.2 beta - с ускорением VDPAU !: linux» . Reddit .
- ^ «Справочное руководство по mpv» . Проверено 9 апреля 2016 .
- ^ Майкл Ларабель (03.02.2009). "Серверная часть NVIDIA VDPAU для Intel VA-API" . Фороникс . Проверено 13 марта 2009 .
- ^ «Приложение G. Поддержка ВДПАУ» . Nvidia . 2016-12-14 . Проверено 3 января 2017 .
- ^ «VDPAU для графического процессора NVIDIA Maxwell в Linux» . Phoronix.com . 2014-03-03 . Проверено 25 мая 2016 .
- ^ «Приложение G. Поддержка ВДПАУ» . us.download.nvidia.com . Проверено 17 сентября 2017 .
- ^ http://www.nvidia.com/download/driverResults.aspx/104284/en-us Nvidia LINUX X64 (AMD64 / EM64T) ДРАЙВЕР ДИСПЛЕЯ Версия: 367.27
- ^ "[ОБЪЯВЛЕНИЕ] libvdpau 0.2" . Lists.freedesktop / org . Проверено 25 мая 2016 .
- ^ «NVIDIA предлагает VDPAU для патчей DRI2 - Phoronix» . Фороникс . Проверено 25 мая 2016 .
- ^ «[PULL] Добавить драйверы VDPAU в реализацию DRI2 сервера» . xorg . Проверено 25 мая 2016 .
- ^ «VideoToolbox - документация для разработчиков Apple» . developer.apple.com . Проверено 5 августа 2018 .
Внешние ссылки
- VDPAU (Video Decode and Presentation API для Unix) от Nvidia
- Тесты NVIDIA VDPAU
- Серверная часть NVIDIA VDPAU для Intel VA-API
- Использование VDPAU на MythTV