Codificación y Compresión de Fuentes

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 58

CODIFICACIÓN Y COMPRESIÓN DE

FUENTES

2020A
Ing. Fanny Flores E.
Codificación y compresión de
Fuentes
◼ Los sistemas de comunicaciones se diseñan para
transmitir información.
◼ En todo sistema de comunicaciones existe una fuente de
información y el propósito del sistema es transmitir la
salida de la fuente al destino.
◼ Para optimizar la transmisión y hacerla posible mediante
sistemas digitales, la información debe ser codificada.
◼ Es posible hacer más compacta a la salida de una fuente
(compresión), para que sea más fácil transmitirla o
almacenarla.

2
PCM Diferencial
◼ Si se utilizan datos previos para realizar mediciones de
datos posteriores, se varía el formato conocido hasta el
momento como PCM a PCM Diferencial (DPCM).

◼ En DPCM, una predicción del siguiente valor de muestra


se forma a partir de valores pasados.

◼ Utilizando la redundancia de la señal para formar una


predicción, la región de incertidumbre es reducida.

3
PCM Diferencial
◼ Los métodos de cuantización que toman en cuenta la
correlación entre muestras son no instantáneos.
◼ Estos cuantizadores reducen la redundancia de las fuentes al
convertir la secuencia de entrada en una secuencia con
correlación reducida, varianza reducida o ancho de banda
reducido. Esta nueva secuencia es luego cuantizada con menos
bits que el escenario original.
◼ Las características de correlación de una fuente pueden
ser visualizadas
◼ En el dominio del tiempo por muestras de su función de
autocorrelación.
◼ En el dominio de la frecuencia por su espectro de potencia.

4
PCM Diferencial
- Ligero cambio
de muestra a
muestra
Intuimos que algunos Intuimos que algunos
cambios ocurrieron cambios ocurrieron - Para un cambio
lentamente a bajas rápidamente a completo de
Amplia y lentamente
Frecuencias. altas Frecuencias. amplitud, se
cambiante.
requiere un
intervalo de tiempo
que exceda la
distancia de
correlación.

Diferencia de tiempo
entre correlación pico
y la primera correlación
0.

Espectro de potencia típico de Función de autocorrelación para señales


señales de voz típicas de voz
5
PCM Diferencial
◼ Dado que la diferencia entre muestras de voz adyacentes es pequeña, las
técnicas de codificación se han desarrollado para transmitir las diferencias entre
muestras, en lugar de los valores de cada muestra.

DPCM Predictivo N-tap

6
PCM Diferencial

7
PCM Diferencial
◼ Los conversores predictivos deben tener una memoria
a corto plazo que soporte operaciones a tiempo real
requeridas por el algoritmo de predicción.

◼ Además tienen frecuentemente una memoria a largo


plazo que soporte operaciones que se efectúan
considerando muestras del pasado.

8
Modulación Delta
◼ Modulación Delta
◼ Es un caso especial de
DPCM en donde existen
2 niveles de
cuantificación.
◼ El modulador delta (Δ)
tiene embebida una
conversión A-D en un
lazo de realimentación
de datos muestreados
que opera a frecuencias
mucho mayores a la de
Nyquist.

9
Modulación Delta

10
Modulación Delta
◼ Ruido granular y ruido de sobrecarga de
pendiente
◼ La señal de salida del acumulador no siempre
sigue a la analógica de entrada.
◼ La señal de error del ruido de cuantificación puede
clasificarse en dos tipos:
◼ Ruido de sobrecarga de pendiente
◼ Ruido granular

11
Modulación
Delta
◼ Ruido de sobrecarga de pendiente
◼ Ocurre cuando la altura del tamaño
de paso es demasiado pequeña para
que la salida del acumulador pueda
seguir los cambios rápidos en la forma
de onda de entrada.
◼ Ruido granular
◼ Se presenta en cualquier altura de
tamaño de paso δ, pero es más
pequeño cuando dicho tamaño es
también pequeño.
◼ Debe existir un valor óptimo para la
altura del tamaño de paso δ, ya que
si esta aumenta, el ruido granular
también aumentará, pero el ruido de
sobrecarga de pendiente disminuirá. 12
Modulación Delta
◼ La máxima pendiente que
puede generarse por la salida
𝛿
del acumulador es 𝑇 = 𝛿𝑓𝑠
𝑠

