Title: Fractal Resim Sikistirma
1Fractal Resim Sikistirma
- Hazirlayan Ar.Gör.Cengiz Güngör
- Haziran-2003
2Fractal Resimler
Çoklu Küçültme Yapan Fotokopi Makinesi
- Orijinalden ayni anda birden çok, üst üste
binebilen kopya çogaltmak için dizayn edilmis
birden fazla mercek içerir. - Her mercek orijinali belirli miktarda küçültecek
sekilde yapilmistir.
Örnegimizin Özellikleri 3 mercekli, Her mercek
orijinali 21 oraninda küçültüyor, 1. kopya üst
ortaya, 2. kopya sol alta, 3. kopya sag alta
geliyor.
3Fractal Resimler
4Çiktilari Girdi Olarak Verip, Tekrar Tekrar
Kopyalarsak
Sierpinskis Triangle
. . .
5Küçültme Isleminin Nedeni
- Tüm lensler girdi olarak verilen resmi
küçültmektedir, bu islem contractive mapping
olarak bilinir. - Lenslerin contractive özellikleri yani
küçültme yapmalari kritik bir önem tasir. - Contractive özellik tekrarli süreçlerde ilk
verilen resim ne olursa, final resmin hep ayni
çikmasini garantiler. - Non-contractive diye bilenen sürekli
genisleyen yapida bir islemle bir final resme
ulasmamiz imkansizdir. Elde edecegimiz sey sonsuz
boyutta dagilmis bir çiktidir. - Bu yüzden Fractal resimlerde hep contractive,
yani küçülten islemler kullanilir. Yukaridaki
örnegimizde ½ oraninda küçültme vardir.
6Tekrar Tekrar Kopyalamak
Belli bir tekrardan sonra çiktilar girdi ile ayni
olmaktadir. Bu yüzden kopyalama makinesinin
parametrelerini biliyorsak, sonuçta ne elde
edecegimizi de bilebiliyoruz.
7Fotokopi Makinemize ait Affine Transformasyonlar
- Her lense ait ayri bir contractive affine
transformation matrisi vardir - Bu matris ile küçültme/büyütme (scale), döndürme
(rotate), egme (share) ve öteleme/yer degistirme
(translate) islemleri yapilabilmektedir. - Yani bir (x,y) noktasinin yeni koordinati olan
(x,y) su sekilde elde edilir (transformasyon
islemi) - Örnegimizdeki herbir lens için transformasyon
matrisleri
8Döndürmenin Etkileri
9Fraktal Geometrinin Temelleri
- Yinelemeli Fonksiyon Sistemleri (IFS)
IFS Tree
IFS Fern
10(No Transcript)
11(No Transcript)
12(No Transcript)
13Fractal Resim Sikistirma
- Fractalleri resim sikistirmak için kullanma
mantigi 4 temel varsayima dayanmaktadir 1.
Çogu dogal manzara/resim detay içinde detaylara
sahiptir. Bu Mandelbrot ile baslayan Fractal
Devrimi nin bir getirisidir.
2. Iterated Function Systemleri ile dogala
benzeyen resimleri üretelebilir. 3.
Kullanilacak IFS çok kompakt bir biçimde
saklanabilir. Yandaki agaç için 4 transformas-yon
kullanilir, bu da 4 adet matris yani 4 adet
(a,b,c,d,e,f) parametresi demektir. Bitmap resim
olarak 256K dosya seklinde saklamak yerine 176
byte ile saklanabilir. Yani yaklasik 15001
sikistirma ile saklamak mümkündür.4. IFS
orjinal resmi kullanip tersten giderek elde
edilebilir. Ileriki slaytlarda gösterilecektir.
14Kolaj Teoremi
- Eger w1, w2, ... , wn seklinde tanimli n adet
contractive affine transformasyon tanimli ise,
verilen girdiye tüm bu transformasyonlar
uygulandiginda elde edilen sonuç seklinde
bilesim olarak ifade edilebilir. - Baslagiç imajimiza Io , son imajimiza I8 dersek,
- 1. çikti I1 W(Io), ... Son imajimiz ise su
sekilde ifade edilebilir - Bu ifadenin anlami W transformasyonlar
bütününün her uygulanisinda detaylar artarak,
limit mantiginda oldugu gibi bir sonuç imaja
dogru yaklasilmaktadir, ve belli bir iterasyondan
sonra sonuç degismiyor denilebilir. - Gerçekten de sonuç imajin detaylarina
bakildiginda kendi benzerleri görülür.
15Resim Içinde Benzer Parçalar
- Küçük parçalara Range adi verilir.
- Büyük parçalara da Domain adi verilir.
16Range ve Domainler
Rangeler
Domainler
17Neden Fractal Resim Sikistirma ?
- Sikistirma islemi, bir blok veriyi bellekte daha
az yer kaplayacak sekilde tutmayi
amaçlamaktadir. - Daha az yer kaplayan veri, bir noktadan digerine
daha hizli iletilebilecektir. - JPEG, Wavelet gibi yöntemlerde 95 oraninda
(baska bir deyisle 201 oraninda) sikistirilan
resimlerde deformasyon gözlenmekte sikistirma
orani arttikça bozulma hizla artmaktadir.
18Neden Fractal Resim Sikistirma ?
19JPEG Kodlama
20JPEG Kodlama
21JPEGde Bozulmalar
22JPEGde Bozulmalar
23JPEGte Bozulmalar
- 54 21 15 12 10 9 8
6 5.4 3.5 2 (KB)
24Neden Fractal Resim Sikistirma ?
- Bir kez fractal resim sikistirma isleminden
geçirilmis bir resim her hangi bir boyutta tekrar
açilabilmektedir ve ortaya çikan sonuç bir
yagliboya tablo gibi olmaktadir.
25Iterasyonlarla Decompress-1
26Iterasyonlarla Decompress-2
27Iterasyonlarla Decompress-3
28Iterasyonlarla Decompress-10
29Parçalarina Ayirma (Partitioning)
- Sabit boyutlu bloklar
- JPEGte de kullanilan en basit yöntemdir
- Blogun yerini belirtmek için birkaç bit
kullanilirken, blogun diger detaylari için daha
fazla bit kullanilabilir. - Sabit boyutlarla islenen resimde, sikistirma
orani da olur.
30Parçalarina Ayirma (Partitioning)
- Quadtree
- En çok bilinen ayirma yöntemidir
- 4 kollu agaç yapisinda, recursive olarak
kullanilir. - Istenilen tolerans degeri saglanmi-yorsa, büyük
rangeler 4 küçük parçaya bölünür. - Tolerans degerleri küçük olursa, rangeler
küçülür, sikistirma orani azalir, fakat kalite
artar. - Tolerans degerleri yükseltilirse büyük rangler
kabul görür, sikistirma orani artar, fakat kalite
azalir
31Quadtree ile Decoding
32Range ve Domain Benzerligi
33Algoritma Degerlendirme Kriterleri
- Sikistirma orani
- Kodlanmis resmin boyutu / orijinal boyut
- Sikistirma süresi
- Sonucun kalitesi
- PSNR (Peek-to-peek signal-to-noise ratio)
34RMS Ölçümünde Lineer Iliskiler
35Islem Karmasikliginin Nedenleri
- Her bir range için tüm domainlerle
karsilastir-malar yapilir ve minimum hata
döndüren (yani en yakin benzeri olan) bir domain
bulunur - Hazirlik asamasinda
- Her Domain için ?dj ve ?dj2 hesaplanip saklanir.
v
v
X
v
v
v
36Islem Karmasikliginin Nedenleri
- Islem süresini ?djrj çarpimlarinin adedi
belirler. - 512x512 lenna resminde, 32x32 piksel boyutlarina
sahip 256 adet range için aranacak 12769 adet
domain var, bu da 3.3 milyar çarpma-toplama
demektir. - 16x16 rangeler için 3.8 milyar çarpma-toplama
- 8x8 rangeler için 4.1 milyar çarpma-toplama
- 4x4 rangeler için 4.2 milyar çarpma-toplama
- Bu arayis bir NP-Hard problemdir.
37Islem Sayisinin Azaltmak için Ortalamaya Göre
Siniflandirma
- Sinif numarasi için
- Bir pikselin degeri blogun ortalamasindan büyükse
0 - Küçük Esitse 1
- binary kodu verelim.
- 16 adet piksel 16 bitlik sinif numarasi
olustururlar
38Islem Sayisinin Azaltmak için Ikili Agaç
Kullanilmasi
39Agaç Yerine 65536 Elemanli Pointer Dizisi
Kullanilmasi
40Yöntemin Etkinligi
- Her Rangein benzeri tüm Domainlerle
karsilastirildiginda (Brute-Force yöntemi)
Süre 34,53 Sikistirma Orani 22,72 PSNR
33,743 - Mevcut en etkin Saupe-Fisher algoritmasi ile
Süre 1,39 Sikistirma Orani 22,11 PSNR
33,749 - Bizim yöntemimizle (Hizli)
(Kaliteli) Süre 0,22 1,36 Sikistirma
Orani 18,17 22,74 PSNR 33,643 33,715