Códigos de Golomb
De GirinoWiki
Os códigos de Golomb, ou ainda a codificação de Golomb, é um conjunto de códigos livres de prefixo que podem ser utilizados na compressão de dados em substituição ao código de huffman, apresentando resultados ótimos para determinadas distribuições de probabilidade dos símbolos codificados. O método foi desenvolvido por Solomon W. Golomb em 1966[1].
Os códigos de Golomb se aplicam a todo número n inteiro e não negativo, e dependem de um parâmetro b que deve ser previamente computado para que o código seja adequado aos dados. Desse parâmetro depreendemos mais duas grandezas q e r:
das quais o código será construído. Da grandeza q produzimos o prefixo, que será q + 1 codificado em unário, enquanto a segunda parte será codificada com
bits pra os menores valores e
bits para os maiores valores. Assim, para b = 3 temos 1, 2 e 3 como os valores possíveis de r, que serão codificados como 0, 10 e 11 (0 tem
bits e 10 e 11 têm ambos
bits). Para b = 5 teremos os valores 00, 01, 100, 101 e 110. A tabela abaixo ilustra os códigos de Golomb para b = 3 e b = 5:
| n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| b = 3 | 0/0 | 0/10 | 0/11 | 10/0 | 10/10 | 10/11 | 110/0 | 110/10 | 110/11 | 1110/0 |
| b = 5 | 0/00 | 0/01 | 0/100 | 0/101 | 10/110 | 10/00 | 10/01 | 10/100 | 10/101 | 110/110 |
Com os dados apropriados, os códigos de Golomb podem ser mais fáceis de gerar e tão eficientes quanto os códigos de Huffmann. Pode ser demonstrado que para dados onde a probabilidade de cada símbolo n respeita a fórmula: P(n) = (1 − p)n − 1p para
o código de Golomb será ótimo se b for escolhido tal que
[editar] Aplicações
O padrão JPEG-LS de compressão de imagens sem perdas utiliza os códigos de Golomb para representar os valores de diferença entre as previsões e os valores reais dos pixels.
[editar] Notas e referências
- ↑ Golomb, S. W. (1966). "Run-Length Encodings". IEEE Transactions on Information Theory IT-12(3): 399-401. in SALOMON, David. Data Compression: The Complete Reference. 2.ed. Nova Iorque: Springer, 2000. ISBN 0-387-95045-1
- ↑ SALOMON, David. Data Compression: The Complete Reference. 2.ed. Nova Iorque: Springer, 2000. ISBN 0-387-95045-1 páginas 53 e 54.
[editar] Bibliografia
- SALOMON, David. Data Compression: The Complete Reference. 2.ed. Nova Iorque: Springer, 2000. ISBN 0-387-95045-1






