📦 Симулятор алгоритма RLE (кодирование и декодирование)
1. Кодирование (сжатие)
Можно вводить любые символы. Для не-ASCII используется UTF-8.
—
Коэффициент сжатия = исходные байты / сжатые байты.
Если меньше 1 — сжатие неэффективно.
Показать шаги кодирования
| # | Символ | Длина серии | Код |
|---|
2. Декодирование (распаковка)
Формат: пары байтов «счётчик, символ» в hex. Пробелы игнорируются.
—
Показать таблицу байтов и ASCII-символов
—
Справка: как работает RLE
RLE (Run-Length Encoding) — кодирование длин серий. Идущие подряд
одинаковые символы заменяются парой (счётчик, символ).
Пример: AAAAABBB → (5,A)(3,B) → в hex
05 41 03 42.
Особенность: если символы чередуются (нет серий), RLE увеличивает размер вдвое — по байту на счётчик и символ для каждого одиночного символа. Поэтому RLE эффективен только на данных с длинными повторами (BMP-картинки с однотонными областями, но не JPEG с плавными переходами).
В формате BMP RLE8 используется escape-байт 00 для маркеров
конца строки, конца файла и «абсолютного» режима — но в учебной практике
обычно достаточно базовой схемы «счётчик, символ».