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 4: Kayıpsız Görüntü Sıkıştırma Yöntemleri Yrd. Doç. Dr. Altan MESUT

2 Görüntü Sıkıştırma Yöntemleri
Kayıpsız sıkıştırma yöntemleri: RLE (Run Length Encoding) JBIG (Joint Bi-level Image experts Group) JPEG-LS (JPEG-Lossless) Kayıplı sıkıştırma yöntemleri: JPEG (Joint Photographic Experts Group - DCT) JPEG2000 (Wavelet) Fractal Tekniği Bölüm 5 - Görüntü Sıkıştırma

3 RLE (Run Length Encoding)
RLE’nin temel mantığı, bir değerin ardışık olarak çok sayıda tekrar etmesi durumunda, o değeri bir defa kodlayıp, ardından tekrar sayısını kodlamaktır. Siyah/beyaz görüntüler gibi iki değerli (bi-level) kaynaklar için değer kodlanmayıp sadece tekrar sayısı kodlanabilir: Bir satırdaki 640 pikselin renkleri sırayla; önce 200 adet beyaz, sonra 240 adet siyah ve sonra yine 200 adet beyaz şeklinde ise, o satır RLE ile (200, 240, 200) şeklinde kodlanabilir. İlk pikselin her zaman beyaz olduğu farz edilir. Bu durumda ilk 200 piksel siyah olsaydı önce 0 sonra 200 kodlanacaktı. Bölüm 5 - Görüntü Sıkıştırma

4 RLE (Run Length Encoding)
RLE, her tür veri için kullanılabilir bir algoritma olsa da, aynı sembolün ardışık olarak çok defa tekrar etmesi durumunda iyi bir sıkıştırma oranı sağladığı için, genellikle görüntü sıkıştırmada kullanılır. BMP, PCX ve TIFF görüntü dosya formatları, RLE ile sıkıştırma yapabilir. Bölüm 5 - Görüntü Sıkıştırma

5 Bölüm 5 - Görüntü Sıkıştırma
CCITT T4 (Group 3) Fax makinelerinde kullanılan CCITT T4 (Group 3) standardı, RLE ve Huffman kodlamasını bir arada kullanan bir standarttır. Bu standartta ilk piksel her zaman beyaz kabul edilir. Tekrar sayıları çok fazla farklı sayıda olasılığa sahip olabilecekleri için, 64’ten büyük olan tekrar sayıları önce 64’e bölünür, sonra bölüm ve kalan farklı Huffman Tabloları kullanılarak kodlanır. Bu kodlama modified Huffman (MH) ya da Group 3 One-Dimensional (G31D) olarak bilinir. Bölüm 5 - Görüntü Sıkıştırma

6 Bölüm 5 - Görüntü Sıkıştırma
CCITT T4 (Group 3) CCITT T4 standardı, IBM tarafından 1979 yılında geliştirilen MMR (Modified Modified READ) sıkıştırmasını da kullanabilir. Group 3 Two-Dimensional (G32D) olarak ta bilinen bu yöntemle bir önceki satır da dikkate alınarak daha yüksek sıkıştırma oranlarına ulaşılmaktadır. Fakat MMR’nin sıkıştırma performansı da, daha sonra geliştirilen JBIG standardının gerisinde kalmıştır. Bölüm 5 - Görüntü Sıkıştırma

7 JBIG (Joint Bi-level Image Experts Group)
ISO/IEC JTC1/SC29/WG1 ve CCITT SGVIII grupları, 1988’de birleşerek faks iletiminde kullanılmak üzere (1-bit renk derinliği) yeni bir standart geliştirmeye başlamışlar ve 1993 yılında tamamlamışlardır. JBIG standardının temelinde yatan QM kodlayıcısı, Q kodlayıcısı olarak adlandırılan uyarlanmış ikili aritmetik kodlayıcının değiştirilmiş bir halidir (işlem etkinliğini arttırmak için çarpma ve bölme işlemleri kaldırılmıştır). JBIG kademeli aktarıma (progressive transmission) izin verir. Bölüm 5 - Görüntü Sıkıştırma

