¿Qué és comprimir?

Comprimir algo es reducir su tamaño. Desde los colchones que, al comprarlos, vienen enrollados y ocupan un espacio reducido hasta las bombonas de aire comprimido, pasando por objetos más abstractos, como la información, que es lo que se trata aquí. En los dos primeros casos, la reducción de tamaño es física. En el tercero, la reducción de tamaño va asociada a la cantidad o al número de elementos. Ejemplos típicos de información pueden ser imágenes, canciones, vídeos, texto, animaciones o incluso programas de ordenador (o apps).

¿Por qué comprimir?

Una imagen ocupa un determinado espacio de memoria. Si se puede conseguir que esa imagen ocupe menos, podremos tener más imágenes en el mismo espacio de memoria o reducir la cantidad de memoria (lo que abarata el coste del dispositivo asociado). Es el mismo caso exacto para canciones, vídeos, texto, animaciones y apps.

La idea es, si podemos tener más en el mismo espacio, ¿por qué no hacerlo? Solo necesitamos aplicar un compresor a la información para obtener el beneficio.

¿Cómo funciona?

La idea que hay detrás de todo sistema de compresión es eliminar información repetida. Y eso es algo que aplicamos continuamente en la vida real, por ejemplo, cuando hablamos y explicamos cosas.

Imaginaos que tenemos que describir las siguientes imágenes, que contienen piezas de un conocido juguete:

Una pieza gris

Esta imagen de arriba podríamos describirla con la frase: «Pieza gris».

Cinco piezas grises

Esta otra imagen podríamos escribirla con la frase: «Una pieza gris, otra pieza gris, otra pieza gris, otra pieza gris y otra pieza gris». Seguro que habéis pensado en otra frase mucho más corta y es que, sin saberlo, aplicamos compresión continuamente. La frase que os debe de haber venido a la cabeza seguramente sea: «Cinco piezas grises», mucho más corta que la primera. Significan lo mismo, pero la segunda («Cinco piezas grises») es mucho más corta.

Si comparamos «Cinco piezas grises» con «Pieza gris», vemos que es un poco más larga, y es lógico, ya que la segunda imagen (la de las tres piezas) tiene más información que la primera.

Veamos otro ejemplo a continuación:

Cinco piezas grises y una pieza negra al final

Esta imagen se podría describir con la frase «Una pieza gris, otra pieza gris, otra pieza gris, otra pieza gris, otra pieza gris y una pieza negra». Si comprimimos esta frase, de forma natural podríamos decir «Cinco piezas grises y una pieza negra al final». Hemos pasado de 19 palabras a 9 palabras diciendo lo mismo, es decir, sin perder información. Pero ¿y si quisiéramos acortar aún más? Podríamos decir, por ejemplo «Seis piezas oscuras», diciendo en tres palabras aproximadamente lo mismo. En este caso, hemos perdido un poco de detalle, pues sabemos que las piezas son oscuras, pero no sabemos qué colores exactos y qué distribución. Pero es posible que nos sea suficiente si lo que queremos es contar las piezas que hay únicamente.

Para pasar de 19 palabras a 9, hemos hecho una compresión que se llama compresión sin pérdidas (lossless compression). Para pasar de 19 palabras a 3 hemos aplicado una compresión que se llama compresión con pérdidas (lossy compression). En la primera, el mensaje no pierde detalle, pero en la segunda sí. No obstante, en la segunda la reducción del número de palabras ha sido mayor que en la primera. Una vez perdido el detalle, este no se puede recuperar. Si le decimos a alguien «Dame seis piezas oscuras» nos dará seis piezas, pero puede que sean las seis negras o que haya seis grises o tres negras y tres grises…

¿Con o sin pérdidas?

La compresión con pérdidas no es útil en el caso de comprimir texto (en general, documentos, ya sea de texto, de una base de datos o de un modelo 3D) o aplicaciones, ya que un solo error puede provocar cambios radicales de significado en el texto o hacer que la aplicación, simplemente, no funcione. Para texto y aplicaciones únicamente se utiliza compresión sin pérdidas. En general, este tipo de compresiones suele reducir el tamaño entre la mitad y un tercio del original.

La compresión con pérdidas sí se utiliza en imagen, audio y vídeo (incluyendo animaciones renderizadas), gracias a que los sentidos de la vista y del oído son imperfectos. Un error en un píxel o en un instante de tiempo es indetectable si se siguen los procedimientos adecuados. O lo que es lo mismo, hay píxeles y sonidos que no vemos ni oímos, con lo cual no hace falta tenerlos guardados. Pero cuidado, porque si, por ejemplo, hacemos una imagen más grande, efectos imperceptibles (por pequeños) pueden volverse perceptibles al hacerse más grandes. Esto sucede a menudo en el caso de fotografías digitales que se llevan a ampliar. Si tomamos una fotografía con la cámara y en las opciones de la cámara estamos guardando las fotografías en un formato comprimido con pérdidas, podremos tomar más fotos, pero las fotos que tomemos contendrán defectos que pueden aparecer al ampliarlas. La compresión con pérdidas reduce muchísimo el tamaño y en vídeo llega a reducirlo en más de mil veces.

