डिफ्लेट

कम्प्यूटिंग में, डिफ्लेट (डिफ्लेट के रूप में शैलीबद्ध) एक लॉसलेस डेटा कम्प्रेशन फ़ाइल फॉर्मेट है जो LZ77_and_LZ78 और हफ़मैन कोडिंग के संयोजन का उपयोग करता है। इसे फिल काट्ज़ द्वारा उनके PKZIP आर्चिविंग टूल के संस्करण 2 के लिए डिज़ाइन किया गया था। डिफ्लेट को बाद में 1951 (1996) में निर्दिष्ट किया गया था।

काट्ज़ ने डिफ्लेट स्ट्रीम के निर्माण के लिए उपयोग किए जाने वाले मूल एल्गोरिदम को भी डिज़ाइन किया। इस एल्गोरिदम को के रूप में सॉफ्टवेयर पेटेंट कराया गया था, और PKWARE, Inc. को सौंपा गया था। जैसा कि आरएफसी डॉक्यूमेंट में कहा गया है, डिफ्लेट फ़ाइलों का उत्पादन करने वाले एल्गोरिदम को व्यापक रूप से पेटेंट द्वारा कवर नहीं किए जाने वाले तरीके से कार्यान्वयन योग्य माना जाता था। इससे इसका व्यापक उपयोग हुआ - उदाहरण के लिए, जीज़िप कंप्रेस्ड फ़ाइलों और पीएनजी इमेज फ़ाइलों में, ज़िप फ़ाइल फॉर्मेट के अलावा जिसके लिए कैटज़ ने मूल रूप से इसे डिज़ाइन किया था। पेटेंट अब समाप्त हो चुका है।

स्ट्रीम फॉर्मेट
डिफ्लेट स्ट्रीम में ब्लॉकों की एक श्रृंखला होती है। प्रत्येक ब्लॉक के पहले 3-बिट हेडर होता है:


 * पहला बिट: अंतिम-ब्लॉक-इन-स्ट्रीम मार्कर:
 * : यह स्ट्रीम का अंतिम ब्लॉक है।
 * : इसके बाद संसाधित करने के लिए और भी ब्लॉक हैं।
 * दूसरा और तीसरा बिट: इस ब्लॉक प्रकार के लिए उपयोग की जाने वाली एन्कोडिंग विधि:
 * : स्टोर्ड (उर्फ रॉ या शाब्दिक) अनुभाग, लंबाई में 0 और 65,535 बाइट्स के बीच
 * : स्टेटिक हफमैन कंप्रेस्ड ब्लॉक, आरएफसी में परिभाषित पूर्व-सहमत हफ़मैन ट्री का उपयोग करना
 * : डायनामिक हफ़मैन कंप्रेस्ड ब्लॉक, आपूर्ति की गई हफ़मैन तालिका के साथ पूर्ण
 * : रिजर्व्ड—उपयोग न करें।

स्टोर्ड ब्लॉक विकल्प न्यूनतम ओवरहेड जोड़ता है और उस डेटा के लिए उपयोग किया जाता है जो इनकंप्रेसिब्ल है।

अधिकांश कंप्रेस्ड डेटा को विधि, डायनामिक हफ़मैन एन्कोडिंग का उपयोग करके एन्कोड किया जाएगा, जो व्यक्तिगत रूप से डेटा के प्रत्येक ब्लॉक के लिए कस्टमाइज्ड एक ऑप्टीमाइज़्ड हफ़मैन ट्री का उत्पादन करता है। आवश्यक हफ़मैन ट्री उत्पन्न करने के निर्देश तुरंत ब्लॉक हेडर का पालन करें। स्टेटिक हफ़मैन विकल्प का उपयोग छोटे संदेशों के लिए किया जाता है, जहां ट्री को हटाकर प्राप्त की गई निश्चित बचत नॉन ऑप्टीमल (इस प्रकार, तकनीकी रूप से हफ़मैन नहीं) कोड का उपयोग करने के कारण प्रतिशत कम्प्रेशन लॉस से अधिक होती है।