◼ Si la señal de entrada es una


función seno, donde 𝑤(𝑡) =
𝐴𝑠𝑒𝑛𝑤𝑎 𝑡 , la pendiente es
𝑑𝑤(𝑡)
= 𝐴𝑤𝑎 𝑐𝑜𝑠𝑤𝑎 𝑡 y la
𝑑𝑡
máxima pendiente de la señal
de entrada es 𝐴𝑤𝑎 .
◼ Por consiguiente, para evitar la sobrecarga de pendiente se requiere que
2𝜋𝑓 𝐴
𝛿𝑓𝑠 > 𝐴𝑤𝑎 ó 𝛿 > 𝑓 𝑎
𝑠

◼ Sin embargo, no se debe dejar que δ sea mucho mayor que este valor, o
el ruido granular será demasiado grande. 13
Modulación Delta adaptable
◼ ADM se utiliza para minimizar el ruido de sobrecarga de
pendiente mientras se mantiene el ruido granular a un valor
razonable.
◼ El tamaño de paso varía en función del tiempo de acuerdo a la
señal de entrada. El tamaño de paso se mantiene pequeño para
minimizar el ruido granular hasta que el ruido de sobrecarga de
pendiente empieza a dominar. Entonces se aumenta el tamaño
de paso para reducir el ruido de sobrecarga de pendiente.
◼ Ejemplo de algoritmo

14
Modulación Delta adaptable

15
Factores de selección
◼ Si el objetivo es tener un sistema relativamente simple y
económico, la modulación delta podría ser la mejor opción.
Sin embargo, el costo de los ADC continúa decreciendo, así
que este no sería un factor decisivo.
◼ De acuerdo a la SNR, PCM es probablemente la mejor
opción.
◼ Si se desea tener una interfaz con equipo existente, la
compatibilidad es una consideración de suma importancia;
en tal caso PCM tiene la ventaja, ya que fue la primera en
adoptarse y es ampliamente utilizada.

16
Codificación y compresión de
señales de fuentes
◼ Estrategias generales de Compresión:
◼ Redundancia espacial: En la compresión de imágenes, se basa en los pixeles
que están cerca unos de otros, ya que estos tienen un parecido muy grande
entre ellos. Para eliminar esta redundancia, se usan métodos como la DCT
(Discret Cosinus Transform) y la cuantificación.

◼ Redundancia estadística: Consiste en determinar qué valores del bit se


repiten más en una secuencia. Se utiliza métodos como VLC (Variable Length
Code) y RLC (Run Length Code) para poder eliminar esta redundancia.
◼ Redundancia temporal: Aprovecha el hecho de que un bit se repite a lo largo
del tiempo. Se utiliza técnicas predictivas para poder deducir los bits futuros.
Esta es la técnica más eficaz en la compresión de video.
17
Codificación y compresión de
señales
◼ La codificación y compresión en la fuente se ha
convertido en un subsistema esencial en sistemas de
comunicación modernos.
◼ La necesidad surge en la creciente demanda de
ancho de banda y capacidad de almacenamiento.
◼ Las herramientas que han hecho posible el desarrollo
de dicho subsistema son los circuitos integrados y las
técnicas de procesamiento de señal.
◼ Se han desarrollado standards para la codificación y
compresión de audio e imágenes.

18
Codificación y compresión de
señales de audio
◼ Para evaluar la eficacia de un compresor de señales
de audio se tiene en cuenta diferentes parámetros:
◼ Fidelidad: qué tan semejante es para el oído humano el audio
decodificado con el audio original.
◼ Velocidad de bit: cantidad de bits por segundo que se necesita para
representar la señal codificada.
◼ Complejidad: Si se puede llevar a cabo con software o es necesario
disponer de hardware dedicado.
◼ Retardo: Introducido por la codificación y decodificación.

