Аппаратное декодирование видео что это

FFmpeg практика аппаратного декодирования DXVA2

Привет! Эта статья продолжение моей статьи FFmpeg начало работы Visual Studio. Здесь мы приступим к аппаратному декодированию RTSP-потока FULL HD. Заранее скажу, что с данной задачей легко справится даже Intel ATOM Z8350.

Задача: аппаратное декодирование и запись до 4-х кадров в оперативную память для последующей параллельной обработки (четырьмя ядрами процессора) с IP-камеры RTSP h.264. Обработанные кадры отображаю с помощью функций WinAPI. Как итог мы получим быстродействующую систему для компьютерной обработки RTSP-потока в параллельном режиме. Далее можно подключать алгоритмы Компьютерного зрения для обработки кадров Real Time.

Аппаратное декодирование видео что это. image loader. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-image loader. картинка Аппаратное декодирование видео что это. картинка image loader

Вступление

Зачем нужно аппаратное декодирование? Вы хотите слабым и дешевым процессором декодировать видео реал-тайм или хотите максимально разгрузить процессор, тогда пора знакомиться с аппаратным декодированием.

DirectX Video Acceleration (DXVA) — это API для использования аппаратного ускорения для ускорения обработки видео силами графических процессоров (GPU). DXVA 2.0 позволяет перенаправлять на GPU большее количество операций, включая захват видео и операции обработки видео.

После написания предыдущей статьи мне было задано не мало вопросов: «почему использован именно FFmpeg?» Начну с проблематики. Основная сложность аппаратного декодирования состоит в записи раскодированного кадра в ОЗУ. Для Full HD это 1920 х 1080 х 3 = 6 220 800 байт. Даже с учетом того что кадр хранится в формате NV12 – это тоже немало 1920 x 1080 x 1.5 = 3 110 400 байт. Перезаписывать 75 Мбайт в секунду серьезная задача для любого процессора. Для решения этой задачи Intel добавила команды SSE 4, которые позволяют переписывать данные без участия процессора. К сожалению, не во всех библиотеках это реализовано. Мной были опробованы следующие библиотеки:

OpenCV – для работы с потоком RTSP использует FFmpeg, поэтому решено работать без посредников, т.е. использовать библиотеку FFmpeg. К тому же FFmpeg, который установлен по умолчанию, в OpenCV собран без аппаратного декодирования.

FFmpeg – показала хорошие, на мой взгляд результаты, работает стабильно. Единственный недостаток не реализована работа с WEB-камерами для версии X86 (X64 вроде позволяет работать) в Windows.

Аппаратное декодирование видео — это просто

На самом деле аппаратное декодирование с помощью библиотеки FFmpeg — не сложнее программного. Настройки проекта такие же, как и для программной реализации, блок-схема осталась без изменений.

Вывести на экран список поддерживаемых FFmpeg методов аппаратного декодирования можно

Первое, что нам нужно сделать — это сообщить FFmpeg с помощью какого аппаратного декодера Вы хотите декодировать видео. В моем случае Windows10 + Intel Atom Z8350 оставляют только DXVA2:

Вы же в качестве аппаратного декодера можете выбрать CUDA, D3D11VA, QSV или VAAPI (только Linux). Соответственно у вас должно быть данное аппаратное решение и FFmpeg должен быть собран с его поддержкой.

Получаем информацию о видеопотоке:

Данная функция переписывает декодированный файл в ОЗУ:

Немного о формате NV12

Итак, мы получили кадр в структуру sw_frame. Полученный кадр хранится в формате NV12. Данный формат был придуман Microsoft. Он позволяет хранить информацию о пикселе в 12 бит. Где 8 бит интенсивность, а 4 битами описывается цветность (вернее цветность сразу описывается для 4-х рядом стоящих пикселей 2х2). Причем, sw_frame.data[0] – хранится интенсивность, а в sw_frame.data[1] – хранится цветность. Для перевода из NV-12 в RGB можете воспользоваться следующей функцией:

