Бесплатный интерфейс прикладного программирования и бесплатная библиотека с открытым исходным кодом
API декодирования и представления видео для Unix ( VDPAU ) — это бесплатный интерфейс прикладного программирования (API), а также его реализация в виде бесплатной библиотеки с открытым исходным кодом ( libvdpau ), распространяемая по лицензии MIT . [1] VDPAU также поддерживается Nvidia . [3]
Интерфейс VDPAU должен быть реализован драйверами устройств , такими как драйвер Nvidia GeForce , nouveau , amdgpu , для предоставления конечному пользователю программного обеспечения, такого как VLC media player или GStreamer , стандартизированного доступа к имеющемуся оборудованию ускорения декомпрессии видео в виде блоков специализированных интегральных схем (ASIC) на графических процессорах (GPU), таких как PureVideo от Nvidia или Unified Video Decoder от AMD , и его использования.
VDPAU ориентирован на Unix-подобные операционные системы (включая Linux , FreeBSD , Solaris ). [4] [5] [6]
Функциональный диапазон интерфейса
VDPAU позволяет видеопрограммам получать доступ к специализированной микросхеме декодирования видео ASIC на графическом процессоре для разгрузки части процесса декодирования видео и постобработки видео с центрального процессора на графический процессор. [7]
В настоящее время VDPAU может выгружать на графический процессор следующие части: компенсация движения (mo comp), обратное дискретное косинусное преобразование (iDCT), VLD (декодирование переменной длины) и деблокирование для видео, закодированных в форматах MPEG-1 , MPEG-2 , MPEG-4 ASP (MPEG-4 Часть 2) , H.264/MPEG-4 AVC и VC-1 , WMV3 / WMV9 . [4] То, какие именно кодеки из них можно выгрузить на графический процессор, зависит от версии поколения аппаратного обеспечения графического процессора.
История
VDPAU изначально был разработан компанией Nvidia для своего блока PureVideo SIP, представленного в серии GeForce 8 и более поздних графических процессорах. [8]
9 марта 2015 года компания Nvidia выпустила версию VDPAU 1.0, которая поддерживает декодирование High Efficiency Video Coding (HEVC) для профилей Main, Main 4:4:4, Main Still Picture, Main 10 и Main 12. [9]
Драйверы устройств и видеоконтроллеры, реализующие VDPAU
VDPAU реализован в программных драйверах устройств X11 , но использует функции ускорения в аппаратном графическом процессоре.
Все графические карты Nvidia, для которых драйвер реализует VDPAU, перечислены в Nvidia PureVideo . [10]
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. [11]
ATI/AMD выпустила драйвер с открытым исходным кодом для графических карт Radeon HD 4000+ с ускорением VDPAU. [12] [13]
Intel не предлагает драйверов VDPAU, они поддерживают только свой VA-API . Однако возможно использовать драйверы VA-API от Intel с помощью libvdpau-va-gl.
Nvidia надеется, что другие разработчики графических процессоров сделают свои продукты совместимыми с библиотекой VDPAU с открытым исходным кодом и предоставят драйверы с ускорением VDPAU, упомянув примеры названий драйверов, специфичных для оборудования Intel и ATI: libvdpau_intel.so и libvdpau_ati.so. [14] Intel заявила, что рассматривает возможность использования VDPAU. [15]
Sunxi SoC ( Allwinner ) имеют экспериментальную реализацию VDPAU. [16]
Mesa , начиная с версии 8.0, включает VDPAU для видеокарт, использующих Gallium3D .
Универсальный драйвер VDPAU
По состоянию на конец 2013 года существует независимо разработанный внутренний драйвер, который в свою очередь использует OpenGL (для рисования и масштабирования) и VA-API, если он доступен (для декодирования). [17] Сообщалось, что он работает на некоторых графических процессорах Intel и Adobe Flash Player . [18]
Ускоренное масштабирование только с функциональностью OpenGL необходимо в основном из-за Flash-плеера, который использует неускоренное масштабирование, если VDPAU недоступен. Почти все остальное программное обеспечение для работы с видео, работающее на Linux или FreeBSD, поддерживает Xv . Это необходимо для полноэкранного видео на более медленных компьютерах без собственной поддержки VDPAU.
Перевод VDPAU в VA-API для аппаратного декодирования полезен с новейшим графическим оборудованием Intel, поскольку некоторое программное обеспечение поддерживает аппаратное декодирование через VDPAU, но не VA-API.
Программное обеспечение, поддерживающее VDPAU
VDPAU также может использоваться в качестве бэкэнда для VA-API и OpenMAX IL , которые сами по себе охватывают подмножество возможностей VDPAU; поэтому любое программное обеспечение, использующее VA-API или OpenMAX IL, также частично способно использовать VDPAU (например, медиаплеер VLC). [31]
Наборы функций Nvidia VDPAU
Наборы функций Nvidia VDPAU [32] — это различные аппаратные поколения графических процессоров, поддерживающие различные уровни возможностей аппаратного декодирования (Nvidia PureVideo). Для наборов функций A, B и C максимальная ширина и высота видео составляют 2048 пикселей , минимальная ширина и высота — 48 пикселей, а все кодеки в настоящее время ограничены максимумом в 8192 макроблока (8190 для VC-1/WMV9). Частичное ускорение означает, что декодирование VLD (битового потока) выполняется на CPU, а графический процессор выполняет только IDCT , компенсацию движения и деблокирование . Полное ускорение означает, что графический процессор выполняет все VLD, IDCT, компенсацию движения и деблокирование.
- Набор функций А
- Поддерживает полное ускорение для 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 Часть 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 поддерживают улучшенный режим маскировки ошибок, который обеспечивает более надежную обработку ошибок при декодировании поврежденных видеопотоков. [33]
- Набор функций F
- Представлено специализированное декодирование видео HEVC Main (8 бит), Main 10 (10 бит) и VP9 Profile 0 (8 бит) с разрешением до 4096 × 2304 пикселей. [34]
- Набор функций G
- Добавлена аппаратная поддержка декодирования видео HEVC Main 12 (12 бит) и VP9 Profile 2 (12 бит). [34]
- Набор функций H
- Набор функций H позволяет выполнять аппаратно-ускоренное декодирование видеопотоков H.265/HEVC с разрешением 8192x8192 (разрешение 8k). [35]
- Набор функций I
- Аналогично набору функций H. [34]
- Набор функций J
- Набор функций J добавляет поддержку декодирования HEVC 444. [34]
- Набор функций K
- Набор функций K позволяет выполнять аппаратно-ускоренное декодирование видеопотоков профиля AV1 MAIN с разрешением 8192x8192 (разрешение 8k). [34]
libvdpau автономная библиотека VDPAU
Автономная библиотека VDPAU libvdpau распространяется Nvidia независимо от их фирменного графического драйвера Linux в попытке помочь принятию VDPAU теми, кто не является Nvidia. Этот пакет библиотеки с открытым исходным кодом содержит библиотеку-оболочку и библиотеку отладки, позволяя другим производителям внедрять VDPAU в свои драйверы устройств. [8] [36] [37] [38]
Смотрите также
Ссылки
- ^ ab "Анонс libvdpau 0.2". freedesktop.org . 2009-09-17.
- ^ "[VDPAU] [АНОНС] libvdpau 1.5". Freedesktop.org . Получено 8 марта 2022 г. .
- ^ «GStreamer добавляет поддержку декодирования NVDEC NVIDIA GPU — Phoronix».
- ^ ab Майкл Ларабель (2008-11-14). "Драйвер NVIDIA приносит функции PureVideo в Linux". Phoronix . Получено 2009-03-13 .
- ^ Майкл Ларабель (14.11.2008). "Тесты NVIDIA VDPAU". Phoronix . Получено 13.03.2009 .
- ^ "VDPAU: API декодирования и представления видео для Unix". Nvidia.
- ^ "Video4Linux2: Путь к стандартизированному API видеокодека" (PDF) . Events.linusfoundation.org\accessdate=2016-05-25 .
- ^ ab "NVIDIA выпускает автономную библиотеку VDPAU – Phoronix". Phoronix.
- ^ Ларабель, Майкл (9 марта 2015 г.). «NVIDIA анонсирует VDPAU 1.0 с декодированием HEVC/H.265». Phoronix . Получено 9 марта 2015 г.
- ^ "Таблица поддержки PureVideo" (PDF) . Nvidia . Получено 2014-05-22 .
- ^ "Архивная копия". Архивировано из оригинала 2012-07-08 . Получено 2010-02-28 .
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка ) - ^ "[PATCH] drm/radeon: поддержка UVD для RV710-SI". Lists.freedesktop.org . Получено 25.05.2016 .
- ^ "AMD выпускает поддержку видео UVD с открытым исходным кодом – Phoronix". Phoronix . Получено 25.05.2016 .
- ^ "VDPAU: Уровень интеграции оконной системы X11". Download.nvidia.com .
- ^ "Intel рассматривает возможность поддержки VDPAU для драйвера X.Org – Phoronix". Phoronix . Получено 25.05.2016 .
- ^ "GitHub – linux-sunxi/libvdpau-sunxi: Экспериментальный VDPAU для SoCs Allwinner sunxi (WiP)". GitHub . Получено 25.05.2016 .
- ^ "GitHub – i-rinat/libvdpau-va-gl: драйвер VDPAU с бэкэндом OpenGL/VAAPI". GitHub . Получено 25.05.2016 .
- ^ "Аппаратное ускорение Adobe Flash Player на видеокартах Intel". WebUpd8 . 5 сентября 2013 г. Получено 25 мая 2016 г.
- ^ "Блог Boxee » boxee для Windows, переход в Высшую лигу". Архивировано из оригинала 26 июня 2009 г. Получено 26 июня 2009 г.
- ^ "Новые кодеки Fluendo поддерживают VDPAU, VA-API – Phoronix". Phoronix.com . Получено 25.05.2016 .
- ^ Майкл Ларабель (29.11.2008). "MythTV добавляет поддержку NVIDIA VDPAU". Phoronix . Получено 13.03.2009 .
- ^ "XBMC для Linux VDPAU – поддержка декодирования видео NVIDIA GPU (теперь в основной ветке SVN)". Xbmc.org. Архивировано из оригинала 2009-02-28 . Получено 2016-05-25 .
- ^ "Kodi – Open Source Home Theater Software". Xbmc.org. Архивировано из оригинала 2009-04-14 . Получено 2016-05-25 .
- ^ «XBMC получает основную поддержку VDPAU – Phoronix». Phoronix.
- ^ "XBMC получает основную поддержку VDPAU". Phoronix.com . 2009-03-23 . Получено 2016-05-25 .
- ^ Майкл Ларабель (2008-12-17). "Xine получает поддержку VDPAU от NVIDIA". Phoronix . Получено 2009-03-13 .
- ^ "xine-lib/xine-lib-1.2: changeset 11335:9b68f6efb713". Debian.org . Получено 2016-05-25 .
- ^ ddennedy (2009-11-30). "VDPAU для MLT 0.4.11 Git version". MLT . Архивировано из оригинала 2010-02-27 . Получено 2009-11-30 .
- ^ "Flash Player 10.2 beta – с ускорением VDPAU! : linux". reddit . Декабрь 2010 г.
- ^ "mpv Reference Manual" . Получено 2016-04-09 .
- ^ Майкл Ларабель (2009-02-03). "Бэкэнд NVIDIA VDPAU для VA-API Intel". Phoronix . Получено 2009-03-13 .
- ^ "Приложение G. Поддержка VDPAU". Nvidia . 2016-12-14 . Получено 2017-01-03 .
- ^ "VDPAU для графического процессора NVIDIA Maxwell на Linux". Phoronix.com . 2014-03-03 . Получено 2016-05-25 .
- ^ abcde "Приложение G. Поддержка VDPAU". us.download.nvidia.com . Получено 2022-06-02 .
- ^ 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". Phoronix . Получено 25.05.2016 .
- ^ "[PULL] Добавить драйверы VDPAU в реализацию DRI2 сервера". xorg . Получено 2016-05-25 .
- ^ "VideoToolbox - Документация для разработчиков Apple". developer.apple.com . Получено 2018-08-05 .
Внешние ссылки
- VDPAU (API декодирования и представления видео для Unix) от Nvidia
- Тесты NVIDIA VDPAU
- Бэкэнд NVIDIA VDPAU для VA-API от Intel
- Использование VDPAU компанией MythTV