> golomb | इष्टतम | संपीड़न <
// गोलोम्ब कोडिंग - लचीले भाजक के साथ पूर्णांकों का इष्टतम संपीड़न
>> विशेषताएँ
लचीला भाजक
अधिकतम संपीड़न दक्षता के लिए कोई भी M मान चुनें।
ट्रंकेटेड बाइनरी
शेष कोड करने के लिए न्यूनतम बिट्स का उपयोग करता है।
सामान्य उपयोग
किसी भी गैर-ऋणात्मक पूर्णांक वितरण के साथ काम करता है।
>> तकनीकी जानकारी
गोलोम्ब कोडिंग कैसे काम करती है
गोलोम्ब कोडिंग प्रत्येक पूर्णांक n को भाजक M से भाग देती है ताकि भागफल q और शेष r प्राप्त हो सके। भागफल को यूनरी में और शेष को ट्रंकेटेड बाइनरी में कोड किया जाता है, जो M संभावित मानों के लिए आवश्यक न्यूनतम बिट्स का उपयोग करता है। यह p = 1/M पैरामीटर वाली ज्यामितीय वितरणों के लिए एक इष्टतम कोड बनाता है।
गोलोम्ब कोडिंग उदाहरण (M=5)
M=5, b=⌈log₂(5)⌉=3, c=2³-5=3 0 → q=0, r=0 → 0|00 → 000 (r<3 के लिए 2 बिट) 1 → q=0, r=1 → 0|01 → 001 (r<3 के लिए 2 बिट) 2 → q=0, r=2 → 0|10 → 010 (r<3 के लिए 2 बिट) 3 → q=0, r=3 → 0|110 → 0110 (r≥3 के लिए 3 बिट) 4 → q=0, r=4 → 0|111 → 0111 (r≥3 के लिए 3 बिट) 5 → q=1, r=0 → 10|00 → 1000 6 → q=1, r=1 → 10|01 → 1001 7 → q=1, r=2 → 10|10 → 1010 ट्रंकेटेड बाइनरी: r<3 के लिए 2 बिट, r≥3 के लिए 3 बिट
गोलोम्ब कोडिंग क्यों उपयोग करें
- ज्यामितीय वितरणों के लिए इष्टतम
- लचीला M पैरामीटर
- न्यूनतम बिट उपयोग
- सरल कार्यान्वयन
- सिद्ध इष्टतमता
>> अक्सर पूछे जाने वाले प्रश्न
गोलोम्ब कोडिंग क्या है?
गोलोम्ब कोडिंग ज्यामितीय वितरणों के लिए एक इष्टतम, प्रीफ़िक्स-मुक्त, चर-लंबाई कोड है। यह पूर्णांकों को समायोज्य पैरामीटर M से भाग देकर विभाजित करता है, भागफल को यूनरी में और शेष को ट्रंकेटेड बाइनरी में कोड करता है, जिससे P(n) = (1-p)^n × p वाले डेटा के लिए इष्टतम संपीड़न प्राप्त होता है।
M पैरामीटर कैसे चुनें?
इष्टतम M आपके डेटा के ज्यामितीय पैरामीटर p पर निर्भर करता है। औसत μ वाले डेटा के लिए लगभग M ≈ μ + 1 लिया जा सकता है। p पैरामीटर वाली घातांकीय रूप से घटती संभावनाओं के लिए इष्टतम M = ⌈-1/log₂(1-p)⌉ होता है। अपने डेटा के लिए सबसे अच्छा M खोजने के लिए विश्लेषण फ़ंक्शन का उपयोग करें।
ट्रंकेटेड बाइनरी कोडिंग क्या है?
ट्रंकेटेड बाइनरी कोडिंग M संभावित मानों में से किसी एक कोडित करते समय बिट्स की संख्या को न्यूनतम करती है। यदि M 2 की घात है तो मानक बाइनरी का उपयोग किया जाता है। अन्यथा कुछ मान ⌊log₂M⌋ बिट और अन्य ⌈log₂M⌉ बिट उपयोग करते हैं, जिससे न्यूनतम औसत लंबाई के साथ अद्वितीय डिकोडिंग सुनिश्चित होती है।
गोलोम्ब कोडिंग कहाँ उपयोग होती है?
गोलोम्ब कोडिंग JPEG-LS छवि संपीड़न, H.264 वीडियो कोडिंग (Exp-Golomb के रूप में) और लॉसलेस ऑडियो फ़ॉर्मैट्स में उपयोग होती है। यह रन-लेंथ कोडिंग, भविष्यवाणी के बाद शेषों के कोडिंग और किसी भी ज्यामितीय या घातांकीय वितरण वाले डेटा के लिए आदर्श है।