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:
- MPEG-1,
- MPEG-2,
- MPEG4,
- VC-1,
- H.264 (AVCHD) (8 bit),
- H.265 (HEVC) (8bit, 10 bit and 12 bit),
- VP8,
- VP9(8bit, 10 bit and 12 bit),
- AV1 Main profile,
- Гибридный (CUDA + CPU) JPEG
Поддерживаемые графические процессоры
[править | править код]Аппаратное ускорение декодирования поддерживается продуктами 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 года.
Ссылки
[править | править код]- video codec sdk documentation
- NVIDIA Hardware Video Decoder
- NVIDIA VIDEO DECODER (NVCUVID) INTERFACE
- NVDEC — декодирование видео с аппаратным ускорением
В статье есть список источников, но не хватает сносок. |