2012-06-21 3 views
0

Я хочу выбрать схему кодирования для хранения данных. У меня очень низкая доступная память. что кодирование должно быть оптимальным для оптимального использования свободного места. ANSI, UTF или любой другой ..Эффективные схемы кодирования

данных является столицей Alphabetics

+2

Ну, ** что будет храниться? ** – deceze

+0

Алфавитные кулоны A-Z –

+0

Рассматривали ли вы использование набора символов 5 бит, если вам нужны только заглавные буквы с английского алфавита? –

ответ

1

Если вы знаете, частотное распределение букв, Huffman Coding хороший баланс между сложностью, скоростью и эффективностью.

Если вы не знаете распределения букв или они случайны, просто сохраните их по 5 бит за раз. Например, рассмотрим строку «ABCDE». Числа буквы являются 0, 1, 2, 3, 4. переустроенные в двоичный, это:

00000 00001 00010 00011 00100 

Теперь вы просто группа каждые 8 ​​бит в байтах:

00000000 01000100 00110010 0xxxxxxx 

Вы должны хранить также, чтобы вы знали, что в последних битах последнего байта нет полезных данных.

Если кодовое пространство не вызывает беспокойства, и вы просто хотите упаковать строки так же хорошо, как вы можете, вы можете использовать кодирование Хаффмана или арифметическое кодирование даже при равномерном распределении по частоте, чтобы упаковать каждый символ в биты log2 (26) на средний, что немного меньше 5 (а именно 4,7 бит).

Смежные вопросы