Sıkıştırma Algoritmaları-Huffman Sıkıştırma Algoritması
Renegadealien'ın Notu: Zip Rar vs. uzantılı sıkıştırma formatlarından bilgisayarla uğraşan hemen hemen herkezin haberi vardır. Huffmanda işte bu tip sıkıştırma algoritmalarının temellerinden birisini oluşturmakta. Okuldaki bir ödevden dolayı yaptığım bu araştırmanın yararlı olacağını düşündüm. Dökümanın yazarı Fatih Gelgidir. Bütün hakları da bu şahısa aittir.
Bilgisayarda veri sıkıştırma işleminin uygulanmasının temel nedeni, sıkıştırılmış verinin daha az yer kaplamasıdır. Çoğu kişinin merak ettiği konulardan bir tanesi de budur; veriler nasıl sıkıştırılır, acaba verileri mengeneye koyarsak sıkışır mı?
Neyse fazla uzatmadan sıkıştırma yöntemimize geçelim. Bazı sıkıştırma yöntemleri sıkıştırma işlemi sırasında veri kaybına yol açar, bazılarında ise bu durum gerçekleşmez. Biz bu yazımızda hiç veri kaybına sebebiyet vermeyen çok sağlam bir sıkıştırma tekniğinden bahsedeceğiz; Huffman veri sıkıştırma tekniği.
Huffman sıkıştırma tekniği ASCII kod tablosundaki karakterlerin bir veri parçasındaki sayısına göre yeniden kodlanması esasına dayanır. Sıkıştırma yöntemi temel olarak şu basamaklardan oluşur;
-
Veri parçası içindeki karakterlerin sayılması
-
Huffman ağacının oluşturulması
-
Oluşturulan ağaca göre yeni kod tablosunun oluşturulması
-
Verinin yeni kod tablosuna göre yeniden yazılması
Şimdi bu basamakları daha ayrıntılı olarak inceleyelim.
1. Veri Parçası İçindeki Karakterin Sayılması
Elimizdeki verinin içerdiği aynı karakterden kaç tane olduğu sayılır. Mesela, elimizde ’abcabbbcdaabccdaabb’ verisi var. Bu veride 6 tane a, 7 tane b, 4 tane c ve 2 tane de d harfi vardır.
Hit: 4735
Yazar: renegadealien