डिफ्लेट: Difference between revisions

From Vigyanwiki
m (Deepak moved page हवा निकालना to डिफ्लेट without leaving a redirect)
No edit summary
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{short description|Data compression algorithm}}
{{short description|Data compression algorithm}}
{{About|the data compression algorithm||Deflation (disambiguation)}}
{{About|the data compression algorithm||Deflation (disambiguation)}}[[ कम्प्यूटिंग |कम्प्यूटिंग]] में, '''डिफ्लेट''' ('''डिफ्लेट''' के रूप में शैलीबद्ध) एक [[दोषरहित संपीड़न|लॉसलेस]] डेटा कम्प्रेशन फ़ाइल फॉर्मेट है जो LZ77_and_LZ78 और [[हफ़मैन कोडिंग]] के संयोजन का उपयोग करता है। इसे [[फिल काट्ज़]] द्वारा उनके [[PKZIP]] आर्चिविंग टूल के संस्करण 2 के लिए डिज़ाइन किया गया था। डिफ्लेट को बाद में 1951 (1996) में निर्दिष्ट किया गया था।<ref name="IETF">{{cite IETF |title=DEFLATE Compressed Data Format Specification version 1.3 |rfc=1951 |section=Abstract |page=1 |first=L. Peter |last=Deutsch |author-link=L. Peter Deutsch |date=May 1996 |publisher=[[Internet Engineering Task Force|IETF]] |access-date=2014-04-23}}</ref>
{{More citations needed|date=January 2009}}


