değişken bit uzunluğu
* kullanan veri sıklığına dayalı bir kodlama şeklidir, sıkıştırma algoritmalarında kullanılır. kodlamada karşılaşılan sorun ise değişken bit uzunluğu uygulanırken bir sembolün sadece tek bir başlangıca karşılık gelmemesinin kodlanmış veriyi çözmeyi imkansız hale getirebileceğidir.
örnek olarak sembollerimiz 110 = a ve 11 = b olsaydı bab'ı kodlamak için 11 110 11 = 1111011 katarını oluşturmamız gerekecekti. bu katarı çözerken, sorun biraz incelenince kendini belli eder; ilk 11'den sonra gelen (ilk 11'de sorun olmuyor, çünkü 111'e karşılık gelen bir sembolümüz zaten yok) 110'ın a'ya mı yoksa 11'e denk gelen b'ye mi ait olduğu belli değildir. bu yüzden örneğin a = 110 ve b = 10 seçilerek şu katar oluşturularak bu sorunun üstesinden gelinebilir: 10 110 10 = 1011010
ilk iki bit kontrol edilir, 10'a denk gelen sadece b vardır; sonraki 11 kontrol edilir, 11'e denk gelen bir sembol yoktur, ama 110 a'ya denk gelir, kalan 10 da b'ye aittir. bu şekilde değişken uzunluklu kodlama başarılı olmuş olur.
bu metodu uygulamak için ikili ağaç
* oluşturularak ağacın soldaki dallarına 1, sağdakilere 0 biti verilerek oluşturulan bir sembol için yukarıdan aşağıya doğru bitler dizilir ve bu şartı sağlayan bir sembol tablosu oluşturulabilir.
güzel bir açıklama için:
http://www.huffmancoding.com/...