1
COMPRESIÓN DE FUENTE
Francisco José Rico
Departamento de Ingeniería TelemáticaETSET de Barcelona
Universidad Politécnica de Cataluña
Objetivos de la transmisión digital de la información:
Codificación de fuente
Objetivos de la Codificación de Fuente
– Transmisión rápida (compresión)– Transmisión fiable (control de errores)– Transmisión segura (autenticidad, privacidad)
→ Codificación de fuente→ Codificación de canal→ Criptografía
– Sin pérdidas: La información decodificada es idénticaes idéntica a la original: Huffman, Lempel-Ziv, etc.
– Con pérdidas: La información decodificada puede ser distintapuede ser distinta de la originalJPEG,MPEG,etc.
2
Concepto de Información (i)La información que proporciona la ocurrencia de un suceso es tanto mayor cuanto menos probable es el suceso.“La información es función inversa de la La información es función inversa de la
probabilidadprobabilidad”
IncertidumbreIncertidumbre: antes del sucesoInformaciónInformación: después del suceso
IncertidumbreIncertidumbreResueltaResuelta
InformaciónInformaciónProporcionadaProporcionada=
Concepto de Información (ii)
S1S1, S2S2 sucesos independientes:
ΙΙ(S1(S1∩∩S2)= S2)= ΙΙ (S1)+ (S1)+ ΙΙ(S2)(S2)La función logaritmo satisface las condiciones anteriores.
ΙΙ (S)(S)=log=logbb(1/p(S)) (1/p(S))
Unidades: b=2 bit b=e Unidades: b=2 bit b=e natnat
3
Entropía de una Fuente
La EntropíaEntropía es la Información MediaInformación Media por símbolo que emite una fuente.
∑==i
ii SISpIH )()(
∑=i
ii SpSpH ))(/1(log)( 2
Para una fuente sin memoriasin memoria
Longitud Media de Codificación
Número medio de dígitos binariosdígitos binarios que se emplean para codificar un símbolo.Ejemplo:Símbolo Probabilidad Bits Código A Código B
A 0,5 1 00 0B 0,25 2 01 10C 0,125 3 10 110D 0,125 3 11 111
1,75 2 1,75Entropía Long. Med. Long. Med.
4
Tipos de CódigosTrabajaremos con códigos de decodificación decodificación únicaúnica. Códigos Instantáneos:
Se pueden decodificar las palabras código según se van recibiendo.
Requisito:Ninguna palabra código es prefijoprefijo de otra
Códigos Instantáneos
Símbolo Código A Código B Código CA 00 0 0B 01 10 01C 10 110 011D 11 111 0111
Instantáneo ⇒ Decodificación ÚnicaDecodificación Única ⇒ Instantáneo
Ejemplo:No es instantáneo pero es de decodificación Única
5
Desigualdad de Kraft (i)Condición necesaria y suficiente para la existencia de códigos instantáneos.
Si la satisfacen con Igualdad se llaman compactos.compactos.
{ } { }
1
símbolos alfabeto,,longitudescon ,, código
n
1k
11
≤
=
∑=
− kL
nn
D
DLLaaA ……
Desigualdad de Kraft (ii)
Ejemplo Símbolo Código A Código B Código CA 00 0 0B 01 10 01C 10 110 011D 11 111 0111
181
81
41
21 =+++1
41
41
41
41 =+++ 1.93750
161
81
41
21 <=+++
6
Límite Fundamental
Shanon demostró que:
La longitud media de codificaciónlongitud media de codificación de una fuentefuente obtenida mediante un código unívocamente decodificable es siempre mayor o igual que su entropíamayor o igual que su entropía
lH ≤
Lema de Gibbs
Da una cota para el valor de la entropía de una fuente.
( ) ( ) ∑∑∑===
=≤A
iii
A
i
A
iii qqpp
112
12 1con /1log/1log
( ) AxH 2log0 ≤≤
La entropía es máxima cuando los símbolos La entropía es máxima cuando los símbolos son equiprobablesson equiprobables
7
Aspecto de la Entropía
Taxonomía de los códigos de fuenteFuentes SIN memoria:– Huffman– Huffman adaptativo (*)
– AritméticosFuentes CON memoria: – Ráfagas– Lempel-Ziv
(*) En este caso, la clasificación es discutible
8
Códigos de Huffman(i)
A
B
C
D
0.5
0.25
0.125
0.1250.25
0.5
1
Asignar los códigos más cortos a las palabras más probables.
Símbolo Código BA 1B 01C 001D 010
imb.dig.bin./s 75.1=lbits.75.1=H
Códigos de Huffman(ii)
A
B
C
D
0.45
0.30
0.13
0.120.25
0.55
0.55
Símbolo Código BA 0B 11C 101D 100
imb.dig.bin./s 80.1=lbits.7892.1=H
1
9
Códigos de Huffman Extendidos
AA 0,45 0,45 0,2025 00AB 0,45 0,3 0,135 110BA 0,3 0,45 0,135 101BB 0,3 0,3 0,09 1111AC 0,45 0,13 0,0585 0111CA 0,13 0,45 0,0585 0110AD 0,45 0,12 0,054 0101DA 0,12 0,45 0,054 0100BC 0,3 0,13 0,039 11101CB 0,13 0,3 0,039 11100BD 0,3 0,12 0,036 10011DB 0,12 0,3 0,036 10010CC 0,13 0,13 0,0169 100011CD 0,13 0,12 0,0156 100010DC 0,12 0,13 0,0156 100001DD 0,12 0,12 0,0144 100000
Hace tender la longitud media de codificación a la entropía.
El crecimiento del número de símbolos es exponencial
Extensión de fuente
Códigos de Huffman (iv)
Son óptimos en cuanto que alcanzan la entropía de la fuente.Requieren el conocimiento a priori de la estadística de símbolos.Pueden modificarse par fuentes no estacionarias:
HuffmanHuffman AdaptativoAdaptativo
10
Huffman Adaptativo (i)P(A)=1/4 A=00 P(A)=1/4 A=00P(B)=1/4 B=01 P(B)=1/4 B=01P(C)=1/4 C=10 P(C)=1/4 C=10p(D)=1/4 D=11 A 00 A p(D)=1/4 D=11P(A)=2/5 A=00 P(A)=2/5 A=00P(B)=1/5 B=10 P(B)=1/5 B=10P(C)=1/5 C=101 P(C)=1/5 C=111p(D)=1/5 D=100 B 10 B p(D)=1/5 D=110P(A)=2/6 A=0 P(A)=2/6 A=0P(B)=2/6 B=11 P(B)=2/6 B=11P(C)=1/6 C=101 P(C)=1/6 C=101p(D)=1/6 D=100 B 11 B p(D)=1/6 D=100P(A)=2/7 A=11 P(A)=2/7 A=11P(B)=3/7 B=0 P(B)=3/7 B=0P(C)=1/7 C=101 P(C)=1/7 C=101p(D)=1/7 D=100 A 11 A p(D)=1/7 D=100
Huffman Adaptativo (ii)
No es necesario conocer la estadística de los símbolosSe adapta a fuentes no estacionariasNo tiene sobrecarga en transmisión pues los diccionarios no se transmitenAumenta la complejidad de computo pues se han de recalcular los códigos
11
Códigos AritméticosUn punto tiene información InfinitaUn punto tiene información InfinitaSe realiza la codificación mediante una sucesión de segmentos encajados.Para codificar secuencias largas se ha de trabajar con aritmética entera.Hay que conocer la estadística de la fuente.Pueden hacerse adaptativos
Ejemplo Cod. AritméticoA 0.2 [0,0.2) A 0 0 0.2B 0.3 [0.2,0.5) 0.2C 0.1 [0.5,0.6) AC 0+0.2*0.5=0.1 0.1 0.12D 0.2 [0.6,0.8) 0+0.2*0.6=0.12E 0.1 [0.8,0.9) ACB 0.1+0.02*0.2=0.104 0.104 0.11F 0.1 [0.9,1) 0.1+0.02*0.5=0.11
ACBE 0.104+0.006*0.8=0.1088 0.1088 0.10940.104+0.006*0.9=0.1094
ACBEF 0.1088+0.0006*0.9=0.10934 0.10934 0.10940.1088+0.0006*1=0.1094
12
Decodificación
0,10934 0,10934 A(0,10934-0)/0,2 0,5467 C
(0,5467-0,5)/(0,6-0,5) 0,467 B(0,467-0,2)/(0,5-0,2) 0,89 E(0,89-0,8)/(0,9-0,8) 0,9 F
A 0.2 [0,0.2)B 0.3 [0.2,0.5)C 0.1 [0.5,0.6)D 0.2 [0.6,0.8)E 0.1 [0.8,0.9)F 0.1 [0.9,1)
Códificación Lempel-Ziv
Forman una familia de códigos de uso muy extendido.
LZLZ--7777LZSSLZSSLZLZ--7878LZWLZWLZMWLZMW
13
LZ-77: Ejemplo
A A B C A B C C A
(0,0)A (1,1)B (0,0)C (3,3)C (0,0)A
A A B C A B C C A
LZ-77:Algoritmo
1 Posición a Codificar (PCPC) al inicio de la secuencia2 Hallar coincidencia más larga3 Codificar (Desp,Long)Car4 Si No Fin: Actualizar PC y volver a 2
14
LZSS: Ejemplo
A A B C A B C C A
A (3,3)
A A B C A B C C A
A B C C A
LZ-78: Ejemplo
A A B C A B C C A
(0,A)
A A B C A B C C A
(1,B) (0,C) (3,A)(2,C)1
2
3
4
5
A
AB
C
ABC
CA
DICCI0NARIO
1
2
3
4
5
A
AB
C
ABC
CA
DICCI0NARIO
15
LZW: Ejemplo
A A B C A A C B C
(1)
1
2
3
4
5
A
B
C
AA
AB
DICCI0NARIO
C
6
7
BC
CA A A B C A A C B C C
1
2
3
4
5
A
B
C
AA
AB
DICCI0NARIO
6
7
BC
CA
8
9
10
AAC
CB
BCC
8
9
10
AAC
CB
BCC
(1) (2) (3) (4) (3) (6) (3)
LZMW: Ejemplo
A A B C A A C B C
(1,1) (2,3) (4,3) (5,3)
1
2
3
4
5
A
B
C
AA
BC
DICCI0NARIO C
6
7
AAC
BCC A A B C A A C B C C
1
2
3
4
5
A
B
C
AA
BC
DICCI0NARIO
6
7
AAC
BCC
16
Burrows-Wheeler (i)
P U0 C A B E L L O1 O C A B E L L2 L O C A B E L3 L L O C A B E4 E L L O C A B5 B E L L O C A6 A B E L L O C
Transformación !REVERSIBLE¡!REVERSIBLE¡P U
6 A B E L L O C 05 B E L L O C A0 C A B E L L O4 E L L O C A B3 L L O C A B E2 L O C A B E L1 O C A B E L L
SALIDA: CAOBELL,0
Burrows-Wheeler (ii)
¿Sorprendentemente? la transformación anterior (para bloques de algunos KB) agrupa los caracteres en ráfagas.Usando luego codificadores sencillos,se consiguen tasas de compresión altas.
17
Resultados con BWT
Resultados con Calgary Corpus (ftp.cpsc.ucalgary.ca/pub/projects/text.compression.corpus)
obtenidos por Mark. Nelson (http://www.dogma.net/markn/articles/bwt/bwt.htm )
Original Con PKZIP Burrow-WheelerTamaño 3251493 1072986 978122Bits/Byte 8 2,64 2,41
Inversión de la BWT
304562
BCELLO
PA 10
123456
CAOBELL
U00 1 3 4 5 6 2C A B E L L O
18
PrestacionesPruebas con Calgary CorpusCalgary Corpus
ORIGINAL BWT-ARI(A) BWT-ARI(B) gzip(LZ-77) ARI compress(LZW) pack(Huffman)Tamaño 3251493 978122 1148618 1066824 1779911 1313536 1829589Bits/Byte 8 2,41 2,83 2,62 4,38 3,23 4,50
LeyendaBWT-ARI(A) RLE-BWT-MTF-RLE (Bloque BWT 200 Kbytes)BWT-ARI(B) RLE-BWT-MTF-RLE (Bloque BWT 20 Kbytes)gzip(LZ-77) Programa gzipARI Código aritméticocompress(LZW) Programa compresspack(Huffman) Programa pack