कम्प्रेशन दो चरणों के माध्यम से प्राप्त किया जाता है:


 * पॉइंटर्स के साथ डुप्लिकेट स्ट्रिंग्स का मिलान और प्रतिस्थापन।
 * उपयोग की आवृत्ति के आधार पर भारित प्रतीक को नए, सिम्बल्स से बदलना।

डुप्लिकेट स्ट्रिंग उन्मूलन
कंप्रेस्ड ब्लॉकों के भीतर, यदि बाइट्स की एक डुप्लिकेट श्रृंखला (एक दोहराई गई स्ट्रिंग) देखी जाती है,तो उसके बजाय उस समान स्ट्रिंग के पिछले स्थान से लिंक करते हुए एक बैक-रेफरेंस (कंप्यूटर विज्ञान) डाला जाता है। पिछली स्ट्रिंग के एन्कोडेड मिलान में डुप्लिकेट की शुरुआत में 8-बिट लंबाई (3-258 बाइट्स) और 15-बिट दूरी (1-32,768 बाइट्स) होती है। सापेक्ष बैक-रेफरेंस किसी भी संख्या में ब्लॉक में किए जा सकते हैं, जब तक कि दूरी डिकोड किए गए इनकंप्रेसिब्ल डेटा के अंतिम 32 किबिबाइट (स्लाइडिंग विंडो कहा जाता है) के भीतर दिखाई देती है ।

यदि दूरी लंबाई से कम है, तो डुप्लिकेट स्वयं ओवरलैप हो जाता है, जो पुनरावृत्ति का संकेत देता है। उदाहरण के लिए, 10 समान बाइट्स के एक रन को एक बाइट के रूप में एन्कोड किया जा सकता है, इसके बाद पिछले बाइट से शुरू करके लंबाई 9 की डुप्लिकेट बनाई जा सकती है।

डुप्लिकेट सबस्ट्रिंग के लिए पूर्ववर्ती पाठ की खोज करना डिफ्लेट एल्गोरिदम का सबसे कम्प्यूटेशनल रूप से महंगा हिस्सा है, और वह ऑपरेशन जो कम्प्रेशन स्तर सेटिंग्स को प्रभावित करता है।

बिट रिडक्शन
दूसरे कम्प्रेशन चरण में आमतौर पर उपयोग किए जाने वाले सिम्बल्स को छोटे प्रतिनिधित्व के साथ और कम सामान्यतः उपयोग किए जाने वाले सिम्बल्स को लंबे प्रतिनिधित्व के साथ बदलना सम्मिलित है। उपयोग की जाने वाली विधि हफ़मैन कोडिंग है जो गैर-अतिव्यापी अंतराल का एक उपसर्ग ट्री बनाती है, जहां प्रत्येक अनुक्रम की लंबाई उस प्रतीक की एन्कोडिंग की आवश्यकता की संभावना के लघुगणक के व्युत्क्रमानुपाती होती है। जितनी अधिक संभावना है कि किसी प्रतीक को एन्कोड किया जाना है, उसका बिट-अनुक्रम उतना ही छोटा होगा।

एक ट्री बनाया गया है, जिसमें 288 सिम्बल्स के लिए जगह है:


 * 0-255: शाब्दिक बाइट्स/सिम्बल्स 0-255 का प्रतिनिधित्व करते है ।
 * 256: ब्लॉक का अंत - अंतिम ब्लॉक होने पर प्रोसेसिंग बंद हो जाता है, अन्यथा अगले ब्लॉक पर प्रोसेसिंग शुरू बंद हो जाता है।
 * 257-285: अतिरिक्त बिट्स के साथ संयुक्त, 3-258 बाइट्स की एक मिलान लंबाई है।
 * 286, 287: उपयोग नहीं किया गया, रिजर्व्ड और अवैध लेकिन फिर भी ट्री का हिस्सा है।

