Sıra | DOSYA ADI | Format | Bağlantı |
---|---|---|---|
01. | Renk Kanallarını Farklı Şekilde Kodlayarak Sıkıştırma Oranını Arttırma | ppt | Sunumu İndir |
Transkript
Renk Kanallarını Farklı Şekilde Kodlayarak Sıkıştırma Oranını Arttırma Emir Öztürk, Altan Mesut
Giriş Kanalları Farklı Şekilde Kodlama Temelli Çalışmalar Ebmp SSBB (Statik Sabit Büyüklükte Bölümlendirme) DSBB (Dinamik Sabit Büyüklükte Bölümlendirme) DDBB (Dinamik Değişken Büyüklükte Bölümlendirme) Testler ve Sonuçları Sonuçlar
Giriş JPEG, JPEG2000 ve JPEG XR gibi kayıplı görüntü sıkıştırma standartları farklı hızlarda ve farklı kalite oranlarında sıkıştırma yapmaktadırlar. Fakat bu yöntemler genellikle fotoğraf türündeki karmaşık görüntülerin sıkıştırılması amacıyla kullanılırlar. Karmaşıklığın daha az olduğu görüntülerde GIF ve PNG gibi kayıpsız görüntü sıkıştırma yöntemleri kullanılmaktadır. Resmin renk kanalları üzerinde yapılan işlemler ile sıkıştırma performansının arttırılması mümkündür.
Kanalları Farklı Şekilde Kodlama Temelli Çalışmalar Kanalları farklı şekilde kodlama temelli çalışmalarda, resmin renk kanalları üzerinde yapılan işlemler ile sıkıştırma performansının arttırılması amaçlanmıştır. Renk kanalları üzerinde yapılan dönüşüm işlemleri, dosya yapısındaki kanalların saklama sıralamalarının değiştirilmesi veya R, G, B kanallarının dizilere ayrılıp üzerinde işlemler yapılması, herhangi bir kanalın dinamik olarak bölümlendirilmesi gibi farklı yöntemler denenmiş ve her bir yöntemin sonucu alınarak karşılaştırma sonuçları incelenmiştir.
EBMP EBMP’de 24 bpp bitmap resim alındıktan sonra kırmızı, yeşil ve mavi kanalları ayrı ayrı 3 adet bayt dizisine atanır. Daha sonra diziler R, G ve B renk kanalı sırasıyla art arda eklenir. Seçime bağlı olarak kanallar ayrıldıktan sonra RLE işlemi de uygulanabilir.
Statik Sabit Büyüklükte Bölümlendirme (SSBB) Bu yöntemde alınan resim öncelikle girdi olarak verilen parça boyutu kadar parçalara bölünür. Bölünen dosyaların her biri için renk kanalları satır sıralı olarak ayrı ayrı dizilere aktarılır ve bu diziler R-G-B sırası ile ardı sıra eklenir.
Dinamik Sabit Büyüklükte Bölümlendirme (DSBB) Alınan 0-255 arası bir fark değerine göre resmin herhangi bir kanalında yan yana olan pikseller taranır ve bulunana kadar yatay olarak ilerlenir. Verilen fark bulunduğunda parçanın yatay boyutu bulunmuş olur. Dikey taramada da aynı fark değerine göre alt alta pikseller kontrol edilir. Fark değeri sağlandığında parçanın dikey boyutu da bulunmuş olur ve sol üstten itibaren referans alınan parça büyüklüğü tüm resme uygulanır.
Dinamik Sabit Büyüklükte Bölümlendirme (DSBB) Parça boyutunun belirlenmesi aşamasından sonraki diğer adımlar daha önceki uygulamalarda olduğu gibi kanalların sıralanması şeklinde gerçekleşir. Dosya, karşılaştırma sonuçları için uygulama tarafından üretilir.
Dinamik Değişken Büyüklükte Bölümlendirme (DDBB) Resim öncelikle R, G ve B kanalları için 3 farklı bayt matrisine ayrılır. Daha sonra her matris üzerinde bölümlendirme işlemleri uygulanır. DSBB’den farklı olarak sabit bir parça boyutu belirlenmez. Uygulama çalıştırıldığında girdi olarak fark koşulu alınır. Her kanal matrisi için sol üst köşeden başlanmak koşuluyla önce yatay sonra dikey olmak üzere farkın sağlandığı piksel çiftleri taranır. Her iki boyut için de fark koşulu sağlandığında elde edilen parça satır sıralı olarak okunur ve parçaların saklandığı dosyaya yazılır. Bu sayede aynı sembollerin art arda gelmesi sağlanır. Ayrıca daha sonra açma işlemi için kullanılacak bir koordinat dosyası oluşturulur.
Dinamik Değişken Büyüklükte Bölümlendirme (DDBB) Resmin tarama işlemi sırasında işlenen parçaların saklandığı bir işaret matrisi tanımlanır. Bu matriste farklı boyuttaki parçalar tespit edildikçe, matris üzerinde tekrar okunmaması için işaretlenirler. Parçalama işlemi her kanal üzerinde ayrı ayrı yapıldığından dolayı, her kanaldaki parça sayısı farklı olacaktır.
Kullanılan Resim Dosyaları
Kanalları Farklı Şekilde Kodlama Sonuçları LZMA WinZip LZMA 7z LZMA2 7z PPMd WinZip PPMd 7z BZip2 WinZip BZip2 7z Deflate WinZip Deflate64 WinZip Orijinal Resim 2,492 69ms 2,498 754ms 2,498 776ms 3,234 358ms 3,266 347ms 3,14 514ms 3,082 687ms 3,741 214ms 3,234 367ms EBMP +RLE 2,748 411ms 2,749 749ms 2,749 751ms 2,559 466ms 2,528 578ms 2,823 356ms 2,817 680ms 4,395 377ms 2,559 445ms EBMP 2,396 294ms 2,431 125ms 2,432 110ms 2,322 573ms 2,378 639ms 2,733 269ms 2,734 629ms 3,297 416ms 2,322 590ms SSBB 64px 2,351 489ms 2,377 355ms 2,377 367ms 2,678 315ms 2,745 344ms 3,021 152ms 3,021 440ms 3,324 359ms 2,678 313ms SSBB 128px 2,315 392ms 2,345 295ms 2,345 286ms 2,524 300ms 2,596 336ms 2,881 154ms 2,881 303ms 3,218 399ms 2,524 303ms SSBB 256px 2,334 328ms 2,365 186ms 2,368 250ms 2,417 303ms 2,481 316ms 2,794 158ms 2,795 260ms 3,22 408ms 2,417 302ms DSBB 64fark-R 2,395 322ms 2,434 197ms 2,434 211ms 2,321 302ms 2,377 327ms 2,695 161ms 2,691 266ms 3,303 367ms 2,321 303ms DSBB 128fark-R 2,395 308ms 2,433 172ms 2,433 227ms 2,322 306ms 2,378 338ms 2,689 140ms 2,688 245ms 3,305 358ms 2,322 291ms DDBB 128fark 2,398 281ms 2,433 188ms 2,433 179ms 2,351 299ms 2,411 322ms 2,777 155ms 2,775 224ms 3,301 383ms 2,351 305ms DDBB 200fark 2,404 269ms 2,442 185ms 2,441 211ms 2,332 303ms 2,388 328ms 2,748 135ms 2,748 238ms 3,309 373ms 2,331 305ms
Kanalları Farklı Şekilde Kodlama Sonuçları LZMA WinZip LZMA 7z LZMA2 7z PPMd WinZip PPMd 7z BZip2 WinZip BZip2 7z Deflate WinZip Deflate64 WinZip Orijinal Resim 0,295 336ms 0,293 317ms 0,293 308ms 0,32 99ms 0,321 77ms 0,306 110ms 0,307 456ms 0,507 155ms 0,32 99ms EBMP +RLE 0,283 280ms 0,283 271ms 0,283 266ms 0,409 77ms 0,293 93ms 0,392 104ms 0,391 224ms 1,132 625ms 0,409 74ms EBMP 0,256 325ms 0,256 301ms 0,256 305ms 0,324 107ms 0,304 84ms 0,385 145ms 0,373 121ms 0,873 208ms 0,324 100ms SSBB 64px 0,301 339ms 0,301 333ms 0,3 327ms 0,377 104ms 0,344 97ms 0,442 174ms 0,433 656ms 0,371 79ms 0,377 107ms SSBB 128px 0,272 327ms 0,272 297ms 0,272 286ms 0,344 108ms 0,318 94ms 0,407 141ms 0,396 670ms 0,328 77ms 0,344 88ms SSBB 256px 0,267 345ms 0,266 321ms 0,266 333ms 0,344 107ms 0,321 91ms 0,396 149ms 0,385 673ms 0,936 135ms 0,344 104ms DSBB 64fark-R 0,258 324ms 0,258 302ms 0,258 311ms 0,327 105ms 0,307 94ms 0,388 143ms 0,377 667ms 0,876 172ms 0,327 97ms DSBB 128fark-R 0,259 339ms 0,258 321ms 0,258 316ms 0,327 88ms 0,307 91ms 0,388 152ms 0,377 674ms 0,876 186ms 0,327 96ms DDBB 128fark 0,346 381ms 0,346 347ms 0,347 350ms 0,459 100ms 0,433 111ms 0,529 165ms 0,515 801ms 1,044 175ms 0,459 116ms DDBB 200fark 0,288 355ms 0,289 328ms 0,289 331ms 0,367 105ms 0,341 93ms 0,421 149ms 0,409 700ms 0,95 192ms 0,367 102ms
Kanalları Farklı Şekilde Kodlama Sonuçları LZMA WinZip LZMA 7z LZMA2 7z PPMd WinZip PPMd 7z BZip2 WinZip BZip2 7z Deflate WinZip Deflate64 WinZip Orijinal Resim 13,804 227ms 13,935 138ms 13,936 202ms 12,589 418ms 12,591 971ms 12,475 322ms 12,483 440ms 17,143 233ms 12,589 126ms EBMP + RLE 15,569 263ms 15,568 2 65ms 15,571 284ms 12,819 511ms 13,005 166ms 13,676 870ms 13,673 727ms 22,049 841ms 12,819 489ms EBMP 13,595 343ms 14,041 306ms 14,044 316ms 12,61 4 90ms 12,621 75ms 13,592 275ms 13,568 285ms 16,727 323ms 12,614 75ms SSBB 64px 13,051 338ms 13,34 275ms 13,343 253ms 12,858 790ms 12,866 946ms 13,934 338ms 13,851 743ms 15,991 342ms 12,858 876ms SSBB 128px 13,093 299ms 13,404 201ms 13,405 188ms 12,705 688ms 12,713 921ms 13,764 347ms 13,672 685ms 15,665 375ms 12,705 866ms SSBB 256px 13,286 344ms 13,652 235ms 13,655 243ms 12,654 415ms 12,66 955ms 13,658 344ms 13,61 718ms 15,896 413ms 12,654 129ms DSBB 64fark-R 13,912 442ms 14,365 400ms 14,366 405ms 12,853 124ms 12,858 107ms 13,912 374ms 13,9 838ms 17,354 378ms 12,853 114ms DSBB 128fark-R 13,593 349ms 14,031 252ms 14,033 235ms 12,587 37ms 12,593 509ms 13,53 347ms 13,527 542ms 16,761 388ms 12,587 46ms DDBB 128fark 13,476 283ms 13,881 196ms 13,884 194ms 12,668 124ms 12,676 977ms 13,663 335ms 13,63 481ms 16,475 383ms 12,668 598ms DDBB 200fark 13,596 314ms 14,043 241ms 14,044 267ms 12,616 43ms 12,623 410ms 13,595 336ms 13,574 529ms 16,73 389ms 12,616 144ms
Kanalları Farklı Şekilde Kodlama Sonuçları LZMA WinZip LZMA 7z LZMA2 7z PPMd WinZip PPMd 7z BZip2 WinZip BZip2 7z Deflate WinZip Deflate64 WinZip Orijinal Resim 0,103 94ms 0,103 73ms 0,103 96ms 0,085 32ms 0,08 19ms 0,076 35ms 0,076 85ms 0,106 33ms 0,085 29ms EBMP+ RLE 0,227 93ms 0,227 73ms 0,227 74ms 0,192 26ms 0,186 15ms 0,194 30ms 0,192 216ms 0,277 49ms 0,192 23ms EBMP 0,21 101ms 0,21 98ms 0,21 61ms 0,187 35ms 0,19 15ms 0,192 40ms 0,19 105ms 0,235 42ms 0,187 30ms SSBB 64px 0,26 127ms 0,259 104ms 0,259 125ms 0,256 30ms 0,262 18ms 0,275 41ms 0,273 157ms 0,341 50ms 0,256 30ms SSBB 128px 0,245 111ms 0,245 108ms 0,245 104ms 0,212 43ms 0,216 21ms 0,227 40ms 0,224 152ms 0,291 41ms 0,212 30ms SSBB 256px 0,239 111ms 0,24 91ms 0,24 96ms 0,205 40ms 0,209 22ms 0,211 41ms 0,208 144ms 0,276 46ms 0,205 40ms DSBB 64fark-R 0,218 116ms 0,217 99ms 0,217 87ms 0,194 40ms 0,198 19ms 0,205 40ms 0,202 124ms 0,252 40ms 0,194 37ms DSBB 128fark-R 0,218 110ms 0,217 90ms 0,217 96ms 0,194 36ms 0,198 26ms 0,205 36ms 0,203 125ms 0,252 37ms 0,194 43ms DDBB 128fark 0,501 119ms 0,5 107ms 0,5 96ms 0,536 38ms 0,539 26ms 0,569 44ms 0,566 191ms 0,682 41ms 0,536 43ms DDBB 200fark 0,452 110ms 0,451 91ms 0,451 93ms 0,445 41ms 0,447 23ms 0,489 57ms 0,484 174ms 0,558 50ms 0,445 40ms
Kanalları Farklı Şekilde Kodlama Sonuçları LZMA WinZip LZMA 7z LZMA2 7z PPMd WinZip PPMd 7z BZip2 WinZip BZip2 7z Deflate WinZip Deflate64 WinZip Orijinal Resim 16,772 235ms 16,874 191ms 16,875 199ms 16,01 261ms 16,024 227ms 15,24 101ms 15,241 604ms 19,405 58ms 16,01 260ms EBMP + RLE 18,909 358ms 18,908 289ms 18,913 305ms 16,139 522ms 16,176 547ms 16,773 218ms 16,732 460ms 26,038 501ms 16,139 512ms EBMP 15,909 223ms 16,66 190ms 16,663 196ms 15,897 245ms 15,896 224ms 16,554 101ms 16,544 785ms 20,185 68ms 15,897 243ms SSBB 64px 15,49 222ms 15,992 197ms 15,998 189ms 16,186 243ms 16,191 208ms 16,957 108ms 16,869 726ms 20,313 71ms 16,186 246ms SSBB 128px 15,541 235ms 16,149 196ms 16,153 189ms 15,969 243ms 15,972 206ms 16,737 105ms 16,67 714ms 20,218 69ms 15,969 249ms SSBB 256px 15,683 232ms 16,403 185ms 16,409 186ms 15,918 238ms 15,918 205ms 16,61 104ms 16,565 711ms 20,081 74ms 15,918 246ms DSBB 64fark-R 15,951 225ms 16,718 199ms 16,718 197ms 15,928 252ms 15,926 222ms 16,588 107ms 16,582 712ms 20,818 70ms 15,928 249ms DSBB 128fark-R 15,916 208ms 16,683 189ms 16,684 189ms 15,881 228ms 15,875 208ms 16,57 108ms 16,564 696ms 20,388 76ms 15,881 225ms DDBB 128fark 15,902 221ms 16,653 197ms 16,655 196ms 15,912 241ms 15,911 203ms 16,582 113ms 16,577 714ms 20,185 69ms 15,912 233ms DDBB 200fark 15,915 205ms 16,665 193ms 16,668 192ms 15,904 238ms 15,903 208ms 16,563 104ms 16,556 695ms 20,194 73ms 15,904 235ms
Sonuçlar Kanalları farklı şekilde kodlama yöntemlerinin her biri farklı sıkıştırma algoritmaları için avantaj sağlamaktadır. Bu yöntemler yaptıkları işlem bakımından birbirlerinden farklı zaman karmaşıklığına sahiptir. Yöntemlerin karmaşıklığıyla sonuçların doğrusal bir şekilde iyileşmesi gibi bir durum söz konusu değildir. Resmin karmaşıklık düzeyine göre bu algoritmalar belirli durumlarda resmi sıkıştırma yöntemlerinin daha iyi sıkıştırabileceği hale getirebilmektedirler.
TEŞEKKÜRLER