Доставка видеоданных - анализ основных компонентов систем


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

Мультиплексирование

Зачастую в сетях вещания видео данных мультиплексирование необходимо для комбинирования нужного потока видеоданных из разных источников сигнала. Мультиплексирование необходимо по следующим причинам:

  • Один большой поток легче доставить до потребителя и им легче управлять, чем несколькими маленькими потоками
  • При объединении потоков с разными скоростями, пик скорости одного из потоков может наложиться на спад  скорости другого потока, что повлечет более эффективное использование ширины пропускания транспортной среды
  • Некоторые транспортные каналы, такие как спутниковые или телекоммуникацинные каналы, имеют фиксированную ширину полосы пропускания на канал. При их использовании более экономичным будет наполнение таких каналов несколькими потоками видеоданных.

Конечно, добавление мультиплексора в систему, увеличит стоимость самой системы, по крайней мере со стороны передачи. Так же незначительно повысится и стоимость приемного оборудования, т.к. в его состав необходимо будет включить демультиплексор (в настоящее время выпущено большое количество недорогих приемных устройств (Set-Top-Box) работающих с мультипрограммными потоками). Мультиплексирование также может добавить небольшую временнУю задержку относительно исходного сигнала.

В настоящее время используется два типа мультиплексирования:

  • Мультиплексирование с временным разделением (Time Division Multiplexing - TDM) - предполагает выделение фиксированного временного интервала из общей полосы пропускания для каждого из канала. Принцип прост: пакеты из каждого входного потока размещаются во временные интервалы (слоты) общего выходного потока. Каждый временной слот имеет фиксированное значение. Во многих системах несколько временных слотов могут быть объединены в зависимости от потребности. Размер временного слота не может быть изменено во время работы системы.
  • Статистическое мультиплексирование (Statistical) - обеспечивает выделение каждому потоку своего временного интервала размером, соответствующим скорости данного потока в данный момент времени. Потоки с более высокими скоростями обеспечиваются более "широкими" временными слотами. Многие системы могут быть сконфигурированы на минимальную и максимальную величину временного слота для каждой программы. В большинстве систем ограничение по скорости потока диктуется максимальной скоростью выходного результирующего потока

Мультиплексирование с временным разделением имеет преимущества будучи простым и имеющим низкие накладные расходы. Оно широко используется в современных телекоммуникационных сетях, включая SONET/SDH. Для систем с фиксированной шириной канала данный вид мультиплексирования является наиболее эффективным. Однако, когда исходные видеоданные имеют переменные скорости или происходит переполнение полосы пропускания во время пиковых скоростей видеопотоков, будет наблюдаться потеря качества передачи. Системы с мультиплекисрованием на основе временного разделения имеют преимущество для задач типа "точка-точка", когда, например,  необходимо обеспечить обмен видеопотоком между студией и передающим центром.

Пример: канал связи спутниковой системы имеет следующие характеристки - SR=20.000 MS/s, FEC=3/4. В результате ширина канала составит  примерно 28 Mbps:

20.000 MS/s = 40.000 Mbps

минус 3/4 = 30.000 Mbps

минус 188:204 на Reed-Solomon кодирование = 27.647 Mbps

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

Пиковая скорость суммарного потока получилась намного меньше суммы пиковых скоростей исходных видеопотоков.

Другой ключевой функцией мультиплексора видеопотоков является  корректировка меток PTS (presentation time stamp) и значений PCR (program clock reference), содержащихся в MPEG потоке. Данные поля вставляются в MPEG поток кодерами, содержащими генератор 27МГц и служащим для синхронизации декодеров. В декодере сигнал синхрогенератора восстанавливается из цифрового потока. Когда MPEG поток проходит через мультиплексор (статистический или другой) значения полей PTS и PCR должны быть пересчитаны и вставлены заново в каждый видеопоток. Причиной, по которой именно мультиплексор должен решать данную задачу, является наличие небольшой временной задержки между "перестановкой" пакета из исходного потока в результирующий. В противном случае декодеру потребовался бы более большой входной буфер данных, влекущий увеличение стоимости приемного оборудования.

К недостаткам статистических мультиплексоров можно отнести более высокую сложность устройства по сравнению с мультиплексорами с временным разделением и что для восстановления видеопотоков на приемной стороне необходимо наличие избыточной информации в общем потоке . Напомним, что Ethernet сети по сути являются статистически мультиплексированными сетями, т.к. узлы посылающие больше информации получают в свое распоряжение большую полосу пропускания благодаря механизму CSMA/CD.

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

При выборе типа мультиплексора необходимо учитывать три фактора:

  1. Цена мультиплексора в составе системы
  2. Стоимость демультиплексора на приемной стороне (в настоящее время данный фактор не столь актуален)
  3. Стоимость использования транспортной среды (собственной или арендованной)

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

"Шейпинг" (shaping)

"Шейпинг" видеопотока используется для преобразования исходного видеопотока к виду, удобному для передачи и обработки в телекоммуникационных сетях. Для шейпинга может использоваться множество методик, но в большинстве систем шейпинг сводится к уменьшению внезапных всплесков скорости видеопотока. Видеопоток, подвергнутый шейпингу содержит относительно небольшие пики скоростей (или вообще без таковых). Следующий рисунок объясняет суть шейпинга:

