Un directorio de 398 MB solo se comprimió a 393 MB con 7Z y compresión ZIP normal. ¿Esto es normal? Si es así, ¿por qué la gente continúa usando ZIP en Windows?
windows
compression
7-zip
Thomas Owens
fuente
fuente
La compresión funciona buscando patrones repetitivos dentro de los elementos para comprimir. Además, debido a que no desea perder ningún dato mientras comprime sus archivos, la compresión debe ser sin pérdidas (*).
Ahora con eso en la cabeza, piense en la forma en que los archivos (elementos) se almacenan en una computadora. En el nivel más bajo, todos son solo un grupo de 0 y 1.
La pregunta se puede transformar así en: " ¿Cómo puedo representar un grupo de 1 y 0 de una manera más compacta que la representación original? "
Entonces, comencemos desde el principio, ¿cómo puede compactar la representación normal de un solo bit (un solo 1 o un solo 0)?
La respuesta es realmente fácil: ¡no puedes! ... un solo bit se representa de la manera más compacta posible.
Es justo, tomemos un ejemplo más grande, ¿cómo comprimirías una cadena binaria como 0111 0111 0100 0111 ?
Bueno, porque ya sabemos que mirar los bits individuales no nos ayudará en absoluto, sabemos que tenemos que mirar a una escala mayor. Por ejemplo, tomemos 4 bits a la vez. Ahora vemos que la cadena binaria "0111" aparecerá 3 veces en el ejemplo, entonces, ¿por qué no representamos eso con un solo bit: 0? pero esto todavía deja a 0100 en la oscuridad, así que representemos eso con "1"
Sabemos que hemos comprimido el original a: "0010"
¡Eso es realmente bueno! Sin embargo, esto es solo lo básico del "algoritmo de codificación de Huffman" , y en el mundo real será un poco más complicado que eso (y también necesitaría almacenar una tabla con la información de codificación, pero eso es un demasiado lejos para responder esta pregunta).
Ahora para responder realmente a su pregunta: ¿por qué no se pueden comprimir todos los datos de esa manera? Bueno, tomemos otro ejemplo: "0001 0110 1000 1111", si utilizáramos la misma técnica que la anterior, no podríamos comprimir los datos (no se encuentra la repetición), y por lo tanto no se beneficiaría de la compresión ...
(*) hay, por supuesto, excepciones al respecto. El ejemplo más conocido de esto es la compresión utilizada para archivos MP3. aquí se perderá alguna información sobre los sonidos al convertirla del archivo original sin formato al formato MP3, por lo que esta compresión es con pérdida . Otro ejemplo es el formato .JPG para imágenes
fuente
El proceso de compresión toma patrones repetibles y los tokeniza a patrones más cortos. La salida es, en su mayoría, no repetible y, por lo tanto, no puede comprimirse mucho, si es que lo hace.
fuente
De la sección Limitaciones del artículo de Wikipedia sobre Compresión sin pérdida :
Básicamente, es teóricamente imposible comprimir todos los datos de entrada posibles sin pérdidas.
fuente
¿Esto es normal?
No. No con archivos "normales". ¿Qué tipo de archivos estaba comprimiendo? Si ya estaban comprimidos, por ejemplo, son JPG, GIF, PNG, videos o incluso otros archivos zip, entonces ningún algoritmo los comprimirá demasiado. Si intenta comprimir archivos de texto, XML, BMP sin comprimir, código fuente, etc., zip proporcionará una buena compresión, pero probablemente no sea la mejor opción.
¿Por qué las personas continúan usando ZIP en Windows?
Una razón es que hay un buen manejo de zip integrado en el sistema: puede hacer clic derecho en cualquier lugar y crear un nuevo archivo zip, y luego colocar cosas en él. Puede hacer doble clic en un archivo zip y se abrirá como una carpeta. Puede copiar cosas y, a veces, incluso usarlo en su lugar. No necesita instalar WinZip o 7z ni ningún otro programa. Por lo general, recomiendo que la gente no lo haga.
fuente
En un archivo zip que contiene muchos archivos, cada archivo se comprime de forma independiente. Si existe una gran similitud entre los archivos, entonces una herramienta diferente podría proporcionar una compresión mucho mejor.
Por ejemplo, tar.gz une los archivos, luego comprime los resultados. Del mismo modo, un archivo rar "sólido" hace uso de similitudes entre archivos.
La desventaja de tar.gz o un rar sólido es que ya no puede extraer un solo archivo de un archivo grande sin descomprimir el archivo hasta donde está el archivo que desea.
fuente