Онлайн симулятор стиснення даних
Досліджуйте коди Гаффмана, порівнюйте біти UTF-8 й корисного навантаження, копіюйте результат. Навчальна демонстрація без архіву.
Почати роботу
Значення результатів
Симулятор рахує кодові точки Unicode та будує двійкове дерево Гаффмана, об’єднуючи два вузли з найменшою частотою. Єдиний унікальний символ отримує код 0. Той самий точний текст тут дає ті самі коди. Інший порядок розв’язання однакових частот може дати інші допустимі коди; порівнюйте зважену довжину корисного навантаження.
Приклади для перевірки
ABBC дає B=0, A=10 і C=11: 2×1 + 1×2 + 1×2 = 6 бітів навантаження проти 32 бітів UTF-8. AAAA дає 32 і 4 біти; 你好 — 48 і 2 біти; справжні символи 😀😀 — 64 і 2 біти.
Введення й відображення
Ліміт — 100 000 кодових одиниць JavaScript UTF-16, а не байтів UTF-8 чи видимих символів. Багато емодзі використовують дві одиниці; одна видима послідовність може мати кілька кодових точок. Порожній текст відхиляється, але пробільні знаки є допустимими даними. JSON показує новий рядок як \n, табуляцію як \t, а звичайний пробіл — у лапках, " ". Це не змінює введений символ.
Межі демонстрації
Вихідні біти — довжина UTF-8 у байтах, помножена на вісім. Навантаження сумує частоту кожного символу, помножену на довжину коду. Таблиця кодів, дерево, заголовки, заповнення й контейнерні витрати не враховуються. Це не розмір стисненого файлу й не гарантія економії. Архів, стиснений двійковий файл для завантаження та декомпресор не створюються; це не шифрування. Обчислення відбувається в браузері. Багато різних символів можуть утворити довгу таблицю.
Обробка виконується локально у вашому браузері.