Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Multimediynye_seti.doc
Скачиваний:
14
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

9.1.3. Замещение шума

Процесс замещения шума показан на рис. 9.2.

Рис. 9.2. Замещение шума

Ниже приведена программа на псевдокоде, реализующая этот процесс.

void

substitute_noise(sample previous_frame[samples_per_frame],

sample missing_frame[samples_per_frame)

{

double energy;

// Calculate energy (amplitude) of the previous frame

energy = 0.0;

for(j = 0; j < samples_per_frame; j++) {

energy += previous_frame[j] * previous_frame[j];

}

energy = sqrt(energy);

// Fill in the noise

for(j = 0; j < samples_per_frame; j++) {

missing_frame[j] = energy * random(-1,1);

}

}

9.1.4. Повторение

На рис. 9.3 показан типичный речевой сигнал.

Рис. 9.3. Типичный речевой сигнал

На рис. 9.4 показано восстановление речевого сигнала путем повторения.

Рис. 9.4. Восстановление речевого сигнала

9.2. Компенсация потерь изображения

Многие кодеки видео используют межфреймовую компрессию, посылаю не следующий фрейм, а его отличия от предыдущего, как показано на рис. 9.5.

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

Рис. 9.5. Межфреймовая компрессия

9.2.1. Компенсация передвижения

Часто при потере пакета вместо него используют содержимое предыдущего пакета. Но это напрямую допустимо только при отсутствии существенного передвижения в кадре. В противном случае приходится восстанавливать вектор движения, анализируя сохранившиеся кадры. На рис. 9.6 показано восстановление положения единственного потерянного блока.

Рис. 9.6. Восстановление потерянного блока

9.3. Чередование (Interleaving)

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

Рис. 9.7. Передача с чередованием

Чередование может применяться на уровне пакетов RTP, но чаще всего происходит чередование фреймов в передаваемых пакетах. В последнем случае в пакетах нарушается последовательность меток времени. Примером применения такой схемы является известный формат для передачи звука MP3.

Глава 10. Исправление ошибок

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

10.1. Прямое исправление ошибок

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

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

Теоретически путем выбора схемы FEC можно гарантировать отсутствие ошибок при приеме данных. Практически же приходится учитывать, что дополнительная информация, передаваемая в потоке, еще больше нагружает сеть и увеличивает количество ее ошибок. Поэтому речь идет о корректировке ошибок с определенным уровнем вероятности.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]