В общих случаях сети функционируют более эффективно, когда видеопотоки в сети подвергнуты шейпингу. К примеру, если группа видеопотоков имеет среднюю скорость 20 Mbps и пиковую скорость 50 Mbps, то канал OC3 или STM-1 способен "пропустить" только три таких видеопотока. С другой стороны, группа видеопотоков со средней скоростью 20 Mbps и пиковой 30 Mbps, может состоять из 5 видеопотоков в том же канале OC3/STM-1. В первом случае утилизация канала составит 40% (3 потока по 20Mbps в 150Mbps канале), а во втором случае уже 66% (5 потоков по 20 Mbps в 150Mbps канале).

Обычные видеопотоки содержат большое количество всплесков скоростей. Например, в видеопотоке MPEG-2 фрейм I-типа требует намного больше данных, чем фрейм B-типа, даже если они оба отображают одинаковое время в видеосигнале (33 мсек для NTCS и 40 мсек для PAL/SECAM). Поэтому MPEG-2 кодер формирует видеопоток со всплесками вне зависимости от того, когда создается фрейм I-типа. В то же время MPEG-2 и другие системы сжатия основываются на том факте, что в видеосигнале следующий кадр приблизительно похож на предыдущий и всякий раз, когда происходит смена сцены, необходимо передать большее количество информации.

Один из вариантов шейпинга носит название "leaky bucket" (протекающее ведро), названный так за сходство с ведром с небольшим отверстием на дне, где отверстие означает выходной поток данных. Всякий раз, когда кодер подготовил пакет данных, происходит "вливание порции воды в ведро". Если данный пакет означает фрейм I-типа (смену сцены), то количество воды - большое. Если фрейм В-типа, то добавляется небольшое количество воды. Если размер отверстия достаточно велик, то ведро никогда не переполнится и выходной поток будет постоянным. Если данные поступают слишком быстро, то "ведро" переполнится, что выразится в потере данных MPEG кадра. Возникает соблазн использовать большое ведро. Но увеличение "ведра" отразится на "гладкости" видеоизображения: данные поступают в "ведро" и дожидаются, пока они оттуда "вытекут", что означает появление задержек в видеосигнале.

В настоящее время большинство MPEG кодеров имеют встроенные функции шейпинга. Шейпинг увеличивает количество каналов, которое может быть передано по сети, а также делает транспортный поток более предсказуемым, что упрощает обслуживание сетей и сетевого оборудования. Однако, используя шейпинг для видеопотоков, следует быть осторожным, т.к. возможно возникновение задержек в видеопотоках.

Буферизация

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

В MPEG задачах также требуется буферизация. Она используется на кодирующей и декодирующей стороне для выполнения задач предсказания в сценах с движением, сравнивающие последующие кадры для определения какие части кадра изменились, а какие остались как и в предыдущем. Буферизация используется так же для пересортировки кадров, что позволяет использовать фреймы B-типа. MPEG кодер, при кодировании потока, должен учитывать тот факт, что размер буфера в MPEG декодере никогда не должен переполняться.

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

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

Для одностороннего распространения видеоинформации общее значение задержки распространения сигнала может быть достаточно большим (до 5~10 сек). Такое время задержки может даже использоваться во благо. Например, в программах прямого эфира, в случае когда участники программы затевают какую-либо ругань, режиссер может своевременно "вырезать" бракованный материал.

С другой стороны, интерактивный или двусторонний видеообмен очень чувствителен к временным задержкам. Увеличение времени задержки затрудняет процесс общения. Приведенная таблица рекомендаций G.114 Международного Телекоммуникационного сообщества (International Telecommunication Union, ITU) относится к системам двустороннего видеообмена и определяет время задержки сигнала при передачи в одну сторону.

Задержка Восприятие
0~140 мсек Незначительное или незаметное ухудшение по сравнения с непосредственным общением. Приемлемо для большинства участников.
140~400 мсек Заметное ухудшение. Приемлемо для использования в большинстве задач
более 400 мсек  Не приемлемо для большинства задач. Требуется перепланировка сети. Может быть использовано только в исключительных случаях

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

Большая буферная память распространена в системах IP вещания. В настоящее время такая память способна хранить до 10~20 секунд видео и звуковой информации. Во время наполнения буфера пользователю обычно выводится информация в виде процента готовности к показу (в цифровом виде или в виде удлиняющейся полосы). Основное назначение буферной памяти - предотвращение возникновения пауз при просмотре. При "опустошении" буферной памяти картинка замирает. К сожалению, для задач реального времени, таких как видеоконференция, использование большой буферной памяти нежелательно, т.к. в этом случае увеличивается время задержки.

Преимущества буферизации:

  • Большой буфер может сгладить большинство сетевых проблем, таких как неравномерное поступление пакетов и поступление пакетов в неправильной очередности
  • Буферизация обязательна для MPEG сжатия, для задач предсказывания. Если используется фрейм B-типа, то дополнительная буферизация необходима для использования данных из предыдущих кадров.
  • Буферизация помогает решать задачи шейпинга, FEC и упорядочивание последовательности пакетов.

"Плата" за буферизацию:

  • Буфер добавляет временную задержку. Большой размер буферной памяти ведет к невозможности проведения видеоконференций и интерактивного вещания. Задержка распространения сигнала не должна превышать 150 мсек.
  • Для задач, не требующих выполнения в реальном времени, большая временная задержка на наполнение буфера ведет к неудобствам для пользователя.
  • Буферная память увеличивает стоимость как кодеров, так и декодеров.