- •«Томский политехнический университет»
- •Е.С. Чердынцев мультимедийные сети
- •Глава 1. Введение в мультимедиа
- •1.1. Классификация мультимедиа
- •1.2. Текст
- •1.3. Звук
- •1.4. Графика и анимация
- •1.6.1. Характеристики реального времени (ограничения на задержки и нестабильность)
- •1.5. Видео
- •1.6. Требования к передаче мультимедиа по сетям
- •1.6.2. Требование высокой пропускной способности
- •1.6.3. Требования к ошибкам
- •1.6.4. Поддержка мультикаста
- •1.6.5. Управление сессиями
- •1.6.6. Безопасность
- •1.6.7. Поддержка мобильности
- •Глава 2. Поддержка распределенного мультимедиа трафика в Интернете
- •2.1. Поддержка трафика реального времени в Интернете
- •2.1.1. Задержки при обработке пакетов
- •2.1.2. Задержки при передаче пакетов
- •2.1.3. Задержка передачи
- •2.1.4. Задержки маршрутизации и обработки очередей
- •2.2. Требование высокой пропускной способности
- •2.3. Ошибки характеристик сети
- •2.4. Предлагаемые модели сервисов Интернет
- •2.4.1. Уточнение требований к сервисам и описанию трафика
- •2.4.2. Управление доступом
- •2.4.3. Управление трафиком
- •2.4.4. Классификация пакетов
- •2.4.5. Планирование пакетов
- •2.4.6. Потеря пакетов
- •2.4.7. Маршрутизация на основе QoS
- •2.5. Интегрированные сервисы
- •2.5.1. Классы гарантированного обслуживания
- •2.5.2. Сервис управления загрузкой
- •2.5.3. Сервис негарантированной доставки
- •2.5.4. Недостатки модели Intserv для Интернета
- •2.6. Дифферецированный сервис
- •2.6.1. Per Hop Behavior
- •2.7. Мультипротокольная коммутация по меткам
- •Глава 3. Расширение стека протоколов tcp/ip для поддержки функциональных требований распределенных мультимедийных приложений
- •3.1. Поддержка мультикаста
- •3.2. Управление сессиями
- •3.3. Безопасность
- •3.4. Мобильность
- •3.6. Session Initiation Protocol
- •Глава 4. Введение в rtp
- •4.1. Базовые принципы rtp
- •4.2. Стандартные элементы rtp
- •4.3. Связанные с rtp стандарты
- •Глава 5. Описание протокола rtp
- •5.1. Сессии rtp
- •5.2. Структура пакета rtp
- •5.3. Проверка качества пакета
- •5.4. Трансляторы и миксеры
- •Глава 6. Описание протокола rtсp
- •6.1. Компоненты rtcp
- •6.2. Передача пакетов rtcp
- •6.3. Формат пакетов rtcp
- •6.4. Безопасность и конфиденциальность
- •6.5. Проверка корректности данных
- •6.6. База данных участников сессии
- •6.7. Управление характеристиками времени
- •6.7.1. Отчетные интервалы
- •6.7.2. Базовые правила передачи
- •6.7.3. Процедура пересмотра вперед
- •6.7.4. Процедура пересмотра назад
- •6.7.5. Пересмотр пакетов bye
- •6.7.6. Общие проблемы реализации
- •Глава 7. Захват мультимедиа, проигрывание и управление характеристиками времени
- •7.1. Поведение отправителя
- •7.2. Захват мультимедиа и сжатие
- •7.2.1. Захват и сжатие звука
- •7.2.2. Захват и сжатие изображения
- •7.2.3. Использование предварительно записанной информации
- •7.3. Генерация пакетов rtp
- •7.3.1. Метки времени и модель времени rtp
- •7.3.2. Фрагментация
- •7.3.3. Заголовки, зависящие от формата данных
- •7.4. Поведение получателя
- •7.5. Получение пакетов
- •7.5.1. Получение пакетов данных
- •7.5.2. Получение управляющих пакетов
- •7.6. Буфер проигрывания
- •7.7. Декодирование, смешивание и проигрывание
- •7.7.1. Декодирование
- •7.7.2. Смешивание звука
- •Глава 8. Синхронизация звука и изображения
- •8.1. Поведение отправителя
- •8.2. Поведение получателя
- •8.3. Точность синхронизации
- •Глава 9. Компенсация ошибок
- •9.1. Компенсация потерь звука
- •9.1.1. Измерение качества звука
- •9.1.2. Замещение периодами тишины
- •9.1.3. Замещение шума
- •Глава 10. Исправление ошибок
- •10.1. Прямое исправление ошибок
- •Глава 11. Контроль перегрузок
- •11.1. Необходимость контроля перегрузок
- •10.1.1. Контроль четности
- •References
- •Multimedia networks
- •Published in author’s version
7.3.2. Фрагментация
Процесс фрагментации большого фрейма проиллюстрирован на рис. 7.4. Каждый фрагмент имеет метку времени всего фрейма и дополнительный заголовок данных, описывающий этот фрагмент.
Рис. 7.4. Фрагментация большого фрейма
Процесс фрагментации критичен к потере пакетов. Желательна возможность декодирования отдельных фрагментов, в противном случае потеря одного фрагмента приводит к потере всего фрейма.
После фрагментации отправитель должен решить, будет ли он посылать все фрагменты одновременно, или последовательно через определенный интервал. Первый вариант может привести к перегрузке сети, поэтому рекомендуется выбирать второй.
7.3.3. Заголовки, зависящие от формата данных
В дополнение к заголовку RTP и самим передаваемым данным мультимедиа пакеты часто содержат заголовки, зависящие от формата данных. Этот заголовок определяет спецификацию используемого формата данных и обеспечивает переход от RTP к выходу кодека.
Типичное использование дополнительного заголовка происходит при адаптации форматов данных, не предназначенных для передачи в сетях с потерями. Правильно разработанные заголовки данных существенно расширяют сферу применения таких форматов. Более детально эта тема будет рассмотрена позднее.
7.4. Поведение получателя
Как уже отмечалось ранее, получатель отвечает за прием пакетов из сети, восстановление и корректировку потерянных и поврежденных пакетов, восстановление характеристик времени, декодирование данных и представление результата пользователю. Кроме того, от получателя ожидают присылку пакетов RTCP для обеспечения адаптации процесса передачи данных к характеристикам используемых сетей. Получатель также обычно создает базу данных об участниках сессии.
Первым шагом в процессе получения данных сессии является собственно сбор пакетов из сети, проверка их корректности и выстраивание в последовательности, заданной отправителем. Это достаточно простые операции, не зависящие от формата данных. Далее этот процесс будет описан подробнее.
Остальные операции выполняются в стиле отправителя и зачастую зависят от формата принимаемых данных. Пакеты из входной очереди передаются программе кодирования и проверяются на потери. Кодировщик помещает пакеты в очереди по типу данных мультимедиа, где они ожидают получения полного фрейма и достижения времени проигрывания. Процедура вычисления размера задержек будет рассмотрена далее в соответствующем разделе.
Иногда до достижения времени проигрывания пакеты группируются в полные фреймы с восстановлением потерянных или поврежденных фреймов, после чего они декодируются. В завершение полученные данные подготавливаются для пользователя. В зависимости от формата данных и используемого проигрывающего устройства каждый поток может проигрываться отдельно (например, два потока видео в разных окнах). В других случаях бывает необходимо смешать данные из разных потоков в один. Каждая из этих операций также будет рассмотрена далее.
Операции, выполняемые получателем, сложнее операций, выполняемых отправителем. Многие из этих осложнений связаны с необходимостью восстановления потерянной при передаче информации.
