Выпуск #1/2009
С.Шапоткин.
Доставка видеоданных – анализ основных компонентов систем
Доставка видеоданных – анализ основных компонентов систем
Просмотры: 2414
При распространении видеоданных по телекоммуникационным сетям следует учитывать несколько факторов. Эти факторы влияют на качество приема конечным пользователем, поэтому они должны быть учтены на этапе планирования сети. В статье рассмотрены основные положения мультиплексирования, буферизации и шейпинга.
Мультиплексирование
Зачастую в сетях вещания видеоданных мультиплексирование необходимо для комбинирования нужного потока видеоданных из разных источников сигнала. Мультиплексирование необходимо по нескольким причинам. Во-первых, один большой поток легче доставить до потребителя и им легче управлять, чем несколькими маленькими потоками. Во-вторых, при объединении потоков с разными скоростями пик скорости одного из потоков может наложиться на спад скорости другого, что повлечет более эффективное использование ширины пропускания транспортной среды. В-третьих, некоторые транспортные каналы, такие как спутниковые или телекоммуникационные, имеют фиксированную ширину полосы пропускания на канал. При их использовании более экономичным будет наполнение таких каналов несколькими потоками видеоданных.
Конечно, добавление мультиплексора в систему увеличит стоимость самой системы, по крайней мере, со стороны передачи. Так же незначительно повысится и стоимость приемного оборудования, так как в его состав необходимо будет включить демультиплексор (в настоящее время выпущено большое количество недорогих приемных устройств, например, Set-Top-Box, работающих с мультипрограммными потоками). Мультиплексирование также может добавить небольшую временную задержку относительно исходного сигнала.
В настоящее время используют два типа мультиплексирования (рис.1): мультиплексирование с временным разделением (Time Division Multiplexing, TDM) и статистическое мультиплексирование (Statistical). Первый тип предполагает выделение фиксированного временного интервала из общей полосы пропускания для каждого канала. Принцип прост: пакеты из каждого входного потока размещаются во временные интервалы (слоты) общего выходного потока. Каждый временной слот имеет фиксированное значение. Во многих системах несколько временных слотов при необходимости могут объединяться. Размер временного слота не может быть изменен во время работы системы.
Статистическое мультиплексирование обеспечивает выделение каждому потоку своего временного интервала размером, соответствующим скорости данного потока в данный момент времени. Потоки с более высокими скоростями обеспечиваются более "широкими" временными слотами. Многие системы могут быть сконфигурированы на минимальную и максимальную величину временного слота для каждой программы. В большинстве систем ограничение по скорости потока диктуется максимальной скоростью выходного результирующего потока.
Мультиплексирование с временным разделением имеет такие преимущества, как простота и низкие накладные расходы. Его широко применяют в современных телекоммуникационных сетях, включая SONET/SDH. Для систем с фиксированной шириной канала данный вид мультиплексирования является наиболее эффективным. Однако, когда исходные видеоданные имеют переменные скорости или происходит переполнение полосы пропускания во время пиковых скоростей видеопотоков, будет наблюдаться потеря качества передачи. Системы с мультиплексированием на основе временного разделения имеют преимущество для задач типа "точка-точка", когда, например, необходимо обеспечить обмен видеопотоком между студией и передающим центром.
Рассмотрим такой пример. Канал связи спутниковой системы имеет следующие характеристики: скорость потока (SR) = 20.000 Мсимв/с, коррекция ошибок (Forward Error Correction, FEC) = 3/4. В результате ширина канала составит примерно 28 Гбит/с (20.000 Мсимв/с = 40.000 Мбит/с; с учетом FEC (3/4) = 30.000 Мбит/с; с учетом коррекции ошибок кодом Рида-Соломона (188/204) = 27.647 Мбит/с).
Статистическое мультиплексирование оправдывает себя в системах с переменными скоростями видеопотоков, когда пиковые скорости каждого потока не накладываются друг на друга. Видеопотоки обычно имеют переменные скорости, всплески которых приходятся на моменты с быстроменяющейся картинкой, а во время статичных сцен или сцен с небольшим движением скорость видеопотока минимальна. Преимущество статистического мультиплексирования основывается на малой вероятности того, что пики скоростей разных видеопотоков будут совпадать по времени друг с другом. Пиковая скорость суммарного потока получается намного меньше суммы пиковых скоростей исходных видеопотоков (рис.2).
Другой ключевой функцией мультиплексора видеопотоков является корректировка меток PTS (Presentation Time Stamp) и значений PCR (Program Clock Reference), содержащихся в MPEG-потоке. Данные поля вставляются в MPEG-поток кодерами, содержащими генератор 27 МГц, который служит для синхронизации декодеров. В декодере сигнал синхрогенератора восстанавливается из цифрового потока. Когда MPEG поток проходит через мультиплексор (статистический или другой), значения полей PTS и PCR должны быть пересчитаны и вставлены заново в каждый видеопоток. Причиной, по которой именно мультиплексор должен решать данную задачу, является наличие небольшой временной задержки между "перестановкой" пакета из исходного потока в результирующий. В противном случае декодеру потребовался бы более большой входной буфер данных, влекущий увеличение стоимости приемного оборудования.
К недостаткам статистических мультиплексоров можно отнести более высокую сложность устройства по сравнению с мультиплексорами с временным разделением и то, что для восстановления видеопотоков на приемной стороне необходимо наличие избыточной информации в общем потоке. Напомним, что сети Ethernet по сути являются статистически мультиплексированными сетями, так как узлы, посылающие больше информации, получают в свое распоряжение большую полосу пропускания благодаря механизму CSMA/CD (Carrier Sense Multiple Access и Collision Detection; CSMA определяет момент, когда рабочей станции следует послать сообщение, а CD разрешает ситуации, когда две (или более) рабочие станции пытаются передавать сообщения одновременно).
Переключение (switching) используется всякий раз, когда видеопоток необходимо перенаправить из одного потока в другой, например, когда программа со спутника вставляется в местный эфирный сигнал. При использовании мультиплексоров с временным разделением данный процесс очень прост. Переключатели используют соответствующий пакет из входных видеопотоков и вставят его вместо пакетов первичного источника видеоданных. При использовании статистических мультиплексоров задача имеет некоторое отличие: переключателю необходимо следить за всем содержимым входных потоков для поиска необходимых пакетов (напомним, что они могут появляться периодически или занимать большую часть полосы пропускания). Затем переключателю необходимо переключить данные пакеты, следя за тем, чтобы общая полоса пропускания не была переполнена в случае, когда переключаемая программа будет иметь высокую скорость. Данная проблема решается за счет увеличения буферной памяти.
При выборе типа мультиплексора необходимо учитывать три экономических фактора: цену мультиплексора в составе системы, стоимость демультиплексора на приемной стороне (в настоящее время данный фактор не столь актуален) и стоимость использования транспортной среды (собственной или арендованной).
Мультиплексирование на основе временного разделения просто, но не эффективно в плане использования полосы пропускания транспортной среды для задач доставки видеоданных. Статистическое мультиплексирование в настоящее время является более эффективным для такого рода задач, но и более дорогим инструментом.
Шейпинг
Шейпинг – ограничение пропускной способности канала для отдельного узла сети ниже технических возможностей канала до узла. Шейпинг видеопотока используют для преобразования исходного видеопотока к виду, удобному для передачи и обработки в телекоммуникационных сетях. Для шейпинга может использоваться множество методик, но в большинстве систем шейпинг сводится к уменьшению внезапных всплесков скорости видеопотока. Видеопоток, подвергнутый шейпингу, содержит относительно небольшие пики скоростей (рис.3). В некоторых случаях они (пики) могут вообще отсутствовать.
В общих случаях сети функционируют более эффективно, когда видеопотоки в сети подвергнуты шейпингу. К примеру, если группа видеопотоков имеет среднюю скорость 20, а пиковую – 50 Мбит/с, то канал с интерфейсными модулями OC3 или STM-1 способен "пропустить" только три таких видеопотока. С другой стороны, группа видеопотоков со средней скоростью 20 и пиковой – 30 Мбит/с может состоять из пяти видеопотоков в том же канале OC3/STM-1. В первом случае утилизация канала составит 40% (три потока по 20 Мбит/с в канале с пропускной способностью 155,52 Мбит/с), а во втором – уже 66% (пяти потоков по 20 Мбит/с в том же канале 155,52 Мбит/с).
Обычные видеопотоки содержат большое количество всплесков скоростей. Например, в видеопотоке MPEG-2 фрейм I-типа требует намного больше данных, чем фрейм B-типа, даже если они оба отображают одинаковое время в видеосигнале (33 мс для NTCS и 40 мс для PAL/SECAM). Поэтому кодер MPEG-2 формирует видеопоток со всплесками вне зависимости от того, когда создается фрейм I-типа. В то же время MPEG-2 и другие системы сжатия основываются на том факте, что в видеосигнале следующий кадр приблизительно похож на предыдущий и всякий раз, когда происходит смена сцены, необходимо передать большее количество информации.
Один из вариантов шейпинга носит название "leaky bucket" (протекающее ведро), названный так за сходство с ведром с небольшим отверстием на дне, где отверстие формирует выходной поток данных. Всякий раз, когда кодер подготовил пакет данных, происходит "вливание порции воды в ведро". Если данный пакет означает фрейм I-типа (смену сцены), то количество воды – большое, а если – В-типа, то добавляется небольшое количество воды. Если размер отверстия достаточно велик, то ведро никогда не переполнится и выходной поток будет постоянным. Если данные поступают слишком быстро, то "ведро" переполнится, что выразится в потере данных MPEG-кадра. Возникает соблазн использовать большое ведро. Но увеличение "ведра" отразится на "гладкости" видеоизображения, так как данные поступают в "ведро" и дожидаются, пока они оттуда "вытекут". Это означает появление задержек в видеосигнале.
В настоящее время большинство MPEG-кодеров имеют встроенные функции шейпинга. Шейпинг увеличивает количество каналов, которое может быть передано по сети, а также делает транспортный поток более предсказуемым, что упрощает обслуживание сетей и сетевого оборудования. Однако использовать шейпинг для видеопотоков следует с осторожностью из-за возможного возникновения их задержек.
Буферизация
Под буфером понимается выделенная память, которая используется под временное хранение информации перед каким-либо действием – передача по сети, шифрование и т.п. Буферизация широко используется в задачах по обработке видеопотоков и может иметь наибольшее влияние на производительность видеосистем.
В MPEG-задачах также требуется буферизация. Она используется на кодирующей и декодирующей стороне для выполнения задач предсказания в сценах с движением. Буферизация, сравнивая последующие кадры, позволяет определить, какие части кадра изменились, а какие – не изменились. Буферизация используется также для пересортировки кадров, что позволяет использовать фреймы B-типа. MPEG-кодер при кодировании потока должен учитывать тот факт, что размер буфера в MPEG-декодере никогда не должен быть переполнен.
Коррекция ошибок также требует использования буферной памяти. Обычно весь пакет должен быть соответствующим образом обработан, чтобы к нему можно было добавить код FEC, отвечающий за восстановление в случае ошибки.
Буферизация также используется и на приемной стороне. Буферная память необходима для сглаживания эффекта неравномерности поступления данных, характерных для статистического мультиплексирования и коммутации. Другой тип буфера необходим для выполнения операций с FEC. В зависимости от транспортной сети* размер буфера может быть маленьким или большим.
Для одностороннего распространения видеоинформации общее значение задержки распространения сигнала может быть достаточно большим (до 5–10 с). Такое время задержки можно использовать даже во благо. Например, в программах прямого эфира, в случае, когда участники программы затевают какую-либо ругань, режиссер может своевременно "вырезать" бракованный материал.
С другой стороны, интерактивный или двусторонний видеообмен очень чувствителен к временным задержкам. Увеличение времени задержки затрудняет процесс общения. Приведенная таблица рекомендаций G.114 Международного телекоммуникационного сообщества (International Telecommunication Union, ITU) относится к системам двустороннего видеообмена и определяет время задержки сигнала при передаче в одну сторону.
Большая буферная память на приемной стороне может решить большинство сетевых проблем. Если часть пакетов временно теряется, они могут быть вставлены в нужную позицию основного потока при повторной передаче. Если поступление пакетов в ресивер идет неравномерно, то буферная память обеспечит сглаживание потока данных для декодера. Буферная память также является идеальным местом для обработки возможных ошибок и коррекции пакетов на основе FEC.
Большая буферная память распространена в системах IP-вещания. В настоящее время такая память способна хранить 10–20 с видео- и звуковой информации. Во время наполнения буфера пользователю обычно выводится информация в виде процента готовности к показу (в цифровом виде или в виде удлиняющейся полосы). Основное назначение буферной памяти – предотвращение возникновения пауз при просмотре. При "опустошении" буферной памяти картинка замирает. К сожалению, для задач реального времени, таких как видеоконференция, использование большой буферной памяти нежелательно, так как в этом случае увеличивается время задержки.
Обобщим преимущества буферизации. Большой буфер может сгладить большинство сетевых проблем, таких как неравномерное поступление пакетов и поступление пакетов в неправильной очередности. Буферизация необходима для MPEG-сжатия, для задач предсказывания. Если используется фрейм B-типа, то дополнительная буферизация необходима для использования данных из предыдущих кадров. Буферизация помогает решать задачи шейпинга, коррекции ошибок (FEC) и упорядочивания последовательности пакетов.
Какова же "плата" за буферизацию? Буфер добавляет временную задержку. Большой размер буферной памяти ведет к невозможности проведения видеоконференций и интерактивного вещания. Задержка распространения сигнала не должна превышать 150 мс. Для задач, не требующих выполнения в реальном времени, большая временная задержка на наполнение буфера ведет к неудобствам для пользователя.
Этот краткий анализ плюсов и минусов буферизации завершим экономическим аспектом: буферная память увеличивает стоимость как кодеров, так и декодеров.
Зачастую в сетях вещания видеоданных мультиплексирование необходимо для комбинирования нужного потока видеоданных из разных источников сигнала. Мультиплексирование необходимо по нескольким причинам. Во-первых, один большой поток легче доставить до потребителя и им легче управлять, чем несколькими маленькими потоками. Во-вторых, при объединении потоков с разными скоростями пик скорости одного из потоков может наложиться на спад скорости другого, что повлечет более эффективное использование ширины пропускания транспортной среды. В-третьих, некоторые транспортные каналы, такие как спутниковые или телекоммуникационные, имеют фиксированную ширину полосы пропускания на канал. При их использовании более экономичным будет наполнение таких каналов несколькими потоками видеоданных.
Конечно, добавление мультиплексора в систему увеличит стоимость самой системы, по крайней мере, со стороны передачи. Так же незначительно повысится и стоимость приемного оборудования, так как в его состав необходимо будет включить демультиплексор (в настоящее время выпущено большое количество недорогих приемных устройств, например, Set-Top-Box, работающих с мультипрограммными потоками). Мультиплексирование также может добавить небольшую временную задержку относительно исходного сигнала.
В настоящее время используют два типа мультиплексирования (рис.1): мультиплексирование с временным разделением (Time Division Multiplexing, TDM) и статистическое мультиплексирование (Statistical). Первый тип предполагает выделение фиксированного временного интервала из общей полосы пропускания для каждого канала. Принцип прост: пакеты из каждого входного потока размещаются во временные интервалы (слоты) общего выходного потока. Каждый временной слот имеет фиксированное значение. Во многих системах несколько временных слотов при необходимости могут объединяться. Размер временного слота не может быть изменен во время работы системы.
Статистическое мультиплексирование обеспечивает выделение каждому потоку своего временного интервала размером, соответствующим скорости данного потока в данный момент времени. Потоки с более высокими скоростями обеспечиваются более "широкими" временными слотами. Многие системы могут быть сконфигурированы на минимальную и максимальную величину временного слота для каждой программы. В большинстве систем ограничение по скорости потока диктуется максимальной скоростью выходного результирующего потока.
Мультиплексирование с временным разделением имеет такие преимущества, как простота и низкие накладные расходы. Его широко применяют в современных телекоммуникационных сетях, включая SONET/SDH. Для систем с фиксированной шириной канала данный вид мультиплексирования является наиболее эффективным. Однако, когда исходные видеоданные имеют переменные скорости или происходит переполнение полосы пропускания во время пиковых скоростей видеопотоков, будет наблюдаться потеря качества передачи. Системы с мультиплексированием на основе временного разделения имеют преимущество для задач типа "точка-точка", когда, например, необходимо обеспечить обмен видеопотоком между студией и передающим центром.
Рассмотрим такой пример. Канал связи спутниковой системы имеет следующие характеристики: скорость потока (SR) = 20.000 Мсимв/с, коррекция ошибок (Forward Error Correction, FEC) = 3/4. В результате ширина канала составит примерно 28 Гбит/с (20.000 Мсимв/с = 40.000 Мбит/с; с учетом FEC (3/4) = 30.000 Мбит/с; с учетом коррекции ошибок кодом Рида-Соломона (188/204) = 27.647 Мбит/с).
Статистическое мультиплексирование оправдывает себя в системах с переменными скоростями видеопотоков, когда пиковые скорости каждого потока не накладываются друг на друга. Видеопотоки обычно имеют переменные скорости, всплески которых приходятся на моменты с быстроменяющейся картинкой, а во время статичных сцен или сцен с небольшим движением скорость видеопотока минимальна. Преимущество статистического мультиплексирования основывается на малой вероятности того, что пики скоростей разных видеопотоков будут совпадать по времени друг с другом. Пиковая скорость суммарного потока получается намного меньше суммы пиковых скоростей исходных видеопотоков (рис.2).
Другой ключевой функцией мультиплексора видеопотоков является корректировка меток PTS (Presentation Time Stamp) и значений PCR (Program Clock Reference), содержащихся в MPEG-потоке. Данные поля вставляются в MPEG-поток кодерами, содержащими генератор 27 МГц, который служит для синхронизации декодеров. В декодере сигнал синхрогенератора восстанавливается из цифрового потока. Когда MPEG поток проходит через мультиплексор (статистический или другой), значения полей PTS и PCR должны быть пересчитаны и вставлены заново в каждый видеопоток. Причиной, по которой именно мультиплексор должен решать данную задачу, является наличие небольшой временной задержки между "перестановкой" пакета из исходного потока в результирующий. В противном случае декодеру потребовался бы более большой входной буфер данных, влекущий увеличение стоимости приемного оборудования.
К недостаткам статистических мультиплексоров можно отнести более высокую сложность устройства по сравнению с мультиплексорами с временным разделением и то, что для восстановления видеопотоков на приемной стороне необходимо наличие избыточной информации в общем потоке. Напомним, что сети Ethernet по сути являются статистически мультиплексированными сетями, так как узлы, посылающие больше информации, получают в свое распоряжение большую полосу пропускания благодаря механизму CSMA/CD (Carrier Sense Multiple Access и Collision Detection; CSMA определяет момент, когда рабочей станции следует послать сообщение, а CD разрешает ситуации, когда две (или более) рабочие станции пытаются передавать сообщения одновременно).
Переключение (switching) используется всякий раз, когда видеопоток необходимо перенаправить из одного потока в другой, например, когда программа со спутника вставляется в местный эфирный сигнал. При использовании мультиплексоров с временным разделением данный процесс очень прост. Переключатели используют соответствующий пакет из входных видеопотоков и вставят его вместо пакетов первичного источника видеоданных. При использовании статистических мультиплексоров задача имеет некоторое отличие: переключателю необходимо следить за всем содержимым входных потоков для поиска необходимых пакетов (напомним, что они могут появляться периодически или занимать большую часть полосы пропускания). Затем переключателю необходимо переключить данные пакеты, следя за тем, чтобы общая полоса пропускания не была переполнена в случае, когда переключаемая программа будет иметь высокую скорость. Данная проблема решается за счет увеличения буферной памяти.
При выборе типа мультиплексора необходимо учитывать три экономических фактора: цену мультиплексора в составе системы, стоимость демультиплексора на приемной стороне (в настоящее время данный фактор не столь актуален) и стоимость использования транспортной среды (собственной или арендованной).
Мультиплексирование на основе временного разделения просто, но не эффективно в плане использования полосы пропускания транспортной среды для задач доставки видеоданных. Статистическое мультиплексирование в настоящее время является более эффективным для такого рода задач, но и более дорогим инструментом.
Шейпинг
Шейпинг – ограничение пропускной способности канала для отдельного узла сети ниже технических возможностей канала до узла. Шейпинг видеопотока используют для преобразования исходного видеопотока к виду, удобному для передачи и обработки в телекоммуникационных сетях. Для шейпинга может использоваться множество методик, но в большинстве систем шейпинг сводится к уменьшению внезапных всплесков скорости видеопотока. Видеопоток, подвергнутый шейпингу, содержит относительно небольшие пики скоростей (рис.3). В некоторых случаях они (пики) могут вообще отсутствовать.
В общих случаях сети функционируют более эффективно, когда видеопотоки в сети подвергнуты шейпингу. К примеру, если группа видеопотоков имеет среднюю скорость 20, а пиковую – 50 Мбит/с, то канал с интерфейсными модулями OC3 или STM-1 способен "пропустить" только три таких видеопотока. С другой стороны, группа видеопотоков со средней скоростью 20 и пиковой – 30 Мбит/с может состоять из пяти видеопотоков в том же канале OC3/STM-1. В первом случае утилизация канала составит 40% (три потока по 20 Мбит/с в канале с пропускной способностью 155,52 Мбит/с), а во втором – уже 66% (пяти потоков по 20 Мбит/с в том же канале 155,52 Мбит/с).
Обычные видеопотоки содержат большое количество всплесков скоростей. Например, в видеопотоке MPEG-2 фрейм I-типа требует намного больше данных, чем фрейм B-типа, даже если они оба отображают одинаковое время в видеосигнале (33 мс для NTCS и 40 мс для PAL/SECAM). Поэтому кодер MPEG-2 формирует видеопоток со всплесками вне зависимости от того, когда создается фрейм I-типа. В то же время MPEG-2 и другие системы сжатия основываются на том факте, что в видеосигнале следующий кадр приблизительно похож на предыдущий и всякий раз, когда происходит смена сцены, необходимо передать большее количество информации.
Один из вариантов шейпинга носит название "leaky bucket" (протекающее ведро), названный так за сходство с ведром с небольшим отверстием на дне, где отверстие формирует выходной поток данных. Всякий раз, когда кодер подготовил пакет данных, происходит "вливание порции воды в ведро". Если данный пакет означает фрейм I-типа (смену сцены), то количество воды – большое, а если – В-типа, то добавляется небольшое количество воды. Если размер отверстия достаточно велик, то ведро никогда не переполнится и выходной поток будет постоянным. Если данные поступают слишком быстро, то "ведро" переполнится, что выразится в потере данных MPEG-кадра. Возникает соблазн использовать большое ведро. Но увеличение "ведра" отразится на "гладкости" видеоизображения, так как данные поступают в "ведро" и дожидаются, пока они оттуда "вытекут". Это означает появление задержек в видеосигнале.
В настоящее время большинство MPEG-кодеров имеют встроенные функции шейпинга. Шейпинг увеличивает количество каналов, которое может быть передано по сети, а также делает транспортный поток более предсказуемым, что упрощает обслуживание сетей и сетевого оборудования. Однако использовать шейпинг для видеопотоков следует с осторожностью из-за возможного возникновения их задержек.
Буферизация
Под буфером понимается выделенная память, которая используется под временное хранение информации перед каким-либо действием – передача по сети, шифрование и т.п. Буферизация широко используется в задачах по обработке видеопотоков и может иметь наибольшее влияние на производительность видеосистем.
В MPEG-задачах также требуется буферизация. Она используется на кодирующей и декодирующей стороне для выполнения задач предсказания в сценах с движением. Буферизация, сравнивая последующие кадры, позволяет определить, какие части кадра изменились, а какие – не изменились. Буферизация используется также для пересортировки кадров, что позволяет использовать фреймы B-типа. MPEG-кодер при кодировании потока должен учитывать тот факт, что размер буфера в MPEG-декодере никогда не должен быть переполнен.
Коррекция ошибок также требует использования буферной памяти. Обычно весь пакет должен быть соответствующим образом обработан, чтобы к нему можно было добавить код FEC, отвечающий за восстановление в случае ошибки.
Буферизация также используется и на приемной стороне. Буферная память необходима для сглаживания эффекта неравномерности поступления данных, характерных для статистического мультиплексирования и коммутации. Другой тип буфера необходим для выполнения операций с FEC. В зависимости от транспортной сети* размер буфера может быть маленьким или большим.
Для одностороннего распространения видеоинформации общее значение задержки распространения сигнала может быть достаточно большим (до 5–10 с). Такое время задержки можно использовать даже во благо. Например, в программах прямого эфира, в случае, когда участники программы затевают какую-либо ругань, режиссер может своевременно "вырезать" бракованный материал.
С другой стороны, интерактивный или двусторонний видеообмен очень чувствителен к временным задержкам. Увеличение времени задержки затрудняет процесс общения. Приведенная таблица рекомендаций G.114 Международного телекоммуникационного сообщества (International Telecommunication Union, ITU) относится к системам двустороннего видеообмена и определяет время задержки сигнала при передаче в одну сторону.
Большая буферная память на приемной стороне может решить большинство сетевых проблем. Если часть пакетов временно теряется, они могут быть вставлены в нужную позицию основного потока при повторной передаче. Если поступление пакетов в ресивер идет неравномерно, то буферная память обеспечит сглаживание потока данных для декодера. Буферная память также является идеальным местом для обработки возможных ошибок и коррекции пакетов на основе FEC.
Большая буферная память распространена в системах IP-вещания. В настоящее время такая память способна хранить 10–20 с видео- и звуковой информации. Во время наполнения буфера пользователю обычно выводится информация в виде процента готовности к показу (в цифровом виде или в виде удлиняющейся полосы). Основное назначение буферной памяти – предотвращение возникновения пауз при просмотре. При "опустошении" буферной памяти картинка замирает. К сожалению, для задач реального времени, таких как видеоконференция, использование большой буферной памяти нежелательно, так как в этом случае увеличивается время задержки.
Обобщим преимущества буферизации. Большой буфер может сгладить большинство сетевых проблем, таких как неравномерное поступление пакетов и поступление пакетов в неправильной очередности. Буферизация необходима для MPEG-сжатия, для задач предсказывания. Если используется фрейм B-типа, то дополнительная буферизация необходима для использования данных из предыдущих кадров. Буферизация помогает решать задачи шейпинга, коррекции ошибок (FEC) и упорядочивания последовательности пакетов.
Какова же "плата" за буферизацию? Буфер добавляет временную задержку. Большой размер буферной памяти ведет к невозможности проведения видеоконференций и интерактивного вещания. Задержка распространения сигнала не должна превышать 150 мс. Для задач, не требующих выполнения в реальном времени, большая временная задержка на наполнение буфера ведет к неудобствам для пользователя.
Этот краткий анализ плюсов и минусов буферизации завершим экономическим аспектом: буферная память увеличивает стоимость как кодеров, так и декодеров.
Отзывы читателей