Хотя работа с NV12 позволяет ускорить выполнение таких процедур, как размывка, Retinex и получение изображения в оттенках серого (просто отбросив цветность). В моих задачах я не перевожу формат NV12 в RGB, так как это занимает дополнительное время.

И так мы научились аппаратно декодировать видеофайлы и выводить их в окно. Познакомились в форматом NV12 и как его преобразовывать в привычный RGB.

Dll аппаратного декодирования

Кадры FFmpeg выдает через 40 мс (при 25 кадрах в секунду). Как правило, обработка кадра Full HD занимает значительно больше времени. Для этого требуется организовать многопоточность, для максимальной загрузки всех 4-х ядер процессора. Я на практике один раз запускаю 6 потоков и больше их не снимаю, что значительно упрощает работу и увеличивает надежность работы программы. Схема работы приведена на рис. 1

Аппаратное декодирование видео что это. image loader. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-image loader. картинка Аппаратное декодирование видео что это. картинка image loader
рис.1 Схема построения многопоточной программы с FFmpeg

Я написал свой декодер в виде *.dll (FFmpegD.DLL) для включения в свои проекты. Это позволяет сократить код-проекта, что повышает понимание кода и включать в любые языки программирования, вплоть до Ассемблера (проверено:) ). С помощью нее мы напишем свой проигрыватель RTSP-потока с IP-камеры.

Для начала работы с DLL нужно передать указатель массив int[13], HANDLE события поступления нового кадра, HANDLE начала обработки нового пакета данных с камеры и массив char адрес камеры.

Структура массива дана в таблице 1.

Аппаратное декодирование видео что это. image loader. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-image loader. картинка Аппаратное декодирование видео что это. картинка image loader

Перед вызовом необходимо обнулить номера кадров 1-4.

DLL выполнит все необходимые действия по инициализации FFmpeg и будет записывать указатели и номера кадров. После установит событие «Поступление нового кадра». Нужно только обрабатывать поступающие кадры и вместо номера кадра записывать 0 (это значит кадр обработан и больше не используется).

Ниже Вы найдете пример проигрывателя с исходным кодом. За основу взят пример ShowDib3 Charles Petzold.

ИТОГ: аппаратный детектор движения FFmpeg даже на Intel Atom Z8350 декодирует h264 Full HD в реальном времени с загрузкой процессора до 20% с подключенный детектором движения.

Пример работы детектора движения на Intel ATOM Z8350. Первые 30 сек идет подсчет фона. После работает детектор движения по методу вычитания фона.

Источник

Аппаратное декодирование

Для поддержки технологии аппаратной поддержки воспроизведения, DirectX Video Acceleration (DXVA), требуются специальные декодеры (например, NVIDIA PureVideo Decoder, CyberLink MPEG2 и H.264 video decoder), и проигрыватели с поддержкой DXVA. На данный момент существуют DXVA-декодеры для аппаратного ускорения MPEG2, WMV, VC-1 и H.264

У разных видеочипов уровень поддержки аппаратного ускорения декодирования видео разный, он зависит от модели карты и установленного чипа. Ранее, некоторые low-end решения были ограничены в поддержке декодирования видео высоких разрешений, но складывается обратная ситуация — что у AMD, что у NVIDIA. Верхние чипы линеек, GeForce и RADEON, не поддерживают всех возможностей, которыми обладают решения среднего и низшего ценовых диапазонов.

Аппаратное ускорение работает не всегда идеально, не со всеми декодерами и типами видеоданных. Так, изначально сразу несколько производителей плееров и декодеров H.264 объявили о поддержке ускорения в решениях. На деле это были, скорее, рекламные заявления, и ускорение H.264 или не работало вовсе или работало кое-как. Например, в своё время на рынке появилась версия PowerDVD 7.0 с поддержкой декодирования H.264, но не работающим аппаратным ускорением, версия того декодера была 1.6.0.1528. При использовании этого декодера ускорение включается, но на деле не работает.

