Он в основном включает пять частей: характеристики трех широко используемых масштабируемых видеокодеров; кодировщик, принятый WebRTC, и метод его применения; статус приложения масштабируемого кодирования в WebRTC; метод обнаружения цели и распределения битрейта на основе масштабируемого кодирования; приложение. перспективы и направления исследований сочетания ИИ и масштабируемого кодирования. 【Глобальное интернет-коммуникационное облако Rongyun】
Характеристики трех широко используемых масштабируемых кодировок видео
После того, как видеоизображение оцифровано, объем данных очень велик.Существующие сетевые и запоминающие устройства не могут напрямую хранить исходное видеоизображение, и видео и изображение должны быть сжаты.Существующие основные алгоритмы сжатия видео: H.264, VP8, VP9, HEVC, VVC и др. С одной стороны, от H.264 к VVC сложность кодирования становится все выше и выше, а эффективность сжатия становится все выше и выше; Сетевые и аппаратные среды на разных приемниках. Например, пропускная способность сети 4G и сети 5G отличается.Если один и тот же набор потоков передается в сети 4G и 5G, пропускная способность сети 5G может быть использована не полностью, что в конечном итоге повлияет на эффект просмотра видео.
В среде видеоприложений существует множество различных приемников.Для решения этой проблемы можно использовать следующие две технологии: Simulcast и Scalable Video Coding (SVC).
Как показано на рисунке 1, одновременная передача одновременно передает несколько кодовых потоков, а разные кодовые потоки имеют разные кодовые скорости для передачи кодовых потоков с разной полосой пропускания. Когда терминальное устройство находится в сетевом окружении с высокой пропускной способностью, оно может передавать видео с высокой скоростью передачи данных для улучшения качества просмотра видео; когда оконечное устройство находится в сетевой среде с низкой пропускной способностью, оно может передавать видео с низкой скоростью передачи данных для уменьшения заиканий при воспроизведении видео. Однако типы скоростей передачи данных, поддерживаемые Simulcast, ограничены, и их трудно адаптировать к сложным сетевым средам. В ответ на эту проблему исследователи предложили масштабируемое видеокодирование SVC, которое сжимает видеоданные только один раз, но может декодировать их с различной частотой кадров, пространственным разрешением или качеством видео. Например, приняв трехуровневую классификацию воздушного пространства и двухуровневую классификацию во временной области, можно комбинировать шесть режимов.По сравнению с методом Simulcast адаптивность системы значительно повышается.
(Рис. 1. Подсоединение и градиент)
Есть три широко используемых масштабируемых кодирования, а именно: пространственная масштабируемость, масштабируемость качества и временная масштабируемость.
(Рисунок 2. Три часто используемых метода масштабируемого кодирования)
Масштабируемое кодирование в пространственной области (рис. 3), то есть для создания нескольких изображений с различным пространственным разрешением для каждого кадра видео и декодирования изображений с низким разрешением, полученных из кодового потока базового уровня.Если добавляется кодовый поток уровня улучшения на декодер мы получаем изображения высокого разрешения.
(Рисунок 3. Воздушное пространство может быть классифицировано)
Качество может быть оценено (Рисунок 4).Осуществимый подход состоит в том, чтобы выполнить грубое квантование исходного изображения после преобразования DCT в кодовом потоке базового уровня и сформировать кодовый поток базового уровня после энтропийного кодирования. Грубые квантованные данные обратно квантуются для формирования коэффициентов базового слоя, которые вычитаются из коэффициентов преобразования DCT исходного изображения для формирования разностного сигнала, а разностный сигнал затем подвергается точному квантованию и энтропийному кодированию для создания улучшающего слоя. кодовый поток.
(Рисунок 4. Качество можно оценить)
Временная масштабируемость (рисунок 5), то есть видеопоследовательность делится на несколько уровней без перекрытия, и обычное кодирование видео выполняется на кадрах базового уровня, чтобы обеспечить кодовый поток базового уровня с базовым временным разрешением; для уровня улучшения , он использует данные базового уровня для кодирования межкадрового предсказания уровня улучшения для создания данных уровня улучшения.
(Рисунок 5 можно оценить во временной области)
Кодировщики, используемые WebRTC, и как их применять
Кодировщики, поддерживаемые WebRTC, включают VP8, VP9 и H.264. С точки зрения взаимодействия с пользователем эффекты кодировщиков VP8 и H.264 в основном схожи. Как кодировщик следующего поколения VP8, VP9 лучше, чем VP8 и H.264 в сжатии HD-видео.
Как показано на рисунке 6, всесторонняя производительность кодировщика и поддержка кодировщика браузера позволяют сделать следующие выводы: эффекты кодирования VP8 и H.264 в основном одинаковы, в целом можно использовать оба; VP9 в основном используется в различных собственных приложениях Google. видеопродукты, следует отметить, что VP9 поддерживает различные SVC, HEVC в настоящее время может использоваться только в системах Apple, не может продвигаться и не рекомендуется, AV1 также является слишком новым, только в продуктах Google.Хорошая поддержка , временно не рекомендуется.
(Рис. 6. Поддержка кодировщика в браузерах)
Статус приложения масштабируемого кодирования в WebRTC
Прежде чем представить применение масштабируемого кодирования в WebRTC, давайте кратко представим коммуникационный и сетевой процесс WebRTC.
Как показано на рисунке 7, связь между клиентом A и клиентом B может осуществляться в режиме прямого соединения или в режиме сервера.В крупномасштабных сетях серверный режим используется для пересылки и обработки сигналов.
(Рис. 7. Простой процесс WebRTC)
Для различных сценариев приложений с несколькими приемниками WebRTC предлагает три решения: Mesh, MCU и SFU.
Сетчатая схема (рис. 8), то есть несколько терминалов соединены попарно, образуя сетчатую структуру. Например, три терминала A, B и C осуществляют связь многие ко многим.Когда A хочет совместно использовать медиа (например, аудио и видео), он должен отправить данные на B и C соответственно. Точно так же, если B хочет поделиться медиа, ему нужно отправить данные A, C и так далее. Это решение требует относительно высокой пропускной способности каждого терминала.
(Рисунок 8 Сетчатая схема)
Схема MCU (устройство многоточечной конференц-связи) (рис. 9), схема состоит из сервера и нескольких терминалов, образующих звездообразную структуру. Каждый терминал отправляет аудио- и видеопотоки для совместного использования на сервер, и сервер смешивает аудио- и видеопотоки всех терминалов в одной комнате и, наконец, генерирует смешанный аудио- и видеопоток и отправляет его на каждый терминал. терминал может видеть/слышать аудио и видео других терминалов. По сути, серверная часть представляет собой аудио- и видеомикшер, и нагрузка на сервер этого решения будет очень высокой.
(Рисунок 9 Схема микроконтроллера)
Схема SFU (Selective Forwarding Unit) (Рисунок 10), эта схема также состоит из сервера и нескольких терминалов, но отличается от MCU тем, что SFU не смешивает аудио- и видеопотоки после получения аудио- и видеопотоков, совместно используемых терминалом, Аудио- и видеопотоки напрямую перенаправляются на другие терминалы в помещении.
(Рисунок 10 Схема SFU)
Различная пропускная способность трех сетей показана на рисунке 11. Видно, что максимальная пропускная способность SFU составляет 25 Мбит/с, а минимальная пропускная способность MCU — 10 Мбит/с.
(Рис. 11. Пропускная способность трех разных сетей)
С точки зрения характеристик, гибкость решения Mesh относительно низкая; решение MCU должно выполнять такие операции, как транскодирование, слияние и распределение потока кода; сервер решения SFU имеет меньше нагрузки и большую гибкость, и широко приветствуется .
На рисунке 12 представлена схема режима пересылки в режиме Simulcast и в режиме SVC. Как видно из верхнего и нижнего рисунков, метод распределения кодовых потоков на основе SVC имеет большую модифицируемость для стороны ПК. Независимо от того, какой сетевой метод используется, метод SVC будет более надежным, чем метод Simulcast.
(Рисунок 12 Режим переадресации Simulcast и SVC)
Опора показана на рисунке 13. Как видно из рисунка, H.264 поддерживает только Simulcast, VP8 поддерживает масштабируемость во временной области, а VP9 поддерживает кодирование SVC во всех направлениях. VP9 является основным кодеком, продвигаемым Google, но нет большого прогресса в оптимизации кодека H.264, что в определенной степени ограничивает применение WebRTC.Например, последний мобильный телефон iPhone13 от Apple поставляется с H.264.Функция аппаратного ускорения , если используется кодер AV1, хотя преимущества SVC могут быть получены, аппаратное декодирование не может быть выполнено. В WebRTC Simulcast по умолчанию использует технологию многопоточности и одновременно запускает несколько кодировщиков OpenH264, в то время как SVC может вызывать OpenH264 для масштабируемого кодирования во временной и пространственной областях.
(Рис. 13. Поддержка масштабируемого кодирования в WebRTC)
Схема обнаружения цели и распределения скорости на основе масштабируемого кодирования
Для N-путевого SFU этот SFU должен учитывать сумму оставшихся N-1 терминальных кодовых скоростей. Для большинства видеоконференций отношение битрейта к общему битрейту в основном постоянно для заданных условий временного и пространственного уровня. Как показано на рисунке 14.
(Рис. 14 Распределение кодовых потоков разных уровней)
В соответствии с явлением, показанным на рисунке 14, движение видео используется в качестве основной меры для распределения кодового потока. Конкретная схема соответствующих документов показана на рисунке 15.
(Рис. 15. Распределение кодовой скорости кодера SVC)
В этой схеме есть два места для улучшения: первое — это разница между текущим кадром и предыдущим кадром, принятым методом измерения движения, что трудно точно отразить изменение движения видео. Во-вторых, добавить функции, отличные от функций движения, чтобы лучше отражать изменения в изображениях и видео. Предлагаемое решение показано на рисунке 16.
(Рисунок 16 Предлагаемое решение)
В WebRTC кодировщик H.264 использует кодировщик Cisco OpenH264 с открытым исходным кодом, а файл конфигурации масштабируемого кодирования OpenH264 показан ниже. Этот файл конфигурации устанавливает два уровня слоев временной иерархии.
(Рисунок 17 Файл конфигурации масштабируемого кодирования OpenH264)
Характеристикой кодового потока SVC является то, что набор кодовых потоков имеет многоуровневую структуру, поэтому при реальном использовании необходимо извлекать кодовый поток. Для временной масштабируемости кодовый поток извлекается путем анализа временного идентификатора в каждом NAL; для пространственной масштабируемости кодовый поток извлекается путем анализа пространственного идентификатора в каждой NAL; для масштабируемости качества кодовый поток извлекается путем анализа качественного идентификатора. в каждом НАЛ.
Как видно из рисунка 18, кодовый поток базового уровня OpenH264 может быть напрямую декодирован декодером AVC, а SVC_extension_flag базового уровня равен 1.
(Рисунок 18. Диаграмма декодирования базового уровня масштабируемого кодирования)
NAL кодового потока уровня расширения SVC содержит синтаксис SVC, и кодовый поток SVC необходимо перекодировать. В эталонном программном обеспечении JSVM имеется специальный модуль перекодирования для масштабируемого кодирования. На рисунке 19 показан процесс перекодирования и несколько NAL. единицы могут быть найдены.Переписано в формат AVC.
(Рисунок 19. Транскодирование уровня NAL уровня улучшения масштабируемого кодирования)
На рисунке 20 показан эффект декодирования потока кода после преобразования с помощью JSVM, который можно декодировать с помощью стандартного декодера AVC.
(Рис. 20. Декодирование изображения после транскодирования уровня NAL)
Перспективы применения и направления исследований сочетания ИИ и масштабируемого кодирования
Наиболее часто используемым методом масштабируемого кодирования является метод пространственного масштабирования, но ухудшение качества очевидно при преобразовании различных разрешений. На конференции ICME2020 некоторые ученые предложили модель сверхвысокого разрешения для кодирования видео, которая реконструирует изображения с высоким разрешением путем извлечения изображений в разное время для слияния признаков. Экспериментальные результаты показывают, что эффект суперсчета улучшается.
(Рисунок 21. Структурная схема видео сверхвысокого разрешения)
Использование этой модели в масштабируемом кодировщике может эффективно уменьшить дискомфорт, вызванный переключением между потоками с разным разрешением.
MPEG5 предлагает кодирование видео с низким уровнем сложности (LCEVC), которое имеет более высокую эффективность сжатия, чем H.264, при том же PSNR. Энкодер показан на рисунке 22. В качестве базового кодировщика Base Encoder можно выбрать любой готовый кодировщик, например H.264, VP8, VP9 и так далее.
Сочетание WebRTC и LCEVC — направление развития в будущем. Как новый стандарт видеокодирования, он имеет несколько особенностей: он улучшает возможности сжатия кодирования базового уровня, имеет низкую сложность кодирования и декодирования, предоставляет платформу для расширения дополнительных функций и т. д.
Как видно из рисунка 22, сложность кодирования в основном зависит от Base Encoder.Если H.264, который широко используется в WebRTC, будет улучшен LCEVC, эффект кодирования будет значительно улучшен при увеличении сложности. Вообще говоря, для потокового спортивного видео в реальном времени с высокой частотой кадров 1080P с использованием кодирования H.264 требуется максимальная скорость передачи данных 8 Мбит/с, а для использования LCEVC требуется только 4,8 Мбит/с.
(Рис. 22 Энкодер LCEVC)
С учетом эффекта кодирования LCEVC можно сделать вывод, что комбинация LCEVC и WebRTC станет важным направлением исследований и приложений.