8 Bölüm 5 - Görüntü Sıkıştırma
Kademeli Aktarım Görüntünün tüm piksellerini sırayla göndermek yerine, önce düşük çözünürlüklü bir yada birkaç gösteriminin gönderilmesi kademeli aktarımdır. Bu iş için görüntü bloklara ayrılır ve her bir bloğu temsil etmek için o bloktaki bir pikselin değeri gönderilir. Örneğin 800x600 piksel büyüklüğünde bir görüntü 8x8 piksel boyutunda bloklara ayırıp, her bir bloğu temsil etmek için o bloğun sol üst köşesindeki pikselin değeri gönderilebilir. Sonuçta alıcı tarafa 100x75 piksel boyutunda, orijinal görüntünün hem en hem de boydan 1/8’i büyüklüğünde düşük çözünürlüklü bir kopyası iletilmiş olur. Bölüm 5 - Görüntü Sıkıştırma

9 Bölüm 5 - Görüntü Sıkıştırma
Kademeli Aktarım Bölüm 5 - Görüntü Sıkıştırma

10 Bölüm 5 - Görüntü Sıkıştırma
Kademeli Aktarım Bölüm 5 - Görüntü Sıkıştırma

11 Kademeli Aktarım Sol üst pikselin değerini göndermek yerine temsil ettiği 4 (ya da 16, 64, …) pikselin ortalamasının değerini göndermek daha iyi sonuç verir. Fakat 1 bpp kullanıldığında, siyah ve beyaz piksellerin eşit sayıda olması sık karşılaşılan bir durumdur. Bu durumda siyah ile mi yoksa beyaz ile mi temsil edileceğine karar vermek sorun olacaktır. JBIG buna karar vermek için alt kademeden 9, üst kademeden 3 değer kullanır: Blok Değeri = 4e + 2(b + d + f + h) + (a + c + g + i) – 3(B + C) – A A B a b c d e f C ? Formülün sonucu 4.5’ten küçükse ‘?’ pikseli 0, büyükse 1 olarak belirlenir. g h i Bölüm 1 - Giriş

12 JBIG Sıkıştırma Prensibi
Bir görüntüdeki piksellerin ¼’ünün siyah geri kalanının beyaz olduğunu düşünelim. İstatistiksel bir yöntem ile sıkıştırma yaparsak, aşağıdaki entropi hesabından da görüleceği gibi en çok 1 bpp yerine 0.81 bpp sıkıştırma oranını elde edebiliriz: H = (1/4)log2(4/1) + (3/4)log2(4/3) = Eğer görüntüde siyah pikseller belirli bir kesimde yoğun ise, o kesim için ayrı; diğer bölümler için ayrı olasılık bilgisine göre davranmak sıkıştırma oranını arttıracaktır. Örneğin resmin kenarlarında %90 beyaz, %10 siyah, resmin toplam alanının 1/5’i kadar büyüklükte olan orta kesimlerde ise %85 siyah, %15 beyaz piksel oranı varsa: H = 0.9log2(10/9) + 0.1log2(10/1) = 0.47 (kenarlarda) H = 0.15log2(100/15) log2(100/85) = 0.61 (ortada) Bölüm 1 - Giriş

13 JBIG Sıkıştırma Prensibi
Resmin kenarlarında (4/5’inde) 0.47, ortasında (1/5’inde) ise 0.61 entropi değeri elde edildiğine göre, resmin geneli için ortalama entropi oranının 0.5 olacağı söylenebilir. Bu durumda resmin farklı bölümlerindeki farklı dağılım oranına göre sıkıştırma yaptığımızda 0.81 bpp yerine, 0.5 bpp sıkıştırma oranına kadar ulaşabileceğimizi söyleyebiliriz. JBIG, kodlanacak her piksel için o piksele yakın konumdaki daha önceden kodlanan 10 pikselin değerine göre bir olasılık tablosu seçip, bu tabloyu QM kodlayıcısında kullanır. Bölüm 1 - Giriş

14 JBIG Sıkıştırma Prensibi
Sıralı aktarımda ve kademeli aktarımda uygulanan sıkıştırma prensibi aynıdır. Sıralı aktarımda ve kademeli aktarımın ilk kademesinde aşağıdaki iki farklı şablondan biri kullanılır: Toplamda 1024 (210) farklı durum olabileceği için 1024 adet olasılık tablosuna ihtiyaç vardır. Sadece 2 değer bulunduğu için her tabloda 1 olasılık bilgisinin saklanması yeterlidir. O O O O O O O A O O O O O A O O ? O O O O ? Bölüm 1 - Giriş