Кроме того, на разных моделях видеокарт одной и той же компании ускорение может работать, а может не работать. Особенно это относится к low-end и mid-end решениям прошлых поколений, таких как GeForce 6600 и RADEON X1300. Бывали случаи, когда при выполнении одинаковой последовательности действий, ускорение включалось на одной карте, но не включалось на другой. Это ещё не все проблемы аппаратного декодирования, так, H.264 декодер CyberLink в DXVA ускоренном режиме всегда отключает деблокинг (удаление артефактов блочности изображения), что хорошо заметно на плавных цветовых переходах. и стоит отметить, что некоторые версии декодеров могли работать в аппаратно ускоренном режиме на видеокартах одного производителя, и не работать на видеокартах другого, в зависимости от версий драйверов.

Источник

Рендеринг с ускорением графического процессора и аппаратное кодирование/декодирование

В этой статье говорится об Adobe Insight (с ускорением графического процессора) и аппаратном декодировании/кодировании (Intel® Quick Sync) в Adobe Premiere Pro и Adobe Media Encoder.

Adobe Premiere Pro и Adobe Media Encoder могут использовать имеющиеся в вашей системе графические процессоры для распределения нагрузки между ЦП и ГП для повышения производительности. В настоящее время большая часть обработки выполняется центральным процессором, а графический процессор помогает в обработке определенных задач и функций.

Модуль рендеринга Mercury Playback Engine (с ускорением графического процессора) используется для рендеринга эффектов и функций с ускорением графического процессора.
Здесь представлен список эффектов с ускорением графического процессора в Adobe Premiere Pro. Чтобы найти эффекты с ускорением графического процессора, перейдите на панель Эффекты и найдите значок «Ускоренные эффекты».

Значок эффектов с ускорением графического процессора

Помимо обработки этих эффектов, Mercury Playback Engine (с ускорением графического процессора) используется для обработки изображений, изменения размеров, преобразования цветового пространства, изменения цвета и многого другого. Он также используется для воспроизведения и очистки временной шкалы и полноэкранного воспроизведения с использованием Mercury Transmit.

Здесь представлен список рекомендуемых графических карт для Adobe Premiere Pro.
Рекомендуется использовать графические процессоры с 4 ГБ видеопамяти, но объем памяти может варьироваться в зависимости от типа работы, выполняемой в Adobe Premiere Pro.

Общие требования к объему видеопамяти:

Для ВР необходим объем видеопамяти не менее 6 ГБ. При работе со стереоскопическими кадрами с более высоким разрешением (например, 8K x 8K), вам может понадобиться больший объем видеопамяти. При использовании графических процессоров NVIDIA убедитесь в том, что установлена последняя версия драйвера, поддерживающая CUDA 9.2.

Важно помнить о том, что покупка более старой видеокарты означает, что поддержка драйверов закончится раньше, чем для новой карты.

Аппаратное декодирование видео что это. set renderer in premierepro.jpg.img. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-set renderer in premierepro.jpg.img. картинка Аппаратное декодирование видео что это. картинка set renderer in premierepro.jpg.img

Установка модуля рендеринга в Adobe Premiere Pro

Аппаратное декодирование видео что это. set renderer in adobemediaencoder.jpg.img. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-set renderer in adobemediaencoder.jpg.img. картинка Аппаратное декодирование видео что это. картинка set renderer in adobemediaencoder.jpg.img

Установка модуля рендеринга в Adobe Media Encoder

В Adobe Media Encoder Модуль рендеринга также можно установить в правом нижнем углу панели Очередь.

Если параметр Mercury Playback Engine GPU Acceleration недоступен после обновления или переустановки Adobe Premiere Pro, выполните чистую установку драйверов графического процессора для решения этой проблемы.

