¿Cómo es que, los diferentes archivos de texto se convierten en diferentes tamaños después de la compresión?

StackOverflow https://stackoverflow.com/questions/2906491

Pregunta

Tengo algunos archivos de texto al azar size = 27 GB y después de la compresión se convierte en 40 MB o menos.

Y un archivo de 3,5 GB SQL convertido 45 Mb después de la compresión.

Sin embargo, un archivo de texto 109 mb convertido en 72 mb después de la compresión así que lo que puede estar mal con él.

¿Por qué tan menos comprimido, debe 10 mb o menos, o me estoy perdiendo algo.

Todos los archivos que puedo ver es solamente Inglés texto y símbolos gramaticales y algunos (/, -. = + Etc)

¿Por qué?

Si no se puede saber cómo puedo súper comprimir un archivo de texto?

Me puede codificar en PHP, np en eso.

¿Fue útil?

Solución

La relación de compresión de un archivo depende de su contenido.

La mayoría de los algoritmos de compresión de trabajar mediante la conversión de datos repetidos en una única repetición, especificando el número de veces que se repite.

Por ejemplo, un archivo que contiene la letra a 1.000.000 de veces se puede comprimir mucho más que un archivo con contenido completamente al azar.

Para obtener más información, por favor proporcione más información.

Otros consejos

Piénsalo de esta manera ... si usted tiene un archivo que contiene:

abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc

El archivo esencialmente sólo almacena abc times 18

Por otro lado, este archivo:

abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

sólo podía almacenar:

abcdefghijklmnopqrstuvwxyz times 2

Por lo tanto, la segunda compresas archivo como un archivo más grande que la primera, a pesar de que es más corto, para empezar.

La compresión funciona mediante la eliminación de duplicados en los datos de entrada. El archivo de 3,5 GB se convierte en mucho menos después de la compresión, ya que tiene una gran cantidad de datos duplicados, mientras que su archivo más pequeño no se comprime tanto, ya que no contiene la mayor cantidad de datos duplicados.

Si usted quiere entender cómo funciona la compresión es más comprimir los servicios públicos, entonces miran artículo Lempel-Ziv-Welch , que es el algoritmo sobre el que se construyen la mayoría de estos algoritmos.

PHP es probable que la elección equivocada para el proyecto tal porque va a ser muy lenta en ese idioma en comparación con la perfección buenas bibliotecas existentes en C, que ya forman parte del propio PHP.

En general, el nivel de compresión depende de la cantidad y los patrones de similitud el algoritmo puede encontrar en el archivo. Si todos los archivos contienen texto Inglés las cifras son extraños. Yo fuertemente sospechoso que los archivos que tienen una relación de compresión extrema contienen grandes trozos de la repetición de segmentos de texto.

La compresión funciona mediante la eliminación de la redundancia en los datos. El lugar definitivo para empezar es probablemente con Huffman Codificación, que es uno de los primeros trabajos seminales directamente en el problema, pero puede cuidar a cavar más atrás a las obras originales de Shannon en Teoría de la Información .

Estos no son nuevos conceptos - por primera vez recuperado un interés significativo en la década de 1940 y 50 de cuando la gente estaba interesada en la transmisión de datos de manera eficiente los canales a fuego muy limitados. El tema no es sólo de interés para el cálculo de cualquiera - hay algunas conexiones muy profundas con la entropía y otras física fundamental. Por ejemplo resulta perfectamente los datos comprimidos es indistinguible de ruido blanco.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top