Yazan : Şadi Evren ŞEKER

Veri sıkıştırmada veya verinin ikilik tabanda gösterilmesinde kullanılan bir algoritmadır. Basit bir çevirim fonksiyonu olarak da düşünülebilir. Bu yazı kapsamında birkça farklı elias kodu (elias code) şekli anlatılacaktır.

Elias-Υ Kod (Elias – Υ  Code): Elias upsilon kodlaması olarak okunur.

İki formül bu kodlama için gereklidir.

kd = taban(log2 k)

kr = kd – 2 log2 k
Yukarıdaki formülde k değeri, çevirimini istediğimiz değerdir. Elias-Upsilon kodlaması ise bu değerlerden ilkinin tekil kodlaması (unary coding) ile ikincisinin ikli kodlaması (binary coding) birleşimidir (yan yana yazılması, üleştirilmesi)

Örnek olarak bazı sayıların çevirimleri aşağıda verilmiştir:

k kd kr Elias-Upslion
1 0 0 0
2 1 0 10 0
15 3 7 1110 111
255 7 127 11111110 1111111
1023 9 511 1111111110 111111111

Yukarıdaki tabloda görüldüğü üzere sayılar büyüdükçe kodlama uzunluğu da değişmektedir.

Elias-δ  Kodu (Elias-δ   Code) : Elias-Delta kodlama olarak okunabilir.

Yukarıda anlatılan elias-upsilon kodlamasını daha az bit ile gösterebilmek için geliştirilmiştir. Basitçe elias-upsilon kodlaması yaklaşık 2 log 2( k) kadar bit gerektirmektedir. Bu bit sayısını azaltmak için elias-delta kodlaması kd ve kr hesaplamalarına ilave olarak iki değer daha hesaplar.

kdd = taban(log2(kd + 1))

kdr = kd – 2 log2(kd + 1))
Görüldüğü üzere aslında elias-delta kodlamasında yapılan işlem, elias-upsilon kodlamasında bulunan kd değerini yeniden aynı formüllere koymak ve kd üzerinden kdd ve kdr değerlerini hesaplamaktır. Ardından bulunan kdd kdr ve kr değerleri birleştirilerek elias-delta kodu sonucu bulunur.

Örnek bazı saylar aşağıda verilmiştir:

k kd kr kdd kdr Elias-Delta
1 0 0 0 0 0
2 1 0 1 0 10 0 0
15 3 7 2 0 110 00 111
255 7 127 3 0 1110 000 1111111
1023 9 511 3 2 1110 010 111111111

Yukarıda görüldüğü üzere genel olarak sayılar büyüdükçe elias-upsilon kodlamasına göre daha az bit gerekmektedir. düşük sayılarda daha fazla bit gerektiği görülmekte ve biraz da olsa işlem karmaşıklığı artmaktadır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir