From 07bddb0ed6a5d2276a10cf77b81e22da2d7c69e6 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 13 Jan 2023 08:11:36 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D0=BE=D0=B8=D0=B3=D1=80=D0=B0=D0=BB=D1=81?= =?utf8?q?=D1=8F=20=D1=81=20AV1=20=D0=B2=D0=B8=D0=B4=D0=B5=D0=BE=D0=BA?= =?utf8?q?=D0=BE=D0=B4=D0=B5=D0=BA=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://netflixtechblog.com/svt-av1-an-open-source-av1-encoder-and-decoder-ad295d9b5ca2 https://gitlab.com/AOMediaCodec/SVT-AV1 https://code.videolan.org/videolan/dav1d Ибо говорили что конкретно этот кодировщик настолько быстр, что сопоставим с HEVC-ом становится. Ну что ж, попробовал. Сразу же упал, на попытке кодирования screencast-а, на том, что кодировщик поддерживает только 4:2:0, никаких 4:4:4. Дальше прямо в примере запуска --help указывается что CRF режим можно использовать в несколько проходов, но... меня тоже сразу же послали что они только для VBR режима. Сравнил с VP9 закодированным эпизодом Рика и Морти (960x540 8bpp), который делался в жирных медленных настройках, в два прохода с CRF=24, а это где-то полтора-два часа на 22мин эпизод. В AV1 указал такой же CRF (шкала у них одинаковая) и по умолчанию preset=10, который кодировал со скоростью на порядок выше чем real-time проигрывание. Плюс распараллелился на все ядра. Размер файла вышел побольше, качество чуть-чуть похуже, но это если всматриваться, не кардинально. Попробовал закодировать с preset=2. Это уже не всегда параллелилось на все ядра, скорость была где-то 3.5 FPS, но это всё равно существенно быстрее чем я пробовал с libaom, в котором у меня фильм бы месяц кодировался. Жрёт под два гигабайта памяти. В итоге: примерно за то же время кодирования, с куда большими возможностями по распараллеливанию, я получаю на 8% меньшего размера файл с ощутимо лучшим качеством картинки (почти не увидел ни одного артефакта вглядывась). В принципе, наверное несколько десятков процентов лучшего качества (или меньшего bitrate) действительно есть. SVT-AV1 прям делает этот кодек полностью юзабельным даже для real-time кодирования с отличным качеством. Прежде я думал что AV1 годен только с аппаратным ускорением. Декодирую я его используя VideoLAN-овский dav1d. Ни в SVT-AV1, ни в dav1d никаких Rust-ов, всё без проблем собирается, интегрируется с FFmpeg-ом. Пока не вижу причин не переходить на него. Весь последний сезон Рика и Морти вот как-раз надо будет перекодировать и там как-раз всем этим кодекам очень не сладко приходилось с этой почти синтетической графикой. -- 2.50.0