Adobe Premiere Pro использует один графический процессор во время воспроизведения и нескольких графических процессоров для выполнения других задач, таких как Рендеринг точки входа и выхода и экспорт. Можно настроить CrossFire для представления нескольких графических процессоров в качестве одного логического ГП, и в этом случае Adobe Premiere Pro рассматривает его как один графический процессор.

В случае использования конфигурации с несколькими графическими процессорами (отличной от SLI или CrossFire) рекомендуется отключить функцию автоматического переключения графического процессора или графики на основе системы или драйвера.

Модуль Mercury Playback Engine, работающий на выделенном графическом процессоре, не используется для обработки всего, что связано с графическим процессором. Встроенный графический процессор может использоваться для определенных задач, таких как кодирование и декодирование определенных кодеков и действия пользовательского интерфейса, которые могут отображаться при отслеживании использования графического процессора.

Использование графического процессора зависит от нескольких факторов. Использование графического процессора при редактировании или рендеринге может быть максимальным в зависимости от количества используемых эффектов или функций с ускорением графического процессора и его вычислительных возможностей. Таким образом, мощный графический процессор, такой как NVIDIA RTX 2080, может работать быстрее, чем NVIDIA GTX 1060, но при этом показывать менее интенсивное использование. Это происходит потому, что он более мощный и ему может потребоваться меньше аппаратных ресурсов для обработки той же информации, что и NVIDIA GTX 1060 или другим графическим процессорам среднего класса. При использовании нескольких эффектов с ускорением графического процессора интенсивность его работы может сначала быть низкой, но затем увеличиться при использовании большего количества эффектов с ускорением графического процессора.

Это относится только к эффектам VR. Это сообщение появляется, когда у графического процессора недостаточно видеопамяти для обработки эффекта.

Кодирование с аппаратным ускорением

Intel® Quick Sync — это технология Intel®, которая использует специальные возможности обработки мультимедиа Intel® Graphics Technology для быстрого декодирования и кодирования, позволяя процессору выполнять другие задачи и повышать производительность. В настоящее время поддерживается только кодирование с помощью кодеков h.264 и HEVC (h.265). Эта функция доступна только в том случае, если используется процессор Intel® с поддержкой Intel® Quick Sync.

Здесь представлены системные требования для кодирования с аппаратным ускорением.

Включение и отключение аппаратного кодирования зависит от типа используемого процессора Intel®. Если поддерживаемый процессор не используется или технология Intel® Quick Sync отключена в BIOS, этот параметр может быть недоступен.

Чтобы его включить, выберите H.264/ HEVC из раскрывающегося списка форматов в разделе Настройки экспорта. Затем на вкладке Видео перейдите в Настройки кодирования и установите для параметра Производительность значение Аппаратное кодирование. При выборе Программного кодирования отключится аппаратное кодирование и Adobe Premiere Pro не будет использовать Intel® Quick Sync для кодирования медиафайлов (это может увеличить время рендеринга).

Аппаратное декодирование видео что это. enable hardware encoding.jpg.img. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-enable hardware encoding.jpg.img. картинка Аппаратное декодирование видео что это. картинка enable hardware encoding.jpg.img

Включить аппаратное кодирование

При использовании аппаратного кодирования графический процессор может интенсивнее работать на встроенном процессоре Intel®, а не на выделенном ГП.

Поддерживаемые платформы кодеков

Кодирование: H.264/AVC, HEVC 4:2:0 до 4096×4096. Начиная с 10-го поколения процессоров Intel® Core™ и более поздних, кодирование HEVC поддерживается до 8192×8192.

Декодирование: H.264/AVC, HEVC 4:2:0 до 4096×4096 (часть содержимого 8K HEVC работает на процессорах Intel® Core™ 7-го поколения и более поздних)

Чтобы эта функция работала, требуется процессор Intel® с поддержкой Intel® Quick Sync. Проверьте, отвечает ли процессор Intel® требованиям для аппаратного кодирования. Если BIOS вашей системы поддерживает включение и отключение графического процессора Intel®, убедитесь, что он всегда включен, чтобы аппаратное кодирование работало. Некоторые системы, такие как Surface Studio, могут не включать графический процессор Intel®, что может привести к тому, что параметр аппаратного кодирования будет недоступен.