En general, hay que tener claro que comprimir con pérdidas implica perder detalles, aunque consigue mucha mayor reducción de tamaño que la compresión sin pérdidas.

Ejemplos

Los formatos de archivo .zip, .rar, .7z, .flac, .png están asociados a formatos de archivo comprimidos sin pérdidas. El formato .flac está asociado a audio, el .png a imagen y los otros tres son de carácter general.

Los formatos de archivo .jpg, .webp, .mp3, .m4a, .ogg, .mpg, .mp4, .mov están asociados a formatos de archivo comprimidos con pérdidas, de los que .jpg y .webp son para imagen, .mp3 y .m4a son para audio y .ogg, .mpg, .mp4 y .mov son para vídeo.

¿Sale a cuenta comprimir?

Sí, sobre todo en vídeo, imagen y audio (en este orden). Y, en general, siempre que se pueda y tengamos tiempo. Tener tiempo viene asociado al tiempo que se invierte en utilizar las utilidades de comprimir y descomprimir archivos. Hay veces que querremos tener la información sin comprimir para ahorrarnos ese tiempo. Esta información suele ser información de texto o programas, la no susceptible de comprimirse sin pérdidas. «Siempre que se pueda» incluye tener los programas adecuados y realizar la compresión con pérdidas sabiendo que no destruye detalles que vayamos a necesitar en un futuro.

Veamos unas cifras:

– Un documento o programa se suele comprimir sin pérdidas en .zip, .rar o .7z (entre otros) y suelen acabar ocupando entre la mitad o la tercera parte. Es decir, un .docx de 4 MB, comprimido en .zip puede ocupar unos 1,3 MB, por ejemplo.

El volumen de un documento de texto, comprimido sin pérdidas se reduce a un tercio aproximadamente.

– Una canción de tres minutos, sin comprimir y en calidad CD ocupa unos 32 MB sin comprimir (formato .wav, por ejemplo). Comprimida en .flac (compresión de audio sin pérdidas) ocupa unos 16 MB. Comprimida en un archivo .mp3 (compresión con pérdidas) con una calidad similar a la del CD (esto es mp3 a 320 kpbs) ocupa 6 MB.

El volumen de una canción comprimida con pérdidas se reduce a un quinto aproximadamente.

– Una imagen de una cámara de 12 megapíxeles ocupa 108 MB sin comprimir (formato .bmp, por ejemplo). Esa misma imagen, comprimida en .png (compresión de imagen sin pérdidas), puede llegar a bajar a unos 10 megapíxeles. Esa misma imagen, comprimida en .jpg (compresión de imagen con pérdidas) y con una calidad perceptualmente similar al verla en Internet, puede llegar a ocupar solo 2 megapíxeles.

El volumen de una imagen comprimida con pérdidas se reduce a una décima parte.

– Una película en HD de dos horas ocupa 14 TB, es decir, 14.000.000 MB. Es un volumen tan grande que no tiene asociado ningún formato de archivo doméstico y, si se guarda (ámbito profesional), se hace en cintas o grandes servidores. La compresión que se conseguiría con un formato sin pérdidas reduciría el tamaño a la décima parte, con lo que tampoco se usa porque 1,4 TB por película sigue siendo desorbitado. La única compresión útil es la compresión sin pérdidas, por ejemplo, en formato .mp4, que con una calidad similar a la original puede llegar a ocupar únicamente 33 GB (33.000 MB).

El volumen de un vídeo comprimido en HD se reduce a menos de tres milésimas partes.

Y para acabar …

No sirve de nada aplicar más de una compresión a un archivo. Aplicar una compresión sin pérdidas a un archivo comprimido no conseguirá ninguna reducción de tamaño. Aplicar una compresión con pérdidas a un archivo comprimido con pérdidas es incluso perjudicial, ya que no solo no consigue comprimir más, sino que, además, se añaden más pérdidas de detalle, lo que degrada la información original.

Elegid el tipo de compresión y aplicadlo una sola vez a la información original para evitar pérdida de tiempo y calidad.

Para saber más

Los siguientes enlaces de la Wikipedia tienen información completa, extensa y correcta sobre compresión (puede resultar abrumadora para un recién iniciado en el tema). No se recomiendan los propios en castellano, dada su inexactitud, falta de información y enlaces desactualizados.

http://en.wikipedia.org/wiki/Lossless_compression

http://en.wikipedia.org/wiki/Lossy_compression

Publicado por Javier Melenchón

[es:] Doctor por la URL en Tecnologías de la Información y las Comunicaciones y su Gestión, Ingeniero Superior en Multimedia y en Informática e Ingeniero Técnico en Multimedia y en Informática de Sistemas. Profesor en la URL entre 2001 i 2007 y profesor de la UOC desde 2007. [ca:]Doctor per la URL en Tecnologies de la Informació i les Comunicacions i la seva Gestió, Enginyer Superior en Multimèdia i en Informàtica i Enginyer Tècnic en Multimèdia i en Informàtica de Sistemes. Professor a la URL entre 2001 i 2007 i professor de la UOC des de 2007.