Zastosowanie tej modyfikacji może nawet nieco polepszyć stopień kompresji w stosunku do niezmodyfikowanej wersji algorytmu.

Algorytm dynamicznego kodowania Huffmana Dynamiczne kodowanie Huffmana to kodowanie danych o nieznanej statystyce. Statystykę buduje się w miarę napływania danych i co znak lub co daną liczbę znaków poprawia drzewo Huffmana.

Zaletą kodowania dynamicznego jest to, że nie ma potrzeby przesyłania drzewa kodów. Zamiast tego identyczną procedurę poprawiania drzewa muszą przeprowadzać zarówno koder, jak i dekoder.

Istnieją dwa algorytmy pozwalające poprawić drzewo Huffmana: algorytm Fallera-Gallagera-Knutha (pomysłodawcami byli Newton Faller i Robert Gallager, metodę ulepszył Donald Knuth), algorytm Vittera (dalsze ulepszenia metody FGK opracowane przez Jeffreya Vittera).

U podstaw algorytmu FGK leżą następujące założenia co do formy drzewa: każdy węzeł drzewa oprócz liści ma zawsze dwóch potomków; z każdym węzłem związany jest licznik: w liściach przechowuje liczbę wystąpień danego symbolu (lub wartość proporcjonalną), w pozostałych węzłach sumę liczników dzieci; przy przejściu drzewa wszerz od prawej do lewej i odczycie liczników powiązanych z każdym węzłem uzyskuje się ciąg liczb nierosnących.