Site saati: 07 Eyl Sal, 2010 01:38

  En Popüler Makaleler - En Çok Oy Alan Makaleler - Son Makaleler

Yazar: Seyhan Agaoglu Tarih: 11 Nis Çar, 2007 16:25 Gösterim 1539
Açıklama: Görüntü sıkıştırma, JPEG, DCT
Kategori: Haberleşme Ana Bilim Dalı Tip: Teorik Bilgi
Yazara ait makale sayısı: 4
Yazar tarafından gönderilen tüm makaleleri bul

Ayrık Kosinüs Dönüşümüne Dayalı Görüntü Sıkıştırma

İçerik
1 - Özet
2 - Giriş
3 - Sayısal Görüntü Sıkıştırma Standartları
4 - Ayrık Kosinüs Dönüşümü (DCT)
5 - DCT'ye dayalı görüntü sıkıştırma (JPEG)
6 - Kaynakça
DCT'ye dayalı görüntü sıkıştırma (JPEG)
JPEG İngilizce "Joint Photographic Experts Group" (Ortak Fotogrofik Uzman Grubu) cümleciğinin kısaltmasıdır. Kuantalanmış DCT katsayıları 11 bit ile sınırlandırılırken temel yada daha doğru bir ifade ile ardışıl temel sistemlerde giriş ve çıkışlardaki veri doğruluğu 8 bit ile sınırlandırılmıştır. Sıkıştırma işlemi ardı ardına uygulanan üç adımdan oluşmaktadır :
    - Sayısal görüntünün 8 x 8 boyutunda bloklara ayrılıp her bir bloğun iki boyutlu (2D) ayrık kosinüs dönüşümünün (DCT) hesaplanması
    - 2D DCT sonucundan elde edilen katsayıların kuantalanması
    - Kuantalanmış katsayıların her biri için değişken uzunlukta bir kod oluşturulması
Birinci adımda görüntü soldan sağa ve yukarıdan aşağıya doğru olmak üzere 8 x 8 piksel boyutunda bloklara bölünür. Her bir 8 x 8 blok 64 piksele karşı gelmektedir. Her bir pikselin grilik seviyesi görüntüdeki maksimum grilik seviyesini belirtmek üzere piksel değerlerinden değerinin çıkartılmasıyla kaydırılır. Bu işlem Tablo 1 ve Tablo 2'de açıklanmıştır. Tablo 1 orijinal 8 x 8 bloğu ve Tablo 2'de orijinal bloktaki her bir piksel değerinden 128 çıkartılarak elde edilen kaydırılmış 8 x 8 bloğu göstermektedir.


Tablo 1 256 veya 28 grilik seviyesine sahip orijinal 8 x 8 blok (Grilik seviyesi değerleri, (0 , +255) değerleri arasında)


Tablo 2 Her bir piksel değerinden veya 128 çıkartılarak elde edilen 8 x 8 blok (Grilik seviyesi değerleri (128, +127) değerleri arasında)


İkinci adımda piksel değerleri kaydırılmış her bir 8 x 8 bloğun 2D Ayrık Kosinüs dönüşümü (DCT) hesaplanıp bulunan katsayılar kuantalanır. Tablo 2.2'de verilen 8 x 8 bloğun 2D DCT'si hesaplandıktan sonra elde edilen 8 x 8 blok Tablo 3'te belirtilmiştir.


Tablo 3 Tablo 2'de verilen 8 x 8 bloğa 2D DCT işleminin uygulanması sonucu elde edilen 8 x 8 2D DCT katsayıları


2D Ayrık kosinüs dönüşümü (DCT) hesaplanmış 8 x 8 bloğun her bir elemanı Şekil 2'de gösterilen kuantalanma matrisi aracılığıyla kuantalanır.



(a)

(b)

Şekil 2 (a) Kuantalama eğrisi, (b) Tipik bir JPEG kuantalama matrisi


Kuantalama işlemi matematiksel olarak

(1.6)


