He estado buscando y mirando algoritmos (lossless) de compresion de archivos jpeg. No me refiero a comprimir pasando la imagen a otro formato de imagen directamente visualizable, sino a comprimir el archivo sin ser el resultado una imagen. Hasta aqui ninguna novedad, de no ser que pretendo obtener un indice de compresion positivo y (obviamente) sin perdida de calidad (esto es obligatorio si quiero volver a obtener el archivo original) a parti de la compresion de un JPG/JPEG. Me he encontrado con que la mayoria de aplicaciones de compresion preparadas para hacer frente a este tipo de reto estan solo disponibles para usar en SO's Windows y no las he probado (ya, es un estudio sesgado :P). Pero de entre ellas y de las que mas me interesan, tenemos (al menos) un par para GNU/Linux: StuffIt (muy usado en Mac y presente en los repositorios de Gentoo, aunque comercial para la compresion) y packJPG. Un ejemplo vale mas que mil palabras... jors@first64 ~/test_big_images $ time ./packJPG *.jpg <-- packJPG v2.3 (18/09/2007) by Matthias Stirner --> Processing file 1 of 4 "0031050a_01.jpg" -> Compressing -> 87.69% Processing file 2 of 4 "allegato_F_Foto_aerea_HI.jpg" -> Compressing -> 80.67% Processing file 3 of 4 "back42wide.jpg" -> Compressing -> 83.34% Processing file 4 of 4 "schoenstes_waldbild.newsMedia.0001.nemeFile.jpg" -> Compressing -> 81.74% -> 4 file(s) processed, 0 error(s), 0 warning(s) real 0m45.606s user 0m44.661s sys 0m0.378s jors@first64 ~/test_big_images $ ls -lh -rw-r--r-- 1 jors users 3,6M oct 20 01:32 0031050a_01.jpg -rw-r--r-- 1 jors users 3,2M oct 20 09:17 0031050a_01.pjg -rw-r--r-- 1 jors users 3,7M oct 20 01:04 allegato_F_Foto_aerea_HI.jpg -rw-r--r-- 1 jors users 3,0M oct 20 09:18 allegato_F_Foto_aerea_HI.pjg -rw-r--r-- 1 jors users 2,0M oct 20 01:03 back42wide.jpg -rw-r--r-- 1 jors users 1,7M oct 20 09:18 back42wide.pjg -rw-r--r-- 1 jors users 1,4M oct 20 01:03 schoenstes_waldbild.newsMedia.0001.nemeFile.jpg -rw-r--r-- 1 jors users 1,2M oct 20 09:18 schoenstes_waldbild.newsMedia.0001.nemeFile.pjgComo podemos apreciar, las imagenes jpeg quedan entre el 80 y 90% de su tamaño original. Obviamente no podemos visualizarlas mientras esten en este formato comprimido (pjg), y su compresion/descompresion lleva su tiempo (la prueba fue realizada en una Gentoo Linux amd64 con un amd64 3200+), pero se puede llegar a ahorrar espacio en ciertos casos en los que es necesario bien por temas de almacenamiento, transferencia por red, etc... Aqui las imagenes (originales) usadas para la prueba (recogidas de Google Images):
Referencias: jpg/jpeg lossless image compression test, Data compression, World Records by filetype. Comentarios (2) |