O algoritmo de compressão Lempel-Ziv-Welch (LZW) é inerentemente computacionalmente intensivo, com a maior parte do trabalho sendo realmente computando o dicionário. Isso é literalmente como o LZW funciona.
O próprio algoritmo adiciona uma nova entrada de dicionário para cada próximo "símbolo" digitalizado e, assim, durante cada iteração, uma nova entrada é adicionada ao dicionário. De fato, o dicionário torna-se a cópia compactada do arquivo e, portanto, é na verdade a única coisa que a compactação LZW gasta algum tempo significativo computando em primeiro lugar.
Se você usasse algo como codificação Huffman , a reutilização do dicionário seria de fato possível (às custas de um possível taxa / tamanho de compressão sub-ótimo). No entanto, a maioria dos algoritmos de compressão modernos & As ferramentas usam o algoritmo LZW para eficiência e velocidade (a compressão Huffman exigiria duas passagens pelos dados [uma para gerar a árvore / tabela Huffman, outra para compactar os dados], enquanto a LZW pode ser completada em uma única passagem).