Huffman Kodu, bilgisayar biliminde veri sıkıştırma için kullanılan, bir entropi algoritmasıdır. tarafından 1952 yılında geliştirilmiştir.
Huffman'ın algoritması, her sembol (veya karakter) için özel bir kod üretir. Bu kodlar ( 1 ve 0'lardan oluşan) bit haritası şeklindedir. Veri içerisinde en az kullanılan karakter için en uzun, en çok kullanılan karakter için ise en kısa kodu üretir.
Huffman tekniği günümüzde tek başına kullanılmaz. , gibi yöntemlerle birlikte kullanılır.
Teknik
Huffman'ın algoritması, veri içerisindeki karakterlerin kullanım sıklığına (frekans) göre bir ağaç oluşturur. Ağacın en tepesinden aşağıya doğru ilerlerken sola ayrılan dal için 0, sağa ayrılan dal için 1 kodu verilir.
5 / \ 0 3 2 1 / \ \ 0 1 2 1 C / \ B A
Yukarıda koyu rakamlar karakter sayısını (kullanım sıklığı-frekans) gösterir, eğik rakamlar ise bit kodlarını gösterir. Bu ağaç "ABC" karakterlerinden oluşan bir veri kümesi için üretilmiştir.
Ağaca göre karakterler için bit haritaları şu şekildedir:
B: 00 A: 01 C: 1
Oluşturulan bit haritaları karakterlerin veri içerisindeki konumlarına göre yerleştirilir. Ortaya çıkan bit haritası sıkıştırılmış veridir.
Örneğin; "BAACC" verisi elde edilen bit haritalarına göre yeniden düzenlenirse:
00 01 01 1 1 = 00010111 = 17h
Yani %80 oranında bir sıkıştırma elde edilmiş olur.
Ağacın oluşturulması
İlk önce karakterlerin frekansları (kullanım sıklıkları) hesaplanmalıdır.
Örneğin, elimizdeki veri "BAACC" olsun, B: 1 A: 2 C: 2 B:1 A:2 C:2 1 2 2 \ \ \ B A C
En küçük iki frekans toplanır ve frekans tablosu yeniden düzenlenir,
B:1 + A:2 C:2 C:2 BA:3 2 3 \ / \ C 1 2 / \ B A
Tek bir ağaç oluşturulana kadar sürekli en küçük frekanslar toplanır,
C:2 + BA:3 CBA:5 5 / \ 3 2 / \ \ 1 2 C / \ B A
Dezavantajları
Huffman algoritması az sayıda karakter çeşidine sahip ve büyük boyutlardaki verilerde çok kullanışlı olabilir. Fakat oluşturulan ağacın sıkıştırılmış veriye eklenmesi zorunludur. Bu da sıkıştırma verimini düşürür. gibi teknikler bu sorunu halletmek için geliştirilmişlerdir.
Dış bağlantılar
- (İngilizce)
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Huffman Kodu bilgisayar biliminde veri sikistirma icin kullanilan bir entropi algoritmasidir tarafindan 1952 yilinda gelistirilmistir Huffman in algoritmasi her sembol veya karakter icin ozel bir kod uretir Bu kodlar 1 ve 0 lardan olusan bit haritasi seklindedir Veri icerisinde en az kullanilan karakter icin en uzun en cok kullanilan karakter icin ise en kisa kodu uretir Huffman teknigi gunumuzde tek basina kullanilmaz gibi yontemlerle birlikte kullanilir TeknikHuffman in algoritmasi veri icerisindeki karakterlerin kullanim sikligina frekans gore bir agac olusturur Agacin en tepesinden asagiya dogru ilerlerken sola ayrilan dal icin 0 saga ayrilan dal icin 1 kodu verilir 5 0 3 2 1 0 1 2 1 C B A Yukarida koyu rakamlar karakter sayisini kullanim sikligi frekans gosterir egik rakamlar ise bit kodlarini gosterir Bu agac ABC karakterlerinden olusan bir veri kumesi icin uretilmistir Agaca gore karakterler icin bit haritalari su sekildedir B 00 A 01 C 1 Olusturulan bit haritalari karakterlerin veri icerisindeki konumlarina gore yerlestirilir Ortaya cikan bit haritasi sikistirilmis veridir Ornegin BAACC verisi elde edilen bit haritalarina gore yeniden duzenlenirse 00 01 01 1 1 00010111 17h Yani 80 oraninda bir sikistirma elde edilmis olur Agacin olusturulmasi Ilk once karakterlerin frekanslari kullanim sikliklari hesaplanmalidir Ornegin elimizdeki veri BAACC olsun B 1 A 2 C 2 B 1 A 2 C 2 1 2 2 B A C En kucuk iki frekans toplanir ve frekans tablosu yeniden duzenlenir B 1 A 2 C 2 C 2 BA 3 2 3 C 1 2 B A Tek bir agac olusturulana kadar surekli en kucuk frekanslar toplanir C 2 BA 3 CBA 5 5 3 2 1 2 C B ADezavantajlariHuffman algoritmasi az sayida karakter cesidine sahip ve buyuk boyutlardaki verilerde cok kullanisli olabilir Fakat olusturulan agacin sikistirilmis veriye eklenmesi zorunludur Bu da sikistirma verimini dusurur gibi teknikler bu sorunu halletmek icin gelistirilmislerdir Dis baglantilar Ingilizce