Você está na página 1de 52

BC-0504

Natureza da Informao

Cdigos e Codificao

Guiou Kobayashi
guiou.kobayashi@ufabc.edu.br

3o Quadrimestre, 2013

Natureza da Informao

Cdigos
Cdigos ee Codificao
Codificao

Cdigos e Codificao

Natureza da Informao

Cdigos


Como desenvolver?










Letras: EBCDIC, ASCII, Unicode, BCD, Morse


Inteiros: binrio, Gray, complemento de 2
Nmeros: ponto flutuante
Protenas: cdigo gentico
Telefones: dgitos, cdigos internacionais
Hosts: ethernet, IP, nomes de domnio
Imagens: TIFF, GIF, JPEG
Audio: MP3
Video: MPEG

Cdigos e Codificao

Natureza da Informao

Espao de Smbolos


Dependendo do nmero de smbolos que


precisa codificar diferentes consideraes

Nmero de smbolos em um cdigo =


tamanho do espao de smbolos


Alguns tamanhos que sero considerados:








2
Potncia de 2
Finito
Infinito, contvel
Infinito, incontvel

Cdigos e Codificao

Natureza da Informao

Espao de Smbolos


Nmero de smbolos n = 2


Pode ser codificado com um nico bit

Nmero de smbolos n = potncia de 2




Pode ser codificado com log2n bits





Ex.: 2 bits para naipe de cartas


5 bits para um estudante dentre uma classe com 32
alunos

Cdigos e Codificao

Natureza da Informao

Espao de Smbolos


Nmero de smbolos n = finito, mas no


potncia de 2


Pode ser codificado com nmero de bits de


prximo inteiro superior, que potncia de 2


Ex.: 3 bits para resultado de um dado

Leva a algumas sequncias de bits no utilizadas





Ex.: usa s de 000 a 101 para o dado


Dois no so usados: 110 e 111

Cdigos e Codificao

Natureza da Informao

Espao de Smbolos


Nmero de smbolos n = infinito contvel




Infinito contvel: pode ser mapeado em relao


um-a-um com os inteiros
Cadeia de bits pode denotar apenas nmero finito
dos smbolos


Ex.: 4 bits podem representar os inteiros 0 a 15

Cdigos e Codificao

Natureza da Informao

Espao de Smbolos


Nmero de smbolos n = infinito incontvel





Ex.: voltagem, presso


Deve ser usada tcnica para substituir por um nmero finito de
valores que aproximadamente o mesmo (quantizao)
 Ex.: Representando nmeros entre 0 e 1 com dois bits
0

0,25

0,125
00


0,5

0,375
01

0,75

0,625
10

0,875
11

Aproximao no reversvel

Mas, usando nmero grande de bits, decodificao pode ser feita


para nmero prximo o suficiente (ex. representao floating-point)
Cdigos e Codificao

Natureza da Informao

Espao
Espao de
de Cdigo
Cdigo

Cdigos e Codificao

Natureza da Informao

Espao de Cdigo


Dado o Espao de Smbolos que devero ser


representados, dever ser escolhido / definido um
Sistema de Codificao com regras de formao de
cdigos (sintaxe) e regras de atribuio de cdigos aos
smbolos (semntica)
Este Sistema de Codificao define o Espao de Cdigo,
que estabelece quantos smbolos diferentes poder ser
codificado no mximo.
O Espao de Cdigo dever ser maior que o Espao de
Smbolos para que possa cont-los sem perda de
representao.

Cdigos e Codificao

10

Natureza da Informao

Espao de Cdigo


Situaes em que h mais padres de cdigo que nmero


de smbolos
 Ex. inteiros que no so potncia de 2

O que fazer com os padres de bits adicionais?


1. Ignorar
2. Mapear para outros valores
3. Reservar para futura expanso
4. Usar para cdigos de controle (Metadados)
5. Usar para cdigos Detectores e Corretores de Erro
6. Usar para abreviaes comuns (glossrio e converses)

