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.
Поддерживаемые кодеки
Кодеки, поддерживаемые 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 | 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.
Примечания
- ↑ GStreamer Adds NVDEC NVIDIA GPU Decoding Support (англ.). www.phoronix.com. Дата обращения: 20 июня 2022. Архивировано 20 июня 2022 года.
- ↑ FFmpeg Lands NVDEC-Accelerated H.264 Decoding (англ.). www.phoronix.com. Дата обращения: 20 июня 2022. Архивировано 21 июня 2022 года.