ALGORITMOS DE COMPRESIÓN DE DATOS

Contenidos

Pág.

Índice General……………………………………………………………….1
1. Código Lempel-Ziv…………………………………………………………………….2
1.1. 1.2. 1.3. 1.4. 1.5. 1.6. Definición………………………………………………………………………………2 Historia…………………………………………………………………………………2 Algoritmo De Lempel-Ziv……………………………………………………………….2 Ejemplo………………………………………………………………………………...2 Puntos a considerar de Lempel Ziv…………………………………………………...3 Conclusión……………………………………………………………………………..3

2. Turbo código…………………………………………………………………….........3
2.1. 2.2. 2.3. 2.4. Definición…………………………………………………………………………...….3 La Turbo codificación……………………………………………………………...…..3 Características Fundamentales…………………………………………………………3 Aplicaciones……………………………………………………………………...……..3

3. Reed-Solomon……………………………………………………………………...…..4
3.1. 3.2. 3.3. 3.4. Definición…………………………………………………………………………...…..4 Codificación Reed-Solomon…………………………………………………………….4 Características…………………………………………………………………………...4 Aplicaciones…………………………………………………………………………......4

4. LDPC…………………………………………………………………………………....4
4.1. Definición…………………………………………………………………………….….4 4.2. Importancia……………………………………………………………………………...4 4.3. Aplicaciones……………………………………………………………………………..4

5. Referencias………………………………………………………………………………5

1

Por ello serán útiles en aquellas aplicaciones donde no sea posible conocer las probabilidades de los símbolos. Ejemplo de un diccionario 2 . se convierte el texto utilizando los códigos equivalentes para las cadenas repetidas. 1. 010.2. 011. Estos códigos se basan en que algunas cadenas de símbolos se repiten frecuentemente. Algoritmo De Lempel-Ziv • “Código universal” . Son códigos eficientes cuando se utilizan en ficheros y mensajes grandes. 0111. Ejemplo Entrada: 0010110111000101011110 Frases analizadas: 0. Código Lempel-Ziv 1.funciona sin conocimiento de estadísticas de fuente • Analiza sintácticamente el archivo de entrada en frases unívocas • Codifica frases empleando palabras código de longitud fija (Codificación de longitud variable a fija) •Analizar el archivo de entrada en frases que aún no han aparecido: -Entrar frases en un diccionario. 01.ALGORITMOS DE COMPRESIÓN DE DATOS 1.4. y estas cadenas podrían ser sustituidas por una palabra de un nuevo código que ocupe menos espacio. -Numerar su ubicación • Observe que cada frase nueva debe ser una frase vieja seguida por un „0‟ o un „1‟. Historia: El algoritmo de comprensión LZ78 fue desarrollado por Abraham Lempel y Jacob Ziv el cual fue mejorado al algoritmo LZW (Lempel-Ziv-Welch) por Terry Welch en 1984. 1. 00. Puede codificar la nueva frase utilizando la ubicación del diccionario de la frase anterior seguida por el „0‟ o el „1‟. 01111 Secuencia enviada: 00000 00011 00101 00111 00010 00100 00001 01001 Figura 1. asignando códigos breves a estas cadenas. En una segunda etapa. Esto requiere dos etapas. tanto el emisor como el receptor construirán tablas que contendrán toda la información necesaria para llevar a cabo la compresión y descompresión. 1. 1. Definición: Es una técnica que no requiere un conocimiento de la probabilidad de aparición de cada símbolo. Para ello. incrementando el tamaño del archivo de salida[1]. 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. una de análisis y una segunda de conversión y también requiere que el diccionario se encuentre junto con el texto codificado.3.1.

El rendimiento del código se aproxima a la entropía de fuente para secuencias largas. En la televisión Digital. es identificar lo que Lempel-Ziv llaman extensión reproducible de una cadena dentro de otra y que difiere un tanto de lo que coloquialmente llamamos "repeticiones''. Turbo código 2. algunos ejemplos son:      En Comunicaciones satélite y espaciales. En Comunicaciones inalámbricas (wireless). 2. y lo que conforma el núcleo de la idea. El tamaño del diccionario debe elegirse con antelación para que se pueda establecer la longitud de la palabra código. 3 . 2. que se introdujeron. La importancia de los turbo códigos es que permiten una comunicación fiable y su eficiencia energética está muy cerca del límite teórico predicho por Shannon. así como para aplicaciones de interferencia limitada. Puntos a considerar de Lempel Ziv • • • • • El decodificador sólo puede decodificar unívocamente la secuencia enviada.3.1. En las Comunicaciones de fibra óptica. Uso de un dispersor pseudo-aleatorio. y cada vez que encuentra una de ellas la reemplaza por un puntero a la zona en la que comienza la primera secuencia. 2.6.5. pero no se puede aumentar la memoria indiscriminadamente ya que la complejidad en el proceso de decodificación crece exponencialmente. Aplicaciones: Los turbo códigos se usan en los sistemas de telecomunicaciones. La Turbo codificación:    Las prestaciones de un codificador convolucional mejoran al aumentar la memoria. 1. más la longitud que se debe tomar a partir de esa posición. como los servicios de tercera generación (3G) de comunicaciones móviles. Se basa en concatenar esquemas de codificación relativamente simples con el fin de obtener un código equivalente a uno de prestaciones más complejas. Los turbo códigos son esquemas de codificación que aumentan la memoria de codificación de forma artificial.2. junto con un algoritmo de decodificación. En Sistemas de grabación ópticos. Lo más importante. como las comunicaciones por satélite. Definición: Los turbo códigos son una nueva clase de códigos de corrección de errores (FEC). se emite la secuencia como un literal. Lempel-Ziv se usa frecuentemente para codificar archivos de texto/binarios. comprimir/descomprimir. Características Fundamentales:     Uso de codificación paralela concatenada. El algoritmo no es eficiente para secuencias cortas (datos de entrada). Conclusión: Este algoritmo. En caso de que no haya repeticiones. los turbo códigos se han utilizado en aplicaciones de baja potencia. Uso de codificadores Convolucionales Recursivos. Uso de decodificación iterativa.4. básicamente busca secuencias repetidas dentro de los datos.1. 2. Desde su introducción.

