// Exponential-Golomb – video sıkıştırmada standart değişken uzunluklu kod
H.264/AVC ve H.265/HEVC kodeklerinde kullanılır.
Farklı dağılımlar için farklı k değerleri.
İşaretli tamsayılar için yerleşik eşleme.
k mertebeli Exp-Golomb kodları, negatif olmayan n tam sayısını şu şekilde kodlar: 1) n üzerine 1 ekleyerek codeNum elde edilir, 2) 2^k’ya bölünerek bölüm q ve kalan r alınır, 3) q adet sıfır, ardından 1 ve sonra k bitlik r yazılır. k=0 için bu, Elias Gamma koduna eşittir. İşaretli tamsayılarda eşleme: n>0 → 2n-1, n≤0 → -2n.
Mertebe k=0 (standart): 0 → 1 1 → 010 2 → 011 3 → 00100 Mertebe k=1: 0 → 10 1 → 11 2 → 010 3 → 011 İşaretli mod (k=0): 0 → 1 (0’a eşlenir) 1 → 010 (1’e eşlenir) -1 → 011 (2’ye eşlenir) 2 → 00100 (3’e eşlenir)
Exponential-Golomb, H.264 ve H.265 gibi video sıkıştırma standartlarında yaygın olarak kullanılan evrensel bir değişken uzunluklu koddur. Elias Gamma kodlamasını, farklı veri dağılımlarına uyum sağlayan k parametresiyle genelleştirir.
k=0 (standart Exp-Golomb), üstel dağılıma sahip küçük tamsayılar için iyi çalışır. Daha büyük k değerleri, daha büyük sayılar veya daha düzgün dağılımlar için uygundur. Video kodekleri genellikle sözdizim elemanları için k=0, artıklar içinse uyarlanabilir k kullanır.
Exp-Golomb video için idealdir çünkü: 1) donanımda uygulaması çok basittir, 2) arama tablolarına gerek yoktur, 3) video verilerinin istatistiksel dağılımına iyi uyar, 4) hareket vektörleri ve dönüşüm katsayıları için iyi sıkıştırma sağlar.
Huffman’a göre: daha basit, tablo yok, ancak daha az optimal. Aritmetik kodlamaya göre: çok daha basit, fakat daha düşük sıkıştırma oranı. Exp-Golomb sadelik ile verimlilik arasında dengeli bir çözüm sunar ve gerçek zamanlı video kodlama için idealdir.