[[ कम्प्यूटिंग ]] में, डिफ्लेट (डिफ्लेट के रूप में शैलीबद्ध) एक [[दोषरहित संपीड़न]] डेटा संपीड़न फ़ाइल प्रारूप है जो LZ77_and_LZ78 और [[हफ़मैन कोडिंग]] के संयोजन का उपयोग करता है। इसे [[फिल काट्ज़]] द्वारा उनके [[PKZIP]] संग्रह उपकरण के संस्करण 2 के लिए डिज़ाइन किया गया था। डिफ्लेट को बाद में [[टिप्पणियों के लिए अनुरोध]] 1951 (1996) में निर्दिष्ट किया गया था।<ref name="IETF">{{cite IETF |title=DEFLATE Compressed Data Format Specification version 1.3 |rfc=1951 |section=Abstract |page=1 |first=L. Peter |last=Deutsch |author-link=L. Peter Deutsch |date=May 1996 |publisher=[[Internet Engineering Task Force|IETF]] |access-date=2014-04-23}}</ref>
काट्ज़ ने डिफ्लेट स्ट्रीम के निर्माण के लिए उपयोग किए जाने वाले मूल एल्गोरिदम को भी डिज़ाइन किया। इस एल्गोरिदम को {{US patent|5051745}} के रूप में [[सॉफ्टवेयर पेटेंट]] कराया गया था, और PKWARE, Inc. को सौंपा गया था।<ref name="patent">{{cite patent |country=US |number=5051745 |publication-date=1991-09-24 |issue-date=1991-09-24 |title=स्ट्रिंग खोजकर्ता, और कंप्रेसर समान का उपयोग कर रहे हैं|inventor-last=Katz|inventor-first=Phillip W.|inventorlink=Phil Katz |assign1= PKWare Inc. | status=patent}}</ref><ref>{{cite book|title=Data Compression: The Complete Reference | last=David | first=Salomon|year=2007|edition=4|page=241|publisher=Springer|isbn=978-1-84628-602-5|url=https://books.google.com/books?id=ujnQogzx_2EC&pg=PA241}}</ref> जैसा कि आरएफसी डॉक्यूमेंट में कहा गया है, डिफ्लेट फ़ाइलों का उत्पादन करने वाले एल्गोरिदम को व्यापक रूप से पेटेंट द्वारा कवर नहीं किए जाने वाले तरीके से इम्प्लीमेंटेशन योग्य माना जाता था।<ref name="IETF" />इससे इसका व्यापक उपयोग हुआ - उदाहरण के लिए, जीज़िप कंप्रेस्ड फ़ाइलों और पीएनजी इमेज फ़ाइलों में, ज़िप फ़ाइल फॉर्मेट के अलावा जिसके लिए कैटज़ ने मूल रूप से इसे डिज़ाइन किया था। पेटेंट अब समाप्त हो चुका है।
काट्ज़ ने डिफ्लेट स्ट्रीम के निर्माण के लिए उपयोग किए जाने वाले मूल एल्गोरिदम को भी डिज़ाइन किया। यह एल्गोरिदम [[सॉफ्टवेयर पेटेंट]] के रूप में था {{US patent|5051745}}, और PKWARE, Inc को सौंपा गया।<ref name="patent">{{cite patent |country=US |number=5051745 |publication-date=1991-09-24 |issue-date=1991-09-24 |title=स्ट्रिंग खोजकर्ता, और कंप्रेसर समान का उपयोग कर रहे हैं|inventor-last=Katz|inventor-first=Phillip W.|inventorlink=Phil Katz |assign1= PKWare Inc. | status=patent}}</ref><ref>{{cite book|title=Data Compression: The Complete Reference | last=David | first=Salomon|year=2007|edition=4|page=241|publisher=Springer|isbn=978-1-84628-602-5|url=https://books.google.com/books?id=ujnQogzx_2EC&pg=PA241}}</ref> जैसा कि आरएफसी दस्तावेज़ में कहा गया है, डिफ्लेट फ़ाइलों का उत्पादन करने वाले एल्गोरिदम को व्यापक रूप से पेटेंट द्वारा कवर नहीं किए जाने वाले तरीके से कार्यान्वयन योग्य माना जाता था।<ref name="IETF" />इससे इसका व्यापक उपयोग हुआ - उदाहरण के लिए, जिप (फ़ाइल प्रारूप) फ़ाइल प्रारूप के अलावा, जी[[ gzip ]] संपीड़ित फ़ाइलों और [[ पोर्टेबल नेटवर्क ग्राफ़िक्स ]] छवि फ़ाइलों में, जिसके लिए कैटज़ ने मूल रूप से इसे डिज़ाइन किया था। पेटेंट अब समाप्त हो चुका है।


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


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


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


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


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


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


=== डुप्लिकेट स्ट्रिंग उन्मूलन ===
=== डुप्लिकेट स्ट्रिंग एलिमिनेशन ===
{{main article|LZ77 and LZ78|LZSS}}
{{main article|LZ77 and LZ78|LZSS}}


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


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


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


=== बिट कमी ===
=== बिट रिडक्शन ===
{{main article|Huffman coding}}
{{main article|हफमैन कोडिंग}}


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


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


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


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


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


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


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


== एनकोडर/कंप्रेसर ==
== एनकोडर/कंप्रेसर ==
संपीड़न चरण के दौरान, यह एनकोडर है जो मिलान स्ट्रिंग की तलाश में बिताए गए समय की मात्रा को चुनता है। Zlib/gzip [[संदर्भ कार्यान्वयन]] उपयोगकर्ता को संभावित परिणामी संपीड़न-स्तर बनाम एन्कोडिंग की गति के स्लाइडिंग पैमाने से चयन करने की अनुमति देता है। विकल्प से लेकर होते हैं <code>0</code> (संपीड़न का प्रयास न करें, केवल असंपीड़ित संग्रहित करें)<code>9</code> zlib/gzip में संदर्भ कार्यान्वयन की अधिकतम क्षमता का प्रतिनिधित्व करना।
कम्प्रेशन चरण के समय, यह एनकोडर है जो मैच स्ट्रिंग की अनुसंधान में बिताए गए समय की मात्रा को चुनता है। Zlib/gzip [[संदर्भ कार्यान्वयन|संदर्भ इम्प्लीमेंटेशन]] उपयोगकर्ता को संभावित परिणामी कम्प्रेशन-स्तर बनाम एन्कोडिंग की स्पीड के स्लाइडिंग पैमाने से चयन करने की अनुमति देता है। विकल्प <code>0</code> से लेकर (कम्प्रेशन का प्रयास न करें, केवल अकंप्रेस्ड आर्चिविंग करें) <code>9</code> तक होते हैं जो zlib/gzip में संदर्भ इम्प्लीमेंटेशन की अधिकतम क्षमता का प्रतिनिधित्व करते हैं।
 
अन्य डिफ्लेट एनकोडर का उत्पादन किया गया है, जो सभी एक संगत [[बिटस्ट्रीम]] का उत्पादन करेंगे जो किसी भी मौजूदा डिफ्लेट डिकोडर द्वारा डीकंप्रेस्ड होने में सक्षम होंगे। अलग-अलग कार्यान्वयन से उत्पादित अंतिम एन्कोडेड बिट-स्ट्रीम पर भिन्नता उत्पन्न होने की संभावना है। एनकोडर के गैर-ज़्लिब संस्करणों का ध्यान आम तौर पर अधिक कुशलता से संपीड़ित और छोटी एन्कोडेड स्ट्रीम का उत्पादन करने पर होता है।
 
=== डिफ्लेट64/उन्नत डिफ्लेट ===
PKWARE द्वारा निर्दिष्ट Deflate64, Deflate का एक मालिकाना संस्करण है। यह मूल रूप से वही एल्गोरिदम है। जो परिवर्तन हुआ है वह है शब्दकोश का आकार 32 केबी से बढ़ाकर 64 केबी, दूरी कोड को 16 बिट तक विस्तारित करना ताकि वे 64 केबी की सीमा को संबोधित कर सकें, और लंबाई कोड, जिसे 16 बिट तक बढ़ाया गया है ताकि यह तीन से 65,538 बाइट्स की लंबाई को परिभाषित कर सके।<ref>{{Cite web |url=http://www.binaryessence.com/dct/imp/en000225.htm |title=Binary Essence – Deflate64 |access-date=22 May 2011 |archive-url=https://web.archive.org/web/20170621195505/http://www.binaryessence.com/dct/imp/en000225.htm |archive-date=21 June 2017 |url-status=bot: unknown }}</ref> इसके कारण Deflate64 का संपीड़न समय लंबा हो जाता है, और संभावित रूप से Deflate की तुलना में थोड़ा अधिक संपीड़न अनुपात होता है।<ref>{{Cite web |url=http://www.binaryessence.com/dct/apc/en000263.htm |title=Binary Essence – "Calgary Corpus" compression comparisons |access-date=22 May 2011 |archive-url=https://web.archive.org/web/20171227131819/http://www.binaryessence.com/dct/apc/en000263.htm |archive-date=27 December 2017 |url-status=bot: unknown }}</ref> कई मुफ़्त और/या ओपन सोर्स प्रोजेक्ट्स Deflate64 का समर्थन करते हैं, जैसे [[7-ज़िप]],<ref>{{Cite web|url=https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm|title=-एम (संपीड़न विधि सेट करें) स्विच|website=sevenzip.osdn.jp}}</ref> जबकि अन्य, जैसे [[zlib]], प्रक्रिया की स्वामित्व प्रकृति के परिणामस्वरूप ऐसा नहीं करते हैं<ref>History of Lossless Data Compression Algorithms – [http://ieeeghn.org/wiki/index.php/History_of_Lossless_Data_Compression_Algorithms#DEFLATE64 Deflate64]</ref> और डिफ्लेट की तुलना में प्रदर्शन में बहुत मामूली वृद्धि हुई।<ref>zlib FAQ – [https://www.zlib.net/zlib_faq.html#faq40 Does zlib support the new "Deflate64" format introduced by PKWare?]</ref>


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


=== डिफ्लेट64/इन्हैंस्ड डिफ्लेट ===
PKWARE द्वारा निर्दिष्ट डिफ्लेट64, डिफ्लेट का एक संपदा संस्करण है। यह मूल रूप से वही एल्गोरिदम है, जो परिवर्तन हुआ है वह है शब्दकोश का आकार 32 केबी से बढ़ाकर 64 केबी, डिस्टेंस कोड को 16 बिट तक विस्तारित करना ताकि वे 64 केबी की सीमा को संबोधित कर सकें, और लंबाई कोड, जिसे 16 बिट तक बढ़ाया गया है ताकि यह तीन से 65,538 बाइट्स की लंबाई को परिभाषित कर सके।<ref>{{Cite web |url=http://www.binaryessence.com/dct/imp/en000225.htm |title=Binary Essence – Deflate64 |access-date=22 May 2011 |archive-url=https://web.archive.org/web/20170621195505/http://www.binaryessence.com/dct/imp/en000225.htm |archive-date=21 June 2017 |url-status=bot: unknown }}</ref> इसके कारण डिफ्लेट64 का कम्प्रेशन समय लंबा हो जाता है, और संभावित रूप से डिफ्लेट की तुलना में थोड़ा अधिक कम्प्रेशन अनुपात होता है।<ref>{{Cite web |url=http://www.binaryessence.com/dct/apc/en000263.htm |title=Binary Essence – "Calgary Corpus" compression comparisons |access-date=22 May 2011 |archive-url=https://web.archive.org/web/20171227131819/http://www.binaryessence.com/dct/apc/en000263.htm |archive-date=27 December 2017 |url-status=bot: unknown }}</ref> कई निर्बाध और/या ओपन सोर्स प्रोजेक्ट्स डिफ्लेट64 का समर्थन करते हैं, जैसे [[7-ज़िप]],<ref>{{Cite web|url=https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm|title=-एम (संपीड़न विधि सेट करें) स्विच|website=sevenzip.osdn.jp}}</ref> जबकि अन्य, जैसे [[zlib]], प्रक्रिया की स्वामित्व प्रकृति के परिणामस्वरूप ऐसा नहीं करते हैं<ref>History of Lossless Data Compression Algorithms – [http://ieeeghn.org/wiki/index.php/History_of_Lossless_Data_Compression_Algorithms#DEFLATE64 Deflate64]</ref> और डिफ्लेट की तुलना में प्रदर्शन में बहुत सामान्य वृद्धि हुई है।<ref>zlib FAQ – [https://www.zlib.net/zlib_faq.html#faq40 Does zlib support the new "Deflate64" format introduced by PKWare?]</ref>
== नए सॉफ्टवेयर में डिफ्लेट का उपयोग ==
== नए सॉफ्टवेयर में डिफ्लेट का उपयोग ==
डिफ्लेट का कार्यान्वयन कई भाषाओं में निःशुल्क उपलब्ध है। C (प्रोग्रामिंग भाषा) में लिखे गए ऐप्स आमतौर पर zlib लाइब्रेरी (अनुमेय zlib लाइसेंस के तहत) का उपयोग करते हैं। [[बोर्लैंड पास्कल]] (और संगत भाषाओं) में ऐप्स paszlib का उपयोग कर सकते हैं। [[C++]] में ऐप्स 7-ज़िप में बेहतर डिफ्लेट लाइब्रेरी का लाभ उठा सकते हैं। [[जावा (सॉफ़्टवेयर प्लेटफ़ॉर्म)]] और .NET फ़्रेमवर्क दोनों अपने पुस्तकालयों में डिफ्लेट के लिए आउट-ऑफ़-द-बॉक्स समर्थन प्रदान करते हैं (क्रमशः, <code>java.util.zip</code> और [https://docs.microsoft.com/en-us/dotnet/api/system.io.compression.deflatestream System.IO.Compression])। Ada (प्रोग्रामिंग भाषा) में ऐप्स [http://unzip-ada.sourceforge.net/ Zip-Ada] (शुद्ध) या [http://zlib-ada.sourceforge.net/ ZLib-Ada] का उपयोग कर सकते हैं।
डिफ्लेट का इम्प्लीमेंटेशन कई लैंग्वेजओं में निःशुल्क उपलब्ध है। C (प्रोग्रामिंग लैंग्वेज) में लिखे गए ऐप्स सामान्यतः zlib लाइब्रेरी (अनुमेय zlib लाइसेंस के तहत) का उपयोग करते हैं। [[बोर्लैंड पास्कल]] (और संगत लैंग्वेजओं) में ऐप्स paszlib का उपयोग कर सकते हैं। [[C++]] में ऐप्स 7-ज़िप में बेहतर डिफ्लेट लाइब्रेरी का लाभ उठा सकते हैं। [[जावा (सॉफ़्टवेयर प्लेटफ़ॉर्म)]] और .NET फ़्रेमवर्क दोनों अपने लाइब्रेरीज में डिफ्लेट के लिए आउट-ऑफ़-द-बॉक्स समर्थन प्रदान करते हैं (क्रमशः, <code>java.util.zip</code> और [https://docs.microsoft.com/en-us/dotnet/api/system.io.compression.deflatestream System.IO.Compression])। Ada (प्रोग्रामिंग लैंग्वेज) में ऐप्स [http://unzip-ada.sourceforge.net/ Zip-Ada] (शुद्ध) या [http://zlib-ada.sourceforge.net/ ZLib-Ada] का उपयोग कर सकते हैं।
 
=== एनकोडर कार्यान्वयन ===
* PKZIP: पहला कार्यान्वयन, मूल रूप से PKZip के हिस्से के रूप में फिल काट्ज़ द्वारा किया गया
* zlib: इसके ओपन-सोर्स, अनुमेय लाइसेंस के कारण कई ऐप्स में मानक संदर्भ कार्यान्वयन अपनाया गया है। देखना {{section link|Zlib#Forks}} उच्च-प्रदर्शन वाले फ़ोर्क्स के लिए।
* [[क्रिप्टो++]]: संभावित [[भेद्यता (कंप्यूटिंग)]] को कम करने के उद्देश्य से C++ में एक सार्वजनिक-डोमेन कार्यान्वयन शामिल है। लेखक, वेई दाई कहते हैं <उद्धरण>यह कोड कम चतुर है, लेकिन उम्मीद है कि अधिक समझने योग्य और रखरखाव योग्य है [zlib की तुलना में]</cite>।
* 7-ज़िप: सी++ में इगोर पावलोव द्वारा लिखित, यह संस्करण स्वतंत्र रूप से लाइसेंस प्राप्त है और सीपीयू उपयोग की कीमत पर zlib की तुलना में उच्च संपीड़न प्राप्त करता है। DEFLATE64 संग्रहण प्रारूप का उपयोग करने का विकल्प है।
* पुटी 'sshzlib.c': साइमन टैथम द्वारा [[मेरा लाइसेंस]] के तहत एक स्टैंडअलोन कार्यान्वयन, इसमें पूर्ण डिकोडिंग क्षमता है, लेकिन केवल स्थिर वृक्ष निर्माण का समर्थन करता है
* लिबफ़्लेट:<ref>{{Cite web |url=http://plan9.bell-labs.com/sources/plan9/sys/src/libflate/ |title=Plan 9 from Bell Labs's /n/sources/plan9/sys/src/libflate |website=plan9.bell-labs.com |publisher=Lucent Technologies |archive-date=2006-03-15 |archive-url=https://web.archive.org/web/20060315063934/http://plan9.bell-labs.com/sources/plan9/sys/src/libflate/ |url-status=dead }}</ref> बेल लैब्स की योजना 9 का हिस्सा, डिफ्लेट कम्प्रेशन को लागू करता है
* रेड गेट सॉफ्टवेयर#हाइपरबैक: DEFLATE64 स्टोरेज फॉर्मेट को लागू करने के विकल्प के साथ अपनी स्वयं की मालिकाना संपीड़न लाइब्रेरी (C++ और असेंबली में) का उपयोग करता है
* [[Zopfli]]: [[Google]] द्वारा [[अपाचे लाइसेंस]] के तहत C कार्यान्वयन; सीपीयू उपयोग की कीमत पर उच्चतम संपीड़न प्राप्त करता है। ZopfliPNG पोर्टेबल नेटवर्क ग्राफ़िक्स फ़ाइलों के साथ उपयोग के लिए Zopfli का एक रूप है।
* igzip: [[x86 असेंबली भाषा]] में लिखा गया एक एनकोडर, जो MIT लाइसेंस के तहत [[इंटेल]] द्वारा जारी किया गया है। zlib -1 से 3 गुना तेज। जीनोमिक डेटा को संपीड़ित करने के लिए उपयोगी।<ref>{{cite web |title=जीनोमिक डेटा सेट के लिए अनुकूलन के साथ उच्च प्रदर्शन DEFLATE संपीड़न|url=https://software.intel.com/en-us/articles/igzip-a-high-performance-deflate-compressor-with-optimizations-for-genomic-data |website=Intel Software |access-date=18 January 2020 |date=1 October 2019}}</ref>
AdvanceCOMP 7-ज़िप, लिबडेफ्लेट और ज़ोपफ्ली में डिफ्लेट के उच्च संपीड़न अनुपात संस्करणों का उपयोग करता है ताकि जीज़िप की तुलना में छोटे फ़ाइल आकार की संभावना के साथ जीज़िप, पोर्टेबल नेटवर्क ग्राफिक्स, [[ मल्टीपल-इमेज नेटवर्क ग्राफ़िक्स ]] और ज़िप फ़ाइल प्रारूप फ़ाइलों के पुनर्संपीड़न को सक्षम किया जा सके। अधिकतम सेटिंग्स पर प्राप्त करें।<ref>{{cite web |last1=Mazzoleni |first1=Andrea |title=amadvance/advancecomp |website=[[GitHub]] |url=https://github.com/amadvance/advancecomp/blob/fcf71a89265c78fc26243574dda3a872574a5c02/doc/advzip.txt |date=21 February 2023}}</ref>
 


=== एनकोडर इम्प्लीमेंटेशन ===
* PKZIP: पहला इम्प्लीमेंटेशन, मूल रूप से PKZip के भाग के रूप में फिल काट्ज़ द्वारा किया गया
* zlib: इसके ओपन-सोर्स, अनुमेय लाइसेंस के कारण कई ऐप्स में मानक संदर्भ इम्प्लीमेंटेशन अपनाया गया है। उच्च-प्रदर्शन वाले फ़ोर्क्स के लिए {{section link|Zlib#Forks}} देखें।
* [[क्रिप्टो++]]: संभावित [[भेद्यता (कंप्यूटिंग)]] को कम करने के उद्देश्य से C++ में एक सार्वजनिक-डोमेन इम्प्लीमेंटेशन सम्मिलित है। लेखक, वेई दाई कहते हैं "यह कोड कम चतुर है, लेकिन उम्मीद है कि [zlib की तुलना में] अधिक समझने योग्य और रखरखाव योग्य है"।
* 7-ज़िप: C++ में इगोर पावलोव द्वारा लिखित, यह संस्करण स्वतंत्र रूप से लाइसेंस प्राप्त है और सीपीयू उपयोग की कीमत पर zlib की तुलना में उच्च कम्प्रेशन प्राप्त करता है। डिफ्लेट64 आर्चिव फॉर्मेट का उपयोग करने का विकल्प है।
* पुटी 'sshzlib.c': साइमन टैथम द्वारा [[मेरा लाइसेंस|एमआईटी  लाइसेंस]] के तहत एक स्टैंडअलोन इम्प्लीमेंटेशन, इसमें पूर्ण डिकोडिंग क्षमता है, लेकिन केवल स्टेटिक ट्री निर्माण का समर्थन करता है
* लिबफ़्लेट:<ref>{{Cite web |url=http://plan9.bell-labs.com/sources/plan9/sys/src/libflate/ |title=Plan 9 from Bell Labs's /n/sources/plan9/sys/src/libflate |website=plan9.bell-labs.com |publisher=Lucent Technologies |archive-date=2006-03-15 |archive-url=https://web.archive.org/web/20060315063934/http://plan9.bell-labs.com/sources/plan9/sys/src/libflate/ |url-status=dead }}</ref> बेल लैब्स की योजना 9 का भाग, डिफ्लेट कम्प्रेशन को लागू करता है
* हाइपरबैक: डिफ्लेट64 स्टोरेज फॉर्मेट को लागू करने के विकल्प के साथ अपनी स्वयं की मालिकाना कम्प्रेशन लाइब्रेरी (C++ और असेंबली में) का उपयोग करता है
* [[Zopfli]]: [[Google]] द्वारा [[अपाचे लाइसेंस]] के तहत C इम्प्लीमेंटेशन; सीपीयू उपयोग की कीमत पर उच्चतम कम्प्रेशन प्राप्त करता है। ZopfliPNG पोर्टेबल नेटवर्क ग्राफ़िक्स फ़ाइलों के साथ उपयोग के लिए Zopfli का एक रूप है।
* igzip:एमआईटी लाइसेंस के तहत [[इंटेल]] द्वारा जारी [[x86 असेंबली भाषा|x86 असेंबली लैंग्वेज]] में लिखा गया एक एनकोडर। zlib -1 से 3 गुना तेज। जीनोमिक डेटा को कंप्रेस्ड करने के लिए उपयोगी।<ref>{{cite web |title=जीनोमिक डेटा सेट के लिए अनुकूलन के साथ उच्च प्रदर्शन DEFLATE संपीड़न|url=https://software.intel.com/en-us/articles/igzip-a-high-performance-deflate-compressor-with-optimizations-for-genomic-data |website=Intel Software |access-date=18 January 2020 |date=1 October 2019}}</ref>
AdvanceCOMP 7-ज़िप, लिबडेफ्लेट और ज़ोपफ्ली में डिफ्लेट के उच्च संपीड़न अनुपात संस्करणों का उपयोग करता है ताकि जीज़िप, पीएनजी, एमएनजी और ज़िप फ़ाइलों के पुनर्संपीड़न को सक्षम किया जा सके, जिसमें zlib की तुलना में छोटे फ़ाइल आकार की संभावना अधिकतम सेटिंग्स पर प्राप्त करने में सक्षम है। <ref>{{cite web |last1=Mazzoleni |first1=Andrea |title=amadvance/advancecomp |website=[[GitHub]] |url=https://github.com/amadvance/advancecomp/blob/fcf71a89265c78fc26243574dda3a872574a5c02/doc/advzip.txt |date=21 February 2023}}</ref>
=== हार्डवेयर एनकोडर ===
=== हार्डवेयर एनकोडर ===
* एएचए 361-पीसीआई/एएचए362-पीसीआई एक्स [http://www.aha.com/ कॉमटेक एएचए] से {{Webarchive|url=https://web.archive.org/web/20061208005415/http://www.aha.com/ |date=2006-12-08 }}. कॉमटेक ने एक [[पीसीआई-एक्स]] कार्ड (पीसीआई-आईडी) तैयार किया: <code>193f:0001</code>) आने वाले असम्पीडित डेटा के लिए 3.0 जीबी/एस (375 एमबी/एस) तक की दर पर डिफ्लेट का उपयोग करके स्ट्रीम को संपीड़ित करने में सक्षम है। AHA361-PCIX के लिए [[लिनक्स (कर्नेल)]] [[डिवाइस ड्राइवर]] के साथ एक है<code>ahagzip</code>उपयोगिता और अनुकूलित<code>mod_deflate_aha</code>[[अपाचे HTTP सर्वर]] से हार्डवेयर संपीड़न का उपयोग करने में सक्षम। हार्डवेयर [[Xilinx]] Virtex ([[FPGA]]) FPGA और चार कस्टम AHA3601 एप्लिकेशन-विशिष्ट एकीकृत सर्किट पर आधारित है। AHA361/AHA362 बोर्ड केवल स्थिर हफ़मैन ब्लॉकों को संभालने तक ही सीमित हैं और समर्थन जोड़ने के लिए सॉफ़्टवेयर को संशोधित करने की आवश्यकता होती है - कार्ड पूर्ण डिफ्लेट विनिर्देश का समर्थन करने में सक्षम नहीं थे, जिसका अर्थ है कि वे केवल अपने स्वयं के आउटपुट को विश्वसनीय रूप से डीकोड कर सकते हैं (एक स्ट्रीम जिसमें कोई गतिशील हफ़मैन प्रकार 2 ब्लॉक शामिल नहीं थे)।
* कॉमटेक एएचए से AHA361-PCIX/AHA362-PCIX संग्रहीत 2006-12-08 को वेबैक मशीन पर। कॉमटेक ने एक [[पीसीआई-एक्स]] कार्ड (PCI-ID: 193f:0001) तैयार किया, जो आने वाले इनकंप्रेसिब्ल डेटा के लिए 3.0 Gbit/s (375 MB/s) तक की दर पर डिफ्लेट का उपयोग करके स्ट्रीम को कंप्रेस्ड करने में सक्षम है। AHA361-PCIX के लिए [[लिनक्स (कर्नेल)]] [[डिवाइस ड्राइवर]] के साथ एक "aagzip" उपयोगिता और अनुकूलित "mod_डिफ्लेट_aha" है जो [[अपाचे HTTP सर्वर]] से हार्डवेयर कम्प्रेशन का उपयोग करने में सक्षम है। हार्डवेयर Xilinx Virtex FPGA और चार कस्टम AHA3601 ASIC पर आधारित है। AHA361/AHA362 बोर्ड केवल स्थैतिक हफ़मैन ब्लॉकों को संभालने तक ही सीमित हैं और समर्थन जोड़ने के लिए सॉफ़्टवेयर को संशोधित करने की आवश्यकता है - कार्ड पूर्ण डिफ्लेट विनिर्देश का समर्थन करने में सक्षम नहीं थे, जिसका अर्थ है कि वे केवल अपने स्वयं के आउटपुट को विश्वसनीय रूप से डीकोड कर सकते हैं (एक स्ट्रीम जो नहीं करती थी) इसमें कोई भी डायनामिक हफ़मैन प्रकार 2 ब्लॉक सम्मिलित हैं)।
* [http://www.dranetworks.com/SC300.html StorCompress 300]/[http://www.dranetworks.com/SCMX3.html MX3] [http://www.dranetworks.com/ इंद्रा नेटवर्क्स] से। यह [[पीसीआई लोकल बस]] की एक श्रृंखला है (पीसीआई-आईडी: <code>17b4:0011</code>) या PCI-X कार्ड जिसमें एक से छह कम्प्रेशन इंजन होते हैं जिनकी प्रोसेसिंग गति 3.6 Gbit/s (450 MB/s) तक होने का दावा किया जाता है। कार्ड का एक संस्करण अलग ब्रांड WebEnhance के साथ उपलब्ध है जो विशेष रूप से [[संरक्षण क्षेत्र नियंत्रण कार्य]] या बैकअप उपयोग के बजाय वेब-सर्विंग उपयोग के लिए डिज़ाइन किया गया है; एक [[PCIe]] संशोधन, [http://www.indanetworks.com/SCMX4E.html MX4E] भी तैयार किया गया है।
*[http://www.dranetworks.com/SC300.html StorCompress 300]/[http://www.dranetworks.com/SCMX3.html MX3] [http://www.dranetworks.com/ इंद्रा नेटवर्क्स] से। यह [[पीसीआई लोकल बस]] की एक श्रृंखला है (पीसीआई-आईडी: <code>17b4:0011</code>) या PCI-X कार्ड जिसमें एक से छह कम्प्रेशन इंजन होते हैं जिनकी प्रोसेसिंग स्पीड 3.6 Gbit/s (450 MB/s) तक होने का दावा किया जाता है। कार्ड का एक संस्करण अलग ब्रांड WebEnhance के साथ उपलब्ध है जो विशेष रूप से [[संरक्षण क्षेत्र नियंत्रण कार्य]] या बैकअप उपयोग के स्थान पर वेब-सर्विंग उपयोग के लिए डिज़ाइन किया गया है; एक [[PCIe]] संशोधन, [http://www.indanetworks.com/SCMX4E.html MX4E] भी तैयार किया गया है।
* [https://web.archive.org/web/20080912222617/http://www.aha.com/show_prod.php?id=36 AHA363-PCIe]/[https://web.archive.org/web/20090212202014/http://www.aha.com/show_prod.php?id=37 AHA364-PCI e]/[https://web.archive.org/web/20090820184941/http://www.aha.com/show_prod.php?id=38 AHA367-PCIe]। 2008 में, कॉमटेक ने दो PCIe कार्ड का उत्पादन शुरू किया (<code>PCI-ID: 193f:0363</code>/<code>193f:0364</code>) एक नए हार्डवेयर AHA3610 एनकोडर चिप के साथ। नई चिप को निरंतर 2.5 Gbit/s में सक्षम होने के लिए डिज़ाइन किया गया था। इनमें से दो चिप्स का उपयोग करके, AHA363-PCIe बोर्ड दो चैनलों (दो संपीड़न और दो डीकंप्रेसन) का उपयोग करके 5.0 Gbit/s (625 MB/s) तक की दर पर डिफ्लेट को संसाधित कर सकता है। AHA364-PCIe वैरिएंट आउट-गोइंग [[ भार संतुलन ]]्स के लिए डिज़ाइन किए गए कार्ड का एक एन्कोड-केवल संस्करण है और इसके बजाय दो भौतिक संपीड़न इंजनों को खिलाने वाले 32 स्वतंत्र वर्चुअल संपीड़न चैनलों की अनुमति देने के लिए कई रजिस्टर सेट हैं। लिनक्स, [[ माइक्रोसॉफ़्ट विंडोज़ ]] और [[ ओपनसोलर ]] कर्नेल डिवाइस ड्राइवर संशोधित zlib सिस्टम लाइब्रेरी के साथ दोनों नए कार्डों के लिए उपलब्ध हैं ताकि गतिशील रूप से लिंक किए गए एप्लिकेशन आंतरिक संशोधन के बिना स्वचालित रूप से हार्डवेयर समर्थन का उपयोग कर सकें। AHA367-PCIe बोर्ड (<code>PCI-ID: 193f:0367</code>) AHA363-PCIe के समान है लेकिन 10 Gbit/s (1250 MB/s) की निरंतर संपीड़न दर के लिए चार AHA3610 चिप्स का उपयोग करता है। AHA362-PCIX के विपरीत, AHA363-PCIe और AHA367-PCIe बोर्ड पर डीकंप्रेसन इंजन पूरी तरह से डिफ्लेट के अनुरूप हैं।
* [https://web.archive.org/web/20080912222617/http://www.aha.com/show_prod.php?id=36 AHA363-PCIe]/[https://web.archive.org/web/20090212202014/http://www.aha.com/show_prod.php?id=37 AHA364-PCI e]/[https://web.archive.org/web/20090820184941/http://www.aha.com/show_prod.php?id=38 AHA367-PCIe]। 2008 में, कॉमटेक ने दो PCIe कार्ड का उत्पादन प्रारम्भ किया (<code>PCI-ID: 193f:0363</code>/<code>193f:0364</code>) एक नए हार्डवेयर AHA3610 एनकोडर चिप के साथ। नई चिप को निरंतर 2.5 Gbit/s में सक्षम होने के लिए डिज़ाइन किया गया था। इनमें से दो चिप्स का उपयोग करके, AHA363-PCIe बोर्ड दो चैनलों (दो कम्प्रेशन और दो डीकंप्रेसन) का उपयोग करके 5.0 Gbit/s (625 MB/s) तक की दर पर डिफ्लेट को संसाधित कर सकता है। AHA364-PCIe वैरिएंट आउट-गोइंग [[ भार संतुलन ]]्स के लिए डिज़ाइन किए गए कार्ड का एक एन्कोड-केवल संस्करण है और इसके स्थान पर दो भौतिक कम्प्रेशन इंजनों को खिलाने वाले 32 स्वतंत्र वर्चुअल कम्प्रेशन चैनलों की अनुमति देने के लिए कई रजिस्टर सेट हैं। लिनक्स, [[ माइक्रोसॉफ़्ट विंडोज़ ]] और [[ ओपनसोलर ]] कर्नेल डिवाइस ड्राइवर संशोधित zlib सिस्टम लाइब्रेरी के साथ दोनों नए कार्डों के लिए उपलब्ध हैं ताकि डायनामिक रूप से लिंक किए गए एप्लिकेशन आंतरिक संशोधन के बिना स्वचालित रूप से हार्डवेयर समर्थन का उपयोग कर सकें। AHA367-PCIe बोर्ड (<code>PCI-ID: 193f:0367</code>) AHA363-PCIe के समान है लेकिन 10 Gbit/s (1250 MB/s) की निरंतर कम्प्रेशन दर के लिए चार AHA3610 चिप्स का उपयोग करता है। AHA362-PCIX के विपरीत, AHA363-PCIe और AHA367-PCIe बोर्ड पर डीकंप्रेसन इंजन पूरी तरह से डिफ्लेट के अनुरूप हैं।
* [https://web.archive.org/web/20101203144755/http://www.cavium.com/processor_security_nitrox-III.html Nitrox] और [https://github.com/zerix/Cavium-SDK-2.0 /पेड़/मास्टर/उदाहरण/ज़िप ऑक्टियन]{{Dead link|date=November 2019 |bot=InternetArchiveBot |fix-attempted=yes }} [http://cavium.com कैवियम, इंक.] के प्रोसेसर में ZLIB और GZIP दोनों के साथ संगत हाई-स्पीड हार्डवेयर डिफ्लेट और इनफ्लेट इंजन होते हैं, साथ ही कुछ डिवाइस एक साथ कई डेटा स्ट्रीम को संभालने में सक्षम होते हैं।
* [https://web.archive.org/web/20101203144755/http://www.cavium.com/processor_security_nitrox-III.html Nitrox] और [https://github.com/zerix/Cavium-SDK-2.0 /ट्री/मास्टर/उदाहरण/ज़िप ऑक्टियन]{{Dead link|date=November 2019 |bot=InternetArchiveBot |fix-attempted=yes }} [http://cavium.com कैवियम, इंक.] के प्रोसेसर में ZLIB और GZIP दोनों के साथ संगत हाई-स्पीड हार्डवेयर डिफ्लेट और इनफ्लेट इंजन होते हैं, साथ ही कुछ डिवाइस एक साथ कई डेटा स्ट्रीम को संभालने में सक्षम होते हैं।
* [https://github.com/tomtor/HDL-deflate HDL-Deflate] जीपीएल एफपीजीए कार्यान्वयन।
* [https://github.com/tomtor/HDL-deflate HDL-डिफ्लेट] जीपीएल एफपीजीए इम्प्लीमेंटेशन।
*[https://www.cast-inc.com/compression/gzip-losless-data-compression/zipaccel-c/ ZipAccel-C] से [https://www.cast-inc.com/ CAST Inc]। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़लिब और जीज़िप संपीड़न का समर्थन करता है। ZipAccel-C को एप्लिकेशन-विशिष्ट एकीकृत सर्किट या [[क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला]] में कार्यान्वित किया जा सकता है, जो डायनेमिक और स्टेटिक हफ़मैन टेबल दोनों का समर्थन करता है, और 100Gbps से अधिक थ्रूपुट प्रदान कर सकता है। कंपनी Intel FPGA ([https://www.cast-inc.com/compression/gzip-losless-data-compression/gzip-rd-int/ ZipAccel-RD-INT]) के लिए कंप्रेशन/डीकंप्रेसन एक्सेलेरेटर बोर्ड संदर्भ डिज़ाइन प्रदान करती है। और Xilinx FPGAs ([https://www.cast-inc.com/compression/gzip-losless-data-compression/gzip-rd-xil/ ZipAccel-RD-XIL])।
*[https://www.cast-inc.com/compression/gzip-losless-data-compression/zipaccel-c/ ZipAccel-C] से [https://www.cast-inc.com/ CAST Inc]। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़ेडलिब और जीज़िप कम्प्रेशन का समर्थन करता है। ZipAccel-C को ASIC या FPGAs में कार्यान्वित किया जा सकता है, यह डायनामिक और स्टेटिक हफ़मैन दोनों तालिकाओं का समर्थन करता है, और 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 की संपीड़न और डीकंप्रेसन दरें उपलब्ध हैं।<ref name="quickassist">{{cite web
*CAST Inc. से ZipAccel-C। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़ेडलिब और जीज़िप संपीड़न का समर्थन करता है। ZipAccel-C को
* Intel [[Xeon]] E5-2600 और E5-2400 प्रोसेसर सीरीज (सैंडी ब्रिज-EP/EN) के लिए इंटेल कम्युनिकेशंस चिपसेट 89xx सीरीज (केव क्रीक) QuickAssist Technology का उपयोग करके हार्डवेयर कम्प्रेशन और डीकंप्रेसन का समर्थन करता है। चिपसेट के आधार पर, 5Gbit/s, 10Gbit/s, या 20Gbit/s की कम्प्रेशन और डीकंप्रेसन दरें उपलब्ध हैं।<ref name="quickassist">{{cite web
|url=https://www-ssl.intel.com/content/www/us/en/intelligent-systems/crystal-forest-server/embedded-intel-xeon-e5-2600-and-e5-2400-series-with-intel-communications-chipset-89xx.html
|url=https://www-ssl.intel.com/content/www/us/en/intelligent-systems/crystal-forest-server/embedded-intel-xeon-e5-2600-and-e5-2400-series-with-intel-communications-chipset-89xx.html
|title=Intel® Xeon® Processor E5-2600 and E5-2400 Series with Intel® Communications Chipset 89xx Series
|title=Intel® Xeon® Processor E5-2600 and E5-2400 Series with Intel® Communications Chipset 89xx Series
|access-date=2016-05-18
|access-date=2016-05-18
}}</ref>
}}</ref>
* IBM z15 (माइक्रोप्रोसेसर) CPU में RFC1951 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट संपीड़न और डीकंप्रेसन के लिए z14 सिस्टम में उपयोग किए जाने वाले zEDC एक्सप्रेस I/O विस्तार कार्ड से नेस्ट एक्सेलेरेटर यूनिट (NXU) हार्डवेयर त्वरण का एक उन्नत संस्करण शामिल है।<ref name="z15_announce">{{cite web
*IBM z15 (माइक्रोप्रोसेसर) सीपीयू में RFC1951 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट कम्प्रेशन और डीकंप्रेसन के लिए z14 सिस्टम में उपयोग किए जाने वाले zEDC एक्सप्रेस I/O विस्तार कार्ड से नेस्ट एक्सेलेरेटर यूनिट (NXU) हार्डवेयर त्वरण का एक उन्नत संस्करण सम्मिलित है।<ref name="z15_announce">{{cite web
|url=https://www.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&infotype=an&supplier=877&letternum=ENUSZG19-0041
|url=https://www.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&infotype=an&supplier=877&letternum=ENUSZG19-0041
|title=IBM z15 का परिचय - मिशन-क्रिटिकल हाइब्रिड मल्टीक्लाउड के लिए एंटरप्राइज़ प्लेटफ़ॉर्म|website=[[IBM]]
|title=IBM z15 का परिचय - मिशन-क्रिटिकल हाइब्रिड मल्टीक्लाउड के लिए एंटरप्राइज़ प्लेटफ़ॉर्म|website=[[IBM]]
Line 113: Line 108:
|date=28 April 2021
|date=28 April 2021
}}</ref>
}}</ref>
* [[POWER9]] आर्किटेक्चर के साथ शुरुआत करते हुए, IBM ने [[POWER7]]|POWER7+ के साथ पेश किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को संपीड़ित और डीकंप्रेस करने के लिए हार्डवेयर समर्थन जोड़ा। यह समर्थन zlibNX लाइब्रेरी के माध्यम से [[IBM AIX]] 7.2 टेक्नोलॉजी लेवल 4 एक्सपेंशन पैक या AIX 7.2 टेक्नोलॉजी लेवल 5 सर्विस पैक 2 के साथ चलने वाले प्रोग्रामों के लिए उपलब्ध है।
* [[POWER9]] आर्किटेक्चर के साथ प्रारम्भ करते हुए, IBM ने [[POWER7|POWER7+]] के साथ प्रस्तुत किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को कंप्रेस्ड और डीकंप्रेस करने के लिए हार्डवेयर समर्थन जोड़ा। यह समर्थन zlibNX लाइब्रेरी के माध्यम से [[IBM AIX]] 7.2 टेक्नोलॉजी लेवल 4 एक्सपेंशन पैक या AIX 7.2 टेक्नोलॉजी लेवल 5 सर्विस पैक 2 के साथ चलने वाले प्रोग्रामों के लिए उपलब्ध है।<ref name="power7_accel">{{cite web
रेफरी नाम= zlibnx >{{cite web
|url=https://www.ibm.com/docs/en/aix/7.2?topic=management-data-compression-by-using-zlibnx-library
|title=ZlibNX लाइब्रेरी का उपयोग करके डेटा संपीड़न - IBM दस्तावेज़ीकरण|website=[[IBM]]
|access-date=2021-11-01
}}</ref><ref name="power7_accel">{{cite web
|url=https://community.ibm.com/community/user/power/blogs/xinya-wang1/2021/02/18/exploitation-of-nest-accelerators-and-in-core-acce
|url=https://community.ibm.com/community/user/power/blogs/xinya-wang1/2021/02/18/exploitation-of-nest-accelerators-and-in-core-acce
|title=AIX के लिए पावर प्रोसेसर के इन-कोर एक्सेलेरेशन का शोषण|access-date=2021-11-01
|title=AIX के लिए पावर प्रोसेसर के इन-कोर एक्सेलेरेशन का शोषण|access-date=2021-11-01
}}</ref>
}}</ref>
== डिकोडर/डीकंप्रेसर ==
== डिकोडर/डीकंप्रेसर ==
इन्फ्लेट डिकोडिंग प्रक्रिया है जो डीकंप्रेसन के लिए डिफ्लेट बिटस्ट्रीम लेती है और मूल पूर्ण आकार के डेटा या फ़ाइल को सही ढंग से तैयार करती है।
इन्फ्लेट डिकोडिंग प्रक्रिया है जो डीकंप्रेसन के लिए डिफ्लेट बिटस्ट्रीम लेती है और मूल पूर्ण आकार के डेटा या फ़ाइल को सही ढंग से तैयार करती है।


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


* [[सभा की भाषा]]
* [[सभा की भाषा|असेंबली]]
** [https://github.com/pfusik/zlib6502 6502 inflate], [[एमओएस टेक्नोलॉजी 6502]] असेंबली भाषा में पियोट्र फ्यूसिक द्वारा लिखित।
** [https://github.com/pfusik/zlib6502 6502 इन्फ्लेट], [[एमओएस टेक्नोलॉजी 6502]] असेंबली लैंग्वेज में पियोट्र फ्यूसिक द्वारा लिखित है।
** [http://sourceforge.net/projects/samflate/ SAMflate], सैम कूपे के लिए वैकल्पिक मेमोरी पेजिंग समर्थन के साथ [[Z80]] असेंबली भाषा में एंड्रयू कोलियर द्वारा लिखित, और [[बीएसडी लाइसेंस]]/[[जीएनयू जनरल पब्लिक लाइसेंस]]/जीएनयू के तहत उपलब्ध कराया गया है। लेसर जनरल पब्लिक लाइसेंस/[[डेबियन फ्री सॉफ्टवेयर दिशानिर्देश]] लाइसेंस।
** [http://sourceforge.net/projects/samflate/ SAMflate], सैम कूपे के लिए वैकल्पिक मेमोरी पेजिंग समर्थन के साथ [[Z80]] असेंबली लैंग्वेज में एंड्रयू कोलियर द्वारा लिखित, और [[बीएसडी लाइसेंस]]/[[जीएनयू जनरल पब्लिक लाइसेंस]]/जीएनयू के तहत उपलब्ध कराया गया है। लेसर जनरल पब्लिक लाइसेंस/[[डेबियन फ्री सॉफ्टवेयर दिशानिर्देश]] लाइसेंस है।
** [https://web.archive.org/web/20160304053236/https://bitbucket.org/grauw/बंदूक गनज़िप], [[MSX]] के लिए Z80 असेंबली भाषा में लॉरेन्स होल्स्ट द्वारा लिखित, BSD लाइसेंस के तहत लाइसेंस प्राप्त।
** [https://web.archive.org/web/20160304053236/https://bitbucket.org/grauw/बंदूक गनज़िप], [[MSX]] के लिए Z80 असेंबली लैंग्वेज में लॉरेन्स होल्स्ट द्वारा लिखित, BSD लाइसेंस के तहत लाइसेंस प्राप्त है।
** [https://github.com/keirf/Amiga-Stuff inflate.asm], [[M68000]] मशीन भाषा में एक तेज़ और कुशल कार्यान्वयन, कीर फ्रेज़र द्वारा लिखित और सार्वजनिक डोमेन में जारी किया गया।
** [https://github.com/keirf/Amiga-Stuff इन्फ्लेट.asm], [[M68000]] मशीन लैंग्वेज में एक तेज़ और कुशल इम्प्लीमेंटेशन, कीर फ्रेज़र द्वारा लिखित और सार्वजनिक डोमेन में जारी किया गया है।
<!-- ** <code>PCUNZP.ASM</code>, by Michael Mefford. written in [[x86]] [[assembly language]] and published in PC Magazine 1992-03-31. need to check, might not have supported the newer ''Deflate'' method -->
<!-- ** <code>PCUNZP.ASM</code>, by Michael Mefford. written in [[x86]] [[assembly language]] and published in PC Magazine 1992-03-31. need to check, might not have supported the newer ''Deflate'' method -->
* सी (प्रोग्रामिंग भाषा)/सी++
* C /C++
** [https://web.archive.org/web/20070927122958/http://www.mikekohn.net/file_formats/tunzip.php कुंजिप] माइकल कोह्न द्वारा और KZIP से असंबंधित। जीएनयू [[एलजीपीएल]] लाइसेंस के तहत सी (प्रोग्रामिंग भाषा) स्रोत-कोड के साथ आता है। [[GIMP]] इंस्टालर में उपयोग किया जाता है।
** [https://web.archive.org/web/20070927122958/http://www.mikekohn.net/file_formats/tunzip.php कुंजिप] माइकल कोह्न द्वारा और KZIP से असंबंधित। जीएनयू [[एलजीपीएल]] लाइसेंस के तहत सी (प्रोग्रामिंग लैंग्वेज) स्रोत-कोड के साथ आता है। [[GIMP]] इंस्टालर में उपयोग किया जाता है।
** पफ.c (zlib), एक छोटा, भार रहित, एकल-फ़ाइल संदर्भ कार्यान्वयन जो zlib वितरण की /contrib/puff निर्देशिका में शामिल है।
** पफ.c (zlib), एक छोटा, भार रहित, एकल-फ़ाइल संदर्भ इम्प्लीमेंटेशन जो zlib वितरण की /contrib/puff निर्देशिका में सम्मिलित है।
** [http://www.ibsensoftware.com/download.html tinf] जोर्जेन इबसेन द्वारा ANSI C में लिखा गया है और यह zlib लाइसेंस के साथ आता है। लगभग 2k कोड जोड़ता है।
** [http://www.ibsensoftware.com/download.html tinf] जोर्जेन इबसेन द्वारा ANSI C में लिखा गया है और यह zlib लाइसेंस के साथ आता है। लगभग 2k कोड जोड़ता है।
** [http://code.google.com/p/miniz/source/browse/trunk/tinfl.c tinfl.c] ([http://code.google.com/p/miniz/ Miniz]), सार्वजनिक डोमेन इन्फ्लेट कार्यान्वयन पूरी तरह से एक ही सी फ़ंक्शन में निहित है।
** [http://code.google.com/p/miniz/source/browse/trunk/tinfl.c tinfl.c] ([http://code.google.com/p/miniz/ Miniz]), सार्वजनिक डोमेन इन्फ्लेट इम्प्लीमेंटेशन पूरी तरह से एक ही सी फ़ंक्शन में निहित है।
* <code>PCDEZIP</code>, बॉब फ़्लैंडर्स और माइकल होम्स, पीसी मैगज़ीन 1994-01-11 में प्रकाशित।
* <code>PCDEZIP</code>, बॉब फ़्लैंडर्स और माइकल होम्स, पीसी मैगज़ीन 1994-01-11 में प्रकाशित है।
* [http://opensource.franz.com/deflate/ inflate.cl] जॉन फोडेरारो द्वारा। स्व-स्थायी [[ सामान्य लिस्प ]] डिकोडर जीएनयू एलजीपीएल लाइसेंस के साथ वितरित किया गया।
* [http://opensource.franz.com/deflate/ इन्फ्लेट.cl] जॉन फोडेरारो द्वारा स्व-स्थायी[[ सामान्य लिस्प ]]डिकोडर जीएनयू एलजीपीएल लाइसेंस के साथ वितरित किया गया है।
* [http://seed7.sourceforge.net/libraries/inflate.htm inflate.s7i]/[http://seed7.sourceforge.net/libraries/gzip.htm gzip.s7i], थॉमस मर्टेस द्वारा डिफ्लेट और gzip डीकंप्रेसन का एक शुद्ध-[[Seed7]] कार्यान्वयन। जीएनयू जीएनयू लेसर जनरल पब्लिक लाइसेंस लाइसेंस के तहत उपलब्ध कराया गया।
* [http://seed7.sourceforge.net/libraries/inflate.htm इन्फ्लेट.s7i]/[http://seed7.sourceforge.net/libraries/gzip.htm gzip.s7i], थॉमस मर्टेस द्वारा डिफ्लेट और gzip डीकंप्रेसन का एक शुद्ध-[[Seed7]] इम्प्लीमेंटेशन। जीएनयू जीएनयू लेसर जनरल पब्लिक लाइसेंस लाइसेंस के तहत उपलब्ध कराया गया है।
* [http://www.paul.sladen.org/projects/pyflate/ pyflate], पॉल स्लेडेन द्वारा एक शुद्ध-[[पायथन (प्रोग्रामिंग भाषा)]] स्टैंड-अलोन डिफ्लेट (gzip) और [[bzip2]] डिकोडर। अनुसंधान/प्रोटोटाइपिंग के लिए लिखा गया है और बीएसडी लाइसेंस/जीएनयू जनरल पब्लिक लाइसेंस/जीएनयू लेसर जनरल पब्लिक लाइसेंस/डेबियन फ्री सॉफ्टवेयर दिशानिर्देश लाइसेंस के तहत उपलब्ध कराया गया है।
* [http://www.paul.sladen.org/projects/pyflate/ pyflate], पॉल स्लेडेन द्वारा एक शुद्ध-[[पायथन (प्रोग्रामिंग भाषा)|पायथन (प्रोग्रामिंग लैंग्वेज)]] स्टैंड-अलोन डिफ्लेट (gzip) और [[bzip2]] डिकोडर। अनुसंधान/प्रोटोटाइपिंग के लिए लिखा गया है और बीएसडी लाइसेंस/जीएनयू जनरल पब्लिक लाइसेंस/जीएनयू लेसर जनरल पब्लिक लाइसेंस/डेबियन फ्री सॉफ्टवेयर दिशानिर्देश लाइसेंस के तहत उपलब्ध कराया गया है।
* [http://lua-users.org/wiki/ModuleCompressDeflateLua deflatelua], डेविड मानुरा द्वारा डिफ्लेट और gzip/zlib डीकंप्रेसन का एक शुद्ध-[[लुआ (प्रोग्रामिंग भाषा)]] कार्यान्वयन।
* [http://lua-users.org/wiki/ModuleCompressDeflateLua डिफ्लेटlua], डेविड मानुरा द्वारा डिफ्लेट और gzip/zlib डीकंप्रेसन का एक शुद्ध-[[लुआ (प्रोग्रामिंग भाषा)|लुआ (प्रोग्रामिंग लैंग्वेज)]] इम्प्लीमेंटेशन।
* [https://github.com/chrisdickinson/inflate inflate] क्रिस डिकिंसन द्वारा Inflate का एक शुद्ध-[[जावास्क्रिप्ट (प्रोग्रामिंग भाषा)]] कार्यान्वयन
* [https://github.com/chrisdickinson/inflate इन्फ्लेट] क्रिस डिकिंसन द्वारा इन्फ्लेट का एक शुद्ध-[[जावास्क्रिप्ट (प्रोग्रामिंग भाषा)|जावास्क्रिप्ट (प्रोग्रामिंग लैंग्वेज)]] इम्प्लीमेंटेशन
* [https://github.com/nodeca/pako pako]: zlib का जावास्क्रिप्ट गति-अनुकूलित पोर्ट। केवल फुलाने के साथ अलग निर्माण शामिल है।
* [https://github.com/nodeca/pako pako]: zlib का जावास्क्रिप्ट स्पीड-अनुकूलित पोर्ट। केवल इन्फ्लेट के साथ अलग निर्माण सम्मिलित है।


=== हार्डवेयर डिकोडर ===
=== हार्डवेयर डिकोडर ===
* [https://web.archive.org/web/20171010000403/http://www.bitsim.com/en/our-design-model/#Blocks सीरियल इन्फ्लेट जीपीयू] BitSim से। इन्फ्लेट का हार्डवेयर कार्यान्वयन। एम्बेडेड सिस्टम के लिए बिटसिम के BADGE (बिटसिम एक्सेलेरेटेड डिस्प्ले ग्राफिक्स इंजन) नियंत्रक की पेशकश का हिस्सा।
* [https://web.archive.org/web/20171010000403/http://www.bitsim.com/en/our-design-model/#Blocks सीरियल इन्फ्लेट जीपीयू] बिटसिम से. इन्फ्लेट का हार्डवेयर कार्यान्वयन। एम्बेडेड सिस्टम के लिए बिटसिम के BADGE (बिटसिम एक्सेलेरेटेड डिस्प्ले ग्राफिक्स इंजन) नियंत्रक की प्रस्तुत का भाग है।
* [https://github.com/tomtor/HDL-deflate HDL-Deflate] जीपीएल एफपीजीए कार्यान्वयन।
* [https://github.com/tomtor/HDL-deflate HDL-डिफ्लेट] जीपीएल एफपीजीए इम्प्लीमेंटेशन।
* [https://www.cast-inc.com/compression/gzip-losless-data-compression/zipaccel-d/ ZipAccel-D] से [https://www.cast-inc.com/ CAST Inc]। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़लिब और जीज़िप फ़ाइलों के डीकंप्रेसन का समर्थन करता है। ZipAccel-D IP कोर जिसे एप्लिकेशन-विशिष्ट एकीकृत सर्किट या फ़ील्ड-प्रोग्रामेबल गेट ऐरे|FPGAs में कार्यान्वित किया जा सकता है। कंपनी Intel FPGA ([https://www.cast-inc.com/compression/gzip-losless-data-compression/gzip-rd-int/ ZipAccel-RD-INT]) और Xilinx FPGAs ([https://www.cast-inc.com/compression/gzip-losless-data-compression/gzip-rd-xil/ ZipAccel-RD-XIL]) के लिए कंप्रेशन/डीकंप्रेसन एक्सेलेरेटर बोर्ड संदर्भ डिजाइन प्रदान करती है।
* [https://www.cast-inc.com/compression/gzip-losless-data-compression/zipaccel-d/ ZipAccel-D] से [https://www.cast-inc.com/ CAST Inc]। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़लिब और जीज़िप फ़ाइलों के डीकंप्रेसन का समर्थन करता है। ZipAccel-D IP कोर जिसे कोर जिसे ASIC या FPGAs में कार्यान्वित किया जा सकता है। कंपनी Intel FPGA ([https://www.cast-inc.com/compression/gzip-losless-data-compression/gzip-rd-int/ ZipAccel-RD-INT]) और Xilinx FPGAs ([https://www.cast-inc.com/compression/gzip-losless-data-compression/gzip-rd-xil/ ZipAccel-RD-XIL]) के लिए कंप्रेशन/डीकंप्रेसन एक्सेलेरेटर बोर्ड संदर्भ डिजाइन प्रदान करती है।
* IBM z15 (माइक्रोप्रोसेसर) CPU में RFC1951 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट संपीड़न और डीकंप्रेसन के लिए z14 सिस्टम में उपयोग किए जाने वाले zEDC एक्सप्रेस I/O विस्तार कार्ड से नेस्ट एक्सेलेरेटर यूनिट (NXU) हार्डवेयर त्वरण का एक उन्नत संस्करण शामिल है।<ref name="z15_announce"/><ref name="z15_techmanual"/>* POWER9 आर्किटेक्चर के साथ शुरुआत करते हुए, IBM ने POWER7|POWER7+ के साथ पेश किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को संपीड़ित और डीकंप्रेस करने के लिए हार्डवेयर समर्थन जोड़ा। यह समर्थन zlibNX लाइब्रेरी के माध्यम से IBM AIX 7.2 टेक्नोलॉजी लेवल 4 एक्सपेंशन पैक या AIX 7.2 टेक्नोलॉजी लेवल 5 सर्विस पैक 2 के साथ चलने वाले प्रोग्रामों के लिए उपलब्ध है।<ref name="zlibnx"/><ref name="power7_accel"/>
* IBM z15 (माइक्रोप्रोसेसर) सीपीयू में RFC1951 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट कम्प्रेशन और डीकंप्रेसन के लिए z14 सिस्टम में उपयोग किए जाने वाले zEDC एक्सप्रेस I/O विस्तार कार्ड से नेस्ट एक्सेलेरेटर यूनिट (NXU) हार्डवेयर त्वरण का एक उन्नत संस्करण सम्मिलित है।<ref name="z15_announce"/><ref name="z15_techmanual"/>
 
*POWER9 आर्किटेक्चर के साथ प्रारम्भ करते हुए, IBM ने POWER7+ के साथ प्रस्तुत किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को कंप्रेस्ड और डीकंप्रेस करने के लिए हार्डवेयर समर्थन जोड़ा। यह समर्थन zlibNX लाइब्रेरी के माध्यम से IBM AIX 7.2 टेक्नोलॉजी लेवल 4 एक्सपेंशन पैक या AIX 7.2 टेक्नोलॉजी लेवल 5 सर्विस पैक 2 के साथ चलने वाले प्रोग्रामों के लिए उपलब्ध है।<ref name="power7_accel" />
 
== यह भी देखें ==
== यह भी देखें ==
* संग्रह प्रारूपों की सूची
* आर्चिविंग फॉर्मेटों की सूची
* [[फ़ाइल अभिलेखकर्ताओं की सूची]]
* [[फ़ाइल अभिलेखकर्ताओं की सूची]]
* [[फ़ाइल अभिलेखकर्ताओं की तुलना]]
* [[फ़ाइल अभिलेखकर्ताओं की तुलना]]
Line 166: Line 154:
== बाहरी संबंध ==
== बाहरी संबंध ==
* [[PKWARE, Inc.]]'s <code>appnote.txt</code>, [http://www.pkware.com/documents/casestudies/APPNOTE.TXT ''.ZIP File Format Specification''] {{Webarchive|url=https://web.archive.org/web/20141205201932/http://www.pkware.com/documents/casestudies/APPNOTE.TXT |date=2014-12-05 }}; Section 10, ''X. Deflating – Method 8''.<!-- Really "Section 10?, not "5.5 Deflating - Method 8"? Does this need an archive.org-url?-->
* [[PKWARE, Inc.]]'s <code>appnote.txt</code>, [http://www.pkware.com/documents/casestudies/APPNOTE.TXT ''.ZIP File Format Specification''] {{Webarchive|url=https://web.archive.org/web/20141205201932/http://www.pkware.com/documents/casestudies/APPNOTE.TXT |date=2014-12-05 }}; Section 10, ''X. Deflating – Method 8''.<!-- Really "Section 10?, not "5.5 Deflating - Method 8"? Does this need an archive.org-url?-->
* {{IETF RFC|1951|link=no}} – ''Deflate Compressed Data Format Specification version 1.3''
* {{IETF RFC|1951|link=no}} – ''डिफ्लेट Compressed Data Format Specification version 1.3''
* [https://www.zlib.net zlib Home Page]
* [https://www.zlib.net zlib Home Page]
* [https://zlib.net/feldspar.html ''An Explanation of the Deflate Algorithm''] – by Antaeus Feldspar
* [https://zlib.net/feldspar.html ''An Explanation of the डिफ्लेट Algorithm''] – by Antaeus Feldspar
* [http://www.larsson.dogma.net/dccpaper.pdf  ''Extended Application of Suffix Trees to Data Compression'' ] {{Webarchive|url=https://web.archive.org/web/20160923065920/http://www.larsson.dogma.net/dccpaper.pdf |date=2016-09-23 }} – an excellent algorithm to implement Deflate by Jesper Larsson
* [http://www.larsson.dogma.net/dccpaper.pdf  ''Extended Application of Suffix Trees to Data Compression'' ] {{Webarchive|url=https://web.archive.org/web/20160923065920/http://www.larsson.dogma.net/dccpaper.pdf |date=2016-09-23 }} – an excellent algorithm to implement डिफ्लेट by Jesper Larsson
* [https://www.hanshq.net/zip.html Zip Files: History, Explanation and Implementation] – walk-through of a Deflate implementation
* [https://www.hanshq.net/zip.html Zip Files: History, Explanation and Implementation] – walk-through of a डिफ्लेट implementation


{{Compression Methods}}
{{Compression Methods}}
[[Category: दोषरहित संपीड़न एल्गोरिदम]]


[[Category: Machine Translated Page]]
[[Category:All articles with dead external links]]
[[Category:Articles with dead external links from November 2019]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Articles with invalid date parameter in template]]
[[Category:Articles with permanently dead external links]]
[[Category:CS1 maint]]
[[Category:Collapse templates]]
[[Category:Created On 26/07/2023]]
[[Category:Created On 26/07/2023]]
[[Category:Data compression]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Webarchive template wayback links]]
[[Category:Wikipedia metatemplates]]

Latest revision as of 12:16, 18 August 2023

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

काट्ज़ ने डिफ्लेट स्ट्रीम के निर्माण के लिए उपयोग किए जाने वाले मूल एल्गोरिदम को भी डिज़ाइन किया। इस एल्गोरिदम को U.S. Patent 5,051,745 के रूप में सॉफ्टवेयर पेटेंट कराया गया था, और PKWARE, Inc. को सौंपा गया था।[2][3] जैसा कि आरएफसी डॉक्यूमेंट में कहा गया है, डिफ्लेट फ़ाइलों का उत्पादन करने वाले एल्गोरिदम को व्यापक रूप से पेटेंट द्वारा कवर नहीं किए जाने वाले तरीके से इम्प्लीमेंटेशन योग्य माना जाता था।[1]इससे इसका व्यापक उपयोग हुआ - उदाहरण के लिए, जीज़िप कंप्रेस्ड फ़ाइलों और पीएनजी इमेज फ़ाइलों में, ज़िप फ़ाइल फॉर्मेट के अलावा जिसके लिए कैटज़ ने मूल रूप से इसे डिज़ाइन किया था। पेटेंट अब समाप्त हो चुका है।

स्ट्रीम फॉर्मेट

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

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

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

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

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

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

डुप्लिकेट स्ट्रिंग एलिमिनेशन

कंप्रेस्ड ब्लॉकों के भीतर, यदि बाइट्स की एक डुप्लिकेट श्रृंखला (एक दोहराई गई स्ट्रिंग) देखी जाती है,तो उसके स्थान पर उस समान स्ट्रिंग के पिछले स्थान से लिंक करते हुए एक बैक-रेफरेंस (कंप्यूटर विज्ञान) डाला जाता है। पिछली स्ट्रिंग के एन्कोडेड मैच में डुप्लिकेट की प्रारम्भ में 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: उपयोग नहीं किया गया, रिजर्व्ड और अवैध लेकिन फिर भी ट्री का भाग।

ध्यान दें कि मैच डिस्टेंस सिम्बल्स 2-29 के लिए, अतिरिक्त बिट्स की संख्या की गणना प्रकार की जा सकती है .

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

एनकोडर/कंप्रेसर

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

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

डिफ्लेट64/इन्हैंस्ड डिफ्लेट

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

नए सॉफ्टवेयर में डिफ्लेट का उपयोग

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

एनकोडर इम्प्लीमेंटेशन

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

AdvanceCOMP 7-ज़िप, लिबडेफ्लेट और ज़ोपफ्ली में डिफ्लेट के उच्च संपीड़न अनुपात संस्करणों का उपयोग करता है ताकि जीज़िप, पीएनजी, एमएनजी और ज़िप फ़ाइलों के पुनर्संपीड़न को सक्षम किया जा सके, जिसमें zlib की तुलना में छोटे फ़ाइल आकार की संभावना अधिकतम सेटिंग्स पर प्राप्त करने में सक्षम है। [11]

हार्डवेयर एनकोडर

  • कॉमटेक एएचए से AHA361-PCIX/AHA362-PCIX संग्रहीत 2006-12-08 को वेबैक मशीन पर। कॉमटेक ने एक पीसीआई-एक्स कार्ड (PCI-ID: 193f:0001) तैयार किया, जो आने वाले इनकंप्रेसिब्ल डेटा के लिए 3.0 Gbit/s (375 MB/s) तक की दर पर डिफ्लेट का उपयोग करके स्ट्रीम को कंप्रेस्ड करने में सक्षम है। AHA361-PCIX के लिए लिनक्स (कर्नेल) डिवाइस ड्राइवर के साथ एक "aagzip" उपयोगिता और अनुकूलित "mod_डिफ्लेट_aha" है जो अपाचे HTTP सर्वर से हार्डवेयर कम्प्रेशन का उपयोग करने में सक्षम है। हार्डवेयर Xilinx Virtex FPGA और चार कस्टम AHA3601 ASIC पर आधारित है। AHA361/AHA362 बोर्ड केवल स्थैतिक हफ़मैन ब्लॉकों को संभालने तक ही सीमित हैं और समर्थन जोड़ने के लिए सॉफ़्टवेयर को संशोधित करने की आवश्यकता है - कार्ड पूर्ण डिफ्लेट विनिर्देश का समर्थन करने में सक्षम नहीं थे, जिसका अर्थ है कि वे केवल अपने स्वयं के आउटपुट को विश्वसनीय रूप से डीकोड कर सकते हैं (एक स्ट्रीम जो नहीं करती थी) इसमें कोई भी डायनामिक हफ़मैन प्रकार 2 ब्लॉक सम्मिलित हैं)।
  • StorCompress 300/MX3 इंद्रा नेटवर्क्स से। यह पीसीआई लोकल बस की एक श्रृंखला है (पीसीआई-आईडी: 17b4:0011) या PCI-X कार्ड जिसमें एक से छह कम्प्रेशन इंजन होते हैं जिनकी प्रोसेसिंग स्पीड 3.6 Gbit/s (450 MB/s) तक होने का दावा किया जाता है। कार्ड का एक संस्करण अलग ब्रांड WebEnhance के साथ उपलब्ध है जो विशेष रूप से संरक्षण क्षेत्र नियंत्रण कार्य या बैकअप उपयोग के स्थान पर वेब-सर्विंग उपयोग के लिए डिज़ाइन किया गया है; एक PCIe संशोधन, MX4E भी तैयार किया गया है।
  • AHA363-PCIe/AHA364-PCI e/AHA367-PCIe। 2008 में, कॉमटेक ने दो PCIe कार्ड का उत्पादन प्रारम्भ किया (PCI-ID: 193f:0363/193f:0364) एक नए हार्डवेयर AHA3610 एनकोडर चिप के साथ। नई चिप को निरंतर 2.5 Gbit/s में सक्षम होने के लिए डिज़ाइन किया गया था। इनमें से दो चिप्स का उपयोग करके, AHA363-PCIe बोर्ड दो चैनलों (दो कम्प्रेशन और दो डीकंप्रेसन) का उपयोग करके 5.0 Gbit/s (625 MB/s) तक की दर पर डिफ्लेट को संसाधित कर सकता है। AHA364-PCIe वैरिएंट आउट-गोइंग भार संतुलन ्स के लिए डिज़ाइन किए गए कार्ड का एक एन्कोड-केवल संस्करण है और इसके स्थान पर दो भौतिक कम्प्रेशन इंजनों को खिलाने वाले 32 स्वतंत्र वर्चुअल कम्प्रेशन चैनलों की अनुमति देने के लिए कई रजिस्टर सेट हैं। लिनक्स, माइक्रोसॉफ़्ट विंडोज़ और ओपनसोलर कर्नेल डिवाइस ड्राइवर संशोधित zlib सिस्टम लाइब्रेरी के साथ दोनों नए कार्डों के लिए उपलब्ध हैं ताकि डायनामिक रूप से लिंक किए गए एप्लिकेशन आंतरिक संशोधन के बिना स्वचालित रूप से हार्डवेयर समर्थन का उपयोग कर सकें। AHA367-PCIe बोर्ड (PCI-ID: 193f:0367) AHA363-PCIe के समान है लेकिन 10 Gbit/s (1250 MB/s) की निरंतर कम्प्रेशन दर के लिए चार AHA3610 चिप्स का उपयोग करता है। AHA362-PCIX के विपरीत, AHA363-PCIe और AHA367-PCIe बोर्ड पर डीकंप्रेसन इंजन पूरी तरह से डिफ्लेट के अनुरूप हैं।
  • Nitrox और /ट्री/मास्टर/उदाहरण/ज़िप ऑक्टियन[permanent dead link] कैवियम, इंक. के प्रोसेसर में ZLIB और GZIP दोनों के साथ संगत हाई-स्पीड हार्डवेयर डिफ्लेट और इनफ्लेट इंजन होते हैं, साथ ही कुछ डिवाइस एक साथ कई डेटा स्ट्रीम को संभालने में सक्षम होते हैं।
  • HDL-डिफ्लेट जीपीएल एफपीजीए इम्प्लीमेंटेशन।
  • ZipAccel-C से CAST Inc। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़ेडलिब और जीज़िप कम्प्रेशन का समर्थन करता है। ZipAccel-C को ASIC या FPGAs में कार्यान्वित किया जा सकता है, यह डायनामिक और स्टेटिक हफ़मैन दोनों तालिकाओं का समर्थन करता है, और 100Gbps से अधिक थ्रूपुट प्रदान कर सकता है। कंपनी Intel FPGA (ZipAccel-RD-INT) और Xilinx FPGAs (ZipAccel-RD-XIL) के लिए कंप्रेशन/डीकंप्रेसन एक्सेलेरेटर बोर्ड संदर्भ डिज़ाइन प्रदान करती है।।
  • CAST Inc. से ZipAccel-C। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़ेडलिब और जीज़िप संपीड़न का समर्थन करता है। ZipAccel-C को
  • Intel Xeon E5-2600 और E5-2400 प्रोसेसर सीरीज (सैंडी ब्रिज-EP/EN) के लिए इंटेल कम्युनिकेशंस चिपसेट 89xx सीरीज (केव क्रीक) QuickAssist Technology का उपयोग करके हार्डवेयर कम्प्रेशन और डीकंप्रेसन का समर्थन करता है। चिपसेट के आधार पर, 5Gbit/s, 10Gbit/s, या 20Gbit/s की कम्प्रेशन और डीकंप्रेसन दरें उपलब्ध हैं।[12]
  • IBM z15 (माइक्रोप्रोसेसर) सीपीयू में RFC1951 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट कम्प्रेशन और डीकंप्रेसन के लिए z14 सिस्टम में उपयोग किए जाने वाले zEDC एक्सप्रेस I/O विस्तार कार्ड से नेस्ट एक्सेलेरेटर यूनिट (NXU) हार्डवेयर त्वरण का एक उन्नत संस्करण सम्मिलित है।[13][14]
  • POWER9 आर्किटेक्चर के साथ प्रारम्भ करते हुए, IBM ने POWER7+ के साथ प्रस्तुत किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को कंप्रेस्ड और डीकंप्रेस करने के लिए हार्डवेयर समर्थन जोड़ा। यह समर्थन zlibNX लाइब्रेरी के माध्यम से IBM AIX 7.2 टेक्नोलॉजी लेवल 4 एक्सपेंशन पैक या AIX 7.2 टेक्नोलॉजी लेवल 5 सर्विस पैक 2 के साथ चलने वाले प्रोग्रामों के लिए उपलब्ध है।[15]

डिकोडर/डीकंप्रेसर

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

इन्फ्लेट -ओनली इम्प्लीमेंटेशन

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

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

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

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

यह भी देखें

संदर्भ

  1. 1.0 1.1 Deutsch, L. Peter (May 1996). DEFLATE Compressed Data Format Specification version 1.3. IETF. p. 1. sec. Abstract. doi:10.17487/RFC1951. RFC 1951. Retrieved 2014-04-23.
  2. US patent 5051745, Katz, Phillip W., "स्ट्रिंग खोजकर्ता, और कंप्रेसर समान का उपयोग कर रहे हैं", published 1991-09-24, issued 1991-09-24, assigned to PKWare Inc. 
  3. David, Salomon (2007). Data Compression: The Complete Reference (4 ed.). Springer. p. 241. ISBN 978-1-84628-602-5.
  4. "Binary Essence – Deflate64". Archived from the original on 21 June 2017. Retrieved 22 May 2011.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  5. "Binary Essence – "Calgary Corpus" compression comparisons". Archived from the original on 27 December 2017. Retrieved 22 May 2011.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  6. "-एम (संपीड़न विधि सेट करें) स्विच". sevenzip.osdn.jp.
  7. History of Lossless Data Compression Algorithms – Deflate64
  8. zlib FAQ – Does zlib support the new "Deflate64" format introduced by PKWare?
  9. "Plan 9 from Bell Labs's /n/sources/plan9/sys/src/libflate". plan9.bell-labs.com. Lucent Technologies. Archived from the original on 2006-03-15.
  10. "जीनोमिक डेटा सेट के लिए अनुकूलन के साथ उच्च प्रदर्शन DEFLATE संपीड़न". Intel Software. 1 October 2019. Retrieved 18 January 2020.
  11. Mazzoleni, Andrea (21 February 2023). "amadvance/advancecomp". GitHub.
  12. "Intel® Xeon® Processor E5-2600 and E5-2400 Series with Intel® Communications Chipset 89xx Series". Retrieved 2016-05-18.
  13. 13.0 13.1 "IBM z15 का परिचय - मिशन-क्रिटिकल हाइब्रिड मल्टीक्लाउड के लिए एंटरप्राइज़ प्लेटफ़ॉर्म". IBM. 12 September 2019. Retrieved 2021-11-01.
  14. 14.0 14.1 Lascu, Octavian (28 April 2021). आईबीएम z15 (8562) तकनीकी गाइड, पृष्ठ 97. ISBN 9780738458991. Retrieved 2021-11-01.
  15. 15.0 15.1 "AIX के लिए पावर प्रोसेसर के इन-कोर एक्सेलेरेशन का शोषण". Retrieved 2021-11-01.


बाहरी संबंध