मैच लंबाई कोड के बाद हमेशा दूरी कोड आएगा। पढ़े गए दूरी कोड के आधार पर, अंतिम दूरी उत्पन्न करने के लिए अतिरिक्त अतिरिक्त बिट्स पढ़े जा सकते हैं। दूरी ट्री में 32 सिम्बल्स के लिए स्थान होता है:


 * 0-3: 1-4 दूरियाँ
 * 4-5: 1 अतिरिक्त बिट, दूरियाँ 5-8
 * 6-7: 2 अतिरिक्त बिट्स, दूरियाँ 9-16
 * 8-9: 3 अतिरिक्त बिट्स, दूरियाँ 17-32
 * 26-27: 12 अतिरिक्त बिट्स, दूरियाँ 8,193-16,384
 * 28-29: 13 अतिरिक्त बिट्स, दूरियाँ 16,385-32,768
 * 30-31: उपयोग नहीं किया गया, रिजर्व्ड और अवैध लेकिन फिर भी ट्री का हिस्सा।
 * 30-31: उपयोग नहीं किया गया, रिजर्व्ड और अवैध लेकिन फिर भी ट्री का हिस्सा।

ध्यान दें कि मिलान दूरी सिम्बल्स 2-29 के लिए, अतिरिक्त बिट्स की संख्या की गणना $$\left\lfloor\frac{n}{2}\right\rfloor-1$$ प्रकार की जा सकती है.

दो कोड (288-प्रतीक लंबाई/शाब्दिक ट्री और 32-प्रतीक दूरी ट्री) स्वयं प्रत्येक प्रतीक के लिए कोड की बिट लंबाई देकर विहित हफ़मैन कोड के रूप में एन्कोड किए गए हैं। जितना संभव हो उतना कॉम्पैक्ट प्रतिनिधित्व उत्पन्न करने के लिए बिट लंबाई रन-लंबाई एन्कोडिंग होती है। ट्री प्रतिनिधित्व को सम्मिलित करने के विकल्प के रूप में, स्टेटिक ट्री विकल्प मानक निश्चित हफ़मैन ट्री प्रदान करता है। स्टेटिक ट्री का उपयोग करके कंप्रेस्ड आकार की गणना उन्हीं आंकड़ों (प्रत्येक प्रतीक के प्रकट होने की संख्या) का उपयोग करके की जा सकती है, जिनका उपयोग डायनामिक ट्री को उत्पन्न करने के लिए किया जाता है, इसलिए कंप्रेसर के लिए जो भी छोटा हो उसे चुनना आसान होता है।

एनकोडर/कंप्रेसर
कम्प्रेशन चरण के दौरान, यह एनकोडर है जो मिलान स्ट्रिंग की तलाश में बिताए गए समय की मात्रा को चुनता है। Zlib/gzip संदर्भ कार्यान्वयन उपयोगकर्ता को संभावित परिणामी कम्प्रेशन-स्तर बनाम एन्कोडिंग की गति के स्लाइडिंग पैमाने से चयन करने की अनुमति देता है। विकल्प  से लेकर होते हैं  (कम्प्रेशन का प्रयास न करें, केवल अकंप्रेस्ड आर्चिविंग करें)।    9 तक होते हैं जो zlib/gzip में संदर्भ कार्यान्वयन की अधिकतम क्षमता का प्रतिनिधित्व करते हैं।

अन्य डिफ्लेट एनकोडर का उत्पादन किया गया है, जो सभी एक संगत बिटस्ट्रीम का उत्पादन करेंगे जो किसी भी मौजूदा डिफ्लेट डिकोडर द्वारा डीकंप्रेस्ड होने में सक्षम होंगे। अलग-अलग कार्यान्वयन से उत्पादित अंतिम एन्कोडेड बिट-स्ट्रीम पर भिन्नता उत्पन्न होने की संभावना है। एनकोडर के गैर-ज़्लिब संस्करणों का ध्यान आम तौर पर अधिक कुशलता से कंप्रेस्ड और छोटी एन्कोडेड स्ट्रीम का उत्पादन करने पर होता है।

