Sunteți pe pagina 1din 0

1

f.rico@entel.upc.es
COMPRESIN DE FUENTE
Francisco Jos Rico
Departamento de Ingeniera Telemtica
ETSET de Barcelona
Universidad Politcnica de Catalua
f.rico@entel.upc.es
Objetivos de la transmisin digital de la informacin:
Codificacin de fuente
Objetivos de la Codificacin de Fuente
Transmisin rpida (compresin)
Transmisin fiable (control de errores)
Transmisin segura (autenticidad, privacidad)
Codificacin de fuente
Codificacin de canal
Criptografa
Sin prdidas: La informacin decodificada es idntica es idntica a la original:
Huffman, Lempel-Ziv, etc.
Con prdidas: La informacin decodificada puede ser distinta puede ser distinta de la original
JPEG,MPEG,etc.
2
f.rico@entel.upc.es
Concepto de Informacin (i)
La informacin que proporciona la ocurrencia
de un suceso es tanto mayor cuanto menos
probable es el suceso.
La informacin es funcin inversa de la La informacin es funcin inversa de la
probabilidad probabilidad
Incertidumbre Incertidumbre: antes del suceso
Informacin Informacin: despus del suceso
Incertidumbre Incertidumbre
Resuelta Resuelta
Informacin Informacin
Proporcionada Proporcionada
=
f.rico@entel.upc.es
Concepto de Informacin (ii)
S1 S1, S2 S2 sucesos independientes:
(S1 (S1 S2)= S2)= (S1)+ (S1)+ (S2) (S2)
La funcin logaritmo satisface las condiciones
anteriores.
(S) (S)=log =log
b b
(1/p(S)) (1/p(S))
Unidades: b=2 bit b=e Unidades: b=2 bit b=e nat nat
3
f.rico@entel.upc.es
Entropa de una Fuente
La Entropa Entropa es la Informacin Media Informacin Media por
smbolo que emite una fuente.

