Entender la compresión

¿Qué demonios es la compresión de ficheros (o archivos para los colegas de Windows)? Siempre oímos hablar de ficheros comprimidos, que si ZIP, que si RAR... Pero, ¿para qué sirven este tipo de ficheros?

Como ya deberíamos saber, en un ordenador todo son ceros y unos. Esta información se tiene que almacenar en un lugar (llámense discos duros, cds, etc...), y desde luego la capacidad de almacenamiento no es infinita. Las técnicas de compresión permiten reducir la cantidad de ceros y unos requerida para almacenar determinada información. Por ejemplo, si tenemos un documento de texto que ocupa 100KB, podemos reducir esta cantidad comprimiendo el archivo.

Existen diferentes técnicas de compresión, algunas generales y otras orientadas a determinados tipos de información, como son el audio y el video. Cada técnica de compresión le corresponden cierto tipo de ficheros, como ZIP, RAR, ACE, GZ, BZ, ARJ, TAR, 7Z, etc... Cada una utiliza un determinado algoritmo para conseguir representar exactamente la misma información con un menor número de ceros y unos, con su consiguiente ahorro en espacio.

Como ya comentamos, para cierto tipo de información existen algoritmos especiales de compresión que se basan en otros factores, como las limitaciones de los seres humanos. A más de uno le sorprenderá esta última afirmación, pero vayamos por pasos. Tanto el audio como las imágenes (y por ende el video) necesitan de una elevada cantidad de ceros y unos (bits) para representar exactamente la información que contienen. Sin embargo, los sentidos de los seres humanos son limitados, y a veces hay información superflua que se puede suprimir sin que nuestras mentes se den cuenta de que faltan. Por poner un ejemplo, les diré que las bombillas que todos tenemos en casa parpadean a una velocidad de 50 Hz, es decir, 50 veces por segundo. Sin embargo, nuestro cerebro no es lo suficientemente rápido para detectar dicho parpadeo. Lo mismo ocurre con la TV. Este mismo hecho se puede trasladar a las imágenes, por ejemplo. El ojo humano no es capaz de distinguir más de 7 millones de colores diferentes; algunas imágenes recogen información para hasta 16 millones de colores. ¿Para qué malgastar espacio en información que no podemos distinguir? La solución sería entonces asignar un mismo color a los que son parecidos, sin por ello afectar a la imagen tal y como la vemos. Esto es lo que permite, entre otras cosas, el formato JPG. Lo mismo ocurre en el audio con ciertas frecuencias fuera del rango de nuestro oído (formato MP3 por ejemplo) o en el vídeo con la cantidad de imágenes que tienen que aparecer por segundo (formato MPEG por ejemplo). Claro que este tipo de compresión sólo sirve para cierto tipo de información. Esto nos ayudará a entender porqué al comprimir ficheros del tipo JPG, MP3 o AVI con compresores genéricos (RAR o ZIP) no conseguimos que disminuyan de tamaño. Ello es debido a que ya están comprimidos.

Para acabar, comentar que para acceder a la información comprimida hace falta descomprimirla, porque sino los datos no tienen ningún sentido. Esto se puede hacer al vuelo, es decir, mientras se visualizan o se opera con los datos se descomprimen las partes necesarias para ello, pero nada más (como por ejemplo los compresores específicos de video o audio) o de forma permanente, caso en el que la información se restaura al estado original de antes de ser comprimida, el famoso "extraer".

Bueno, me despido no sin antes hacer hincapié en qué existen miles de técnicas de compresión y que generalmente son totalmente incompatibles entre sí (un algoritmo ZIP no extrae ficheros RAR), de ahí por ejemplo el problema de los códecs de vídeo. Desde aquí animo a la ISO a que se ponga manos a la obra para elaborar un estándar de compresión tanto genérico como para diferentes medios, para no tener estas incompatibilidades y mil y un descompresores y códecs. Que para eso están... Un saludo y espero que os haya sido de utilidad.

Comments

  1. Profe me encantan tus posteos? o como coño se llamen jiajisjaisjiajsias

    Aprendo muchisimo enserio =D

    Gracias =)

    ReplyDelete

Post a Comment

Comment, motherf*cker

Popular Posts