// Exponential-Golomb – standard variabel længdekode til videokomprimering
Bruges i H.264/AVC- og H.265/HEVC-codecs.
Forskellige k-værdier til forskellige fordelinger.
Indbygget mapping til heltal med fortegn.
Exp-Golomb-koder af orden k koder et ikke-negativt heltal n således: 1) Læg 1 til n for at få codeNum, 2) Del med 2^k for at få kvotient q og rest r, 3) Skriv q nuller, derefter 1 og til sidst r på k bit. For k=0 svarer dette til Elias Gamma. For tal med fortegn bruges mappingen: n>0 → 2n-1, n≤0 → -2n.
Orden k=0 (standard): 0 → 1 1 → 010 2 → 011 3 → 00100 Orden k=1: 0 → 10 1 → 11 2 → 010 3 → 011 Fortegnstilstand (k=0): 0 → 1 (afbildes til 0) 1 → 010 (afbildes til 1) -1 → 011 (afbildes til 2) 2 → 00100 (afbildes til 3)
Exponential-Golomb er en universel variabel længdekode, der bruges bredt i videokomprimeringsstandarder som H.264 og H.265. Den generaliserer Elias Gamma-kodning med en parameter k, der gør det muligt at tilpasse sig forskellige datadistributioner.
k=0 (standard Exp-Golomb) fungerer godt for små heltal med omtrent eksponentiel fordeling. Højere k-værdier er bedre for større tal eller mere jævne fordelinger. Video-codecs bruger ofte k=0 til syntakselementer og adaptiv k til residualer.
Exp-Golomb er ideelt til video, fordi: 1) det er let at implementere i hardware, 2) kræver ingen opslagstabeller, 3) passer godt til den statistiske fordeling af videodata, 4) giver god kompression af bevægelsesvektorer og transformkoefficienter.
Sammenlignet med Huffman: enklere, uden tabeller, men mindre optimalt. Sammenlignet med aritmetisk kodning: meget enklere, men med lavere kompressionsgrad. Exp-Golomb giver en god balance mellem enkelhed og effektivitet og er perfekt til video i realtid.