Мультимедиатехнологии в информационных системах. Методы сжатия и форматы записи графической информации. Красильников Н.Н - 15 стр.

UptoLike

15
ичных единиц (числа до 4096). Он необходим, так как, по мере заполне-
ния таблицы и соответствующего увеличения кода, имеет место пере-
ход к кодам протяженностью в 10, 11 и 12 двоичных единиц. Код очис-
тки инициализирует таблицу заново, стирая в ней все коды, начиная
с 258-го и выше и освобождая тем самым место для кодового пред-
ставления встречающихся в изображении комбинаций символов. Код
конца записи, как это видно из его названия, сигнализирует о том,
что кодируемая последовательность окончилась. После завершения
подготовительных операций алгоритм готов к началу сжатия данных
(изображения).
Алгоритм сжатия данных можно записать следующим образом:
инициализировать, то есть ввести первоначальную таблицу кодов;
очистить таблицу кодов, начиная с кода 258 и до конца;
очистить буферы строки String, Test и Byte.
Далее в цикле:
прочитать очередной байт кодируемых данных в буфер Byte;
сцепить (конкатенировать) String + Byte и поместить результат в бу-
фер Test;
проверить, имеется ли в таблице кодов код, соответствующий ком-
бинации, помещенной в буфер Test. Если имеется, то содержимое буфе-
ра Test переписать в буфер String и перейти в начало цикла; если нет, то
добавить в таблицу код, соответствующий содержимому буфера Test,
присвоив ему значение, совпадающее со следующим свободным поряд-
ковым номером; вывести в выходной поток код, соответствующий со-
держимому буфера String; переписать содержимое буфера Byte в String
и перейти в начало цикла;
закончить программу записью в выходной поток кода содержимого
String и кода конца записи.
В результате применения такого алгоритма получаем коды перемен-
ной длины, причем для сочетаний из двух-трех символов, каждый из
которых в отдельности описывается в таблице восьмиразрядным кодом,
длина полученных кодов будет составлять не 16 и не 24 бита, а суще-
ственно меньше.
Переходя к декодированию (декомпрессии) сжатых данных, отметим,
что декодирующий алгоритм не нуждается в том, чтобы вместе со сжа-
той последовательностью ему бы передавалась и кодовая таблица. Де-
кодирующий алгоритм, получая коды комбинаций исходных отсчетов,