Кодеки новой эпохи: HEVC, AV1, VVC и нейросети
Сжатие с учётом контекста, источник: WaveOne (сайт удалён)
Хотя новые стандарты кодеков появляются каждые десять лет, все они основаны на пиксельной математике — манипулировании значениями отдельных пикселей в видеокадре для удаления информации, не важной для восприятия. Другие математические операции уменьшают объём данных после первоначального кодирования.
В новом поколении кодеков алгоритмы машинного обучения используются для анализа и понимания визуального содержания видео, выявления избыточных данных и более эффективного сжатия. Вместо написанных вручную алгоритмов, тут применяют методы Software 2.0, основанные на обучении. Данная область развивается на протяжении десятилетий, но в последние годы получила сильный толчок. Все знают, что в 2017 году произошёл прорыв в разработке ИИ благодаря изобретению трансформеров. В свою очередь, они основаны на концепции внимания, которую придумали в 90-е. Эта техника впервые позволила соотносить друг с другом отдельные части текста или видеокадра.
Нейросеть при сжатии кадра видит его целиком и распознаёт объекты, в то время как традиционные кодеры работают на уровне макроблоков или фрагментов. Благодаря изобретению внимания, нейросеть получила «понимание» общей структуры входных данных, возможность уделять больше внимания одним частям и игнорировать другие. Это был качественный переход, результаты которого начинают появляться сейчас.
▍ Традиционные кодеки
Примечание. «Традиционные» не означает «устаревшие». На данный момент именно традиционные кодеки обеспечивают самое эффективное сжатие видео, причём с каждым новым кодеком коэффициент сжатия возрастает на десятки процентов. Нейросетевые кодеки (о них ниже) пока не доказали своё качество настолько, чтобы уверенно признавать будущее за ними. Пока что наилучший результат по качеству (PSNR) показывают гибридные модели — традиционные кодеки с нейросетевыми улучшениями, такие как NeutronStar и Night-Watch с декодерами по 100−300 МБ.
Кодек H.264 (AVC) отлично служил нам 20 лет, а благодаря свободной библиотеке OpenH264 кто угодно может его использовать без всяких условий и роялти. Но пришло время посмотреть на более современные альтернативы:
- H.265 (HEVC) — официальный наследник AVC пока не получил большого распространения на популярных платформах из-за необходимости платить лицензионные отчисления. Свободные проекты типа Firefox намеренно отказываются от его поддержки примерно по той же причине. HEVC разработан десять лет назад и уже рассматривается как кандидат на списание в утиль, так и не взлетев.
- AOMedia Video 1 (AV1) — свободная альтернатива HEVC, которую выпустил в 2018 году консорциум компаний во главе с Google в качестве замены предыдущему свободному кодеку VP9.
- H.266 (VVC), Versatile Video Coding — новый стандарт сжатия, опубликованный в июле 2020 года. Вычислительная сложность сжатия увеличилась в несколько раз (до десяти), по сравнению с HEVC, сложность декомпрессии выросла вдвое.
Для сравнения, вот скорость кодирования на самых медленных настройках (AMD Ryzen 7950X, мультфильм Sintel в формате AVC, 4,2 ГБ:
VVC тоже требует лицензионных отчислений, так что может повторить незавидную судьбу HEVC.
Источник
Наибольшей поддержкой индустрии пользуется AV1. Кажется, все крупнейшие видеоплатформы (YouTube, Netflix и проч.) пытаются внедрить поддержку этого свободного кодека, который по уровню сжатия превосходит платный HEVC.
Примечание: на разрешении 4K тесты показывают небольшое превосходство HEVC.
В то же время рабочие группы VCEG и MPEG тоже не спят в шапку. Выпустив H.266 (VVC), они сейчас параллельно работают над двумя кодеками нового поколения: Essential Video Coding (EVC) и Low Complexity Enhancement Video Coding (LCEVC), причём некоторое подмножество кодеков EVC (Type I) будет свободно от лицензионных отчислений.
▍ Netflix и ИИ-кодеки
Говорят, что новое поколение кодеков будет создано с помощью машинного обучения (ML).
В марте 2023 года компания Apple неожиданно купила стартап WaveOne, который разрабатывает ИИ-алгоритмы для сжатия видео.
Эта сделка дала определённый сигнал, в каком направлении развивается индустрия видеокомпрессии. Возможно, в будущем новые алгоритмы для оптимального сжатия будут создаваться по модели Software 2.0, то есть генерироваться в нейросетях. Если в двух словах, схема работает следующим образом: «Разработчик устанавливает цели и создаёт грубый скелет кода (т. е. архитектуру нейронной сети), который определяет подмножество программного пространства для поиска, а дальше использовать имеющиеся в его распоряжении вычислительные ресурсы для поиска в этом пространстве программы, которая работает». На выходе он получает программное обеспечение в виде весов для модели. Результат написания программы выглядит примерно так:
Новый подход позволит создавать принципиально более сложное ПО, недоступное для понимания человеку.
Кодеки для сжатия видео — одно из самых очевидных применений Software 2.0, потому что они и сейчас уже практически недоступны для понимания из-за своей сложности. То есть с использованием нейросетевого «чёрного ящика» ничего особо не изменится…
Если Apple вложилась в эту технологию, то она явно рассчитывает использовать её в своих многочисленных продуктах для видеообработки, а может, и в недавно представленном шлеме дополненной реальности. Кодеки такая вещь — если они действительно эффективно работают, то применение найдётся везде, где передаётся видеосигнал.
О технологии ИИ-кодеков WaveOne известно, что у неё алгоритм и кодек зависят от контента, то есть смыслового содержания кадра:
В рекламных материалах они приводят пример, где приоритет кодирования с повышенной детализацией отдаётся лицам и тексту, в то время как фон можно сжимать выше среднего.
Сразу после продажи Apple официальный сайт WaveOne был закрыт, но его можно посмотреть в веб-архиве. Там краткое описание сжатия с учётом тематики видео и семантики (конкретных объектов на видео). Приводятся ссылки на научные работы.
Очевидно, что при учёте контента коэффициент сжатия можно сильно повысить, а общее качество видео субъективно вырастет, поскольку области человеческого внимания будут максимально детализированы. Нужно только понять, куда направлено человеческое внимание при просмотре видео. Лица и текст — это самый очевидный вариант.
WaveOne — далеко не единственный стартап, который разрабатывает технологии сжатия видео с помощью ИИ. По мнению экспертов, сжатие с учётом смыслового контента (content-aware encoding, CAE) получило развитие после 2015 года, когда компания Netflix первой в мире внедрила технологию CAE-сжатия видеопотока.
Если кто-то смотрел эфир Netflix, то мог заметить специфическую компрессию без особых артефактов. Иногда создаётся впечатление, что видео вообще передаётся без сжатия, хотя это физически невозможно исходя из размера несжатых кадров, да и по трафику видно, что идёт сжатый поток.
Такого качества трудно добиться стандартными кодеками вроде H.264 и H.265. На самом деле это проприетарная технология CAE-сжатия Netflix, разработанная с помощью ИИ, в которой кодек генерируется для каждого фильма и даже для отдельных фрагментов (per-tile/per-chunk encoding).
Если взять видеопоток Netflix, закодировать его простым H.265/HEVC или AV1, то даже с максимальными настройками качества материал визуально испортится. Судя по всему, на торрентах не найдёшь кино с тем же качеством, что в эфире Netflix, как бы ни печально это было… Возможно, благодаря данному факту компания в своё время и нарастила клиентскую базу (и сократила расходы на трафик). Вот так ИИ-кодеки нового поколения используются в бизнесе уже сейчас, принося реальные деньги.
Сравнение одного кадра при кодировании разными кодеками, источник: WaveOne
По независимым тестам, качество CAE-кодеков пока уступает тому же AV1, не говоря уже о других кодеках с нейронным улучшением, типа NeutronStar и Night-Watch. Судя по всему, Netflix применяет их дополнительно к основным кодекам HEVC и AV1, чтобы сэкономить трафик и местами улучшить качество картинки. Например, поставить нейронный препроцессинг видеопотока, как делает стартап iSize.
Однако ИИ-кодек WaveOne визуально превосходит конкурентов на том же битрейте, хотя нейросеть ориентируется не на математические характеристики типа сигнал/шум (SNR), индекс структурного сходства (SSIM) и пиковое отношение сигнал/шум (PSNR), а конкретно на человеческое восприятие. Да, это субъективно. Но есть научный факт, что человек замечает малейшие искажения черт лица, но не обращает практически никакого внимания на остальные (фоновые) детали, поэтому сжатие с учётом контента имеет смысл.
К сожалению, Netflix не просто держит в секрете свои практики, но строжайше охраняет их как коммерческую тайну. Аналогично поступают Harmonic, WaveOne и другие стартапы в этой области. Как мы писали выше, Apple вообще удалила сайт с описанием технологии сразу после её покупки. Из-за этого замедляется общественный прогресс в создании CAE-кодеков нового поколения.
Дальнейший прогресс в сжатии видео (а потом — в области обычных архиваторов и другого ПО) тесно связан с прогрессом в области машинного обучения. Среди компаний, которые используют ИИ для улучшения стандартных кодеков, можно назвать Bitmovin, Beamr и NGCodec, которую купила AMD.
Возможно, в будущем мы увидим принципиально новые подходы к сжатию. Например, кодек Vnova понижает разрешение видео перед передачей, чтобы сэкономить трафик — и апскейлит его на стороне клиента, восстанавливая что-то похожее на оригинал, но в высоком разрешении. По такой логике, можно вообще передавать только текстовое описание и генерировать картинку на приёмном устройстве. Будем надеяться, до такого не дойдёт…