डिफ्लेट
कम्प्यूटिंग में, डिफ्लेट (डिफ्लेट के रूप में शैलीबद्ध) एक लॉसलेस डेटा कम्प्रेशन फ़ाइल फॉर्मेट है जो 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]
डिकोडर/डीकंप्रेसर
इन्फ्लेट डिकोडिंग प्रक्रिया है जो डीकंप्रेसन के लिए डिफ्लेट बिटस्ट्रीम लेती है और मूल पूर्ण आकार के डेटा या फ़ाइल को सही ढंग से तैयार करती है।
इन्फ्लेट -ओनली इम्प्लीमेंटेशन
वैकल्पिक इन्फ्लेट इम्प्लीमेंटेशन के साथ सामान्य इरादा अत्यधिक अनुकूलित डिकोडिंग स्पीड, या माइक्रो-नियंत्रक एम्बेडेड सिस्टम के लिए बेहद अनुमानित रैम उपयोग है।
- असेंबली
- 6502 इन्फ्लेट, एमओएस टेक्नोलॉजी 6502 असेंबली लैंग्वेज में पियोट्र फ्यूसिक द्वारा लिखित है।
- SAMflate, सैम कूपे के लिए वैकल्पिक मेमोरी पेजिंग समर्थन के साथ Z80 असेंबली लैंग्वेज में एंड्रयू कोलियर द्वारा लिखित, और बीएसडी लाइसेंस/जीएनयू जनरल पब्लिक लाइसेंस/जीएनयू के तहत उपलब्ध कराया गया है। लेसर जनरल पब्लिक लाइसेंस/डेबियन फ्री सॉफ्टवेयर दिशानिर्देश लाइसेंस है।
- गनज़िप, MSX के लिए Z80 असेंबली लैंग्वेज में लॉरेन्स होल्स्ट द्वारा लिखित, BSD लाइसेंस के तहत लाइसेंस प्राप्त है।
- इन्फ्लेट.asm, M68000 मशीन लैंग्वेज में एक तेज़ और कुशल इम्प्लीमेंटेशन, कीर फ्रेज़र द्वारा लिखित और सार्वजनिक डोमेन में जारी किया गया है।
- 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.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.
बाहरी संबंध
- 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 – डिफ्लेट Compressed Data Format Specification version 1.3
- zlib Home Page
- An Explanation of the डिफ्लेट Algorithm – by Antaeus Feldspar
- Extended Application of Suffix Trees to Data Compression Archived 2016-09-23 at the Wayback Machine – an excellent algorithm to implement डिफ्लेट by Jesper Larsson
- Zip Files: History, Explanation and Implementation – walk-through of a डिफ्लेट implementation