При наличии поддерживаемого ЦП Intel® с включенным ГП Intel® и невозможности использования аппаратного кодирования убедитесь, что ГП Intel® указан на вкладке диспетчера задач «Производительность» (только для Windows®). Если графический процессор Intel® отсутствует в списке, проверьте, включен ли он в диспетчере устройств, и обновите графические драйверы Intel® до последней версии.

Аппаратное декодирование видео что это. task manager devicemanager.jpg.img. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-task manager devicemanager.jpg.img. картинка Аппаратное декодирование видео что это. картинка task manager devicemanager.jpg.img

Графический процессор Intel® указан в диспетчере задач и диспетчере устройств

Источник

Аппаратное ускорение в настройках кодеков для видео

Аппаратное декодирование видео что это. post render. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-post render. картинка Аппаратное декодирование видео что это. картинка post render

Аппаратное ускорение, что такое? Стоит ли включать в настройках кодеков?

Решил установить новый K-Lite Codec Pack на свой компьютер. Всё как обычно: удаляешь предыдущий пакет, скачиваешь с сайта разработчика новый и устанавливаешь путём нажатия заветной кнопки «далее».

В процессе установки возникли вопросы, которые мне показались интересными (основы знал, но решил углубиться):

«Чем отличается аппаратное ускорение в процессе обработки видеопотока от программного? И стоит ли его включать в настройках кодеков?»

Второй момент: «Захотелось узнать про LAV VIDEO — NVIDIA CUVID и DXVA2 NATIVE — второй в контекстном меню выбора пакета кодеков K-Lite Codec Pack (для моей видеокарты GeForce GTX 750Ti). Что это за звери?»
Аппаратное декодирование видео что это. ch install. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-ch install. картинка Аппаратное декодирование видео что это. картинка ch install

Всю информацию, о которой здесь напишу, за малым исключением я почерпнул из хелпа к программе. Если нажать во время установки K-Lite Codec Pack на кнопочку Help в левом нижнем углу, то можно ознакомиться с оригиналом. В английском будучи ни шатко ни валко, попытаюсь передать смысл, пусть и читателям будет понятнее, с чем имеют дело во время настройки данного пункта K-Lite Codec Pack.

Всем известно, что цифровое видео, которое мы смотрим в любом из проигрывателей будь то на компьютере, телевизоре, DVD плеере находится в сжатом виде. Обычно в процессе декодирования цифрового видеопотока участвует центральный процессор (CPU). Такой эффект мы получаем при настройках по-умолчанию.

Если же задействовать аппаратную обработку, то в данный процесс включится видеочип (видеокарта). Это тот же процессор, только специализирован на обработке видеосигнала. В свою очередь включение в процесс декодинга видеокарты очень сильно разгружает центральный процессор.

Когда может возникнуть необходимость включения аппаратной обработки видео? В первую очередь — это очень слабый центральный процессор (или процессор, который постоянно тормозит при просмотре видео). В других случаях включать аппаратную обработку видео не рекомендуется — качество картинки от использования данной опции не станет. Более того, включение аппаратной обработки видео может привести к проблемам во время воспроизведения. Поэтому очень важно следить за актуальностью драйверов для видеокарты.

Пакет кодеков K-Lite Codec Pack 10.x.x имеет возможность работать со следующими типами алгоритмов:

Уже по названию можно определить принадлежность того или иного способа акселерации к конкретному производителю видеочипов. Первые три созданы MicroSoft и работают практически со всеми видеочипами, 4-ый только с чипами NVidia, 5-ый — с чипами Intel (Sandy Bridge, Ivy Bridge, Haswell и новее). При этом 1-ый и второй отличается тем, что старший (1) для Windows XP, второй — для Vista и выше).

Источник

Аппаратное декодирование

