Universidad Nacional de Ingeniería 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 Management
Profesor Titular, Departamento de Sistemas Digitales y Telecomunicaciones. Universidad Nacional de Ingeniería

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

1

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 2

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

3

Sistema de comunicación banda base
Secuencia binaria
Información Digital Binaria

...10110110001...

Pulsos digitales de voltaje/corriente

Información Textual o Caracteres

Muestreador Información Analógica

Cuantificador

Codificador Binario

Codificador de línea

Transmisor

Codificación Fuente
Formas de Onda de pulsos Información Analógica Medio de transmisión

Filtro pasabajos

Decodificador Binario

Detector de línea

Receptor

Información Textual o Caracteres

Información Digital Binaria

La Codificación de Línea la estudiaremos en conferencias posteriores. Uni II - Conf3: Cod. fte y Fmteo 4

COM II- I. Zamora

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

5

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 6

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 A B C D

Código Natural 00 01 10 11

Se guarda la relación:

b = log2 L
b: número de bits del código L: Número de símbolos

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

7

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.

Se basa en el uso de la función OR Exclusiva o EXOR.

FUNCIÓN EXOR: Complemento 2

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

8

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

9

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

10

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

11

Código Morse

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

12

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

13

Código BAUDOT

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 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

16

Código EBCDIC

IBM Mainframe

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

17

Código EBCDIC

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

18

Código EBCDIC

Tarjeta perforada

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

19

Código EBCDIC
Foto de tarjeta impresa EBCDIC

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

20

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

21

Código ASCII

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

22

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

23

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

24

Código de Barras

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

25

Código de Barras

¿Posible señal de la bestia?

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

26

Objetivo de la Codificación Fuente
• 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.
COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 27

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 28

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 decreciente 2. Fusionar los dos símbolos de menor probabilidades 3. 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

29

Código Huffman

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

30

Ejemplo
• •
A

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:
1/2
Código Especular Código Real

0

A:
1.0

0 01

0 10 110 1110 1111

B

1/4

0
1/2

B:

C: 011 C
1/8

0
1/4

D: 0111

1
1

E: 1111

0
D
1/16 1/8

E

1/16

1 1
Uni II - Conf3: Cod. fte y Fmteo 31

COM II- I. Zamora

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

32

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

33

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:

LX   pk  l k
k 0
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: 2

K-1

σ   pk  lk  L 
2 X k 0

K-1

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

34

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

35

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 36

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 37

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

38

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 39

Algorimo de codificación Lempel-Ziv
1. Inicializar un diccionario que contenga todos los bloques de longitud unitaria. Busque el mas grande bloque W que haya aparecido en el diccionario. Codifique W por su índice de entrada en el diccionario. Agregue al diccionario el código de W seguido del primer símbolo del próximo bloque Regrese al paso 2.

2.
3. 4. 5.

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

40

Ejemplo 2: Código Lempel-Ziv

http://www.data-compression.com/lempelziv.html COM II- I. Zamora Uni II - Conf3: Cod. fte y Fmteo 41

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 ADAPTATIVO LEMPEL-ZIV-WELSH SE ENTREGA EN UNA SEMANA.

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

42

Simuladores de Códigos

Visite el sitio Web indicado abajo y descargue los simuladores (freewares)

http://www.cs.sjsu.edu/faculty/khuri/animation.html

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

43

METODO DE EVALUACIÓN

COM II- I. Zamora

Uni II - Conf3: Cod. fte y Fmteo

44

Sign up to vote on this title
UsefulNot useful