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

Compressão Huffman

Jul 03, 2015

Download

Technology

Helder Cesar

Semináriio de
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Compressão Huffman

1Complexidade de Algoritmos - Huffman

HuffmanHuffman

Denilson Grosa

Fernando Kaway

Helder Cesar

Complexidade de Algoritmos

Page 2: Compressão Huffman

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.

Page 3: Compressão Huffman

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;

Page 4: Compressão 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

Page 5: Compressão Huffman

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

Page 6: Compressão Huffman

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

Page 7: Compressão Huffman

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

Page 8: Compressão Huffman

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

Page 9: Compressão Huffman

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

Page 10: Compressão Huffman

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

Page 11: Compressão Huffman

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

Page 12: Compressão Huffman

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

Page 13: Compressão Huffman

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

Page 14: Compressão Huffman

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

Page 15: Compressão Huffman

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

Page 16: Compressão Huffman

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

Page 17: Compressão Huffman

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%

Page 18: Compressão Huffman

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”

+ =

Page 19: Compressão Huffman

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