डिफ्लेट64/इन्हैंस्ड डिफ्लेट
PKWARE द्वारा निर्दिष्ट डिफ्लेट64, डिफ्लेट का एक मालिकाना संस्करण है। यह मूल रूप से वही एल्गोरिदम है। जो परिवर्तन हुआ है वह है शब्दकोश का आकार 32 केबी से बढ़ाकर 64 केबी, दूरी कोड को 16 बिट तक विस्तारित करना ताकि वे 64 केबी की सीमा को संबोधित कर सकें, और लंबाई कोड, जिसे 16 बिट तक बढ़ाया गया है ताकि यह तीन से 65,538 बाइट्स की लंबाई को परिभाषित कर सके। इसके कारण डिफ्लेट64 का कम्प्रेशन समय लंबा हो जाता है, और संभावित रूप से डिफ्लेट की तुलना में थोड़ा अधिक कम्प्रेशन अनुपात होता है। कई मुफ़्त और/या ओपन सोर्स प्रोजेक्ट्स डिफ्लेट64 का समर्थन करते हैं, जैसे 7-ज़िप, जबकि अन्य, जैसे zlib, प्रक्रिया की स्वामित्व प्रकृति के परिणामस्वरूप ऐसा नहीं करते हैं और डिफ्लेट की तुलना में प्रदर्शन में बहुत मामूली वृद्धि हुई।

नए सॉफ्टवेयर में डिफ्लेट का उपयोग
डिफ्लेट का कार्यान्वयन कई भाषाओं में निःशुल्क उपलब्ध है। C (प्रोग्रामिंग भाषा) में लिखे गए ऐप्स आमतौर पर zlib लाइब्रेरी (अनुमेय zlib लाइसेंस के तहत) का उपयोग करते हैं। बोर्लैंड पास्कल (और संगत भाषाओं) में ऐप्स paszlib का उपयोग कर सकते हैं। C++ में ऐप्स 7-ज़िप में बेहतर डिफ्लेट लाइब्रेरी का लाभ उठा सकते हैं। जावा (सॉफ़्टवेयर प्लेटफ़ॉर्म) और .NET फ़्रेमवर्क दोनों अपने पुस्तकालयों में डिफ्लेट के लिए आउट-ऑफ़-द-बॉक्स समर्थन प्रदान करते हैं (क्रमशः,  और System.IO.Compression)। Ada (प्रोग्रामिंग भाषा) में ऐप्स Zip-Ada (शुद्ध) या ZLib-Ada का उपयोग कर सकते हैं।

एनकोडर कार्यान्वयन
AdvanceCOMP 7-ज़िप, लिबडेफ्लेट और ज़ोपफ्ली में डिफ्लेट के उच्च संपीड़न अनुपात संस्करणों का उपयोग करता है ताकि जीज़िप, पीएनजी, एमएनजी और ज़िप फ़ाइलों के पुनर्संपीड़न को सक्षम किया जा सके, जिसमें zlib की तुलना में छोटे फ़ाइल आकार की संभावना अधिकतम सेटिंग्स पर प्राप्त करने में सक्षम है।
 * PKZIP: पहला कार्यान्वयन, मूल रूप से PKZip के हिस्से के रूप में फिल काट्ज़ द्वारा किया गया
 * zlib: इसके ओपन-सोर्स, अनुमेय लाइसेंस के कारण कई ऐप्स में मानक संदर्भ कार्यान्वयन अपनाया गया है। उच्च-प्रदर्शन वाले फ़ोर्क्स के लिए देखें।
 * क्रिप्टो++: संभावित भेद्यता (कंप्यूटिंग) को कम करने के उद्देश्य से C++ में एक सार्वजनिक-डोमेन कार्यान्वयन सम्मिलित है। लेखक, वेई दाई कहते हैं "यह कोड कम चतुर है, लेकिन उम्मीद है कि [zlib की तुलना में] अधिक समझने योग्य और रखरखाव योग्य है"।
 * 7-ज़िप: C++ में इगोर पावलोव द्वारा लिखित, यह संस्करण स्वतंत्र रूप से लाइसेंस प्राप्त है और सीपीयू उपयोग की कीमत पर zlib की तुलना में उच्च कम्प्रेशन प्राप्त करता है। डिफ्लेट64 आर्चिव फॉर्मेट का उपयोग करने का विकल्प है।
 * पुटी 'sshzlib.c': साइमन टैथम द्वारा एमआईटी लाइसेंस के तहत एक स्टैंडअलोन कार्यान्वयन, इसमें पूर्ण डिकोडिंग क्षमता है, लेकिन केवल स्टेटिक ट्री निर्माण का समर्थन करता है
 * लिबफ़्लेट: बेल लैब्स की योजना 9 का हिस्सा, डिफ्लेट कम्प्रेशन को लागू करता है
 * हाइपरबैक: डिफ्लेट64 स्टोरेज फॉर्मेट को लागू करने के विकल्प के साथ अपनी स्वयं की मालिकाना कम्प्रेशन लाइब्रेरी (C++ और असेंबली में) का उपयोग करता है
 * Zopfli: Google द्वारा अपाचे लाइसेंस के तहत C कार्यान्वयन; सीपीयू उपयोग की कीमत पर उच्चतम कम्प्रेशन प्राप्त करता है। ZopfliPNG पोर्टेबल नेटवर्क ग्राफ़िक्स फ़ाइलों के साथ उपयोग के लिए Zopfli का एक रूप है।
 * igzip:एमआईटी लाइसेंस के तहत इंटेल द्वारा जारी x86 असेंबली भाषा में लिखा गया एक एनकोडर। zlib -1 से 3 गुना तेज। जीनोमिक डेटा को कंप्रेस्ड करने के लिए उपयोगी।

