Сжатие с учётом контекста, источник: 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 ГБ:
    Время кодирования Время декодирования
    HEVC 2 часа 34 минуты 1 минута 14 секунд
    AV1 18 часов 54 минуты 1 минута 42 секунды
    VVC 2 дня 10 часов 35 минут 2 минуты 42 секунды
    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 понижает разрешение видео перед передачей, чтобы сэкономить трафик — и апскейлит его на стороне клиента, восстанавливая что-то похожее на оригинал, но в высоком разрешении. По такой логике, можно вообще передавать только текстовое описание и генерировать картинку на приёмном устройстве. Будем надеяться, до такого не дойдёт… ????

Выиграй телескоп и другие призы в космическом квизе от RUVDS. Поехали? ????

Комментарии (22)


  1. v1000
    03.07.2023 09:10
    +3

    У меня некоторое сомнение по поводу ИИ кодеков, которые на ходу должны обрабатывать картинку. Пробовал включать их в играх, картинка становится четче, но при этом какой-то неестественной.


    1. Lil_shi
      03.07.2023 09:10

      Про что конкретно речь? Могу предположить только использование fsr или dlss


      1. Hvorovk
        03.07.2023 09:10

        Ну тут еще есть dlss3 которая просто фреймгенератор.


  1. CaptGg
    03.07.2023 09:10
    +8

    Netflix не может использовать полностью собственный проприетарный кодек, т.к. это лишит его совместимости с браузерами и аппаратными декодерами в мобильных устройствах.

    Но Netflix может использовать собственный модифицированный кодер для H.264, варьирующий сжатие отдельных участков кадра на основе их предполагаемого содержимого. Нечто вроде значительно более "умной" версии CRF из x264. Таким образом сохраняется совместимость с декодерами H.264, но визуальное качество картинки на глаз может быть существенно лучше.


    1. Didimus
      03.07.2023 09:10

      Но тогда этот поток можно сохранить в виде файла.


  1. inetstar
    03.07.2023 09:10
    +3

    Если взять ЛЮБОЙ видеопоток (а не только Netflix), закодировать его простым H.265/HEVC или AV1, то даже с максимальными настройками качества материал визуально испортится.

    Потому что это кодеки c потерей информации. Это нормально.


  1. novoselov
    03.07.2023 09:10
    +1

    Вообще напрашивается многопроходные кодеки с распараллеливанием. Несколько видеокарт могут обработать один и тот же файл для анализа цветов, шумов, градиентов, объектов, лиц и т.д. На выходе получаем информацию об объекте (3D модель, несколько LODов) и окружении (освещение, тени, яркость), а также маппинг на кадры. Второй проход считает анимацию переходов между кадрами, на выходе получаем информацию о всех динамических изменениях. На последнем проходе учим полученную модель рендерить кадры самостоятельно и дообучаем восстанавливать качество до приемлиемого уровня (с одной стороны корректируя исходные параметры модели, с другой стороны зашивая уникальную информацию про кадр). Для стриминга можно дополнительно отсортировать объекты по порядку появления в кадре и подгружать их динамически, но тогда придется аккуратно распиливать модель на поддомены.


  1. ss-nopol
    03.07.2023 09:10
    +4

    Кодеки для сжатия видео — одно из самых очевидных применений Software
    2.0, потому что они и сейчас уже практически недоступны для понимания
    из-за своей сложности. То есть с использованием нейросетевого «чёрного
    ящика» ничего особо не изменится…

    Вообще-то их кто-то разрабатывал и писал, как минимум этот кто-то понимает, что там, есть документация и т.п. С новым подходом вообще никто не будет понимать, как оно работает. Как-то это немного пугает. Не в смысле кодеков, а глобально.


    1. M_AJ
      03.07.2023 09:10

      Это больше всего пугает в сетях принимающих решения, если доверие к их решениям станет нормой, то это будет выглядеть как-то совсем антиутопично. Система проанализировала вас, почитала опасным и определила под надзор. Почему, мы и сами не знаем, но она не ошибается.


      1. Goupil
        03.07.2023 09:10

        Explainable AI. До тех пор пока он не научился врать.


        1. acsent1
          03.07.2023 09:10
          +1

          Врать они учатся в первую очередь. За примером далеко ходить не нужно


  1. tenzink
    03.07.2023 09:10
    +8

    Захочешь листики рассмотреть поподробней, а не судьба теперь


    1. raamid
      03.07.2023 09:10
      +3

      Ну будет додумывать листики. В среднесрочной перспективе встроят Midjourney в декодер.


      1. Tarakanator
        03.07.2023 09:10
        +4

        Зачем тогда вообще декодер?
        Нетфликс тебе отправлять текст "Мстители: конец света"
        А мидждорней на твоей стороне рисует тебе фильм. Вот так и сжали весь фильм в 21 байт.


        1. Didimus
          03.07.2023 09:10

          Додумывай сам (бюджетный вариант). С вас 1200 и еще 900 за попкрон


          1. Tarakanator
            03.07.2023 09:10
            +1

            Это называется книга.


        1. anton21m
          03.07.2023 09:10

          Так midjourney тоже весит, не локально ж генерить


          1. Tarakanator
            03.07.2023 09:10

            Почему не локально?


  1. Abobcum
    03.07.2023 09:10

    Что-то я так и не понял, в чём заключается "прогрессивная технология сжатия". Насколько % удалось уменьшить размер относительно других кодеков?


    1. domix32
      03.07.2023 09:10

      Проэксперементировал я с проверкой сжатия - взял rav1e и пожал максимально жирный 10 битный 4к bosphorus без указания дополнительных параметров. Финальный размер видео ~24 Мб. Максимально пожатая 8-битная mp4 которую предлагется скачать оттуда - ~28 Мб. То есть примерно на 15% меньше. Заметный профит. Правда время кодирования было довольно долгим.


  1. axe_chita
    03.07.2023 09:10

    Ндаа, нас ждут старые грабли с "новыми умными" кодеками, которые раньше затрагивали только копиры, а теперь будут "портить видео" и нас ждет восстание машин "ияхудожникиятаквижу" и "джописдоны" (job is done) потому алгоритмы ИИ так порешали;) ИИ цензура так сказать ;))


  1. domix32
    03.07.2023 09:10

    Интересно, насколько различается скорость кодирования для разных бэкэндов av1, а то в оригинале только один.