// Exponential-Golomb – standard kode med variabel lengde for videokomprimering
Brukes i H.264/AVC- og H.265/HEVC-kodeker.
Forskjellige k-verdier for ulike fordelinger.
Innebygd mapping for heltall med fortegn.
Exp-Golomb-koder av orden k koder et ikke-negativt heltall n slik: 1) Legg til 1 til n for å få codeNum, 2) Del på 2^k for å få kvotient q og rest r, 3) Skriv q nuller, deretter 1 og så r på k biter. For k=0 er dette ekvivalent med Elias Gamma. For heltall med fortegn brukes 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 Fortegnsmodus (k=0): 0 → 1 (tilordnes 0) 1 → 010 (tilordnes 1) -1 → 011 (tilordnes 2) 2 → 00100 (tilordnes 3)
Exponential-Golomb er en universell variabel lengdekode som brukes mye i videokomprimeringsstandarder som H.264 og H.265. Den generaliserer Elias Gamma-koding med en parameter k som gjør det mulig å tilpasse seg ulike datafordelinger.
k=0 (standard Exp-Golomb) fungerer godt for små heltall med omtrent eksponentiell fordeling. Høyere k-verdier er bedre for større tall eller mer jevne fordelinger. Videokodeker bruker ofte k=0 for syntakselementer og adaptiv k for residualer.
Exp-Golomb er ideelt for video fordi: 1) det er lett å implementere i maskinvare, 2) ingen oppslagstabeller kreves, 3) det passer godt til den statistiske fordelingen av videodata, 4) det gir god kompresjon for bevegelsesvektorer og transformasjonskoeffisienter.
Sammenlignet med Huffman: enklere, uten tabeller, men mindre optimalt. Sammenlignet med aritmetisk koding: mye enklere, men med lavere kompresjon. Exp-Golomb gir et godt kompromiss mellom enkelhet og effektivitet, perfekt for videokoding i sanntid.