compresion de fuente

Post on 24-Oct-2015

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

f.rico@entel.upc.es

COMPRESIÓN DE FUENTE

Francisco José Rico

Departamento de Ingeniería TelemáticaETSET de Barcelona

Universidad Politécnica de Cataluña

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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=

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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 ≤

f.rico@entel.upc.es

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

f.rico@entel.upc.es

Aspecto de la Entropía

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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)

f.rico@entel.upc.es

Códificación Lempel-Ziv

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

LZLZ--7777LZSSLZSSLZLZ--7878LZWLZWLZMWLZMW

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

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

f.rico@entel.upc.es

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

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-WheelerTamaño 3251493 1072986 978122Bits/Byte 8 2,64 2,41

f.rico@entel.upc.es

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

f.rico@entel.upc.es

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

top related