Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Veri Sıkıştırma Algoritmaları

Benzer bir sunumlar


... konulu sunumlar: "Veri Sıkıştırma Algoritmaları"— Sunum transkripti:

1 Veri Sıkıştırma Algoritmaları
Ders 5: Kayıplı Görüntü Sıkıştırma Yöntemleri Yrd. Doç. Dr. Altan MESUT

2 JPEG (Joint Photographic Experts Group)
DCT (ayrık kosinüs dönüşümü) tabanlı bir standarttır. Sıkıştırmadaki kayıp oranı (sıkıştırma miktarı) kalite faktörünün (Q faktörü) değiştirilmesi ile ayarlanabilir. 24-bit renk derinliğine sahip fotoğraflarda çok iyi sonuçlar verdiği için sayısal fotoğrafçılıkta çok kullanılır. JPEG, tek bir algoritmadan ibaret olmayıp, birçok görüntü sıkıştırma yönteminin bir araya getirilmesi ile oluşturulmuş bir standart olduğu için, sıkıştırma ve açma süreleri tek algoritmaya sahip olan kayıpsız sıkıştırma yöntemlerine göre daha uzundur. Bölüm 5 - Görüntü Sıkıştırma

3 Bölüm 5 - Görüntü Sıkıştırma
JPEG Mimarisi Temel olarak aşağıdaki işlemlerden oluşur: Eğer renk bilgisi RGB türünde ifade edilmişse, YUV’a çevirme. (isteğe bağlı) Örneklemeyi azaltma. (down-sampling) Görüntüyü 8×8 büyüklüğünde bloklara bölme. DCT kullanarak, piksel bilgisini uzamsal etki alanından frekans etki alanına çevirme. DCT dönüşümü sonuç değerlerini nicelendirme. Sonuç katsayılara köşegen tarama düzeninde RLE uygulama ve ardından QM kodlamasını kullanma. Bölüm 5 - Görüntü Sıkıştırma

4 Bölüm 5 - Görüntü Sıkıştırma
JPEG Sıkıştırması DCT RGB → YUV Örneklemeyi Azaltma Y U V Bloklara bölme 8x8 f(i,j) Niceleme F(u,v) Fq(u,v) ZigZag Tarama RLE DPCM Tabloları Kodlama DC AC QM Kodlaması Veri Tablolar Başlık JPEG Dosyası Kaynak Dosya Bölüm 5 - Görüntü Sıkıştırma

5 Bölüm 5 - Görüntü Sıkıştırma
Renk Dönüştürme RGB’den YUV’a dönüştürme JPEG sıkıştırması için gerekli değildir, ama bu dönüşüm sayesinde daha yüksek sıkıştırma oranlarına ulaşılır. YUV renk biçimi, renkleri, parlaklık (luminance) ve renklilik (chrominance) olarak ifade eder. Y parlaklığı, U ve V değerlerinin kombinasyonları da renkliliği ifade eder. RGBYUV dönüşümü bir lineer dönüşümdür ve bu dönüşüm için genellikle aşağıdaki denklem kullanılır: Y = 0.299R G B U = Cb = 0.564(B-Y) = R G B V = Cr = 0.713(R-Y) = R G B Bölüm 5 - Görüntü Sıkıştırma

6 Bölüm 5 - Görüntü Sıkıştırma
Örneklemeyi Azaltma İnsan gözü parlaklığa daha çok, renkliliğe daha az hassastır. Bu demektir ki U ve V değerlerini bir miktar azaltmak, görüntüyü insan gözü için çok fazla farklılaştırmayacaktır. O halde 2×2 ebatlarında 4 piksellik bir blok için Y, U ve V değerlerinden 4’er adet (4:4:4) kullanmak yerine 4:2:2 ya da 4:1:1 kullanabiliriz. Bu işleme örneklemeyi azaltma (down-sampling) denir. Bölüm 5 - Görüntü Sıkıştırma

7 DCT (Discrete Cosine Transform)
Görüntü 8×8 bloklara bölünür ve her blok diğerinden bağımsız olarak ayrık kosinüs dönüşümüne (DCT - Discrete Cosine Transform) tabi tutulur. Sonuçta ortaya yine 64 katsayı çıkacaktır. Bunlardan ilkine DC (ilk piksel - F(0,0)) ve diğerlerine de AC adı verilir. Bölüm 5 - Görüntü Sıkıştırma

8 Bölüm 5 - Görüntü Sıkıştırma
DCT Katsayıları Bölüm 5 - Görüntü Sıkıştırma

