NVENC кодирование

Графические процессоры NVIDIA содержат один или несколько аппаратных декодеров и кодировщиков (отдельно от ядер CUDA), которые обеспечивают полностью ускоренное аппаратное декодирование и кодирование видео для нескольких популярных кодеков. При включенном аппаратном декодировании / кодировании графический движок и ЦП свободны для других операций.
NVIDIA с графическими процессорами - начиная с поколения Kepler - содержит аппаратный кодер (называемый NVENC), который обеспечивает полностью ускоренное аппаратное кодирование видео и не зависит от производительности графики.


NVENC

*Диаграмма поддерживает поддержку семейства NVIDIA Pascal GPU.
** 4:2:2 не поддерживается на HW (аппаратном уровне).
*** поддержка зависит от используемого кодека.
NVIDIA NVENC - это поддержка нового встроенного аппаратного H.264 видео кодера в чипсетах Kepler (6хх и 7хх серий), которая ускоряет работу кодирования видео до четырех раз. Поддержка разрешений до 4096х4096 и профилей: H.264 Base, Main, и High Profile Level 5.1. Поддержка MVC (Multiview Video Coding) для стерео видео и для Blu-ray 3D. Составляет прямую конкуренцию технологии Intel Quick Sync Video. Во время кодирования не используется основнойчип, поэтому потребление видеокарты составляет всего 10Вт.
NVENC обеспечивает высококачественную кодировку видео, которая быстрее и энергоэффективнее по сравнению с аналогичными кодировщиками на базе CPU (центрального процессора). Используя специальное аппаратное обеспечение для осуществления кодировки видео, ядра GPU с поддержкой CUDA и/или CPU свободны для выполнения других задач, требующих больших вычислительных ресурсов. NVENC на видеокартах GeForce может поддерживать не больше 2 одновременных потоков. NVENC на GRID GPU и Quadro K4000/M4000 и выше могут поддерживать столько потоков, сколько позволяет предел скорости кодировщика NVENC и свободная память.
Таблица с поддерживаемыми форматами и разрешениями (для графики поколения Pascal):


NVENC

*Кроме GM108 (и как мы выяснили GP108).
**Кроме GP100 (ограничение разрешения, до 4K).
Таблица с поддерживаемыми форматами и разрешениями для видеокарт: Quadro, GRID Tesla


NVENC

NVENC

NVENC

NVENC

