Nvidia NVDEC

Nvidia NVDEC — аппаратный декодер в видеокартах компании Nvidia, который обеспечивает полностью ускоренное аппаратное декодирование видео. NVDEC может использоваться для декодирования битовых потоков различных форматов: AV1, H.264, HEVC (H.265), VP8, VP9, MPEG-1, MPEG-2, MPEG-4 и VC-1. NVDEC работает независимо от графического движка и ЦП, оставляя их свободными для других операций.

На большинстве современных видеокарт Nvidia имеется ещё NVENC для кодирования видео.

Nvidia предоставляет программный API и библиотеки для программирования NVDEC. Программный API, в дальнейшем именуемый NVDECODE API, позволяет разработчикам получать доступ к функциям декодирования видео NVDEC и взаимодействовать NVDEC с другими движками на GPU.

NVDEC декодирует сжатые видеопотоки и копирует полученные кадры YUV в видеопамять. С кадрами в видеопамяти постобработка видео может выполняться с помощью CUDA. NVDECODE API также обеспечивает оптимизированную для CUDA реализацию часто используемых операций постобработки, таких как масштабирование, обрезка, преобразование соотношения сторон, деинтерлейсинг и преобразование цветового пространства во многие популярные форматы выходного видео. Клиент может выбрать использование CUDA-оптимизированных реализаций, предоставляемых NVDECODE API для этих шагов постобработки, или выбрать реализацию собственной постобработки для декодированных выходных кадров.

Декодированные видеокадры могут быть представлены на дисплей с графической интероперабельностью для воспроизведения видео, переданы непосредственно в выделенный аппаратный кодер (NVENC) для высокопроизводительного перекодирования видео, использованы для вывода с ускорением GPU или потребляются далее CUDA или процессорной обработкой.

NVDECODE доступен для операционных систем Windows и Linux. NVDECODE является проприетарным API.

  • Gstreamer поддерживает NVDEC с 2017 года.[1]
  • FFmpeg поддерживает NVDEC с 2017 года.[2]
  • mpv поддерживает NVDEC с 2017 года.

Поддерживаемые кодеки

Кодеки, поддерживаемые NVDECODE API:

Поддерживаемые графические процессоры

Аппаратное ускорение декодирования поддерживается продуктами NVIDIA GeForce, Quadro, Tesla и GRID[англ.] начиная с графических процессоров Fermi или более новыми поколениями.

Возможности аппаратного видеодекодера
GPU MPEG-1 & MPEG-2 VC-1 & MPEG-4 H.264/AVCHD H.265/HEVC VP8 VP9 AV1
Макс Разрешение Макс Разрешение Макс Раз. Профили, уровни Макс Раз. Профили, уровни Макс Раз. Макс Раз. Профили Макс Раз. Профили
Fermi (GF1xx) 4080 х 4080 2048x1024 & 1024x2048 4096 х 4096 Baseline, Main,

High profile до Level 4.1

N/A N/A N/A N/A
Kepler (GK1xx) 4080 х 4080 2048x1024 & 1024x2048 4096 х 4096 Main, High profile до Level4.1
Maxwell (1-е поколение)

(GM10x)

4080 х 4080 2048x1024 & 1024x2048 4096 х 4096 Baseline, Main,

High profile до Level5.1

Maxwell (2-е поколение)

(GM20x, кроме GM206)

4080 х 4080 2048x1024 & 1024x2048

Max битрейт: 60 Мб/с

4096 х 4096 Baseline, Main,

High profile до Level5.1

4096x4096
Maxwell (GM206) 4080 х 4080 2048x1024 & 1024x2048 4096 х 4096 Baseline, Main,

High profile до Level5.1

4096x2304 Main profile до Level5.1

и main10 profile

4096 х 4096 4096x2304 Profile 0
GP100 4080 х 4080 2048x1024 & 1024x2048 4096 х 4096 Baseline, Main,

High profile до Level 5.1

4096x4096 Main profile до Level 5.1,

main10 и main12 profile

4096x4096 4096x4096 Profile 0
GP10x/GV100/Turing/GA100 4080 х 4080 2048x1024 & 1024x2048 4096 х 4096 Baseline, Main,

High profile до Level 5.1

8192 x 8192 Main profile до Level 5.1,

main10 и main12 profile

4096x4096* 8192 x 8192 Profile 0, **

10-bit и

12-bit decoding

Ampere (GA10x) 4080 х 4080 2048x1024 & 1024x2048 4096 х 4096 Baseline, Main,

High profile до Level 5.1

8192 x 8192 Main profile до Level 5.1,

main10 и main12 profile

4096x4096 8192 x 8192 Profile 0,

10-bit и

12-bit decoding

8192x8192 Profile 0

до level 6.0

* Поддерживается только на некоторых графических процессорах GP10x, всех графических процессорах Turing и GA100.

** 10-битное и 12-битное декодирование VP9 поддерживается на некоторых графических процессорах GP10x, всех графических процессорах Turing и GA100.

Примечания

  1. GStreamer Adds NVDEC NVIDIA GPU Decoding Support (англ.). www.phoronix.com. Дата обращения: 20 июня 2022. Архивировано 20 июня 2022 года.
  2. FFmpeg Lands NVDEC-Accelerated H.264 Decoding (англ.). www.phoronix.com. Дата обращения: 20 июня 2022. Архивировано 21 июня 2022 года.

Ссылки