Кодирование Фибоначчи

Оглавление1 Fibonacci coding1.1 Основы кодирования Фибоначчи1.2 Определение и кодирование1.3 Примеры и декодирование1.4 Сравнение с другими универсальными кодами1.5 Обобщения1.6 Максимально возможная […]

Fibonacci coding

  • Основы кодирования Фибоначчи

    • Кодирование Фибоначчи – универсальный код для представления положительных целых чисел в двоичном виде. 
    • Каждое кодовое слово заканчивается на “11” и не содержит других “11” до конца. 
    • Кодирование Фибоначчи тесно связано с позиционной системой счисления Зекендорфа, которая не допускает последовательных единиц. 
    • Кодовое слово для конкретного целого числа – это его представление Зекендорфа с обратным порядком цифр и добавленным “1” в конце. 
  • Определение и кодирование

    • Для числа N, если d(0), d(1), …, d(k-1), d(k) представляют цифры кодового слова, то: 
    • d(k) всегда является битом “1” и не несет значения места. 
    • Кодирование уникально, и “11” в кодовом слове встречается только в конце. 
    • Последний бит является наиболее значимым, а первый – наименее значимым. 
    • Ведущие нули не могут быть опущены, как в десятичных числах. 
  • Примеры и декодирование

    • Первые несколько кодовых слов Фибоначчи и их так называемая вероятность, значение для каждого числа с минимальным размером кода в кодировании Фибоначчи. 
    • Для кодирования целого числа N: найти наибольшее число Фибоначчи, меньшее или равное N, вычесть его из N, отслеживая остаток. 
    • Повторять предыдущие шаги, заменяя остаток на N, пока не останется 0. 
    • Добавить дополнительный 1 после последней цифры в кодовом слове. 
    • Для декодирования кодового слова удалить последний “1”, присвоить оставшимся значениям 1, 2, 3, 5, 8, 13 … (числа Фибоначчи) и суммировать значения битов “1”. 
  • Сравнение с другими универсальными кодами

    • Кодирование Фибоначчи обладает полезным свойством самосинхронизации, что облегчает восстановление данных из поврежденного потока. 
    • В отличие от большинства универсальных кодов, изменение одного бита может привести к ошибкам в данных, но в кодировании Фибоначчи это может привести к остановке ошибок. 
    • Общее расстояние редактирования между потоком, поврежденным одной ошибкой бита, и исходным потоком не превышает трех. 
  • Обобщения

    • Кодирование Фибоначчи для положительных целых чисел – это двоичные строки, заканчивающиеся на “11” и не содержащие других “11”. 
    • Это обобщается на двоичные строки, заканчивающиеся на N последовательных единиц и не содержащие других N последовательных единиц. 
    • Для N = 3 положительные целые числа кодируются как 111, 0111, 00111, 10111, 000111, 100111, 010111, 110111, 0000111, 1000111, 0100111, …. 
    • Количество кодировок как функция длины строки задается последовательностью чисел Трибоначчи. 
  • Максимально возможная информационная скорость

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

Полный текст статьи:

Кодирование Фибоначчи — Википедия

Оставьте комментарий