9 Niceleme (Quantization)
DCT dönüşümü sonrasında ortaya çıkan katsayılar genellikle ondalıklıdır. Bu değerler niceleme yöntemi ile tamsayılara dönüştürülür. Niceleme yönteminde öncelikle her katsayı 1 ile 255 arasında bir tamsayıya bölünür ve daha sonra en yakın tamsayıya yuvarlanır (bu esnada kayıp meydana gelir). Katsayıların hangi değere bölüneceği niceleme tabloları (8×8 büyüklüğünde bir niceleme matrisi) sayesinde belirlenir. Parlaklık ve renklilik için farklı tablolar kullanılır. Bölüm 5 - Görüntü Sıkıştırma

10 Kalite Faktörü (Çarpanı)
Görüntüdeki kayıp miktarını belirlemek için bir kalite çarpanı (quality factor) kullanılır. Kullanılan kalite çarpanına göre tablolar değişiklik gösterir. Nicelemenin formülü ve 75 kalite çarpanı için parlaklık tablosu: Bölüm 5 - Görüntü Sıkıştırma

11 Bölüm 5 - Görüntü Sıkıştırma
Örnek !!! İnsan gözü yüksek frekanslara karşı daha az hassas olduğu için, niceleme tablosunda da görülebileceği gibi, bloğun sağ alt yarısında (sağ alt eşkenar üçgende) yer alan yüksek frekans katsayıları daha büyük sayılara bölünerek sıfıra indirgenmeye çalışılır. Niceleme işlemi sonrasında yüksek frekans katsayıları ağırlıklı olarak sıfırlardan oluşacaktır. Bölüm 5 - Görüntü Sıkıştırma

12 Köşegen (ZigZag) Tarama
Bu iki boyutlu yapı tek boyuta indirgenirken aşağıdaki şekilde görüldüğü gibi bir köşegen tarama işlemi uygulanır. Bölüm 5 - Görüntü Sıkıştırma

13 Köşegen (ZigZag) Tarama
Bu şekilde bir tarama yapılmasının amacı, düşük frekans katsayılarından yüksek frekans katsayılarına doğru sıralı bir düzen yaratmaktır. Böylece, yüksek frekans katsayılarının çoğunluğu sıfır olabileceği için, tekrar eden çok sayıda ardışık sıfırdan oluşan ve RLE ile iyi sıkıştırılabilir bir yapının oluşması da sağlanmış olacaktır. Bölüm 5 - Görüntü Sıkıştırma

14 Bölüm 5 - Görüntü Sıkıştırma
Kayıpsız Sıkıştırma 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. DC katsayıları için, bir önceki DC değeri ile kodlanacak olan DC arasındaki farkın kodlandığı bir tablo tercih edilirken, AC katsayıları için RLE kodlaması ile uyumlu daha farklı bir tablo kullanılır. Bölüm 5 - Görüntü Sıkıştırma

15 Bölüm 5 - Görüntü Sıkıştırma
JPEG2000 Standardı JPEG2000 standardı, JPEG standardının kısıtlamalarını gidermek ve düşük bit-oranlarında yüksek kalitede görüntüler elde etmek amacıyla tasarlanmıştır. Ayrık Dalgacık Dönüşümü (Discrete Wavelet Transform - DWT) teknolojisini temel alarak, bilinen en iyi sıkıştırma teknolojilerinin kullanılmasıyla oluşturulmuş bir kodlama sistemidir. Bölüm 5 - Görüntü Sıkıştırma

16 JPEG2000’in Üstünlükleri - 1
Renkli görüntülerde 48-bit, gri-tonlamalı görüntülerde de 16-bit renk derinliğine izin verir. Kaliteden ödün vermeden daha yüksek sıkıştırma oranı sağlar. JPEG’teki en büyük dezavantajlardan biri; görüntü önce 8×8’lik bloklara ayrılıp daha sonra DCT uygulandığı için, özellikle yüksek sıkıştırma oranlarında bloklar arası geçişin keskinleşmesi ve gözle fark edilir hale gelmesidir. Özellikle 1/30’dan yüksek oranlarda sıkıştırmış görüntülerde bloklar belli olur. JPEG2000’de böyle bir bloklama yapısı olmadığı için bu dezavantaj ortadan kalkmıştır. Bölüm 5 - Görüntü Sıkıştırma

