Popularny algorytm DEFLATE wykorzystuje kodowanie Huffmana na Lempel-Ziv.
Ogólnie rzecz biorąc, jeśli mamy losowe źródło danych (= 1 bit entropii / bit), żadne kodowanie, w tym Huffman, prawdopodobnie nie skompresuje go średnio. Gdyby Lempel-Ziv był „idealny” (do którego zbliża się większość klas źródeł, ponieważ długość dochodzi do nieskończoności), kodowanie postów przy użyciu Huffmana nie pomogłoby. Oczywiście Lempel-Ziv nie jest idealny, przynajmniej o skończonej długości, więc pozostaje pewna nadmiarowość.
Jest to ta pozostająca nadmiarowość, którą kodowanie Huffmana częściowo eliminuje, a tym samym poprawia kompresję.
Moje pytanie brzmi: dlaczego ta pozostała nadmiarowość została skutecznie wyeliminowana przez kodowanie Huffmana, a nie LZ? Jakie właściwości Huffman kontra LZ sprawiają, że tak się dzieje? Czy po prostu ponowne uruchomienie LZ (to znaczy ponowne kodowanie danych skompresowanych LZ za pomocą LZ po raz drugi) osiągnęłoby coś podobnego? Jeśli nie, dlaczego nie? Podobnie, najpierw kompresowanie przy użyciu Huffmana, a następnie przy użyciu LZ, a jeśli nie, to dlaczego?
AKTUALIZACJA: Oczywiste jest, że nawet po LZ pozostanie pewna redundancja. Kilka osób już to zrobiło. Nie jest jasne: dlaczego Huffman lepiej rozwiązuje problem pozostałej nadmiarowości niż LZ? Co jest w tym wyjątkowego w porównaniu z pierwotną redundancją źródłową, w której LZ działa lepiej niż Huffman?