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

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

Для таких действий, как просмотр Web-страниц, видеороликов, скачивание файлов и многие другие, важна пропускная способность канала. А для онлайн-просмотра HD-видео устройство должно обладать соответствующей производительностью: если ресурсов процессора недостаточно для декодирования и отображения, качественного показа ожидать не приходится.

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

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

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

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

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

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

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

Что же такое «производные FEC-пакеты»? Пусть A, B, C, D — исходные пакеты данных, а F(A,B), F(C,D) — производные FEC-пакеты. Если будет потерян пакет B, то при помощи пакетов A и F(A,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%.

Помехоустойчивое кодирование для ВКС
Рисунок 1. Перемешивание пакетов.

 

Помехоустойчивое кодирование для ВКС
Рисунок 2. Распределение групповой потери после восстановления исходной последовательности пакетов.

 

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

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

Александр Славецкий — ведущий разработчик компании Mind.