हार्डवेयर एनकोडर
रेफरी नाम= zlibnx >
 * एएचए 361-पीसीआई/एएचए362-पीसीआई एक्स कॉमटेक एएचए से . कॉमटेक ने एक पीसीआई-एक्स कार्ड (पीसीआई-आईडी) तैयार किया: ) आने वाले इनकंप्रेसिब्ल डेटा के लिए 3.0 जीबी/एस (375 एमबी/एस) तक की दर पर डिफ्लेट का उपयोग करके स्ट्रीम को कंप्रेस्ड करने में सक्षम है। AHA361-PCIX के लिए लिनक्स (कर्नेल) डिवाइस ड्राइवर के साथ एक है उपयोगिता और अनुकूलित अपाचे HTTP सर्वर से हार्डवेयर कम्प्रेशन का उपयोग करने में सक्षम। हार्डवेयर Xilinx Virtex (FPGA) FPGA और चार कस्टम AHA3601 एप्लिकेशन-विशिष्ट एकीकृत सर्किट पर आधारित है। AHA361/AHA362 बोर्ड केवल स्टेटिक हफ़मैन ब्लॉकों को संभालने तक ही सीमित हैं और समर्थन जोड़ने के लिए सॉफ़्टवेयर को संशोधित करने की आवश्यकता होती है - कार्ड पूर्ण डिफ्लेट विनिर्देश का समर्थन करने में सक्षम नहीं थे, जिसका अर्थ है कि वे केवल अपने स्वयं के आउटपुट को विश्वसनीय रूप से डीकोड कर सकते हैं (एक स्ट्रीम जिसमें कोई डायनामिक हफ़मैन प्रकार 2 ब्लॉक सम्मिलित नहीं थे)।
 * StorCompress 300/MX3 इंद्रा नेटवर्क्स से। यह पीसीआई लोकल बस की एक श्रृंखला है (पीसीआई-आईडी: ) या PCI-X कार्ड जिसमें एक से छह कम्प्रेशन इंजन होते हैं जिनकी प्रोसेसिंग गति 3.6 Gbit/s (450 MB/s) तक होने का दावा किया जाता है। कार्ड का एक संस्करण अलग ब्रांड WebEnhance के साथ उपलब्ध है जो विशेष रूप से संरक्षण क्षेत्र नियंत्रण कार्य या बैकअप उपयोग के बजाय वेब-सर्विंग उपयोग के लिए डिज़ाइन किया गया है; एक PCIe संशोधन, MX4E भी तैयार किया गया है।
 * AHA363-PCIe/AHA364-PCI e/AHA367-PCIe। 2008 में, कॉमटेक ने दो PCIe कार्ड का उत्पादन शुरू किया ( / ) एक नए हार्डवेयर AHA3610 एनकोडर चिप के साथ। नई चिप को निरंतर 2.5 Gbit/s में सक्षम होने के लिए डिज़ाइन किया गया था। इनमें से दो चिप्स का उपयोग करके, AHA363-PCIe बोर्ड दो चैनलों (दो कम्प्रेशन और दो डीकंप्रेसन) का उपयोग करके 5.0 Gbit/s (625 MB/s) तक की दर पर डिफ्लेट को संसाधित कर सकता है। AHA364-PCIe वैरिएंट आउट-गोइंग भार संतुलन ्स के लिए डिज़ाइन किए गए कार्ड का एक एन्कोड-केवल संस्करण है और इसके बजाय दो भौतिक कम्प्रेशन इंजनों को खिलाने वाले 32 स्वतंत्र वर्चुअल कम्प्रेशन चैनलों की अनुमति देने के लिए कई रजिस्टर सेट हैं। लिनक्स,  माइक्रोसॉफ़्ट विंडोज़  और  ओपनसोलर  कर्नेल डिवाइस ड्राइवर संशोधित zlib सिस्टम लाइब्रेरी के साथ दोनों नए कार्डों के लिए उपलब्ध हैं ताकि डायनामिक रूप से लिंक किए गए एप्लिकेशन आंतरिक संशोधन के बिना स्वचालित रूप से हार्डवेयर समर्थन का उपयोग कर सकें। AHA367-PCIe बोर्ड  AHA363-PCIe के समान है लेकिन 10 Gbit/s (1250 MB/s) की निरंतर कम्प्रेशन दर के लिए चार AHA3610 चिप्स का उपयोग करता है। AHA362-PCIX के विपरीत, AHA363-PCIe और AHA367-PCIe बोर्ड पर डीकंप्रेसन इंजन पूरी तरह से डिफ्लेट के अनुरूप हैं।
 * Nitrox और /ट्री/मास्टर/उदाहरण/ज़िप ऑक्टियन कैवियम, इंक. के प्रोसेसर में ZLIB और GZIP दोनों के साथ संगत हाई-स्पीड हार्डवेयर डिफ्लेट और इनफ्लेट इंजन होते हैं, साथ ही कुछ डिवाइस एक साथ कई डेटा स्ट्रीम को संभालने में सक्षम होते हैं।
 * HDL-डिफ्लेट जीपीएल एफपीजीए कार्यान्वयन।
 * ZipAccel-C से CAST Inc। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़लिब और जीज़िप कम्प्रेशन का समर्थन करता है। ZipAccel-C को एप्लिकेशन-विशिष्ट एकीकृत सर्किट या क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला में कार्यान्वित किया जा सकता है, जो डायनेमिक और स्टेटिक हफ़मैन टेबल दोनों का समर्थन करता है, और 100Gbps से अधिक थ्रूपुट प्रदान कर सकता है। कंपनी Intel FPGA (ZipAccel-RD-INT) के लिए कंप्रेशन/डीकंप्रेसन एक्सेलेरेटर बोर्ड संदर्भ डिज़ाइन प्रदान करती है। और Xilinx FPGAs (ZipAccel-RD-XIL)।
 * Intel Xeon E5-2600 और E5-2400 प्रोसेसर सीरीज (सैंडी ब्रिज-EP/EN) के लिए Intel Xeon चिपसेट (केव क्रीक) QuickAssist Technology का उपयोग करके हार्डवेयर कम्प्रेशन और डीकंप्रेसन का समर्थन करता है। चिपसेट के आधार पर, 5Gbit/s, 10Gbit/s, या 20Gbit/s की कम्प्रेशन और डीकंप्रेसन दरें उपलब्ध हैं।
 * IBM z15 (माइक्रोप्रोसेसर) CPU में RFC1951 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट कम्प्रेशन और डीकंप्रेसन के लिए z14 सिस्टम में उपयोग किए जाने वाले zEDC एक्सप्रेस I/O विस्तार कार्ड से नेस्ट एक्सेलेरेटर यूनिट (NXU) हार्डवेयर त्वरण का एक उन्नत संस्करण सम्मिलित है।
 * POWER9 आर्किटेक्चर के साथ शुरुआत करते हुए, IBM ने POWER7|POWER7+ के साथ पेश किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को कंप्रेस्ड और डीकंप्रेस करने के लिए हार्डवेयर समर्थन जोड़ा। यह समर्थन zlibNX लाइब्रेरी के माध्यम से IBM AIX 7.2 टेक्नोलॉजी लेवल 4 एक्सपेंशन पैक या AIX 7.2 टेक्नोलॉजी लेवल 5 सर्विस पैक 2 के साथ चलने वाले प्रोग्रामों के लिए उपलब्ध है।

