온라인 데이터 압축 시뮬레이터
허프만 코드를 확인하고 UTF-8 비트 수와 페이로드를 비교해 결과를 복사하세요. 압축 파일을 만들지 않는 학습용 도구입니다.
사용 시작
결과의 의미
Unicode 코드 포인트별 빈도를 세고 가장 빈도가 낮은 두 노드를 합쳐 이진 허프만 트리를 만듭니다. 서로 다른 기호가 하나뿐이면 코드는 0입니다. 이 구현에서는 완전히 같은 입력에 같은 코드가 나옵니다. 같은 빈도를 처리하는 순서가 다른 구현에서는 다른 유효 코드가 나올 수 있으므로 가중 페이로드 길이를 비교하세요.
확인할 수 있는 예
ABBC는 B=0, A=10, C=11이 되어 2×1 + 1×2 + 1×2 = 6비트 페이로드를 만듭니다. 원본 UTF-8은 32비트입니다. AAAA는 32비트와 4비트, 你好는 48비트와 2비트, 실제 문자 😀😀는 64비트와 2비트입니다.
입력과 표시
상한은 JavaScript UTF-16 코드 단위 100,000개이며 UTF-8 바이트 수나 보이는 글자 수가 아닙니다. 많은 이모지는 두 단위를 쓰며, 하나로 보이는 시퀀스에 여러 코드 포인트가 있을 수 있습니다. 빈 텍스트는 거부하지만 공백만 있는 텍스트는 유효한 데이터입니다. JSON은 줄 바꿈을 \n, 탭을 \t, 일반 공백을 따옴표 안의 " "로 표시합니다. 표기는 입력 기호를 바꾸지 않습니다.
학습 도구의 한계
원본 비트 수는 UTF-8 바이트 길이의 8배입니다. 페이로드는 각 기호의 빈도와 코드 길이의 곱을 합한 값입니다. 코드표, 트리, 헤더, 패딩, 컨테이너 비용은 제외하므로 실제 압축 파일 크기나 용량 절감을 보장하지 않습니다. 아카이브, 내려받을 압축 바이너리 또는 압축 해제기를 만들지 않으며 암호화도 아닙니다. 계산은 브라우저에서 이루어집니다. 기호 종류가 많으면 결과표가 길어질 수 있습니다.
처리는 브라우저에서 로컬로 수행됩니다.