denklemiyle ifade edilir. Burada kuantalanmış değeri, kuantalama matrisindeki bir değeri ifade etmektedir. Örneğin, Tablo 3'teki DC katsayı 415'e (Tablo 3'te 1. satır ve 1. sütundaki sayı) kuantalama işlemi uygulanırsa




elde edilir. Tablo 3'teki tüm değerler bu şekilde kuantalandığında Tablo 4'te verilen kuantalanmış 2D DCT katsayıları bulunur.


Tablo 4 Kuantalanmış 2D DCT katsayıları


Tablo 4 dikkatli incelendiğinde, 2D DCT ve kuantalanma işlemi sonucunda özellikle yüksek frekans bölgesindeki çoğu katsayının 0 olduğu görülmektedir. Sıfırdan farklı katsayılar düşük frekans bölgesinde (matrisin sol üst köşesinde) yoğunlaşmıştır. Diğer bir deyişle 2D DCT sayısal görüntünün önemli frekans bileşenlerini düşük frekans bölgesinde yoğunlaştırmaktadır. Bu işlem Şekil 3'te belirtilmiştir.



Şekil 3 2D DCT sonucunda önemli frekans bileşenleri düşük frekans bölgesinde yoğunlaşır


Şekil 3 2D DCT sonucunda önemli frekans bileşenleri düşük frekans bölgesinde yoğunlaşır. Son adımda sadece sıfırdan farklı katsayıları kodlamak amacıyla 8 x 8 kuantalanmış blok Şekil 4'te gösterilen zigzag taramaya tabi tutularak katsayılar büyükten küçüğe doğru sıralanır.



Şekil 4 Zigzag tarama


Tablo 4'te gösterilen iki boyutlu dizi zigzag tarama sonucunda aşağıdaki katsayı dizisine dönüştürülür.

Buradaki EOB bloğun bittiğini göstermektedir. Zigzag tarama yöntemiyle sıralanmış katsayılar için JPEG kodlama yapısı mevcut 8 x 8 bloğun DC katsayısı ile bir önceki kodlanmış 8 x 8 bloğun DC katsayıları arasındaki farkın hesaplanmasıyla başlar. Burada bir önceki kodlanmış 8 x 8 bloğun DC değerinin -17 olduğunu kabul edelim. Bu durumda aradaki fark [-26-(-17)] = -9 olacaktır. -9 karşı gelen DC fark kategorisi 4'tür [7]. Huffman fark tablosunda kategori 4'e uygun temel kod 101'dir (3 bit) [7]. Yine aynı tabloya göre kategori 4 için kodlanmış katsayının ifade edileceği toplam bit sayısı 7'dir. Geriye kalan bu 4 bitin değeri ise fark değerinin en az anlamlı bitlerinden elde edilir. Eğer hesaplanan fark pozitif bir sayı ise bu sayının en az anlamlı 4 biti direkt olarak yazılır. Hesaplanan fark negatif bir sayı ise farkın en az anlamlı 4 bitinden 1 çıkartılır. Bizim örneğimizde fark -9 olduğu için geriye kalan 4 bit (0111) -1 yani 0110 olacaktır. Böylece DC katsayı için kodlanmış kelime 1010110 olarak elde edilir. Sıfırdan farklı AC katsayılar da JPEG AC katsayısı kod tablosu kullanılarak kodlanır [7]. AC katsayılar ile DC katsayıların kodlanması arasında bir fark vardır. Her bir AC katsayısı için kod kelimesi AC katsayının kendisinden önce gelen sıfır değerli katsayıların sayısına bağlı olarak üretilir. Örneğin sıfırdan farklı ilk AC katsayısı -3 0100 şeklinde kodlanır. Kodlama yapılırken sıfır değerli katsayılar dikkate alınmaz ve hemen ondan sonra gelen sıfırdan farklı ilk AC katsayısı dikkate alınır. Örneğin yukarıdaki tek boyutlu dizide 14. katsayı sıfır değerlidir. O yüzden bu katsayı atlanır ve hemen arkasından gelen değeri 2 olan AC katsayısı dikkate alınır. JPEG AC katsayısı kategori tablosunda 2 değerinin AC kategorisi 2'dir [7]. JPEG AC katsayısı kod tablosundaki 1/2'ye denk gelen değerlere dikkat edilir [7]. Burada 1 AC katsayısından önce gelen sıfır değerli katsayıların sayısını, 2 ise az önce bulduğumuz AC kategori değerini göstermektedir. Tabloya göre değeri 2 olan AC katsayısı için kodlanmış kelime üretirken temel kod 111001 (6 bit) olur ve tüm kelime 8 bit ile ifade edilir. Geriye kalan 2 bit yukarıda anlatılan şekilde hesaplanır ve üretilen kelime 11100110 olur. Zigzag taramayla sıralanmış katsayı dizisi bu şekilde kodlandığında

1010110 0100 001 0100 0101 100001 0110 100011 011 100011 001 001 100101 11100110 110110 0110 11110100 000 1010

elde edilir. Burada okunabilirliğin artması için her bir kelime arasına boşluk konmuştur.
Sayfa: 1, 2, 3, 4, 5, 6
Makale Gezinti Çubuğu 

Bu kategoriye yeni makale gönderemezsiniz
Bu kategorideki makalelerinizi düzenleyemezsiniz
Bu kategorideki makalelerinizi silemezsiniz
Bu makaleye yorum yapamazsınız
Bu kategorideki makaleleri oylayamazsınız
Bu kategorideki makalelerin onaylanması gerekmektedir
Bu kategorideki düzenlenmiş makalelerin onaylanması gerekmektedir