- •«Томский политехнический университет»
- •Е.С. Чердынцев мультимедийные сети
- •Глава 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.2.3. Использование предварительно записанной информации
Подготовленные фреймы обычно поступают на этап пакетизации в том же порядке, в каком они были захвачены. Протокол RTP не делает различий между предварительно записанной информацией и «живым» потоком.
В частности, в начале предварительно записанной информации отправитель должен сгенерировать новый идентификатор SSRC и выбрать случайные значения для метки времени и порядкового номера. В процессе передачи он должен управлять SSRC коллизиями, получать и отправлять пакеты RTCP.
Предположим, что отправитель не может просто брать поток из файла и помещать его содержимое тоже в файлы. Вместо этого он использует процесс запоминания и пакетизации «на лету» (рис.7.3).
Рис. 6.3. Использование предварительно записанной информации
7.3. Генерация пакетов rtp
Сгенерированные сжатые фреймы передаются процедуре пакетизации. Каждому фрейму соответствует метка времени, из которой получается метка времени RTP. Если формат данных поддерживает фрагментацию, большие фреймы разделяются на максимально допустимые для передачи фрагменты (обычно это необходимо только для видео). Наконец, один или несколько RTP пакетов, содержащих заголовок и собственно данные, генерируются для каждого фрейма. Формат пакета и его заголовка определяется используемым кодеком. Критической частью процесса генерации пакетов является назначение фреймам меток времени, фрагментирование больших фреймов и генерация заголовков данных. Эти моменты мы и обсудим более подробно.
7.3.1. Метки времени и модель времени rtp
Метка времени представляет момент получения первого байта данных. Значение начинается со случайно сгенерированного числа и возрастает со скоростью, определяемой передаваемыми данными.
В процессе захвата «живого» потока мультимедиа метка времени обозначает момент получения первых сэмплов с устройства захвата. Если речь идет о синхронизированных звуковых и видео потоках, то надо быть уверенным, что время обработки потоков разного типа учтено при вычислении метки времени. Для большинства звуковых форматов метка времени RTP для каждого очередного пакета возрастает пропорционально числу входящих в него сэмплов, а не байтов данных его длины. Исключением является форматы звука MPEG, включая формат MP3, который использует частоту 90 КГц в данных для совместимости с другими форматами MPEG. Большинство форматов видео также используют часы 90 КГц, что дает им возможность увеличивать значение метки времени целыми значениями шага. Например, при использовании стандартной для NTSC скорости 29.97 фреймов в секунду и использовании в данных частоты 90 КГц метка времени RTP будет увеличиваться на 3.003 на каждый пакет.
Для потока, предварительно записанного в файле, метка времени дает время фрейма в последовательности фреймов плюс постоянное случайное смещение. Метки времени назначаются для фреймов, поэтому, если большой фрейм фрагментируется, каждый фрагмент будет иметь одинаковую метку времени.
Спецификация RTP не гарантирует детальность, точность и стабильность часов данных. Каждое приложение само решает эту задачу.
Метка времени в RTP данных и отсылаемых отправителем RTCP пакетах отражает параметры времени у отправителя. Отметим, что модель времени RTP ничего не говорит о времени проигрывания передаваемых данных. Метки времени данных дают относительные параметры времени и RTCP отчеты отправителя помогают синхронизировать разные потоки. Но RTP ничего не говорит о количестве буферов, используемых для проигрывания данных или о времени их раскодирования.
Хотя модель времени детально описана в спецификации RTP, в ней нет упоминания об алгоритмах, используемых при реконструкции параметров времени на стороне получателей пакетов. Это сделано преднамеренно, так как такие алгоритмы зависят от требований самого приложения.