Cdigos e Codificao

11

Natureza da Informao

Exemplo
Exemplo de
de Cdigos
Cdigos

Cdigos e Codificao

12

Natureza da Informao

Cdigo BCD


Binary Coded Decimal




Sistema de representao dos dgitos decimais


de 0 at 9 com um cdigo binrio de 4 bits
Ex.: inteiro decimal 834 em BCD
1000 0011 0100 ;
0,764 0.0111 0110 0100 em BCD

Cdigos e Codificao

Menos eficiente que o cdigo binrio puro


(mais bits para representar mesmo nmero)
Ex.: 83 = 1000 0011 BCD = 10100112
Operaes aritmticas com BCD tambm
so mais complexas
H padres desperdiados
Mas entendimento mais fcil

13

Natureza da Informao

Cdigo BCD


Alternativas para lidar com os padres de


bits extras:
1.Ignorando padres de bits extra



Decodificador retorna nada ou


Decodificador sinaliza erro

2.Mapeando para valores legais





Todos os extras representam o dgito 9 ou


Decodifica extras para 2, 3, 4, 5, 6, 7, supondo que o
bit inicial deve ser o incorreto

Cdigos e Codificao

14

Natureza da Informao

Cdigo BCD


Binary Coded Decimal








Imagine um cdigo BCH (Binary Coded


Hexadecimal)
Existem padres desperdiados?
Ex.: FE (BCH) = 1111 1110 (B)
Resposta: No

Cdigos e Codificao

15

Natureza da Informao

Endereos IP
Internet Protocol
Atribudos por IANA (Internet Numbers Authority)
Cada nome de domnio associado a um nico
endereo de IP
Atualmente 32 bits: 4 blocos de nmeros de 0 a 255
separados por pontos (verso 4)
Exemplo: 207.46.250.119
cada endereo de Internet pode ser codificado com 32 bits
Nmero de endereos possveis: 232 = pouco mais de 4
bilhes
Desenvolvido para ter capacidade de expanso

Cdigos e Codificao

16

Natureza da Informao

Endereos IP
Exploso de interesse na Internet
Tablets, celulares, videogames, etc.
J h necessidade de endereos at mesmo para
aparelhos eletrodomsticos!
Resultado: IP verso 6 (IPv6)
Endereos ainda na forma x.x.x.x, mas cada x nmero de
32 bits entre 0 e 4.294.927.295
128 bits
Endereos existentes no mudaro, mas muitos
equipamentos de rede esto sendo adaptados ou substitudos

Cdigos e Codificao

17

Natureza da Informao

Codificao
Codificao

Cdigos e Codificao

18

Natureza da Informao

Desenvolvimento de Cdigos
Muitos cdigos so desenvolvidos por
humanos
Alguns so bastante robustos, simples, fceis de
trabalhar e extensveis
Mais fcil quando precisa representar poucos smbolos

Outros so frgeis, misteriosos, complexos e


resistentes a generalizaes

Alguns cdigos de sucesso acabam sendo


padronizados (ex: ASCII)
Cdigos e Codificao

19

Natureza da Informao

Cdigos de tamanho fixo e varivel

Tamanho fixo: uso de mesmo nmero de bits para


qualquer smbolo
versus
Tamanho varivel: deixar alguns smbolos serem
menores do que outros

Cdigos e Codificao

20

Natureza da Informao

Cdigos de tamanho fixo e varivel


Tamanho fixo:
Fceis de lidar: codificador e decodificador sabem com
quantos bits devem lidar
Podem ser transmitidos e interpretados paralelamente
Ex.: Vrios cabos paralelos

Tamanho varivel
Decodificador deve usar os valores dos bits para
determinar quando o smbolo comea e/ou termina
til quando alguns smbolos ocorrem com maior
frequncia que outros
Cdigos e Codificao

21

Natureza da Informao

