En ciencias de la computación la compresión de datos es la reducción del volumen de datos tratables para representar una determinada información empleando una menor cantidad de espacio. Al acto de compresión de datos se denomina compresión, y al contrario descompresión.
El espacio que ocupa una información codificada (datos, señal digital, etc.) sin compresión es el cociente entre la frecuencia de muestreo y la resolución. Por tanto, cuantos másbits se empleen mayor será el tamaño del archivo. No obstante, la resolución viene impuesta por el sistema digital con que se trabaja y no se puede alterar el número de bits a voluntad; por ello, se utiliza la compresión, para transmitir la misma cantidad de información que ocuparía una gran resolución en un número inferior de bits.
La compresión es un caso particular de la codificación, cuya característica principal es que el código resultante tiene menor tamaño que el original.
La compresión de datos se basa fundamentalmente en buscar repeticiones en series de datos para después almacenar solo el dato junto al número de veces que se repite. Así, por ejemplo, si en un fichero aparece una secuencia como "AAAAAA", ocupando 6 bytes se podría almacenar simplemente "6A" que ocupa solo 2 bytes, en algoritmo RLE.
En realidad, el proceso es mucho más complejo, ya que raramente se consigue encontrar patrones de repetición tan exactos (salvo en algunas imágenes). Se utilizan algoritmos de compresión:
- Por un lado, algunos buscan series largas que luego codifican en formas más breves.
- Por otro lado, algunos algoritmos, como el algoritmo de Huffman, examinan los caracteres más repetidos para luego codificar de forma más corta los que más se repiten.
- Otros, como el LZW, construyen un diccionario con los patrones encontrados, a los cuales se hace referencia de manera posterior.
- La codificación de los bytes pares es otro sencillo algoritmo de compresión muy fácil de entender.
Diferencias entre compresión con y sin pérdida
El objetivo de la compresión es siempre reducir el tamaño de la información, intentando que esta reducción de tamaño no afecte al contenido. No obstante, la reducción de datos puede afectar o no a la calidad de la información:
- Compresión sin pérdida: los datos antes y después de comprimirlos son exactos en la compresión sin pérdida. En el caso de la compresión sin pérdida una mayor compresión solo implica más tiempo de proceso. El bit rate siempre es variable en la compresión sin pérdida. Se utiliza principalmente en la compresión de texto.
- Un algoritmo de compresión con pérdida puede eliminar datos para disminuir aún más el tamaño, con lo que reduce la calidad. En la compresión con pérdida el bit ratepuede ser constante (CBR) o variable (VBR). Una vez realizada la compresión, no se puede obtener la señal original, aunque sí una aproximación cuya semejanza con la original dependerá del tipo de compresión. Este tipo de compresión se da principalmente en imágenes, vídeos y sonidos. Además de estas funciones la compresión permite que los algoritmos usados para reducir las cadenas del código desechen información redundante de la imagen. Uno de los formatos que permite compensar esta perdida es el JPG, que emplea técnicas que suavizan los bordes y áreas que tienen un color similar permitiendo que la falta de información sea invisible a simple vista. Este método permite un alto grado de compresión con pérdidas en la imagen que, muchas veces, sólo es visible mediante el zoom
FORMATOS MÁS UTILIZADOS DE COMPRESIÓN DE DATOS
- ARJ: Acrónimo de Archived by Robert Jung ("Archivado por Robert Jung"). Este formato es muy antiguo y era de los más extendidos en el sistema operativo MS-DOS, aunque en la actualidad apenas es utilizado, ya que carece de una interfaz gráfica y su compresión se aleja de estar entre las mejores.
- .ZIP: Actualmente es uno de los más utilizados. PKWARE desarrolló este formato en 1989, el cuál era generado con el programa PKZIP. Ahora hay muchos programas que pueden generar este formato (WinZip, PeaZip...). Una de las ventajas que tiene este formato es la posibilidad de partir los archivos que sean demasiado grandes (aunque esta característica ya la tienen muchos compresores, como .RAR, .CAB...).
- .RAR: Este formato propietario tiene prácticamente todas las ventajas del .ZIP y además tiene mejor optimizado los algoritmos de compresión, aunque eso hace que vaya más lento. Otra ventaja que tiene respecto al .ZIP es que permite la compresión sólida, es decir, que puede comprimir varios ficheros como si fueran uno en el momento de aplicar los algoritmos de compresión, lo que implica un mejor aprovechamiento en la compresión.
- .GZ: Extensión de GZIP (GNU ZIP), el cuál no hay que confundir con ZIP, ya que ni siquiera son compatibles.
El formato de GZIP no es capaz de archivar por sí solo los documentos, tan sólo los comprime, por ello suele ir acompañado de otra aplicación que lo permite, por lo general en GNU/Linux, el TAR, quedando archivos con extensión .TAR.GZ.
- .BZ2: A diferencia de GZIP, tiene licencia BSD (también libre) y, por lo general, mayor RC, aunque con la consecuente mayor uso de memoria y tiempo de ejecución. Junto a .GZ, son los formatos de compresión más utilizados en Guadalinex (sin contar con el .DEB o el .RPM, que son principalmente archivos de instalación de paquetes, también comprimidos).
- .CAB: Este formato es el que venía por defecto al comprimir con Microsoft Windows, aunque como compresor no es muy utilizado. Esta extensión se utiliza también para algunas instalaciones, aunque da pie a equívocos con InstallShield, que es un programa de instalación que utiliza archivos .CAB pero que no guardan el mismo formato.
Archivos Solidos
Un archivo sólido es un archivo RAR comprimido con un método especial de compresión que trata algunos o todos los ficheros del archivo como si fuesen un flujo continuo de datos. Los archivos sólidos sólo son compatibles con el formato de compresión RAR. Los archivos ZIP nunca son sólidos. El método de compresión para archivos RAR es una opción que escoge el usuario y puede ser Sólido o No sólido. Use la opción Crear archivo sólido en el cuadro de diálogo de compresión o el modificador -s de la línea de órdenes para activar la compresión sólida.
La compresión sólida aumenta notablemente la compresión cuando se añade un número elevado de ficheros pequeños y similares. Pero también tiene algunas desventajas importantes:
- Actualización más lenta de los archivos sólidos existentes;
- Para extraer un solo fichero de un archivo sólido, todos los ficheros que le preceden deben ser analizados. Esto implica que la extracción desde la mitad de un archivo sólido es más lenta que la realizada desde un archivo normal. Sin embargo, la velocidad de extracción no se verá afectada si todos los ficheros que se van a extraer pertenecen a un archivo sólido.
- Si algún fichero de un archivo sólido está dañado, no se podrá extraer ninguno de los que están a continuación de la zona dañada. Así pues, si se almacena un archivo sólido en soportes potencialmente no confiables, es recomendable utilizar el registro de recuperación.
La compresión sólida es preferible si:
- No se actualiza a menudo el archivo;
- Si no se necesita extraer con frecuencia un único fichero o parte de los ficheros del archivo;
- La razón de compresión es más importante que la velocidad de compresión.
Normalmente los ficheros de un archivo sólido se ordenan por su extensión. Pero también es posible desactivar el ordenado con el modificador -DS o establecer un orden de ficheros alternativo utilizando el fichero especial rarfiles.lst .
Los volúmenes y los archivos auto extraíbles(SFX) también pueden ser sólidos.
0 comentarios:
Publicar un comentario