17 JPEG2000’in Üstünlükleri - 2
Önemli bölgelerin belirlenerek daha yüksek kalitede, önemsiz bölgelerin daha düşük kalitede sıkıştırılmasına imkan verir. (ROI) Görüntüyü belirli bir büyüklüğe (piksel başına bit oranına) kadar sıkıştırmaya olanak sağlar. (JPEG’te sadece kalite oranı var, “sıkıştırılmış hali 100KB olsun” şeklinde bir seçim yapılamıyor.) Aynı mimari içinde kayıpsız sıkıştırmaya da imkan sağlar. Eğer görüntüyü istenilen büyüklüğün daha azına kayıpsız olarak sıkıştırabiliyorsa, otomatik olarak kayıpsız sıkıştırmayı kullanır. İstemci/sunucu görüntü uygulamaları için ve sınırlı kaynağa sahip olan kablosuz cihazlar için ilave fonksiyonel özelliklere sahiptir. Örneğin, belirli bir zaman aralığında aktarabileceği en kaliteli görüntüyü aktarır. JPEG2000 dosya formatı (.jp2) XML tabanlıdır. Bölüm 5 - Görüntü Sıkıştırma

18 Bölüm 5 - Görüntü Sıkıştırma
JPEG2000 Mimarisi Temel olarak aşağıdaki işlemlerden oluşur: RGB’den YUV’a dönüşüm yada RCT. (isteğe bağlı) Görüntüyü bölümlendirme (Tiling). (isteğe bağlı) DWT kullanarak, piksel bilgisini uzamsal etki alanından frekans etki alanına çevirme. ROI (Region of Interest). DWT dönüşümü sonuç değerlerini nicelendirme. MQ-Kodlaması. Bölüm 5 - Görüntü Sıkıştırma

19 Bölüm 5 - Görüntü Sıkıştırma
Renk Dönüştürme JPEG2000 standardının 2000 yılında yayınlanmış olan birinci bölümünde (Part I), iki dönüşüm tipi tanımlanmıştır. Bunlardan ilki, JPEG’te de kullanılan RGB  YUV dönüşümüdür. Diğeri ise her bileşenin kayıpsız olarak tekrar elde edilmesine olanak sağlayan RCT (Reversible Component Transform) dönüşümüdür. Bu dönüşümün formülü aşağıda verilmiştir: Bölüm 5 - Görüntü Sıkıştırma

20 Görüntüyü Bölümlendirme (Tiling)
JPEG2000, bölümlendirme (tiling - kiremit kaplama) adı verilen bir işlem ile görüntüyü bloklara ayırır. Her bir bölüm sanki farklı bir görüntü imiş gibi birbirinden bağımsız olarak sıkıştırılır. Sınırlarda yer alanlar dışındaki bölümlerin boyutları ikinin katları kadardır. Bölümlendirme işlemi, hafıza gereksinimlerini azalttığı için ve eğer gerekli değilse görüntünün tamamı yerine sadece belirli kısımlarını açabildiği (decode) için kullanışlıdır. Bölüm 5 - Görüntü Sıkıştırma

21 DWT (Discrete Wavelet Transform)
Dalgacıklar veriyi farklı frekans bileşenlerine ayıran matematiksel fonksiyonlardır. DWT, aşağıda görüldüğü gibi birçok alt-geçişli (LP, low-pass) ve üst-geçişli (HP, high-pass) sayısal filtre serisi ile gerçeklenebilir. JPEG2000’de temel olarak 5/3 ve 9/7 olmak üzere iki farklı filtre çifti kullanılır. i Hl(i) Hh(i)  1  2  3  4 i Hl(i) Hh(i) 3/4 1  1 1/4 -1/2  2 -1/8 Bölüm 5 - Görüntü Sıkıştırma

22 DWT (Discrete Wavelet Transform)
Bir görüntünün dalgacık ayrıştırmasında, ayrışım önce satır satır, sonra sütün sütün gerçekleştirilir. Örneğin N×M boyutlarında bir görüntüde, önce her satır filtrelenir ve filtre çıkışı iki adet N×(M/2) boyutunda görüntü elde etmek için alt-örneklenir. Daha sonra her sütun filtrelenir ve dört adet (N/2)×(M/2) boyutunda görüntü elde etmek için alt-örneklenir. Her alt görüntü aranılan alt-bant yapısı sağlanana kadar bu şekilde dörde bölünmeye devam eder. Bölüm 5 - Görüntü Sıkıştırma

23 DWT (Discrete Wavelet Transform)
Bölüm 5 - Görüntü Sıkıştırma