Поддержка технологии NVENC игровыми и профессиональными видеокартами, полный список:
Архитектура Kepler (GK104, GK106, GK107, GK110, GK110B, GK210, не GK208): поддержка кодирования HD 1080p, H.264/AVC high-profile (YUV420, I/P/B frames, CAVLC/CABAC), 8x реалтаймов H.264 1080p@240fps (1x = 1080p@30 fps), H.264/SVC (temporal), Display Encode Mode (DEM).
Игровые: GeForce GTX 645, GeForce GTX 650, GeForce GTX 650 Ti, GeForce GTX 650 Ti Boost, GeForce GTX 660, GeForce GTX 660 Ti, GeForce GTX 670, GeForce GTX 680, GeForce GTX 690, GeForce GT 710, GeForce GT 720, GeForce GT 730, GeForce GT 740, GeForce GTX 760, GeForce GTX 760 Ti, GeForce GTX 770, GeForce GTX 780, GeForce GTX 780 Ti, GeForce GTX Titan, GeForce Titan Black, GeForce GTX Titan Z, GeForce GT 640M LE*, GeForce GT 640M, GeForce GT 645M, GeForce GT 650M, GeForce GTX 660M, GeForce GTX 670MX, GeForce GTX 675MX, GeForce GTX 680M, GeForce GTX 680MX, GeForce GT 730M, GeForce GT 735M, GeForce GT 740M, GeForce GT 745M, GeForce GT 750M, GeForce GT 755M, GeForce GTX 760M, GeForce GTX 765M, GeForce GTX 770M, GeForce GTX 780M, GeForce 825M*, GeForce GTX 860M, GeForce GTX 870M, GeForce GTX 880M.
*В некоторых списках присутствуют следующие чипсеты (которые не поддерживают NVENC): GeForce GT 705 (GF119), GeForce GT 630 (есть GF108 и есть GK208), GeForce 920M (GK208B).
Профессиональные: GRID K1, GRID K2, GRID K340, GRID K520, Tesla K10, Tesla K20, Tesla K20X, Tesla K40, Tesla K80, Quadro 410, Quadro K420, Quadro K600, Quadro K2000, Quadro K2000D, Quadro K4000, Quadro K4200, Quadro K5000, Quadro K5200, Quadro K6000, Quadro K500M, Quadro K510M, Quadro K610M, Quadro K1000M, Quadro K1100M, Quadro K2000M, Quadro K2100M, Quadro K3000M, Quadro K3100M, Quadro K4000M, Quadro K4100M, Quadro K5000M, K5100M и Quadro NVS 510.
Архитектура Maxwell: первое поколение Maxwell (GM107, не GM108) поддержка кодирования HiP444 profile (YUV444, Predictive Coding, I/P frames), 16x реалтаймов H.264 1080p@480fps (1x = 1080p@30 fps), второе поколение Maxwell (GM200, GM204, GM206, не GM208) - HEVC/H.265 и 4K UHD 2160p@60fps H.264 (2160p60).
Игровые: GeForce GTX 745, GeForce GTX 750, GeForce GTX 750 Ti, GeForce GT 945A*, GeForce GTX 950, GeForce GTX 960, GeForce GTX 970, GeForce GTX 980, GeForce GTX 980 Ti, GeForce GTX Titan X, GeForce 830M*, GeForce 840M*, GeForce 845M*, GeForce GTX 850M, GeForce GTX 860M, GeForce 930M*, GeForce 940M*, GeForce GTX 950M, GeForce GTX 960M, GeForce GTX 965M, GeForce GTX 970M, GeForce GTX 980M и GeForce GTX 980.
Профессиональные: Quadro K620, Quadro K1200, Quadro K2200, Quadro M600M, Quadro M1000M, Quadro M2000M, Quadro M600M, Quadro M1000M, Quadro M2000M, Quadro NVS 810, Quadro M4000, Quadro M5000, Quadro M6000, Quadro M3000M, Quadro M4000M, Quadro M5000M, Tesla M6 и M60.
Архитектура Pascal: поддержка кодирования HEVC/H.265 Main10 10-бит, 4K UHD HEVC/H.265, 8K HEVC/H.265.
Игровые: GeForce GTX 1050, GeForce GTX 1050 Ti, GeForce GTX 1060, GeForce GTX 1070, GeForce GTX 1070 Ti, GeForce GTX 1080, GeForce GTX 1080 Ti, Nvidia Titan X и Titan Xp.
*Видеокарта GeForce GT 1030 не имеет встроенного блока NVENC.
Профессиональные: Quadro P400, Quadro P600, Quadro P1000, Quadro P2000, Quadro P4000, Quadro P5000, Quadro P6000, Quadro GP100, Tesla P4, Tesla P40, Tesla P100.
В драйверах nVidia убрана возможность CUDA-кодирования (NVCUVENC), осталась только CUDA-декодирование (NVCUVID). NVIDIA CUDA Video Decoder (NVCUVID) – это библиотека, которая предоставляет разработчикам доступ к аппаратным возможностям декодирования видео на NVIDIA GPU с поддержкой CUDA. Аппаратное декодирование осуществляется либо на видеопроцессоре (VP), либо на аппаратном обеспечении с поддержкой CUDA, в зависимости от аппаратных возможностей и кодеков. Библиотека поддерживает следующие форматы видеопотока для платформы Windows: MPEG-2, VC-1 и H.264 (AVCHD).
Первая реализация NVENC кодирования появилась в программах Adobe Premiere Pro CS6 и Media Encoder CS6 (Windows). Для этого необходимо использовать свободно распространяемый плагин NVENC-export. Скачать плагин nvenc_export_v101.zip (объем архива: 2.8 Мбайта), можно на следующей странице: https://docs.google.com/file/d/0B96CRWkNxmWdSElqaDhZOXV6T3M/edit?pli=1.


Adobe Premiere Pro CS6

Требования к железу и софту рабочей станции, для нормального использования NVENC плагина:
1)Видеокарты на чипсетах NVidia GPU Kepler с 1 Гб видеопамяти или более (GTX 650 или выше, GT 650M или выше). Обратите внимание, если у вас включено Mercury Playback Engine GPU Acceleration (CUDA) ускорение, то имейте в виду NVENC-плагин потребляет некоторую дополнительную видеопамять, поскольку он использует ваше GPU для выполнения H.264-кодирования. Поэтому рекомендуется использовать видеокарты с объемом бортовой памяти 2Гб и более.
2)Установить в систему Microsoft Visual C++ 2010 SP1 Redistributable Package (x64) / vcredist_x64.exe. Выбираем: восстановить распространяемые части Microsoft Visual C++ 2010 x64... И нажимаем на кнопку: Далее >


NVIDIA NVENC

По окончании процесса восстановления, нажимаем на кнопку: Готово.

NVIDIA NVENC

Инструкция по установке в Adobe Premiere Pro CS6:
1)Просто копируем файл nvenc_export.prm в следующую директорию: C:\Program Files\Adobe\Adobe Premiere Pro CS6\Plug-ins\Common и C:\Program Files\Adobe\ Adobe Media Encoder CS6\Plug-ins\Common.


