Scalable Video Coding

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Scalable Video Coding (масштабируемое видеокодирование) - технология обработки и передачи видео в реальном времени, которая позволяет передавать в одном потоке несколько подпотоков видео разного качества. Поток видео высокого качества кодируется как последовательность улучшений потоков более низкого качества, благодаря чему каждый клиент может использовать столько улучшений, сколько позволяют его вычислительные мощности. Таким образом, технология SVC позволяет серверу адаптировать видеопоток под пропускную способность каждого отдельного канала, не пересчитывая потоки каждый раз заново.[1][2]

Предыстория[править | править код]

Scalable Video Coding возник как логическое развитие технологии Simulcast[en], которая предполагает создание нескольких полных копий потока в разном разрешении, и стандарта сжатия видео H.264.

Технические подробности[править | править код]

Общая схема работы SVC такова:

  • для транслируемого видео создаётся его низкокачественная копия и несколько слоёв данных, с помощью которых можно преобразовать меньшие копии в бо́льшие;
  • от каждого клиента (адресата) запрашивается информация о том, какого качества поток он может принять;
  • каждому клиенту передаётся низкокачественная копия потока и та последовательность улучшений, которую он в состоянии обработать;
  • приняв данные, клиент применяет последовательность улучшений к низкокачественной копии и получает итоговую картинку.

Последовательность улучшения качества может затрагивать различные параметры:

  • временно́е сжатие - например, первым передаётся видео с частотой 15 кадров, а иногда вдобавок к нему - остальные кадры;
  • пространственное сжатие - например, первым передаётся видео с разрешением 480p, а добавки позволяют качественно растянуть его до 4K;
  • качество само по себе - изображение изначально передаётся с оригинальной частотой и разрешением, но в худшем качестве, а добавки позволяют сделать его чётче или красивее;
  • комбинированное сжатие - использование улучшений разных обозначенных выше типов в произвольной последовательности.

Применение в видеоконференцсвязи[править | править код]

Применение SVC в видеоконференциях позволяет значительно сократить вычислительные расходы на формирование общей картинки со всеми собеседниками - вместо этого каждый клиент формирует последовательность улучшений низкокачественной копии его потока, а сервер просто управляет тем, чтобы каждый клиент получил картинку того размера, которая нужна - не больше и не меньше (это полезно, например, при конференциях с большим количеством участников, когда размеры отображения разных участников могут быть разными).

Примечания[править | править код]