Про совместное использование нескольких видеокарт в программе Adobe Premiere Pro CC на сайте выложено много материала, но количество вопросов не снижается. Очередная попытка кратко объяснить как всё это работает и как настроить совместную работу нескольких видеокарт в версии программы Adobe Premiere Pro CC 2020.
Какое количество видеокарт в работе поддерживает программа Adobe Premiere Pro CC 2020?
Ответ: 6 видеокарт. Они распределяются следующим образом:
— Одна интегрированная видеокарта процессора Intel Core.
— Одна видеокарта которая будет отвечать за интерфейс (т.е. работу OpenGL) с отключенным движком CUDA/OpenCL.
— И четыре видеокарты могут работать в Multi-GPU режиме. Т.е. выполнять CUDA/OpenCL вычисления.
Можно ли для аппаратного декодирования использовать интегрированную видеокарту APU процессоров AMD?
Ответ: нет. Не подходят ни интегрированные видеокарты от AMD, ни распаянные видеокарты от ASPEED и т.д. Так как аппаратное декодирование использует Intel Media SDK и технологию Intel Quick Sync Video.
У меня стоит дискретная видеокарта, почему в настройках экспорта пункт «С аппаратным ускорением (Hardware Accelerated)» неактивен?

Аппаратное декодирование видео что это. Hardware Accelerated. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-Hardware Accelerated. картинка Аппаратное декодирование видео что это. картинка Hardware Accelerated

Ответ: аппаратное кодирование, как и декодирование, использует Intel Media SDK и технологию Intel Quick Sync Video и работает только на интегрированных видеокартах процессоров Intel Core. Для аппаратного кодирования с помощью дискретных видеокарт, необходимо использовать сторонние плагины.
*В версии программы Adobe Premiere Pro CC 2020 (v14.2) и выше, добавили аппаратное кодирование на дискретных видеокартах AMD и NVIDIA.
Теперь рассмотрим как включить и настроить типичную работу интегрированной видеокарты (iGPU) и дискретной видеокартой в программе Adobe Premiere Pro CC 2020.
Если у нас ноутбук, то две видеокарты по-умолчанию активны, и автоматически переключаются в зависимости от запущенного приложения. Есть и исключения, например: Lenovo Legion Y540-15IRH.
Если у нас ПК, то необходимо в BIOS включить интегрированную видеокарту для совместной работы с дискретной. Подключить монитор к дискретной видеокарте (чтобы она была главной и отвечала за OpenGL). Подробнее о настройках BIOS и подключении читаем здесь.
В систему необходимо поставить драйвера для интегрированной видеокарты, скачанные с официального сайта. После этого утилита GPU-Z видить интегрированную видеокарту, отображать актуальный драйвер (а не дефолтный операционной системы) и должна стоять галка перед пунктом OpenCL.

Аппаратное декодирование видео что это. 001. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-001. картинка Аппаратное декодирование видео что это. картинка 001

При запуске программы Adobe Premiere Pro CC 2020 может появиться окно System Compatibility Report (Отчёт о совместимости системы), которое проинформирует, если версия драйвера для интегрированной видеокарты ниже рекомендованной.

Аппаратное декодирование видео что это. 002. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-002. картинка Аппаратное декодирование видео что это. картинка 002

*Отключить это окно можно в настройках Общие (General), сняв галку перед пунктом Показать проблемы с совместимостью с системой при запуске (Show system compatibility issues at startup).
После запуска программы в настройках проекта доступно для выбора два аппаратных движка Mercury Playback Engine GPU Acceleration: CUDA и OpenCL. За последний отвечает интегрированная видеокарта, так как OpenCL ускорение для видеокарт nVidia было заблокировано в предыдущих версиях программы.

Аппаратное декодирование видео что это. 003. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-003. картинка Аппаратное декодирование видео что это. картинка 003

