Symulator kompresji danych online
Symuluj kodowanie Huffmana dla tekstu, porównuj bity UTF-8 i ładunku oraz kopiuj tabelę kodów. Narzędzie edukacyjne bez plików archiwum.
Rozpocznij
Znaczenie wyników
Symulator zlicza punkty kodowe Unicode i tworzy binarne drzewo Huffmana, łącząc dwa węzły o najmniejszych częstościach. Jeden odrębny symbol otrzymuje kod 0. Identyczne dane dają tutaj identyczne kody. Przy równych częstościach inna kolejność rozstrzygania remisów może dać inną poprawną tabelę; porównuj ważoną długość ładunku.
Przykłady do wpisania
ABBC daje B=0, A=10 i C=11: 2×1 + 1×2 + 1×2 = 6 bitów ładunku wobec 32 bitów UTF-8. AAAA daje 32 bity oryginału i 4 bity ładunku. 你好 daje 48 i 2 bity, a rzeczywisty tekst 😀😀 — 64 i 2 bity.
Dane i zapis
Limit wynosi 100 000 jednostek kodowych UTF-16 JavaScript, a nie bajtów UTF-8 czy widocznych znaków. Wiele emoji zajmuje dwie jednostki; jedna widoczna sekwencja może mieć kilka punktów kodowych. Pusty tekst jest odrzucany, lecz białe znaki są prawidłowymi danymi. JSON zapisuje nowy wiersz jako \n, tabulator jako \t, a zwykłą spację jako " ". Zapis nie zmienia symbolu wejściowego.
Granice demonstracji
Bity oryginału to liczba bajtów UTF-8 pomnożona przez osiem. Bity ładunku są sumą częstości pomnożonych przez długości kodów. Pominięto tabelę kodów, drzewo, nagłówki, dopełnienie i strukturę kontenera. Wynik nie jest rozmiarem pliku skompresowanego ani gwarancją oszczędności. Narzędzie nie tworzy archiwum, skompresowanego pliku binarnego do pobrania ani dekompresora i nie szyfruje danych. Obliczenia odbywają się w przeglądarce. Wiele różnych symboli może dać długą tabelę.
Przetwarzanie odbywa się lokalnie w przeglądarce.