24 Bölüm 5 - Görüntü Sıkıştırma
DCT ve DWT Bölüm 5 - Görüntü Sıkıştırma

25 DCT ve DWT karşılaştırması
Görsel Karşılaştırma (a) (b) (c) Orjinal Resim 256x256 Piksel, 24-Bit, RGB JPEG (DCT) ile 43:1 oranında sıkıştırılmış JPEG2000 (DWT) ile 43:1 oranında sıkıştırılmış Bölüm 5 - Görüntü Sıkıştırma

26 ROI (Region of Interest)
ROI kodlamasında, görüntünün belirli bölgeleri daha yüksek kalitede, kalan yerleri daha düşük kalitede kodlanır. Görüntünün belirli bir bölümü ile daha çok ilgili olduğumuz durumlarda bu işlem kullanışlıdır. İlgili olunan bölge (ROI maskesi) seçildikten sonra, dalgacık dönüşümünden elde ettiğimiz katsayılardan hangilerinin daha yüksek kalitede sıkıştırılması gerektiğini bulmak için, maskeye dönüşüm uygulayıp hangi katsayıların maskenin içine düştüğüne bakarız. Bu bilginin sıkıştırılan görüntüyü açma esnasında bilinmesine gerek yoktur. Bölüm 5 - Görüntü Sıkıştırma

27 Niceleme (Quantization)
JPEG2000’de kullanılan niceleme işlemi kademeli olarak çalışan dalgacık dönüşümü yapısına uygun olacak şekilde tasarlanmıştır. JPEG’te kullanılan yapıdan farklı olsa da temelde yaptığı iş aynıdır; yüksek frekans katsayılarını sıfıra indirgemek. Bölüm 5 - Görüntü Sıkıştırma

28 Bölüm 5 - Görüntü Sıkıştırma
MQ-Kodlaması JPEG2000’in son aşamasında MQ-Kodlaması kullanılır. Kullanışlı bit dizisi oluşturma özelliklerine sahip olan MQ-Kodlaması, JBIG ve JPEG standartlarında kullanılan QM-Kodlamasına işlevsel olarak benzerdir. JBIG-2 standardında da MQ-Kodlaması kullanılmıştır. Bölüm 5 - Görüntü Sıkıştırma

29 JPEG - JPEG2000 Karşılaştırması
Kayıplı sıkıştırma algoritmaları söz konusu olduğunda, sıkıştırma oranından çok bozulma oranı (kayıp miktarı) önemlidir. Çünkü kayıplı sıkıştırma algoritmaları belirli bir kalite faktörünü parametre olarak aldıkları için, kaliteden feragat ederek sıkıştırma oranını arttırabilmektedirler. Bu nedenle, karşılaştırma yapılırken asıl test edilmesi gereken unsur ne kadar çok sıkıştırdığı değil, ne kadar kaliteli sıkıştırdığıdır. Bölüm 5 - Görüntü Sıkıştırma

30 Sıkıştırmada Kayıp Miktarı
(a) ve (b) resimleri arasında fark yok gibi görünse de aslında (c) kadar fark vardır. (a) cizim.bmp (b) cizim.jpg (c) fark.bmp Bölüm 5 - Görüntü Sıkıştırma

31 Bozulma Oranını Ölçmek
Kayıplı sıkıştırma sonucunda görüntüdeki bozulma oranını ölçmenin faklı yöntemleri vardır. Bunlar arasında en çok kullanılanlar; MSE (mean squared error) RMSE (root mean squared error) PSNR (peak signal-to-noise ratio) MAE (mean absolute error) PAE (peak absolute error) Bölüm 5 - Görüntü Sıkıştırma

32 MSE (mean squared error)
Hataların kareleri toplamının ortalamasıdır. Genellikle 2 olarak gösterilir. RMSE (root mean squared error) ise MSE’nin kareköküdür. Bölüm 5 - Görüntü Sıkıştırma

33 PSNR (peak signal-to-noise ratio)
Hatanın büyüklüğünün orijinal piksel değerinin en büyüğü (tepe noktası) ile olan orantısı Sinyaller çok geniş bir değer aralığında olabildikleri için PSNR logaritmik derecelendirme ile ifade edilir. Bölüm 5 - Görüntü Sıkıştırma

34 MAE (mean absolute error)
Hataların mutlak değerinin ortalaması Bölüm 5 - Görüntü Sıkıştırma