19
Codificación y compresión de
señales de audio
◼ La voz tiene características propias que la diferencian del
resto del audio. Por ejemplo, su ancho de banda es más
limitado que el de la música y tiene unas propiedades
espectrales específicas.
◼ Dichas propiedades espectrales han permitido crear
codificaciones específicas para voz que disminuyen el
número de bits necesarios, reduciendo el ancho de banda
para la transmisión o la capacidad de almacenamiento
necesario.

20
Codificación y compresión de
señales de audio
◼ Clasificación de codificadores para voz
◼ Codificadores paramétricos
◼ Basados en el modelado de la voz.
◼ Se calculan los parámetros del modelo de voz para la señal de
entrada, se cuantifican y se envían o se almacenan
◼ Para recuperar la señal codificada. Se genera la voz a partir de
los parámetros codificados previamente.
◼ Codificadores híbridos
◼ Combinan los codificadores paramétricos con los perceptivos,
útiles para cualquier tipo de audio, obteniendo voz de mayor
calidad con tasas de bits bajas.
◼ Ambos presentan pérdidas, pues la señal recuperada no
es igual a la transmitida. 21
Codificación y compresión de
señales de audio
◼ La compresión de audio ha sido bien aprovechada en
productos digitales como:
◼ Compact Disc (CD)
◼ Digital Audio Tape (DAT)
◼ Mini-disc (MD)
◼ Digital compact cassette (DCC)
◼ Digital Versatile Disc (DVD)
◼ Digital Audio Broadcasting (DAB)
◼ Motion Picture Experts Group (MPEG) Audio Layer 3 (MP3)
◼ Adicionalmente se usa en telefonía celular para comprimir
la voz y así optimizar el uso de ancho de banda y vida de
las baterías.
22
Vocoder
◼ Nombre derivado de voice coder (codificador de voz).
◼ Examina el habla encontrando su onda básica, que es la frecuencia
fundamental, midiendo cómo cambian en el tiempo las
características espectrales, que son bandas de frecuencia donde se
concentra la mayor parte de la energía sonora de un sonido.
◼ Reduce en gran medida la cantidad de información necesaria para
almacenar el habla.
◼ Sistemas estándar de grabación de habla registran un rango de
frecuencias entre 500 Hz y 3400 Hz.

23
Vocoder
◼ Música y Telefonía
◼ Para la edición de música profesional se necesitan
codificadores con una alta fidelidad, aunque esto
implica una tasa de bit elevada, e incluso un
dispositivo especial.
◼ Para la telefonía, la calidad no es tan importante,
siempre que la voz codificada sea inteligible. En este
caso, se busca reducir la tasa de bit para ahorrar
ancho de banda en las transmisiones.

24
Compresión de datos
◼ La compresión busca reducir el número de bits para almacenar o
transmitir información.

◼ Los compresores de datos se dividen en dos familias:


◼ Sin pérdida de información (losless)

◼ Garantizan la regeneración exacta de los datos comprimidos. Ej:


almacenamiento de archivos con caracteres ASCII, bases de
datos, una hoja de cálculo.
◼ Con pérdida de información (lossy)
◼ Al descomprimir los datos, no necesariamente deben ser una
copia exacta de los originales. Ej: sonidos o imágenes.

25
Compresión de datos

26
Algoritmo de Huffman
◼ Algoritmo de Huffman
◼ Creado por David A. Huffman en 1952.
◼ Clásico algoritmo usado en muchos
juegos de SNES para comprimir texto.
◼ Usado ampliamente en programas de
compresión GZIP, máquinas de FAX,
esquemas de compresión de imágenes
como JPEG.
◼ Utiliza el método de la propiedad de
estadística de alfabetos.
27
Algoritmo de Huffman
◼ Se basa en asignar códigos de distinta longitud de
bits a cada uno de los caracteres de un fichero.