Codificao do Texto
Pode ser interessante cdigo de tamanho
varivel
Atribui sequncias pequenas a smbolos mais
comuns
E longas para smbolos incomuns
Em mdia: menores mensagens

Cdigos e Codificao

22

Natureza da Informao

Codificao do Texto

Frequncia de letras
em Ingls
Interessante considerar
cdigos menores para:
E, T, A, O e N

e no Portugus? Qual a frequncia de letras?


Cdigos e Codificao

23

Natureza da Informao

Codificao do Texto
Cdigo de tamanho varivel:
Tomar cuidados como:
Cdigo pequeno no deve ser parte de incio de
qualquer cdigo longo
Ou decodificador no consegue distingui-los

Na prtica o benefcio nem sempre justifica a


maior complexidade do cdigo
Textos so normalmente codificados com cdigos de
tamanho fixo
ASCII

Exceo: cdigo Morse


Cdigos e Codificao

24

Natureza da Informao

Cdigo
Cdigo xx Quantidade
Quantidade de
de
Informao
Informao

Cdigos e Codificao

25

Natureza da Informao

Tamanho Mdio da Palavra-Cdigo


Admitamos que a fonte tenha um alfabeto de K
smbolos diferentes e que o k-simo smbolo sk
ocorra com probabilidade pk e que a palavracdigo atribuda a ele tenha um tamanho k
(medido em bits).
Definimos o tamanho mdio da palavra-cdigo,
do codificador de fonte, como:
K 1

L = pk l k
k =0

Cdigos e Codificao

26

Natureza da Informao

Eficincia de Codificao
Admitindo que Lmin seja o valor mnimo que L pode
assumir, a eficincia de codificao definida como:

Lmin
=
L
Mas como obter Lmin? O Teorema da Codificao de
Fonte, formulado da seguinte maneira:
Dada uma fonte discreta sem memria, com entropia
H(S), o tamanho mdio da palavra-cdigo L
correspondente a qualquer esquema de codificao de
fonte sem distoro limitado como:
H (S )
=
L
Cdigos e Codificao

27

Natureza da Informao

Densidade da Informao
A Densidade da Informao definida como a
razo entre a Quantidade de Informao e o
Espao de Cdigo
Portanto, a Densidade de Informao
equivalente Eficincia do Cdigo
Tanto a Densidade mxima de Informao e a
Eficincia mxima do Cdigo 1 (UM)

Cdigos e Codificao

28

Natureza da Informao

Compresso de Dados
Uma caracterstica comum de sinais gerados
por fontes fsicas que estas contem
quantidade significativa de redundncias.
Assim, sem que haja perda de informao,
interessante eliminar as redundncias usando o
que chamamos de compactao ou compresso
de dados, cujo objetivo maximizar a eficincia
da codificao
Para tanto, usamos os chamados cdigos de
prefixo, cdigos de Huffman e cdigos de
Lempel-Ziv.
Cdigos e Codificao

29

Natureza da Informao

Exemplo
Vamos imaginar um dado de 5 lados (D5),
S = {A, B, C, D, E} com suas respectivas
probabilidades e representaes, conforme a
tabela a seguir.

Cdigos e Codificao

30

Natureza da Informao

Exemplo
Para transmitir ou armazenar os
resultados deste dado seriam necessrios
3 bits.
log2 (5) = 2,32 bits
Vamos analisar os casos utilizando as
representaes propostas.
Cdigos e Codificao

31

Natureza da Informao

Representao A
Para a representao A, temos um
tamanho mdio do cdigo de:
1
1
1
1
1
L = 4 + 4 + 3 + 2 + 1 = 2,5 bits
8
8
4
4
4

e uma quantidade de informao de


1
1
1
1
1
H ( S ) = log 2 8 + log 2 8 + log 2 4 + log 2 4 + log 2 4 = 2, 25 bits
8
8
4
4
4

Logo, a eficincia de 0,9.


