कोड करें | डिकोड करें | अनुकूलित करें

> golomb | इष्टतम | संपीड़न <

// गोलोम्ब कोडिंग - लचीले भाजक के साथ पूर्णांकों का इष्टतम संपीड़न

0 वर्ण
0 वर्ण

>> विशेषताएँ

[इष्टतम]

लचीला भाजक

अधिकतम संपीड़न दक्षता के लिए कोई भी 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 के रूप में) और लॉसलेस ऑडियो फ़ॉर्मैट्स में उपयोग होती है। यह रन-लेंथ कोडिंग, भविष्यवाणी के बाद शेषों के कोडिंग और किसी भी ज्यामितीय या घातांकीय वितरण वाले डेटा के लिए आदर्श है।