Анализ помехоустойчивости методов кодирования факсимильной информации
В.В. Билан
В настоящее время нашли применение три схемы кодирования черно-белой неподвижной информации для передачи с помощью факсимильной аппаратуры группы 3 и 4 (передача документа формата А4 менее чем за 1 минуту).
Схема одномерного кодирования предполагает формирование развертки страницы построчно. При кодировании строки информация, содержащаяся в ней, представляется в виде чередующихся длин серий белого и черного цвета. Для передачи длин серий используется код Хаффмена
[1], который представляет серии белого и черного цвета в уникальном битовом коде. Коды серий по методу Хаффмена имеют различную длину в зависимости от статистической частоты появления тех или иных серий. Код Хаффмена, или горизонтальный способ кодирования, имеет следующую схему передачи [2,3,4]:EOL DATA FILL EOL DATA
Перед первой строкой и после поля
DATA передается кодовое слово "конец строки" (EOL). В поле DATA находятся кодовые последовательности длин серий. FILL поле содержит последовательность нулей, количество которых определяет минимальное время передачи одной строки.Код Хаффмена при декодировании наиболее устойчив к возникающим ошибкам в кодовых последовательностях серий. С возникновением ошибки данная строка может быть пропущена или заменена на предыдущую, что не влияет на дальнейшее декодирование и информационное значение всего сообщения.
Двумерная схема кодирования
[4] является расширением одномерной схемы кодирования. Двумерная схема или код READ - это также метод построчного кодирования, при котором положение каждого “изменяющегося” элемента изображения в текущей или кодируемой строке кодируется по отношению к положению соответствующего отсчетного элемента, расположенного на кодируемой строке, либо на отсчетной строке, которая располагается непосредственно над кодируемой строкой. После кодирования кодируемая строка становится отсчетной строкой по отношению к следующей кодируемой строке.Для того, чтобы ограничить область поражения в случае наличия ошибок передачи в двумерной схеме после каждой строки, кодированной по одномерному методу, по крайней мере, К-1 последовательных строк должны кодироваться по двумерному методу. Строка, кодированная по одномерной схеме, может передаваться чаще, чем через каждые К линий. После того, как передается строка, кодированная по одномерному методу, начинается следующая серия строк К-1, кодируемых по двумерной схеме. Значение К устанавливается при стандартной вертикальной разрешающей способности, равной 2 или 4 при более высокой разрешающей способности.
Двумерная схема кодирования имеет менее избыточный код, чем одномерная схема. В сравнении с кодом Хаффмена код
READ более уязвим при возникновении ошибок, так как последующие строки связаны с предыдущими. Возникновение ошибок в опорной строке влечет за собой сбои в последующих К-1 двумерных строках, что приводит к нечитабельности К строк документа. Данный сбой восстанавливается только после безошибочной опорной строки.Модифицированный код
READ (MR) [5] представляет полностью двумерную схему кодирования, с единственной опорной строкой в начале листа и бесконечным параметром К. Эта опорная строка является абсолютно белой. Отличия в схеме передачи заключаются в отсутствии признаков "конец строки" и поля FILL. Признаком "конец строки" является конечная длина строки, после которой сразу кодируется следующая строка.Принятый двумерный алгоритм имеет наименьшую избыточность за счет использования "вертикальной схемы" кодирования, а также отсутствие ограничения на минимальное время передачи одной строки, т.е. отсутствие поля FILL, но наиболее чувствителен к искажениям, возникающим в процессе передачи. Даже одиночная ошибка (сбой одного бита) в пределах страницы приводит к невосстанавливаемым искажениям последующего изображения и полному прекращению декодирования.
Как видим, последняя схема кодирования оптимальна с точки зрения избыточности и скорости передачи, но реализация такой схемы возможна лишь на помехозащищенных каналах с крайне малой вероятностью ошибки. Поэтому модифицированный код
READ передается с использованием помехозащищающего протокола HDLC, который, в свою очередь, не позволяет исправить возникшие ошибки, а только определяет номер сбойного блока при передаче.Используя уникальность кода Хаффмена и кодовых слов при вертикальном кодировании, параметры развертки изображения, а также размер, контрольную сумму и номер сбойного блока, возможно разработать алгоритм восстановления искаженных при передаче данных, не прибегая к повторному перезапросу.
ЛИТЕРАТУРА