Cdigos e Codificao

32

Natureza da Informao

Representao B
Para a representao B, temos um
tamanho mdio do cdigo de:
1
1
1
1
1
L = 2 + 2 + 3 + 3 + 3 = 2, 75 bits
8
8
4
4
4

e uma entropia de
1
1
1
1
1
H ( S ) = log 2 8 + log 2 8 + log 2 4 + log 2 4 + log 2 4 = 2, 25 bits
8
8
4
4
4

Logo, a eficincia de 0,81.


Cdigos e Codificao

33

Natureza da Informao

Representao C
Para a representao C, temos um
tamanho mdio do cdigo de:
1
1
1
1
1
L = 3 + 3 + 2 + 2 + 2 = 2, 25 bits
8
8
4
4
4

e uma entropia de
1
1
1
1
1
H ( S ) = log 2 8 + log 2 8 + log 2 4 + log 2 4 + log 2 4 = 2, 25 bits
8
8
4
4
4

Logo, a eficincia de 1,0.


Cdigos e Codificao

34

Natureza da Informao

Usos
Usos da
da Codificao
Codificao

Cdigos e Codificao

35

Natureza da Informao

Cdigos de Tratamento de Erros


Cdigos de Deteco e Correo de Erros:
Existem duas formas de tratarmos um erro:
detectar e notificar o erro, ficando o receptor
responsvel pelo tratamento deste.
corrigir o erro (recuperao ao erro)

Em ambos os casos, informaes adicionais (bits


adicionais) so acrescentadas para possibilitar
que o receptor detecte ou corrija o erro.
Existem formas de informar se 2 conjuntos de bits
so iguais ou no.
Cdigos e Codificao

36

Natureza da Informao

Distncia de Cdigo de Hamming


Uma definio muito usual para diferena entre dois
cdigos a Distncia de Cdigo de Hamming, que
aponta quantos bits de um conjunto de bits dos cdigos
so diferentes um do outro.
Exemplo: o cdigo 0110 e o cdigo 1110 esto separados
pela Distncia de Hamming igual a 1.
Consequentemente, 2 cdigos que esto separados pela
distncia de Hamming igual a zero so iguais.
Para que essa medida faa sentido, os conjuntos
comparados tm que ter o mesmo nmero de bits.

Cdigos e Codificao

37

Natureza da Informao

Bits de Paridade
Qualquer cdigo possui um nmero par ou impar
de bits 1.
Paridade par: quando o nmero de bits 1 de
uma seqncia par.
Paridade impar: quando o nmero de bits 1 de
uma seqncia impar.
Para a deteco de erros adicionado um bit s
seqncias de bits chamado de bit de paridade.
Um sistema de armazenamento ou de
comunicao s pode operar com um tipo de
paridade, par ou mpar.
Cdigos e Codificao

38

Natureza da Informao

Bits de Paridade
PARIDADE PAR
P
BCD

PARIDADE IMPAR
P
BCD

0000

0000

0001

0001

0010

0010

0011

0011

0100

0100

0101

0101

0110

0110

0111

0111

1000

1000

1001

1001

Cdigos e Codificao

39

Natureza da Informao

Bits de Paridade
O bit de paridade pode ser adicionado no incio ou no fim
da sequncia do cdigo, dependendo do projeto.
Um bit de paridade s consegue detectar um nmero
impar de erros, mas no consegue detectar nmeros
pares de erros.
Exemplo: Imagine um sistema com paridade par e
transmitindo a sequncia: 0101. Com o bit de paridade
esse cdigo seria 00101.
Supondo que ocorra um erro no 3.o bit, o receptor
receber: 00001 e apontar um erro pois perceber um
nmero impar de bits 1, num sistema com paridade par.
Agora, se ocorrerem 2 erros e o receptor receber: 00011
no perceber o erro pois o numero de bits 1 ser par.
Cdigos e Codificao

40

Natureza da Informao

