// Exponential-Golomb – codice a lunghezza variabile standard nella compressione video
Utilizzato nei codec H.264/AVC e H.265/HEVC.
Diversi valori di k per diverse distribuzioni.
Mappatura integrata per interi con segno.
I codici Exp-Golomb di ordine k codificano un intero non negativo n così: 1) Aggiungi 1 a n per ottenere codeNum, 2) Dividi per 2^k per ottenere quoziente q e resto r, 3) Scrivi q zeri, poi 1 e infine r in k bit. Per k=0 è equivalente a Elias Gamma. Per gli interi con segno, la mappatura è: n>0 → 2n-1, n≤0 → -2n.
Ordine k=0 (standard): 0 → 1 1 → 010 2 → 011 3 → 00100 Ordine k=1: 0 → 10 1 → 11 2 → 010 3 → 011 Modalità con segno (k=0): 0 → 1 (mappa a 0) 1 → 010 (mappa a 1) -1 → 011 (mappa a 2) 2 → 00100 (mappa a 3)
La codifica Exponential-Golomb è un codice universale a lunghezza variabile usato estensivamente negli standard di compressione video come H.264 e H.265. Generalizza la codifica Elias Gamma con un parametro k che consente di adattarsi a diverse distribuzioni di dati.
k=0 (Exp-Golomb standard) funziona bene per interi piccoli con distribuzione approssimativamente esponenziale. Valori di k piĂą alti sono migliori per interi grandi o distribuzioni piĂą uniformi. I codec video usano spesso k=0 per gli elementi di sintassi e un k adattivo per i residui.
Exp-Golomb è ideale per il video perché: 1) è semplice da implementare in hardware, 2) non richiede tabelle di lookup, 3) si adatta bene alla distribuzione statistica dei dati video, 4) offre una buona compressione per i vettori di movimento e i coefficienti di trasformata.
Rispetto a Huffman: piĂą semplice, senza tabelle, ma meno ottimale. Rispetto alla codifica aritmetica: molto piĂą semplice, ma con compressione inferiore. Exp-Golomb rappresenta un buon compromesso tra semplicitĂ ed efficienza, perfetto per la codifica video in tempo reale.