Открыть сервис

Кодирование длин серий

Кодирование длин серий (англ. Run-length encoding, RLE) — это алгоритм сжатия данных без потерь, основанный на замене последовательностей повторяющихся символов (серий) на пару «значение — длина серии». Относится к классу словарных методов сжатия и является одним из простейших и исторически первых алгоритмов, применяемых для сокращения объёма цифровых данных.

История

Идея кодирования длин серий впервые была реализована в механических телеграфных системах XIX века. В частности, в 1843 году американский изобретатель Сэмюэл Морзе предложил использовать сокращённые коды для часто повторяющихся букв в азбуке Морзе, что можно рассматривать как прообраз RLE. Однако в современном виде алгоритм был формализован в 1950-х годах с развитием цифровых вычислительных машин.

Первое широкое применение RLE получило в факсимильной связи (факсах), где изображения состоят из длинных последовательностей чёрных и белых точек. В 1960-х годах Международный союз электросвязи (ITU) стандартизировал методы RLE для передачи факсимильных сообщений (стандарты T.4 и T.6). В 1970-х годах алгоритм начал использоваться в ранних форматах растровой графики, таких как PCX (ZSoft Corporation, 1982) и BMP (Microsoft, 1990). С появлением более эффективных алгоритмов (LZW, Deflate) RLE уступил им в степени сжатия, но сохранил актуальность для специализированных задач.

Принцип работы

Алгоритм RLE обрабатывает входной поток данных последовательно, выделяя непрерывные серии одинаковых значений. Каждая серия представляется в виде кортежа (count, value), где count — количество повторяющихся элементов, а value — само значение. Например, строка «AAAABBBCCDAA» преобразуется в «4A3B2C1D2A».

Формы представления

Существует несколько способов записи закодированных данных:

Обработка одиночных символов

Для предотвращения увеличения размера данных при отсутствии повторений (например, строка «ABCDE» при RLE даст «1A1B1C1D1E», что вдвое длиннее) применяются модификации:

Классификация

По типу данных

По способу кодирования длины

Применение

Графические форматы

RLE является основным или вспомогательным методом сжатия в нескольких популярных форматах растровых изображений:

Факсимильная связь

В стандартах факсимильной связи (ITU T.4 и T.6) используется модифицированное RLE для сжатия чёрно-белых изображений. Алгоритм кодирует длины серий чёрных и белых точек, используя коды Хаффмана для наиболее вероятных длин. Степень сжатия достигает 10–20 раз для типичных документов.

Хранение и передача данных

Обработка изображений в реальном времени

В системах машинного зрения и видеонаблюдения RLE применяется для сжатия бинарных масок (например, результатов сегментации) перед передачей по сети. Благодаря низкой вычислительной сложности алгоритм может работать на встроенных устройствах с ограниченными ресурсами.

Преимущества и недостатки

Преимущества

Недостатки

Сравнение с другими алгоритмами

АлгоритмТип сжатияСтепень сжатия (типичная)СкоростьПрименение
RLEБез потерь2–10 (текст), 5–50 (графика)Очень высокаяФаксы, BMP, PCX
LZWБез потерь2–5 (текст), 3–10 (графика)ВысокаяGIF, TIFF, ZIP
DeflateБез потерь3–10 (текст), 5–20 (графика)СредняяPNG, ZIP, GZip
JPEGС потерями10–100 (фото)СредняяФотографии, видео

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →