Frekansları öğrenmeye bizim kullandığımız Huffman kodlamasında gerek oluyor; çünkü ben metne göre ağaç oluşturmayı tercih etmiştim.
Öte yandan yaptığım araştırmalar sırasında frekansları ölçmeyen örnekler de gördüm; ama bu örneklerde dile uygun frekanslar önceden belirtiliyordu. Yani İngilizce için kelimelerin çoğunluğunda geçen harfler daha önceden analiz edilmiş oluyor ve her seferinde aynı ağaç oluşturuluyordu.
Benim tercih ettiğim yöntem, metne en uygun sıkıştırmayı sağladığı için avantajlı; fakat oluşturduğumuz ağacı da veriye eklediğimiz için küçük metinlerde pek faydalı olmuyor. Oysa önceden ölçülmüş frekanslar sürekli aynı ağacı oluşturduğu için sadece metni göndermek yetiyor; ama bu sefer de sıkıştırma oranı azalabiliyor. ayrıca frekanslar önceden belirlendiyse program genellikle bir dile bağlı oluyor.
Bunların dışında bir de dinamik Huffman kodlaması var; burada ise karşı tarafa ağacı göndermiyoruz. Alıcı taraf, gönderdiğimiz metinde geçen baytların sıklığından yararlanarak kendi ağacını oluşturuyor. Ağaç göndermediğimiz için avantajlı; ama ağaç yanlış oluşturulursa verinin açılması pek mümkün görülmüyor.
İsteğe bağlı diyebiliriz. :)
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]