> rle | сжатие | повторы <
// Run-Length Encoding — простое сжатие для повторяющихся данных
Сжатие данных
Уменьшает размер файла за счёт эффективного кодирования повторяющихся последовательностей.
Простой алгоритм
Быстрое и понятное сжатие с минимальными накладными расходами.
Несколько форматов
Поддерживает простой 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 или кодирования Хаффмана. Его часто используют как предварительный шаг или в форматах, где важна простота, например при передаче факсов.