पी.ए.क्यू.: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{For|डीओएस के लिए असंबंधित <code>PAQ.EXE</code> कंप्रेसर|क्वांटम संपीड़न (बहुविकल्पी){{!}}क्वांटम संपीड़न}}
{{For|डीओएस के लिए असंबंधित <code>PAQ.EXE</code> कंप्रेसर|क्वांटम संपीड़न (बहुविकल्पी){{!}}क्वांटम कंप्रेशन}}
[[Image:Paq8o Sample Session.png|thumb|500px|पी.ए.क्यू.8O का नमूना सत्र]]'''पी.ए.क्यू.''' [[दोषरहित डेटा संपीड़न|लॉसलेस  डेटा कंप्रेशन]]  अभिलेखों की श्रृंखला है जो सहयोगात्मक विकास के माध्यम से कंप्रेशन  अनुपात को मापने वाले अनेक बेंचमार्क पर शीर्ष रैंकिंग तक पहुंच गई है (चूँकि गति और मेमोरी उपयोग की मूल्य पर)। पीएक्यू के विशिष्ट वर्जनो ने [[हटर पुरस्कार]] और [[ कैलगरी चुनौती |कैलगरी चुनौती]] जीता है।<ref>{{cite web|url=http://mailcom.com/challenge/ |title=The Compression/SHA-1 Challenge |publisher=Mailcom.com |access-date=2010-05-19}}</ref> पीएक्यू [[जीएनयू जनरल पब्लिक लाइसेंस]] के अनुसार वितरित [[मुफ्त सॉफ्टवेयर]] है।<ref>{{cite web
[[Image:Paq8o Sample Session.png|thumb|500px|पी.ए.क्यू.8O का नमूना सत्र]]'''पी.ए.क्यू.''' [[दोषरहित डेटा संपीड़न|लॉसलेस  डेटा कंप्रेशन]]  अभिलेखों की श्रृंखला है जो सहयोगात्मक विकास के माध्यम से कंप्रेशन  अनुपात को मापने वाले अनेक बेंचमार्क पर शीर्ष रैंकिंग तक पहुंच गई है (चूँकि गति और मेमोरी उपयोग की मूल्य पर)। पीएक्यू के विशिष्ट वर्जनो ने [[हटर पुरस्कार]] और [[ कैलगरी चुनौती |कैलगरी चुनौती]] जीता है।<ref>{{cite web|url=http://mailcom.com/challenge/ |title=The Compression/SHA-1 Challenge |publisher=Mailcom.com |access-date=2010-05-19}}</ref> पीएक्यू [[जीएनयू जनरल पब्लिक लाइसेंस]] के अनुसार वितरित [[मुफ्त सॉफ्टवेयर]] है।<ref>{{cite web
|url=http://mattmahoney.net/dc/
|url=http://mattmahoney.net/dc/
Line 66: Line 66:
प्रत्येक पूर्वानुमान के पश्चात् , कोडिंग कास्ट को कम करने के लिए वजन को समायोजित करके मॉडल को अपडेट किया जाता है:
प्रत्येक पूर्वानुमान के पश्चात् , कोडिंग कास्ट को कम करने के लिए वजन को समायोजित करके मॉडल को अपडेट किया जाता है:
** ''w<sub>i</sub>'' ← ''w<sub>i</sub>'' + η ''x<sub>i</sub>'' (''y'' − P(1)),
** ''w<sub>i</sub>'' ← ''w<sub>i</sub>'' + η ''x<sub>i</sub>'' (''y'' − P(1)),
**
'''जहां η [[सीखने की दर]] है (आमतौर पर 0.002 से 0.01), y अनुमानित बिट है, और (y − P(1''')) पूर्वानुमान त्रुटि है। वेट अपडेट एल्गोरिदम [[पश्चप्रचार]] से अलग है जिसमें P(1)P(0) शब्द हटा दिए जाते हैं। ऐसा इसलिए है क्योंकि तंत्रिका नेटवर्क का लक्ष्य कोडिंग कास्ट को कम करना है, न कि मूल माध्य वर्ग त्रुटि।


पीएक्यू के अधिकांश वर्जन तंत्रिका नेटवर्क के लिए वजन के सेट के बीच चयन करने के लिए छोटे संदर्भ का उपयोग करते हैं। कुछ वर्जन एकाधिक नेटवर्क का उपयोग करते हैं जिनके आउटपुट एसएसई चरणों से पहले और नेटवर्क के साथ संयुक्त होते हैं। इसके अलावा, प्रत्येक इनपुट पूर्वानुमान के लिए अनेक इनपुट हो सकते हैं जो पी के गैर-रेखीय कार्य हैं<sub>''i''</sub>(1) खिंचाव के अतिरिक्त (पी(1))
 
जहां η सीखने की दर है (समान्य रूप से 0.002 से 0.01), y अनुमानित बिट है, और (y − P(1)) पूर्वानुमान त्रुटि है। वेट अपडेट एल्गोरिदम बैकप्रॉपैगेशन से अलग है जिसमें P(1)P(0) शब्द हटा दिए जाते हैं। ऐसा इसलिए है क्योंकि न्यूरल नेटवर्क का लक्ष्य कोडिंग कास्ट  को कम करना है, न कि मूल माध्य वर्ग त्रुटि है।
 
पीएक्यू के अधिकांश संस्करण न्यूरल नेटवर्क के लिए वजन के सेट के बीच चयन करने के लिए एक छोटे संदर्भ का उपयोग करते हैं। कुछ संस्करण एकाधिक नेटवर्क का उपयोग करते हैं जिनके आउटपुट एसएसई चरणों से पहले एक और नेटवर्क के साथ संयुक्त होते हैं। इसके अतिरिक्त , प्रत्येक इनपुट पूर्वानुमान के लिए कई इनपुट हो सकते हैं जो स्ट्रेच P<sub>''i''</sub>(1) के अतिरिक्त (P(1)) के गैर-रेखीय कार्य हैं।


===संदर्भ मॉडलिंग===
===संदर्भ मॉडलिंग===


प्रत्येक मॉडल एस के ज्ञात बिट्स को संदर्भों के सेट में विभाजित करता है और प्रत्येक संदर्भ को 8-बिट स्थिति द्वारा दर्शाए गए बिट इतिहास में मैप करता है। पी.ए.क्यू.6 के माध्यम से वर्जनो में, राज्य काउंटरों की जोड़ी का प्रतिनिधित्व करता है (एन<sub>0</sub>, एन<sub>1</sub>). पी.ए.क्यू.7 और पश्चात्  के वर्जनो में कुछ शर्तों के तहत, स्थिति अंतिम बिट या संपूर्ण अनुक्रम के मूल्य का भी प्रतिनिधित्व करती है। प्रत्येक मॉडल के लिए 256-प्रविष्टि तालिका का उपयोग करके राज्यों को संभावनाओं के आधार पर मैप किया जाता है। मॉडल द्वारा पूर्वानुमान के पश्चात् , पूर्वानुमान त्रुटि को कम करने के लिए तालिका प्रविष्टि को थोड़ा (आमतौर पर 0.4%) समायोजित किया जाता है।
प्रत्येक मॉडल एस के ज्ञात बिट्स को संदर्भों के एक सेट में विभाजित करता है और प्रत्येक संदर्भ को 8-बिट स्थिति द्वारा दर्शाए गए बिट इतिहास में मैप करता है। पी.ए.क्यू.6 के माध्यम से वर्जनो में, स्टेट काउंटरों की एक जोड़ी (''n''<sub>0</sub>, ''n''<sub>1</sub>) का प्रतिनिधित्व करता है। पी.ए.क्यू.7 और बाद के वर्जनो में कुछ नियमो के अनुसार , स्थिति अंतिम बिट या संपूर्ण अनुक्रम के मूल्य का भी प्रतिनिधित्व करती है। प्रत्येक मॉडल के लिए 256-प्रविष्टि तालिका का उपयोग करके स्टेट को संभावनाओं के आधार पर मैप किया जाता है। मॉडल द्वारा पूर्वानुमान के बाद, पूर्वानुमान त्रुटि को कम करने के लिए तालिका प्रविष्टि को थोड़ा (समान्य रूप से  0.4%) समायोजित किया जाता है।


सभी पी.ए.क्यू.8 वर्जनो में, प्रतिनिधित्व योग्य स्थितियाँ इस प्रकार हैं:
सभी पी.ए.क्यू.8 वर्जनो में, प्रतिनिधित्व योग्य स्थितियाँ इस प्रकार हैं:
Line 80: Line 81:
* 16 से 41 बिट्स के अनुक्रमों के लिए गिनती की जोड़ी।
* 16 से 41 बिट्स के अनुक्रमों के लिए गिनती की जोड़ी।


राज्यों की संख्या 256 तक रखने के लिए, प्रतिनिधित्व योग्य गणनाओं पर निम्नलिखित सीमाएँ रखी गई हैं: (41, 0), (40, 1), (12, 2), (5, 3), (4, 4), ( 3, 5), (2, 12), (1, 40), (0, 41)। यदि कोई गिनती इस सीमा से अधिक हो जाती है, तो अगला राज्य n के समान अनुपात के लिए चुना जाता है<sub>0</sub> से एन<sub>1</sub>. इस प्रकार, यदि वर्तमान स्थिति (n<sub>0</sub> = 4, एन<sub>1</sub> = 4, अंतिम बिट = 0) और 1 देखा जाता है, तो नई स्थिति (एन) नहीं है<sub>0</sub> = 4, एन<sub>1</sub> = 5, अंतिम बिट = 1). बल्कि, यह (एन<sub>0</sub> = 3, एन<sub>1</sub> = 4, अंतिम बिट = 1).
स्टेट की संख्या 256 तक रखने के लिए, प्रतिनिधित्व योग्य गणनाओं पर निम्नलिखित सीमाएँ रखी गई हैं: (41, 0), (40, 1), (12, 2), (5, 3), (4, 4), ( 3, 5), (2, 12), (1, 40), (0, 41)। यदि कोई गिनती इस सीमा से अधिक हो जाती है, तो अगला स्टेट ''n''<sub>0</sub> से ''n''<sub>1</sub> के समान अनुपात वाला चुना जाता है। इस प्रकार, यदि वर्तमान स्थिति (''n''<sub>0</sub> = 4, ''n''<sub>1</sub> = 4, अंतिम बिट = 0) है और 1 देखा जाता है, तो नई स्थिति (''n''<sub>0</sub> = 4, ''n''<sub>1</sub> = 5, अंतिम बिट = 1) नहीं है। चूँकि , यह (''n''<sub>0</sub> = 3, n<sub>1</sub> = 4, अंतिम बिट = 1) है।


अधिकांश संदर्भ मॉडल [[हैश तालिका]]ओं के रूप में कार्यान्वित किए जाते हैं। कुछ छोटे संदर्भों को प्रत्यक्ष लुकअप तालिकाओं के रूप में कार्यान्वित किया जाता है।
अधिकांश संदर्भ मॉडल [[हैश तालिका]]ओं के रूप में कार्यान्वित किए जाते हैं। कुछ छोटे संदर्भों को प्रत्यक्ष लुकअप तालिकाओं के रूप में कार्यान्वित किया जाता है।
Line 86: Line 87:
===टेक्स्ट प्रीप्रोसेसिंग===
===टेक्स्ट प्रीप्रोसेसिंग===


पी.ए.क्यू. के कुछ संस्करण, विशेष रूप से PAsQDa, पी.ए.क्यू.AR (दोनों पी.ए.क्यू.6 डेरिवेटिव), और पी.ए.क्यू.8HP1 से पी.ए.क्यू.8HP8 (पी.ए.क्यू.8 डेरिवेटिव और [[हटर पुरस्कार]] प्राप्तकर्ता) बाहरी शब्दकोश में शब्दों को देखकर और उन्हें 1- से 3-बाइट कोड के साथ बदलकर टेक्स्ट फ़ाइलों को प्रीप्रोसेस करते हैं। . इसके अलावा, अपरकेस अक्षरों को विशेष वर्ण के साथ एन्कोड किया जाता है जिसके पश्चात्  लोअरकेस अक्षर आते हैं। पी.ए.क्यू.8HP श्रृंखला में, शब्दकोश को वाक्यात्मक और शब्दार्थ संबंधी शब्दों को साथ समूहित करके व्यवस्थित किया जाता है। यह मॉडलों को संदर्भ के रूप में शब्दकोश कोड के सबसे महत्वपूर्ण बिट्स का उपयोग करने की अनुमति देता है।
पी.ए.क्यू. के कुछ संस्करण, विशेष रूप से पीए क्यूडीए, पी.ए.क्यू.एआर (दोनों पी.ए.क्यू.6 डेरिवेटिव), और पी.ए.क्यू.8एच.पी1 से पी.ए.क्यू.8एच.पी8 (पी.ए.क्यू.8 डेरिवेटिव और [[हटर पुरस्कार]] प्राप्तकर्ता) बाहरी शब्दकोश में शब्दों को देखकर और उन्हें 1- से 3-बाइट कोड के साथ बदलकर टेक्स्ट फ़ाइलों को प्रीप्रोसेस करते हैं। . इसके अतिरिक्त, अपरकेस अक्षरों को विशेष वर्ण के साथ एन्कोड किया जाता है जिसके पश्चात्  लोअरकेस अक्षर आते हैं। पी.ए.क्यू.8एच.पी श्रृंखला में, शब्दकोश को वाक्यात्मक और शब्दार्थ संबंधी शब्दों को साथ समूहित करके व्यवस्थित किया जाता है। यह मॉडलों को संदर्भ के रूप में शब्दकोश कोड के सबसे महत्वपूर्ण बिट्स का उपयोग करने की अनुमति देता है।


==तुलना==
==तुलना==


निम्नलिखित तालिका मैट महोनी द्वारा [http://mattmahoney.net/dc/text.html बड़े टेक्स्ट कंप्रेशन बेंचमार्क] से नमूना है जिसमें 10 वाली फ़ाइल सम्मिलित है<sup>[[अंग्रेजी विकिपीडिया]] टेक्स्ट के 9</sup> बाइट्स (1 [[गीगाबाइट]], या 0.931 [[GiB]])
निम्नलिखित तालिका मैट महोनी द्वारा बड़े टेक्स्ट कंप्रेशन बेंचमार्क का एक नमूना है जिसमें अंग्रेजी विकिपीडिया टेक्स्ट के 109 बाइट्स (1 जीबी, या 0.931 जीबी) वाली फ़ाइल सम्मिलित  है।


{| class="wikitable"
{| class="wikitable"
Line 123: Line 124:
|0.1
|0.1
|}
|}
फ़ाइल कंप्रेशन  बेंचमार्क की सूची के लिए लॉसलेस  कंप्रेशन #बेंचमार्क देखें।
फ़ाइल कंप्रेशन  बेंचमार्क की सूची के लिए लॉसलेस  कंप्रेशन या बेंचमार्क देखें।


==इतिहास==
==इतिहास==


निम्नलिखित पी.ए.क्यू. एल्गोरिथम के प्रमुख संवर्द्धनों को सूचीबद्ध करता है। इसके अलावा, बड़ी संख्या में वृद्धिशील सुधार हुए हैं, जिन्हें छोड़ दिया गया है।
'''निम्नलिखित पी.ए.क्यू. एल्गोरिथम के प्रमुख संवर्द्धनों को सूचीबद्ध करता है। इसके अ'''तिरिक्त , बड़ी संख्या में वृद्धिशील सुधार हुए हैं, जिन्हें छोड़ दिया गया है।


* पी.ए.क्यू.1 को 6 जनवरी 2002 को मैट महोनी द्वारा जारी किया गया था। इसमें निश्चित वजन का उपयोग किया गया था और इसमें एनालॉग या विरल मॉडल सम्मिलित नहीं था।
* पी.ए.क्यू.1 को 6 जनवरी 2002 को मैट महोनी द्वारा जारी किया गया था। इसमें निश्चित वजन का उपयोग किया गया था और इसमें एनालॉग या विरल मॉडल सम्मिलित नहीं था।
Line 136: Line 137:
* 18 जनवरी 2005 से 7 फरवरी 2005 की अवधि के दौरान, प्रेज़ेमिस्लाव स्किबिंस्की ने अंग्रेजी शब्दकोश प्रीप्रोसेसर के साथ पी.ए.क्यू.6 और पी.ए.क्यू.AR पर आधारित PASqDa के चार वर्जन जारी किए। इसने कैलगरी कॉर्पस पर शीर्ष रैंकिंग हासिल की किन्तु अधिकांश अन्य बेंचमार्क पर नहीं।
* 18 जनवरी 2005 से 7 फरवरी 2005 की अवधि के दौरान, प्रेज़ेमिस्लाव स्किबिंस्की ने अंग्रेजी शब्दकोश प्रीप्रोसेसर के साथ पी.ए.क्यू.6 और पी.ए.क्यू.AR पर आधारित PASqDa के चार वर्जन जारी किए। इसने कैलगरी कॉर्पस पर शीर्ष रैंकिंग हासिल की किन्तु अधिकांश अन्य बेंचमार्क पर नहीं।
* पी.ए.क्यू.6 के संशोधित वर्जन ने 10 जनवरी 2004 को मैट महोनी द्वारा कैलगरी चैलेंज जीता। अलेक्जेंडर रतुश्न्याक द्वारा पी.ए.क्यू.AR के दस पश्चात्  के वर्जनो द्वारा इसे बेहतर बनाया गया। सबसे हालिया 5 जून 2006 को प्रस्तुत किया गया था, जिसमें कुल 589,862 बाइट्स का कंप्रेस डेटा और प्रोग्राम स्रोत कोड सम्मिलित था।
* पी.ए.क्यू.6 के संशोधित वर्जन ने 10 जनवरी 2004 को मैट महोनी द्वारा कैलगरी चैलेंज जीता। अलेक्जेंडर रतुश्न्याक द्वारा पी.ए.क्यू.AR के दस पश्चात्  के वर्जनो द्वारा इसे बेहतर बनाया गया। सबसे हालिया 5 जून 2006 को प्रस्तुत किया गया था, जिसमें कुल 589,862 बाइट्स का कंप्रेस डेटा और प्रोग्राम स्रोत कोड सम्मिलित था।
* पी.ए.क्यू.7 को दिसंबर 2005 में मैट महोनी द्वारा रिलीज़ किया गया था। पी.ए.क्यू.7, पी.ए.क्यू.6 और वेरिएंट (पी.ए.क्यू.AR, PAsQDa) का पूर्ण पुनर्लेखन है। कंप्रेशन  अनुपात पी.ए.क्यू.AR के समान था किन्तु 3 गुना तेज़ था। हालाँकि इसमें x86 और शब्दकोश का अभाव था, इसलिए यह विंडोज़ निष्पादनयोग्य और अंग्रेजी टेक्स्ट फ़ाइलों के साथ-साथ PAsQDa को कंप्रेस नहीं करता था। इसमें रंगीन बीएमपी, टीआईएफएफ और जेपीईजी फाइलों के मॉडल सम्मिलित हैं, इसलिए ये फाइलें बेहतर विधियों से कंप्रेस होती हैं। पी.ए.क्यू.6 से प्राथमिक अंतर यह है कि यह ग्रेडिएंट डिसेंट मिक्सर के अतिरिक्त मॉडलों को संयोजित करने के लिए तंत्रिका नेटवर्क का उपयोग करता है। अन्य विशेषता [[ प्रोग्राम फ़ाइल |प्रोग्राम फ़ाइल]] ेल-, वर्ड- और पीडीएफ-फ़ाइलों में एम्बेडेड जेपीईजी और बिटमैप छवियों को कंप्रेस करने की पी.ए.क्यू.7 की क्षमता है।
* पी.ए.क्यू.7 को दिसंबर 2005 में मैट महोनी द्वारा रिलीज़ किया गया था। पी.ए.क्यू.7, पी.ए.क्यू.6 और वेरिएंट (पी.ए.क्यू.AR, PAsQDa) का पूर्ण पुनर्लेखन है। कंप्रेशन  अनुपात पी.ए.क्यू.AR के समान था किन्तु 3 गुना तेज़ था। हालाँकि इसमें x86 और शब्दकोश का अभाव था, इसलिए यह विंडोज़ निष्पादनयोग्य और अंग्रेजी टेक्स्ट फ़ाइलों के साथ-साथ PAsQDa को कंप्रेस नहीं करता था। इसमें रंगीन बीएमपी, टीआईएफएफ और जेपीईजी फाइलों के मॉडल सम्मिलित हैं, इसलिए ये फाइलें बेहतर विधियों से कंप्रेस होती हैं। पी.ए.क्यू.6 से प्राथमिक अंतर यह है कि यह ग्रेडिएंट डिसेंट मिक्सर के अतिरिक्त मॉडलों को संयोजित करने के लिए न्यूरल नेटवर्क का उपयोग करता है। अन्य विशेषता [[ प्रोग्राम फ़ाइल |प्रोग्राम फ़ाइल]] ेल-, वर्ड- और पीडीएफ-फ़ाइलों में एम्बेडेड जेपीईजी और बिटमैप छवियों को कंप्रेस करने की पी.ए.क्यू.7 की क्षमता है।
* पी.ए.क्यू.8A को 27 जनवरी 2006 को, पी.ए.क्यू.8C को 13 फरवरी 2006 को जारी किया गया था। ये प्रत्याशित पी.ए.क्यू.8 के प्रायोगिक प्री-रिलीज़ थे। इसने पी.ए.क्यू.7 (कुछ मामलों में [[खराब]] कंप्रेशन ) में अनेक समस्याओं को ठीक किया। पी.ए.क्यू.8A में (x86) निष्पादनयोग्यों को कंप्रेस करने के लिए मॉडल भी सम्मिलित है।
* पी.ए.क्यू.8A को 27 जनवरी 2006 को, पी.ए.क्यू.8C को 13 फरवरी 2006 को जारी किया गया था। ये प्रत्याशित पी.ए.क्यू.8 के प्रायोगिक प्री-रिलीज़ थे। इसने पी.ए.क्यू.7 (कुछ मामलों में [[खराब]] कंप्रेशन ) में अनेक समस्याओं को ठीक किया। पी.ए.क्यू.8A में (x86) निष्पादनयोग्यों को कंप्रेस करने के लिए मॉडल भी सम्मिलित है।
* पी.ए.क्यू.8F को 28 फरवरी, 2006 को जारी किया गया था। पी.ए.क्यू.8F में पी.ए.क्यू.8A की तुलना में 3 सुधार थे: अधिक मेमोरी कुशल संदर्भ मॉडल, कंप्रेशन  में सुधार के लिए नया अप्रत्यक्ष संदर्भ मॉडल, और विंडोज़ में ड्रैग और ड्रॉप का समर्थन करने के लिए नया उपयोगकर्ता इंटरफ़ेस। यह पी.ए.क्यू.8B/C/D/E वेरिएंट की तरह अंग्रेजी शब्दकोश का उपयोग नहीं करता है।
* पी.ए.क्यू.8F को 28 फरवरी, 2006 को जारी किया गया था। पी.ए.क्यू.8F में पी.ए.क्यू.8A की तुलना में 3 सुधार थे: अधिक मेमोरी कुशल संदर्भ मॉडल, कंप्रेशन  में सुधार के लिए नया अप्रत्यक्ष संदर्भ मॉडल, और विंडोज़ में ड्रैग और ड्रॉप का समर्थन करने के लिए नया उपयोगकर्ता इंटरफ़ेस। यह पी.ए.क्यू.8B/C/D/E वेरिएंट की तरह अंग्रेजी शब्दकोश का उपयोग नहीं करता है।
Line 178: Line 179:
* PWCM (पी.ए.क्यू. वेटेड कॉन्टेक्स्ट मिक्सिंग) WinRK में प्रयुक्त पी.ए.क्यू. एल्गोरिदम का स्वतंत्र रूप से विकसित बंद स्रोत कार्यान्वयन है।<ref>{{cite web |url=http://www.maximumcompression.com/data/summary_sf.php |title=एकल फ़ाइल डेटा संपीड़न बेंचमार्क, संपीड़न अनुपात पर क्रमबद्ध|publisher=Maximumcompression.com |date=2007-04-14 |access-date=2010-05-19 |archive-date=2009-04-17 |archive-url=https://web.archive.org/web/20090417042621/http://www.maximumcompression.com/data/summary_sf.php |url-status=dead }}</ref>
* PWCM (पी.ए.क्यू. वेटेड कॉन्टेक्स्ट मिक्सिंग) WinRK में प्रयुक्त पी.ए.क्यू. एल्गोरिदम का स्वतंत्र रूप से विकसित बंद स्रोत कार्यान्वयन है।<ref>{{cite web |url=http://www.maximumcompression.com/data/summary_sf.php |title=एकल फ़ाइल डेटा संपीड़न बेंचमार्क, संपीड़न अनुपात पर क्रमबद्ध|publisher=Maximumcompression.com |date=2007-04-14 |access-date=2010-05-19 |archive-date=2009-04-17 |archive-url=https://web.archive.org/web/20090417042621/http://www.maximumcompression.com/data/summary_sf.php |url-status=dead }}</ref>
*पी.ए.क्यू.Compress अनेक नए पी.ए.क्यू. वर्जनो के लिए ग्राफिकल यूजर इंटरफेस है, जिसमें पी.ए.क्यू.8PX, पी.ए.क्यू.8PXD और पी.ए.क्यू.8PXV के नवीनतम रिलीज सम्मिलित हैं। जब भी कोई नया वर्जन जारी होता है तो इसे अपडेट किया जाता है। सॉफ़्टवेयर समझदारी से फ़ाइल नाम में एक्सटेंशन जोड़ता है जिसका उपयोग वह सही पी.ए.क्यू. वर्जन का उपयोग करके फ़ाइल को डीकंप्रेस करने के लिए कर सकता है। सॉफ्टवेयर खुला स्रोत है.<ref>{{Cite web|url=https://moisescardona.me/paqcompress/|title=पीएक्यूकंप्रेस|date=2019-01-10|website=Moisés Cardona|language=en-US|access-date=2019-03-05}}</ref>
*पी.ए.क्यू.Compress अनेक नए पी.ए.क्यू. वर्जनो के लिए ग्राफिकल यूजर इंटरफेस है, जिसमें पी.ए.क्यू.8PX, पी.ए.क्यू.8PXD और पी.ए.क्यू.8PXV के नवीनतम रिलीज सम्मिलित हैं। जब भी कोई नया वर्जन जारी होता है तो इसे अपडेट किया जाता है। सॉफ़्टवेयर समझदारी से फ़ाइल नाम में एक्सटेंशन जोड़ता है जिसका उपयोग वह सही पी.ए.क्यू. वर्जन का उपयोग करके फ़ाइल को डीकंप्रेस करने के लिए कर सकता है। सॉफ्टवेयर खुला स्रोत है.<ref>{{Cite web|url=https://moisescardona.me/paqcompress/|title=पीएक्यूकंप्रेस|date=2019-01-10|website=Moisés Cardona|language=en-US|access-date=2019-03-05}}</ref>
* परफेक्ट कंप्रेस<ref>{{cite web|url=http://moises-studios.com/?q=PerfectCompress |title=परफेक्टकंप्रेस आधिकारिक वेबसाइट|publisher=Moises-studios.110mb.com |date=2010-04-03 |access-date=2010-05-19}}</ref>एक कंप्रेशन सॉफ्टवेयर है जिसमें यूसीए (अल्ट्रा कंप्रेस्ड आर्काइव) की सुविधा है। कंप्रेशन  प्रारूप जिसमें पी.ए.क्यू.8PX v42 से v65 सम्मिलित है और जो अब डिफ़ॉल्ट UCA कंप्रेसर के रूप में पी.ए.क्यू.8PF, पी.ए.क्यू.8KX, या पी.ए.क्यू.8PXPRE का उपयोग कर सकता है। इसके अलावा, परफेक्टकंप्रेस फ़ाइलों को पी.ए.क्यू.8PX v42 से v67, और Zपी.ए.क्यू. में कंप्रेस कर सकता है, और वर्जन 6.0 के अनुसार, फ़ाइलों को Lपी.ए.क्यू. और पी.ए.क्यू.8PF बीटा 1 से बीटा 3 में कंप्रेस कर सकता है। परफेक्टकंप्रेस v6.10 ने वर्तमान ही में जारी पी.ए.क्यू.8PXPRE के लिए समर्थन कंप्रेशन  पेश किया है। परफेक्टकंप्रेस 6.12 पी.ए.क्यू.8KX श्रृंखला के लिए समर्थन प्रस्तुत करता है।<ref>{{cite web|url=http://www.facebook.com/pages/PerfectCompress/224694115431 |title=परफेक्टकंप्रेस आधिकारिक फेसबुक पेज|publisher=Facebook.com |access-date=2010-05-19}}</ref>
* परफेक्ट कंप्रेस<ref>{{cite web|url=http://moises-studios.com/?q=PerfectCompress |title=परफेक्टकंप्रेस आधिकारिक वेबसाइट|publisher=Moises-studios.110mb.com |date=2010-04-03 |access-date=2010-05-19}}</ref>एक कंप्रेशन सॉफ्टवेयर है जिसमें यूसीए (अल्ट्रा कंप्रेस्ड आर्काइव) की सुविधा है। कंप्रेशन  प्रारूप जिसमें पी.ए.क्यू.8PX v42 से v65 सम्मिलित है और जो अब डिफ़ॉल्ट UCA कंप्रेसर के रूप में पी.ए.क्यू.8PF, पी.ए.क्यू.8KX, या पी.ए.क्यू.8PXPRE का उपयोग कर सकता है। इसके अतिरिक्त , परफेक्टकंप्रेस फ़ाइलों को पी.ए.क्यू.8PX v42 से v67, और Zपी.ए.क्यू. में कंप्रेस कर सकता है, और वर्जन 6.0 के अनुसार, फ़ाइलों को Lपी.ए.क्यू. और पी.ए.क्यू.8PF बीटा 1 से बीटा 3 में कंप्रेस कर सकता है। परफेक्टकंप्रेस v6.10 ने वर्तमान ही में जारी पी.ए.क्यू.8PXPRE के लिए समर्थन कंप्रेशन  पेश किया है। परफेक्टकंप्रेस 6.12 पी.ए.क्यू.8KX श्रृंखला के लिए समर्थन प्रस्तुत करता है।<ref>{{cite web|url=http://www.facebook.com/pages/PerfectCompress/224694115431 |title=परफेक्टकंप्रेस आधिकारिक फेसबुक पेज|publisher=Facebook.com |access-date=2010-05-19}}</ref>
* फ्रंटपीएक्यू, पीएक्यू के लिए छोटा गुई। नवीनतम वर्जन फ्रंटपी.ए.क्यू. v8 है जो पी.ए.क्यू.8PX, पी.ए.क्यू.8PF और FP8 को सपोर्ट करता है। सॉफ़्टवेयर अब अपडेट नहीं किया गया है और उपयोगकर्ताओं को पी.ए.क्यू.Compress का उपयोग करने के लिए प्रोत्साहित किया जाता है, जो नवीनतम पी.ए.क्यू. रिलीज़ को लागू करता है।<ref>{{Cite web|url=https://encode.su/threads/453-FrontPAQ-GUI-frontend-for-PAQ8PF-and-PAQ8PX?p=58940&viewfull=1#post58940|title=FrontPAQ - GUI frontend for PAQ8PF and PAQ8PX|website=encode.su|access-date=2019-07-26}}</ref>
* फ्रंटपीएक्यू, पीएक्यू के लिए छोटा गुई। नवीनतम वर्जन फ्रंटपी.ए.क्यू. v8 है जो पी.ए.क्यू.8PX, पी.ए.क्यू.8PF और FP8 को सपोर्ट करता है। सॉफ़्टवेयर अब अपडेट नहीं किया गया है और उपयोगकर्ताओं को पी.ए.क्यू.Compress का उपयोग करने के लिए प्रोत्साहित किया जाता है, जो नवीनतम पी.ए.क्यू. रिलीज़ को लागू करता है।<ref>{{Cite web|url=https://encode.su/threads/453-FrontPAQ-GUI-frontend-for-PAQ8PF-and-PAQ8PX?p=58940&viewfull=1#post58940|title=FrontPAQ - GUI frontend for PAQ8PF and PAQ8PX|website=encode.su|access-date=2019-07-26}}</ref>



Revision as of 08:30, 13 December 2023

पी.ए.क्यू.8O का नमूना सत्र

पी.ए.क्यू. लॉसलेस डेटा कंप्रेशन अभिलेखों की श्रृंखला है जो सहयोगात्मक विकास के माध्यम से कंप्रेशन अनुपात को मापने वाले अनेक बेंचमार्क पर शीर्ष रैंकिंग तक पहुंच गई है (चूँकि गति और मेमोरी उपयोग की मूल्य पर)। पीएक्यू के विशिष्ट वर्जनो ने हटर पुरस्कार और कैलगरी चुनौती जीता है।[1] पीएक्यू जीएनयू जनरल पब्लिक लाइसेंस के अनुसार वितरित मुफ्त सॉफ्टवेयर है।[2]


एल्गोरिदम

पी.ए.क्यू. संदर्भ मिश्रण एल्गोरिथ्म का उपयोग करता है। संदर्भ मिश्रण आंशिक मिलान (पीपीएम) द्वारा पूर्वानुमान से संबंधित है जिसमें कंप्रेसर को भविष्यवक्ता और अंकगणितीय कोडर में विभाजित किया गया है, किन्तु इसमें भिन्नता है कि अगले-प्रतीक पूर्वानुमान की गणना बड़ी संख्या में मॉडल से संभाव्यता अनुमानों के भारित संयोजन का उपयोग करके की जाती है। विभिन्न सन्दर्भों पर आधारित पीपीएम के विपरीत, किसी संदर्भ को सन्निहित होने की आवश्यकता नहीं है। अधिकांश पी.ए.क्यू. वर्जन निम्नलिखित संदर्भों के लिए अगले-प्रतीक आँकड़े एकत्र करते हैं:

  • n -ग्राम ; संदर्भअनुमानित प्रतीक से पहले अंतिम n बाइट्स है (जैसा कि पीपीएम में है);
  • संपूर्ण-शब्द n-ग्राम, केस और गैर-वर्णमाला वर्णों को अनदेखा करना (टेक्स्ट फ़ाइलों में उपयोगी);
  • विरल संदर्भ, उदाहरण के लिए, अनुमानित प्रतीक से पहले के दूसरे और चौथे बाइट्स (कुछ बाइनरी प्रारूपों में उपयोगी);
  • एनालॉग संदर्भ, जिसमें पिछले 8- या 16-बिट शब्दों के उच्च-क्रम बिट्स सम्मिलित हैं (मल्टीमीडिया फ़ाइलों के लिए उपयोगी);
  • द्वि-आयामी संदर्भ (छवियों, तालिकाओं और स्प्रेडशीट के लिए उपयोगी); पंक्ति की लंबाई दोहराए जाने वाले बाइट पैटर्न की स्ट्राइड लंबाई ज्ञात करके निर्धारित की जाती है;
  • विशेष मॉडल, जैसे x86 निष्पादन योग्य, विंडोज़ बिटमैप , टीआईएफएफ, या जेपीईजी छवियां; ये मॉडल केवल तभी सक्रिय होते हैं जब विशेष फ़ाइल प्रकार का पता लगाया जाता है।

सभी पी.ए.क्यू. वर्जन समय में बिट की पूर्वानुमान करते हैं और कंप्रेस करते हैं, किन्तु मॉडल के विवरण और पूर्वानुमानो को संयुक्त और पोस्टप्रोसेस करने के विधियों में भिन्नता होती है। एक बार जब अगली-बिट संभावना निर्धारित हो जाती है, तो इसे अंकगणितीय कोडिंग द्वारा एन्कोड किया जाता है। वर्जन के आधार पर पूर्वानुमानो के संयोजन की तीन विधियाँ हैं:

  • पी.ए.क्यू.1 से पी.ए.क्यू.3 तक, प्रत्येक पूर्वानुमान को बिट गणना की एक जोड़ी के रूप में दर्शाया जाता है। इन गणनाओं को भारित योग द्वारा संयोजित किया जाता है, जिसमें लंबे संदर्भों को अधिक महत्व दिया जाता है।
  • पी.ए.क्यू.4 से पी.ए.क्यू.6 में, पूर्वानुमानों को पहले की तरह संयोजित किया जाता है, किन्तु प्रत्येक मॉडल को दिए गए भार को अधिक स्पष्ट मॉडल के पक्ष में समायोजित किया जाता है।
  • पी.ए.क्यू.7 और पश्चात् में, प्रत्येक मॉडल गिनती की जोड़ी के अतिरिक्त संभावना को आउटपुट करता है। संभावनाओं को आर्टिफिशल न्यूरल नेटवर्क का उपयोग करके संयोजित किया जाता है।

पी.ए.क्यू.1एसएसई और पश्चात् के वर्जन द्वितीयक प्रतीक अनुमान (एसएसई) का उपयोग करके पूर्वानुमान को पोस्टप्रोसेस करते हैं। किसी तालिका में नई पूर्वानुमान देखने के लिए संयुक्त पूर्वानुमान और छोटे संदर्भ का उपयोग किया जाता है। बिट एन्कोड होने के पश्चात् , पूर्वानुमान त्रुटि को कम करने के लिए तालिका प्रविष्टि को समायोजित किया जाता है। एसएसई चरणों को विभिन्न संदर्भों के साथ पाइपलाइन किया जा सकता है या औसत आउटपुट के साथ समानांतर में गणना की जा सकती है।

अंकगणित कोडिंग

एक स्ट्रिंग s को सबसे छोटी बाइट स्ट्रिंग में कंप्रेस किया जाता है जो [0, 1] रेंज में बेस-256 बिग-एंडियन नंबर x का प्रतिनिधित्व करता है जैसे कि P(r < s) ≤ x < P(r ≤ s), जहां P(r < s) संभावना है कि एक रैंडम स्ट्रिंग r जिसकी लंबाई s के समान है, शब्दकोष की दृष्टि से s से कम होगी। ऐसा x खोजना सदैव संभव है कि x की लंबाई शैनन सीमा, −log2P(r = s) बिट्स से अधिक से अधिक एक बाइट अधिक हो। एस की लंबाई संग्रह शीर्षलेख में संग्रहीत है।

पी.ए.क्यू. में अंकगणित कोडिंग प्रत्येक पूर्वानुमान के लिए x पर निचली और ऊपरी सीमा को बनाए रखते हुए कार्यान्वित की जाती है, प्रारंभ में [0, 1]। प्रत्येक पूर्वानुमान के पश्चात् , वर्तमान सीमा को P(0) और P(1) के अनुपात में दो भागों में विभाजित किया जाता है, संभावना है कि s का अगला बिट क्रमशः 0 या 1 होगा, s के पिछले बिट्स को देखते हुए। फिर अगली बिट को नई श्रेणी के लिए संबंधित उपश्रेणी का चयन करके एन्कोड किया जाता है।

संख्या x को बिट पूर्वानुमानो की समान श्रृंखला बनाकर वापस स्ट्रिंग s में विघटित किया जाता है (चूंकि s के पिछले बिट्स ज्ञात हैं)। कंप्रेशन के साथ सीमा को विभाजित किया गया है। जो कि x वाला भाग नई श्रेणी बन जाता है, और संबंधित बिट को s से जोड़ दिया जाता है।

पी.ए.क्यू. में, सीमा की निचली और ऊपरी सीमा को 3 भागों में दर्शाया गया है। सबसे महत्वपूर्ण आधार-256 अंक समान हैं, इसलिए उन्हें x के अग्रणी बाइट्स के रूप में लिखा जा सकता है। अगले 4 बाइट्स को मेमोरी में रखा जाता है, जिससे प्रमुख बाइट अलग हो। अनुगामी बिट्स को निचली सीमा के लिए सभी शून्य और ऊपरी सीमा के लिए सभी शून्य माना जाता है। निचली सीमा से और बाइट लिखकर कंप्रेशन समाप्त किया जाता है।

अनुकूली मॉडल भार

पी.ए.क्यू.6 के माध्यम से पी.ए.क्यू. वर्जनो में, प्रत्येक मॉडल गिनती की एक जोड़ी, , शून्य बिट्स की गिनती, और , 1 बिट्स की गिनती के लिए अलग-अलग संदर्भों का एक सेट मैप करता है। वर्तमान के इतिहास का पक्ष लेने के लिए, विपरीत बिट देखे जाने पर 2 से अधिक की आधी गिनती को छोड़ दिया जाता है। उदाहरण के लिए, यदि किसी संदर्भ से जुड़ी वर्तमान स्थिति है और 1 देखा जाता है, तो गिनती (7, 4) में अपडेट की जाती है।

एक बिट को अंकगणितीय रूप से उसकी संभाव्यता के आनुपातिक स्थान के साथ कोडित किया जाता है, या तो P(1) या P(0) = 1 - P(1)। संभावनाओं की गणना 0 और 1 की गणना के भारित योग द्वारा की जाती है:

    • S0 = Σi wi n0i,
    • S1 = Σi wi n1i,
    • S = S0 + S1,
    • P(0) = S0 / S,
    • P(1) = S1 / S,

जहां wi i-वें मॉडल का वजन है। पी.ए.क्यू.3 के माध्यम से, वजन तय किया गया और तदर्थ विधियों से सेट किया गया। (ऑर्डर-n संदर्भों का वजन n2 था।) पी.ए.क्यू.4 से प्रारंभ करते हुए, वजन को उस दिशा में अनुकूल रूप से समायोजित किया गया था जो समान संदर्भ सेट में भविष्य की त्रुटियों को कम करेगा। यदि कोड किया जाने वाला बिट y है, तो वजन समायोजन है:


    • ni = n0i + n1i,
    • त्रुटि = y – P(1),
    • wiwi + [(S n1iS1 ni) / (S0 S1)] त्रुटि.

न्यूरल-नेटवर्क मिश्रण

पी.ए.क्यू.7 से प्रारंभ होकर, प्रत्येक मॉडल पूर्वानुमान आउटपुट करता है (गिनती की जोड़ी के अतिरिक्त )। ये पूर्वानुमान लॉजिस्टिक डोमेन में औसत हैं:

  • xi = खिंचाव(Pi(1)),
  • P(1) = स्क्वैश(Σi wi xi),

जहां P(1) संभावना है कि अगला बिट 1, P होगाi(1) i -वें मॉडल द्वारा अनुमानित संभावना है, और

  • खिंचाव(x) = ln(x / (1 − x)),
  • स्क्वैश(x) = 1 / (1 + ex) (खिंचाव का व्युत्क्रम)।

प्रत्येक पूर्वानुमान के पश्चात् , कोडिंग कास्ट को कम करने के लिए वजन को समायोजित करके मॉडल को अपडेट किया जाता है:

    • wiwi + η xi (y − P(1)),


जहां η सीखने की दर है (समान्य रूप से 0.002 से 0.01), y अनुमानित बिट है, और (y − P(1)) पूर्वानुमान त्रुटि है। वेट अपडेट एल्गोरिदम बैकप्रॉपैगेशन से अलग है जिसमें P(1)P(0) शब्द हटा दिए जाते हैं। ऐसा इसलिए है क्योंकि न्यूरल नेटवर्क का लक्ष्य कोडिंग कास्ट को कम करना है, न कि मूल माध्य वर्ग त्रुटि है।

पीएक्यू के अधिकांश संस्करण न्यूरल नेटवर्क के लिए वजन के सेट के बीच चयन करने के लिए एक छोटे संदर्भ का उपयोग करते हैं। कुछ संस्करण एकाधिक नेटवर्क का उपयोग करते हैं जिनके आउटपुट एसएसई चरणों से पहले एक और नेटवर्क के साथ संयुक्त होते हैं। इसके अतिरिक्त , प्रत्येक इनपुट पूर्वानुमान के लिए कई इनपुट हो सकते हैं जो स्ट्रेच Pi(1) के अतिरिक्त (P(1)) के गैर-रेखीय कार्य हैं।

संदर्भ मॉडलिंग

प्रत्येक मॉडल एस के ज्ञात बिट्स को संदर्भों के एक सेट में विभाजित करता है और प्रत्येक संदर्भ को 8-बिट स्थिति द्वारा दर्शाए गए बिट इतिहास में मैप करता है। पी.ए.क्यू.6 के माध्यम से वर्जनो में, स्टेट काउंटरों की एक जोड़ी (n0, n1) का प्रतिनिधित्व करता है। पी.ए.क्यू.7 और बाद के वर्जनो में कुछ नियमो के अनुसार , स्थिति अंतिम बिट या संपूर्ण अनुक्रम के मूल्य का भी प्रतिनिधित्व करती है। प्रत्येक मॉडल के लिए 256-प्रविष्टि तालिका का उपयोग करके स्टेट को संभावनाओं के आधार पर मैप किया जाता है। मॉडल द्वारा पूर्वानुमान के बाद, पूर्वानुमान त्रुटि को कम करने के लिए तालिका प्रविष्टि को थोड़ा (समान्य रूप से 0.4%) समायोजित किया जाता है।

सभी पी.ए.क्यू.8 वर्जनो में, प्रतिनिधित्व योग्य स्थितियाँ इस प्रकार हैं:

  • 4 बिट तक के लिए स्पष्ट बिट अनुक्रम।
  • 5 से 15 बिट्स के अनुक्रमों के लिए गिनती की जोड़ी और नवीनतम बिट का संकेतक।
  • 16 से 41 बिट्स के अनुक्रमों के लिए गिनती की जोड़ी।

स्टेट की संख्या 256 तक रखने के लिए, प्रतिनिधित्व योग्य गणनाओं पर निम्नलिखित सीमाएँ रखी गई हैं: (41, 0), (40, 1), (12, 2), (5, 3), (4, 4), ( 3, 5), (2, 12), (1, 40), (0, 41)। यदि कोई गिनती इस सीमा से अधिक हो जाती है, तो अगला स्टेट n0 से n1 के समान अनुपात वाला चुना जाता है। इस प्रकार, यदि वर्तमान स्थिति (n0 = 4, n1 = 4, अंतिम बिट = 0) है और 1 देखा जाता है, तो नई स्थिति (n0 = 4, n1 = 5, अंतिम बिट = 1) नहीं है। चूँकि , यह (n0 = 3, n1 = 4, अंतिम बिट = 1) है।

अधिकांश संदर्भ मॉडल हैश तालिकाओं के रूप में कार्यान्वित किए जाते हैं। कुछ छोटे संदर्भों को प्रत्यक्ष लुकअप तालिकाओं के रूप में कार्यान्वित किया जाता है।