Опрос

Какой архиватор наиболее эффективный?:

Новички

Виктор Васильев
Юрий Антонов
Сергей Андреевич
Генадий
Avanasy

Несжатые коды

Если сжимаемые символы являются кодами ASCII, то им можно просто присвоить свои значения для представления в несжатом виде. В общем случае, когда алфавит имеет произвольный размер, несжатые коды двух разных размеров можно также легко построить. Рассмотрим, например, алфавит размера п — 24. Первым 16 символам можно присвоить числа от 0 до 15 в их двоичном разложении. Эти символы потребуют только 4 бита, но мы закодируем их пятью битами. Символам с номерами от 17 до 24 присвоим числа 17 - 16 - 1 = 0, 18 - 16 - 1 = 1, и до 24 - 16 - 1 = 7 в двоичном представлении из 4 бит. Итак, мы получим шестнадцать 5-битовых кода 00000, 00001,...,01111, за которыми следуют восемь 4-битовых кода 0000, 0001,...,0111.

В общем случае, если имеется алфавит ai,a2,... ,an, состоящий из п символов, выбираются такие числа га и г, что 2т < п < 2m+1 и г = п — 2т. Первые 2т символов кодируются как (га + 1)-битовые числа от 0 до 2т — 1, а остальные символы кодируются га-битовыми последовательностями так, что код символа аь равен к — 2т— 1. Такие коды называются синфазными двоичными кодами.