Кодирование
длин серий
Пиксельное изображение
при сохранении фактически вытягивается в цепочку и логично предположить, что
встречаются цепочки (последовательности) одинаковых байтов. Самым простым способом,
который позволяет
уменьшить объем
файла, является поиск повторяющихся кодов (символов, цвета и т. п.) — серий
одинаковых значений (Run Length Coding). Каждая такая серия фиксируется двумя
числами: первое указывает количество одинаковых значений, а второе — само значение.
Пример
Заменим для
простоты значения цвета буквами. Если в документе, скажем, имеется такая последовательность
"АААААВВВВВВВСССССС", ее можно сжать таким образом: 5А7В6С. В результате
вместо 18 символов в документе достаточно хранить всего 6.
Алгоритм рассчитан
на деловую или декоративную графику — изображения с большими областями локального
(повторяющегося) цвета.
Достоинством такого
алгоритма является простота (что очень важно, т. к. позволяет выполнять процедуры
компрессии и декомпрессии достаточно быстро), а недостатками — необходимость
различать собственно данные и числа повторений, а также возможное увеличение
объема файла, если в документе мало повторений (например, серия АВСАВС не уменьшит,
а увеличит объем документа, поскольку будет иметь следующий вид: 1А1В1С1А1В1С,
т. е. вместо 6 символов получится вдвое больше).