Ao contrário dos sistemas como o JPEG e o MP3, que permitem comprimir imagens e músicas em versões que ocupam muito menos espaço, mas à custa de perda de informação (as imagens ficaram mais "esborratadas" quanto mais forte for a compressão; ou o som que também vai tendo qualidade cada vez mais reduzida) - no caso dos ZIPs, o tipo de compressão utilizado faz com que seja possível recuperar na íntegra toda a informação original.
Como é que isso acontece? Há vários métodos e formas, mas podem imaginar o processo como sendo algo deste tipo:
Se tiverem um ficheiro de texto que contenha muitas vezes a palavra "computador", o sistema pode analisar isso e dizer para substituir todas as ocorrências pelo código mais curto "%1". Assim, em dezenas ou centenas de ocorrências, pouparemos preciosos bytes usando-se este código curto para a palavra longa, e guardando-a apenas uma vez num "dicionário" que é criado especificamente para cada ficheiro a comprimir. No processo inverso, basta apenas ir ver o que cada um destes códigos comprimidos quer dizer (indo ao tal "dicionário") e repôr a informação original.
Outros processos incluem substituir sequências longas de caracteres por outra representação mais eficiente: ou seja, em vez de gastarem 1000 bytes num texto com 1000 espaços em branco consecutivos, poderíamos dizer apenas que são "1000 espaços", num número muito mais reduzido de bytes.
É precisamente por isso que um ficheiro com conteúdos repetidos se torna muito mais comprimível que um com conteúdos "aleatórios" ou muito variados.
Um exemplo perfeito é este ficheiro zip 42.
Este ficheiro ocupa cerca de 42Kb zipado, e contem 16 ficheiros - ele próprios zipados - que contêm eles próprios 16 ficheiros zipados, que contêm 16 ficheiros zipados, que contêm 16 ficheiros zipados, que contêm 16 ficheiros zipados, que contêm 1 ficheiro de 4.3GB comprimido.
Ou seja... dentro deste ficheiro de meros 42KB, têm na verdade:
- 16 x 4294967295 = 68.719.476.720 (68GB)
- 16 x 68719476720 = 1.099.511.627.520 (1TB)
- 16 x 1099511627520 = 17.592.186.040.320 (17TB)
- 16 x 17592186040320 = 281.474.976.645.120 (281TB)
- 16 x 281474976645120 = 4.503.599.626.321.920 (4,5PB)
(Caso se queiram aventurar a encher o disco de algum amigo, a password deste ficheiro zip é: 42.)
Agora fazia falta um post a comparar Zip com RAR :D
ResponderEliminarqueria saber como fazer isso
ResponderEliminarO RAR é proprietário. Eu aponto mais para o 7zip.
ResponderEliminarAlgo não bate certo!!!!
ResponderEliminar