decimos que una secuencia (n) de códigos es LDPC si cada código tiene por lo menos una matriz de paridad en la cual la cantidad de elementos distintos de cero es O(n). Codificación Reed-Solomon: Este código se forma en base a grupos de bits que se denominan símbolos. 4. corrige los datos alterados en el receptor.3. Sondas espaciales (la sonda Galileo a Júpiter en 1989. Características: El código Reed-Solomon presenta las siguientes características:     Cada símbolo está constituido por "m" bits consecutivos agrupados. la sonda Magallanes a Venus ese mismo año o la sonda Ulises al Sol en 1990). Aplicaciones: Los códigos LDPC se están implementando en aplicaciones donde la transferencia de información a través del ancho de banda o de canal de retorno está limitado por la presencia de ruido. Las comunicaciones por satélite Digital Video Broadcasting (DVB).2. Cada palabra-código consta de "k" símbolos de información (en lugar de bits). LDPC 4. 3. con confiabilidad arbitrariamente grande y con muy baja complejidad para una gran variedad de medios de comunicación. Un símbolo es erróneo cuando al menos un bit del símbolo tiene error.1.  Corrección de errores en telefonía común o inalámbrica y en módems. Aunque la aplicación de turbo códigos se ha impuesto en Estados Unidos como código para los transponedores de satélite. y "r" símbolos de paridad. 4 . Importancia: El gran interés por los sistemas de codificación basados en códigos LDPC se debe a que permiten comunicar con eficiencia muy cercana al límite establecido por Shannon. Se establece la relación: n = 2m − 1 entre la longitud de la palabra código (n) y el número de símbolos (2m). Definición: Reed-Solomon es un código cíclico no binario. Formalmente. Un símbolo es una secuencia de "m" bits individuales que aparecen en serie. Algunas otras de las aplicaciones posibles de los códigos LDPC son:  Recuperación de paquetes perdidos en la distribución de datos masivos a varios clientes en forma simultánea a través de Internet. 3.3. Reed-Solomon 3. la ausencia de patente.  Almacenamiento distribuido de información. 4. Este tipo de código pertenece a la categoría FEC (Forward Error Correction). Los códigos cíclicos son una subclase de los códigos de bloque estándar de detección y corrección de errores que protege la información contra errores en los datos transmitidos sobre un canal de comunicaciones.1. Aplicaciones: Este código encuentra actualmente aplicación en áreas como por ejemplo:     Los CD‟s. LDPC tiene una ventaja. Los códigos LDPC son códigos lineales cuya propiedad esencial es la de tener por lo menos una matriz de paridad de baja densidad. 3. Telefonía móvil. Definición: LDPC (Low Density Parity Check) comprobación de paridad de baja densidad son una clase de códigos de corrección de error lineal que permiten transmitir un mensaje por un canal de comunicaciones ruidoso (canal de transmisión con errores). es decir. La longitud de la palabra-código es: n = k + r símbolos. es decir con pocos elementos distintos de cero. El código Reed-Solomon trabaja con los símbolos en vez de con los bits individuales.2.  Almacenamiento en medios magnéticos.3. 4.4. (longitud=n m expresada en nº de bit).

slideshare.com/articulo/introduccion_a_la_compresion_de_datos [2] Codificación y algoritmos.net/bonnzai/reed-solomon-397239 [5] Sistemas de codificación. disponible en: http://www.pdf 5 .com/2010/05/codificacion-o-algoritmos-de-lempel-ziv. [4] Reed-Solomon “Detección y corrección de Errores en CD”. disponible en: http://ovandos-blog. disponible en: http://www.programacion. disponible en: http://www2.html [3] Ingeniería de sistemas de comunicación/Clase 5: Codificación de la fuente/Eytan Modiano(PDF). Referencias:      [1] Introducción a la compresión de datos: Lempel-Ziv.5.cl/~iee3552/ldpc.ing.blogspot.puc.