> exp | golomb | h264 <
// Exponential-Golomb – standardkod med variabel längd för videokomprimering
Videostandard
Används i H.264/AVC- och H.265/HEVC-codecs.
Flera ordningar
Olika k-värden för olika fördelningar.
Stöd för tecken
Inbyggd avbildning för heltal med tecken.
>> teknisk information
Hur Exp-Golomb-kodning fungerar:
Exp-Golomb-koder av ordning k kodar ett icke-negativt heltal n så här: 1) Lägg till 1 till n för att få codeNum, 2) Dela med 2^k för att få kvot q och rest r, 3) Skriv q nollor, sedan 1 och sedan r på k bitar. För k=0 är detta likvärdigt med Elias Gamma. För heltal med tecken används avbildningen: n>0 → 2n-1, n≤0 → -2n.
Exempel på Exp-Golomb:
Ordning k=0 (standard): 0 → 1 1 → 010 2 → 011 3 → 00100 Ordning k=1: 0 → 10 1 → 11 2 → 010 3 → 011 Teckenläge (k=0): 0 → 1 (avbildas till 0) 1 → 010 (avbildas till 1) -1 → 011 (avbildas till 2) 2 → 00100 (avbildas till 3)
Varför använda Exp-Golomb:
- ▸H.264/H.265-syntaxelement
- ▸Kodning av rörelsevektorer
- ▸Kofficientnivåer
- ▸Enkel hårdvaruimplementering
- ▸Anpassning till datafördelningen
>> vanliga frågor
Vad är Exp-Golomb-kodning?
Exponential-Golomb är en universell kod med variabel längd som används i stor utsträckning i videokomprimeringsstandarder som H.264 och H.265. Den generaliserar Elias Gamma-kodning med en parameter k som gör det möjligt att anpassa sig till olika datafördelningar.
Hur väljer jag ordning k?
k=0 (standard Exp-Golomb) fungerar bra för små heltal med ungefär exponentiell fördelning. Högre k-värden är bättre för större tal eller mer jämna fördelningar. Videocodecs använder ofta k=0 för syntaxelement och adaptivt k för residualer.
Varför används den i video?
Exp-Golomb är idealisk för video eftersom: 1) den är enkel att implementera i hårdvara, 2) inga uppslagstabeller krävs, 3) den passar bra till den statistiska fördelningen av videodata, 4) den ger bra kompression för rörelsevektorer och transformkoefficienter.
Exp-Golomb jämfört med andra koder?
Jämfört med Huffman: enklare, utan tabeller, men mindre optimal. Jämfört med aritmetisk kodning: mycket enklare, men med lägre kompression. Exp-Golomb ger en bra balans mellan enkelhet och effektivitet och är perfekt för videokodning i realtid.