= =
i
i i
S I S p I H ) ( ) (

=
i
i i
S p S p H )) ( / 1 ( log ) (
2
Para una fuente sin memoria sin memoria
f.rico@entel.upc.es
Longitud Media de Codificacin
Nmero medio de dgitos binarios dgitos binarios que se
emplean para codificar un smbolo.
Ejemplo:
Smbolo Probabilidad Bits Cdigo A Cdigo B
A 0,5 1 00 0
B 0,25 2 01 10
C 0,125 3 10 110
D 0,125 3 11 111
1,75 2 1,75
Entropa Long. Med. Long. Med.
4
f.rico@entel.upc.es
Tipos de Cdigos
Trabajaremos con cdigos de decodificacin decodificacin
nica nica.
Cdigos Instantneos:
Se pueden decodificar las palabras cdigo segn se
van recibiendo.
Requisito:
Ninguna palabra cdigo es prefijo prefijo de otra
f.rico@entel.upc.es
Cdigos Instantneos
Smbolo Cdigo A Cdigo B Cdigo C
A 00 0 0
B 01 10 01
C 10 110 011
D 11 111 0111
Instantneo Decodificacin nica
Decodificacin nica Instantneo
Ejemplo:
No es instantneo pero es
de decodificacin nica
5
f.rico@entel.upc.es
Desigualdad de Kraft (i)
Condicin necesaria y suficiente para la
existencia de cdigos instantneos.
Si la satisfacen con Igualdad se llaman
compactos. compactos.
{ } { }
1
smbolos alfabeto
, , longitudes con , , cdigo
n
1 k
1 1

k
L
n n
D
D
L L a a A
f.rico@entel.upc.es
Desigualdad de Kraft (ii)
Ejemplo
Smbolo Cdigo A Cdigo B Cdigo C
A 00 0 0
B 01 10 01
C 10 110 011
D 11 111 0111
1
8
1
8
1
4
1
2
1
= + + + 1
4
1
4
1
4
1
4
1
= + + + 1 .9375 0
16
1
8
1
4
1
2
1
< = + + +
6
f.rico@entel.upc.es
Lmite Fundamental
Shanon demostr que:
La longitud media de codificacin longitud media de codificacin de una
fuente fuente obtenida mediante un cdigo
unvocamente decodificable es siempre
mayor o igual que su entropa mayor o igual que su entropa
l H
f.rico@entel.upc.es
Lema de Gibbs
Da una cota para el valor de la entropa de
una fuente.
( ) ( )

= = =
=
A
i
i i
A
i
A
i
i i
q q p p
1 1
2
1
2
1 con / 1 log / 1 log
( ) A x H
2
log 0
La entropa es mxima cuando los smbolos La entropa es mxima cuando los smbolos
son equiprobables son equiprobables
7
f.rico@entel.upc.es
Aspecto de la Entropa
f.rico@entel.upc.es
Taxonoma de los cdigos de fuente
Fuentes SIN memoria:
Huffman
Huffman adaptativo
(*)
Aritmticos
Fuentes CON memoria:
Rfagas
Lempel-Ziv
(*) En este caso, la clasificacin es discutible
8
f.rico@entel.upc.es
Cdigos de Huffman(i)
A
B
C
D
0.5
0.25
0.125
0.125
0.25
0.5
1
Asignar los cdigos ms cortos a las palabras
ms probables.
Smbolo Cdigo B
A 1
B 01
C 001
D 010
imb. dig.bin./s 75 . 1 = l
bits. 75 . 1 = H
f.rico@entel.upc.es
Cdigos de Huffman(ii)
A
B
C
D
0.45
0.30
0.13
0.12
0.25
0.55
0.55
Smbolo Cdigo B
A 0
B 11
C 101
D 100
imb. dig.bin./s 80 . 1 = l
bits. 7892 . 1 = H
1
9
f.rico@entel.upc.es
Cdigos de Huffman Extendidos
AA 0,45 0,45 0,2025 00
AB 0,45 0,3 0,135 110
BA 0,3 0,45 0,135 101
BB 0,3 0,3 0,09 1111
AC 0,45 0,13 0,0585 0111
CA 0,13 0,45 0,0585 0110
AD 0,45 0,12 0,054 0101
DA 0,12 0,45 0,054 0100
BC 0,3 0,13 0,039 11101
CB 0,13 0,3 0,039 11100
BD 0,3 0,12 0,036 10011
DB 0,12 0,3 0,036 10010
CC 0,13 0,13 0,0169 100011
CD 0,13 0,12 0,0156 100010
DC 0,12 0,13 0,0156 100001
DD 0,12 0,12 0,0144 100000
Hace tender la longitud
media de codificacin a la
entropa.
El crecimiento del nmero
de smbolos es
exponencial
Extensin de fuente
f.rico@entel.upc.es
Cdigos de Huffman (iv)
Son ptimos en cuanto que alcanzan la
entropa de la fuente.
Requieren el conocimiento a priori de la
estadstica de smbolos.
Pueden modificarse par fuentes no
estacionarias:
Huffman Huffman Adaptativo Adaptativo
10
f.rico@entel.upc.es
Huffman Adaptativo (i)
P(A)=1/4 A=00 P(A)=1/4 A=00
P(B)=1/4 B=01 P(B)=1/4 B=01
P(C)=1/4 C=10 P(C)=1/4 C=10
p(D)=1/4 D=11 A 00 A p(D)=1/4 D=11
P(A)=2/5 A=00 P(A)=2/5 A=00
P(B)=1/5 B=10 P(B)=1/5 B=10
P(C)=1/5 C=101 P(C)=1/5 C=111
p(D)=1/5 D=100 B 10 B p(D)=1/5 D=110
P(A)=2/6 A=0 P(A)=2/6 A=0
P(B)=2/6 B=11 P(B)=2/6 B=11
P(C)=1/6 C=101 P(C)=1/6 C=101
p(D)=1/6 D=100 B 11 B p(D)=1/6 D=100
P(A)=2/7 A=11 P(A)=2/7 A=11
P(B)=3/7 B=0 P(B)=3/7 B=0
P(C)=1/7 C=101 P(C)=1/7 C=101
p(D)=1/7 D=100 A 11 A p(D)=1/7 D=100
f.rico@entel.upc.es
Huffman Adaptativo (ii)
No es necesario conocer la estadstica de
los smbolos
Se adapta a fuentes no estacionarias
No tiene sobrecarga en transmisin pues los
diccionarios no se transmiten
Aumenta la complejidad de computo pues se
han de recalcular los cdigos
11
f.rico@entel.upc.es
Cdigos Aritmticos
Un punto tiene informacin Infinita Un punto tiene informacin Infinita
Se realiza la codificacin mediante una
sucesin de segmentos encajados.
Para codificar secuencias largas se ha de
trabajar con aritmtica entera.
Hay que conocer la estadstica de la fuente.
Pueden hacerse adaptativos
f.rico@entel.upc.es
Ejemplo Cod. Aritmtico
A 0.2 [0,0.2) A 0 0 0.2
B 0.3 [0.2,0.5) 0.2
C 0.1 [0.5,0.6) AC 0+0.2*0.5=0.1 0.1 0.12
D 0.2 [0.6,0.8) 0+0.2*0.6=0.12
E 0.1 [0.8,0.9) ACB 0.1+0.02*0.2=0.104 0.104 0.11
F 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.1094
0.104+0.006*0.9=0.1094
ACBEF 0.1088+0.0006*0.9=0.10934 0.10934 0.1094
0.1088+0.0006*1=0.1094
12
f.rico@entel.upc.es
Decodificacin
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)
f.rico@entel.upc.es
Cdificacin Lempel-Ziv
Forman una familia de cdigos de uso muy
extendido.
LZ LZ- -77 77
LZSS LZSS
LZ LZ- -78 78
LZW LZW
LZMW LZMW
13
f.rico@entel.upc.es
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
f.rico@entel.upc.es
LZ-77:Algoritmo
1 Posicin a Codificar (PC PC) al inicio de la secuencia
2 Hallar coincidencia ms larga
3 Codificar (Desp,Long)Car
4 Si No Fin: Actualizar PC y volver a 2
14
f.rico@entel.upc.es
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
f.rico@entel.upc.es
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
f.rico@entel.upc.es
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)
f.rico@entel.upc.es
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
f.rico@entel.upc.es
Burrows-Wheeler (i)
P U
0 C A B E L L O
1 O C A B E L L
2 L O C A B E L
3 L L O C A B E
4 E L L O C A B
5 B E L L O C A
6 A B E L L O C
Transformacin !REVERSIBLE !REVERSIBLE
P U
6 A B E L L O C 0
5 B E L L O C A
0 C A B E L L O
4 E L L O C A B
3 L L O C A B E
2 L O C A B E L
1 O C A B E L L
SALIDA: CAOBELL,0
f.rico@entel.upc.es
Burrows-Wheeler (ii)
Sorprendentemente? la transformacin
anterior (para bloques de algunos KB)
agrupa los caracteres en rfagas.
Usando luego codificadores sencillos,se
consiguen tasas de compresin altas.
17
f.rico@entel.upc.es
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-Wheeler
Tamao 3251493 1072986 978122
Bits/Byte 8 2,64 2,41
f.rico@entel.upc.es
Inversin de la BWT
3
0
4
5
6
2
B
C
E
L
L
O
P
A 1 0
1
2
3
4
5
6
C
A
O
B
E
L
L
U 0
0 1 3 4 5 6 2
C A B E L L O
18
f.rico@entel.upc.es
Prestaciones
Pruebas con Calgary Corpus Calgary Corpus
ORIGINAL BWT-ARI(A) BWT-ARI(B) gzip(LZ-77) ARI compress(LZW) pack(Huffman)
Tamao 3251493 978122 1148618 1066824 1779911 1313536 1829589
Bits/Byte 8 2,41 2,83 2,62 4,38 3,23 4,50
Leyenda
BWT-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 gzip
ARI Cdigo aritmtico
compress(LZW) Programa compress
pack(Huffman) Programa pack

S-ar putea să vă placă și