¿Triple compresión y solo ahorro un 1% de espacio?

¿Triple compresión y solo ahorro un 1% de espacio?

He estado intentando ahorrar espacio en mi servidor Linux y tenía una carpeta que contenía, en subcarpetas, 22 GB de imágenes.

Entonces decidí comprimirlos.

Primero usé alquitrán:

tar -zcf folder.tar folder 

Luego gzip

gzip folder

Y por último, por si acaso, bzip2

bzip2 folder

¡Y después de todo eso, el total de todos los folder.tar.gz.bzip2s llegó a 22 GB! ¡Con una mayor precisión, se ahorra un 1% de espacio!

¿He hecho algo mal aquí? ¡Esperaría un ahorro mucho mayor que el 1%!

¿De qué otra manera puedo comprimir los archivos?

Respuesta1

La relación de compresión esmuydependiendo de lo que estés comprimiendo. La razón por la que el texto se comprime tan bien es porque ni siquiera comienza a utilizar por completo toda la gama de números representables en el mismo espacio binario. Entonces, los formatos que lo hacen (por ejemplo, archivos comprimidos) pueden almacenar la misma información en menos espacio simplemente usando todos esos números binarios que no significan nada en las codificaciones textuales y pueden representar de manera efectiva progresiones completas de caracteres en un solo byte y obtener una buena relación de compresión. de esa manera.

Si los archivos ya están comprimidos, normalmente no verá muchas ventajas al comprimirlos nuevamente. Si eso realmente le ahorró espacio adicional, probablemente sea una indicación de que el primer algoritmo de compresión apesta. A juzgar por la naturaleza de la pregunta, asumiré que muchos de estos son archivos multimedia y, como tales, ya están comprimidos (aunque con algoritmos que priorizan la velocidad de descompresión), por lo que probablemente no obtendrá mucho de ellos. Una especie de escenario de sangre de piedra: ya son tan pequeños como se podría hacer sin perder información.

Si estoy muy preocupado por el espacio, simplemente hago "bzip2 -9" y lo llamo bueno. Sin embargo, he oído cosas buenas sobre la relación en XZ. Yo no he usado XZ (aparte de para descomprimir cosas de otras personas), pero se supone que tiene una mejor proporción que bzip2, pero tarda un poco más en comprimir/descomprimir.

Respuesta2

Sus intentos de compresión fallaron porque sus datos ya están muy comprimidos y no hay mucho más que ganar; consulte las otras respuestas para obtener explicaciones más detalladas. Sin embargo, si pueden ponerse de acuerdocon pérdidacompresión, a diferencia desin pérdidasComo lo intentaste antes, puedes comprimir las imágenes significativamente. Pero como los datos están cortados, no se pueden deshacer.

Aquí hay un ejemplo que vuelve a comprimir todas las imágenes JPEG usando imagemagick. Tenga en cuenta que esto sobrescribirá sus archivos.

find image_directory -type f -name "*.jpg" -exec mogrify -quality 75% {} \+

Respuesta3

Los formatos de imagen más comunes ya están comprimidos (como jpg, png, gif), por lo que no obtendrás muchos ahorros. El 1% suena bastante bien.

Agregar más compresión en realidad puede hacer que el resultado sea (ligeramente) más grande, porque el algoritmo de compresión no tiene ningún beneficio en los datos comprimidos, y luego el formato (por ejemplo, gzip) tiene que agregar información de encabezado y/o estructura a la salida.

¡Lo siento! Si estás usando pngs, puedes intentar reducir tus archivos usandopngaplastar.

Respuesta4

Otro punto que vale la pena mencionar: el uso de múltiples herramientas/algoritmos de compresión puede hacer que el resultado final aumente de tamaño y se vuelva más grande de lo necesario. Es decir, si comprime 100 GB a 10 GB y luego intenta comprimirlos nuevamente, puede terminar con ~ 15 GB dependiendo de lo que esté comprimiendo y con qué lo esté comprimiendo.

Personalmente, nunca hago nada más que tar cjvf container.tar.bz2 /targetsimplemente porque la cantidad de espacio en disco ahorrado mediante la doble compresión es minúscula.

información relacionada