> rice | adaptativo | compressão <

// Codificação Rice – Compressão adaptativa de inteiros com parâmetro ajustável

0 caracteres
0 caracteres

>> recursos

[ADAPTATIVO]

Parâmetro ajustável

Ajuste k para otimizar diferentes distribuições de dados.

[EFICIENTE]

Dados geométricos

Ótimo para dados com distribuição geométrica ou exponencial.

[SIMPLES]

Codificação rápida

Operações simples de divisão e resto para alto desempenho.

>> detalhes técnicos

Como funciona a codificação Rice

A codificação Rice divide cada inteiro n por 2^k para obter o quociente q e o resto r. O quociente é codificado em unário (q uns seguidos de um zero) e o resto em k bits binários. Isso cria um código de comprimento variável que se adapta à distribuição dos dados por meio do parâmetro k.

Exemplo de codificação Rice (k=2)

k=2, M=2^2=4

0 → q=0, r=0 → 0|00 → 000
1 → q=0, r=1 → 0|01 → 001
2 → q=0, r=2 → 0|10 → 010
3 → q=0, r=3 → 0|11 → 011
4 → q=1, r=0 → 10|00 → 1000
5 → q=1, r=1 → 10|01 → 1001
6 → q=1, r=2 → 10|10 → 1010
7 → q=1, r=3 → 10|11 → 1011
8 → q=2, r=0 → 110|00 → 11000

k maior: menos bits unários, mais bits binários
k menor: mais bits unários, menos bits binários

Por que usar a codificação Rice?

  • Adapta-se à distribuição dos dados
  • Fácil de implementar
  • Codificação e decodificação rápidas
  • Ótimo para dados de sensores
  • Eficiente para inteiros pequenos

>> perguntas frequentes

O que é a codificação Rice?

A codificação Rice é um método de codificação entrópica de comprimento variável particularmente eficiente para distribuições geométricas. É um caso especial da codificação Golomb em que o divisor M é restrito a potências de 2 (M = 2^k), permitindo implementações rápidas com operações de bits.

Como escolher o parâmetro k?

O valor ideal de k depende da distribuição dos seus dados. Para dados com média μ, o k ideal ≈ log₂(μ × ln(2)). Valores pequenos de k (0–2) funcionam bem para números muito pequenos, enquanto valores maiores (4–8) são melhores para dados com valores mais altos. Use a função de análise para encontrar o k ideal para seus dados.

Rice vs codificação Golomb?

A codificação Rice é um subconjunto da codificação Golomb em que M = 2^k. Essa restrição torna Rice mais rápida (deslocamentos de bits em vez de divisões), embora às vezes um pouco menos eficiente. Golomb pode escolher qualquer valor de M para melhor compressão, enquanto Rice troca um pouco de eficiência por velocidade.

Onde a codificação Rice é usada?

A codificação Rice é amplamente utilizada na compressão de áudio sem perdas (FLAC, ALAC), na compressão de imagens (JPEG-LS) e em dados de sensores com distribuições geométricas. É particularmente eficaz para inteiros pequenos não negativos com probabilidade que decai exponencialmente.