◼ Si se asignan códigos más cortos a los caracteres


que aparecen más a menudo se consigue una
compresión del archivo.

◼ La compresión es mayor cuando la variedad de


caracteres diferentes que aparecen es menor.

28
Algoritmo de Huffman
◼ Algoritmo:
◼ Consiste en la creación de un árbol binario invertido que tiene cada
uno de los símbolos por hoja, y construido de tal forma que
siguiéndolo desde la raíz a cada una de sus hojas se obtiene el
código Huffman asociado.
1. Se crea varios árboles, uno por cada uno de los símbolos, consistiendo
cada uno de los árboles en un nodo sin hijos, y etiquetado cada uno
con su símbolo asociado y su frecuencia de aparición.
2. Se toman los dos árboles de menor frecuencia y se unen creando un
nuevo árbol. La etiqueta de la raíz será la suma de las frecuencias de
las raíces de los dos árboles que se unen, y cada uno de estos árboles
será un hijo del nuevo árbol. Se etiquetan las dos ramas del nuevo
árbol: 0 la de la izquierda y 1 la de la derecha. Se repite el paso 2
hasta que sólo quede un árbol.
29
Algoritmo de Huffman
◼ Ejemplo: Dados los siguientes símbolos y sus respectivas frecuencias,
construir el árbol de Huffman
1.00
1
0
0.40
0 1

0.60 0.20
0 1 1
0

0.30 0.10
0 1 0 1

0.30 0.15 0.15 0.20 0.10 0.05 0.05


B A E C G D F

30
Algoritmo de Huffman
Ejercicio:
◼ Construya el árbol de Huffman para la palabra

ABACCDA, encuentre los códigos para cada caracter.


◼ Construya el árbol de Huffman para su nombre
apellido, encuentre los códigos para cada caracter.
◼ Construya el árbol de Huffman para la palabra

332141121, encuentre los códigos para cada


caracter.

31
Algoritmo de Huffman
◼ Limitaciones:
◼ Para poder utilizar el algoritmo de Huffman es
necesario conocer de antemano las frecuencias de
aparición de cada símbolo, y su eficiencia depende
de lo próximas a las frecuencias reales que sean
estimadas.
◼ Su eficiencia también depende del balance entre
los hijos de cada nodo del árbol, siendo más
eficiente conforme menor sea la diferencia de
frecuencias entre los dos hijos de cada nodo.

32
Huffman modificado
◼ El algoritmo de Huffman modificado es utilizado en máquinas
de fax para codificar negro en imágenes blancas (bitmaps).

◼ Es además usado para comprimir imágenes en formato TIFF.

◼ Combina el algoritmo de Huffman con datos repetitivos de


run-length.

◼ Dado que las transmisiones de facsímil son típicamente texto


negro o escritura en fondo blanco, solo un bit es requerido
para representar cada pixel o muestra.

33
Run Length
◼ La compresión RLE es una forma muy simple de compresión de
datos en la que secuencias de datos consecutivas con el mismo
valor son almacenadas como un único valor más su recuento.
◼ Útil en datos que contienen una cantidad considerable de estas
secuencias, por ejemplo gráficos sencillos con áreas de color plano.
◼ Ej: La siguiente secuencia en una pantalla con texto negro sobre
fondo blanco:
BBBBBBBBBBBBNBBBBBBBBBBBBNNNBBBBBBBBBBBBBBBBBBBBBBBBNBBBBBBBBBBBBBB
Al aplicar compresión RLE a esta línea, se obtendría lo
siguiente:
B12N1B12N3B24N1B14
◼ El código de compresión RLE representa el original de 67 caracteres
en tan solo 14. Esto quiere decir que la línea original pesa 67 bytes
y la cadena codificada pesa solo 14 bytes.
34
Run Length
◼ El primer byte contiene un valor que representa al propio
caracter.
◼ El segundo byte contiene el número de veces que se repite el
caracter.

