फिलहाल, कम ही लोग इस बारे में सोचते हैंफ़ाइल संपीड़न कैसे काम करता है। अतीत की तुलना में, व्यक्तिगत कंप्यूटर का उपयोग करना बहुत आसान हो गया है। और फ़ाइल सिस्टम के साथ काम करने वाले लगभग सभी लोग अभिलेखागार का उपयोग करते हैं। लेकिन कुछ लोग सोचते हैं कि वे कैसे काम करते हैं और फाइलें कैसे संपीड़ित होती हैं। इस प्रक्रिया का पहला संस्करण हफ़मैन कोड था, और विभिन्न लोकप्रिय अभिलेखागार में इस दिन का उपयोग किया जाता है। कई उपयोगकर्ता यह भी नहीं सोचते हैं कि किसी फ़ाइल को कैसे संपीड़ित करना आसान है और यह कैसे काम करता है। इस लेख में, हम देखेंगे कि संपीड़न कैसे होता है, क्या बारीकियों को तेज करने और एन्कोडिंग प्रक्रिया को सरल बनाने में मदद करता है, और यह भी पता लगाता है कि कोडिंग ट्री बनाने का सिद्धांत क्या है।
प्रभावी संचालन के लिए बहुत पहले एल्गोरिथ्मकोडिंग इलेक्ट्रॉनिक जानकारी 1952 में अर्थात् बीसवीं शताब्दी के मध्य में हफ़मैन द्वारा प्रस्तावित एक कोड बन गई। यह वह है जो इस समय जानकारी को संपीड़ित करने के लिए डिज़ाइन किए गए अधिकांश कार्यक्रमों का मुख्य मूल तत्व है। फिलहाल, इस का उपयोग करने वाले कुछ सबसे लोकप्रिय स्रोत ज़िप, एआरजे, आरएआर अभिलेखागार और कई अन्य हैं।
हफ़मैन एल्गोरिदम योजना पर आधारित है,आपको बाइनरी सिस्टम के कोड के साथ सबसे अधिक संभावित, सबसे आम पात्रों को बदलने की अनुमति देता है। और जो कम सामान्य हैं, उन्हें लंबे कोड से बदल दिया जाता है। लंबे हफ़मैन कोड में संक्रमण तब होता है जब सिस्टम ने सभी न्यूनतम मानों का उपयोग किया है। यह तकनीक आपको मूल संदेश के प्रत्येक वर्ण के लिए कोड की लंबाई को न्यूनतम करने की अनुमति देती है।
एल्गोरिथ्म को समझाने के लिए, ले लोएक कोड ट्री के चित्रमय संस्करण। इस पद्धति के प्रभावी होने के लिए, यह इस पद्धति की अवधारणा के लिए आवश्यक कुछ मूल्यों की परिभाषा को स्पष्ट करने के लायक है। नोड से नोड के लिए निर्देशित आर्क्स और नोड्स के सेट को एक ग्राफ कहा जाता है। पेड़ अपने आप में विशिष्ट गुणों के समूह के साथ एक ग्राफ है:
हफमैन कोड का निर्माण अक्षरों से किया जाता हैइनपुट वर्णमाला उन नोड्स की एक सूची जो भविष्य के कोड ट्री में मुफ्त हैं। इस सूची में प्रत्येक नोड का वजन उस नोड के अनुरूप संदेश पत्र की घटना की संभावना के समान होना चाहिए। इस मामले में, भविष्य के पेड़ के कई मुक्त नोड्स के बीच, कम से कम वजन वाले को चुना जाता है। इसके अलावा, यदि न्यूनतम संकेतक कई नोड्स में देखे जाते हैं, तो आप स्वतंत्र रूप से किसी भी जोड़े को चुन सकते हैं।
संपीड़न दक्षता में सुधार करने के लिए, आपको करने की आवश्यकता हैकोड ट्री का निर्माण करते समय, पेड़ से जुड़ी किसी विशेष फ़ाइल में दिखाई देने वाले अक्षरों की संभावना के बारे में सभी डेटा का उपयोग करें, और उन्हें बड़ी संख्या में पाठ दस्तावेज़ों में बिखरे हुए न होने दें। यदि आप पहली बार इस फ़ाइल के माध्यम से जाते हैं, तो आप तुरंत आंकड़ों की गणना कर सकते हैं कि ऑब्जेक्ट से कितनी बार संपीड़ित होने के पत्र मिलते हैं।
एल्गोरिदम को गति देने के लिए, अक्षरों की पहचान करनाकिसी विशेष पत्र की उपस्थिति की संभावना के संकेतक के अनुसार नहीं, बल्कि इसकी घटना की आवृत्ति के अनुसार बाहर ले जाना आवश्यक है। यह एल्गोरिथ्म को सरल बनाता है और इसके साथ काम करने के लिए बहुत तेज है। यह फ्लोटिंग पॉइंट और डिवीजन ऑपरेशन से भी बचता है।
हफ़मैन कोड - सरल और लंबे समय से स्थापितएक एल्गोरिथ्म जो अभी भी कई प्रसिद्ध कार्यक्रमों और कंपनियों द्वारा उपयोग किया जाता है। इसकी सादगी और स्पष्टता आपको किसी भी आकार की फ़ाइलों के संपीड़न के प्रभावी परिणाम प्राप्त करने और उनके भंडारण डिस्क स्थान को महत्वपूर्ण रूप से कम करने की अनुमति देती है। दूसरे शब्दों में, हफ़मैन एल्गोरिथ्म एक लंबी-अध्ययन और अच्छी तरह से विकसित योजना है, जिसकी प्रासंगिकता आज तक कम नहीं हुई है।