Теперь необходимо включить аппаратное декодирование с помощью интегрированной видеокарты в настройках программы. Выполняем команду: Изменить > Установки > Медиаконтент (Edit > Preferences > Media).
И проверяем наличие галки перед пунктом Включить декодирование с аппаратным ускорением (требуется перезапуск) / Enable hardware accelerated decoding (requires restart).
*В более поздних обновлениях эта команда стала называться: Включить аппаратное кодирование и декодирование с ускорением (требуется перезапуск) / Enable hardware accelerated encoding and decoding (requires restart).
Если галки нет, то ставим её и перезагружаем Adobe Premiere Pro CC 2020, чтобы изменения вступили в силу:

Аппаратное декодирование видео что это. 004. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-004. картинка Аппаратное декодирование видео что это. картинка 004

Теперь запускаем утилиту GPUSniffer и проверяем, чтобы дискретная видеокарта отвечала за OpenGL (т.е. была главной в системе, так как к ней подключён монитор/ы).
И в разделе GPU Computation Info была прописана интегрированная видеокарта, и не было никаких примечаний с * в начале.

Аппаратное декодирование видео что это. 005. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-005. картинка Аппаратное декодирование видео что это. картинка 005

Теперь переходим к видео на таймлайне, интегрированная видеокарта поддерживает аппаратное декодирование только форматов: H.264 и H.265 (HEVC). Но также на аппаратное декодирование может влиять частота кадров, величина битрейта и цветовая выборка. Например, нет поддержки декодирования видео H.264/HEVC с цветовой выборкой 422:

Цветовую выборку 422 аппаратно не могут декодировать и дискретные видеокарты, исключение это новая интегрированная графика Gen11 и Gen12 Xe, которая используется в 10-нм мобильных процессорах Intel Core 10-го и 11-го поколения Intel Ice Lake-U и Intel Tiger Lake-U. Но, только для H.265/HEVC видео.
10-битное H.265/HEVC видео с цветовой выборкой 4:2:2 снимают следующие камеры: Sony A7S III, Canon EOS R5, Canon EOS R6 и т.д.
Поэтому на видео которое собираемся декодировать на таймлайне, нажимаем правую кнопку мыши и выбираем Свойства (Properties). И проверяем его характеристики и можно ли такое видео аппаратно декодировать.

Аппаратное декодирование видео что это. 006. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-006. картинка Аппаратное декодирование видео что это. картинка 006

Аппаратное декодирование видео что это. 007. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-007. картинка Аппаратное декодирование видео что это. картинка 007

Проверяем чтобы штатный декодер ImporterMPEG работает аппаратно. В панели Debug Monitor (Ctrl+Alt+F12) в закладке ImporterMPEG следим за работой аппаратного ускорения (декодирования видео), кадры должны бежать напротив пункта HW Frames Decompressed.
*Если при нажатии комбинации клавиш Ctrl+Alt+F12 ничего не происходит, то читаем пункт 2.

Аппаратное декодирование видео что это. 008. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-008. картинка Аппаратное декодирование видео что это. картинка 008

Иногда аппаратное декодирование может включаться и на старых, не поддерживаемых интегрированных видеокартах. Как пример: Intel HD Graphics 4600. Утилита GPUSniffer показывает, что всё активно:

Аппаратное декодирование видео что это. 009. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-009. картинка Аппаратное декодирование видео что это. картинка 009

HW Frames Decompressed работает:

Аппаратное декодирование видео что это. 010. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-010. картинка Аппаратное декодирование видео что это. картинка 010

На ноутбуке был установлен драйвер Intel Graphics версии 20.19.15.4549.

Аппаратное декодирование видео что это. 011. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-011. картинка Аппаратное декодирование видео что это. картинка 011

