Você está na página 1de 21

Codificação de Fonte

Prof. Glauber Brante

UTFPR – Universidade Tecnológica Federal do Paraná


DAELT – Departamento Acadêmico de Eletrotécnica
Diagrama de Blocos: Comunicação Digital

Codificador Codificador
Fonte Modulador
de Fonte de Canal

Interface
TRANSMISSOR de TX

Canal

RECEPTOR Interface
de RX

Decodificador Decodificador
Destino Demodulador
de Fonte de Canal
Codificação de Fonte e de Canal

Codificador Codificador
Fonte Modulador
de Fonte de Canal

Interface
TRANSMISSOR de TX

Vimos até agora as operações relacionadas com a modulação, em que a informação a ser
transmitida já é uma sequência de bits.

Vamos olhar agora as operações relacionadas com transformar a fonte de informação


(usualmente uma grandeza analógica) em uma sequência de bits que será transmitida.
Codificação de Fonte e de Canal

Codificador Codificador
Fonte Modulador
de Fonte de Canal

Interface
TRANSMISSOR de TX

Para processar a fonte de informação, primeiramente amostramos com uma taxa constante
e as amostras são codificadas em uma sequência de bits por meio de duas operações:

1) Codificação de Fonte: para utilização efetiva da largura de banda do canal

2) Codificação de Canal: para proteção contra erros de transmissão


Exemplo de Codificação de Texto: Tabela ASCII

ASCII: American Standard Code for Information Interchange


Sistema de codificação de caracteres que foi adotado em larga escala na computação
Converte caracteres em uma sequência de 8 bits.

Caractere Bits Caractere Bits Caractere Bits


A 0100 0001 K 0100 1011 U 0101 0101
B 0100 0010 L 0100 1100 V 0101 0110
C 0100 0011 M 0100 1101 W 0101 0111
D 0100 0100 N 0100 1110 X 0101 1000
E 0100 0101 O 0100 1111 Y 0101 1001
F 0100 0110 P 0101 0000 Z 0101 1010
G 0100 0111 Q 0101 0001
H 0100 1000 R 0101 0010
I 0100 1001 S 0101 0011
J 0100 1010 T 0101 0100
Algoritmos de Codificação sem Perdas

A tabela ASCII é um código de tamanho fixo: cada caractere possui 8 bits.

Porém, quando os símbolos da fonte não são igualmente prováveis (o que acontece com
voz, texto, etc.), um método eficiente de codificação é utilizar palavras código de
tamanho variável.

A ideia é representar a informação com o menor número possível de bits


⇝ Otimiza a quantidade de informação dentro da largura de banda do canal de comunicação.
Algoritmo de Huffman

O algoritmo de Huffman é uma das formas mais usadas para fazer a compressão de fonte,
sem perdas.

É um tipo de codificação por entropia, pois considera a frequência de ocorrência dos


símbolos da fonte para gerar a palavra codificada.

Os símbolos mais comuns são codificados com poucos bits, enquanto símbolos que
ocorrem com menor frequência são mapeados em mais bits.
Algoritmo de Huffman

Exemplo:
Vamos codificar a palavra ABRACADABRA! para entender o algoritmo de Huffman.
Algoritmo de Huffman

Exemplo:
Vamos codificar a palavra ABRACADABRA! para entender o algoritmo de Huffman.
Existem 12 símbolos no total, com 6 símbolos diferentes:
1) A ocorre 5 vezes
2) B ocorre 2 vezes
3) R ocorre 2 vezes
4) C ocorre 1 vez
5) D ocorre 1 vez
6) ! ocorre 1 vez
Algoritmo de Huffman

Exemplo:
Vamos codificar a palavra ABRACADABRA! para entender o algoritmo de Huffman.
Existem 12 símbolos no total, com 6 símbolos diferentes:
1) A ocorre 5 vezes
2) B ocorre 2 vezes
3) R ocorre 2 vezes
4) C ocorre 1 vez
5) D ocorre 1 vez
6) ! ocorre 1 vez

Assim, as probabilidades são:


