Bağlantılı Öğeler
Son Yorumlar
- En Kısa Yol Algoritması (10)
- Montaj hattı dengeleme (Konum Ağırlıklı Dengeleme Metodu) (3)
- PHP de Güvenlik Kodu Uygulaması (6)
- Goalunited İçin Saha Yerleşim Hesaplayıcı (12)
- Sıralama Algoritmaları (4)
- Bumerang Web Sitesi ve Blog Ödülleri Başlıyor! (1)
- Rubik Küp Çözümü (1)
- GoalUnited Rehberi (7)
Kimler Sitede
Şu anda 5 ziyaretçi çevrimiçiBağış
| Sıkıştırma Algoritmaları |
| Makale - Algoritma | |
| Yazar ugokhan | |
| Pazartesi, 14 Mayıs 2007 18:45 | |
|
Veri sıkıştırma işlemi, belirli uzunluktaki verilerin çeşitli yöntemlerle daha az bellek kullanılması amacıyla geliştirilmiştir. Bu sayede bellek üzerinde yer tasarrufu, veri aktarımında da zaman tasarrufu yapılabilmektedir.
Veri sıkıştırma yöntemleri iki grupta incelenir. Kayıplı ve Kayıpsız sıkıştırma. Kayıplı sıkıştırma daha çok multimedia verilerde kullanılır. Mpeg ve MP3 bunun en yaygın örneğidir. MP3'lerde insan kulağının duyamayacağı ses dalgaları kayıda alınmaz. Ayrıca JPEG resim sıkıştırma formatında da resim üzerinde belirli ara renk kayıpları olmaktadır.
İkinci tip sıkıştırma ise kayıpsız sıkıştırmadır. Özellikle sayısal sonuçların önemli olduÄŸu durumlarda kullanılır. Mesela bir exe dosyayı sıkıştırdığımızda hiçbir verinin kaybolmasını istemeyiz. Çünkü birkaç byte'ın bile farklı olması exe'nin çalışmamasına yol açabilir. Yukarıda bahsedildiÄŸi gibi tüm Multimedia formatları kayıplı deÄŸildir. GIF ve PCX formatı kayıpsız olarak sıkıştırma yapabilmektedir. 1. RLE SIKIÅžTIRMA ALGORİTMASI : En basit veri sıkıştırma yöntemidir. RLE (Run Lenght) yönteminde veriler adetleri tutularak sıkıştırılır. Kırmızı sayılar verilerin tekrar miktarını göstermektedir. Bu ÅŸekilde 33 karakterlik bir veri dizisi 18 karaktere sıkıştırılmıştır. Bu metod teoride doÄŸrudur fakat pratikte o kadar da verimli deÄŸildir. Hatta orjinal veriden daha fazla yer kaplayabilme ihtimali de vardır. EÄŸer "A B A B A B" verisini sıkıştırmak istersek "1A 1B 1A 1B 1A 1B" ÅŸekline dönüştürmemiz lazım bu durumda 6 karakterlik veriyi 12 karaktere çıkarmış oluruz. Yani geniÅŸletmiÅŸ oluruz. Ayrıca çok uzun verilerde veri uzunluÄŸu bilgisini Byte tipinden Word tipine çevirmek gerekir. Fakat 65535 karakterden uzun bir veriyle karşılaşılırsa yeni bir veri paketi oluÅŸturmak gerekir. Yani 100 MB'ı sıkıştırcam diye bir bakmışsın 200MB'lık sıkıştırma dosyası oluÅŸturmuÅŸsun. Etkin bir metod deÄŸil. RLE metodu tekrarı fazla olan verilerde kullanıldığında baÅŸarılıdır. Tekrarsız verilerde ise kesinlikle uygun deÄŸildir. Fakat bir çok sıkıştırma tekniÄŸi bu metod üzerine kurulmuÅŸtur. 2. LWZ / HUFFMAN ALGORİTMASI : Sıkıştırma oranı en yüksek algoritmalardan biridir. Karşılaşılan veri katarları bir tabloda tutularak aynı veri katarı ile karşılaşıldığında sadece tablodaki numarası yazılarak veri kısaltılmış olur. Â
 Yukarıdaki örnekte 34 byte'lık bir veri dizisi (20 + 8 = 28) byte uzunlukta sıkıştırılmıştır. EÄŸer aynı veriyi RLE metodu ile sıkıştırmış olsaydık 68 byte'lık bir veri elde edecektik. Yani tam 2 katına çıkaracaktık. LWZ / HUFFMAN algoritmasının baÅŸarı oranı, tekrarını bulabildiÄŸi daha uzun katarlar ile ölçülür. Yukarıdaki veri dizisi aÅŸağıda daha iyi sıkıştırılmıştır. Bu sefer tekrarı olan daha uzun metin katarları seçilmiÅŸtir. Bu ÅŸekilde (17 + 6 = 23) byte uzunluk elde edilmiÅŸtir. Â
 Alıntı : www.programlama.com
|

