viernes, 20 de mayo de 2016

Comprimiendo archivos

A lo largo de la historia de la informática, ha existido una lucha por almacenar la mayor cantidad de datos posible en el mínimo espacio disponible, ya sea espacio en memoria, dispositivos de almacenamiento o ancho de banda. Muchos de los servicios de datos que hoy consideramos normales como reproductores de música portátiles, televisiones de alta definición o Internet de banda ancha, deben su existencia a las eficaces técnicas de compresión de datos.

La compresión de datos es el proceso de eliminar la redundancia de los datos. Consideremos un ejemplo imaginario. Digamos que tenemos una foto completamente negra con una dimensiones de 100 por 100 píxeles. En términos de almacenamiento de datos (asumiendo 24 bits, o 3 bytes por píxel), la imagen ocuparía 30.000 bytes de almacenamiento:

100 * 100 * 3 = 30.000

Una imagen que es toda de un color contiene datos completamente redundantes. Si fuéramos listos, podríamos codificar los datos de tal forma que simplemente describiríamos el hecho de que tenemos un bloque de 10.000 píxeles negros. Así que, en lugar de almacenar un bloque de datos que contenga 30.000 ceros (el negro se representa normalmente en archivos de imagen como cero), podríamos comprimir los datos al número 10.000, seguido de un cero para representar nuestros datos. Este sistema de compresión de datos se llama run-length enconding y es una de las técnicas de compresión más rudimentarias. Las técnicas de hoy son mucho más avanzadas y complejas pero el objetivo básico sigue siendo el mismo, librarse de los datos redundantes.

Los algoritmos de compresión (las técnicas matemáticas usada para llevar a cabo la compresión) se clasifican en dos categorías, lossless (sin pérdida) y lossy (con pérdida). La compresión sin pérdida mantiene todos los datos contenidos en el original. Esto significa que cuando un archivo es restaurado desde una versión comprimida, el archivo restaurado es exactamente el mismo que la versión original sin comprimir. La compresión con pérdida, por otra parte, elimina datos al realizar la compresión, para permitir que se aplique una mayor compresión. Cuando se restaura un archivo con pérdida, no coincide con la versión original; más bien, es una aproximación muy parecida. Ejemplos de compresión con pérdida son JPG (para imágenes) y MP3 (para música). En este tema, veremos sólo la compresión sin pérdida, ya que la mayoría de los datos de un ordenador no pueden tolerar ninguna pérdida de datos.

No hay comentarios:

Publicar un comentario