◼ El algoritmo puede ser más eficiente si los datos usan solo 2


símbolos (0 y 1).

35
Run Length
◼ Variaciones para compresión de imágenes

36
Lempel ZIV
◼ Codificación basada en el diccionario.
◼ Idea básica:
◼ Crear un diccionario (una tabla) de cadenas durante la
comunicación.
◼ Si tanto el transmisor como el receptor tienen una copia del
diccionario, entonces cadenas encontradas previamente
pueden ser sustituidas por su correspondiente referencia en
el diccionario.
◼ Fases:
◼ Construir un diccionario.
◼ Comprimir una cadena de símbolos.

37
Lempel ZIV
◼ Algoritmo:
◼ Extraer la subcadena más pequeña que no puede
ser encontrada en la cadena sin comprimir
restante.
◼ Guardar la subcadena en el diccionario como una
nueva entrada y asignarle un valor indexado.
◼ La subcadena es reemplazada por el indexado
encontrado en el diccionario.
◼ Insertar el indexado y el último carácter de la
subcadena en la cadena comprimida.
38
Lempel ZIV

39
Lempel ZIV
Ejercicio:
Comprima los siguientes datos con Lempel ZIV:
1. ABBABABBAABB
2. 3332422143322

40
LZW y ZIP
◼ ZIP y LZW (Lempel-Ziv-Welch) son métodos de
compresión sin pérdidas. Por tanto, ningún dato se
pierde durante la compresión.
◼ Métodos de compresión muy utilizados en archivos
digitales de imágenes.
◼ LZW
◼ Creado por Lempel y Ziv en 1978 (LZ78), y mejorado por
Welch en 1984 (LZW).
◼ Algoritmos de compresión basado en un ¨diccionario¨
◼ Toma ventaja de los patrones repetitivos.
◼ Buen rendimiento al comprimir texto.
◼ Algoritmo LZW: 41
LZW y ZIP
◼ Algoritmo LZW:

1. Inicia con un modelo inicial (256 caracteres en el caso de 8


bits), y los usa como estándar.
2. Lee los datos trama por trama (Lee 8 bits a la vez. Ej;
¨t¨,¨r¨, etc.)
3. Actualiza el modelo y codifica los datos conforme se
avanza.

42
LZW y ZIP
◼ Ejemplo LZW:

◼ Ejercicio: Comprima ababcbababaaaaaaa con LZW, si el diccionario


inicial es 1=“a”, 2=“b” y 3=“c”
43
LZW y ZIP
◼ ZIP
◼ Creado por Phil Katz y publicado en 1989.
◼ Polularizado en sistemas Microsoft Windows.
◼ Formato de compresión sin pérdidas.
◼ Compresión rápida no carga al CPU.
◼ Muy utilizado para comprimir documentos,
imágenes o programas.
◼ Comprimir cada archivo independientemente
del resto de archivos comprimidos, permite
recuperar cada uno de los ficheros sin tener
que leer el resto, aumentando el
rendimiento.
44
Codificación y compresión de
imágenes fijas
◼ El objetivo de la compresión de imagen es reducir los
datos redundantes e irrelevantes de la imagen con la
menor pérdida posible, permitiendo su almacenamiento y
transmisión de manera eficiente.
◼ Se puede utilizar algoritmos con pérdida o sin pérdida.
◼ Formatos utilizados:
◼ PNG: Usado para arte lineal, ilustraciones, fotos con alto
contraste.
◼ GIF: Formato usado si se requiere animación.
◼ JPEG: Formato usado para fotografías sin mucho contraste.
Capturas de pantalla, juegos.
◼ RAW, BMP, PSP, PSD
45
Codificación y compresión de
imágenes fijas
◼ Las imágenes que percibimos están compuestas de
ondas electromagnéticas (250nm – 780nm).
◼ Los mecanismos de percepción visual humanos son más
sensibles y estrictos que los auditivos.
◼ Las imágenes digitales están compuestas por pixeles.
◼ Una imagen suele presentar redundancia espacial:
◼ El proceso de compresión de la imagen consiste en eliminar en
la medida de lo posible la redundancia espacial utilizando
técnicas de codificación en fuente.
◼ Se consigue mayores índices de compresión, a costo de
pérdidas.

