Результаты тестов 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. Для остальных разница ещё меньше.

A380 H264 veryslow vs veryfast, BDBR, VMAF

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

A380 H264 bitrate ratio, 1080

Хотя такая картина проявляется практически у всех железных кодеков.

libx264

Сравним с «эталоном», libx264, пресет slow.

H264 QSV veryslow vs lixb264 slow, BDBR, VMAF

В принципе, ничего неожиданного. Проигрыш по битрейту в пределах 7% — 11% по основным размерам кадров. Что, в общем, неплохо.

А что там с NVENC?

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

H264 QSV veryslow vs H264 NVENC p4, BDBR, VMAF

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

H264 QSV veryslow vs H264 NVENC p1, BDBR, VMAF

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

H264 QSV veryslow vs H264 NVENC p7, BDBR, VMAF

AV1

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

AV1 QSV veryslow vs H264 QSV veryslow, BDBR, VMAF

А вот и обещанные 50% — только на 4K. А самый большой выигрыш во впечатляющие 83% вы получите на такой «тяжёлой» сцене с множеством двигающихся объектов.

Tears of Steal, action scene

А что там с NVENC?

Сразу хочу уточнить, что данные значения получены при использовании NVENC 9 поколения, т.е. GPU NVidia Blackwell. 8 поколение (Ada) вроде немного хуже. Но насколько именно ещё предстоит выяснить.

Если сравнивать по максимальным пресетам, то QSV понадобится в районе 9% — 13% больше битрейта, чтобы кодировать с таким же качеством как и NVENC.


LibAOM

При использовании «быстрого» пресета 8 libaom-av1 QSV проигрывает 13% — 22% по основным размерам кадра.

QSV AV1 slower vs libaom-av1 -cpu-used 8

При сравнении с более медленным и качественным 4, QSV проигрывает немного больше — от 20% до 26%:

QSV AV1 slower vs libaom-av1 -cpu-used 4

Интересно отметить, что самые большие сложности с контролем битрейта у QSV AV1 проявляются на сцене из мультфильма Sol Levante

Netflix Sol Levante, animation

и сцене с водопадом

Harmonic Waterfall

На сцене мультфильма 4K 3 Мбит/с является пределом для QSV, ниже которого он сильно завышает битрейт — более, чем в 2 раза. И по всему диапазону битрейтов наблюдается завышение порядка 15%. LibAOM при этом держит соотношение близкое к 1 начиная с 2,3 Мбит/с.

bitrate control: QSV AV1 slower vs libaom-av1 -cpu-used 8, Netflix Sol Levante fragment

На водопаде завышение ещё больше — порядка 30% на всём диапазоне и в 2,3x на самом низком битрейте. У софтверного кодека соотношение необходимого битрейта к реальному близко к 1 (занижение в пределах 1%) начиная с 2,3 Мбит/с:

bitrate control: QSV AV1 slower vs libaom-av1 -cpu-used 8, Harmonic Snow Monkeys, waterfall fragment

SVT-AV1

При сравнении с более быстрым пресетом 7 у кодека QSV AV1 меньше отставания, чем от libaom. Т.е. от 4% до 7% на основных размерах кадра.

QSV AV1 slower vs SVT-AV1, preset 7

А с пресетом 3 отставание больше — в районе 17% — 18%.

QSV AV1 slower vs SVT-AV1, preset 3

По контролю битрейта SVT-AV1 работает немного хуже на низких битрейтах, завышая на сцене с водопадом аж 3 раза. Но начиная с 3,7 Мбит/с для 4K превышение битрейта в пределах 7% (у QSV — 30%).

bitrate control: QSV AV1 slower vs SVT-AV1 preset 3, Harmonic Snow Monkeys, waterfall fragment

RKMPP

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

За кадром осталось сравнение по скорости кодирования и энергопотреблении. Надеюсь дополнить в скором времени…

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

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