> rice | adattivo | compressione <
// Codifica Rice – Compressione adattiva di interi con parametro regolabile
>> funzioni
Parametro regolabile
Regola k per ottimizzare diverse distribuzioni di dati.
Dati geometrici
Ottimale per dati con distribuzione geometrica o esponenziale.
Codifica veloce
Operazioni semplici di divisione e resto per alte prestazioni.
>> dettagli tecnici
Come funziona la codifica Rice
La codifica Rice divide ogni intero n per 2^k per ottenere quoziente q e resto r. Il quoziente è codificato in modo unario (q uno seguiti da uno zero) e il resto in k bit binari. Questo crea un codice a lunghezza variabile che si adatta alla distribuzione dei dati attraverso il parametro k.
Esempio di codifica 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 maggiore: meno bit unari, più bit binari k minore: più bit unari, meno bit binari
Perché usare la codifica Rice?
- Si adatta alla distribuzione dei dati
- Facile da implementare
- Codifica e decodifica veloci
- Ottima per dati da sensori
- Efficiente per piccoli interi
>> domande frequenti
Che cos'è la codifica Rice?
La codifica Rice è un metodo di codifica entropica a lunghezza variabile particolarmente efficiente per distribuzioni geometriche. È un caso particolare della codifica Golomb in cui il divisore M è limitato alle potenze di 2 (M = 2^k), rendendo l'implementazione più veloce tramite operazioni sui bit.
Come scegliere il parametro k?
Il valore ottimale di k dipende dalla distribuzione dei dati. Per dati con media μ, k ottimale ≈ log₂(μ × ln(2)). Valori piccoli di k (0–2) funzionano bene per numeri molto piccoli, mentre valori più grandi (4–8) sono migliori per dati con valori più elevati. Usa la funzione di analisi per trovare il k ottimale per i tuoi dati.
Rice vs codifica Golomb?
La codifica Rice è un sottoinsieme della codifica Golomb in cui M = 2^k. Questa restrizione rende Rice più veloce (shift di bit invece di divisioni), ma talvolta leggermente meno ottimale. Golomb può scegliere qualsiasi valore di M per una migliore compressione, mentre Rice scambia un po' di efficienza con maggiore velocità.
Dove viene utilizzata la codifica Rice?
La codifica Rice è ampiamente utilizzata nella compressione audio lossless (FLAC, ALAC), nella compressione di immagini (JPEG-LS) e nei dati provenienti da sensori con distribuzioni geometriche. È particolarmente efficace per piccoli interi non negativi con probabilità decrescente esponenzialmente.