Визуализатор сжатия LZ77
Визуализируйте сжатие скользящего окна LZ77 шаг за шагом при любом текстовом вводе — визуализатор сжатия lz77 генерирует каждый токен (смещение, длина, следующий символ) с простым объяснением на английском языке и интерактивной подсветкой ввода. Щелкните любой токен, чтобы увидеть точный буфер поиска и состояние просмотра вперед в этой позиции. Настройте размер окна и буфер просмотра, чтобы понять, как они влияют на степень сжатия. Работает полностью в вашем браузере — регистрация не требуется.
LZ77 Compression Visualizer
Enter any text to see LZ77 sliding window compression step-by-step. Each token shows the (offset, length, next-char) tuple with a plain-English explanation. Click any token to highlight the search buffer and match in the input. Runs entirely in your browser.
Input & Settings
12/500 characters
How far back to search for matches.
Max match length to look for.
Enter any text above and click Visualize LZ77 Compression to see the sliding window algorithm step-by-step. Each token shows the (offset, length, next-char) tuple - click any token to highlight the search buffer and match in the input. Try the presets for instant examples.
Зачем использовать наш визуализатор сжатия LZ77?
- Мгновенная пошаговая визуализация LZ77: мгновенно генерируйте каждый токен сжатия LZ77 — визуализатор сжатия lz77 запускает полный алгоритм скользящего окна в вашем браузере и показывает каждый кортеж (смещение, длина, следующий символ) с простым английским объяснением и интерактивной подсветкой ввода.
- Безопасный онлайн-визуализатор сжатия LZ77: ваш текст никогда не покидает ваше устройство. Визуализатор сжатия lz77 полностью работает в вашем браузере — без загрузки на сервер, без передачи данных, 100% конфиденциальность. Безопасно для фрагментов собственного кода, данных конфигурации и образцов конфиденциального текста.
- Интерактивное скользящее окно. Обучение: щелкните любой токен, чтобы выделить буфер поиска, совпадение и следующий символ в исходном вводе. Визуализатор сжатия lz77 показывает точное состояние скользящего окна на каждом этапе, что позволяет лучше всего понять, как LZ77 работает на практике.
- 100% бесплатно навсегда: визуализатор сжатия lz77 абсолютно бесплатен, не требует регистрации, премиум-уровня, ограничений на размер входных данных и рекламы. Визуализируйте сжатие LZ77 для неограниченного ввода текста без каких-либо затрат и навсегда.
Распространенные случаи использования визуализатора сжатия LZ77
- Образование в области компьютерных наук: научите учащихся сжатию LZ77 с помощью живой интерактивной визуализации — узнайте, как именно алгоритм скользящего окна создает токены из любого ввода текста. Визуализатор сжатия lz77 делает абстрактную теорию сжатия конкретной и сразу понятной.
- Понимание внутреннего устройства GZIP и DEFLATE: GZIP и DEFLATE построены на LZ77. Понимание LZ77 является основой для понимания того, как работает веб-сжатие. Визуализатор сжатия lz77 показывает точный процесс генерации токенов, который использует DEFLATE перед применением кодирования Хаффмана.
- Подготовка к собеседованию по алгоритму: попрактикуйтесь в объяснении сжатия LZ77 для технических собеседований, пошагово проработав алгоритм при вводе данных пользователем. Визуализатор сжатия lz77 позволяет вам проверить свое понимание смещения, длины и кодировки токена следующего символа с мгновенной обратной связью.
- Исследование и экспериментирование со сжатием. Поэкспериментируйте с различными размерами окон и размерами буфера просмотра, чтобы увидеть, как они влияют на количество токенов и степень сжатия. Визуализатор сжатия lz77 позволяет легко понять компромисс между размером окна поиска и эффективностью сжатия.
- Анализ сжимаемости текста. Узнайте, почему часто повторяющийся текст (например, «AABCAABCAABC») сжимается хорошо, а случайный текст — нет. Визуализатор сжатия lz77 точно показывает, какие подстроки соответствуют обратным ссылкам, а какие должны быть выданы как литералы.
- Создание пользовательских реализаций сжатия. Проверьте свою собственную реализацию LZ77, сравнив выходные данные ее токена с визуализатором сжатия lz77 на том же входе. Используйте пошаговый список токенов и отображение состояния скользящего окна для отладки вычислений смещения и длины.
Что такое сжатие LZ77?
LZ77 (Лемпель-Зив, 1977) — алгоритм сжатия данных без потерь, изобретенный Авраамом Лемпелем и Джейкобом Зивом. Это основа DEFLATE, которая поддерживает GZIP, ZIP, PNG и zlib, что делает LZ77 одним из наиболее широко используемых алгоритмов сжатия в вычислениях. LZ77 работает путем замены повторяющихся вхождений данных ссылками на одну копию, которая появляется раньше в потоке несжатых данных. Каждая ссылка представляет собой токен (смещение, длина, следующий символ): смещение — это то, насколько далеко в буфере поиска начинается совпадение, длина — это количество совпадающих символов, а следующий символ — это первый символ, который не совпал. Наш визуализатор сжатия lz77 показывает каждый токен, сгенерированный для вашего входного текста, с интерактивной подсветкой.
Как работает наш визуализатор сжатия LZ77
- 1 Введите текст и настройте окно: введите или вставьте любой текст (до 500 символов) в область ввода. Выберите размер окна поиска (насколько далеко назад следует искать совпадения) и размер буфера просмотра (максимальная длина совпадений). Используйте готовые примеры для мгновенной демонстрации.
- 2 Нажмите «Визуализировать сжатие LZ77». Визуализатор сжатия lz77 запускает полный алгоритм скользящего окна в вашем браузере и генерирует каждый токен (смещение, длина, следующий символ). Результаты появляются мгновенно со сводной информацией о количестве токенов, букв, обратных ссылках и степени сжатия. Ваш текст никогда не покидает ваше устройство.
- 3 Щелкните любой токен, чтобы изучить состояние скользящего окна: при выделении ввода отображается буфер поиска (желтый), совпадающая подстрока (зеленый) и следующий символ (синий) для выбранного токена. На панели сведений о токене отображается точное содержимое буфера поиска и предварительный просмотр этой позиции.
Что представляет собой каждый токен LZ77
- Смещение (расстояние назад): на сколько символов в буфере поиска начинается сопоставление. Смещение 0 означает, что совпадение не найдено — токен является литералом. Смещение 5 означает, что совпадение начинается за 5 символов до текущей позиции.
- Длина (длина совпадения): сколько последовательных символов совпадают между буфером поиска и просмотром вперед. Длина 0 означает буквальное значение (нет совпадения). Более длинные совпадения означают лучшее сжатие — один токен заменяет несколько символов.
- Следующий символ: первый символ в предварительном просмотре, который не совпал (или следующий символ после совпадения). Это гарантирует, что декодер всегда сможет продвинуться хотя бы на один символ, даже для буквальных токенов.
- Модель стоимости битов: каждый токен стоит log₂(размер окна) бит для смещения + log₂(размер прогнозируемого размера) бит для длины + 8 бит для следующего символа. Реальные реализации (DEFLATE) добавляют код Хаффмана сверху для дальнейшего сжатия потока токенов.
LZ77 против DEFLATE против GZIP
Чистый LZ77, показанный в этом визуализаторе, редко используется напрямую — в реальных реализациях добавляется второй проход сжатия. DEFLATE (используется в GZIP, ZIP и PNG) сначала применяет LZ77 для поиска обратных ссылок, затем применяет кодирование Хаффмана к потоку токенов для дальнейшего сжатия значений смещения, длины и символов. LZ78 и LZW — варианты, в которых вместо скользящего окна используется словарь. LZSS — это оптимизированный вариант LZ77, который опускает поле следующего символа при обнаружении совпадения, что снижает накладные расходы на токен. Визуализатор сжатия lz77 реализует оригинальный алгоритм LZ77 для максимальной наглядности.
Часто задаваемые вопросы
Визуализатор сжатия lz77 шаг за шагом показывает алгоритм сжатия скользящего окна LZ77 при любом вводе текста, генерируя каждый токен (смещение, длину, следующий символ) с простым объяснением на английском языке. Наш бесплатный визуализатор сжатия lz77 полностью работает в вашем браузере и не требует регистрации.
Каждый токен LZ77 кодирует совпадение в буфере поиска. Смещение — это то, как далеко начинается матч; длина — сколько символов совпадает; next-char — первый несовпадающий символ. Токен (0, 0, 'A') является литералом. Токен (5, 3, «X») означает «вернуться на 5 символов назад, скопировать 3 символа, затем выдать «X»».
Да, полностью. Визуализатор сжатия lz77 полностью работает в вашем браузере. Ваш текст никогда не загружается ни на какой сервер и никогда не покидает ваше устройство.
Да – 100% бесплатно, навсегда. Без регистрации, без учетной записи, без премиум-уровня, без ограничений на размер ввода и без рекламы.
GZIP и DEFLATE построены на LZ77. DEFLATE сначала применяет LZ77 для поиска обратных ссылок, затем применяет кодирование Хаффмана к потоку токенов для дополнительного сжатия. Понимание LZ77 является основой для понимания того, как работает сжатие GZIP, ZIP, PNG и zlib.
Увеличенное окно поиска позволяет LZ77 находить совпадения дальше во входных данных, обеспечивая более длинные совпадения и лучшую степень сжатия. Однако для больших окон требуется больше битов для кодирования значения смещения. Реальные реализации DEFLATE используют окно размером 32 КБ.
LZ77 заменяет повторяющиеся подстроки обратными ссылками. Текст типа «AABCAABCAABC» имеет множество повторяющихся шаблонов, поэтому большинство токенов являются обратными ссылками, а не литералами. Случайный текст не повторяется, поэтому каждый токен является литералом, поэтому никакого преимущества при сжатии нет.
LZ77 использует скользящее окно (буфер последних выходных данных фиксированного размера) для поиска совпадений. LZ78 использует явный словарь, который увеличивается по мере обработки входных данных алгоритмом. LZW (используется в GIF) — вариант LZ78. DEFLATE использует LZ77, поскольку метод скользящего окна более эффективен для потоковой передачи данных.
Визуализатор сжатия lz77 ограничен 500 символами для пошаговой визуализации — более длинные входные данные будут генерировать сотни токенов, в которых трудно ориентироваться. Для анализа степени сжатия файлов большего размера используйте инструмент «Анализатор степени сжатия файлов».