Online datakomprimeringssimulator
Indsæt tekst og se, hvordan Huffman-kodning ville reducere bit. Simulatoren viser originale UTF-8-bit og teoretisk nyttelast. Ingen filoverførsel. Behandling…
Begynd at bruge
Forstå Huffman-komprimering med konkrete eksempler
Huffman-kodning er en metode til at forkorte repræsentationen af hyppige tegn. Denne simulator lader dig indsætte tekst og straks se, hvordan kodningen ville se ud. For eksempel giver teksten AAAA 32 originale UTF-8-bit og 4 bit i Huffman-nyttelasten, fordi alle tegn er ens og får koden 0. Teksten ABBC giver 32 originale bit og 6 bit nyttelast. Selv korte tekster med mange forskellige tegn kan give længere koder, så fortolk ikke resultatet som en garanteret filstørrelse.
Sådan læses resultatet
Resultatet viser hvert tegn i JSON-quoteret notation (for eksempel "A" eller "\n" for linjeskift) efterfulgt af den binære kode. Derefter vises to tal: antal originale UTF-8-bit og antal Huffman-nyttelast-bit. Bemærk, at synlige mellemrum og linjeskift er forskellige tegn og tæller hver for sig.
Begrænsninger og vigtige detaljer
- Simulatoren accepterer op til 100.000 JavaScript UTF-16-kodeenheder. Mange emojier bruger to kodeenheder, så tæl ikke med synlige tegn.
- Tom tekst afvises. Indsæt altid noget indhold.
- Resultatet er en teoretisk nyttelast uden kodetabeller, overhead eller filformater. Det er ikke en ægte komprimeret fil.
- Behandlingen sker i din browser; der sendes ingen data til serveren. Det er ikke kryptering.
Ofte stillede spørgsmål
Hvorfor viser resultatet ikke en komprimeret fil?
Dette er en uddannelsessimulator, ikke et filkomprimeringsværktøj. Den beregner kun den teoretiske bitlængde for selve dataene uden ekstra overhead. For rigtig komprimering skal du bruge et arkivværktøj.
Hvordan håndteres tegn med samme frekvens?
Når to tegn har samme frekvens, kan Huffman-træet bygges på flere måder, så koderne kan variere. Det vigtigste er den samlede vægtede bitlængde, ikke de enkelte koder.
Hvorfor vises nogle tegn som escape-sekvenser?
Resultatet bruger JSON-lignende notation for at gøre usynlige tegn synlige. For eksempel vises et linjeskift som \n i stedet for et faktisk linjeskift. Det er kun en visuel repræsentation.
Behandlingen foregår lokalt i din browser.