Cdigo Detectores de Erro

O cdigo de paridade permite a deteco


do erro, mas no corrig-lo.
O cdigo de Hamming permite, alm da
deteco de um erro, que seja possvel
especificar qual foi o bit no qual o erro
ocorreu e corrig-lo.
Cdigos e Codificao

41

Natureza da Informao

Algoritmo de Hamming
Se o nmero de bits de dados projetados for D ento
o nmero de paridade P dado por:
(1)
2P D+P+1
Exemplo: se tivermos 4 bits podemos determinar P
por tentativa e erro:
 se P = 2 temos 22 = 4 e D+P+1 = 4 + 2 + 1 = 7 e
portanto a equao acima no se satisfaz,
 se P = 3 temos 23 = 8 e D+P+1 = 4 + 3 + 1 = 8,
satisfazendo a equao acima.

Portanto so necessrios 3 bits de paridade para


proporcionar a correo de um erro em uma
sequncia de 4 bits.
Cdigos e Codificao

42

Natureza da Informao

Algoritmo de Hamming
Insero de Bits de Paridade
No exemplo anterior temos 4 bits de informao e
3 de paridade
O bit mais esquerda o bit1, o prximo o bit 2
e assim por diante.
bit1, bit2, bit3, bit4, bit5, bit6, bit7, bit8

Os bits de paridade esto colocados nas posies


correspondentes s potncias 1, 2, 4, 8,...
P1, P2, D1, P3, D2, D3, D4
Cdigos e Codificao

43

Natureza da Informao

Algoritmo de Hamming
Valor dos Bits de Paridade
Para determinar o valor dos bits de paridade, necessrio
determinar a quais outros bits o bit de paridade est
associado. Para isso montamos a tabela abaixo:
Designao dos
Bits
Posio do bits:
Numero da posio
em binrio

P1

P2

D1

P3

D2

D3

D4

001

010

011

100

101

110

111

Bits de dados Dn
Bits de Paridade Pn
Tabela de posicionamento de bits para um Cdigo Corretor de Erro de 7 bits
Cdigos e Codificao

44

Natureza da Informao

Algoritmo de Hamming
Valores de Bits e Posies
O nmero da posio do bit de paridade P2 tem 1 bit no
meio.
Devemos verificar todas as posies que tm 1 no meio
(inclusive P2).
Portanto, P2 verifica os bits das posies 2,3,6 e 7.
O bit de paridade identifica a quantidade de bits 1 nestas
posies e, dependendo se foi definido paridade par ou
impar, ele preenchido.
Esta lgica aplicada a todos os bits de paridade P
Cdigos e Codificao

45

Natureza da Informao

Algoritmo de Hamming: Gerao


Exemplo:
Determinar o cdigo de Hamming para o nmero 1001 usando
paridade par:
 Passo1: Determinar P (nmero de bits de paridade
necessrios): 2P = 23 = 8 = D+P+1 = 4+3+1 = 8. (trs bits de
paridade so suficientes).
 Passo 2: Construir a tabela com os bits de paridade
posicionados.
Designao
dos Bits:
Posio do bits:
Posio em binrio:
Bits de Dados Dn

P1

P2

D1

P3

D2

D3

D4

1
001

2
010

3
011

4
100

5
101

6
110

7
111

Bits de Paridade Pn
Cdigos e Codificao

46

Natureza da Informao

 Passo 3: Determinao dos bits de paridade (a comear pelo


menos significativo):
bit P1 verifica os bits das posies 1,3,5 e 7 e tem que ser 0 para
que o numero de 1s seja par nesse grupo,
bit P2 verifica os bits das posies 2,3,6 e 7 e tem que ser 0 para
que o numero de 1s seja par nesse grupo,
bit P3 verifica os bits das posies 4,5,6 e 7 e tem que ser 1 para
que o numero de 1s seja par nesse grupo,

 Passo 4: inserir os bits de paridade na tabela e obter o cdigo


