डिफ्लेट

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

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


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

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

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

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


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

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

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

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

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

एक पेड़ बनाया गया है, जिसमें 288 प्रतीकों के लिए जगह है:


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

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


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

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

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

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

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

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

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

एनकोडर कार्यान्वयन
AdvanceCOMP 7-ज़िप, लिबडेफ्लेट और ज़ोपफ्ली में डिफ्लेट के उच्च संपीड़न अनुपात संस्करणों का उपयोग करता है ताकि जीज़िप की तुलना में छोटे फ़ाइल आकार की संभावना के साथ जीज़िप, पोर्टेबल नेटवर्क ग्राफिक्स, मल्टीपल-इमेज नेटवर्क ग्राफ़िक्स  और ज़िप फ़ाइल प्रारूप फ़ाइलों के पुनर्संपीड़न को सक्षम किया जा सके। अधिकतम सेटिंग्स पर प्राप्त करें।
 * PKZIP: पहला कार्यान्वयन, मूल रूप से PKZip के हिस्से के रूप में फिल काट्ज़ द्वारा किया गया
 * zlib: इसके ओपन-सोर्स, अनुमेय लाइसेंस के कारण कई ऐप्स में मानक संदर्भ कार्यान्वयन अपनाया गया है। देखना उच्च-प्रदर्शन वाले फ़ोर्क्स के लिए।
 * क्रिप्टो++: संभावित भेद्यता (कंप्यूटिंग) को कम करने के उद्देश्य से C++ में एक सार्वजनिक-डोमेन कार्यान्वयन शामिल है। लेखक, वेई दाई कहते हैं <उद्धरण>यह कोड कम चतुर है, लेकिन उम्मीद है कि अधिक समझने योग्य और रखरखाव योग्य है [zlib की तुलना में] ।
 * 7-ज़िप: सी++ में इगोर पावलोव द्वारा लिखित, यह संस्करण स्वतंत्र रूप से लाइसेंस प्राप्त है और सीपीयू उपयोग की कीमत पर zlib की तुलना में उच्च संपीड़न प्राप्त करता है। DEFLATE64 संग्रहण प्रारूप का उपयोग करने का विकल्प है।
 * पुटी 'sshzlib.c': साइमन टैथम द्वारा मेरा लाइसेंस के तहत एक स्टैंडअलोन कार्यान्वयन, इसमें पूर्ण डिकोडिंग क्षमता है, लेकिन केवल स्थिर वृक्ष निर्माण का समर्थन करता है
 * लिबफ़्लेट: बेल लैब्स की योजना 9 का हिस्सा, डिफ्लेट कम्प्रेशन को लागू करता है
 * रेड गेट सॉफ्टवेयर#हाइपरबैक: DEFLATE64 स्टोरेज फॉर्मेट को लागू करने के विकल्प के साथ अपनी स्वयं की मालिकाना संपीड़न लाइब्रेरी (C++ और असेंबली में) का उपयोग करता है
 * Zopfli: Google द्वारा अपाचे लाइसेंस के तहत C कार्यान्वयन; सीपीयू उपयोग की कीमत पर उच्चतम संपीड़न प्राप्त करता है। ZopfliPNG पोर्टेबल नेटवर्क ग्राफ़िक्स फ़ाइलों के साथ उपयोग के लिए Zopfli का एक रूप है।
 * igzip: x86 असेंबली भाषा में लिखा गया एक एनकोडर, जो MIT लाइसेंस के तहत इंटेल द्वारा जारी किया गया है। 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-Deflate जीपीएल एफपीजीए कार्यान्वयन।
 * 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 डिकोडर। अनुसंधान/प्रोटोटाइपिंग के लिए लिखा गया है और बीएसडी लाइसेंस/जीएनयू जनरल पब्लिक लाइसेंस/जीएनयू लेसर जनरल पब्लिक लाइसेंस/डेबियन फ्री सॉफ्टवेयर दिशानिर्देश लाइसेंस के तहत उपलब्ध कराया गया है।
 * deflatelua, डेविड मानुरा द्वारा डिफ्लेट और gzip/zlib डीकंप्रेसन का एक शुद्ध-लुआ (प्रोग्रामिंग भाषा) कार्यान्वयन।
 * inflate क्रिस डिकिंसन द्वारा Inflate का एक शुद्ध-जावास्क्रिप्ट (प्रोग्रामिंग भाषा) कार्यान्वयन
 * pako: zlib का जावास्क्रिप्ट गति-अनुकूलित पोर्ट। केवल फुलाने के साथ अलग निर्माण शामिल है।

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

 * सीरियल इन्फ्लेट जीपीयू BitSim से। इन्फ्लेट का हार्डवेयर कार्यान्वयन। एम्बेडेड सिस्टम के लिए बिटसिम के BADGE (बिटसिम एक्सेलेरेटेड डिस्प्ले ग्राफिक्स इंजन) नियंत्रक की पेशकश का हिस्सा।
 * HDL-Deflate जीपीएल एफपीजीए कार्यान्वयन।
 * 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.
 * – Deflate Compressed Data Format Specification version 1.3
 * zlib Home Page
 * An Explanation of the Deflate Algorithm – by Antaeus Feldspar
 * Extended Application of Suffix Trees to Data Compression – an excellent algorithm to implement Deflate by Jesper Larsson
 * Zip Files: History, Explanation and Implementation – walk-through of a Deflate implementation