15 JBIG Sıkıştırma Prensibi
Şekillerde ? ile gösterilen piksel kodlanacak olan pikseldir. O ve A ile gösterilen pikseller ise daha önceden kodlanmış (hem kodlayıcıda hem de çözücüde bulunan) piksellerdir. A seyyar bir pikseldir ve bulunacağı yer kodlanan içeriğe göre değişebilir. Örneğin 30 piksel mesafe aralığı ile tekrarlanan dikey çizgilerin bulunduğu bir görüntünün sıkıştırılmasında A pikseli kodlanacak olan piksele 30 birim uzaklıkta bile olabilecektir. Kodlayıcı iki şablondan hangisinin kullanılacağına ve daha iyi bir sıkıştırma için A’nın nerede olması gerektiğine karar verecektir. Sıkıştırılan mesaj dizisinin başında bu bilgi yer alacaktır. Bölüm 1 - Giriş

16 JBIG Sıkıştırma Prensibi
Kademeli aktarımın ilk kademesi dışındaki diğer kademelerinde ise aşağıda gösterilen 4 farklı şablondan biri kullanılır. Önceden kodlanmış kademeye ait pikseller O O O O A O O A O O A O O A O O O O O O O O ? O O ? O O ? O O ? O O O O O O O O O O O O Bölüm 1 - Giriş

17 JBIG Sıkıştırma Prensibi
Kademeli aktarımda 4 şablondan hangisinin kullanıldığının da 2 bit büyüklüğünde bir ön bilgi olarak eklenmesi gerekeceği için, pikseller için gereken 10 bit ile beraber toplam 12 bit’e ihtiyaç duyulacaktır. Bu da 4096 farklı durumun gerçekleşebileceğine işaret eder. Bölüm 1 - Giriş

18 Bölüm 5 - Görüntü Sıkıştırma
JBIG-2 ISO ve ITU’nun ortak geliştirdiği bir standarttır. ITU tarafında T.88 olarak, ISO tarafında ise kod numarası ile projelendirilen JBIG-2 standardı, 2000 yılında tamamlanmıştır. JBIG-2 kodlayıcısı, bir sayfadaki metin türünde verinin her karakterini sembol olarak, resim türü verileri desen olarak, diğer verileri de genel veri olarak görür ve üç grubu da farklı kodlar. Bölüm 5 - Görüntü Sıkıştırma

19 JBIG-2 Semboller her zaman bir karakteri temsil etmek zorunda değildir. Karaktere benzeyen başka ufak şekiller de sembol olarak değerlendirilebilir. Sembollerin bir sözlüğü oluşturularak aritmetik kodlama ile sıkıştırılır. Kayıplı sıkıştırma yapılırken birbirine benzeyen semboller arasındaki farklılık göz ardı edilerek, ikisi aynı sembol gibi düşünülür. Kayıpsız sıkıştırmada ise benzer olan sembollerden biri, diğer sembolün yaratılması için referans olarak kullanılır. Bölüm 1 - Giriş

20 Bölüm 5 - Görüntü Sıkıştırma
JBIG-2 Desen olarak düşünülen resimler yarım ton (halftone) desenlerinden oluşan bir sözlük kullanılarak sıkıştırılır. Genel veriler QM kodlayıcısına benzer olan ve yine onun gibi içeriğe bağımlı olan MQ kodlayıcısı ile kodlanır. (JPEG 2000 de MQ kodlayıcısını kullanır) Bölüm 5 - Görüntü Sıkıştırma

21 JPEG-LS (JPEG-Lossless)
ISO/IEC tarafından geliştirilmiş, 1998 yılının sonlarında tamamlanmıştır. Temelinde “Hewlett-Packard Laboratories” tarafından geliştirilen LOCO-I (LOw COmplexity LOssless COmpression for Images) algoritması yer almaktadır. Kayıpsız veya az kayıplı sıkıştırabilir. Artık değer kodlaması tabanlıdır. Hem renkli hem de gri-tonlamalı görüntülerin sıkıştırılmasında kullanılır. Renkli görüntülerde kırmızı, yeşil ve mavi renk değerleri için gri-tonlamalıdaki mantığın ayrı ayrı kullanılması ile sıkıştırma yapar. Bölüm 5 - Görüntü Sıkıştırma

