У популярному алгоритмі DEFLATE використовується кодування Хаффмана на вершині Lempel-Ziv.
Загалом, якщо у нас є випадкове джерело даних (= 1 бітова ентропія / біт), жодне кодування, включаючи Хаффмана, швидше за все, не може стиснути його в середньому. Якби Лемпель-Зів був «ідеальним» (до якого він підходить для більшості класів джерел, оскільки довжина йде до нескінченності), кодування після Хаффмана не допомогло б. Звичайно, "Лемпель-Зів" не є ідеальним, принаймні, з кінцевою довжиною, тому залишається деяка надмірність.
Саме ця зайва надмірність кодування Хаффмана частково усуває і тим самим покращує стиснення.
Моє запитання: Чому це корінне резервування успішно усувається кодуванням Хаффмана, а не LZ? Які властивості Хаффмана проти LZ обумовлюють це? Чи просто запустити LZ знову (тобто, кодуючи стиснуті дані LZ за допомогою LZ вдруге) здійснити щось подібне? Якщо ні, то чому б і ні? Аналогічно, спочатку стискав би з Хаффманом, а потім - роботою LZ, а якщо ні, то чому?
ОНОВЛЕННЯ: Зрозуміло, що навіть після LZ залишиться деяка надмірність. Кілька людей зробили це. Що не зрозуміло, це те, чому Хаффман краще вирішує цю залишкову надмірність, ніж LZ? Що унікального в цьому на відміну від первинного надмірності джерела, де LZ працює краще, ніж Хаффман?