Huffman kodları: örnekler, uygulama
Şu anda, birkaç kişi gerçeği düşünür,sıkıştırma nasıl çalışır. Geçmişe kıyasla kişisel bilgisayar kullanmak çok daha kolaylaştı. Ve hemen hemen dosya sistemi ile çalışan herkes arşivleri kullanıyor. Ancak birkaç kişi, nasıl çalıştıklarını ve dosyaların ilkesinin hangi prensipte olduğunu düşündüklerini düşünmektedir. Bu sürecin ilk versiyonu Huffman kodlarıydı ve hala çeşitli popüler arşivlerde kullanılıyorlar. Birçok kullanıcı dosyayı sıkıştırmanın ne kadar kolay olduğunu ve hangi şemaya göre çalıştığını bile düşünmez. Bu yazıda, sıkıştırmanın nasıl çalıştığına, nüansların kodlama sürecini hızlandırmaya ve basitleştirmeye ne yardımcı olduğuna bakacağız ve ayrıca bir kodlama ağacı oluşturma ilkesinin ne olduğunu anlayacağız.
Algoritmanın tarihi
Etkili için ilk algoritmaElektronik bilginin kodlanması, Huffman'ın yirminci yüzyılın ortalarında, yani 1952'de önerdiği koddu. Şu anda bilgi sıkıştırmak için oluşturulan çoğu programın temel temel öğesidir. Şu anda, bu kodu kullanan en popüler kaynaklardan biri ZIP, ARJ, RAR arşivleri ve diğerleridir.
Verimli kodlama prensibi
Huffman algoritmasının temeli bir şemadır.En olası, en çok karşılaşılan sembolleri ikili sistem kodlarıyla değiştirmeyi sağlar. Ve daha az yaygın olanları daha uzun kodlarla değiştirilir. Uzun Huffman kodlarına geçiş, yalnızca sistem tüm minimum değerleri kullandıktan sonra gerçekleşir. Bu teknik, orijinal mesajın bütün karakterleri için kod uzunluğunu bir bütün olarak en aza indirmenize izin verir.
Huffman'ın kodu, örnek
Algoritmayı göstermek içinBir kod ağacının yapımının grafik bir versiyonu. Bu yöntemi kullanmak etkiliydi, bu yöntem kavramı için gerekli olan bazı değerlerin tanımını açıklığa kavuşturmak yararlıdır. Düğümden düğüme yönlendirilen ark kümesi ve düğümleri genellikle bir grafik olarak adlandırılır. Ağacın kendisi bir takım belirli özelliklere sahip bir grafiktir:
- her bir düğümde yaylardan en fazla birini giremez;
- düğümlerden biri ağacın kökü olmalı, yani arkın hiç girmemesi gerekir;
- eğer kökten yaylar boyunca hareket etmeye başlarsa, bu süreç tüm düğümlerin içine girmeye izin vermelidir.
Huffman'a göre bir ağaç inşa etmek için algoritma
Huffman kodunun yapımı harflerden yapılırgiriş alfabesinin Gelecek kod ağacında serbest olan düğümlerin bir listesi oluşturulur. Bu listedeki her düğümün ağırlığı, bu düğüme karşılık gelen mesajın harfinin oluşma olasılığı ile aynı olmalıdır. Bu durumda, gelecekteki ağacın az sayıdaki serbest düğümleri arasında, en az ağırlık olanı seçilir. Aynı zamanda, eğer minimum göstergeler birkaç düğümde gözlemleniyorsa, o zaman çiftlerden herhangi birini serbestçe seçmek mümkündür.
Sıkıştırma verimliliğini artırma
Sıkıştırma verimliliğini artırmak için, bu gereklidirbir ağaca bağlı belirli bir dosyada görünen harflerin olasılığına ilişkin tüm verileri kullanacak ve çok sayıda metin belgesi üzerinde dağılmasına izin vermeyecek bir kod ağacı oluşturma süresi. Bu dosyadan ilk kez yürürseniz, sıkıştırılacak bir nesneden hangi sıklıkta harflerle karşılaşıldığının istatistiklerini hemen hesaplayabilirsiniz.
Sıkıştırma işleminin hızlandırılması
Algoritmayı hızlandırmak için harflerin tanımıBu ya da bu mektubun meydana gelme olasılığı ve meydana gelme sıklığı ile ilgili göstergelerin yerine getirilmemesi gerekir. Bu sayede, algoritma daha basit hale gelir ve onunla çalışmak büyük ölçüde hızlanır. Bu ayrıca yüzen virgül ve bölümle ilişkili işlemleri önler.
Sonuç
Huffman'ın kodları - basit ve köklüBirçok tanınmış program ve şirket tarafından hala kullanılan algoritma. Sadeliği ve netliği, herhangi bir boyuttaki dosyalar için etkili sıkıştırma sonuçları elde etmeyi ve depolama diskinde kapladığı alanı önemli ölçüde azaltmayı mümkün kılar. Diğer bir deyişle Huffman algoritması, uzun zamandır incelenen ve iyi tasarlanmış bir şemadır;