22 JPEG-LS (JPEG-Lossless)
Kodlayıcı görüntünün sol üst pikselinden başlayarak sağ alt pikseline kadar satır tarama düzeninde işlem yapar. Bundan dolayı, bir pikselin değeri tahmin edilirken kodlayıcı ve çözücüde o pikselin üstündeki ve solundaki piksellerin değerleri mevcuttur. JPEG-LS algoritması bu değerlerden sadece 4 tanesini kullanır; soldaki (W), üst soldaki (NW), üstteki (N) ve üst sağdaki (NE). Tahmin iki aşamada gerçekleşir. İlk aşamada her piksel değeri için aşağıdaki gibi tahmin yapılır: Bölüm 5 - Görüntü Sıkıştırma

23 JPEG-LS (JPEG-Lossless)
Bu denklem aslında görüntüdeki kenarları tarif ederken komşu piksellerin ortalama değerleri ile ilgilenme mantığına dayanır. İlk iki madde dikey ve yatay kenarları yakalar. Örneğin, eğer W < N ise ve N  NW ise, bu yatay kenarı işaret eder ve W tahmin olarak kullanılır. Son madde ise kenar olmayan durum içindir. Bölüm 5 - Görüntü Sıkıştırma

24 JPEG-LS (JPEG-Lossless)
Elde edilen G tahmininden sonra ikinci bir geçiş ile, yapılan bu tahminin çevresindeki piksel çiftlerinin değerlerinin farklarına göre düzeltmesi yapılır. Üç piksel çifti kullanılır, bunlar; (NW, W), (NW, N) ve (N, NE). İki bitişik pikselin değerlerinin farkına göre, her biri 9 grubun birine sınıflandırılır (-4 ile 4 arasına nicelenir). Bu da toplamda 729 (=93) farklı durumu ortaya çıkarır. Her farklı durum, tahmini düzeltmek için kullanılan kendine ait düzeltme değerini ve o durum için daha önceki tahminlerin kaliteleri ile ilgili bilgiyi saklar. Algoritma ikinci geçişten sonra sonuç tahmini üretir ve gerçek değer ile arasındaki farkı (artık değeri) kodlar. Bölüm 5 - Görüntü Sıkıştırma

25 GIF (Graphics Interchange Format)
1987’de CompuServe tarafından yaratılmıştır. LZW tabanlıdır. En fazla 8-bit renk derinliğinde (28 = 256 renk) çalışır. Fotoğraf görüntülerinin sıkıştırılmasında yetersiz kalsa da, birkaç rengin çoğunlukta olduğu grafiksel gösterim, basit şekiller, vb. gibi görüntülerin kayıpsız olarak sıkıştırılmasında halen kullanılmaktadır. Bölüm 5 - Görüntü Sıkıştırma

26 TIFF (Tagged Image File Format)
Aldus Corporation’ın 1988’de 5.0 sürümünü çıkardığı TIFF dosya formatı, bu sürümle beraber RGB bitmap verilerini LZW algoritması kullanarak sıkıştırabilme yeteneğine kavuşmuştur. 24-bit renk derinliğini desteklemesi sayesinde fotoğrafların kayıpsız olarak sıkıştırılmasında kullanılır. Bölüm 5 - Görüntü Sıkıştırma

27 PNG (Portable Network Graphics)
Tabanında ZLIB ve DEFLATE veri sıkıştırma teknikleri yer almaktadır. Sıkıştırma performansı GIF ve altyapısındaki LZW algoritmalarından daha iyidir. Patent ile korunmayan bir standarttır. 1996’da tamamlanmıştır. 48-bit gerçek renk ve 16-bit gri tonlama desteği vardır. Bölüm 5 - Görüntü Sıkıştırma

28 Kayıpsız Görüntü Sıkıştırma Yöntemlerinin Karşılaştırılması
Her yöntem her tip görüntü için en iyi sonucu vermez. Görüntünün türüne göre sıkıştırma yöntemini seçmek gerekir. Sonraki slaytlarda görülecektir ki, basit çizimlerin sıkıştırılmasında etkili olan yöntemler, fotoğraf türü karmaşık görüntülerde başarısız olmuşlar, fotoğraf sıkıştırmada iyi olan yöntemler ise (JPEG-LS, JPEG2000-Lossless) basit çizimleri iyi sıkıştıramamışlardır. Bölüm 1 - Giriş