NVIDIA NVENC

2)Для выбора NVENC-plugin в Premiere Pro, Ctrl+M и выбираем: Export Settings > Format: NVENC_export.

NVIDIA NVENC

Качество: при использовании средне-высокого битрейта, NVENC кодирование сопоставимо с качеством штатного MainConcept, а при использовании низких битрейтов MainConcept лучше работает с меньшим количеством артефактов.
Как работает плагин: он забирает видеокадры из приложения Adobe Premiere Pro, затем преобразует кадры из несжатых YUV4:2:0 к планарному формату 420planar и далее в NV12-формат (с хост-процессором и системной памяти). После предварительной обработки переформатированное видео передается в nvencodeAPI. И отсюда, аппаратные средства NVENC, и управляют всеми аспектами сжатия видео. Когда NVENC аппаратная обработка будет закончена, он вызывает плагин для вывода отдать элементарные потоки, так как NVENC-аппаратные средства не кодирует ни аудио, ни создает мультиплекс, это по-прежнему осуществляется в программном обеспечении (на хост-процессоре).
Аппаратный блок NVENC имеет очень маленькие процессорные накладные расходы. Но поскольку кодирование видео, это всего один этап на всем пути рендеринга Adobe, загрузка центрального процессора скорее всего будет высокой и при использовании NVENC-плагина.
Максимально поддерживаемй размер кадра и профиль: H264 High-profile @ Level 5.1, 3840x2160 @ 30fps.
NVENC-плагин находится в статусе бета, поэтому многие вещи у него не работают: кодоирование чересстрочного видео (нет поддержки в драйверах nVidia). Аудио поддержка очень ограничена: только несжатое PCM, нет поддержки AAC или Dolby Digital. Мультиплексор, только поддержка MPEG-2 TS за счет использования сторонних инструментов TSMuxer.exe. MPEG-2 TS файлы проигрываются в Windows Media Player (WMP) без звука, так как проигрыватель не поддерживает PCM-аудио в MPEG-2 TS файлах. Нет поддержки MPEG-4 (*. MP4).
NVENC не поддерживает работу в Multi-GPU режиме, просто у нас есть возможность выбрать только одну видеокарту/GPU. Из описаний работы технологии NVENC понятно, что аппаратный блок NVENC одинаков у всех видеокарт Kepler от GTX 650 до Titan/GTX 780, поэтому нет надобности тестить все видеокарты семейства Kepler, достаточно остановиться на одном чипсете семейства. Характеристики Gainward GeForce GTX 660 2048MB GDDR5:


NVIDIA NVENC

Настройки плагина в Export Settings:

NVIDIA NVENC

Закладка Multiplexer, доступен выбор двух контейнеров: TS и None.

NVIDIA NVENC

Закладка Video > Nvidia GPU selection, здесь отображается информация о доступных видеокартах с поддержкой NVENC.

NVIDIA NVENC

Нажимаем на кнопку: NVENC Info.

NVIDIA NVENC

Закладка NVENC Config:
Если на выходе получаем картинку с "блочной" структурой, то устанавливаем для параметра numBFrames значение: 0.


NVIDIA NVENC

Закладка Video codec group с одной доступной кнопкой: Codec Settings.

NVIDIA NVENC

Нажимаем на кнопку: Codec Settings и отобразится информация с настройками видео кодека.

NVIDIA NVENC

Закладка: Sample basic video param group.

NVIDIA NVENC

Закладка Audio, с поддержкой всего одного формата звука: несжатого РСМ, и выбором частоты дискретизации и каналов звука.


NVIDIA NVENC

Загрузка центрального процессора и оперативной памяти, посленяя используется весьма активно.

NVIDIA NVENC

Загрузку GPU видеокарты в утилите GPU-Z надо смотреть не как обычно в строке GPU Load, а в строке для загрузки видео ядра: Video Engine Load. Технология Boost Clock также не активизировалась.


NVIDIA NVENC

1080p25 DSLR клип длительностью 2 минуты и 47 секунд, выводился: 38 секунд. Таблички индикатора статуса всплывают две, первая это основное время, а вторая всего на несколько секунд.


NVIDIA NVENC

Информация (Properties) о полученном видео после рендеринга, которое импортировали в Adobe Premiere Pro CS6:

NVIDIA NVENC

*В версии драйвера NVIDIA GeForce Graphics Driver 378.78 исправлена ошибка: [NVENC][Steam]: NvFBC H.264 ошибка кодирования. [1867544]

Тестирование скорости работы NVENC в Adobe Premiere Pro:


Читаем далее о новых версиях NVENC плагина для Adobe Premiere Pro.

 
Рейтинг@Mail.ru