डिकोडर/डीकंप्रेसर
इन्फ्लेट डिकोडिंग प्रक्रिया है जो डीकंप्रेसन के लिए डिफ्लेट बिटस्ट्रीम लेती है और मूल पूर्ण आकार के डेटा या फ़ाइल को सही ढंग से तैयार करती है।

फुलाएँ-केवल कार्यान्वयन
वैकल्पिक इन्फ्लेट कार्यान्वयन के साथ सामान्य इरादा अत्यधिक अनुकूलित डिकोडिंग गति, या माइक्रो-नियंत्रक एम्बेडेड सिस्टम के लिए बेहद अनुमानित रैम उपयोग है।


 * सभा की भाषा
 * 6502 inflate, एमओएस टेक्नोलॉजी 6502 असेंबली भाषा में पियोट्र फ्यूसिक द्वारा लिखित।
 * SAMflate, सैम कूपे के लिए वैकल्पिक मेमोरी पेजिंग समर्थन के साथ Z80 असेंबली भाषा में एंड्रयू कोलियर द्वारा लिखित, और बीएसडी लाइसेंस/जीएनयू जनरल पब्लिक लाइसेंस/जीएनयू के तहत उपलब्ध कराया गया है। लेसर जनरल पब्लिक लाइसेंस/डेबियन फ्री सॉफ्टवेयर दिशानिर्देश लाइसेंस।
 * गनज़िप, MSX के लिए Z80 असेंबली भाषा में लॉरेन्स होल्स्ट द्वारा लिखित, BSD लाइसेंस के तहत लाइसेंस प्राप्त।
 * inflate.asm, M68000 मशीन भाषा में एक तेज़ और कुशल कार्यान्वयन, कीर फ्रेज़र द्वारा लिखित और सार्वजनिक डोमेन में जारी किया गया।


 * सी (प्रोग्रामिंग भाषा)/सी++
 * कुंजिप माइकल कोह्न द्वारा और KZIP से असंबंधित। जीएनयू एलजीपीएल लाइसेंस के तहत सी (प्रोग्रामिंग भाषा) स्रोत-कोड के साथ आता है। GIMP इंस्टालर में उपयोग किया जाता है।
 * पफ.c (zlib), एक छोटा, भार रहित, एकल-फ़ाइल संदर्भ कार्यान्वयन जो zlib वितरण की /contrib/puff निर्देशिका में सम्मिलित है।
 * tinf जोर्जेन इबसेन द्वारा ANSI C में लिखा गया है और यह zlib लाइसेंस के साथ आता है। लगभग 2k कोड जोड़ता है।
 * tinfl.c (Miniz), सार्वजनिक डोमेन इन्फ्लेट कार्यान्वयन पूरी तरह से एक ही सी फ़ंक्शन में निहित है।
 * , बॉब फ़्लैंडर्स और माइकल होम्स, पीसी मैगज़ीन 1994-01-11 में प्रकाशित।
 * inflate.cl जॉन फोडेरारो द्वारा। स्व-स्थायी सामान्य लिस्प  डिकोडर जीएनयू एलजीपीएल लाइसेंस के साथ वितरित किया गया।
 * inflate.s7i/gzip.s7i, थॉमस मर्टेस द्वारा डिफ्लेट और gzip डीकंप्रेसन का एक शुद्ध-Seed7 कार्यान्वयन। जीएनयू जीएनयू लेसर जनरल पब्लिक लाइसेंस लाइसेंस के तहत उपलब्ध कराया गया।
 * pyflate, पॉल स्लेडेन द्वारा एक शुद्ध-पायथन (प्रोग्रामिंग भाषा) स्टैंड-अलोन डिफ्लेट (gzip) और bzip2 डिकोडर। अनुसंधान/प्रोटोटाइपिंग के लिए लिखा गया है और बीएसडी लाइसेंस/जीएनयू जनरल पब्लिक लाइसेंस/जीएनयू लेसर जनरल पब्लिक लाइसेंस/डेबियन फ्री सॉफ्टवेयर दिशानिर्देश लाइसेंस के तहत उपलब्ध कराया गया है।
 * डिफ्लेटlua, डेविड मानुरा द्वारा डिफ्लेट और gzip/zlib डीकंप्रेसन का एक शुद्ध-लुआ (प्रोग्रामिंग भाषा) कार्यान्वयन।
 * inflate क्रिस डिकिंसन द्वारा Inflate का एक शुद्ध-जावास्क्रिप्ट (प्रोग्रामिंग भाषा) कार्यान्वयन
 * pako: zlib का जावास्क्रिप्ट गति-अनुकूलित पोर्ट। केवल फुलाने के साथ अलग निर्माण सम्मिलित है।