29 Grup 1 (1-bit ve 4-bit) Bölüm 1 - Giriş

30 Grup 1 (1-bit ve 4-bit) Sonuçlar
Bölüm 1 - Giriş

31 Grup 2 (8-bit) Bölüm 1 - Giriş

32 Grup 2 (8-bit) Sonuçlar Bölüm 1 - Giriş

33 Grup 3 (24-bit Şekil) Bölüm 1 - Giriş

34 Grup 3 (24-bit Şekil) Sonuçlar
Bölüm 1 - Giriş

35 Grup 4 (24-bit Siyah/Beyaz Fotoğraf)
Bölüm 1 - Giriş

36 Grup 4 (24-bit Siyah/Beyaz Fotoğraf) Sonuçlar
Bölüm 1 - Giriş

37 Grup 5 (24-bit Renki Fotoğraf)
Bölüm 1 - Giriş

38 Grup 5 (24-bit Renki Fotoğraf) Sonuçlar
Bölüm 1 - Giriş

39 Karşılaştırma Sonuçları - 1
Sıkıştırma paketleri içinde RAR, görüntü formatları içinde ise PNG, tüm gruplarda başarılı sonuçlar ortaya koymuş, her tip görüntü için kullanılabilir oldukları görülmüştür. ZIP hiçbir dosyayı RAR’dan daha iyi sıkıştıramamış, grup numarası arttıkça RAR’ın daha da gerisine düşmüş, beşinci grupta aralarındaki fark %50’ye yaklaşmıştır. Bölüm 1 - Giriş

40 Karşılaştırma Sonuçları - 2
GIF formatı 8-bit renk derinliğini desteklediği için, 256’dan fazla sayıda renk içeren Grup 5’teki dosyalarda kayıplı sıkıştırma yapmaktadır. Bu yüzden bu grupta karşılaştırmaya dahil edilmemiştir. Sıkıştırma sonuçlarına bakıldığında GIF, renkli fotoğraflar haricinde halen kullanılabilir bir alternatif olduğunu göstermiştir. Bölüm 1 - Giriş

41 Karşılaştırma Sonuçları - 3
TIFF-LZW’nin farklı bir versiyonu olan ve ilk üç grupta onun gerisinde kalan TIFF-LZWP, renk sayısı arttıkça TIFF-LZW’ye oranla daha başarılı olmuştur. TIFF-ZIP, veri sıkıştırma versiyonu olan ZIP’in gerisinde ama ona yakın sonuçlar elde etmiş, fakat tüm dosyalar için PNG’nin gerisinde kalarak, görüntü formatları arasında iyi bir alternatif olamayacağını göstermiştir. Son grupta TIFF-LZWP’nin de gerisine düşmüştür. Bölüm 1 - Giriş

42 Karşılaştırma Sonuçları - 4
Basit bir sıkıştırma mantığı kullanan TIFF-RLE, tüm gruplarda son sıralarda yer almaktan kurtulamamıştır. Fotoğraf gibi karmaşıklığı fazla olan görüntülerde başarısız olan sözlük tabanlı yöntemlerin, daha sade görüntülerde daha üstün oldukları ortaya çıkmıştır. Sözlük tabanlı ISSDC en büyük başarısını üçüncü grupta, yani yüksek renk derinliği ve düşük renk sayısına sahip olan dosyalarda göstermiştir. Bölüm 1 - Giriş

43 Karşılaştırma Sonuçları - 5
JPEG ailesinin kayıpsız sıkıştırma yapan versiyonları da, kayıplı versiyonları gibi fotoğraf görüntülerinde başarılı olduklarını göstermişlerdir. İçlerinde en iyisi olan JPEG2000’nin kayıpsız versiyonu, özellikle siyah/beyaz fotoğraflar için alternatifsizdir. JPEG-LS ve TIFF-JPEG ise sadece renkli fotoğraflarda etkilidirler. Bölüm 1 - Giriş


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

Benzer bir sunumlar


Google Reklamları