Сокрытие ошибок
Сокрытие ошибок (англ. Error concealment) — это техника, используемая в обработке сигналов, направленная на минимизацию ухудшения сигналов, вызванного отсутствием данных, называемого потерей пакетов[1]. Сигнал — это сообщение, передаваемое от передатчика к приёмнику в виде множества небольших пакетов. Потеря пакетов происходит, когда эти пакеты перенаправляются, задерживаются, меняют порядок или повреждаются[2].
Техники на стороне приёмника
Когда восстановление ошибок происходит на принимающей стороне сигнала, это называется приёмной (receiver-based) техникой. Эти методы направлены на исправление повреждённых или отсутствующих данных.
Замещение формы сигнала
Первоначальные попытки сокрытия ошибок на стороне приёмника включали повторение пакетов, при котором потерянные пакеты заменялись копиями ранее полученных пакетов. Эта функция вычислительно проста и выполняется устройством на стороне приёмника, называемым «компенсатор выпадений»[3][4].
Вставка нулей
При использовании этой техники, если пакет теряется, его значения заменяются нулями.
Интерполяция
Интерполяция включает в себя обоснованные предположения о характере отсутствующего пакета. Например, следуя речевым паттернам в аудио или лицам в видео.
Буфер
Буферы данных используются для временного хранения данных в ожидании прибытия задержанных пакетов. Они часто встречаются в индикаторах загрузки веб-браузеров и видеоприложениях, таких как YouTube.
Техники на стороне передатчика
Вместо попыток восстановить потерянные пакеты, другие методы предполагают предвидение потери данных и манипулирование ими до передачи[4].
Повторная передача
Самая простая техника на стороне передатчика — повторная передача, то есть отправка сообщения несколько раз. Хотя эта идея проста, из-за дополнительного времени, необходимого для многократной отправки сигналов, этот метод не подходит для приложений в реальном времени[2].
Повторение пакетов
Повторение пакетов, также называемое прямой коррекцией ошибок (FEC), добавляет избыточные данные, которые приёмник может использовать для восстановления потерянных пакетов. Это минимизирует потери, но увеличивает размер пакета[5][6].
Чересстрочная передача (интерливинг)
Чересстрочная передача (интерливинг) включает в себя перемешивание данных перед передачей. Когда пакет теряется, вместо потери целого набора данных теряются небольшие части нескольких наборов. На принимающей стороне сообщение затем деинтерливируется, чтобы восстановить исходное сообщение с минимальными потерями.
Передача без интерливинга:
Оригинальное переданное предложение: ThisIsNotAnExampleOfInterleaving Полученное предложение с групповым сбоем: ThisIsNot______pleOfInterleaving
Термин "AnExample" оказывается в основном нечитаемым и трудновосстанавливаемым.
С интерливингом:
Переданное предложение: ThisIsAnExampleOfInterleaving... Передача без ошибок: TIEpfeaghsxlIrv.iAaenli.snmOten. Полученное предложение с групповым сбоем: TIEpfe______Irv.iAaenli.snmOten. Полученное предложение после деинтерливинга: T_isI_AnE_amp_eOfInterle_vin_...
Ни одно слово не теряется полностью, и отсутствующие буквы можно восстановить с минимальными догадками.
Применение
В зависимости от способа передачи (аналоговый или цифровой) существуют различные способы распространения ошибок в сообщении.
Аналоговые применения
С момента изобретения в 1950-х годах магнитное покрытие, используемое в аналоговом видеомагнитофоне, сталкивалось с выпадениями сигнала радиочастоты (RF). Некоторые из методов, применявшихся для решения этих проблем, аналогичны используемым для сокрытия ошибок в современных сжатых видеосигналах.
Процесс удаления щелчков в восстановлении аудио — ещё один пример сокрытия ошибок. Близким аналогом в области обработки изображений является использование цифровой обработки пыли и царапин при реставрации фильмов.