*В версии программы Adobe Premiere Pro CC 2020 работают почти все старые интегрированные видеокарты (iGPU), начиная с Intel HD Graphics 4000 (Ivy Bridge).
Предпринимались различные попытки разобраться, что влияет на активацию интеграшки. Но отследить закономрености не удалось.
Для справки аналогичное ускорение в версии программы Adobe Premiere Elements 2020 работает с графикой Intel HD Graphics 2000 и выше. А для программа Adobe Premiere Pro CC это процессоры Broadwell (Intel Core 5-го поколения).
А аппаратное декодирование HEVC видео, было добавлено в процессоры Skylake (Intel Core 6-го поколения).
Есть ли аппаратное декодирование H.264 и HEVC видео с помощью дискретных видеокарт?
На данный момент для версии Adobe Premiere Pro 2020 (v14.3) нет такой штатной возможности. Но, есть бесплатный плагин Cinegy TurboCut который позволяет на видеокартах Nvidia с чипсетами Pascal/Turing реализовать аппаратное декодирование видео в программе Adobe Premiere Pro 2020.
*Также в Adobe Premiere Pro 2020 v14.3.2.20 Beta добавлены команды для активации штатного аппаратного декодирования видео на дискретных видеокартах AMD и Nvidia. Это следующие команды: ImporterMPEG.Feature.Enable_AMD_Decode, ImporterMPEG.Feature.Enable_AMD_Decode_Reset и ImporterMPEG.Feature.Enable_Nvidia_Decode.

Аппаратное декодирование видео что это. Enable Nvidia Decode. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-Enable Nvidia Decode. картинка Аппаратное декодирование видео что это. картинка Enable Nvidia Decode

Появилось окно Ожидание медиаданных, что делать?
Ожидание медиаданных (Media pending) может появиться при смене декодеров, или смене режимов декодирования.
Вот стандартный декодер для работы с 4K UHD H.264 видео, PF: YUV 420 MPEG4 Frame BiPlanar 8u 709 ImporterMPEG.

Аппаратное декодирование видео что это. 001. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-001. картинка Аппаратное декодирование видео что это. картинка 001

Идём в Консоль и активируем пункт: DS.ForceCPUOnly.

Аппаратное декодирование видео что это. 002. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-002. картинка Аппаратное декодирование видео что это. картинка 002

В настройках проекта получаем серое поле, Средство рендеринга: Только программное ускорение ядра Mercury Playback.

Аппаратное декодирование видео что это. 003. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-003. картинка Аппаратное декодирование видео что это. картинка 003

Движок сменится на Software Render System, но PF: останется прежним YUV 420 MPEG4 Frame BiPlanar 8u 709 ImporterMPEG.

Аппаратное декодирование видео что это. 004. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-004. картинка Аппаратное декодирование видео что это. картинка 004

Теперь в Консоли активируем пункт: GF.DisableAcceleratedDisplay.

Аппаратное декодирование видео что это. 005. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-005. картинка Аппаратное декодирование видео что это. картинка 005

Сменился и движок, на: GPU Mercury Playback (CUDA) и декодер, на следующий PF: VUYA 4444 8u 709. Но, картинка в окне Программа отображается.

Аппаратное декодирование видео что это. 006. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-006. картинка Аппаратное декодирование видео что это. картинка 006

Теперь наоборот, не устанавливаем, а снимаем в Console (Консоль) галку напротив пункта ImporterMPEG.UseBiPlanarPixelFormat_8b.

Аппаратное декодирование видео что это. 007. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-007. картинка Аппаратное декодирование видео что это. картинка 007

И получаем жёлтое окно: Ожидание медиаданных (Media pending).

Аппаратное декодирование видео что это. 008. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-008. картинка Аппаратное декодирование видео что это. картинка 008

Аппаратное декодирование видео что это. 009. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-009. картинка Аппаратное декодирование видео что это. картинка 009

CUDA Render System и PF: YUV 420 MPEG4 8U 709 ImporterMPEG.

Аппаратное декодирование видео что это. 010. Аппаратное декодирование видео что это фото. Аппаратное декодирование видео что это-010. картинка Аппаратное декодирование видео что это. картинка 010

.
Установка драйверов для интегрированной графики.
Убираем лаги при воспроизведении таймлайна.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *