Itens que podem ser repetidos são armazenados em um dicionário e um código é designado como um substituto.
ESTA É UMA SOBRE SIMPLIFICAÇÃO
aaaaaaaaaaaaaaaaaaaaaaaa 0001
bbbbbbbbbbbbbbbbbbbbbbbb 0002
alsdjl;asjdfkl;asdfjkljj 0003
em vez de toda a linha, basta colocar o código em seu lugar. Quanto maior o dicionário, mais códigos ele pode manipular. Normalmente, quando um dicionário fica cheio, começa um novo na hora. Quando começa um novo, fica em branco e novos códigos são atribuídos aos padrões detectados.
Geralmente, quanto maior, melhor até certo ponto. Todo o dicionário é mantido na memória, então você precisa de mais RAM do que o tamanho do dicionário.
O tamanho do dicionário depende da compressibilidade dos dados, do número de arquivos, do tamanho e do tamanho geral.
Geralmente, 32mb é mais que suficiente, mas se você comprimir numerosos arquivos multi-gig, um número muito maior pode ser usado. Dicionários maiores geralmente tornam o processo mais lento, mas resultam em um arquivo menor.