Il codice esponenziale-Golomb o codice Exp-Golomb (in) di ordine k è un tipo di codice universale , configurabile da un intero k . Questo codice viene spesso utilizzato nella compressione dei dati come codificatore entropico , ad esempio nello standard video H.264 .
Per codificare un numero intero positivo in un codice esponenziale-Golomb di ordine k , può utilizzare il seguente metodo:
Per k = 0 il codice inizia con:
0 → 1 → 1 1 → 10 → 010 2 → 11 → 011 3 → 100 → 00100 4 → 101 → 00101 5 → 110 → 00110 6 → 111 → 00111 7 → 1000 → 0001000 8 → 1001 → 0001001 ...Il codice esponenziale-Golomb per k = 0 viene utilizzato nello standard di compressione video H.264 o MPEG-4 AVC , in cui i simboli sono firmati e vengono alternativamente assegnati al codeword. In altre parole, 0 è 0, +1 è 1, -1 è 2, +2 è 3 ecc.
Questo strumento viene utilizzato per codificare tutti i parametri che non corrispondono esplicitamente ai dati dell'immagine come il tipo di immagine, i vettori di movimento, le modalità di predizione inter o intra. I codici utilizzati sono di lunghezza variabile ma la loro costruzione è stabilita secondo una logica definita da una tabella. Questi simboli non sono in numero finito, tuttavia maggiore è il valore, maggiore è la lunghezza della stringa binaria corrispondente. Questo è il motivo per cui assegniamo un codice vicino allo zero per elementi o simboli frequenti e un codice più grande per quelli più rari. Ogni tipo di elemento è associato ad una specifica tabella che permette di restituire il codice numerico corrispondente.
Questo codice viene utilizzato anche nel codec video Dirac .
Il codice esponenziale-Golomb per k = 0 è identico alla codifica gamma dello stesso numero incrementato di 1. Quindi può codificare zero, mentre la codifica gamma può codificare solo numeri strettamente maggiori di zero.
La codifica exp-Golomb differisce leggermente dalla codifica Golomb che è anche un codificatore entropico ma non un codice universale.