О развитии алгоритмов помехоустойчивого кодирования для ВКС. Об их развитии -- Александр Славецкий, ведущий разработчик компании Mind

 

Чем определяются «потребительские свойства» Интернет? В первую очередь -- объемом информационных ресурсов и услуг. Во вторую – характеристиками устройства доступа к Сети: производительность, экран, программное обеспечение, удобство использования. С точки зрения специалиста, ответ не может быть полным без учета качества канала, с помощью которого через устройство доступа интернет-сервис предоставляется пользователю.

Безусловно, есть множество интернет-услуг и протоколов, для которых качество канала не имеет первостепенного значения. Например, для функционирования электронной почты (обычная переписка без передачи «тяжелых» файлов): здесь нужна сама возможность установить соединение и перекачать пачку информации.
Для таких действий как просмотр web-страниц, видео в интернете, скачивание файлов и многих других важна пропускная способность канала. А для просмотра HD-видео в интернете также нужна соответствующая производительность устройства: если не достаточно ресурсов процессора для декодирования и отображения видео, качественного видео мы не увидим.

На заре развития интернет-сервисов ВКС, когда основные устройства доступа в интернет – декстопы и лэптопы – были не слишком мощными, а интернет-каналы – низкоскоростными, началась разработка движков для ВКС-клиентов, которые должны были решать обе проблемы: справляться c плохой сетью и контролировать при этом ресурсы слабых компьютеров.

Позже, когда мобильные беспроводные гаджеты ещё не были так распространены как сейчас, но компьютеры уже стали гораздо мощнее, а сеть – достаточно производительной, появились и весьма успешно используются до сих пор ряд программ ВКС-клиентов, которые просты в своей реализации контроля качества сети и ресурсов. Однако это есть их недостаток: если на эти ВКС клиенты подавать поток аудио- и видео-пакетов даже с незначительными биениями и групповыми потерями, то видео получается плохого качества, изображение разваливается, теряется синхронизация между аудио и видео, возникает аудио с провалами. А при более низких параметрах канала видео уже не прорисовывается, и соединение разрывается. При этом, если замерить пропускную способность канала, то среднее значение будет большим. Это говорит о том, что для виде-конференц-связи важна не только пропускная способность, но и другие параметры канала.

Беспроводный доступ для ВКС  – не лучший вариант, потому что именно для него характерны фоновые групповые потери, большие плавающие задержки передачи пакетов и биения времени прихода пакетов, как раз ровно те проблемы, которые существенно снижают качество сеанса связи ВКС. В случае беспроводного доступа при переходе между зонами точек доступа возникают длительные остановки в передаче вплоть до разрывов соединений. При этом не соответствующее потребностям сервиса качество канала не компенсируется качеством устройств доступа к сети: производительность большинства современных мобильных устройств, на которые стремительно перемещается ВКС, пока недостаточна для обработки качественного видео с минимальной задержкой.

Ситуация выглядит так, как будто условия существования ВКС-клиентов откатились обратно. И алгоритмы ВКС, умеющие с этим бороться, снова стали востребованы. В качестве примера можно привести алгоритмы мобильных ВКС-клиентов, которые противостоят потерям пакетов в беспроводных сетях. Сейчас достаточно популярен движок на базе WebRTC, который предоставляет целый ряд способов решения этих проблем:

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

Это современные способы борьбы с потерями в сети, закладываемые в уже готовые промышленные сервисы. Эффект от их использования может быть значительно повышен за счет дополнительных специально разработанных алгоритмов. Примеры таких алгоритмов – ниже.

Избыточность, закладываемая в передаваемое кодированное видео, может использовать  только производные FEC-пакеты, что увеличивает вероятность восстановления потери при меньшем избыточном битрейте, и даёт большую гибкость для реализации адаптируемого алгоритма описанного далее.

Поясним, что такое «производные FEC-пакеты» на примере: пусть A,B,C,D – исходные пакеты данных,  F(A,B), F(C,D) – производные FEC-пакеты, скажем, если будет потерян пакет B, то используя пакет A и F(A,B) потерянный пакет B восстанавливается. Но если из набора A,B,F(A,B) будут потеряна группа из двух пакетов, то не удастся восстановить все потерянные пакеты.

В стандартных схемах, производные FEC пакеты отправляются вместе с исходными. Например: A,B, F(A,B), C,D, F(C,D). Такая схема удобна тем, что если приёмник не поддерживает алгоритм избыточности FEC, то он всё равно сможет принимать исходные пакеты, но такая схема имеет больший избыточный битрейт.

А вот пример схемы, где в сеть передаются только производные FEC-пакеты:
F(A,B), F(A,C), F(A,B,C), F(C,D).
При одной и той же возможности восстанавливать пакеты, такая схема будет иметь меньший битрейт.

Перемешивание (Interleaved FEC) потока производных избыточных пакетов перед передачей в сеть. Перемешивание применяется на определённую глубину и шаг, величины которых так же связаны со схемой FEC, в зависимости от статистики группирования потерянных пакетов на приёмнике. Вот пример перемешивания пакетов с глубиной 10 и шагом 3:
Исходная последовательность:
0,1,2,3,4,5,6,7,8,9,10,11...
После перемешивания:
0,3,6,9,2,5,8,1,4,7,10,13,...

И если группа потерянных пакетов меньше адаптивно выбранной глубины перемешивания, то после упорядочивания пакетов потерянные пакеты равномерно распределятся на глубину перемешивания, что будет достаточно для их восстановления адаптивно выбранной схемой FEC (см. Рисунок 1 и Рисунок 2). Это позволяет значительно снизить величину самой избыточности и держать её на минимальном значении, например, 25-30%.

О развитии алгоритмов помехоустойчивого кодирования для ВКС

Компания Mind одной из первых реализовала алгоритм Interleaved FEC в своих системах конференц-связи. Причем параметры этого алгоритма оптимизированы для использования в беспроводных сетях.

Набор перечисленных технологий при одновременной работе дает эффект отсутствия искажений в видео даже в сети со значительными потерями.

Если рассмотреть развитие способов доступа к информации в интернет и к услугам ВКС через интернет, то очевидно: мобильные устройства и беспроводная связь используются все шире. Вектор развития Интернет направлен в сторону расширения зон доступа, увеличения количества и типов пользовательских устройств. Но это вовсе не способствует упрощению алгоритмов, необходимых, чтобы обеспечить хорошее качество ВКС. Ситуация выглядит скорее противоположной: алгоритмы становятся сложнее, но при этом происходит их стандартизация. Поэтому, производителям решений ВКС теперь приходится с одной стороны не отставать от стандартов, а с другой — работать в сторону развития конкурентных преимуществ своих решений.