Главная | Информация | Аппаратное декодирование h264/HEVC видео в Adobe Premiere
Аппаратное декодирование h264/HEVC видео в Adobe Premiere
актуально на 03.2023
В недалеком прошлом была частая проблема, когда при монтаже слабый центральный процессор не успевал декодировать исходное видео, например, i3 и тяжело сжатое видео с битрейтом 50-100-200 mbps. В то же время, многие плееры легко проигрывают такое видео, загружая процессор на 1-2%.
Windows на уровне системы поддерживает аппаратное воспроизведение видео с момента появления такого функционала на видеокартах, но Premiere стал использовать это не сразу. На практике в прошлом для Premeire были аппаратные решения в виде специальных плат (например Canopus DV Storm, Red Rocket), которые интегрировались с Премьером, брали на себя декодирование, чем обеспечивали очень плавную, комфортную работу на таймлане при работе со своими для этих карт форматами. В настоящее время эти задачи решаются видеокартами.
С началом массового внедрения форматов h264 и h265 производители видеокарт разработали специальные блоки на кристалле, которые занимаются только декодированием видео. У NVidia это NVDEC (Pure Video) декодирующее MPEG-1/2, VC-1/WMV9, Divx/Xvid, H.264, HEVC, VP9, AV1; у AMD это Unified Video Decoder декодирующий H.264, VC-1, MPEG-2 и Divx/Xvid: у Intel это блок универсального кодера/декодера Quick Sync Video на процессорах со встроенным видео. Блок декодирует форматы MPEG-2, H.264, VC-1, JPEG, VP8, HEVC, VP9, AV1.
Как видно, среди поддерживаемых форматов есть очень тяжёлые, с межкадровым сжатием, когда чтобы добраться до определенного кадра, надо сначала раскодировать 10, 20 и более предыдущих кадров. Если всю работу по декодированию делаеть на процессоре, то в мало-мальски сложных проектах никакой производительности не хватит.
Штатные средства Adobe Premiere
Начиная с версии 2015.3 появилось аппаратное декодирование для процессоров Intel с Quick Sync Video.
В бета версии 14.5 это работает и для NVidia.
Включается в панели настроек, после чего программу надо перезапустить:
В Media Encoder QSV декодирование включается также в панели настроек.
Контролировать, что аппаратное декодирование реально работает, можно в GPU-Z, диспетчере задач Win10 или прямо в премьере: в панели Debug Monitor, которую можно вызвать при помощи Ctrl+Alt+F12 (строка HW Frames Decompressed)
Плагин Cinegy Turbocut (Daniel2)
Плагин имел возможность использовать видеокарты NVidia для аппаратного декодирования, путем замены собой ImporterMPEG. С появлением новых версий Премьера, этот функционал потерял смысл и в текущий момент выпилен из плагина. Подробнее здесь.
Подводные камни и ограничения
В AP 2015 при включении декодирования поступало много жалоб на красный кадр вместо видео, были жалобы, что это работает медленнее программного декодирования, с версии AP 2017 эти ошибки исправлены. Но будьте осторожны в любом случае. Если у вас на видео появились странные цветовые искажения в зеленый или фиолетовый цвет, то попробуйте оключить аппаратное декодирование и найди правильные (не обязательно последние) драйвера для видеокарты Intel. Если блок QSV или не самая новая версия Премьера, не поддерживает продвинутые разновидности формата (10-бит, 422, 4K, HEVC в разных комбинациях), то декодер автоматически переключается в программный режим.
С HEVC форматом iphone x и 11 тоже есть особенность, аппаратный декодер их проигрывает нормально, в программном видео начинаем перепргивать взад-вперед. Если аппаратный декодер вдруг не справляется (на вашей версии QSV/NVidia отсутствует поддержка hevc, 4K hevc), то включается программный декодер, и при проигрывании на таймлайне и при экспорте картинка замирает, перепрыгивает на начало или на случайный кадр, и при экспорте всё это сохраняется. В общем, если работает программный декодер ImporterMPEG, то монтировать невозможно. Эта проблема существует и в 2019 и 2020. Нужно перекодировать или установить Премьер 2021, где эта проблема решена.
BiPlanar видео и AVCHD MTS файлы
Для QSV декодера в Премьере, в служебных настройках Debug Database появились ряд опций связанных с BiPlanar вариантом h264/hevc видео. Если включить клавишами Ctrl+Shift+11 отображение служебной информации при проигрывании, то можно увидеть эту и другую информацию. Если отображается BiPlanar а картинки нет или есть многосекундные задержки, то в этом случае можно попробовать отключить этот режим (ImporterMPEG.UseBiPlanarPixelFormat_8b = false). И наоборот, если материал с какой-то камеры не проигрывается включить его (ImporterMPEG.UseBiPlanarPixelFormat_8b = true). По умолчанию BiPlanar включен (хотя в разных версиях премьера настройки могут быть изменены), и для совместимости с материалом с видеокамер AVCHS (MTS) в Debug Database предусмотрена отдельная опция ImporterMPEG.disable_MTS_hwdec = true, которая отключает аппаратное декодирование только для этих файлов. Если вы работаете только с MTS, то можно выключить ImporterMPEG.disable_MTS_hwdec и выключить ImporterMPEG.UseBiPlanarPixelFormat_8b и наслаждаться работой с аппаратным декодированием. Если у вас смешанный BiPlanar и не BiPlanar материал, то разумнее вернуться к настройкам по умолчанию - AVCHD видео процессору декодировать сравнительно несложно и разница в производительности будет невелика.
QSV декодирование и NVidia
Может встать вопрос: "Хочу вместе с Intel h.264 декодированием успользовать свою видеокарту NVidia, как быть ?". Это возможно, блок кодирования/декодирования видео QSV работает на процессоре параллельно и независимо от видеокарты.
QSV декодирует кадр, после чего тот передается на видеокарту NVIdia, AMD или интергрированную Intel, в зависимости от вашей конфигурации и от того что активно в Премьере, для дальнейшей обработки.
Декодирование видеокартами NVidia
Декодирование h264/hevc с NVidia появилось начиная с премьера 2020, но работало оно своеобразно: на длинных проектах, час и более, воспроизведение начинало заметно подтормаживать, при экспорте загрузка блока nvdec быстро падала, само время экспорта росло. В результате, при отключение аппаратного декодирование проект экспортируется в 3-4 раза быстрее чем со включеным декодером nvdec.
В версии 2021, nvdec нормально работает на таймлайне, но при экспорте он не используется (отключен программистами Adobe). В целом наиболее приемлимая версия Премьера для работы с NVidia.
Поступают сигналы что в версии 2022 аппаратное декодирование NVidia просто не работает ни на таймлайне, ни при экспорте.
В 2023, вроде работает всё, но не у всех - жалоб пользователей на общую нестабильность меньше не становится.
HEVC
Коптеры DJI, GoPro 6+, iphone 8+ и многие модели фотоаппаратов м камер 2019 года записывают видео в формате h.265, поможет аппаратное декодирование intel в этом случае ?
Возможность использовать аппаратное декодирование h.265/HEVC появилась начиная с версии 2018.1. В более ранних версиях этот функционал QSV не используется. У видео с телефонов, если битрейт невысокий, то оно успешно обрабатывается процессором, при больших битрейтах становится востребованным аппаратное декодирование. Если ваш процессор не имеет блока QSV (некоторые Xeon, AMD), то можно или работать с proxy (формат с которым легко работать на таймлайне и который при экспорте заменяется на оригинальные файлы), или перекодировать материал в монтажный кодек Cineform/ProRes/DNxHD - форматы оптимизированные для монтажа (как правило они занимаю очень много места на диске).
AV1
Архитектура видеоадаптеров Intel ARC принесла поддержку кодирования и декодирования формата AV1, обеспечивающего лучшее качество и меньший размер чем x264 slow.
На настоящий момент эти видеокарты в Премьере не поддержаны.
Производительность
Принципиальный выигрыш QSV декодирование дает на слабых системах и на тяжелом материале, когда процессор загружается на 50-100% при проигрывании таймлайна без эффектов. Для AVCHD материала в Премьере вообще принудительно включено программное декодирование.
На быстрых системах влияние может быть незначительным, но и в этом случае аппаратное декодирование может косвенно ускорить работу и экспорт на проектах с эффектами средней тяжести за счет разгрузки центрального процессора для работы с эффектами.
Например: i8700K (630я интеловская графика)/4.2 ГГц проект длительностью 1 час 39 мин с наложенными люметри и CPU-интенсивными эффектами, экспорт через кодировщик voukoder: с включенным qsv декодированием идёт 41 минуту, с программным декодированием - 1 час 10 минут.
Не все процессоры с QSV одинаковы и QSV это не магия. Первые поколения были медленные, потом быстрее и быстрее, так производительность блока QSV на KabyLake при декодировании достигает 8 потоков AVC видео 4Kp30 или 1 поток HEVC 4Kp60. Теоретически это позволяет делать многокамерный монтаж 4К из h.264 исходников. У более ранних процессоров производительность кратно ниже, но её гарантированно хватит на один поток 4К. Линия NVidia NVDEC обладает схожей производительностью - 10 потоков h264 4Kp30 у поколения Turing и кратно меньше у более ранних чипсетов.
Если на таймлайне лежит видео HEVC 4k 60 fps и длинным gop (iphone 11), то проигрываться оно будет нормально, но при перемещении плайхеда по таймлайну будут большие или меньшие задержки.
Как пример на картинке ниже: nvdec первого поколения (Kepler) почти полностью загружен при проигрывании всего одного потока 4K30 h264 видео.
Особый случай
Современные многоядерные процессоры Ryzen и Intel могут декодировать видео быстрее видеокарты, особенно если она не самая свежая и мощная, поэтому в случае отсутствия обработки видео на таймлайне с помощью gpu эффектов, можно отключить Mercury Playback Engine GPU Acceleration в Премьере и QSV декодирование и ускорить работу. Это особенности Premiere CC 2019+: Премьер сложнее плееров, и при импорте кадра, кроме QSV декодирования он выполняет ряд операций на центральном процессоре, начиная с СС 2019 одна из них, преобразование формата цвета во внутренний рабочий формат, сделана на ядрах GPU. При отказе от GPU обработки этот этап пропускается, Премьер работает с даными без преобразований и весь процесс ускоряется в разы. Можно просто сделать тестовый экспорт типичного для вас материала, с отключенным ускорением и со включеным, и сравнить результат.