compresion de fuente

18
[email protected] COMPRESIÓN DE FUENTE Francisco José Rico Departamento de Ingeniería Telemática ETSET de Barcelona Universidad Politécnica de Cataluña [email protected] 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éntica es idéntica a la original: Huffman, Lempel-Ziv, etc. – Con pérdidas: La información decodificada puede ser distinta puede ser distinta de la original JPEG,MPEG,etc.

Upload: enrique-hernandezgarcia

Post on 24-Oct-2015

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Compresion de Fuente

1

[email protected]

COMPRESIÓN DE FUENTE

Francisco José Rico

Departamento de Ingeniería TelemáticaETSET de Barcelona

Universidad Politécnica de Cataluña

[email protected]

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.

Page 2: Compresion de Fuente

2

[email protected]

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=

[email protected]

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

Page 3: Compresion de Fuente

3

[email protected]

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

[email protected]

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.

Page 4: Compresion de Fuente

4

[email protected]

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

[email protected]

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

Page 5: Compresion de Fuente

5

[email protected]

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

[email protected]

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

Page 6: Compresion de Fuente

6

[email protected]

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 ≤

[email protected]

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

Page 7: Compresion de Fuente

7

[email protected]

Aspecto de la Entropía

[email protected]

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

Page 8: Compresion de Fuente

8

[email protected]

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

[email protected]

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

Page 9: Compresion de Fuente

9

[email protected]

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

[email protected]

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

Page 10: Compresion de Fuente

10

[email protected]

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

[email protected]

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

Page 11: Compresion de Fuente

11

[email protected]

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

[email protected]

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

Page 12: Compresion de Fuente

12

[email protected]

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)

[email protected]

Códificación Lempel-Ziv

Forman una familia de códigos de uso muy extendido.

LZLZ--7777LZSSLZSSLZLZ--7878LZWLZWLZMWLZMW

Page 13: Compresion de Fuente

13

[email protected]

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

[email protected]

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

Page 14: Compresion de Fuente

14

[email protected]

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

[email protected]

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

Page 15: Compresion de Fuente

15

[email protected]

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)

[email protected]

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

Page 16: Compresion de Fuente

16

[email protected]

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

[email protected]

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.

Page 17: Compresion de Fuente

17

[email protected]

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

[email protected]

Inversión de la BWT

304562

BCELLO

PA 10

123456

CAOBELL

U00 1 3 4 5 6 2C A B E L L O

Page 18: Compresion de Fuente

18

[email protected]

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