Symulator kompresji danych online
Wklej tekst i zobacz, jak działa kompresja Huffmana. Oblicz kody binarne, porównaj bity przed i po. Idealny do nauki. Przetwarzanie odbywa się lokalnie w prz…
Rozpocznij
Jak działa symulator kompresji?
Symulator implementuje kodowanie Huffmana – algorytm kompresji bezstratnej. Dla każdego znaku w tekście zlicza częstotliwość występowania, a następnie buduje drzewo binarne, łącząc dwa najrzadsze węzły. Każdemu znakowi przypisuje kod binarny o zmiennej długości: częstsze znaki otrzymują krótsze kody.
Przykład działania
Dla tekstu ABBC otrzymasz:
- Oryginalna liczba bitów UTF-8: 32 (4 znaki × 8 bitów)
- Liczba bitów po kompresji (payload): 6
Oznacza to, że sama treść zakodowana jest w 6 bitach, ale uwaga: nie jest to rozmiar pliku – nie uwzględnia drzewa kodów, nagłówków ani innych danych potrzebnych do dekompresji.
Interpretacja wyników
Wynik pokazuje każdy znak w notacji JSON (np. "A"), a dla białych znaków może pojawić się notacja ucieczki, np. \n dla nowej linii. To nie jest błąd – tak wyświetlany jest znak.
Ograniczenia
- Limit tekstu: 100 000 jednostek kodu UTF-16 (nie bajtów ani znaków widocznych).
- Pusty tekst jest odrzucany.
- Symulator nie tworzy pliku skompresowanego ani nie oferuje dekompresji.
- Wynikowa liczba bitów nie jest rzeczywistym rozmiarem pliku – to tylko oszacowanie samej treści.
Lista kontrolna przed użyciem
- Sprawdź, czy tekst nie jest pusty.
- Na urządzeniach mobilnych wklej najpierw krótki fragment.
- Pamiętaj, że emoji mogą zajmować 2 jednostki kodu UTF-16.
- Kliknij przycisk obliczania – wyniki nie pojawiają się automatycznie.
Najczęstsze pytania
Dlaczego wynik dla tekstu „AAAA” to 4 bity, a nie mniej?
Dla pojedynczego znaku kod Huffmana to 0, więc każdy z 4 znaków zajmuje 1 bit, co daje 4 bity. To minimum dla tego algorytmu.
Czy mogę skompresować plik i pobrać go?
Nie. To symulator edukacyjny – nie tworzy pliku ani nie oferuje dekompresji. Pokazuje jedynie, jak działa kodowanie Huffmana na tekście.
Dlaczego w wynikach widzę „\n” zamiast nowej linii?
To notacja JSON – znaki specjalne są wyświetlane w formie ucieczki. Nowa linia jest pokazywana jako \n, ale w rzeczywistości to jeden znak.
Przetwarzanie odbywa się lokalnie w przeglądarce.