İMGE İŞLEME Ders-9 İmge Sıkıştırma (Yrd. Doç. Dr. M. Kemal GÜLLÜ) Dersin web sayfası: http://mf.kou.edu.tr/elohab/kemalg/imge_web/odev.htm Hazırlayan: M. Kemal GÜLLÜ
İmge Sıkıştırma Veri sıkıştırmanın sayısal imgeler üzerindeki uygulamasıdır. Amaç; imgeyi en verimli şekilde saklamak ya da iletmek. İmge Sıkıştırma Kayıpsız Sıkıştırma Kayıplı Sıkıştırma Sıkıştırılan imge; Bellekte daha az yer kaplar, Aynı bellekte daha fazla veri saklanmasını sağlar, İletimi kolaylaştırır (Bant genişliğini azaltır), Yazılım ya da donanım yükünü arttırır. 27 Ekim 2015 2
İmge Sıkıştırma İmge Sıkıştırma Kayıpsız Sıkıştırma (Run length encoding, Entropy coding, LZW, Deflation...) Kayıplı Sıkıştırma (Chroma subsampling, Transform coding, Fractal compression...) Genel Yapı: f x, y f ˆ x, y Kodlayıcı Kanal Kod Çözücü 27 Ekim 2015 3
İmge Sıkıştırma f x, y Eşleme (Dönüştürme) Nicemleme Sembol Kodlama Kanal Kanal Sembol Kod Çözme Ters Eşleme fˆ x, y Eşleme: f x, y Eşleme (Dönüştürme) Nicemleme Sembol Kodlama Kanal Pikseller arası artıklığı sıkıştırma için uygun biçime dönüştürme işlemi yapar. İmgenin yeniden elde edilebilmesi için tersi alınabilen dönüşümler kullanılır. 27 Ekim 2015 4
İmge Sıkıştırma Nicemleme: f x, y Eşleme (Dönüştürme) Nicemleme Sembol Kodlama Kanal Eşleyicinin çıkışınındaki verinin verimliliğini, önceden belirlenmiş belirli kurallar çerçevesinde düşürür. Geri dönüşümü yoktur. Bu nedenle kayıpsız sıkıştırmada ihmal edilmelidir. Sembol Kodlama: f x, y Eşleme (Dönüştürme) Nicemleme Sembol Kodlama Kanal Nicemleyici çıkışındaki veriyi sabit veya değişken uzunluklu kodlar. 27 Ekim 2015 5
İmge Sıkıştırma - JPEG JPEG (Joint Photographic Experts Group ): 1992 yılında uluslararası standart olarak belirlendi ve 1994 yılında bu standard ISO 10918-1 olarak onaylandı. Kodlayıcı, kod çözücü ve dosya yapısını standartlaştırmaktadır. Genellikle kayıplı sıkıştırma tekniği olarak bilinir fakat kayıpsiz sıkıştırma yapan temel JPEG de vardır. Kayıpsız sıkıştırma yöntemlerinin veri sıkıştırma oranları düşüktür (Huffmann, LZW, Aritmetik kodlama ). JPEG de ise yüksek sıkıştırma oranları elde edilebilir. Dönüşüm kodlama kullanılır. 27 Ekim 2015 6
İmge Sıkıştırma - JPEG JPEG Kodlama Aşamaları: RGB YCbCr dönüşümü ile ışıklılık ve renk bileşenleri ayrılır. Işıklılık bileşeni korunur ve renk bileşenlerinin sayısı yarıya indirilir (insan gözü ışığa, renkten daha fazla duyarlıdır). İmge 8x8 lik bloklara ayrılır ve her bir bloğa Ayrık Kosinüs Dönüşümü (Discrete Cosine Transform-DCT) uygulanarak frekans dönüşümü yapılır. Frekans bileşenleri nicemlenerek veri boyutunda azaltma sağlanır. Nicemleme temel olarak düşük frekans bileşenlerini yüksek oranda, yüksek frekans bileşenlerini düşük oranda koruyan yapıdadır. Her bir 8x8 blok için elde edilen nicemlenmiş frekans verisi kayıpsız olarak sıkıştırılır. 27 Ekim 2015 7
İmge Sıkıştırma - JPEG Kodlayıcı Yapısı: 27 Ekim 2015 8
İmge Sıkıştırma - DCT JPEG de blokların 8x8 olmasının nedeni, tümdevre teknolojisi ile kullanılmasının daha kolay olmasındandır (2 3 ). Tek bir işlem süresinde alınan bir blok kolaylıkla işlenebilir. JPEG de ayrık kosinüs dönüşümü (Discrete Cosine Transform-DCT) kullanılmaktadır. Fourier dönüşümünde sinüs ve kosinüs bileşenleri kullanılırken, ayrık kosinüs dönüşümünde yalnızca kosinüs bileşenleri kullanılmaktadır. Yani, işaret kosinüs bileşenleri ile ifade edilmekte ve karmaşık uzaya geçilmemektedir. 27 Ekim 2015 9
İmge Sıkıştırma - DCT 8x8 DCT temel fonksiyonlar: DC Ters DCT (IDCT): HF 27 Ekim 2015 10
İmge Sıkıştırma - DCT Avantajı: Enerji yoğunluğu 27 Ekim 2015 11
İmge Sıkıştırma - DCT Avantajı (Örnek): 27 Ekim 2015 12
İmge Sıkıştırma - DCT 8x8 bir imge bloğunun DCT sini alma: (-128) DC bilgisi (DCT) 27 Ekim 2015 13
İmge Sıkıştırma - DCT DCT katsayılarının nicemlenmesi: Nicemleme tablosu F(u,v) 8 q(u,v) 8 Nicemleme matrisi DCT katsayıları 8 DCT blok 27 Ekim 2015 14 8 Nicemleme matrisi Nicemlenmiş blok
İmge Sıkıştırma - DCT DCT katsayılarının nicemlenmesi: Düşük sıkıştırma oranı, yüksek kalite Yüksek sıkıştırma oranı, düşük kalite 27 Ekim 2015 15
İmge Sıkıştırma Entropi Kodlama Zig-zag tarama: 26 3 0 3 2 6 2 4 1 4 1 1 5 1 2 1 1 1 2 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 Ekim 2015 0 16
İmge Sıkıştırma Entropi Kodlama Bloğu sonlandırma: 26 3 0 3 2 6 2 4 1 4 1 1 5 1 2 1 1 1 2 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 26 3 0 3 2 6 2 4 1 4 1 1 5 1 2 1 1 1 2 0 0 0 0 0 1 1 EOB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 Ekim 2015 17 0
İmge Sıkıştırma Entropi Kodlama Blokların DC katsayıları büyük ve değişkendir fakat yanındaki bloğun DC değerine yakındır (ilişki yüksektir). Bloklar için DC değerlerin farkları, Farksal Darbe Kod Modülasyonu (Differential Phase Code Modulation-DPCM) ile kodlanır. Zig zag tarama sonrası oluşan veride çok sayıda sıfır bulunabilmektedir (Bu sıfırlar yüksek frekans bileşenlerini içermekteydi). Bu verileri daha verimli kodlamak için Dizi Uzunluğu Kodlaması (Run Length Encoding-RLE) kullanılmaktadır. Örn; WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWW WWWWWWWWWWWBWWWWWWWWWWWWWW RLE sonrası: Şeklini almaktadır. 12W1B12W3B24W1B14W 27 Ekim 2015 18
İmge Sıkıştırma Entropi Kodlama Tek bir blok için kodlama ve kod çözme: 27 Ekim 2015 19
İmge Sıkıştırma Entropi Kodlama RLE ile kodlanmış dizi en son Entropi Kodlama dan geçirilerek JPEG dosyası oluşturulur. Entropi kodlamada: Aritmetik Kodlama Huffman Kodlama kullanılır. 27 Ekim 2015 20
İmge Sıkıştırma - JPEG 10:1 sıkıştırma oranı orijinal imge 27 Ekim 2015 21 45:1 sıkıştırma oranı
İmge Sıkıştırma - JPEG %100 kalite, 83 kbayt %25 kalite, 9.5 kbayt 27 Ekim 2015 22 %10 kalite, 4.8 kbayt %1 kalite 1.5 kbayt
İmge Sıkıştırma Kalite Ölçütü Kalite Ölçütü: Sıkıştırılmış imgenin orjinaline ne kadar benzer olduğunu bulmak için genelde kullanılan metrik RMS (root mean square) dir. Hata: Toplam hata:, ˆ,, e x y f x y f x y M1N1 x0 y0 e fˆ x, y f x, y İşaret bağımlı Toplam ortalama karesel hatanın karekökü (RMS): M1N1 1 e ˆ RMS f x, y f x, y MN x0 y0 2 1/ 2 27 Ekim 2015 23
İmge Sıkıştırma SNR (Signal to Noise Ratio): SNR RMS M1N1 x0 y0 M1N1 x0 y0 f x, y fˆ x, y f x, y 2 2 1/ 2 PSNR (Peak Signal to Noise Ratio): PSNR MAX I 20 log10 erms 27 Ekim 2015 24