JPEG XR Emir ZTRK T F B E
JPEG XR Emir ÖZTÜRK T. Ü. F. B. E. Bilg. Müh. A. B. D. Y. L. Semineri
JPEG � Joint Photographic Experts Group tarafından 1992 yılında geliştirilmiş bir standarttır. � Yaygın kullanılan bir kayıplı sıkıştırma yöntemidir. Sıkıştırılan resimlerdeki kayıp geri getirilemez. � Resmin ne kadar sıkıştırılacağı, bir kalite faktörü verilerek belirlenebilir.
JPEG � Kodlama aşaması aşağıdaki işlemlerden oluşur: � RGB renk uzayından YCb. Cr ‘ye dönüşüm (isteğe bağlı) � Örneklemeyi azaltma � Bloklama (8 x 8) � DCT (Ayrık Kosinüs Dönüşümü) � Niceleme � Köşegen tarama ile RLE ve ardından QM kodlama
JPEG – Renk Uzayı Dönüşümü � YCb. Cr, Y parlaklığı, Cb ve Cr (mavi ve kırmızı olarak) renkliliği ifade etmek üzere üç bileşenden oluşur. � Y, Cb ve Cr bileşenleri RGB değerlerinden aşağıdaki gibi elde edilebilir: Y = 0. 299 R + 0. 587 G + 0. 114 B Cb = -0. 147 R - 0. 289 G + 0. 436 B Cr = 0. 615 R - 0. 515 G - 0. 100 B
JPEG – Örneklemeyi Azaltma � İnsan gözü bir resmin parlaklığında, renkten daha çok detay algılar. � 4 pikselde YCb. Cr’den 4’er tane (4: 4: 4) kullanmak yerine, 4: 2: 2 veya 4: 1: 1 oranı seçilebilir.
JPEG – DCT � DCT (Ayrık Kosinüs Dönüşümü) blokları frekans etki alanına dönüştürür. � Resimdeki her 8 x 8’lik blok birbirinden bağımsız olarak DCT’ye tabi tutulur. 8 x 8 Blok Bloğun DCT sonrası değerleri
JPEG – Niceleme � Niceleme işleminde, DCT dönüşümünden elde edilen her katsayı, belirlenen sabit bir değere bölünür ve bir tamsayı değere yuvarlanır. � 75 kalite faktörü için niceleme matrisi aşağıdaki gibidir:
JPEG - Niceleme DCT uygulanmış 8 x 8 blok (a), niceleme işlemine tabi tutulduğunda, yüksek frekans katsayıları sıfıra indirgenmiş bir matris (b) elde edilir. (a) (b)
JPEG – Köşegen Tarama � Niceleme işleminden sonra, köşegen tarama yapılır. � Köşegen taramanın amacı, çoğunlukla sıfır olan yüksek frekans değerlerinin art arda gelmesini sağlayarak, RLE ile kodlamanın performansını arttırmaktır.
JPEG – RLE-QM � RLE kullanılarak AC katsayıları sıkıştırıldıktan sonra, diğer AC katsayıları için ve her bloğun sol üst pikseli olan DC katsayıları için farklı QM tabloları kullanılarak, son aşama olan kayıpsız sıkıştırma gerçekleştirilecektir. � QM, içeriğe bağımlı bir aritmetik kodlama algoritmasıdır.
JPEG Avantaj-Dezavantaj � Diğer algoritmalara göre hızlıdır. � Manzara resimleri gibi renklerin ve geçişlerin yumuşak bir şekilde olduğu resimlerde iyidir. � Sıkıştırma oranının iyi olması sayesinde günümüze kadar fotoğraf makineleri gibi alan sıkıntısı olan cihazlarda yaygınca kullanılmıştır. � Keskin çizgilerin bulunduğu grafik ve çizimler için iyi sonuç vermez. � Yüksek sıkıştırma oranlarında bloklama etkisi belirginleşir, resim fazlasıyla bozulur.
JPEG – Bloklama Etkisi � Foxy. bmp – Sıkıştırma Oranı: %98
JPEG 2000 � 2000 yılında Jpeg Photographic Experts Group tarafından geliştirilmiş bir standarttır. � Jpeg’in aksine Jpeg 2000 bloklama etkisini önlemek amacıyla dalgacık dönüşümü kullanır. � Yüksek sıkıştırma oranlarında, Jpeg’teki bloklama etkisinin aksine resimde bulanıklaşma görünür.
JPEG 2000 � Family. bmp – Sıkıştırma Oranı: %99 Jpeg (. Net Framework) Jpeg 2000 (Jasper)
JPEG 2000 � Jpeg 2000’de sıkıştırılması istenen dosya boyutu verilebilir. � Aynı mimari içerisinde kayıplı ve kayıpsız sıkıştırmayı destekler. � Görüntü, verilen dosya boyutundan daha küçük bir boyuta kayıpsız olarak sıkıştırılabiliyorsa, bu da otomatik olarak gerçekleştirilir.
JPEG 2000 � ROI (Region Of Interest) sayesinde, resmin önemli kısımları yüksek kalitede, diğer kısımları düşük kalitede sıkıştırılabilir. � Alpha kanalını destekler. � Kademeli aktarımı destekler.
JPEG 2000 � Kodlama aşaması aşağıdaki işlemlerden oluşur: � RGB->YCb. Cr Dönüşümü � Bölümlendirme (Tiling) � DWT (Ayrık Dalgacık Dönüşümü) � Niceleme � MQ Kodlama
JPEG 2000 – Renk Uzayı Dönüşümü � JPEG 2000, iki dönüşümü destekler: � Tersi alınamayan Renk Dönüşümü � Tersi alınabilen Renk Dönüşümü
JPEG 2000 - Bölümlendirme � Renk dönüşümünden sonra, resim ‘tile’ adı verilen bölümlere ayrılır. � Bölümler herhangi bir boyutta olabilir. Hatta tüm resim tek bir bölüm olarak alınabilir. � Her bölüm birbirinden bağımsız olarak sıkıştırılır.
JPEG 2000 – DWT � DWT (Discrete Wavelet Transform), veriyi frekans bileşenlerine ayırır. � DWT’de resim çeşitli High-Pass (yüksek frekans) ve Low. Pass (düşük frekans) filtrelerden geçirilir ve alt bantlar elde edilir. � Bu alt bantlar daha sonra açma sırasında orijinal resmi elde etmek için kullanılır.
JPEG 2000 – DWT
JPEG 2000 – DWT
JPEG 2000 - Niceleme � Jpeg mimarisinde olduğu gibi, nicelemenin amacı yüksek frekans değerlerini sıfıra indirgemektir. � Bu sayede MQ kodlamasındaki verim artacaktır.
JPEG 2000 – MQ Kodlama � Niceleme işleminin sonrasında, son aşama olarak MQ kodlama yapılır. � MQ kodlaması, Jpeg’de kullanılan QM kodlamaya benzer bir aritmetik kodlamadır.
JPEG 2000 – Avantaj-Dezavantaj � Dalgacık dönüşümünün kullanılmasıyla Jpeg’deki bloklama etkisi görülmez. � Yüksek sıkıştırma oranlarında daha iyi kalite sağlar. � Jpeg’in aksine sıkıştırma hızı oldukça düşüktür. � Sıkıştırma ve açma hızının düşük olması (daha fazla işlem yapılması) nedeniyle, kaynak sınırlaması olan fotoğraf makineleri gibi cihazlarda yaygınlaşmamıştır.
JPEG XR � Joint Photographic Experts Group tarafından, Windows Media Photo üzerine geliştirilmiş bir standarttır. � Amacı, hesap karmaşıklığını azaltarak, Jpeg 2000’in kalitesini çok daha hızlı kodlama ve açma hızlarıyla elde etmektir.
JPEG XR � Günümüzde artık renk aralığı için kullanılan bilgi bitlerinin sayısı, teknolojinin ilerlemesiyle birlikte artış göstermektedir. � Her kanal için (R, G, B) 8 bit yerine, 12 bit veya 16 bit kullanılmaya başlanmıştır. � Jpeg XR’daki XR, ‘Extended Range’ in kısaltmasıdır. Bu kısaltma Jpeg XR’ın her kanalda genişletilmiş bilgi (8 bitten fazla bilginin) saklanmasını desteklediğini kasteder.
JPEG XR � Jpeg XR, HD photo gibi yüksek çözünürlükte ve yüksek kalitedeki resimlerin sıkıştırılması için idealdir. � HDR (High Dynamic Range) resimler, görüntünün en karanlık ve en aydınlık kısımlarının arasında çok daha geniş aralıkta dinamik parlaklık değeri bulundurur.
HDR
JPEG XR � Kodlama aşaması birkaç adım dışında jpeg ile benzerdir: � Bölümlendirme � Renk Dönüşümü � Ön Filtreleme (Overlap Filtering – POT) (isteğe bağlı) � PCT � Niceleme � Katsayı Tahmini � Entropi Kodlama
JPEG XR
JPEG XR – Bölümlendirme � Jpeg 2000’e benzer olarak resimde bölümlendirme yapılır. � Resim bölümlere ayrıldıktan sonra her bölüm birbirinden bağımsız olarak kodlamaya tabi tutulur. � Bu sayede donanıma uyarlama aşaması da kolaylaştırılmış olur. � Her bölüm (tile), 4 x 4 lük 16 adet bloktan oluşan makro blokları içerir.
JPEG XR – Bölümlendirme
JPEG XR – Operasyon Modları � Jpeg XR’da iki adet akış modu bulunur: � Uzamsal (Spatial) Mod � Frekans Modu
JPEG XR – Operasyon Modları
JPEG XR – Renk Uzayı Dönüşümü � Dönüşüm RGB’den YCb. Cr’ye yapılır. � Dönüşüm ayrıca ters çevrilebilirdir. Bu sayede tekrar RGB’ye dönüşüm mümkündür.
JPEG XR – Ön Filtreleme � Ön filtrelemede 3 farklı seçenek bulunur. � Ön filtreleme işleminin atlanması (Non Overlapping) � Tek Aşamalı Ön Filtreleme (One Level Overlapping) � İki Aşamalı Ön filtreleme (Two Level Overlapping)
JPEG XR – Ön Filtreleme � Ön filtreleme yapmanın amacı, yüksek sıkıştırma oranlarında gözüken bloklama etkisini ortadan kaldırmaktır. � Birbirine komşu 4 bloğun 2 x 2 lik kısımları birlikte işlenerek bloklamanın önüne geçilmiş olur:
JPEG XR - PCT � PCT (Photo Core Transform), Hadamard dönüşümünün bir türüdür. � Piksel verisini frekans etki alanına çevirir. � 4 x 4’lük DCT’ye benzer fakat DCT’nin aksine kayıpsızdır. Ters dönüşüm yapılarak orijinal veri elde edilebilir. � Tamsayılar üzerinde tanımlıdır.
JPEG XR - PCT � PCT (Photo Core Transform) işleminde; � Piksel değerleri DC (en düşük frekans katsayısı), Low-Pass (düşük frekans katsayıları) ve High-Pass (yüksek frekans katsayıları) bileşenlerine dönüştürülür. � PCT iki aşamada gerçekleştirilir. � Birinci aşamada (POT seçildiyse) makro blok ön filtrelemeden geçer ve ardından her blok 4 x 4’lük PCT dönüşümüne tabi tutulur.
JPEG XR - PCT � İkinci aşamada, makrobloktaki 16 adet DC değeri tek bir 4 x 4 blokta toplanır. � Seçimlik ikinci bir POT işlemi, DC katsayılarından oluşan bloğa bir kere uygulanabilir. � Elde edilen DC bloğuna ikinci kez bir PCT uygulanır.
JPEG XR - PCT � İkinci aşamanın sonunda bir makroblok için 1 DC, 15 LP ve 240 HP katsayısı elde edilir.
JPEG XR - Niceleme � PCT’den elde edilen değerler tamsayı değerlere yuvarlanır. � Nicelemede tamsayı işlemler kullanılır. Bunun avantajı bölme işlemleri için sadece kaydırma işlemlerini kullanması ve bu sayede hız kazanmasıdır.
JPEG XR – Katsayı Tahmini � Katsayı tahmini, 3 bileşen için yapılır: � PCT’nin 2. aşamasına girecek olan DC katsayıları için yapılan tahmin. � PCT’nin 2. aşamasından sonra elde edilen AD (low-pass) katsayıları için yapılan tahmin. � PCT’nin ilk aşamasından sonra elde edilen AC (high-pass) katsayıları için yapılan tahmin.
JPEG XR – Katsayı Tahmini � Katsayı tahmini DC için 3 yönde (sol, üst, sol üst) yapılabilir. � DC katsayıları her makrobloğun sol üst köşesindedir. � H_weight ve V_weight olmak üzere iki ağırlık hesaplanır. � Bu ağırlıklara bakarak algoritma tahmini üstten mi, soldan mı yoksa sol üstten mi yapacağına karar verir.
JPEG XR – Katsayı Tahmini � AC/AD blokların tahmini ise üst veya soldan yapılabilir. � Algoritma AD (Low-pass) katsayıları için tahminin soldan yapılmasına karar verirse, her blok için tahmin işlemi aşağıdaki gibi olacaktır:
JPEG XR – Katsayı Tahmini � AC (high-pass) katsayı tahmini de DC ve AD tahminlerinde olduğu gibi, iki adet ağırlık değerinin karşılaştırılması ile yapılır. Karşılaştırma sonucunda soldan veya üstten tahmin yapılmasına karar verilir. Üstten yapılan tahmin için blokların durumu aşağıdaki gibi olacaktır:
JPEG XR – Uyarlamalı Tarama � Entropi kodlamadan önce uyarlamalı bir tarama gerçekleştirilir. � Tarama sırası, sıfırdan farklı katsayısına bağlı olarak belirlenir. � Kodlama esnasında eğer herhangi bir konum için sıfırdan farklı katsayısının sırası değişirse, tarama sırası da uyarlamalı olarak değişecektir. � Böylece sıfırdan farklı katsayılar başlangıçta kodlanacak ve sıfırlar dizinin son kısmına toplanacaktır.
JPEG XR – Uyarlamalı Tarama sırasının yandaki gibi olduğunu varsayalım. Sıradaki blok okunduğunda, bu blokta 0’dan farklı katsayıların bulunduğu konumlar için toplam değerleri değişecektir. 2, 7, 8, 12 ve 15. konumların katsayısı 1 arttırılır. 12. konumun sıfırdan farklı katsayısı 5. konumu geçtiğinden, tarama sırası yeniden düzenlenir.
JPEG XR – Entropi Kodlama � Uyarlamalı tarama gerçekleştikten sonra elde edilen akışa entropi kodlama ve ardından RLE uygulanır. � Uyarlamalı taramanın sıfırları dizinin sonuna toplaması ve ardından yapılan entropi kodlama sayesinde RLE’nin sıkıştırma performansı arttırılmış olur.
Karşılaştırma � JPEG, JPEG 2000 ve JPEG XR’ın karşılaştırılması için 6 megapiksel boyutunda artificial. bmp ve 0. 25 megapiksel boyutunda foxy. bmp kullanılmıştır. Artificial. bmp foxy. bmp
PSNR Karşılaştırması (Artificial. bmp)
PSNR Karşılaştırması (Foxy. bmp)
Hız ve Bellek Kullanımı Codec Sıkıştırma Bellek Kullanımı Açma Bellek Kullanımı Sıkıştırma Süresi Açma Süresi JPEG 344. 8 kb 345. 7 kb 93. 6 ms 56. 1 ms JPEG 2000 558 kb 656. 9 kb 1725. 3 ms 2730 ms JPEG XR 344 kb 344. 8 kb 249. 6 ms 321. 3 ms Artificial. bmp Codec Sıkıştırma Bellek Kullanımı Açma Bellek Kullanımı Sıkıştırma Süresi Açma Süresi JPEG 344. 8 kb 352. 2 kb 34. 3 ms JPEG 2000 585 kb 684. 8 kb 171. 6 ms 143. 5 ms JPEG XR 341. 6 kb 348. 1 kb 34. 3 ms 56. 1 ms Foxy. bmp
Karşılaştırma Sonuçları � Bozulma oranlarında Jpeg XR ve Jpeg 2000 yaklaşık olarak aynı sonuçları verirken, JPEG sonuçları daha kötüdür. � JPEG 2000 ise JPEG ve JPEG XR’a göre daha fazla bellek kullanarak işlem yapmaktadır. Aynı zamanda sıkıştırma ve açma süreleri bakımından da diğer rakiplerine göre çok daha yavaş kalmaktadır. � JPEG XR kalite ve bozulma oranları bakımından JPEG 2000’e yakın sonuçlar verirken, sıkıştırma ve açma işlemleri JPEG 2000’den çok daha hızlıdır. � JPEG XR bellek kullanımı ve işlem süreleri bakımından JPEG’e daha yakın sonuçlar vermektedir.
Referanslar � � � CCITT Rec. T. 81, 1992, ISO/IEC 10918 -1, 1994, “Digital Compression And Coding of Continuous. Tone Still Images – Requirements And Guidelines (JPEG)”. Rao, K. R. and Yip, P. , 1990, “Discrete Cosine Transform: Algorithms, Advantages, Applications”, Academic Press, San Diego, CA, USA. Mallat, S. , 1989, “A Theory for Multiresolution Signal Decomposition: The Wavelet Representation”, IEEE Pattern Analysis and Machine Intelligence, 11(7), 674 -693. Jensen, A. and Cour-Harbo, A. , 2001, “Ripples in Mathematics: The Discrete Wavelet Transform”, Springer-Verlag, Berlin, Germany. ISO/IEC 15444 -1: 2004, 2000, “JPEG 2000 image coding system: Core coding system” Christopoulos, C. , Skodras, A. and Ebrahimi, T. , 2000, “The JPEG 2000 still image coding system: An Overview”, IEEE Transactions on Consumer Electronics, 46(4), 1103 -1127. ITU-T Rec. T. 832, 2009, ISO/IEC 29199 -2, 2010, “JPEG XR image coding system: Image coding specification”. MSU Graphics & Media Lab (Video Group), 2005, “JPEG 2000 Image Codecs Comparison”. MSU Graphics & Media Lab (Video Group), 2006, “Windows Media Photo and JPEG 2000 Codecs Comparison”. Santa-Cruz, D. , Ebrahimi, T. , Askelof, J. , Larsson, M. and Christopoulos, C. , “JPEG 2000 still image coding versus other standards”, Proc. of the SPIE’s 45 th annual meeting, Applications of Digital Image Processing XXIII, Vol. 4115, 2000. Ebrahimi, F. , Chamik, M. and Winkler, S. , “JPEG vs. JPEG 2000: An Objective Comparison of Image Encoding Quality”, In Proc. of SPIE Applications of Digital Image Processing, 5558 (2), 300308, 2004. Chinen, T. T. , “Visual Comparison of JPEG 2000 Versus Conventional JPEG”, In Proc. of IEEE International Conference on Image Processing, Barcelona, Spain, 2003.
- Slides: 56