Доклад Андрея Зюзина, ведущего сейлз-инженера MediaKind, «Решение MediaKind для оптимизации качества картинки с применением ИИ» на Online круглом столе «Broadcasting 2021. Системы компрессии видеосигналов» 13 июля 2021 года.
Тимур Кулгарин, технический директор «СТС Медиа»: Я передаю слово Андрею Зюзину, который представляет MediaKind. Она расскажет нам о решениях по кодированию, их особенностях и применении искусственного интеллекта для этого кодирования.
Андрей Зюзин: Я являюсь ведущим сейлз-инженером фирмы MediaKind. Хочу начать доклад с нашей истории. MediaKind имеет фундаментальное начало, наследие от Tandberg Television, Ericsson Media Solutions, Microsoft Fabric, и нам позволено использовать их огромный опыт, полученный на протяжении 25 лет в сфере цифрового телевидения. На текущий момент Ericsson является владельцем компании MediaKind и владеет 49% акций. Tandberg Television была основана еще в 1979 году, и с использованием ее продуктов были построены первые головные станции в России и за рубежом.
Мы одни из первых запустили вещание в MPEG-1, MPEG-2, MPEG-2HD, а уже летние Олимпийские игры в 2008 году были кодированы в MPEG-4HD. Буквально через два года Чемпионат по футболу был освещен в 3DTV, но, к сожалению, данный формат не получил широкого распространения. Это нас не остановило, и в 2012 году мы создали кодек 4К, на основе которого осуществлялось вещание Чемпионата по теннису в 2016 и 2018 годах во Франции и Америке. На текущий момент все решения открыты для внедрения современных кодеков, и для этого нет никакого ограничения, так как используются аппаратно-программные платформы. Конечно же, каждый такой шаг был отмечен премией Emmy в области технологий и инженерных решений, и мы гордимся этими премиями.
Сегодня я сфокусируюсь на премии, которая была получена в 2020 году за разработку алгоритма оптимизации кодирования видеоконтента с использованием искусственного интеллекта. Данный алгоритм можно использовать в семействе решений Aquila. Они используются как для традиционного, так и для интернет ОТТ-вещания. Используя такие продукты как Encoding Live, Encoding On Demand, Packaging, Stream Processing, мы можем комбинировать их и получить готовое решение Aquila Streaming, Aquila Broadcast, Aquila On Demand. Названия данных решений говорят сами за себя. Aquila Streaming и Aquila On Demand – это решения для ОТТ, а Aquila Broadcast – это решение для традиционного телевидения.
Наши решения возможно интегрировать на различных аппаратных платформах с использованием CPU, GPU, на платформах G8 для того, чтобы использовать карты HPSDI для ввода традиционных сигналов. Для чистого транскодирования можно использовать плей-системы, плей-сервера HP, Dell и Cisco. Все наши решения готовы для внедрения в облаке. В любой момент решение может быть запущено и произведена интеграция с Google Cloud, Microsoft Azure и другими облачными решениями.
Рассмотрим конвергентную головную станцию. Она так названа, так как в ней все компоненты близки друг к другу и взаимодействуют. Но в первую очередь это универсальная головная станция, ее компоненты могут одновременно работать как для традиционного телевидения, так и для интернет-вещания в ОТТ. Кодер может отправлять потоки данных как на стрим-процессор, на мультиплексор для дальнейшего мультиплексирования, так и на пакеджер для дальнейшей упаковки и передачи в интернет для ОТТ-вещания.
Мы привыкли, что все кодеры имеют определенное количество каналов. Раньше это были одноканальные, двухканальные, четырехканальные и восьмиканальные кодеры. Количество каналов определялось количеством чипов, микросхем, которые были распаяны на плате прибора. Сейчас современные кодеры построены в основном на серверных решениях и могут обрабатывать различное количество каналов. Но Encoding Live позволяет настраивать количество каналов, которые вы можете запустить на одной машине. Это достигается путем выбора режима качества кодирования. В данном случае мы можем разрешить серверу, кодеру не тратить драгоценные ресурсы на каналы третьего класса, а запустить первоочередные каналы с наилучшим качеством с использованием всех современных алгоритмов. В чем же разница? В первую очередь разница в качестве картинки.
Для примера мы закодировали одну и ту же картинку различным битрейтом в режиме «standard», «extreme» и в режиме «up». К сожалению, в режиме «up» только пять каналов, в «extreme» – девять, а в «standard» – 16 каналов. Если присмотреться к картинке, то можно увидеть, что все стандартные огрехи кодирования видны в режиме «standard», в режиме «extreme» картинка выглядит гораздо лучше, а в «up» она уже близка к идеалу. Также это заметно при быстром движении или при быстром панорамировании камеры. В режиме «standard» картинка достаточно сильно искажена, а в режиме «extreme» и «up» ресурсы распределяются так, чтобы закодировать быстро движущийся объект и получить более детальное изображение.
Если посмотреть с другой стороны, то, улучшая картинку, мы можем снизить битрейт, который требуется для упаковки данного видео. Мы провели эксперимент и закодировали один и тот же контент, но с разным битрейтом – 6Мб/с, 4,8Мб/с и 4Мб/с – в различных режимах кодера. В результате получилось, что картинка в режиме «extreme» и «up» практически одинакова и даже лучше картинки, которая была закодирована на 6Мб в режиме «standard». Это дало нам возможность уменьшить битрейт без существенной потери качества на 20% в режиме «extreme» и на 32% в режиме «up». Если посмотреть на картинку в движении при быстром панорамировании камеры или при быстром движении, мы также увидим, что картинка гораздо лучше несмотря на то, что битрейт ниже на 20% и на 32%, чем в режиме «standard». Если на одном кодере запустить только пять каналов, то можно вполне окупить затраты на аренду транскодера на спутнике или уменьшить затраты на CDN в конечном счете, что очень существенно снижает расходы мобильных операторов.
В 2020 году, как я уже сказал, мы получили премию Emmy за разработку метода оптимизации реалтайм-кодирования с использованием искусственного интеллекта. Что же это такое? Данная технология ACT позволяет использовать все доступные ресурсы на 100%. При этом мы получаем компромисс между качеством и плотностью загрузки серверов. В данном случае нам не нужно выбирать, какие каналы настраивать, в каком режиме настраивать кодек. Мы просто ставим Adaptive, и в этом случае каналы будут автоматически закодированы с наилучшим качеством.
Как же это работает? На примере мы видим, что при стандартном режиме кодирования на кодере запущено всего четыре канала. Наверно, здесь необходимо добавить резерв для тех моментов, когда кодер работает на максимуме, например, для сложных моментов кодирования, чтобы не было потерянных кадров. Данная технология сети позволяет нам, во-первых, избавиться от этого резерва, во-вторых, запустить большее количество каналов на одной машине. Если же такой необходимости нет, то мы можем просто включить дополнительные алгоритмы для улучшения картинки и использовать процессор на 100%. Даже в случае кодирования всего двух каналов можно полностью загрузить процессор для максимального улучшения качества картинки.
Что можно еще сказать про ACT? При этом режиме не требуются дополнительные ресурсы процессора, требуется то же количество ядер. Возьмем для примера канал ОТТ. Достаточно кодировать только первые, самые верхние профили с использованием технологии ACT, и мы уже можем добиться снижения битрейта на 19% в среднем и максимум до 40%, используя только данную технологию. А если сфокусироваться на отдельном сервисе, то ресурсы можно распределить по-разному между различными процедурами обработки и процедурами кодирования картинки. АСТ создан для оптимизации самого стиля кодирования различного контента. Например, в случае мультипликационного контента или студийного новостного мы отдаем предпочтение пространственному распределению для более детальной проработки всего кадра, а в случае спортивного контента для детальной проработки именно движущихся объектов.
Анализ входного контента с использованием искусственного интеллекта основывается на сложных алгоритмах, которые были обучены в лабораторных условиях. Это позволяет нам классифицировать сам входящий контент и определить его к одной из категорий. В этом случае кодек настраивается оптимальным образом, на ходу, если контент меняется, и позволяет поучить наилучшее качество картинки.
В мире уже есть большое количество решений Aquila. Нам доверяют такие крупные компании как A1, Sky, Comcast, Vivo, Orange и другие. Так как решение законченное, оно имеет в себе все необходимые компоненты: системы управления, контроллеры и компасы.
В России у нас также много успешных проектов, потенциальных проектов. Сегодня я хочу рассказать о головной станции СТС, построенной на решении Aquila Broadcast. Данная головная станция имеет в себе, на первый взгляд, небольшое количество компонентов, но она интересна тем, что наряду с традиционными HDSDI-сигналами на входе также принимает SDI over IP, формирует на выходе 4MPTS, 75SPTS для пяти временных зон. Все это управляется централизованным MediaKind-контроллером. Все компоненты построены на микросервисах и имеют возможность внедрения в облачных сетях и оркестрировании. Также эта головная станция интересна тем, что здесь используется три различных аппаратных платформы. Первая – G8, она нужна для того, чтобы принимать стандартные HDSDI-сигналы. Вторая – платформа М1, менее производительная, для мультиплексирования. Третья – блейд-сервера в блейд-центре HP для транскодирования и кодирования SDI в RIP большей части каналов.
Тимур Кулгарин: Анализ движения, который вы упоминали – это анализ движущихся областей, чтобы простраивать при кодировании их оптимальным образом без размытия, зубцов и всего прочего?
Андрей Зюзин: Каждая процедура движка кодирования требует некое количество процессорного времени. Мы можем выделить больше этого процессорного времени на анализ движения, меньше на задний фон, обработку пространства всего кадра и так далее. При этом мы можем отдать остальное процессорное время другим сервисам, чтобы они могли сфокусироваться на другом типе контента. Под анализом движения имеются в виду процедуры в самом коде.
Тимур Кулгарин: Каким образом распознается тип контента? Эта адаптивная подстройка с искусственным интеллектом должна как-то автоматически распознавать тип контента на входе.
Андрей Зюзин: В лабораторных условиях было выбрано какое-то количество роликов. Эксперты поставили мультфильм и определили, при каких параметрах мы имеем лучшую картинку, перестроили процедуры при спортивном событии для получения лучшей картинки, а далее начали проигрывать различные ролики. Тот алгоритм, который определяет тип контента, обучили тому, что это за контент и как его идентифицировать. Алгоритм обучен именно на большом количестве входных потоков, здесь использовалась некая ассоциативная память.
Надир Хамзин, коммерческий директор ООО «ПлатформКрафт» (Россия): Правильно ли я понимаю, что если не было обучения, допустим, при трансляции DOTA, то DOTA будет обрабатываться как мультик, а не как спорт?
Андрей Зюзин: Да, конечно.
Надир Хамзин: То есть мы не отслеживаем именно движение, чтобы не увеличивать буфер, то есть задержку. Мы сначала обучаем, что это спорт, что если болтается черное пятно, то это шайба и, скорее всего, хоккей, а уже потом выбираем профиль, как это будем кодировать. То есть на ходу мы не считаем, есть там быстрое изменение или нет. Я правильно понял?
Андрей Зюзин: Мне сложно об этом говорить, так как я не являюсь разработчиком данного алгоритма, но, как я понял из описания этих процедур, он был обучен. Скорее всего, здесь есть какие-то определенные моменты, например, для спортивного события у нас больше B-кадров. Когда мы пытаемся адаптировать алгоритм, наверно, он пытается понять таким образом, что это за контент. Мне кажется, что это работает так.
Надир Хамзин: Звук обрабатывается каким-либо специальным образом в зависимости от предполагаемого профиля кодирования? Например, музыкальный контент обрабатывается с одним звуком, а дикторский текст другим образом, чтобы была более разборчива речь.
Андрей Зюзин: Я думаю, что звук обрабатывается стандартным образом, без какой-то оптимизации.