Результаты тестов Intel A380
Рассмотрим как кодирует Intel на современных картах.
Предыдущий опыт меня совсем не впечатлил, начиная с сборки исходников и подготовки к кодированию вообще. На такую, казалось бы, простую задачу уходило неприлично много времени. Вплоть до привлечения системных программистов, чтобы вообще заставить хоть как-то работать MFX.
Относительно недавняя проба платформы N100 показала немногим более хорошую картину. Собрать FFMPEG с поддержкой QSV, чтобы он адекватно кодировал не удалось (неадекватность проявлялась в практически неуправляемом битрейте). Но зато утилита кодирования из SDK давала на удивление стабильные результаты. И качество сжатия видео Н264 удалось оценить.
Сейчас ситуация с дискретной картой и новым кодом приятно удивила целых два раза и один раз «не разочаровала». В кавычках, потому что запустить кодек HEVC так и не удалось. Поэтому будем рассматривать то, что было приятным. Т.е. H264 и AV1.
Перед тем, как перейти к графикам хочу обратить внимание, что набор тестовых видео отличается от того, какой используют сами компании, производящие видеокарты. Сделано это осознанно, чтобы показать как работают кодеки при определённых условиях, на «неудобных» сценах. В рекламных проспектах компаний вы скорее всего найдёте больший разброс в качестве при сравнении с конкурентами.
Что именно выбрано в качестве тестовых фрагментов можно найти здесь — https://www.vmetrix.tech/ru/metodologiya/. Параметры кодирования здесь — https://www.vmetrix.tech/ru/encode-parameters-ru/.
Агрегированные метрики BDBR — https://vmetrix.tech:3000/d/ads7nhh/bd-br-aggregated
RD Curves — https://vmetrix.tech:3000/d/adrgpg7/rd-curves
H264
Сравнение сам с собой. Здесь и далее усреднённые значения BDBR VMAF по всем видео (напомню, что отрицательный BDBR это хорошо, положительный — плохо).
Пресеты veryslow vs veryfast. Да, выигрыш есть. В лучшем случае около 1% битрейта — для самых маленьких видео 144p. Для остальных разница ещё меньше.

Не пытайтесь кодировать на низких битрейтах, так как кодек решит всё равно его задрать. Характерная картина на следующем графике. При целевом битрейте 461К для 1080p на выходе в 1.5 больше.

Хотя такая картина проявляется практически у всех железных кодеков.
Сравним с «эталоном», libx264, пресет slow.

В принципе, ничего неожиданного. Проигрыш по битрейту в пределах 7% — 11% по основным размерам кадров. Что, в общем, неплохо.
А что там с NVENC?
Пресет veryslow слегка хуже, чем H264 NVENC p4, т.е. порядка 2% — 5% по основным размерам кадра. Однако для 4К даже есть небольшой выигрыш.

Если же сравнивать с самым быстрым пресетом, то выигрыш составит порядка 22% — 25%.

С самым качественным p7 — проигрыш до 10%. Но на «ходовых» размерах кадра до 7%. Что, в принципе, неплохо.

AV1
Сначала посмотрим насколько он лучше своей же реализации H264.

А вот и обещанные 50% — только на 4K. А самый большой выигрыш во впечатляющие 83% вы получите на такой «тяжёлой» сцене с множеством двигающихся объектов.
А что там с NVENC?
Сразу хочу уточнить, что данные значения получены при использовании NVENC 9 поколения, т.е. GPU NVidia Blackwell. 8 поколение (Ada) вроде немного хуже. Но насколько именно ещё предстоит выяснить.
Если сравнивать по максимальным пресетам, то QSV понадобится в районе 9% — 13% больше битрейта, чтобы кодировать с таким же качеством как и NVENC.

И завершающий аккорд — сравнение с H264 RK3588 (он не умеет в b-frame’ы), извините…

За кадром осталось сравнение с софтверными кодеками AV1, такими как SVTAV1 и libaom. А также сравнение по скорости кодирования и энергопотреблении. Надеюсь дополнить в скором времени…
Leave a Reply