que ser enviado: 0011001
Designao
dos Bits:
Posio do bits:
Posio em binrio:

P1

P2

D1

P3

D2

D3

D4

1
001

2
010

3
011

4
100

5
101

6
110

7
111

Bits de Dados Dn
Bits de Paridade Pn
Cdigos e Codificao

1
0

1
47

Natureza da Informao

Algoritmo de Hamming: Verificao


Para a deteco do cdigo de Hamming temos o seguinte
procedimento:
Devem ser geradas tantas verificaes quantos forem os
bits de paridade. Se forem 3 bits de paridades,sero
geradas 3 verificaes e assim sucessivamente,
 Passo 1: inicie comeando por P1.e verifique o grupo
quanto paridade correta. Se for correta coloque 0 e se
for incorreta coloque 1,
 Passo 2: Repita o passo 1 para todo grupo de paridade,
 Passo 3: O nmero obtido pelo resultado de todas as
verificaes determina a posio do bit errado. Esse o
cdigo de posio de erro e se todas as verificaes
forem corretas no h erro. A primeira verificao
gera o bit menos significativo.
Cdigos e Codificao

48

Natureza da Informao

Algoritmo de Hamming: Verificao


Exemplo: Imagine que a palavra 0011001 seja transmitida
mas o receptor receba 0010001. Como o receptor no sabe
que ocorreu um erro,ele deve verificar se ocorreu ou no.
Passo 1: desenhar a tabela de posio de bit:
 1 verificao: o bit P1 verifica as posies 1,3,5 e 7 e existem
dois 1s nesse grupo ento a paridade correta -> 0,
 2 verificao: o bit P2 verifica as posies 2,3,6 e 7 e existem
dois 1s nesse grupo ento a paridade correta -> 0,
 3 verificao: o bit P3 verifica as posies 4,5,6 e 7 e existe
um 1 nesse grupo ento a paridade incorreta -> 1

Resultado: o cdigo de posio de erro 100 e est na


posio 4 da palavra. Ele 0 e deveria ser 1 e o cdigo
corrigido 0011001
Cdigos e Codificao

49

Natureza da Informao

Algoritmo de Hamming: Verificao


Cdigo Incorreto
Designao
dos Bits:
Posio do bits:
Posio em binrio:

P1

P2

D1

P3

D2

D3

D4

1
001

2
010

3
011

4
100

5
101

6
110

7
111

Bits de Dados Dn
Bits de Paridade Pn

1
0

Cdigo Corrigido
Designao
dos Bits:
Posio do bits:
Posio em binrio:

P1

P2

D1

P3

D2

D3

D4

1
001

2
010

3
011

4
100

5
101

6
110

7
111

Bits de Dados Dn
Bits de Paridade Pn

Cdigos e Codificao

1
0

0 -> 1
50

Natureza da Informao

Cdigos de Tratamento de Erros


Como vimos, a deteco e correo de erros implica em um
aumento de nmero de bits a serem transmitidos, o que
implica em um aumento da quantidade de dados para
transmitir e armazenar.
Em algumas situaes no vivel a verificao de erros
em todas as transmisses.
Exemplo: as mensagens transmitidas na Internet pelo
protocolo IP tm no cabealho da sua mensagem um
campo para verificao de erro, o campo checksum. As
estaes e os roteadores da rede s verificam erro nos
cabealhos dessas mensagens e deixam para as aplicaes
verificarem os erros no campo de dados, quando isso for
necessrio.
Cdigos e Codificao

51

Natureza da Informao

Referncias Bibliogrficas

Simon Haykin, Sistemas de Comunicao


Analgicos e Digitais, 4.a Edio, Bookman, 2004


http://ocw.mit.edu/OcwWeb/ElectricalEngineering-and-Computer-Science/6-050JSpring2008/CourseHome/index.htm (Captulo 4)

Cdigos e Codificao

52

Você também pode gostar