Как обеспечить качественный шеринг экрана?

Классическая проблема любой корпоративной ВКС — мыльный шеринг экрана. Весь мир плотно сидит на старом проверенном кодеке VP8 и H264. H264 появился в 2003 году — старенький, рабочий конвертер. VP8 чуть помоложе, был создан в 2008 году как еще один коммерческий кодек. Но в 2010 Google купил их производителя — On2, опенсорснул VP8, и он стал базой для формата WebM.

Все бы ничего, но у них достаточно дубовые алгоритмы. Они оба делались под слабые процессы, поэтому было принципиально важно вытянуть низкое потребление в ущерб качеству. Именно поэтому мы все еще сидим в мыле на созвонах, а шеринг экрана, с кодом и таблицами, бегает только внутри хорошей сети на 1080p, в лучшем случае.

Маленькая техническая справка, как работает любой кодек:

берет кадры (текущий и следующий), сравнивает и выделяет разницу. Его задача оптимально запаковать ее в поток, не сильно повредив исходное изображение. Есть куча кейсов, где кодеки оставляют жестокие артефакты: плавные градиенты, резкие объекты с четкими границами на однотонном фоне, такие как молния на фоне неба или ,наоборот, двигающийся дым на фоне статичной картинки, медленное движение части элементов по экрану вдоль резкой границы, и так далее. Netflix когда тестировал свой сервис, снял даже специальный короткометражный фильм, в котором присутствуют все самые тяжелые для кодеков пограничные кейсы: Netflix Meridian

А есть более современный кодек, 2018 года — AV1, который наколбасили в складчину бигтехи внутри своего консорциума AOMedia. Его сейчас только-только начинают внедрять и тестировать в мире. У него очень хитрые алгоритмы, среди которых:

- Внутрикадровое копирование блоков. Копипастит одинаковые куски внутри кадра (UI, текст, иконки), что сильно снижает битрейт.

- Гибкое разбиение тайлов. Динамически выбирает размер и форму блоков: крупные блоки для однотонных областей, мелкие для текста и резких границ. Динамически нарезает картинку, меньше тратится битрейта, больше качества в деталях и шрифтах.

- Улучшенное энтропийное кодирование (ANS / arithmetic). Более хитрый алгоритм, лучше архивирует предсказуемый контент типа UI экономя битрейт.

- Умные loop-фильтры для резких краёв (CDEF + Loop Restoration). После кодирования применяет фильтры, которые подавляют артефакты и шум с учётом направлений и структуры, стараясь не размазывать границы. Меньше артефактов и мыла, текст читаемее, особенно на низком битрейте.

- Сильное внутрикадровое предсказание. Лучше выбирает, как кодировать выбранную область под контент, иногда может применить несколько трансформеров к одному блоку. Как итог, лучше восстанавливает резкие детали (шрифты, рамки, графики).

Кому интересно, полная спека AV1, увлекательное чтиво

ник обновляется

яндекс телемост нормально видос передает. хз какой там кодек

New

Чай как попасть в Аляску?

Там интересно.

Пустите плиз!!!!

Sergei Timofeyev

Хрен знает, у нас нормально, что в Zoom, что в KTolk.

Комментарии
Пока нету комментариев...