Как обеспечить качественный шеринг экрана?
Классическая проблема любой корпоративной ВКС — мыльный шеринг экрана. Весь мир плотно сидит на старом проверенном кодеке 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, увлекательное чтиво
яндекс телемост нормально видос передает. хз какой там кодек
чет я хуйню написал)))
про шеринг хз
Таблицы хуево передают все
Чай как попасть в Аляску?
Там интересно.
Пустите плиз!!!!
Хрен знает, у нас нормально, что в Zoom, что в KTolk.