Будущее видеокодеков уже здесь
Не смотря на то, что кодеку H.264 уже больше 15 лет, подавляющее большинство видеоконтента на данный момент сжато именно в этом формате: youtube, потоковое вещание, цифровые камеры и т.д. Постепенно набирают обороты современные H.265 и VP9. Но всё это вчерашний день по сравнению с передовым кодеком AV1. Было бы скучно приводить на Пикабу численную аналитику качества сжатия по PSNR и SSIM, поэтому наглядно продемонстрирую результаты работы AV1.
В качестве подопытного видео была выбрана короткометражка Tears of steel от команды Blender в lossless формате (1920x800, png, 30 Гб). Фильм был сжат в четырех форматах: AV1, VP9, H.265, H.264 с битрейтом 700 kbps и тюнингом на максимальное качество (veryslow). Далее привожу сравнение нескольких кадров.
Результаты впечатляют. AV1 практически не мылит картинку и не искажает геометрию, в отличие от остальных кодеков. А теперь объясню почему был выбран именно такой битрейт. Дело в том, что в паре с аудиокодеком Opus, фильм длительностью 90 минут будет иметь размер 500 Мб в FullHD разрешении! А качество будет гораздо лучше, чем H.264 двукратно большего размера. Помимо этого, AV1 является открытым форматом, свободным от лицензионных отчислений и разрабатываемым большим альянсом компаний, включая Google, Intel, Apple, Netflix и др.
А теперь ложка дёгтя. Каждое следующее поколение кодеков требует всё больше вычислительных ресурсов. Грубо говоря, в цепочке H.264 - H.265 - VP9 - AV1 каждый следующий кодек кодирует в 5 раз медленнее предыдущего. Текущей версии AV1 нужно около 200 процессорных ядер для кодирования в реальном времени. Однако, стандарт AV1 был заморожен в середине 2018, поэтому будет идти работа над оптимизацией библиотек, а к концу 2019 можно ожидать появления первых устройств с аппаратной поддержкой AV1. Так что с мечтами упаковать 2000 фильмов на свой терабайтник придётся годик повременить.
Данную короткометражку длиной 12:14 в формате AV1 можно скачать отсюда (57.6 Мб, AV1 653 kbps, Opus 61 kbps). Для просмотра подойдут Chrome, Firefox (в Firefox нужно открыть about:config и изменить параметр media.av1.enabled на true) или VLC nightly версии (у VLC артефакты декодирования).
P.S. GPU не рассматривался, поскольку качество nvenc оставляет желать лучшего и подходит скорее для стрима, чем для видеоархива.
Пишите в комментариях, если хотите обзор новейших кодеков для аудио и изображений, или больше подробностей об интересных алгоритмах их работы.