हार्डवेयर डिकोडर

 * सीरियल इन्फ्लेट जीपीयू BitSim से। इन्फ्लेट का हार्डवेयर कार्यान्वयन। एम्बेडेड सिस्टम के लिए बिटसिम के BADGE (बिटसिम एक्सेलेरेटेड डिस्प्ले ग्राफिक्स इंजन) नियंत्रक की पेशकश का हिस्सा।
 * HDL-डिफ्लेट जीपीएल एफपीजीए कार्यान्वयन।
 * ZipAccel-D से CAST Inc। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़लिब और जीज़िप फ़ाइलों के डीकंप्रेसन का समर्थन करता है। ZipAccel-D IP कोर जिसे एप्लिकेशन-विशिष्ट एकीकृत सर्किट या फ़ील्ड-प्रोग्रामेबल गेट ऐरे|FPGAs में कार्यान्वित किया जा सकता है। कंपनी Intel FPGA (ZipAccel-RD-INT) और Xilinx FPGAs (ZipAccel-RD-XIL) के लिए कंप्रेशन/डीकंप्रेसन एक्सेलेरेटर बोर्ड संदर्भ डिजाइन प्रदान करती है।
 * IBM z15 (माइक्रोप्रोसेसर) CPU में RFC1951 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट कम्प्रेशन और डीकंप्रेसन के लिए z14 सिस्टम में उपयोग किए जाने वाले zEDC एक्सप्रेस I/O विस्तार कार्ड से नेस्ट एक्सेलेरेटर यूनिट (NXU) हार्डवेयर त्वरण का एक उन्नत संस्करण सम्मिलित है। * POWER9 आर्किटेक्चर के साथ शुरुआत करते हुए, IBM ने POWER7|POWER7+ के साथ पेश किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को कंप्रेस्ड और डीकंप्रेस करने के लिए हार्डवेयर समर्थन जोड़ा। यह समर्थन zlibNX लाइब्रेरी के माध्यम से IBM AIX 7.2 टेक्नोलॉजी लेवल 4 एक्सपेंशन पैक या AIX 7.2 टेक्नोलॉजी लेवल 5 सर्विस पैक 2 के साथ चलने वाले प्रोग्रामों के लिए उपलब्ध है।

यह भी देखें

 * आर्चिविंग फॉर्मेटों की सूची
 * फ़ाइल अभिलेखकर्ताओं की सूची
 * फ़ाइल अभिलेखकर्ताओं की तुलना

बाहरी संबंध

 * PKWARE, Inc.'s, .ZIP File Format Specification ; Section 10, X. Deflating – Method 8.
 * – डिफ्लेट Compressed Data Format Specification version 1.3
 * zlib Home Page
 * An Explanation of the डिफ्लेट Algorithm – by Antaeus Feldspar
 * Extended Application of Suffix Trees to Data Compression – an excellent algorithm to implement डिफ्लेट by Jesper Larsson
 * Zip Files: History, Explanation and Implementation – walk-through of a डिफ्लेट implementation