> exp | golomb | h264 <
// Exponential-Golomb – standard kode med variabel lengde for videokomprimering
Videostandard
Brukes i H.264/AVC- og H.265/HEVC-kodeker.
Flere ordener
Forskjellige k-verdier for ulike fordelinger.
Støtte for fortegn
Innebygd mapping for heltall med fortegn.
>> tekniske detaljer
Hvordan Exp-Golomb-koding fungerer:
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.
Eksempler på Exp-Golomb:
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)
Hvorfor bruke Exp-Golomb:
- ▸H.264/H.265-syntakselementer
- ▸Koding av bevegelsesvektorer
- ▸Koeffisientnivåer
- ▸Enkel maskinvareimplementering
- ▸Tilpasning til datafordelingen
>> ofte stilte spørsmål
Hva er Exp-Golomb-koding?
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.
Hvordan velger jeg orden k?
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.
Hvorfor brukes det i video?
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.
Exp-Golomb sammenlignet med andre koder?
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.