डिफ्लेट: Difference between revisions
From Vigyanwiki
m (Deepak moved page हवा निकालना to डिफ्लेट without leaving a redirect) |
No edit summary |
||
| 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> | ||
{{ | |||
काट्ज़ ने डिफ्लेट स्ट्रीम के निर्माण के लिए उपयोग किए जाने वाले मूल एल्गोरिदम को भी डिज़ाइन किया। इस एल्गोरिदम को {{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" />इससे इसका व्यापक उपयोग हुआ - उदाहरण के लिए, जीज़िप कंप्रेस्ड फ़ाइलों और पीएनजी इमेज फ़ाइलों में, ज़िप फ़ाइल फॉर्मेट के अलावा जिसके लिए कैटज़ ने मूल रूप से इसे डिज़ाइन किया था। पेटेंट अब समाप्त हो चुका है। | |||
काट्ज़ ने डिफ्लेट स्ट्रीम के निर्माण के लिए उपयोग किए जाने वाले मूल एल्गोरिदम को भी डिज़ाइन किया। | |||
== स्ट्रीम | == स्ट्रीम फॉर्मेट == | ||
डिफ्लेट स्ट्रीम में ब्लॉकों की एक श्रृंखला होती है। प्रत्येक ब्लॉक के पहले 3-[[ अंश ]] हेडर होता है: | डिफ्लेट स्ट्रीम में ब्लॉकों की एक श्रृंखला होती है। प्रत्येक ब्लॉक के पहले 3-[[ अंश |बिट]] हेडर होता है: | ||
* पहला बिट: अंतिम-ब्लॉक-इन-स्ट्रीम मार्कर: | * पहला बिट: अंतिम-ब्लॉक-इन-स्ट्रीम मार्कर: | ||
** <code>1</code>: यह | ** <code>1</code>: यह स्ट्रीम का अंतिम ब्लॉक है। | ||
** <code>0</code>: इसके बाद संसाधित करने के लिए और भी ब्लॉक हैं। | ** <code>0</code>: इसके बाद संसाधित करने के लिए और भी ब्लॉक हैं। | ||
* दूसरा और तीसरा बिट: इस ब्लॉक प्रकार के लिए उपयोग की जाने वाली एन्कोडिंग विधि: | * दूसरा और तीसरा बिट: इस ब्लॉक प्रकार के लिए उपयोग की जाने वाली एन्कोडिंग विधि: | ||
** <code>00</code>: | ** <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>, डायनामिक हफ़मैन एन्कोडिंग का उपयोग करके एन्कोड किया जाएगा, जो व्यक्तिगत रूप से डेटा के प्रत्येक ब्लॉक के लिए कस्टमाइज्ड एक ऑप्टीमाइज़्ड हफ़मैन ट्री का उत्पादन करता है। आवश्यक हफ़मैन ट्री उत्पन्न करने के निर्देश तुरंत ब्लॉक हेडर का पालन करें। स्टेटिक हफ़मैन विकल्प का उपयोग छोटे संदेशों के लिए किया जाता है, जहां ट्री को हटाकर प्राप्त की गई निश्चित बचत नॉन ऑप्टीमल (इस प्रकार, तकनीकी रूप से हफ़मैन नहीं) कोड का उपयोग करने के कारण प्रतिशत कम्प्रेशन लॉस से अधिक होती है। | ||
कम्प्रेशन दो चरणों के माध्यम से प्राप्त किया जाता है: | |||
* पॉइंटर्स के साथ डुप्लिकेट स्ट्रिंग्स का मिलान और प्रतिस्थापन। | * पॉइंटर्स के साथ डुप्लिकेट स्ट्रिंग्स का मिलान और प्रतिस्थापन। | ||
* उपयोग की आवृत्ति के आधार पर | * उपयोग की आवृत्ति के आधार पर भारित प्रतीक को नए, प्रतीकों से बदलना। | ||
=== डुप्लिकेट स्ट्रिंग उन्मूलन === | === डुप्लिकेट स्ट्रिंग उन्मूलन === | ||
{{main article|LZ77 and LZ78|LZSS}} | {{main article|LZ77 and LZ78|LZSS}} | ||
कंप्रेस्ड ब्लॉकों के भीतर, यदि बाइट्स की एक डुप्लिकेट श्रृंखला (एक दोहराई गई स्ट्रिंग) देखी जाती है, तो एक बैक-रेफरेंस (कंप्यूटर विज्ञान) डाला जाता है, जो उस समान स्ट्रिंग के पिछले स्थान से लिंक होता है। पिछली स्ट्रिंग के एन्कोडेड मिलान में डुप्लिकेट की शुरुआत में 8-बिट लंबाई (3-258 बाइट्स) और 15-बिट दूरी (1-32,768 बाइट्स) होती है। सापेक्ष बैक-रेफरेंस किसी भी संख्या में ब्लॉक में किए जा सकते हैं, जब तक कि दूरी डिकोड किए गए इनकंप्रेसिब्ल डेटा के अंतिम 32 [[किबिबाइट]] के भीतर दिखाई देती है (स्लाइडिंग विंडो कहा जाता है)। | |||
यदि दूरी लंबाई से कम है, तो डुप्लिकेट स्वयं ओवरलैप हो जाता है, जो पुनरावृत्ति का संकेत देता है। उदाहरण के लिए, 10 समान बाइट्स के एक रन को एक बाइट के रूप में एन्कोड किया जा सकता है, इसके बाद पिछले बाइट से शुरू करके लंबाई 9 की डुप्लिकेट बनाई जा सकती है। | यदि दूरी लंबाई से कम है, तो डुप्लिकेट स्वयं ओवरलैप हो जाता है, जो पुनरावृत्ति का संकेत देता है। उदाहरण के लिए, 10 समान बाइट्स के एक रन को एक बाइट के रूप में एन्कोड किया जा सकता है, इसके बाद पिछले बाइट से शुरू करके लंबाई 9 की डुप्लिकेट बनाई जा सकती है। | ||
डुप्लिकेट सबस्ट्रिंग के लिए पूर्ववर्ती पाठ की खोज करना DEFLATE एल्गोरिदम का सबसे कम्प्यूटेशनल रूप से महंगा हिस्सा है, और वह ऑपरेशन जो | डुप्लिकेट सबस्ट्रिंग के लिए पूर्ववर्ती पाठ की खोज करना DEFLATE एल्गोरिदम का सबसे कम्प्यूटेशनल रूप से महंगा हिस्सा है, और वह ऑपरेशन जो कम्प्रेशन स्तर सेटिंग्स को प्रभावित करता है। | ||
=== बिट कमी === | === बिट कमी === | ||
{{main article|Huffman coding}} | {{main article|Huffman coding}} | ||
दूसरे | दूसरे कम्प्रेशन चरण में आमतौर पर उपयोग किए जाने वाले प्रतीकों को छोटे प्रतिनिधित्व के साथ और कम सामान्यतः उपयोग किए जाने वाले प्रतीकों को लंबे प्रतिनिधित्व के साथ बदलना शामिल है। उपयोग की जाने वाली विधि हफ़मैन कोडिंग है जो गैर-अतिव्यापी अंतराल का एक उपसर्ग वृक्ष बनाती है, जहां प्रत्येक अनुक्रम की लंबाई उस प्रतीक की एन्कोडिंग की आवश्यकता की संभावना के लघुगणक के व्युत्क्रमानुपाती होती है। जितनी अधिक संभावना है कि किसी प्रतीक को एन्कोड किया जाना है, उसका बिट-अनुक्रम उतना ही छोटा होगा। | ||
एक | एक ट्री बनाया गया है, जिसमें 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 प्रतीकों के लिए स्थान होता है: | ||
| Line 57: | Line 55: | ||
* 26-27: दूरियाँ 8,193-16,384, 12 अतिरिक्त बिट्स | * 26-27: दूरियाँ 8,193-16,384, 12 अतिरिक्त बिट्स | ||
* 28-29: दूरियाँ 16,385-32,768, 13 अतिरिक्त बिट्स | * 28-29: दूरियाँ 16,385-32,768, 13 अतिरिक्त बिट्स | ||
*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 में संदर्भ कार्यान्वयन की अधिकतम क्षमता का प्रतिनिधित्व करना। | |||
अन्य डिफ्लेट एनकोडर का उत्पादन किया गया है, जो सभी एक संगत [[बिटस्ट्रीम]] का उत्पादन करेंगे जो किसी भी मौजूदा डिफ्लेट डिकोडर द्वारा डीकंप्रेस्ड होने में सक्षम होंगे। अलग-अलग कार्यान्वयन से उत्पादित अंतिम एन्कोडेड बिट-स्ट्रीम पर भिन्नता उत्पन्न होने की संभावना है। एनकोडर के गैर-ज़्लिब संस्करणों का ध्यान आम तौर पर अधिक कुशलता से | अन्य डिफ्लेट एनकोडर का उत्पादन किया गया है, जो सभी एक संगत [[बिटस्ट्रीम]] का उत्पादन करेंगे जो किसी भी मौजूदा डिफ्लेट डिकोडर द्वारा डीकंप्रेस्ड होने में सक्षम होंगे। अलग-अलग कार्यान्वयन से उत्पादित अंतिम एन्कोडेड बिट-स्ट्रीम पर भिन्नता उत्पन्न होने की संभावना है। एनकोडर के गैर-ज़्लिब संस्करणों का ध्यान आम तौर पर अधिक कुशलता से कंप्रेस्ड और छोटी एन्कोडेड स्ट्रीम का उत्पादन करने पर होता है। | ||
=== डिफ्लेट64/उन्नत डिफ्लेट === | === डिफ्लेट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 का | 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> | ||
== नए सॉफ्टवेयर में डिफ्लेट का उपयोग == | == नए सॉफ्टवेयर में डिफ्लेट का उपयोग == | ||
डिफ्लेट का कार्यान्वयन कई भाषाओं में निःशुल्क उपलब्ध है। 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] का उपयोग कर सकते हैं। | ||
| Line 79: | Line 75: | ||
* zlib: इसके ओपन-सोर्स, अनुमेय लाइसेंस के कारण कई ऐप्स में मानक संदर्भ कार्यान्वयन अपनाया गया है। देखना {{section link|Zlib#Forks}} उच्च-प्रदर्शन वाले फ़ोर्क्स के लिए। | * zlib: इसके ओपन-सोर्स, अनुमेय लाइसेंस के कारण कई ऐप्स में मानक संदर्भ कार्यान्वयन अपनाया गया है। देखना {{section link|Zlib#Forks}} उच्च-प्रदर्शन वाले फ़ोर्क्स के लिए। | ||
* [[क्रिप्टो++]]: संभावित [[भेद्यता (कंप्यूटिंग)]] को कम करने के उद्देश्य से C++ में एक सार्वजनिक-डोमेन कार्यान्वयन शामिल है। लेखक, वेई दाई कहते हैं <उद्धरण>यह कोड कम चतुर है, लेकिन उम्मीद है कि अधिक समझने योग्य और रखरखाव योग्य है [zlib की तुलना में]</cite>। | * [[क्रिप्टो++]]: संभावित [[भेद्यता (कंप्यूटिंग)]] को कम करने के उद्देश्य से C++ में एक सार्वजनिक-डोमेन कार्यान्वयन शामिल है। लेखक, वेई दाई कहते हैं <उद्धरण>यह कोड कम चतुर है, लेकिन उम्मीद है कि अधिक समझने योग्य और रखरखाव योग्य है [zlib की तुलना में]</cite>। | ||
* 7-ज़िप: सी++ में इगोर पावलोव द्वारा लिखित, यह संस्करण स्वतंत्र रूप से लाइसेंस प्राप्त है और सीपीयू उपयोग की कीमत पर zlib की तुलना में उच्च | * 7-ज़िप: सी++ में इगोर पावलोव द्वारा लिखित, यह संस्करण स्वतंत्र रूप से लाइसेंस प्राप्त है और सीपीयू उपयोग की कीमत पर zlib की तुलना में उच्च कम्प्रेशन प्राप्त करता है। DEFLATE64 आर्चिविंगण फॉर्मेट का उपयोग करने का विकल्प है। | ||
* पुटी 'sshzlib.c': साइमन टैथम द्वारा [[मेरा लाइसेंस]] के तहत एक स्टैंडअलोन कार्यान्वयन, इसमें पूर्ण डिकोडिंग क्षमता है, लेकिन केवल | * पुटी '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 का हिस्सा, डिफ्लेट कम्प्रेशन को लागू करता है | * लिबफ़्लेट:<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 स्टोरेज फॉर्मेट को लागू करने के विकल्प के साथ अपनी स्वयं की मालिकाना | * रेड गेट सॉफ्टवेयर#हाइपरबैक: DEFLATE64 स्टोरेज फॉर्मेट को लागू करने के विकल्प के साथ अपनी स्वयं की मालिकाना कम्प्रेशन लाइब्रेरी (C++ और असेंबली में) का उपयोग करता है | ||
* [[Zopfli]]: [[Google]] द्वारा [[अपाचे लाइसेंस]] के तहत C कार्यान्वयन; सीपीयू उपयोग की कीमत पर उच्चतम | * [[Zopfli]]: [[Google]] द्वारा [[अपाचे लाइसेंस]] के तहत C कार्यान्वयन; सीपीयू उपयोग की कीमत पर उच्चतम कम्प्रेशन प्राप्त करता है। ZopfliPNG पोर्टेबल नेटवर्क ग्राफ़िक्स फ़ाइलों के साथ उपयोग के लिए Zopfli का एक रूप है। | ||
* igzip: [[x86 असेंबली भाषा]] में लिखा गया एक एनकोडर, जो MIT लाइसेंस के तहत [[इंटेल]] द्वारा जारी किया गया है। zlib -1 से 3 गुना तेज। जीनोमिक डेटा को | * 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-ज़िप, लिबडेफ्लेट और ज़ोपफ्ली में डिफ्लेट के उच्च | 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> | ||
=== हार्डवेयर एनकोडर === | === हार्डवेयर एनकोडर === | ||
* एएचए 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>) आने वाले | * एएचए 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 ब्लॉक शामिल नहीं थे)। | ||
* [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 बोर्ड दो चैनलों (दो | * [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 / | * [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-Deflate] जीपीएल एफपीजीए कार्यान्वयन। | ||
*[https://www.cast-inc.com/compression/gzip-losless-data-compression/zipaccel-c/ ZipAccel-C] से [https://www.cast-inc.com/ CAST Inc]। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़लिब और जीज़िप | *[https://www.cast-inc.com/compression/gzip-losless-data-compression/zipaccel-c/ ZipAccel-C] से [https://www.cast-inc.com/ CAST Inc]। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़लिब और जीज़िप कम्प्रेशन का समर्थन करता है। ZipAccel-C को एप्लिकेशन-विशिष्ट एकीकृत सर्किट या [[क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला]] में कार्यान्वित किया जा सकता है, जो डायनेमिक | ||