> rice | adaptiv | komprimering <

// Rice-kodning – Adaptiv heltalskomprimering med justerbar parameter

0 tecken
0 tecken

>> funktioner

[ADAPTIV]

Justerbar parameter

Justera k för att optimera olika datadistributioner.

[EFFEKTIV]

Geometriska data

Optimalt för data med geometrisk eller exponentiell fördelning.

[ENKEL]

Snabb kodning

Enkla divisions- och restoperationer för hög prestanda.

>> teknisk information

Hur Rice-kodning fungerar

Rice-kodning delar varje heltal n med 2^k för att få kvot q och rest r. Kvoten kodas unärt (q ettor följt av en nolla) och resten kodas i k binära bitar. Detta skapar en kod med variabel längd som anpassar sig till datadistributionen via k-parametern.

Exempel på Rice-kodning (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

Större k: färre unära bitar, fler binära bitar
Mindre k: fler unära bitar, färre binära bitar

Varför använda Rice-kodning?

  • Anpassar sig till datadistributionen
  • Enkel att implementera
  • Snabb kodning och avkodning
  • Bra för sensordata
  • Effektiv för små heltal

>> vanliga frågor

Vad är Rice-kodning?

Rice-kodning är en entropikodningsmetod med variabel längd som är särskilt effektiv för geometriska fördelningar. Det är ett specialfall av Golomb-kodning där divisorn M begränsas till potenser av 2 (M = 2^k), vilket möjliggör snabba implementationer med bitoperationer.

Hur väljer jag k-parametern?

Det optimala k-värdet beror på datadistributionen. För data med medelvärde μ gäller ungefär k ≈ log₂(μ × ln(2)). Små k (0–2) fungerar bra för mycket små tal, medan större k (4–8) är bättre för data med större värden. Använd analysfunktionen för att hitta det optimala k för dina data.

Rice vs Golomb-kodning?

Rice-kodning är en undergrupp av Golomb-kodning där M = 2^k. Denna begränsning gör Rice snabbare (bitförskjutningar i stället för division) men ibland något mindre optimal. Golomb kan välja valfria M-värden för bättre komprimering, medan Rice byter lite effektivitet mot hastighet.

Var används Rice-kodning?

Rice-kodning används ofta i förlustfri ljudkomprimering (FLAC, ALAC), bildkomprimering (JPEG-LS) och sensordata med geometriska fördelningar. Den är särskilt effektiv för små icke-negativa heltal med exponentiellt avtagande sannolikhet.