2. 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».
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.
3. Factor de compresión fc
Ca Capacidad del archivo antes, Cd Capacidad del archivo después
fc= Ca/Cd
Porcentaje de compresión pc
pc= Cd/Ca * 100%
4. Redundancia: Datos que son repetitivos o previsibles.
Entropía: La información nueva o esencial que se define como la
diferencia entre la cantidad total de datos de un mensaje y su
redundancia.
La información que transmiten los datos puede ser de tres tipos:
Redundante: información repetitiva o predecible.
Irrelevante: información que no podemos apreciar y cuya
eliminación por tanto no afecta al contenido del mensaje. Por
ejemplo, si las frecuencias que es capaz de captar el oído
humano están entre 16/20 Hz y 16 000/20 000 Hz, serían
irrelevantes aquellas frecuencias que estuvieran por debajo o por
encima de estos valores.
Básica: la relevante. La que no es ni redundante ni irrelevante. La
que debe ser transmitida para que se pueda reconstruir la señal.
5. Sin pérdidas reales: es decir, transmitiendo toda
la entropía del mensaje (toda la información
básica e irrelevante, pero eliminando la
redundante).
Subjetivamente sin pérdidas: es decir, además de
eliminar la información redundante se elimina
también la irrelevante.
Subjetivamente con pérdidas: se elimina cierta
cantidad de información básica, por lo que el
mensaje se reconstruirá con errores perceptibles
pero tolerables (por ejemplo:
la videoconferencia).
6. 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. La tasa
de bits 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, la tasa de
bits puede ser constante o variable. 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.
7. La compresión sin pérdidas engloba a aquellas
técnicas que garanticen generar un duplicado
exacto del flujo de datos de entrada después de
un ciclo de compresión / expansión. Por esta
razón es utilizada para comprimir archivos que
contienen datos que no pueden ser degradados o
perdidos, como pueden ser documentos de
texto, imágenes y sonido.
Es generalmente implementada usando uno o
dos tipos de modelos diferentes: el estático y
aquel basado en diccionario.
8. RLE (Run-length encoding)
LZW (Lempel-Ziv-Welch: desarrollado por Terry
Welch en 1984 como una versión mejorada
del algoritmo LZ78 desarrollado por Abraham Lempel y Jacob
Ziv). En este algoritmo se basan RAR y ZIP.
Algoritmo de Huffman (desarrollado por David A.
Huffman)
9. Se refiere a cualquier procedimiento de
codificación que tenga como objetivo
representar cierta cantidad de información
utilizando una menor cantidad de la misma,
siendo imposible una reconstrucción exacta
de los datos originales. Esto es porque, en
lugar de guardar una copia exacta, solo se
guarda una aproximación. Esta aproximación
se aprovecha de las limitaciones de la
percepción humana para esconder la
distorsión introducida.
10. Compresión de imagen con pérdida
Un método consiste en reducir el espacio de color de la
imagen a los colores más comunes dentro de la misma
imagen. Esto se utiliza a menudo en imágenes con
formato GIF y, a veces en imágenes PNG para dar lugar a
archivos más pequeños. Cuando se utiliza en el tipo correcto
de imágenes y es combinado con tramado, puede dar lugar a
imágenes casi idénticas a los originales.
Compresión fractal
JPEG
Compresión Wavelet
13. Secuencias de datos con el mismo valor consecutivas son
almacenadas como un único valor más su recuento. Esto
es más útil en datos que contienen muchas de estas
"secuencias"; por ejemplo, gráficos sencillos con áreas de
color plano, como iconos y logotipos.
Por ejemplo, considera una pantalla que contiene texto en
negro sobre un fondo blanco. Habría muchas secuencias
de este tipo con píxeles blancos en los márgenes vacíos,
y otras secuencias de píxeles negros en la zona del texto.
Supongamos una única línea (o scanline), con N
representando las zonas en negro y B las de blanco:
BBBBBBBBBBBBNBBBBBBBBBBBBNNNBBBBBBBBBBBBBBBBBBBB
BBBBNBBBBBBBBBBBBBB
12B1N12B3N24B1N14B
14. PCX (de PiCture eXchange) Fue el formato nativo del programa
Paintbrush, uno de los primeros programas de gráficos populares
que funcionaban bajo DOS
15. La mayoría de los métodos de compresión se basan en un
análisis inicial del texto para identificar cadenas repetidas para
armar un diccionario de equivalencias, asignando códigos breves
a estas cadenas. En una segunda etapa, se convierte el texto
utilizando los códigos equivalentes para las cadenas repetidas.
Esto requiere dos etapas, una de análisis y una segunda de
conversión y también requiere que el diccionario se encuentre
junto con el texto codificado, incrementando el tamaño del
archivo de salida.
La clave del método LZW reside en que es posible crear sobre la
marcha, de manera automática y en una única pasada un
diccionario de cadenas que se encuentren dentro del texto a
comprimir mientras al mismo tiempo se procede a su
codificación. Dicho diccionario no es transmitido con el texto
comprimido, puesto que el descompresor puede reconstruirlo
usando la misma lógica con que lo hace el compresor y, si está
codificado correctamente, tendrá exactamente las mismas
cadenas que el diccionario del compresor tenía.
16. Dado que el algoritmo sirve para comprimir cualquier
secuencia de bits, independientemente de si es texto o
cualquier otro tipo de información. En él se supone que los
textos a comprimir se componen solamente de letras
mayúsculas sin espacios, para lo cual bastan 26 códigos,
del 1 al 26, para las mayúsculas más un código (en este
caso se ha adoptado el cero, aunque en la práctica el 0 es
un carácter válido) para representar el fin de archivo, que
se ha representado gráficamente por el símbolo #.
El texto a comprimir es: TOBEORNOTTOBEORTOBEORNOT#
El proceso de compresión queda representado por la tabla
siguiente. Para interpretarla, se sugiere ignorar la
representación binaria, que se incluye simplemente para
contabilizar el tamaño del archivo de salida. Los códigos
del 1 al 26 se corresponden con caracteres simples 1 = A,
2 = B, ... 26 = Z y 27 = "fin de archivo". Del 28 en
adelante cada código representa más de un carácter.
17. Explicación detallada en el video del siguiente link:
https://www.youtube.com/watch?v=8Hxo1bPPgCU
18. La codificación Huffman utiliza una tabla de
códigos de longitud variable para codificar un
determinado símbolo (como puede ser un
carácter en un archivo), donde la tabla ha sido
rellenada de una manera específica basándose en
la probabilidad estimada de aparición de cada
posible valor de dicho símbolo. Fue desarrollado
por David A. Huffman mientras era estudiante de
doctorado en el MIT, y publicado en "A Method
for the Construction of Minimum-Redundancy
Codes".
19. Árbol de Huffman generado para las
frecuencias de apariciones exactas del texto
"ESTO ES UN EJEMPLO DE UN ARBOL DE
HUFFMAN". Las frecuencias y códigos de cada
carácter se muestran abajo. Codificar esta
frase de 41 caracteres usando este código
requiere 156 bits (sin contar con el espacio
para el árbol) cuando con bytes de 8 bits
requiere 328 bits.