> rice | adaptatif | compression <
// Codage Rice – Compression adaptative d'entiers avec paramètre ajustable
>> fonctionnalités
Paramètre ajustable
Ajustez k pour optimiser différentes distributions de données.
Données géométriques
Optimal pour des données à distribution géométrique ou exponentielle.
Codage rapide
Opérations simples de division et de reste pour de hautes performances.
>> informations techniques
Comment fonctionne le codage Rice
Le codage Rice divise chaque entier n par 2^k pour obtenir le quotient q et le reste r. Le quotient est encodé en unaire (q uns suivis d'un zéro) et le reste en k bits binaires. Cela crée un code de longueur variable qui s'adapte à la distribution des données via le paramètre k.
Exemple de codage 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 plus grand : moins de bits unaires, plus de bits binaires k plus petit : plus de bits unaires, moins de bits binaires
Pourquoi utiliser le codage Rice ?
- S'adapte à la distribution des données
- Facile à implémenter
- Encodage/décodage rapides
- Idéal pour les données de capteurs
- Efficace pour les petits entiers
>> questions fréquentes
Qu'est-ce que le codage Rice ?
Le codage Rice est une méthode de codage entropique à longueur variable particulièrement efficace pour les distributions géométriques. C'est un cas particulier du codage Golomb où le diviseur M est restreint aux puissances de 2 (M = 2^k), ce qui permet des implémentations rapides basées sur les décalages de bits.
Comment choisir le paramètre k ?
La valeur optimale de k dépend de la distribution de vos données. Pour des données de moyenne μ, k optimal ≈ log₂(μ × ln(2)). Les petits k (0–2) fonctionnent bien pour des nombres très petits, tandis que les k plus grands (4–8) conviennent mieux aux valeurs plus élevées. Utilisez la fonction d'analyse pour trouver le k optimal pour vos données.
Rice vs codage Golomb ?
Le codage Rice est un sous-ensemble du codage Golomb où M = 2^k. Cette restriction rend Rice plus rapide (décalages de bits au lieu de divisions) mais parfois légèrement moins optimal. Golomb peut choisir n'importe quelle valeur de M pour une meilleure compression, tandis que Rice échange une partie de l'efficacité contre de la vitesse.
Où le codage Rice est-il utilisé ?
Le codage Rice est largement utilisé dans la compression audio sans perte (FLAC, ALAC), la compression d'images (JPEG-LS) et les données de capteurs avec des distributions géométriques. Il est particulièrement efficace pour les petits entiers non négatifs à probabilité décroissante exponentiellement.