Используя RLE и гамма-код Эллиаса, закодируйте следующую последовательность: 1111000000111111111100000000011111111101
Информатика 11 класс Кодирование информации RLE гамма-код Эллиаса кодирование последовательности информатика 11 класс алгоритмы сжатия данных
Для кодирования данной последовательности мы сначала применим метод RLE (Run-Length Encoding), а затем гамма-код Эллиаса.
Шаг 1: Применение RLE
Метод RLE заключается в замене последовательных одинаковых символов (бегунков) на символ и количество его повторений. Рассмотрим нашу последовательность:
1111000000111111111100000000011111111101
Теперь запишем результат RLE:
4 1, 5 0, 10 1, 8 0, 8 1, 1 0, 1 1, 1 0
Сжато это будет выглядеть так: 4 1 5 0 10 1 8 0 8 1 1 0 1 1 1 0
Шаг 2: Применение гамма-кода Эллиаса
Теперь мы будем кодировать каждую пару (количество, символ) с помощью гамма-кода Эллиаса. Гамма-код состоит из двух частей: префикса и бита, который указывает на количество битов, необходимых для представления числа.
Для каждого числа мы будем выполнять следующие шаги:
Теперь применим это к каждому количеству:
Теперь соберем все гамма-коды вместе:
00100 00101 00001010 00001000 00001000 1 1 1
Итог:
Закодированная последовательность с использованием RLE и гамма-кода Эллиаса будет выглядеть следующим образом:
00100 00101 00001010 00001000 00001000 1 1 1