COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 1
Comunicaciones II
Conferencia 3: Codificación Fuente. Generalidades y Algoritmos populares.
UNIDAD II: FORMATEO DE SEÑALES Y CODIFICACIÓN FUENTE
Instructor: Israel M. Zamora, P.E., MS Telecommunications ManagementProfesor Titular, Departamento de Sistemas Digitales y Telecomunicaciones.
Universidad Nacional de Ingeniería
Universidad Nacional de Ingeniería
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 2
Contenido
• Modelo sistema comunicación banda base
• Codificación fuente• Fuente Textual• Objetivo de la codificación fuente• Diferentes Códigos en uso hoy en día• Casos especiales:
– El código Huffman– Código Lempel Ziv
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 3
Codificación fuente
• Consiste en codificar (asignar) códigos binarios a información cuyo origen es textual/caracteres o analógico.
• La información digital binaria por naturaleza es generada en formato binario por lo que no requiere de este proceso, sino mas bien de entramado.
• La información analógica requiere de un proceso de conversión Analógico-a-Digital (A/D) antes que pueda ser codificada. Este tema se desarrollará cuando tratemos en detalle la modulación PCM, DM, etc.
• Esta conferencia se enfoca en el caso de información de tipo textual (símbolos alfanuméricos) en la cual abordamos el esquema de codificación de Huffman.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 4
Sistema de comunicación banda base
Muestreador Cuantificador Codificador
Binario
Codificador de línea
Transmisor
Filtropasabajos
DecodificadorBinario
Detector de línea
Receptor
Medio de transmisión
Información Digital Binaria
Información Textual o Caracteres
Información Analógica
Información Analógica
Información Textual o Caracteres
Información Digital Binaria
Formas de Onda de pulsos
...10110110001...Secuencia binariaPulsos digitales
de voltaje/corriente
La Codificación de Línea la estudiaremos
en conferencias posteriores.
Codificación Fuente
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 5
Codificación fuentes de texto/caracteres
• En la transmisión de datos, los mismos son previamente arreglados (formateados) de acuerdo a a varios códigos que se han desarrollado a través de los años.
• Es a menudo aconsejable seleccionar códigos ya disponibles para propósito de desarrollo y solución de fallas.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 6
Codificación fuentes de texto/caracteres
• Corresponde a los mensajes o símbolos alfanuméricos que generamos por medios electrónicos
• Algunos ejemplos:• Código Binario Natural• Código Binario Gray• Código Morse• Código BAUDOT• Código EBCDIC• Código ASCII• Código de Barras• Código Huffman• Código Lempel-Ziv• Etc.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 7
Código binario natural
• Son los códigos definidos por 1´s y 0´s que normalmente representan símbolos que son parte de un alfabeto de comunicación.
• El alfabeto puede ser alfanumérico, o de otra índole (ej: nivel de voltaje de un cuatizador) que sea finito.
• Consiste en asignar de forma creciente (natural) códigos binarios a cada símbolo.
Nivel/Símbolo Código Natural A 00 B 01 C 10 D 11
Se guarda la relación:
b = log2 L
b: número de bits del códigoL: Número de símbolos
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 8
Código Gray
• Una desventaja de los códigos binarios naturales es que varios bits pueden cambiar de estado simultáneamente entre cuentas adyacentes.
• Ej: cuando en un sistema BCD (binario natural) se cambia la cuenta de 7 (0111) a 8 (1000), todos los bits permutan
• El código GRAY es único en que las cuentas sucesivas resultan en solamente un cambio en un solo bit, reduciendo errores de bits y errores de permutación en los bits.
FUNCIÓN EXOR: Complemento 2FUNCIÓN EXOR: Complemento 2
Se basa en el uso de la función OR Exclusiva o EXOR.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 9
Código Gray
• CONVERSIÓN BINARIO-GRAY– el primer bit, iniciando con el MSB de un código binario dado, se vuelve
el de la posición más a la izquierda del código Gray
– Aplique función EXOR al primer y segundo bit del código binario dado, para generar el segundo bit del código Gray.
– El tercer bit del código Gray se encuentra al aplicar EXOR al segundo y tercer bits de un código binario dado.
– El proceso continúa hasta que los últimos 2 bits del código binario han sido sujetos de la operación EXOR para producir el último bit del código Gray equivalente.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 10
Código Gray
• CONVERSIÓN GRAY-BINARIO– El primer bit, iniciando con el bit ubicado mas a la izquierda del código
Gray dado, se convierte en el MSB código binario.
– Se aplica EXOR al segundo bit del código Gray con el MSB del código binario para producir el segundo bit binario.
– Se aplica EXOR al tercer bit del código Gray con el segundo bit del código binario para producir el tercer bit binario.
– Se aplica EXOR al cuarto bit del código Gray con el tercer bit del código binario para producir el cuarto bit binario, y así mismo sigue el proceso.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 11
Código Morse
• Uno de los mas antiguos códigos de transmisión• Desarrollado y patentado en 1840 por Samuel F.B.
Morse.• Fue el primer código usado por el sistema de
telégrafo.• Usualmente usado en radioaficionados.• Formados por puntos y guiones.• Un guión dura tres veces lo que un punto.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 12
Código Morse
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 13
Código BAUDOT
• Desarrollado en 1874 por el ingeniero francés Emile Baudot.
• Es usado en el campo de la telegrafía y RTTY (Radio teletipo).
• La versión estandarizada de UIT se usa mundialmente en las redes internacionales de Télex, las que se interconectan a través de las redes telefónicas públicas (PSTN).
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 14
Código BAUDOT
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 15
Código BAUDOT
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 16
Código EBCDIC
• Dearrollado por IBM en 1962, como un código extendido de 8 bits.
• EBCDIC significa: Extended Binary-Coded Decimal Interchange Code.
• Se usa intensamente en computadoras de gran escala (Mainframes) y equipos periféricos.
• Es una mejoría sobre el antiguo código BAUDOT.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 17
Código EBCDIC
IBM Mainframe
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 18
Código EBCDIC
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 19
Código EBCDIC
Tarjeta perforada
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 20
Código EBCDIC
Foto de tarjeta impresa EBCDIC
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 21
Código ASCII
• La American Standard Code for Information Interchange (ASCII) es el código de mayor uso a nivel mundial para la transmisión y procesamiento de datos.
• ASCII fue desarrollado en 1962 específicamente para sistemas de comunicación por computadoras.
• ASCII es un código de 7 bits que puede representarse como dos caracteres hexadecimales para simplicidad.
• Generalmente se provee de un octavo bit que sirve de paridad, haciendo que el código sea igual a un byte (8 bits).
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 22
Código ASCII
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 23
Código de Barras
• Surgieron a principio de los años 70.• Es una serie de barras negras y blancas, consistentemente
dimensionadas que son anchas y angostas.• Las barras blancas que separan las negras, son
denominadas “espacios”• Se componen de modo que contengan un código cifrado que
es identificado por una computadora digital en forma de 1´s y 0´s.
• Suelen usarse en aplicaciones comerciales, en productos que se venden al público.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 24
Código de Barras
• Esta tecnología ha avanzado hasta convertirse en una industria multimillonaria que automatizado la tarea de verificación en los puestos de venta.
• Algunas de las aplicaciones mas comunes son:• Gestión y control de inventario• Seguridad de Acceso (Autenticación)• Envío y recepción• Conteo de productos• Procesamiento de documentos y órdenes (servicio, venta, etc.)• Chequeo y facturación en la renta de vehículos• Gestión del avance del trabajo• Códigos postales (ZIP codes)• Programación funcional• Introducción de datos• Facturación automática• Rastreo y seguimiento de garantías y servicios
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 25
Código de Barras
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 26
Código de Barras
¿Posible señal de la bestia?
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 27
• Teorema de la codificación fuente:• Uno de los tres teoremas fundamentales introducidos por Shannon
en 1948.• Establece un límite fundamental en la tasa a la cual la salida de una
fuente de información puede ser comprimida sin causar probabilidades de error grandes.
• El principal objetivo es construir un conjunto de códigos que representen a cada símbolo del alfabeto fuente y cuya longitud media sea la menor posible.
• En principio, los símbolos más frecuentes en la transmisión se le asigna los códigos de menor longitud (no. de bits), y a los símbolos menos frecuente se le asigna los códigos de mayor longitud.
• Algunos de algoritmos utilizados en la codificación fuente son el código Huffman y el Lempel-Ziv.
Objetivo de la Codificación Fuente
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 28
Código Huffman
• En 1951, a David Huffman y sus compañeros de clase de la asignatura “Teoría de la Información” se les permitió optar entre la realización de un examen final o la presentación de un trabajo. El profesor Robert. M Fano asignó las condiciones del trabajo bajo la premisa de encontrar el código binario más eficiente. Huffman, ante la imposibilidad de demostrar qué código era más eficiente, se rindió y empezó a estudiar para el examen final. Mientras estaba en este proceso vino a su mente la idea de usar árboles binarios de frecuencia ordenada y rápidamente probó que éste era el método más eficiente.
• Con este estudio, Huffman superó a su profesor, quien había trabajado con el inventor de la teoría de la información Claude Shannon con el fin de desarrollar un código similar. Huffman solucionó la mayor parte de los errores en el algoritmo de codificación Shannon-Fano. La solución se basaba en el proceso de construir el árbol desde el fondo hasta la raíz en vez de al contrario.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 29
Código Huffman
• Se basa en el principio indicado en la diapositiva anterior
• Método:1. Ordenar las probabilidades de los símbolos en orden
decreciente2. Fusionar los dos símbolos de menor probabilidades3. Si el número de elementos = 2, entonces:
A. Asignar “0” y “1” a los códigos y pasar a 4. B. Si no es así, volver a 1.
4. Si algún elemento es resultado de la fusión de dos elementos:A. Agregar al código un “0” y un “1” y pasar a A.B. Si no es así entonces parar.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 30
Código Huffman
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 31
Ejemplo
• Diseñe un código de Huffman para el alfabeto {A, B, C, D, E} con probabilidades de ser transmitidos de {1/2,1/4,1/8,1/16,1/16} respectivamente.
• Solución:
A
B
C
D
E
1/2
1/4
1/8
1/16
1/16
0
1
0
1
0
1
0
1
1/8
1/4
1/2
1.0
A: 0
B: 01
C: 011
D: 0111
E: 1111
0
10
110
1110
1111
Código Especular
Código Real
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 32
Ejercicio en casa 1
• Diseñe el código binario para el alfabeto {a1, a2, a3} con probabilidades {1/3, 1/3, 1/3}. Cuál es su comentario a este caso?
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 33
Ejercicio en casa 2
• Diseñe el código binario para el alfabeto {A, B, C, D, E, F, G, H, I} con probabilidades {2/9, 1/9, 1/9, 1/9, 2/9, 1/27, 1/27,1/27, 1/9}.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 34
Longitud media del código
• Para un código correspondiente al alfabeto de K símbolos AX=(x0, x1,...,xK-1) con probabilidad de ocurrencia PX=[p0, p1, ... , pK-1] y longitud de palabra por símbolo LX=[(l0, l1, ... , lK-1], se define la longitud media del código como:
1
0
K-
kkkX lpL
21
0
2
K-
kkkX Llpσ
Como una medida de la variabilidad de las longitudes de palabra de un código fuente, definimos la Varianza de la longitud promedio de palabra de código L sobre el conjunto de símbolos fuente como:
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 35
Ejercicio en casa 3
• Calcule la longitud media para los ejercicios en casa 1 y 2
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 36
Desventaja del Código Huffman
• Requiere de un conocimiento previo de las estadísticas de los símbolos transmitidos.
• No considera ni aprovecha la memoria de los eventos encontrados.
• La necesidad de conservar el código para que pueda ser utilizado por el decodifcador en el momento de la decompresión.
• El importante número de comparaciones de bits necesarios para decodicar la sucesión recibida
• Un error en algún bit se propaga produciendo errores importantes en la decodifcación.
• Los resultados pueden variara según el idioma.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 37
Código Lempel-Ziv
• Es muy popular. Lo podemos encontrar usado en UNIX por la orden compress y la utilidad de MSDOS arc. Fue ideado por Jacob Ziv y Abraham Lempel, y publicado en el IEEE Transactions on Information Theory, vol. IT-23, No 3 de Mayo de 1977.
• El factor de compresión medio es 2 en un fichero largo: reducción del 50% (útil tanto para almacenar como para transmitir información)
• La idea básica es no repetir trozos de texto, sino indicar la localización de inicio de la primera instancia de ese texto y la longitud. Por ejemplo, si este tema comenzara con “Es muy popular” se sustituiría el principio de esta página con {1,14}
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 38
Código Lempel-Ziv
• Para sustituir un texto dado se busca en todo el texto precedente la cadena más larga que coincide con la que vamos a sustituir. Por ejemplo, si “Es muy popular. Lo podemos” está antes en el texto (en la posición 200) se sustituye por {200,26}.
• El ancla y el indicador ocupan menos que el texto en sí mismo.
• La eficiencia aumenta con la longitud del texto, pues existen cadenas más largas repetidas.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 39
Ejemplo 1: Código Lempel-Ziv
• Ejemplo:
• Comprimir usando LZ el texto “the other one is the oldest”
• Resultado
• the o{1,3}r{4,2}n{3,2}is{4,1}{1,5}ld{3,1}{16,1}{1,1}
• Las implementaciones reales difieren un poco para hacerlo fácil de codificar al coste de que comprima un poco menos.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 40
Algorimo de codificación Lempel-Ziv
1. Inicializar un diccionario que contenga todos los bloques de longitud unitaria.
2. Busque el mas grande bloque W que haya aparecido en el diccionario.
3. Codifique W por su índice de entrada en el diccionario.
4. Agregue al diccionario el código de W seguido del primer símbolo del próximo bloque
5. Regrese al paso 2.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 41
Ejemplo 2: Código Lempel-Ziv
http://www.data-compression.com/lempelziv.html
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 42
Ejemplo: Código Lempel-Ziv
• En lugar de buscar en todo el texto la secuencia más larga que encaja se mantiene un diccionario con las cadenas ya encontradas
• Se busca en el diccionario la cadena más larga que encaja y se añaden a él las cadenas más largas cuando se encuentran.
BONIFICACIÓN 2:INVESTIGUE HAGA UN RESUMEN DE LOS ALGORITMO DE COFICACIÓN:
HUFFMAN ADAPTATIVOLEMPEL-ZIV-WELSH
SE ENTREGA EN UNA SEMANA.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 43
Simuladores de Códigos
http://www.cs.sjsu.edu/faculty/khuri/animation.htmlVisite el sitio Web indicado abajo y descargue los simuladores (freewares)
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 44
METODO DE EVALUACIÓN
Top Related