Complexidade de Algoritmos - Huffman · 1 Complexidade de Algoritmos - Huffman Huffman Denilson...

19
1 Complexidade de Algoritmos - Huffman Huffman Huffman Denilson Grosa Fernando Kaway Helder Cesar Complexidade de Algoritmos

Transcript of Complexidade de Algoritmos - Huffman · 1 Complexidade de Algoritmos - Huffman Huffman Denilson...

1Complexidade de Algoritmos - Huffman

HuffmanHuffman

Denilson Grosa

Fernando Kaway

Helder Cesar

Complexidade de Algoritmos

2Complexidade de Algoritmos - Huffman

Algoritmo de Huffman?Algoritmo de Huffman?

Compressão de dados;

Técnicas estatísticas;

Conceitos básicos de Estrutura de Dados:

Lista com Prioridade;

Árvore Binária.

3Complexidade de Algoritmos - Huffman

Algoritmo de Huffman?Algoritmo de Huffman?

Algumas aplicações:

JPEG;

MP3;

Zip.

Variações:

Codificação n-ária de Huffman;

Codificação Adaptativa de Huffman;

4Complexidade de Algoritmos - Huffman

JPEGJPEG

Transformada DCT

QuantizadorCodificador

R.L.E.CodificadorEstatístico

Tabela de Quantização

Tabela de Codificação

Bloco8x8px

Compressão:

Fator de CompressãoImagem

Comprimida

5Complexidade de Algoritmos - Huffman

JPEGJPEG

Descompressão:

Transformada DCT Inversa

DesquantizadorDecodif.

R.L.E.Decodif.

EstatísticoBloco8x8px

Tabela de Quantização

Fator de CompressãoTabela de

Codificação

ImagemComprimida

6Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

Vamos codificar a mensagem:“CASA PAPEL HOTEL PASTEL”

Tabela de frequências:Letra Frequencia

C 1

A 4

S 2

P 3

E 3

L 3

H 1

O 1

T 2

Espaço 3

7Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

Texto original: “CASA_PAPEL_HOTEL_PASTEL”Texto codificado: “000000010010000110010011000100110100010110010110

01111000010001011001001100010010100001000101”

Letra Código

C 0000

A 0001

S 0010

P 0011

E 0100

L 0101

H 0110

O 0111

T 1000

Espaço 1001

23*4 = 92bits

8Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

Lista com prioridade:

C A S P E L H O T Esp

1 4 2 3 3 3 1 1 2 3

Lista com prioridade ordenada:

Maior prioridade.

C H O S T P E L Esp A

1 1 1 2 2 3 3 3 3 4

9Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

Construção da árvore:

C H

C H O S T P E L Esp A

1 1 1 2 2 3 3 3 3 4

C+H O S T P E L Esp A

2 1 2 2 3 3 3 3 4

10Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

C H

O S T C+H P E L Esp A

1 2 2 2 3 3 3 3 4

T C+H P E L Esp O+S A

2 2 3 3 3 3 3 4

SOC H

11Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

P E L Esp O+S A T+C+H

3 3 3 3 3 4 4

C H

T 2

P+E L+Esp O+S A T+C+H

6 6 3 4 4

C H

T 2' 'LEP

SO

SO

12Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

O+S A T+C+H P+E L+' '

3 4 4 6 6

C H

T 2 ' 'LEPSO

T+C+H P+E L+' ' O+S+A

4 6 6 7

C H

T 2 ' 'LEP

SO

A3

13Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

L+' ' O+S+A T+C+H+P+E

6 7 10

C H

T 2

' 'L

EP

64

SO

A3

14Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

T+C+H+P+E L+' '+A+O+S

10 13

C H

T 2 ' 'LEP

64

SO

A3

76

15Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

T+C+H+P+E+L+' '+A+O+S

23

C H

T 2 ' 'LEP

64

SO

A3

76

1310

16Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

C H

T 2 ' 'LEP

64

SO

A3

76

13100

Letra Código

C 0010

A 111

S 1101

P 010

E 011

L 100

H 0011

O 1100

T 000

Esp. 101

23

Atribuição de código:

0

0

0 0

0

0

0

0 1

1

1

1

111

1

1

17Complexidade de Algoritmos - Huffman

Exemplo de CodificaçãoExemplo de Codificação

Comparando o “antes” e o “depois”:Texto original: “CASA_PAPEL_HOTEL_PASTEL”

Texto codificado (antes): “00000001001000011001001100010011010001011001011001111000010001011001001100010010100001000101”

Tam. Total: 92bits

Texto codificado (depois): “00101111101111101010111010011100101001111000000111001010101111101000011100”

Tam. Total: 74bits!!!!

Taxa de Compressão ~ 20%

18Complexidade de Algoritmos - Huffman

DecodificaçãoDecodificação

Texto codificado: “00101111101111101010111010011100101001111000000111001010101111101000011100”

Letra Código

C 0010

A 111

S 1101

P 010

E 011

L 100

H 0011

O 1100

T 000

Esp. 101

Texto decodificado: “CASA_PAPEL_HOTEL_PASTEL”

+ =

19Complexidade de Algoritmos - Huffman

Fontes ConsultadasFontes Consultadas

Goodrich, M. T.; Tamassia, R.; Projeto de Algoritmos, Bookman, 2002;

Huffman, D. A.; Method for the Construction of Minimum-

Redundancy Codes, In: Proceedings of the Institute of Radio

Engineers, Vol. 40, Nr. 9 (September 1952) , p. 1098-1101.

http://www.cprogramming.com/tutorial/computersciencetheory/huffman.html

http://algs4.cs.princeton.edu/55compression/Huffman.java.html

http://www.ics.uci.edu/~dan/pubs/DC-Sec3.html

http://en.wikipedia.org/wiki/Huffman_coding