Visualizador de compressão LZ77
Visualize a compactação da janela deslizante LZ77 passo a passo em qualquer entrada de texto - o visualizador de compactação lz77 gera cada token (deslocamento, comprimento, próximo caractere) com uma explicação em inglês simples e destaque de entrada interativo. Clique em qualquer token para ver o buffer de pesquisa exato e o estado antecipado nessa posição. Configure o tamanho da janela e o buffer lookahead para entender como eles afetam a taxa de compactação. Funciona inteiramente no seu navegador - não é necessária inscrição.
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.
Por que usar nosso visualizador de compressão LZ77?
- Visualização instantânea passo a passo do LZ77: Veja cada token de compactação LZ77 gerado instantaneamente - o visualizador de compactação lz77 executa o algoritmo completo da janela deslizante em seu navegador e mostra cada tupla (deslocamento, comprimento, próximo caractere) com uma explicação em inglês simples e destaque de entrada interativo.
- Visualizador de compressão LZ77 seguro online: Seu texto nunca sai do seu dispositivo. O visualizador de compressão lz77 é executado inteiramente no seu navegador - sem uploads de servidor, sem transmissão de dados, 100% privado. Seguro para trechos de código proprietários, dados de configuração e amostras de texto confidenciais.
- Educação interativa em janela deslizante: Clique em qualquer token para destacar o buffer de pesquisa, a correspondência e o próximo caractere na entrada original. O visualizador de compressão lz77 mostra o estado exato da janela deslizante em cada etapa - tornando-o a maneira mais clara de entender como o LZ77 funciona na prática.
- 100% gratuito para sempre: o visualizador de compressão lz77 é totalmente gratuito, sem inscrição, sem nível premium, sem limites de tamanho de entrada e sem anúncios. Visualize a compactação LZ77 para entradas de texto ilimitadas a custo zero, para sempre.
Casos de uso comuns para o visualizador de compactação LZ77
- Educação em ciência da computação: ensine a compactação LZ77 aos alunos com uma visualização interativa e ao vivo - veja exatamente como o algoritmo de janela deslizante cria tokens a partir de qualquer entrada de texto. O visualizador de compressão lz77 torna a teoria abstrata da compressão concreta e imediatamente compreensível.
- Compreendendo os componentes internos do GZIP e do DEFLATE: GZIP e DEFLATE são construídos no LZ77 - entender o LZ77 é a base para entender como funciona a compactação da web. O visualizador de compactação lz77 mostra o processo exato de geração de token que o DEFLATE usa antes de aplicar a codificação Huffman.
- Preparação para entrevista de algoritmo: pratique a explicação da compactação LZ77 para entrevistas técnicas percorrendo o algoritmo em entradas personalizadas. O visualizador de compactação lz77 permite verificar sua compreensão do deslocamento, comprimento e codificação do token do próximo caractere com feedback instantâneo.
- Pesquisa e experimentação de compactação: experimente diferentes tamanhos de janela e tamanhos de buffer antecipado para ver como eles afetam a contagem de tokens e a taxa de compactação. O visualizador de compactação lz77 facilita a compreensão da compensação entre o tamanho da janela de pesquisa e a eficácia da compactação.
- Analisando a compressibilidade do texto: veja por que o texto altamente repetitivo (como "AABCAABCAABC") é compactado bem, enquanto o texto aleatório não - o visualizador de compactação lz77 mostra exatamente quais substrings são correspondidas como referências anteriores e quais devem ser emitidas como literais.
- Construindo implementações de compactação personalizadas: verifique sua própria implementação LZ77 comparando sua saída de token com o visualizador de compactação lz77 na mesma entrada. Use a lista de tokens passo a passo e a exibição do estado da janela deslizante para depurar cálculos de deslocamento e comprimento.
O que é compressão LZ77?
LZ77 (Lempel-Ziv 1977) é um algoritmo de compressão de dados sem perdas inventado por Abraham Lempel e Jacob Ziv. É a base do DEFLATE, que alimenta GZIP, ZIP, PNG e zlib – tornando o LZ77 um dos algoritmos de compressão mais utilizados na computação. LZ77 funciona substituindo ocorrências repetidas de dados por referências a uma única cópia que aparece anteriormente no fluxo de dados descompactado. Cada referência é um token (deslocamento, comprimento, próximo caractere): deslocamento é o quão atrás no buffer de pesquisa a correspondência começa, comprimento é quantos caracteres correspondem e próximo caractere é o primeiro caractere que não corresponde. Nosso visualizador de compactação lz77 mostra cada token gerado para o seu texto de entrada com destaque interativo.
Como funciona nosso visualizador de compressão LZ77
- 1 Digite seu texto e configure a janela: Digite ou cole qualquer texto (até 500 caracteres) na área de entrada. Escolha o tamanho da janela de pesquisa (até onde procurar correspondências) e o tamanho do buffer de antecipação (comprimento máximo da correspondência). Use os exemplos predefinidos para demonstrações instantâneas.
- 2 Clique em "Visualizar compactação LZ77": O visualizador de compactação lz77 executa o algoritmo completo da janela deslizante em seu navegador e gera cada token (deslocamento, comprimento, próximo caractere). Os resultados aparecem instantaneamente com um resumo da contagem de tokens, contagem literal, referências anteriores e taxa de compactação. Seu texto nunca sai do seu dispositivo.
- 3 Clique em qualquer token para explorar o estado da janela deslizante: O destaque de entrada mostra o buffer de pesquisa (amarelo), a substring correspondente (verde) e o próximo caractere (azul) do token selecionado. O painel de detalhes do token mostra o conteúdo exato do buffer de pesquisa e a visualização antecipada nessa posição.
O que cada token LZ77 representa
- Offset (distância atrás): Quantos caracteres atrás no buffer de pesquisa a correspondência inicia. Um deslocamento de 0 significa que nenhuma correspondência foi encontrada - o token é literal. Um deslocamento de 5 significa que a partida começa 5 caracteres antes da posição atual.
- Comprimento (comprimento de correspondência): quantos caracteres consecutivos correspondem entre o buffer de pesquisa e o lookahead. Um comprimento de 0 significa literal (sem correspondência). Correspondências mais longas significam melhor compactação - um token substitui vários caracteres.
- Próximo caractere: o primeiro caractere no lookahead que não correspondeu (ou o próximo caractere após a correspondência). Isso garante que o decodificador sempre possa avançar pelo menos um caractere, mesmo para tokens literais.
- Modelo de custo de bits: cada token custa log₂ (tamanho da janela) bits para deslocamento + log₂ (tamanho antecipado) bits para comprimento + 8 bits para o próximo caractere. Implementações reais (DEFLATE) adicionam codificação Huffman na parte superior para compactar ainda mais o fluxo de token.
LZ77 vs DEFLATE vs GZIP
O LZ77 puro, conforme mostrado neste visualizador, raramente é usado diretamente - as implementações do mundo real adicionam uma segunda passagem de compactação. DEFLATE (usado em GZIP, ZIP e PNG) aplica LZ77 primeiro para encontrar referências anteriores e, em seguida, aplica a codificação Huffman ao fluxo de token para compactar ainda mais os valores de deslocamento, comprimento e caracteres. LZ78 e LZW são variantes que utilizam um dicionário em vez de uma janela deslizante. LZSS é uma variante LZ77 otimizada que omite o campo next-char quando uma correspondência é encontrada, reduzindo a sobrecarga do token. O visualizador de compressão lz77 implementa o algoritmo LZ77 original para máxima clareza educacional.
Perguntas frequentes
Um visualizador de compactação lz77 mostra o algoritmo de compactação de janela deslizante LZ77 passo a passo em qualquer entrada de texto - gerando cada token (deslocamento, comprimento, próximo caractere) com uma explicação em inglês simples. Nosso visualizador de compressão lz77 gratuito é executado inteiramente em seu navegador, sem necessidade de inscrição.
Cada token LZ77 codifica uma correspondência no buffer de pesquisa. Offset é o quão longe a partida começa; comprimento é quantos caracteres correspondem; next-char é o primeiro caractere sem correspondência. Um token de (0, 0, 'A') é um literal. Um token de (5, 3, 'X') significa "voltar 5 caracteres, copiar 3 caracteres e depois emitir 'X'".
Sim, completamente. O visualizador de compressão lz77 é executado inteiramente no seu navegador. Seu texto nunca é carregado em nenhum servidor e nunca sai do seu dispositivo.
Sim - 100% grátis, para sempre. Sem inscrição, sem conta, sem nível premium, sem limites de tamanho de entrada e sem anúncios.
GZIP e DEFLATE são construídos em LZ77. DEFLATE aplica LZ77 primeiro para encontrar referências anteriores e, em seguida, aplica a codificação Huffman ao fluxo de token para compactação adicional. Compreender o LZ77 é a base para entender como a compactação GZIP, ZIP, PNG e zlib funcionam internamente.
Uma janela de pesquisa maior permite que o LZ77 encontre correspondências mais atrás na entrada, produzindo correspondências mais longas e melhores taxas de compressão. No entanto, janelas maiores requerem mais bits para codificar o valor de deslocamento. As implementações reais do DEFLATE usam uma janela de 32 KB.
LZ77 substitui substrings repetidas por referências anteriores. Texto como "AABCAABCAABC" tem muitos padrões repetidos, portanto a maioria dos tokens são referências anteriores em vez de literais. O texto aleatório não tem repetição, portanto, cada token é literal - sem benefício de compactação.
LZ77 usa uma janela deslizante (um buffer de tamanho fixo de saída recente) para encontrar correspondências. LZ78 usa um dicionário explícito que cresce à medida que o algoritmo processa a entrada. LZW (usado em GIF) é uma variante do LZ78. DEFLATE usa LZ77 porque a abordagem de janela deslizante é mais eficiente para streaming de dados.
O visualizador de compactação lz77 é limitado a 500 caracteres para visualização passo a passo - entradas mais longas gerariam centenas de tokens difíceis de navegar. Para analisar taxas de compactação em arquivos maiores, use a ferramenta File Compression Ratio Analyzer.