Um computador preenche um arquivo (ou uma coleção de arquivos) contendo muitas informações usando algoritmos de compactação
sem perdas . Esses algoritmos funcionam identificando e removendo a redundância nos dados sem perder nenhuma das informações originais. Quando você descompacta o arquivo, os dados originais são perfeitamente reconstruídos.
Aqui está um colapso do processo:
1.
Detecção de redundância: O algoritmo de compactação analisa os dados, procurando padrões de repetição, sequências de dados semelhantes ou informações previsíveis. Por exemplo, um arquivo de texto pode ter muitas palavras ou frases repetidas, uma imagem pode ter grandes áreas de cor semelhante e um programa pode ter blocos de código repetitivo.
2.
Transformação de dados: Depois que a redundância é identificada, o algoritmo transforma os dados em uma representação mais compacta. Isso geralmente envolve técnicas como:
*
codificação de comprimento de execução (rle): Substitui seqüências repetidas de caracteres ou bytes por uma contagem e o elemento repetido. Por exemplo, "AAABBBCC" se torna "3A3B2C".
*
Codificação de Huffman: Atribui códigos mais curtos a elementos de dados mais frequentes e códigos mais longos a outros menos frequentes. Isso reduz o tamanho geral dos dados.
*
codificação de dicionário (LZ77, LZ78, Lempel-Ziv): Construa um dicionário de sequências de dados anteriormente encontradas. Em vez de armazenar a sequência repetidamente, o algoritmo faz referência à entrada da sequência no dicionário, reduzindo significativamente a redundância. Este é um componente central de muitos algoritmos populares de compressão, como o deflate (usado no ZIP).
*
Burrows-Wheeler Transform (BWT): Reordenta os dados para criar longas execuções de caracteres semelhantes, facilitando para que outras técnicas de compactação funcionem de maneira eficaz. Isso é usado em algoritmos como o BZIP2.
3.
codificação de dados: Os dados transformados são então codificados em um formato binário, incluindo geralmente um cabeçalho que contém metadados como os nomes originais de arquivos, tamanhos, registros de data e hora e método de compressão usados.
4.
armazenamento: Os dados compactados, incluindo o cabeçalho, são gravados no arquivo zip.
Por que é eficiente com arquivos grandes? Quanto mais dados existem, maior a probabilidade de conter redundância. Os algoritmos de compressão são altamente eficazes para explorar essa redundância. É provável que um arquivo grande tenha muitos padrões repetidos ou sequências previsíveis, permitindo reduções significativas de tamanho. Por exemplo, um grande arquivo de texto que contém uma frase repetida comprime muito mais eficaz do que um arquivo de texto curto e exclusivo.
Em resumo, o zipping de um arquivo não reduz magicamente o conteúdo * Information *, ele apenas faz uma representação mais * eficiente * dessa informação, removendo a redundância. Quanto mais redundância, maior a taxa de compressão.