2016-11-30 3 views
2

Мне было интересно, могу ли я применять кодировку Хаффмана снова и снова? Например,Могу ли я применить кодировку Хаффмана снова и снова?

File A ---> (Huffman) ---> File B (smaller size than A) 
File B ----> (Huffman) ---> File C ? 

ли логически правильно снова применить Хаффман на File B выходе.?

+0

Маловероятно, чтобы получить меньше, и в большинстве случаев повторный кодирование приведет к большему выходу. Во-первых, кодировка использует кодовые слова, которые не находятся на границах байтов, поэтому для повторного кодирования потребуется искать избыточность на основе размеров кодовых слов вместо границ байтов. – rcgldr

+4

Попробуйте. Причина, по которой она не работает, одинакова для любого алгоритма сжатия. Чем больше вы сжимаете, тем ближе данные становятся совершенно случайными. И чем более случайными являются данные, тем сложнее сжиматься. Итак, после первого кодирования Хаффмана вы обнаружите, что символы примерно равны по частоте, поэтому идеальный код Хаффмана для второго прохода должен оставить символы неизменными. – user3386109

ответ

-1

Конечно, вы можете. Тем не менее, это может не уменьшить размер файла. Поэтому вы можете попробовать применить его, если это полезно.

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