46
Codificación y compresión de
imágenes fijas
◼ JPEG (Joint Photographic Expert Group)
◼ Estándar ISO
◼ Codifica imágenes de tono continuo.
◼ Factor de compresión promedio de 20:1
(aprox.)
◼ Forma parte de otros estándares de
compresión de secuencias de vídeo (MPEG
y H.26)

47
Estándar JPEG
◼ Principios técnicos
◼ Es necesario disponer de un estándar de compresión que
permita la interoperabilidad entre equipos de diferentes
fabricantes.
◼ JPEG (Joint Photographic Experts Group).
◼ La calidad debe ser de ¨muy buena¨ a ¨excelente¨.
◼ La compresión debe ser parametrizable de forma que el
usuario puede elegir el compromiso deseado entre tasa de
compresión y calidad.
◼ Se puede aplicar a cualquier tipo de imagen fuente.

48
Estándar JPEG
◼ Modos de funcionamiento:
◼ Codificación secuencial: cada componente de la imagen se
codifica siguiendo un patrón de izquierda a derecha y de arriba a
abajo.
◼ Codificación progresiva: la imagen se va construyendo
empezando una imagen con baja calidad y aumentando
progresivamente esta calidad. Aplicaciones con tiempo elevado de
transmisión.
◼ Codificación sin pérdidas: Se garantiza la recuperación exacta
sin pérdidas.
◼ Codificación jerárquica: La imagen se codifica a múltiples
resoluciones. Es posible acceder a las versiones con menor
resolución sin necesidad de descomprimir las versiones de mayor
resolución. 49
Estándar JPEG
Menor calidad
Mayor tasa de compresión

Radiografía de una
mano comprimida con
JPEG con varias
calidades y tasas de
compresión

Mayor calidad
Menor tasa de compresión
Sin pérdidas

50
Estándar JPEG
◼ Algoritmo compresión:
1. Tomar una imagen y dividirla en bloques de 8x8 pixeles.
2. En el codificador basado en la DCT (Discrete Cousin Transform) se
realiza la FDCT (Fast), luego se cuantifica y codifica los datos, de
modo que se asocie un código (valor) para cada color de pixel.
3. Finalmente, en base a la tabla de especificaciones y a los valores
obtenidos de la imagen, se obtiene la imagen comprimida

51
Estándar JPEG
◼ Algortimo descompresión:
1. La imagen comprimida ingresa al decodificador DCT, en donde
en base a la misma tabla de especificaciones utilizada en la
codificación, se descomprime la información.
2. La información decodificada y descuantificada, pasa al bloque
de IDCT (Transformada inversa).
3. Se recupera la imagen original

52
Compresión de video
◼ La compresión de video consiste en reducir la información utilizada
para codificar el contenido de un video digital.
◼ Beneficios: requerimientos menores de almacenamiento y de
ancho de banda.
◼ Implica la supresión de información considerada como no crítica
en la visualización del video.
◼ Con un formato de compresión óptimo, no se percibe la supresión
indicada anteriormente.
◼ A mayor compresión, mayor ahorro en espacio de almacenamiento
y ancho de banda, pero menor calidad.

53
Compresión de video
◼ Formatos de compresión:

54
Estándares MPEG1
◼ MPEG (Moving Picture Experts Group)
◼ Define 3 tipos de tramas de codificación:
◼ Trama I: Intra-coding
◼ Trama P: Predictive coding
◼ Trama B: Bidirectional predictive coding

55
Estándares MPEG1
◼ Codificación tramas I

56
Estándares MPEG1
◼ Codificación tramas P

57
Estándares MPEG1
◼ Codificación tramas B

58

También podría gustarte