Codul exponențial Golomb sau codul Exp-Golomb (în) de ordinul k este un tip de cod universal , configurabil cu un număr întreg k . Acest cod este adesea utilizat în compresia de date ca codificator de entropie , de exemplu în standardul video H.264 .
Pentru a codifica un număr întreg pozitiv într-un cod exponențial-Golomb de ordinul k , se poate utiliza următoarea metodă:
Pentru k = 0 codul începe cu:
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 ...Codul exponențial-Golomb pentru k = 0 este utilizat în standardul de compresie video H.264 sau MPEG-4 AVC , în care simbolurile sunt semnate și sunt atribuite alternativ cuvântului de cod. Cu alte cuvinte, 0 este 0, +1 este 1, -1 este 2, +2 este 3 etc.
Acest instrument este utilizat pentru a codifica toți parametrii care nu corespund în mod explicit cu datele imaginii, cum ar fi tipul imaginii, vectorii de mișcare, modurile de predicție inter sau intra. Codurile utilizate sunt de lungime variabilă, dar construcția lor este stabilită conform unei logici definite de un tabel. Aceste simboluri nu au un număr finit, cu toate acestea, cu cât valoarea este mai mare, cu atât este mai mare lungimea șirului binar corespunzător. Acesta este motivul pentru care atribuim un cod aproape de zero pentru elementele sau simbolurile frecvente și un cod mai mare pentru cele care sunt mai rare. Fiecare tip de element este asociat cu un tabel specific care permite returnarea codului numeric corespunzător.
Acest cod este utilizat și în codecul video Dirac .
Codul exponențial-Golomb pentru k = 0 este identic cu codificarea gamma a aceluiași număr incrementat cu 1. Deci poate codifica zero, în timp ce codificarea gamma poate codifica numai numere strict mai mari decât zero.
Codificarea exp-Golomb diferă ușor de codificarea Golomb, care este, de asemenea, un codificator de entropie, dar nu un cod universal.