5
pA = 12 = 0,42
2
pB = pR = 12 = 0,17
1
pC = pD = p! = 12 = 0,08
Algoritmo de Huffman

símb. prob.
A 0,42
B 0,17
R 0,17
C 0,08
D 0,08
! 0,08
Algoritmo de Huffman

símb. prob. Fase 1


A 0,42 0,42
B 0,17 0,17
R 0,17 0,17
C 0,08 ⋆ 0,16
D 0,08 0,08
! 0,08
Algoritmo de Huffman

símb. prob. Fase 1 Fase 2


A 0,42 0,42 0,42
B 0,17 0,17 ⋆ 0,24
R 0,17 0,17 0,17
C 0,08 ⋆ 0,16 0,17
D 0,08 0,08
! 0,08
Algoritmo de Huffman

símb. prob. Fase 1 Fase 2 Fase 3


A 0,42 0,42 0,42 0,42
B 0,17 0,17 ⋆ 0,24 ⋆ 0,34
R 0,17 0,17 0,17 0,24
C 0,08 ⋆ 0,16 0,17
D 0,08 0,08
! 0,08
Algoritmo de Huffman

símb. prob. Fase 1 Fase 2 Fase 3 Fase 4


A 0,42 0,42 0,42 0,42 ⋆ 0,58
B 0,17 0,17 ⋆ 0,24 ⋆ 0,34 0,42
R 0,17 0,17 0,17 0,24
C 0,08 ⋆ 0,16 0,17
D 0,08 0,08
! 0,08
Algoritmo de Huffman

símb. prob. Fase 1 Fase 2 Fase 3 Fase 4


A 0,42 0,42 0,42 0,42 ⋆ 0,58 0
B 0,17 0,17 ⋆ 0,24 ⋆ 0,34 0,42 1
R 0,17 0,17 0,17 0,24
C 0,08 ⋆ 0,16 0,17
D 0,08 0,08
! 0,08
Algoritmo de Huffman

símb. prob. Fase 1 Fase 2 Fase 3 Fase 4


A 0,42 0,42 0,42 0,42 1 0,58 0
B 0,17 0,17 ⋆ 0,24 ⋆ 0,34 00 0,42 1
R 0,17 0,17 0,17 0,24 01
C 0,08 ⋆ 0,16 0,17
D 0,08 0,08
! 0,08
Algoritmo de Huffman

símb. prob. Fase 1 Fase 2 Fase 3 Fase 4


A 0,42 0,42 0,42 1 0,42 1 0,58 0
B 0,17 0,17 ⋆ 0,24 01 0,34 00 0,42 1
R 0,17 0,17 0,17 000 0,24 01
C 0,08 ⋆ 0,16 0,17 001
D 0,08 0,08
! 0,08
Algoritmo de Huffman

símb. prob. Fase 1 Fase 2 Fase 3 Fase 4


A 0,42 0,42 1 0,42 1 0,42 1 0,58 0
B 0,17 0,17 000 0,24 01 0,34 00 0,42 1
R 0,17 0,17 001 0,17 000 0,24 01
C 0,08 ⋆ 0,16 010 0,17 001
D 0,08 0,08 011
! 0,08
Algoritmo de Huffman

símb. prob. Fase 1 Fase 2 Fase 3 Fase 4


A 0,42 1 0,42 1 0,42 1 0,42 1 0,58 0
B 0,17 000 0,17 000 0,24 01 0,34 00 0,42 1
R 0,17 001 0,17 001 0,17 000 0,24 01
C 0,08 011 0,16 010 0,17 001
D 0,08 0100 0,08 011
! 0,08 0101
Algoritmo de Huffman

Codificação Final:

Símbolo Código
A 1
B 000
R 001
C 011
D 0100
! 0101

Palavra codificada em ASCII (96 bits):


01000001 01000010 01010010 01000001 01000011 01000001 01000100 01000001
01000010 01010010 01000001 00100001

Palavra codificada com Huffman (28 bits):


1 000 001 1 011 1 0100 1 000 001 1 0101

Você também pode gostar