डिफ्लेट: Difference between revisions
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 को एप्लिकेशन-विशिष्ट एकीकृत सर्किट या [[क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला]] में कार्यान्वित किया जा सकता है, जो डायनेमिक और स्टेटिक हफ़मैन टेबल दोनों का समर्थन करता है, और 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])। | ||
* Intel [[Xeon]] E5-2600 और E5-2400 प्रोसेसर सीरीज (सैंडी ब्रिज-EP/EN) के लिए Intel Xeon चिपसेट (केव क्रीक) QuickAssist Technology का उपयोग करके हार्डवेयर | * Intel [[Xeon]] E5-2600 और E5-2400 प्रोसेसर सीरीज (सैंडी ब्रिज-EP/EN) के लिए Intel Xeon चिपसेट (केव क्रीक) 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 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट | * IBM z15 (माइक्रोप्रोसेसर) CPU में 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 109: | ||
|date=28 April 2021 | |date=28 April 2021 | ||
}}</ref> | }}</ref> | ||
* [[POWER9]] आर्किटेक्चर के साथ शुरुआत करते हुए, IBM ने [[POWER7]]|POWER7+ के साथ पेश किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को | * [[POWER9]] आर्किटेक्चर के साथ शुरुआत करते हुए, IBM ने [[POWER7]]|POWER7+ के साथ पेश किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को कंप्रेस्ड और डीकंप्रेस करने के लिए हार्डवेयर समर्थन जोड़ा। यह समर्थन zlibNX लाइब्रेरी के माध्यम से [[IBM AIX]] 7.2 टेक्नोलॉजी लेवल 4 एक्सपेंशन पैक या AIX 7.2 टेक्नोलॉजी लेवल 5 सर्विस पैक 2 के साथ चलने वाले प्रोग्रामों के लिए उपलब्ध है। | ||
रेफरी नाम= zlibnx >{{cite web | रेफरी नाम= zlibnx >{{cite web | ||
|url=https://www.ibm.com/docs/en/aix/7.2?topic=management-data-compression-by-using-zlibnx-library | |url=https://www.ibm.com/docs/en/aix/7.2?topic=management-data-compression-by-using-zlibnx-library | ||
Line 152: | Line 148: | ||
* [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-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 कोर जिसे एप्लिकेशन-विशिष्ट एकीकृत सर्किट या फ़ील्ड-प्रोग्रामेबल गेट ऐरे|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 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट | * 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"/> | ||
== यह भी देखें == | == यह भी देखें == | ||
* | * आर्चिविंग फॉर्मेटों की सूची | ||
* [[फ़ाइल अभिलेखकर्ताओं की सूची]] | * [[फ़ाइल अभिलेखकर्ताओं की सूची]] | ||
* [[फ़ाइल अभिलेखकर्ताओं की तुलना]] | * [[फ़ाइल अभिलेखकर्ताओं की तुलना]] |
Revision as of 12:23, 7 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 की डुप्लिकेट बनाई जा सकती है।
डुप्लिकेट सबस्ट्रिंग के लिए पूर्ववर्ती पाठ की खोज करना DEFLATE एल्गोरिदम का सबसे कम्प्यूटेशनल रूप से महंगा हिस्सा है, और वह ऑपरेशन जो कम्प्रेशन स्तर सेटिंग्स को प्रभावित करता है।
बिट कमी
दूसरे कम्प्रेशन चरण में आमतौर पर उपयोग किए जाने वाले प्रतीकों को छोटे प्रतिनिधित्व के साथ और कम सामान्यतः उपयोग किए जाने वाले प्रतीकों को लंबे प्रतिनिधित्व के साथ बदलना शामिल है। उपयोग की जाने वाली विधि हफ़मैन कोडिंग है जो गैर-अतिव्यापी अंतराल का एक उपसर्ग वृक्ष बनाती है, जहां प्रत्येक अनुक्रम की लंबाई उस प्रतीक की एन्कोडिंग की आवश्यकता की संभावना के लघुगणक के व्युत्क्रमानुपाती होती है। जितनी अधिक संभावना है कि किसी प्रतीक को एन्कोड किया जाना है, उसका बिट-अनुक्रम उतना ही छोटा होगा।
एक ट्री बनाया गया है, जिसमें 288 प्रतीकों के लिए जगह है:
- 0-255: शाब्दिक बाइट्स/प्रतीकों 0-255 का प्रतिनिधित्व करें।
- 256: ब्लॉक का अंत - अंतिम ब्लॉक होने पर प्रोसेसिंग रोकें, अन्यथा अगले ब्लॉक पर प्रोसेसिंग शुरू करें।
- 257-285: अतिरिक्त बिट्स के साथ संयुक्त, 3-258 बाइट्स की एक मिलान लंबाई।
- 286, 287: उपयोग नहीं किया गया, रिजर्व्ड और अवैध लेकिन फिर भी ट्री का हिस्सा।
मैच लंबाई कोड के बाद हमेशा दूरी कोड आएगा। पढ़े गए दूरी कोड के आधार पर, अंतिम दूरी उत्पन्न करने के लिए अतिरिक्त अतिरिक्त बिट्स पढ़े जा सकते हैं। दूरी वृक्ष में 32 प्रतीकों के लिए स्थान होता है:
- 0-3: दूरियाँ 1-4
- 4-5: दूरियाँ 5-8, 1 अतिरिक्त बिट
- 6-7: दूरियाँ 9-16, 2 अतिरिक्त बिट्स
- 8-9: दूरियाँ 17-32, 3 अतिरिक्त बिट्स
- ...
- 26-27: दूरियाँ 8,193-16,384, 12 अतिरिक्त बिट्स
- 28-29: दूरियाँ 16,385-32,768, 13 अतिरिक्त बिट्स
- 30-31: उपयोग नहीं किया गया, रिजर्व्ड और अवैध लेकिन फिर भी ट्री का हिस्सा।
ध्यान दें कि मिलान दूरी प्रतीकों 2-29 के लिए, अतिरिक्त बिट्स की संख्या की गणना इस प्रकार की जा सकती है .
दो कोड (288-प्रतीक लंबाई/शाब्दिक वृक्ष और 32-प्रतीक दूरी वृक्ष) स्वयं प्रत्येक प्रतीक के लिए कोड की बिट लंबाई देकर विहित हफ़मैन कोड के रूप में एन्कोड किए गए हैं। बिट लंबाई स्वयं रन-लंबाई एन्कोडिंग है | रन-लेंथ जितना संभव हो उतना कॉम्पैक्ट प्रतिनिधित्व उत्पन्न करने के लिए एन्कोड किया गया है। वृक्ष प्रतिनिधित्व को शामिल करने के विकल्प के रूप में, स्टेटिक वृक्ष विकल्प मानक निश्चित हफ़मैन वृक्ष प्रदान करता है। स्टेटिक ट्रीों का उपयोग करके कंप्रेस्ड आकार की गणना उन्हीं आंकड़ों (प्रत्येक प्रतीक के प्रकट होने की संख्या) का उपयोग करके की जा सकती है, जिनका उपयोग डायनामिक ट्रीों को उत्पन्न करने के लिए किया जाता है, इसलिए कंप्रेसर के लिए जो भी छोटा हो उसे चुनना आसान होता है।
एनकोडर/कंप्रेसर
कम्प्रेशन चरण के दौरान, यह एनकोडर है जो मिलान स्ट्रिंग की तलाश में बिताए गए समय की मात्रा को चुनता है। Zlib/gzip संदर्भ कार्यान्वयन उपयोगकर्ता को संभावित परिणामी कम्प्रेशन-स्तर बनाम एन्कोडिंग की गति के स्लाइडिंग पैमाने से चयन करने की अनुमति देता है। विकल्प से लेकर होते हैं 0
(कम्प्रेशन का प्रयास न करें, केवल अकंप्रेस्ड आर्चिविंगित करें)। 9
zlib/gzip में संदर्भ कार्यान्वयन की अधिकतम क्षमता का प्रतिनिधित्व करना।
अन्य डिफ्लेट एनकोडर का उत्पादन किया गया है, जो सभी एक संगत बिटस्ट्रीम का उत्पादन करेंगे जो किसी भी मौजूदा डिफ्लेट डिकोडर द्वारा डीकंप्रेस्ड होने में सक्षम होंगे। अलग-अलग कार्यान्वयन से उत्पादित अंतिम एन्कोडेड बिट-स्ट्रीम पर भिन्नता उत्पन्न होने की संभावना है। एनकोडर के गैर-ज़्लिब संस्करणों का ध्यान आम तौर पर अधिक कुशलता से कंप्रेस्ड और छोटी एन्कोडेड स्ट्रीम का उत्पादन करने पर होता है।
डिफ्लेट64/उन्नत डिफ्लेट
PKWARE द्वारा निर्दिष्ट Deflate64, Deflate का एक मालिकाना संस्करण है। यह मूल रूप से वही एल्गोरिदम है। जो परिवर्तन हुआ है वह है शब्दकोश का आकार 32 केबी से बढ़ाकर 64 केबी, दूरी कोड को 16 बिट तक विस्तारित करना ताकि वे 64 केबी की सीमा को संबोधित कर सकें, और लंबाई कोड, जिसे 16 बिट तक बढ़ाया गया है ताकि यह तीन से 65,538 बाइट्स की लंबाई को परिभाषित कर सके।[4] इसके कारण Deflate64 का कम्प्रेशन समय लंबा हो जाता है, और संभावित रूप से Deflate की तुलना में थोड़ा अधिक कम्प्रेशन अनुपात होता है।[5] कई मुफ़्त और/या ओपन सोर्स प्रोजेक्ट्स Deflate64 का समर्थन करते हैं, जैसे 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-ज़िप: सी++ में इगोर पावलोव द्वारा लिखित, यह संस्करण स्वतंत्र रूप से लाइसेंस प्राप्त है और सीपीयू उपयोग की कीमत पर zlib की तुलना में उच्च कम्प्रेशन प्राप्त करता है। DEFLATE64 आर्चिविंगण फॉर्मेट का उपयोग करने का विकल्प है।
- पुटी 'sshzlib.c': साइमन टैथम द्वारा मेरा लाइसेंस के तहत एक स्टैंडअलोन कार्यान्वयन, इसमें पूर्ण डिकोडिंग क्षमता है, लेकिन केवल स्टेटिक वृक्ष निर्माण का समर्थन करता है
- लिबफ़्लेट:[9] बेल लैब्स की योजना 9 का हिस्सा, डिफ्लेट कम्प्रेशन को लागू करता है
- रेड गेट सॉफ्टवेयर#हाइपरबैक: DEFLATE64 स्टोरेज फॉर्मेट को लागू करने के विकल्प के साथ अपनी स्वयं की मालिकाना कम्प्रेशन लाइब्रेरी (C++ और असेंबली में) का उपयोग करता है
- Zopfli: Google द्वारा अपाचे लाइसेंस के तहत C कार्यान्वयन; सीपीयू उपयोग की कीमत पर उच्चतम कम्प्रेशन प्राप्त करता है। ZopfliPNG पोर्टेबल नेटवर्क ग्राफ़िक्स फ़ाइलों के साथ उपयोग के लिए Zopfli का एक रूप है।
- igzip: x86 असेंबली भाषा में लिखा गया एक एनकोडर, जो MIT लाइसेंस के तहत इंटेल द्वारा जारी किया गया है। zlib -1 से 3 गुना तेज। जीनोमिक डेटा को कंप्रेस्ड करने के लिए उपयोगी।[10]
AdvanceCOMP 7-ज़िप, लिबडेफ्लेट और ज़ोपफ्ली में डिफ्लेट के उच्च कम्प्रेशन अनुपात संस्करणों का उपयोग करता है ताकि जीज़िप की तुलना में छोटे फ़ाइल आकार की संभावना के साथ जीज़िप, पोर्टेबल नेटवर्क ग्राफिक्स, मल्टीपल-इमेज नेटवर्क ग्राफ़िक्स और ज़िप फ़ाइल फॉर्मेट फ़ाइलों के पुनर्कम्प्रेशन को सक्षम किया जा सके। अधिकतम सेटिंग्स पर प्राप्त करें।[11]
हार्डवेयर एनकोडर
- एएचए 361-पीसीआई/एएचए362-पीसीआई एक्स कॉमटेक एएचए से Archived 2006-12-08 at the Wayback Machine. कॉमटेक ने एक पीसीआई-एक्स कार्ड (पीसीआई-आईडी) तैयार किया:
193f:0001
) आने वाले इनकंप्रेसिब्ल डेटा के लिए 3.0 जीबी/एस (375 एमबी/एस) तक की दर पर डिफ्लेट का उपयोग करके स्ट्रीम को कंप्रेस्ड करने में सक्षम है। AHA361-PCIX के लिए लिनक्स (कर्नेल) डिवाइस ड्राइवर के साथ एक हैahagzip
उपयोगिता और अनुकूलितmod_deflate_aha
अपाचे HTTP सर्वर से हार्डवेयर कम्प्रेशन का उपयोग करने में सक्षम। हार्डवेयर Xilinx Virtex (FPGA) FPGA और चार कस्टम AHA3601 एप्लिकेशन-विशिष्ट एकीकृत सर्किट पर आधारित है। 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-Deflate जीपीएल एफपीजीए कार्यान्वयन।
- ZipAccel-C से CAST Inc। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़लिब और जीज़िप कम्प्रेशन का समर्थन करता है। ZipAccel-C को एप्लिकेशन-विशिष्ट एकीकृत सर्किट या क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला में कार्यान्वित किया जा सकता है, जो डायनेमिक और स्टेटिक हफ़मैन टेबल दोनों का समर्थन करता है, और 100Gbps से अधिक थ्रूपुट प्रदान कर सकता है। कंपनी Intel FPGA (ZipAccel-RD-INT) के लिए कंप्रेशन/डीकंप्रेसन एक्सेलेरेटर बोर्ड संदर्भ डिज़ाइन प्रदान करती है। और Xilinx FPGAs (ZipAccel-RD-XIL)।
- Intel Xeon E5-2600 और E5-2400 प्रोसेसर सीरीज (सैंडी ब्रिज-EP/EN) के लिए Intel Xeon चिपसेट (केव क्रीक) QuickAssist Technology का उपयोग करके हार्डवेयर कम्प्रेशन और डीकंप्रेसन का समर्थन करता है। चिपसेट के आधार पर, 5Gbit/s, 10Gbit/s, या 20Gbit/s की कम्प्रेशन और डीकंप्रेसन दरें उपलब्ध हैं।[12]
- IBM z15 (माइक्रोप्रोसेसर) CPU में RFC1951 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट कम्प्रेशन और डीकंप्रेसन के लिए z14 सिस्टम में उपयोग किए जाने वाले zEDC एक्सप्रेस I/O विस्तार कार्ड से नेस्ट एक्सेलेरेटर यूनिट (NXU) हार्डवेयर त्वरण का एक उन्नत संस्करण शामिल है।[13][14]
- POWER9 आर्किटेक्चर के साथ शुरुआत करते हुए, IBM ने POWER7|POWER7+ के साथ पेश किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को कंप्रेस्ड और डीकंप्रेस करने के लिए हार्डवेयर समर्थन जोड़ा। यह समर्थन zlibNX लाइब्रेरी के माध्यम से IBM AIX 7.2 टेक्नोलॉजी लेवल 4 एक्सपेंशन पैक या AIX 7.2 टेक्नोलॉजी लेवल 5 सर्विस पैक 2 के साथ चलने वाले प्रोग्रामों के लिए उपलब्ध है।
रेफरी नाम= zlibnx >"ZlibNX लाइब्रेरी का उपयोग करके डेटा संपीड़न - IBM दस्तावेज़ीकरण". IBM. Retrieved 2021-11-01.</ref>[15]
डिकोडर/डीकंप्रेसर
इन्फ्लेट डिकोडिंग प्रक्रिया है जो डीकंप्रेसन के लिए डिफ्लेट बिटस्ट्रीम लेती है और मूल पूर्ण आकार के डेटा या फ़ाइल को सही ढंग से तैयार करती है।
फुलाएँ-केवल कार्यान्वयन
वैकल्पिक इन्फ्लेट कार्यान्वयन के साथ सामान्य इरादा अत्यधिक अनुकूलित डिकोडिंग गति, या माइक्रो-नियंत्रक एम्बेडेड सिस्टम के लिए बेहद अनुमानित रैम उपयोग है।
- सभा की भाषा
- 6502 inflate, एमओएस टेक्नोलॉजी 6502 असेंबली भाषा में पियोट्र फ्यूसिक द्वारा लिखित।
- SAMflate, सैम कूपे के लिए वैकल्पिक मेमोरी पेजिंग समर्थन के साथ Z80 असेंबली भाषा में एंड्रयू कोलियर द्वारा लिखित, और बीएसडी लाइसेंस/जीएनयू जनरल पब्लिक लाइसेंस/जीएनयू के तहत उपलब्ध कराया गया है। लेसर जनरल पब्लिक लाइसेंस/डेबियन फ्री सॉफ्टवेयर दिशानिर्देश लाइसेंस।
- गनज़िप, MSX के लिए Z80 असेंबली भाषा में लॉरेन्स होल्स्ट द्वारा लिखित, BSD लाइसेंस के तहत लाइसेंस प्राप्त।
- inflate.asm, M68000 मशीन भाषा में एक तेज़ और कुशल कार्यान्वयन, कीर फ्रेज़र द्वारा लिखित और सार्वजनिक डोमेन में जारी किया गया।
- सी (प्रोग्रामिंग भाषा)/सी++
- कुंजिप माइकल कोह्न द्वारा और KZIP से असंबंधित। जीएनयू एलजीपीएल लाइसेंस के तहत सी (प्रोग्रामिंग भाषा) स्रोत-कोड के साथ आता है। GIMP इंस्टालर में उपयोग किया जाता है।
- पफ.c (zlib), एक छोटा, भार रहित, एकल-फ़ाइल संदर्भ कार्यान्वयन जो zlib वितरण की /contrib/puff निर्देशिका में शामिल है।
- tinf जोर्जेन इबसेन द्वारा ANSI C में लिखा गया है और यह zlib लाइसेंस के साथ आता है। लगभग 2k कोड जोड़ता है।
- tinfl.c (Miniz), सार्वजनिक डोमेन इन्फ्लेट कार्यान्वयन पूरी तरह से एक ही सी फ़ंक्शन में निहित है।
PCDEZIP
, बॉब फ़्लैंडर्स और माइकल होम्स, पीसी मैगज़ीन 1994-01-11 में प्रकाशित।- inflate.cl जॉन फोडेरारो द्वारा। स्व-स्थायी सामान्य लिस्प डिकोडर जीएनयू एलजीपीएल लाइसेंस के साथ वितरित किया गया।
- inflate.s7i/gzip.s7i, थॉमस मर्टेस द्वारा डिफ्लेट और gzip डीकंप्रेसन का एक शुद्ध-Seed7 कार्यान्वयन। जीएनयू जीएनयू लेसर जनरल पब्लिक लाइसेंस लाइसेंस के तहत उपलब्ध कराया गया।
- pyflate, पॉल स्लेडेन द्वारा एक शुद्ध-पायथन (प्रोग्रामिंग भाषा) स्टैंड-अलोन डिफ्लेट (gzip) और bzip2 डिकोडर। अनुसंधान/प्रोटोटाइपिंग के लिए लिखा गया है और बीएसडी लाइसेंस/जीएनयू जनरल पब्लिक लाइसेंस/जीएनयू लेसर जनरल पब्लिक लाइसेंस/डेबियन फ्री सॉफ्टवेयर दिशानिर्देश लाइसेंस के तहत उपलब्ध कराया गया है।
- deflatelua, डेविड मानुरा द्वारा डिफ्लेट और gzip/zlib डीकंप्रेसन का एक शुद्ध-लुआ (प्रोग्रामिंग भाषा) कार्यान्वयन।
- inflate क्रिस डिकिंसन द्वारा Inflate का एक शुद्ध-जावास्क्रिप्ट (प्रोग्रामिंग भाषा) कार्यान्वयन
- pako: zlib का जावास्क्रिप्ट गति-अनुकूलित पोर्ट। केवल फुलाने के साथ अलग निर्माण शामिल है।
हार्डवेयर डिकोडर
- सीरियल इन्फ्लेट जीपीयू BitSim से। इन्फ्लेट का हार्डवेयर कार्यान्वयन। एम्बेडेड सिस्टम के लिए बिटसिम के BADGE (बिटसिम एक्सेलेरेटेड डिस्प्ले ग्राफिक्स इंजन) नियंत्रक की पेशकश का हिस्सा।
- HDL-Deflate जीपीएल एफपीजीए कार्यान्वयन।
- ZipAccel-D से CAST Inc। यह एक सिलिकॉन आईपी कोर है जो डिफ्लेट, ज़लिब और जीज़िप फ़ाइलों के डीकंप्रेसन का समर्थन करता है। ZipAccel-D IP कोर जिसे एप्लिकेशन-विशिष्ट एकीकृत सर्किट या फ़ील्ड-प्रोग्रामेबल गेट ऐरे|FPGAs में कार्यान्वित किया जा सकता है। कंपनी Intel FPGA (ZipAccel-RD-INT) और Xilinx FPGAs (ZipAccel-RD-XIL) के लिए कंप्रेशन/डीकंप्रेसन एक्सेलेरेटर बोर्ड संदर्भ डिजाइन प्रदान करती है।
- IBM z15 (माइक्रोप्रोसेसर) CPU में RFC1951 द्वारा निर्दिष्ट हार्डवेयर डिफ्लेट कम्प्रेशन और डीकंप्रेसन के लिए z14 सिस्टम में उपयोग किए जाने वाले zEDC एक्सप्रेस I/O विस्तार कार्ड से नेस्ट एक्सेलेरेटर यूनिट (NXU) हार्डवेयर त्वरण का एक उन्नत संस्करण शामिल है।[13][14]* POWER9 आर्किटेक्चर के साथ शुरुआत करते हुए, IBM ने POWER7|POWER7+ के साथ पेश किए गए पूर्व क्रिप्टो-केंद्रित नेस्ट एक्सेलेरेटर (NX) कोर में डिफ्लेट (जैसा कि RFC 1951 द्वारा निर्दिष्ट किया गया है) को कंप्रेस्ड और डीकंप्रेस करने के लिए हार्डवेयर समर्थन जोड़ा। यह समर्थन zlibNX लाइब्रेरी के माध्यम से IBM AIX 7.2 टेक्नोलॉजी लेवल 4 एक्सपेंशन पैक या AIX 7.2 टेक्नोलॉजी लेवल 5 सर्विस पैक 2 के साथ चलने वाले प्रोग्रामों के लिए उपलब्ध है।[16][15]
यह भी देखें
- आर्चिविंग फॉर्मेटों की सूची
- फ़ाइल अभिलेखकर्ताओं की सूची
- फ़ाइल अभिलेखकर्ताओं की तुलना
संदर्भ
- ↑ 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.
- ↑ US patent 5051745, Katz, Phillip W., "स्ट्रिंग खोजकर्ता, और कंप्रेसर समान का उपयोग कर रहे हैं", published 1991-09-24, issued 1991-09-24, assigned to PKWare Inc.
- ↑ David, Salomon (2007). Data Compression: The Complete Reference (4 ed.). Springer. p. 241. ISBN 978-1-84628-602-5.
- ↑ "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) - ↑ "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) - ↑ "-एम (संपीड़न विधि सेट करें) स्विच". sevenzip.osdn.jp.
- ↑ History of Lossless Data Compression Algorithms – Deflate64
- ↑ zlib FAQ – Does zlib support the new "Deflate64" format introduced by PKWare?
- ↑ "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.
- ↑ "जीनोमिक डेटा सेट के लिए अनुकूलन के साथ उच्च प्रदर्शन DEFLATE संपीड़न". Intel Software. 1 October 2019. Retrieved 18 January 2020.
- ↑ Mazzoleni, Andrea (21 February 2023). "amadvance/advancecomp". GitHub.
- ↑ "Intel® Xeon® Processor E5-2600 and E5-2400 Series with Intel® Communications Chipset 89xx Series". Retrieved 2016-05-18.
- ↑ 13.0 13.1 "IBM z15 का परिचय - मिशन-क्रिटिकल हाइब्रिड मल्टीक्लाउड के लिए एंटरप्राइज़ प्लेटफ़ॉर्म". IBM. 12 September 2019. Retrieved 2021-11-01.
- ↑ 14.0 14.1 Lascu, Octavian (28 April 2021). आईबीएम z15 (8562) तकनीकी गाइड, पृष्ठ 97. ISBN 9780738458991. Retrieved 2021-11-01.
- ↑ 15.0 15.1 "AIX के लिए पावर प्रोसेसर के इन-कोर एक्सेलेरेशन का शोषण". Retrieved 2021-11-01.
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedzlibnx
बाहरी संबंध
- PKWARE, Inc.'s
appnote.txt
, .ZIP File Format Specification Archived 2014-12-05 at the Wayback Machine; Section 10, X. Deflating – Method 8. - RFC 1951 – Deflate Compressed Data Format Specification version 1.3
- zlib Home Page
- An Explanation of the Deflate Algorithm – by Antaeus Feldspar
- Extended Application of Suffix Trees to Data Compression Archived 2016-09-23 at the Wayback Machine – an excellent algorithm to implement Deflate by Jesper Larsson
- Zip Files: History, Explanation and Implementation – walk-through of a Deflate implementation