35 PAE (peak absolute error)
Mutlak hataların en büyüğü Bazı uygulamalar hataların belli bir eşik değerini aşmamasını isterler. Bu gibi durumlarda PAE önemlidir Bölüm 5 - Görüntü Sıkıştırma

36 Bölüm 5 - Görüntü Sıkıştırma
Bozulma Oranları PSNR MSE RMSE MAE PAE cizim - Red 110 cizim - Green 79 cizim - Blue 148 cizim_8 248 Bölüm 5 - Görüntü Sıkıştırma

37 Karşılaştırmanın Amacı
JPEG2000 sıkıştırmasının yüksek oranlı sıkıştırmalarda üstünlüğü bilindiği için karşılaştırma yapılırken düşük oranlı (yüksek kaliteli) sıkıştırmaya odaklanıldı. Amaç, düşük oranlı sıkıştırmalarda da JPEG2000’in aynı performansı gösterip gösteremeyeceğini görmekti. Bölüm 5 - Görüntü Sıkıştırma

38 Karşılaştırma Yöntemi
JPEG Mimarisinin görüntüyü önceden belirlenen bir büyüklüğe kadar sıkıştırma yeteneği olmadığı için, karşılaştırmayı yaparken önce JPEG ile 80 kalite faktörüne göre sıkıştırma yaptık. Ardından JPEG’in sıkıştırdığı büyüklükleri parametre olarak JPEG2000’e vererek, her bir dosyanın aynı büyüklüğe kadar JPEG2000 tarafından da sıkıştırılmasını sağladık. Bölüm 5 - Görüntü Sıkıştırma

39 Kullanılan Görüntü Dosyaları
Bölüm 5 - Görüntü Sıkıştırma

40 Bölüm 5 - Görüntü Sıkıştırma
Sıkıştırma Oranları Bölüm 5 - Görüntü Sıkıştırma

41 Bölüm 5 - Görüntü Sıkıştırma
PSNR karşılaştırması Bölüm 5 - Görüntü Sıkıştırma

42 Bölüm 5 - Görüntü Sıkıştırma
RMSE karşılaştırması Bölüm 5 - Görüntü Sıkıştırma

43 Bölüm 5 - Görüntü Sıkıştırma
MAE karşılaştırması Bölüm 5 - Görüntü Sıkıştırma

44 Bölüm 5 - Görüntü Sıkıştırma
PAE karşılaştırması Bölüm 5 - Görüntü Sıkıştırma

45 Karşılaştırma Sonuçları - 1
manzara resmi haricinde, JPEG2000 üstündür. Özellikle fotoğraf türünde olmayan cizim, karikatur, jpeg ve orb dosyalarında JPEG2000, JPEG’ten çok daha iyi performans göstermiştir. Sıkıştırma oranı arttıkça JPEG’in performansının düşmesi beklenirken, en yüksek sıkıştırma oranı ile sıkıştırdığı (yaklaşık 1/25) manzara görüntüsünde bu kadar başarılı olması, muhtemelen bu görüntüdeki karmaşıklığın az olması ile ilgilidir. Bölüm 5 - Görüntü Sıkıştırma

46 Karşılaştırma Sonuçları - 2
JPEG2000’in karmaşık bir yapıya sahip olması nedeniyle, yavaş sıkıştırdığı gözlenmiştir. Sayısal fotoğraf makinelerinde efektif olarak kullanılabilmesi için çok hızlı işlemcilere ihtiyaç duyulmaktadır. Her ne kadar bazı sayısal fotoğraf makinesi üreticileri JPEG2000 standardını destekleyen ürünleri geliştirdiklerini açıklamış olsalar da, günümüzde piyasada satılanlar içerisinde bu standardı destekleyen ürünlere pek rastlanmamaktadır. Bölüm 5 - Görüntü Sıkıştırma

47 Bölüm 5 - Görüntü Sıkıştırma
Fractal Tekniği Fractal terimini bulan: Benoit Mandelbrot Mandelbrot fractal’ların matematiksel ifadeler şeklinde tanımlanabileceğini, ve çok küçük miktarda veri ve algoritma ile yaratılabileceğini keşfetmiştir. En önemli avantajı, açma (decode) işleminin basit ve hızlı olmasıdır. Bu sebeple, sıkıştırma işleminin bir defa, açma işleminin birçok defa yapıldığı uygulamalarda kullanışlıdır. Bölüm 5 - Görüntü Sıkıştırma


"Veri Sıkıştırma Algoritmaları" indir ppt

Benzer bir sunumlar


Google Reklamları