кодирование | декодирование | сжатие

> rle | сжатие | повторы <

// Run-Length Encoding — простое сжатие для повторяющихся данных

[COMPRESS]

Сжатие данных

Уменьшает размер файла за счёт эффективного кодирования повторяющихся последовательностей.

[SIMPLE]

Простой алгоритм

Быстрое и понятное сжатие с минимальными накладными расходами.

[FORMATS]

Несколько форматов

Поддерживает простой RLE и формат PackBits (TIFF).

>> техническая информация

Как работает RLE:

Run-Length Encoding заменяет последовательности повторяющихся данных счётчиком и одним значением. Простой RLE использует пары счётчик+значение, тогда как PackBits применяет управляющие байты, чтобы различать серии и буквальные данные.

Пример сжатия:

Simple RLE: AAAABBBCC → 4A3B2C ABCDE → 1A1B1C1D1E PackBits: [Run] AAA → FD 41 (3 × 'A') [Literal] ABC → 02 41 42 43

Зачем использовать RLE:

  • >Сжатие изображений (BMP, PCX, TIFF)
  • >Передача факсимиле
  • >Хранение иконок и спрайтов
  • >Сжатие разреженных данных
  • >Простота реализации

>> часто задаваемые вопросы

Что такое Run-Length Encoding?

RLE — это простой алгоритм сжатия, который заменяет последовательные одинаковые элементы счётчиком и одной копией. Он особенно эффективен для данных с большим числом повторений, например простых изображений или разреженных матриц.

Простой RLE и PackBits — в чём разница?

Простой RLE использует пары счётчик+значение (4A = AAAA). PackBits использует управляющие байты: отрицательные значения для серий и положительные для буквальных данных. PackBits применяется в изображениях TIFF и лучше справляется с разнородными данными.

Когда RLE эффективно?

RLE лучше всего работает с данными, содержащими длинные серии повторяющихся значений. Для случайных данных оно малоэффективно и может даже увеличить размер, если повторов нет.

Как RLE сравнивается с другими методами сжатия?

RLE проще, но менее эффективно, чем алгоритмы вроде LZ77 или кодирования Хаффмана. Его часто используют как предварительный шаг или в форматах, где важна простота, например при передаче факсов.

Другие языки