Escolar Documentos
Profissional Documentos
Cultura Documentos
P () =
n
N
EXEMPLO
2. o clculo dos limites do intervalo corrente para men- No nal deste processo, emitimos o valor de low na sada,
sagens genricas exige aritmtica de altssima preci- que representa os ltimos dgitos do nosso cdigo aritmso;
tico (os outros dgitos j foram emitidos durante o processo).
Entretanto a soluo para tal problema relativamente
simples. Um codicador aritmtico prtico usa apenas de 2.1 Underow
aritmtica inteira para simular a aritmtica de nmeros
reais. Para isso ele trabalha da seguinte maneira:
Nessa abordagem temos ainda um problema:
Denem-se dois valores que chamaremos de high e low
O que acontece se nosso intervalo se aproxima cada
que representam o intervalo atual. No incio esse intervez mais, mas o ltimo digito no se torna o mesmo?
valo entre [0, 1) . Entretanto estamos trabalhando apePor exemplo,
nas com inteiros, de preciso nita. Ento vamos considerar que high e low so apenas os primeiros dgitos
aps da vrgula no nosso intervalo. Sabemos tambm que low = 4999 high = 5000
0, 999... equivalente a 1 [1] . Ento podemos representar
Nessa situao apenas se a probabilidade dor prximo
(considerando base decimal e preciso de 4 dgitos):
smbolo for 100% que conseguimos emitir um dgito
high = 9999 low = 0000
na sada. Entretanto, podemos observar que quando essa
Representando nosso intervalo inicial. Para cada carac- situao acontece temos:
tere lido, devemos estreitar esse intervalo proporcionalmente a probabilidade do caractere. Assim teremos a
cada passada:
3
Baseado nesse quadro podemos executar os passos da codicao. O quadro abaixo representa a codicao de
cada letra. Quando algum dgito produzido na sada,
estes dgitos so indicados na ltima coluna.
Temos na sada os dgitos 2493469, que acrescidos dos
dgitos de low (podemos ignorar os zeros no nal) se torna
249346946. Esse nosso cdigo aritmtico para a frase
inicial. Esse nmero pode ser expresso em 28 bits. A
frase inicial tem 13 caracteres, que podem ser expressos
com 3 bits cada, totalizando 39 bits. Com a compresso
aritmtica economizamos 11 bits.
Podemos reduzir ainda mais esse valor se repararmos que
o nmero 5000 ca entre os intervalos de low e high nais, economizando assim mais um dgito na codicao:
249346946. Em binrio temos agora 25 bits. Isso representa um bit a menos que a codicao de Human da
mesma cadeia, mostrando que a codicao aritmtica
a que mais aproxima a entropia da cadeia de entrada.
Notas e Referncias
[1] Para uma prova dessa armativa veja SALOMON, David. Data Compression: The Complete Reference. 2 ed.
Nova Iorque: Springer, 2000. ISBN 0-387-95045-1 ou
qualquer livro de Clculo diferencial.
[2] A probabilidade cumulativa de ocorrncia de um caractere calculada ordenando-se os caracteres e somando a
probabilidade de ocorrncia de cada um dos caracteres
anteriores a ele. O intervalo de cada caractere inicia-se na
soma de todos os anteriores e termina no inicio da probabilidade cumulativa do prximo caractere na ordenao.
Bibliograa
(em ingls) SALOMON, David. Data Compression: The Complete Reference. 2 ed. Nova Iorque:
Springer, 2000. ISBN 0-387-95045-1
Ver tambm
Codicao de Human
Compresso sem perda de dados
7.1
Texto
Codicao aritmtica Fonte: http://pt.wikipedia.org/wiki/Codifica%C3%A7%C3%A3o_aritm%C3%A9tica?oldid=37359573 Contribuidores: Rnbastos, Ziguratt, Chobot, YurikBot, Salgueiro, He7d3r, Girino, Thijs!bot, Daimore, BotMultichill, Joaosilvakle, D'ohBot,
Ariel C.M.K., Addbot e Annimo: 5
7.2
Imagens
Ficheiro:Nuvola_apps_edu_mathematics-p.svg Fonte:
http://upload.wikimedia.org/wikipedia/commons/c/c2/Nuvola_apps_edu_
mathematics-p.svg Licena: GPL Contribuidores: Derivative of Image:Nuvola apps edu mathematics.png created by self Artista original:
David Vignoni (original icon); Flamurai (SVG convertion)
Ficheiro:Wikitext.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/c/ce/Wikitext.svg Licena: Public domain Contribuidores: Obra do prprio Artista original: Anomie
7.3
Licena