मैं डेटा संपीड़न एल्गोरिदम और डेटा संपीड़न के लिए सैद्धांतिक सीमा के बारे में पढ़ रहा था। हाल ही में मुझे "कॉम्बिनेटरियल एन्ट्रॉपी एन्कोडिंग" नामक एक संपीड़न विधि का सामना करना पड़ा, इस पद्धति का मुख्य विचार फ़ाइल को फ़ाइल में प्रस्तुत किए गए वर्णों, उनकी आवृत्तियों और फ़ाइल द्वारा प्रस्तुत इन वर्ण क्रमचय के सूचकांक के रूप में दर्ज करना है।
ये दस्तावेज़ इस विधि को समझाने में मदद कर सकते हैं:
https://arxiv.org/pdf/1703.08127
http://www-video.eecs.berkeley.edu/papers/vdai/dcc2003.pdf
https://www.thinkmind.org/download.php?articleid=ctrq_2014_2_10_70019
हालाँकि, पहले दस्तावेज़ में मैंने पढ़ा है कि इस पद्धति का उपयोग करके वे शैनन की सीमा से कुछ पाठ कम कर सकते हैं (वे वर्णों की आवृत्ति को बचाने के लिए आवश्यक स्थान और मेटा को बचाने के लिए आवश्यक स्थान पर विचार नहीं करते थे फ़ाइल का डेटा)। मैंने इसके बारे में सोचा और मैंने पाया कि यह विधि बहुत छोटी फ़ाइलों के लिए बहुत कुशल नहीं होगी, लेकिन दूसरी ओर यह बड़ी फ़ाइलों के साथ अच्छी तरह से काम कर सकती है। वास्तव में मैं पूरी तरह से इस एल्गोरिथ्म या शैनन सीमा को नहीं समझता, मुझे पता है कि यह प्रायिकता के पारस्परिक के द्वारा गुणा किए गए प्रत्येक वर्ण की संभावना का योग है ।
इसलिए मेरे कुछ प्रश्न हैं:
क्या यह संपीड़न विधि वास्तव में शैनन सीमा से छोटी फ़ाइलों को संपीड़ित करती है?
क्या कोई संपीड़न एल्गोरिदम है जो शैनन सीमा से कम फ़ाइलों को संपीड़ित करता है (इस प्रश्न का उत्तर जहां तक मुझे पता है कि नहीं है)?
क्या शैनन सीमा से छोटी फ़ाइलों को संपीड़ित करने वाली एक संपीड़न विधि मौजूद हो सकती है?
यदि कॉम्बीनेटरियल एन्कोडिंग वास्तव में शैनन सीमा से परे फ़ाइलों को संपीड़ित करता है, तो क्या फ़ाइल को बार-बार संपीड़ित करना संभव नहीं है जब तक कि हम उस फ़ाइल के आकार तक नहीं पहुंचते जो हम चाहते हैं?