डिफ्लेट: Difference between revisions
From Vigyanwiki
(Created page with "{{short description|Data compression algorithm}} {{About|the data compression algorithm||Deflation (disambiguation)}} {{More citations needed|date=January 2009}} कम्...") |
No edit summary |
||
| (9 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
{{short description|Data compression algorithm}} | {{short description|Data compression algorithm}} | ||
{{About|the data compression algorithm||Deflation (disambiguation)}} | {{About|the data compression algorithm||Deflation (disambiguation)}}[[ कम्प्यूटिंग |कम्प्यूटिंग]] में, '''डिफ्लेट''' ('''डिफ्लेट''' के रूप में शैलीबद्ध) एक [[दोषरहित संपीड़न|लॉसलेस]] डेटा कम्प्रेशन फ़ाइल फॉर्मेट है जो LZ77_and_LZ78 और [[हफ़मैन कोडिंग]] के संयोजन का उपयोग करता है। इसे [[फिल काट्ज़]] द्वारा उनके [[PKZIP]] आर्चिविंग टूल के संस्करण 2 के लिए डिज़ाइन किया गया था। डिफ्लेट को बाद में 1951 (1996) में निर्दिष्ट किया गया था।<ref name="IETF">{{cite IETF |title=DEFLATE Compressed Data Format Specification version 1.3 |rfc=1951 |section=Abstract |page=1 |first=L. Peter |last=Deutsch |author-link=L. Peter Deutsch |date=May 1996 |publisher=[[Internet Engineering Task Force|IETF]] |access-date=2014-04-23}}</ref> | ||
{{ | |||
काट्ज़ ने डिफ्लेट स्ट्रीम के निर्माण के लिए उपयोग किए जाने वाले मूल एल्गोरिदम को भी डिज़ाइन किया। इस एल्गोरिदम को {{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 की डुप्लिकेट बनाई जा सकती है। | ||
डुप्लिकेट सबस्ट्रिंग के लिए पूर्ववर्ती पाठ की खोज करना | डुप्लिकेट सबस्ट्रिंग के लिए पूर्ववर्ती पाठ की खोज करना डिफ्लेट एल्गोरिदम का सबसे कम्प्यूटेशनल रूप से महंगा भाग है, और वह ऑपरेशन जो कम्प्रेशन स्तर सेटिंग्स को प्रभावित करता है। | ||
=== बिट | === बिट रिडक्शन === | ||
{{main article| | {{main article|हफमैन कोडिंग}} | ||
दूसरे | दूसरे कम्प्रेशन चरण में सामान्यतः उपयोग किए जाने वाले सिम्बल्स को छोटे प्रतिनिधित्व के साथ और कम सामान्यतः उपयोग किए जाने वाले सिम्बल्स को लंबे प्रतिनिधित्व के साथ बदलना सम्मिलित है। उपयोग की जाने वाली विधि हफ़मैन कोडिंग है जो अतिरिक्त-अतिव्यापी अंतराल का एक उपसर्ग ट्री बनाती है, जहां प्रत्येक अनुक्रम की लंबाई उस प्रतीक की एन्कोडिंग की आवश्यकता की संभावना के लघुगणक के व्युत्क्रमानुपाती होती है। जितनी अधिक संभावना है कि किसी प्रतीक को एन्कोड किया जाना है, उसका बिट-अनुक्रम उतना ही छोटा होगा। | ||
एक | एक ट्री बनाया गया है, जिसमें 288 सिम्बल्स के लिए जगह है: | ||
* 0-255: शाब्दिक बाइट्स/ | * 0-255: शाब्दिक बाइट्स/सिम्बल्स 0-255 का प्रतिनिधित्व करते है । | ||
* 256: ब्लॉक का अंत - अंतिम ब्लॉक होने पर प्रोसेसिंग | * 256: ब्लॉक का अंत - अंतिम ब्लॉक होने पर प्रोसेसिंग बंद हो जाता है, अन्यथा अगले ब्लॉक पर प्रोसेसिंग प्रारम्भ बंद हो जाता है। | ||
* 257-285: अतिरिक्त बिट्स के साथ संयुक्त, 3-258 बाइट्स की एक | * 257-285: अतिरिक्त बिट्स के साथ संयुक्त, 3-258 बाइट्स की एक मैच लंबाई है। | ||
* 286, 287: उपयोग नहीं किया गया, | * 286, 287: उपयोग नहीं किया गया, रिजर्व्ड और अवैध लेकिन फिर भी ट्री का भाग है। | ||
मैच लंबाई कोड के बाद | मैच लंबाई कोड के बाद प्रायः डिस्टेंस कोड आएगा। पढ़े गए डिस्टेंस कोड के आधार पर, अंतिम डिस्टेंस उत्पन्न करने के लिए अतिरिक्त अतिरिक्त बिट्स पढ़े जा सकते हैं। डिस्टेंस ट्री में 32 सिम्बल्स के लिए स्थान होता है: | ||
* 0-3: | * 0-3: 1-4 डिस्टेंस | ||
* 4-5: | * 4-5: 1 अतिरिक्त बिट, डिस्टेंस 5-8 | ||
* 6-7: | * 6-7: 2 अतिरिक्त बिट्स, डिस्टेंस 9-16 | ||
* 8-9: | * 8-9: 3 अतिरिक्त बिट्स, डिस्टेंस 17-32 | ||
*... | *... | ||
* 26-27: | * 26-27: 12 अतिरिक्त बिट्स, डिस्टेंस 8,193-16,384 | ||
* 28-29: | * 28-29: 13 अतिरिक्त बिट्स, डिस्टेंस 16,385-32,768 | ||
*30-31: उपयोग नहीं किया गया, | *30-31: उपयोग नहीं किया गया, रिजर्व्ड और अवैध लेकिन फिर भी ट्री का भाग। | ||
ध्यान दें कि | ध्यान दें कि मैच डिस्टेंस सिम्बल्स 2-29 के लिए, अतिरिक्त बिट्स की संख्या की गणना <math>\left\lfloor\frac{n}{2}\right\rfloor-1</math> प्रकार की जा सकती है . | ||
दो कोड (288-प्रतीक लंबाई/शाब्दिक | दो कोड (288-प्रतीक लंबाई/शाब्दिक ट्री और 32-प्रतीक डिस्टेंस ट्री) स्वयं प्रत्येक प्रतीक के लिए कोड की बिट लंबाई देकर [[विहित हफ़मैन कोड]] के रूप में एन्कोड किए गए हैं। जितना संभव हो उतना कॉम्पैक्ट प्रतिनिधित्व उत्पन्न करने के लिए बिट लंबाई [[रन-लंबाई एन्कोडिंग]] होती है। ट्री प्रतिनिधित्व को सम्मिलित करने के विकल्प के रूप में, स्टेटिक ट्री विकल्प मानक निश्चित हफ़मैन ट्री प्रदान करता है। स्टेटिक ट्री का उपयोग करके कंप्रेस्ड आकार की गणना उन्हीं आंकड़ों (प्रत्येक प्रतीक के प्रकट होने की संख्या) का उपयोग करके की जा सकती है, जिनका उपयोग डायनामिक ट्री को उत्पन्न करने के लिए किया जाता है, इसलिए कंप्रेसर के लिए जो भी छोटा हो उसे चुनना आसान होता है। | ||
== एनकोडर/कंप्रेसर == | == एनकोडर/कंप्रेसर == | ||
कम्प्रेशन चरण के समय, यह एनकोडर है जो मैच स्ट्रिंग की अनुसंधान में बिताए गए समय की मात्रा को चुनता है। Zlib/gzip [[संदर्भ कार्यान्वयन|संदर्भ इम्प्लीमेंटेशन]] उपयोगकर्ता को संभावित परिणामी कम्प्रेशन-स्तर बनाम एन्कोडिंग की स्पीड के स्लाइडिंग पैमाने से चयन करने की अनुमति देता है। विकल्प <code>0</code> से लेकर (कम्प्रेशन का प्रयास न करें, केवल अकंप्रेस्ड आर्चिविंग करें) <code>9</code> तक होते हैं जो zlib/gzip में संदर्भ इम्प्लीमेंटेशन की अधिकतम क्षमता का प्रतिनिधित्व करते हैं। | |||
अन्य डिफ्लेट एनकोडर का उत्पादन किया गया है, जो सभी एक संगत [[बिटस्ट्रीम]] का उत्पादन करेंगे जो किसी भी उपस्थित डिफ्लेट डिकोडर द्वारा डीकंप्रेस्ड होने में सक्षम होंगे। अलग-अलग इम्प्लीमेंटेशन से उत्पादित अंतिम एन्कोडेड बिट-स्ट्रीम पर भिन्नता उत्पन्न होने की संभावना है। एनकोडर के अतिरिक्त-ज़्लिब संस्करणों का ध्यान सामान्यतः अधिक कुशलता से कंप्रेस्ड और छोटी एन्कोडेड स्ट्रीम का उत्पादन करने पर होता है। | |||
=== डिफ्लेट64/इन्हैंस्ड डिफ्लेट === | |||
PKWARE द्वारा निर्दिष्ट डिफ्लेट64, डिफ्लेट का एक संपदा संस्करण है। यह मूल रूप से वही एल्गोरिदम है, जो परिवर्तन हुआ है वह है शब्दकोश का आकार 32 केबी से बढ़ाकर 64 केबी, डिस्टेंस कोड को 16 बिट तक विस्तारित करना ताकि वे 64 केबी की सीमा को संबोधित कर सकें, और लंबाई कोड, जिसे 16 बिट तक बढ़ाया गया है ताकि यह तीन से 65,538 बाइट्स की लंबाई को परिभाषित कर सके।<ref>{{Cite web |url=http://www.binaryessence.com/dct/imp/en000225.htm |title=Binary Essence – Deflate64 |access-date=22 May 2011 |archive-url=https://web.archive.org/web/20170621195505/http://www.binaryessence.com/dct/imp/en000225.htm |archive-date=21 June 2017 |url-status=bot: unknown }}</ref> इसके कारण डिफ्लेट64 का कम्प्रेशन समय लंबा हो जाता है, और संभावित रूप से डिफ्लेट की तुलना में थोड़ा अधिक कम्प्रेशन अनुपात होता है।<ref>{{Cite web |url=http://www.binaryessence.com/dct/apc/en000263.htm |title=Binary Essence – "Calgary Corpus" compression comparisons |access-date=22 May 2011 |archive-url=https://web.archive.org/web/20171227131819/http://www.binaryessence.com/dct/apc/en000263.htm |archive-date=27 December 2017 |url-status=bot: unknown }}</ref> कई निर्बाध और/या ओपन सोर्स प्रोजेक्ट्स डिफ्लेट64 का समर्थन करते हैं, जैसे [[7-ज़िप]],<ref>{{Cite web|url=https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm|title=-एम (संपीड़न विधि सेट करें) स्विच|website=sevenzip.osdn.jp}}</ref> जबकि अन्य, जैसे [[zlib]], प्रक्रिया की स्वामित्व प्रकृति के परिणामस्वरूप ऐसा नहीं करते हैं<ref>History of Lossless Data Compression Algorithms – [http://ieeeghn.org/wiki/index.php/History_of_Lossless_Data_Compression_Algorithms#DEFLATE64 Deflate64]</ref> और डिफ्लेट की तुलना में प्रदर्शन में बहुत सामान्य वृद्धि हुई है।<ref>zlib FAQ – [https://www.zlib.net/zlib_faq.html#faq40 Does zlib support the new "Deflate64" format introduced by PKWare?]</ref> | |||
== नए सॉफ्टवेयर में डिफ्लेट का उपयोग == | == नए सॉफ्टवेयर में डिफ्लेट का उपयोग == | ||
डिफ्लेट का | डिफ्लेट का इम्प्लीमेंटेशन कई लैंग्वेजओं में निःशुल्क उपलब्ध है। C (प्रोग्रामिंग लैंग्वेज) में लिखे गए ऐप्स सामान्यतः zlib लाइब्रेरी (अनुमेय zlib लाइसेंस के तहत) का उपयोग करते हैं। [[बोर्लैंड पास्कल]] (और संगत लैंग्वेजओं) में ऐप्स paszlib का उपयोग कर सकते हैं। [[C++]] में ऐप्स 7-ज़िप में बेहतर डिफ्लेट लाइब्रेरी का लाभ उठा सकते हैं। [[जावा (सॉफ़्टवेयर प्लेटफ़ॉर्म)]] और .NET फ़्रेमवर्क दोनों अपने लाइब्रेरीज में डिफ्लेट के लिए आउट-ऑफ़-द-बॉक्स समर्थन प्रदान करते हैं (क्रमशः, <code>java.util.zip</code> और [https://docs.microsoft.com/en-us/dotnet/api/system.io.compression.deflatestream System.IO.Compression])। Ada (प्रोग्रामिंग लैंग्वेज) में ऐप्स [http://unzip-ada.sourceforge.net/ Zip-Ada] (शुद्ध) या [http://zlib-ada.sourceforge.net/ ZLib-Ada] का उपयोग कर सकते हैं। | ||
=== एनकोडर इम्प्लीमेंटेशन === | |||
* PKZIP: पहला इम्प्लीमेंटेशन, मूल रूप से PKZip के भाग के रूप में फिल काट्ज़ द्वारा किया गया | |||
* zlib: इसके ओपन-सोर्स, अनुमेय लाइसेंस के कारण कई ऐप्स में मानक संदर्भ इम्प्लीमेंटेशन अपनाया गया है। उच्च-प्रदर्शन वाले फ़ोर्क्स के लिए {{section link|Zlib#Forks}} देखें। | |||
* [[क्रिप्टो++]]: संभावित [[भेद्यता (कंप्यूटिंग)]] को कम करने के उद्देश्य से C++ में एक सार्वजनिक-डोमेन इम्प्लीमेंटेशन सम्मिलित है। लेखक, वेई दाई कहते हैं "यह कोड कम चतुर है, लेकिन उम्मीद है कि [zlib की तुलना में] अधिक समझने योग्य और रखरखाव योग्य है"। | |||
* 7-ज़िप: C++ में इगोर पावलोव द्वारा लिखित, यह संस्करण स्वतंत्र रूप से लाइसेंस प्राप्त है और सीपीयू उपयोग की कीमत पर zlib की तुलना में उच्च कम्प्रेशन प्राप्त करता है। डिफ्लेट64 आर्चिव फॉर्मेट का उपयोग करने का विकल्प है। | |||
* पुटी 'sshzlib.c': साइमन टैथम द्वारा [[मेरा लाइसेंस|एमआईटी लाइसेंस]] के तहत एक स्टैंडअलोन इम्प्लीमेंटेशन, इसमें पूर्ण डिकोडिंग क्षमता है, लेकिन केवल स्टेटिक ट्री निर्माण का समर्थन करता है | |||
* लिबफ़्लेट:<ref>{{Cite web |url=http://plan9.bell-labs.com/sources/plan9/sys/src/libflate/ |title=Plan 9 from Bell Labs's /n/sources/plan9/sys/src/libflate |website=plan9.bell-labs.com |publisher=Lucent Technologies |archive-date=2006-03-15 |archive-url=https://web.archive.org/web/20060315063934/http://plan9.bell-labs.com/sources/plan9/sys/src/libflate/ |url-status=dead }}</ref> बेल लैब्स की योजना 9 का भाग, डिफ्लेट कम्प्रेशन को लागू करता है | |||
* हाइपरबैक: डिफ्लेट64 स्टोरेज फॉर्मेट को लागू करने के विकल्प के साथ अपनी स्वयं की मालिकाना कम्प्रेशन लाइब्रेरी (C++ और असेंबली में) का उपयोग करता है | |||
* [[Zopfli]]: [[Google]] द्वारा [[अपाचे लाइसेंस]] के तहत C इम्प्लीमेंटेशन; सीपीयू उपयोग की कीमत पर उच्चतम कम्प्रेशन प्राप्त करता है। ZopfliPNG पोर्टेबल नेटवर्क ग्राफ़िक्स फ़ाइलों के साथ उपयोग के लिए Zopfli का एक रूप है। | |||
* igzip:एमआईटी लाइसेंस के तहत [[इंटेल]] द्वारा जारी [[x86 असेंबली भाषा|x86 असेंबली लैंग्वेज]] में लिखा गया एक एनकोडर। zlib -1 से 3 गुना तेज। जीनोमिक डेटा को कंप्रेस्ड करने के लिए उपयोगी।<ref>{{cite web |title=जीनोमिक डेटा सेट के लिए अनुकूलन के साथ उच्च प्रदर्शन DEFLATE संपीड़न|url=https://software.intel.com/en-us/articles/igzip-a-high-performance-deflate-compressor-with-optimizations-for-genomic-data |website=Intel Software |access-date=18 January 2020 |date=1 October 2019}}</ref> | |||
AdvanceCOMP 7-ज़िप, लिबडेफ्लेट और ज़ोपफ्ली में डिफ्लेट के उच्च संपीड़न अनुपात संस्करणों का उपयोग करता है ताकि जीज़िप, पीएनजी, एमएनजी और ज़िप फ़ाइलों के पुनर्संपीड़न को सक्षम किया जा सके, जिसमें zlib की तुलना में छोटे फ़ाइल आकार की संभावना अधिकतम सेटिंग्स पर प्राप्त करने में सक्षम है। <ref>{{cite web |last1=Mazzoleni |first1=Andrea |title=amadvance/advancecomp |website=[[GitHub]] |url=https://github.com/amadvance/advancecomp/blob/fcf71a89265c78fc26243574dda3a872574a5c02/doc/advzip.txt |date=21 February 2023}}</ref> | |||
=== हार्डवेयर एनकोडर === | === हार्डवेयर एनकोडर === | ||
* एएचए | * कॉमटेक एएचए से AHA361-PCIX/AHA362-PCIX संग्रहीत 2006-12-08 को वेबैक मशीन पर। कॉमटेक ने एक [[पीसीआई-एक्स]] कार्ड (PCI-ID: 193f:0001) तैयार किया, जो आने वाले इनकंप्रेसिब्ल डेटा के लिए 3.0 Gbit/s (375 MB/s) तक की दर पर डिफ्लेट का उपयोग करके स्ट्रीम को कंप्रेस्ड करने में सक्षम है। AHA361-PCIX के लिए [[लिनक्स (कर्नेल)]] [[डिवाइस ड्राइवर]] के साथ एक "aagzip" उपयोगिता और अनुकूलित "mod_डिफ्लेट_aha" है जो [[अपाचे HTTP सर्वर]] से हार्डवेयर कम्प्रेशन का उपयोग करने में सक्षम है। हार्डवेयर Xilinx Virtex FPGA और चार कस्टम AHA3601 ASIC पर आधारित है। AHA361/AHA362 बोर्ड केवल स्थैतिक हफ़मैन ब्लॉकों को संभालने तक ही सीमित हैं और समर्थन जोड़ने के लिए सॉफ़्टवेयर को संशोधित करने की आवश्यकता है - कार्ड पूर्ण डिफ्लेट विनिर्देश का समर्थन करने में सक्षम नहीं थे, जिसका अर्थ है कि वे केवल अपने स्वयं के आउटपुट को विश्वसनीय रूप से डीकोड कर सकते हैं (एक स्ट्रीम जो नहीं करती थी) इसमें कोई भी डायनामिक हफ़मैन प्रकार 2 ब्लॉक सम्मिलित हैं)। | ||
* [http://www.dranetworks.com/SC300.html StorCompress 300]/[http://www.dranetworks.com/SCMX3.html MX3] [http://www.dranetworks.com/ इंद्रा नेटवर्क्स] से। यह [[पीसीआई लोकल बस]] की एक श्रृंखला है (पीसीआई-आईडी: <code>17b4:0011</code>) या PCI-X कार्ड जिसमें एक से छह कम्प्रेशन इंजन होते हैं जिनकी प्रोसेसिंग | |||