Almacenamiento de datos - Braulio J. Solano Rojas

Anuncio
Almacenamiento de datos
CI-1010 Introducción a la computación
Prof. Braulio José Solano Rojas
ECCI, UCR
Compresión de datos
●
Dos categorías:
●
Sin pérdida de información (lossless).
–
●
No pierde información en el proceso de compresión de
los datos.
Con pérdida de información (lossy).
–
Pierde información en el proceso de compresión.
Usualmente comprimen más y se utilizan en campos
donde la pérdida puede ser tolerada, como con
imágenes o audio.
Tipos de compresión
●
●
●
●
●
Codificación por zonas (run length encoding)
Codificación dependiente de la frecuencia
(frecuency dependent encoding)
Codificación relativa (relative encoding –
differential encoding)
Codificación de diccionario (dictionary
encoding)
Codificación adaptativa de diccionario
(adaptative dictionary encoding)
Codificación por zonas
●
●
●
BBBBBBBBBBBBNBBBBBBBBBBBBNNNBBB
BBBBBBBBBBBBBBBBBBBBBNBBBBBBBBB
BBBBB
Si aplicamos la codificación run-length a esta
línea, obtendríamos lo siguiente:
12B1N12B3N24B1N14B
Codificación dependiente de la
frecuencia
●
●
Es un sistema de codificación donde el largo de
la representación en bits de cada símbolo es
inversamente proporcional a la frecuencia de
aparición del símbolo.
Acá los símbolos codificados son de tamaño
variable, a diferencia de codificaciones como
Unicode (16 bits), ASCII (7 bits), etc.
Codificación dependiente de la
frecuencia: Huffman
●
●
“Esto es un ejemplo
de árbol de Huffman”
Codificar esta frase
con Huffman requiere
de 156 bits (sin
contar el espacio del
árbol).
Codificación dependiente de la
frecuencia: Huffman
Codificación relativa
●
●
Algunas veces el flujo de datos consiste en
unidades las cuales difieren ligeramente de las
precedentes. Por ejemplo, los cuadros de una
película.
Este tipo de codificación lo que hace es grabar
las diferencias entre unidades consecutivas en
lugar de unidades completas. Puede ser con
pérdida o sin pérdida.
Codificación de diccionario
●
●
Un diccionario es una colección de bloques que
nos permiten construir el mensaje a ser
construido y el mensaje mismo es un conjunto
de referencias al diccionario.
Ejemplo: dado que los procesadores de texto
ya poseen un diccionario para corrección
ortográfica se podría utilizar este para codificar
el texto en el procesador.
Codificación adaptativa de
diccionario
●
●
Un ejemplo muy popular de este tipo de
codificación es el algoritmo LZW (Lempel-ZivWelsh).
Para codificar un mensaje utilizando LZW se
comienza con un diccionario básico
Codificación de imágenes
●
GIF (Graphics Interchange Format)
●
JPEG (Joint Photographic Experts Group)
●
TIFF (Tagged Image File Format)
Codificación de audio y vídeo
●
MPEG (Motion Picture Experts Group)
●
MP3 (MPEG layer 3)
Errores de comunicación
●
●
En la transmisión de datos es posible que el
flujo de bits en el destino no sea el mismo que
en el origen debido a factores físicos.
Para resolver dicho problema se han diseñado
una serie de técnicas de codificación que
permiten la detección y la detección de errores.
Bit de paridad
●
Un método muy sencillo de detección de
errores basado en el hecho de que si cada
grupo de bits contiene un número par de 1s y si
hay un número par un error ocurrió. Para esto
se agrega un bit más a grupos como los bytes.
Bit de paridad
●
Defecto:
●
●
No detecta todos los errores. Por ejemplo, si dos
errores ocurren, no sólo uno, el conteo de paridad
puede ser correcto aunque se haya modificado el
patrón de bits.
Solución:
●
Utilizar un conjunto de bits de paridad. Por ejemplo, se
puede utilizar un byte donde cada bit es un bit de
paridad para un conjunto de bits. El primer bit de
paridad toma en cuenta comenzando desde el primer
bit, el segundo bit de paridad toma en cuenta contando
desde el segundo, etc.
Bit de paridad
●
Variaciones del grupo de bits de paridad dan
nacimiento a esquemas como:
●
Checksums
●
Cyclic redundant checks
Códigos de corrección de errores
●
Aunque el uso de bits de paridad nos permite la
detección de errores, no nos permite la
corrección de estos errores. Existen códigos
para que los errores no sólo sean detectados si
no también corregidos.
Distancia de Hamming
Distancia de Hamming
●
Si se recibe el patrón 010100 y lo comparamos
con nuestro código es fácil saber que lo que
recibimos es una D pues la distancia más
pequeña es la de la D.
¡Gracias por su atención!
¿Preguntas?
Descargar