> rice | adaptativo | compresión <

// Codificación Rice: compresión adaptativa de enteros con parámetro ajustable

0 caracteres
0 caracteres

>> funciones

[ADAPTATIVO]

Parámetro ajustable

Ajusta k para optimizar diferentes distribuciones de datos.

[EFICIENTE]

Datos geométricos

Óptimo para datos con distribución geométrica o exponencial.

[SENCILLO]

Codificación rápida

Operaciones simples de división y resto para alta velocidad.

>> información técnica

Cómo funciona la codificación Rice

La codificación Rice divide cada entero n por 2^k para obtener el cociente q y el resto r. El cociente se codifica en unario (q unos seguidos de un cero) y el resto en k bits binarios. Esto crea un código de longitud variable que se adapta a la distribución de los datos mediante el parámetro k.

Ejemplo de codificación 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 mayor: menos bits unarios, más bits binarios
k menor: más bits unarios, menos bits binarios

¿Por qué usar codificación Rice?

  • Se adapta a la distribución de los datos
  • Fácil de implementar
  • Codificación y decodificación rápidas
  • Ideal para datos de sensores
  • Eficiente para enteros pequeños

>> preguntas frecuentes

¿Qué es la codificación Rice?

La codificación Rice es un método de codificación entrópica de longitud variable especialmente eficiente para distribuciones geométricas. Es un caso particular de la codificación Golomb donde el divisor M se restringe a potencias de 2 (M = 2^k), lo que permite implementaciones rápidas mediante operaciones de bits.

¿Cómo elegir el parámetro k?

El valor óptimo de k depende de la distribución de tus datos. Para datos con media μ, el k óptimo ≈ log₂(μ × ln(2)). Valores pequeños de k (0–2) funcionan bien para números muy pequeños, mientras que valores mayores (4–8) son mejores para datos con valores más grandes. Usa la función de análisis para encontrar el k óptimo para tus datos.

¿Rice frente a codificación Golomb?

La codificación Rice es un subconjunto de la codificación Golomb donde M = 2^k. Esta restricción hace que Rice sea más rápida (usa desplazamientos de bits en lugar de divisiones), aunque a veces algo menos óptima. Golomb puede elegir cualquier valor de M para una mejor compresión, mientras que Rice sacrifica algo de eficiencia por velocidad.

¿Dónde se usa la codificación Rice?

La codificación Rice se utiliza ampliamente en compresión de audio sin pérdida (FLAC, ALAC), compresión de imágenes (JPEG-LS) y datos de sensores con distribuciones geométricas. Es especialmente eficaz para enteros pequeños no negativos con probabilidad decreciente exponencialmente.