एलियास गामा कोडिंग: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Universal encoding scheme for positive integers}} {{Use dmy dates|date=May 2019|cs1-dates=y}} {{Use list-defined references|date=January 2022}} एलि...")
 
No edit summary
Line 1: Line 1:
{{Short description|Universal encoding scheme for positive integers}}
{{Short description|Universal encoding scheme for positive integers}}
{{Use dmy dates|date=May 2019|cs1-dates=y}}
{{Use dmy dates|date=May 2019|cs1-dates=y}}
{{Use list-defined references|date=January 2022}}
{{Use list-defined references|date=January 2022}}
एलियास <math>\gamma</math> कोड या एलियास गामा कोड [[पीटर एलियास]] द्वारा विकसित सकारात्मक पूर्णांकों को एन्कोड करने वाला एक सार्वभौमिक कोड (डेटा संपीड़न) है।<ref name="Elias"/>{{rp|197, 199}} इसका उपयोग आमतौर पर उन पूर्णांकों को कोड करते समय किया जाता है जिनकी ऊपरी सीमा पहले से निर्धारित नहीं की जा सकती है।
 
एलियास <math>\gamma</math> कोड या एलियास गामा कोड [[पीटर एलियास]] द्वारा विकसितएक सार्वभौमिक कोड एन्कोडिंग सकारात्मक पूर्णांक है।<ref name="Elias" />{{rp|197, 199}} इसका उपयोग सबसे अधिक तब किया जाता है जब पूर्णांक कोडिंग होती है जिनके ऊपरी-बाध्य को पहले से निर्धारित नहीं किया जा सकता है।


==एनकोडिंग==
==एनकोडिंग==


किसी [[संख्या]] को x ≥ 1 कोड करने के लिए:
किसी [[संख्या]] को x ≥ 1 कोड करने के लिए:
# होने देना <math>N = \lfloor \log_2 x \rfloor</math> इसमें 2 की उच्चतम शक्ति हो, इसलिए 2<sup>एन</sup> ≤ x <2<sup>एन+1</sup>.
# मान लीजिए कि <math>N = \lfloor \log_2 x \rfloor</math> इसमें 2 की उच्चतम शक्ति है, इसलिए 2<sup>एन</sup> ≤ x <2<sup>एन+1</sup> है।
# लिखें <math>N</math> फिर शून्य बिट्स
# फिर <math>N</math> शून्य बिट्स लिखें
# बाइनरी अंक प्रणाली प्रपत्र जोड़ें <math>x</math>, एक <math>N+1-\text{bit}</math> बाइनरी संख्या।
# <math>x</math> के बाइनरी  रूप को जोड़ें, एक <math>N+1-\text{bit}</math> बाइनरी संख्या।


उसी प्रक्रिया को व्यक्त करने का एक समकक्ष तरीका:
उसी प्रक्रिया को व्यक्त करने का एक समकक्ष तरीका:
# एनकोड <math>N</math> यूनरी अंक प्रणाली में; वह है, जैसे <math>N</math> शून्य के बाद एक आता है।
# यूनरी में <math>N</math> को एनकोड करें; यही है, जैसे कि <math>N</math> शून्य के बाद एक है।
# शेष जोड़ें <math>N</math> के द्विआधारी अंक <math>x</math> के इस प्रतिनिधित्व के लिए <math>N</math>.
# <math>x</math> के शेष <math>N</math> द्विआधारी अंकों को <math>N</math> के इस प्रतिनिधित्व के लिए में जोड़ें।


किसी संख्या का प्रतिनिधित्व करने के लिए <math>x</math>, इलियास गामा (γ) का उपयोग करें। <math>2 \lfloor \log_2(x) \rfloor + 1</math> बिट्स<ref name="Elias"/>{{rp|199}}
एक संख्या <math>x</math> का प्रतिनिधित्व करने के लिए , इलियास गामा (γ) <math>2 \lfloor \log_2(x) \rfloor + 1</math> बिट्स का उपयोग करता है। <ref name="Elias"/>{{rp|199}}


कोड शुरू होता है (स्पष्टता के लिए कोड के लिए निहित संभाव्यता वितरण जोड़ा जाता है):
कोड शुरू होता है (कोड के लिए निहित संभाव्यता वितरण स्पष्टता के लिए जोड़ा जाता है):


{| class=wikitable
{| class=wikitable
Line 64: Line 66:
| 17&nbsp;=&nbsp;2<sup>4</sup>&nbsp;+&nbsp;''1'' || {{nowrap|<code>1&thinsp;0001</code>}} || {{nowrap|<code>0000&thinsp;1&thinsp;0001</code>}} || 1/512
| 17&nbsp;=&nbsp;2<sup>4</sup>&nbsp;+&nbsp;''1'' || {{nowrap|<code>1&thinsp;0001</code>}} || {{nowrap|<code>0000&thinsp;1&thinsp;0001</code>}} || 1/512
|}
|}


==डिकोडिंग==
==डिकोडिंग==
एलियास गामा-कोडित पूर्णांक को डीकोड करने के लिए:
एलियास गामा-कोडित पूर्णांक को डीकोड करने के लिए:
#स्ट्रीम से 0 को तब तक पढ़ें और गिनें जब तक आप पहले 1 तक नहीं पहुंच जाते। शून्य की इस गिनती को N कहें।
#स्ट्रीम से 0 को पढ़ें और गिनें जब तक आप पहले 1 तक नहीं पहुंच जाते। शून्य की इस गिनती को N कहते हैं।
#2 के मान के साथ, जो पूर्णांक तक पहुंच गया था उसे पहला अंक मानते हुए<sup>N</sup>, पूर्णांक के शेष N अंक पढ़ें।
#2<sup>N</sup> के मान के साथ, पूर्णांक के पहले अंक तक पहुंचने वाले अंक को ध्यान में रखते हुए, पूर्णांक के शेष N अंकों को पढ़ें।


==उपयोग==
==<s>उपयोग</s>==
गामा कोडिंग का उपयोग उन अनुप्रयोगों में किया जाता है जहां सबसे बड़ा एन्कोडेड मान समय से पहले ज्ञात नहीं होता है, या डेटा संपीड़न डेटा में जिसमें छोटे मान बड़े मानों की तुलना में अधिक बार होते हैं।
गामा कोडिंग का उपयोग उन अनुप्रयोगों में किया जाता है जहां सबसे बड़ा एन्कोडेड मान समय से पहले ज्ञात नहीं होता है, या डेटा संपीड़न डेटा में जिसमें छोटे मान बड़े मानों की तुलना में अधिक बार होते हैं।



Revision as of 18:57, 6 July 2023

एलियास कोड या एलियास गामा कोड पीटर एलियास द्वारा विकसितएक सार्वभौमिक कोड एन्कोडिंग सकारात्मक पूर्णांक है।[1]: 197, 199  इसका उपयोग सबसे अधिक तब किया जाता है जब पूर्णांक कोडिंग होती है जिनके ऊपरी-बाध्य को पहले से निर्धारित नहीं किया जा सकता है।

एनकोडिंग

किसी संख्या को x ≥ 1 कोड करने के लिए:

  1. मान लीजिए कि इसमें 2 की उच्चतम शक्ति है, इसलिए 2एन ≤ x <2एन+1 है।
  2. फिर शून्य बिट्स लिखें
  3. के बाइनरी रूप को जोड़ें, एक बाइनरी संख्या।

उसी प्रक्रिया को व्यक्त करने का एक समकक्ष तरीका:

  1. यूनरी में को एनकोड करें; यही है, जैसे कि शून्य के बाद एक है।
  2. के शेष द्विआधारी अंकों को के इस प्रतिनिधित्व के लिए में जोड़ें।

एक संख्या का प्रतिनिधित्व करने के लिए , इलियास गामा (γ) बिट्स का उपयोग करता है। [1]: 199 

कोड शुरू होता है (कोड के लिए निहित संभाव्यता वितरण स्पष्टता के लिए जोड़ा जाता है):

Number Binary γ encoding Implied probability
1 = 20 + 0 1 1 1/2
2 = 21 + 0 1 0 0 1 0 1/8
3 = 21 + 1 1 1 0 1 1 1/8
4 = 22 + 0 1 00 00 1 00 1/32
5 = 22 + 1 1 01 00 1 01 1/32
6 = 22 + 2 1 10 00 1 10 1/32
7 = 22 + 3 1 11 00 1 11 1/32
8 = 23 + 0 1 000 000 1 000 1/128
9 = 23 + 1 1 001 000 1 001 1/128
10 = 23 + 2 1 010 000 1 010 1/128
11 = 23 + 3 1 011 000 1 011 1/128
12 = 23 + 4 1 100 000 1 100 1/128
13 = 23 + 5 1 101 000 1 101 1/128
14 = 23 + 6 1 110 000 1 110 1/128
15 = 23 + 7 1 111 000 1 111 1/128
16 = 24 + 0 1 0000 0000 1 0000 1/512
17 = 24 + 1 1 0001 0000 1 0001 1/512

डिकोडिंग

एलियास गामा-कोडित पूर्णांक को डीकोड करने के लिए:

  1. स्ट्रीम से 0 को पढ़ें और गिनें जब तक आप पहले 1 तक नहीं पहुंच जाते। शून्य की इस गिनती को N कहते हैं।
  2. 2N के मान के साथ, पूर्णांक के पहले अंक तक पहुंचने वाले अंक को ध्यान में रखते हुए, पूर्णांक के शेष N अंकों को पढ़ें।

उपयोग

गामा कोडिंग का उपयोग उन अनुप्रयोगों में किया जाता है जहां सबसे बड़ा एन्कोडेड मान समय से पहले ज्ञात नहीं होता है, या डेटा संपीड़न डेटा में जिसमें छोटे मान बड़े मानों की तुलना में अधिक बार होते हैं।

गामा कोडिंग इलियास डेल्टा कोड में एक बिल्डिंग ब्लॉक है।

सामान्यीकरण

गामा कोडिंग शून्य या नकारात्मक पूर्णांकों को कोड नहीं करती है। शून्य को संभालने का एक तरीका कोडिंग से पहले 1 जोड़ना और फिर डिकोडिंग के बाद 1 घटाना है। दूसरा तरीका यह है कि प्रत्येक गैर-शून्य कोड के पहले एक 1 लगाएं और फिर शून्य को एक 0 के रूप में कोड करें।

सभी पूर्णांकों को कोड करने का एक तरीका एक आक्षेप स्थापित करना है, पूर्णांकों (0, −1, 1, −2, 2, −3, 3, ...) को (1, 2, 3, 4, 5, 6) में मैप करना है। , 7, ...) कोडिंग से पहले। सॉफ़्टवेयर में, यह गैर-नकारात्मक इनपुट को विषम आउटपुट में और नकारात्मक इनपुट को सम आउटपुट में मैप करके सबसे आसानी से किया जाता है, इसलिए सबसे कम महत्वपूर्ण बिट एक उलटा साइन बिट बन जाता है:
[[एक्सपोनेंशियल-गोलोम्ब कोडिंग]] गामा कोड को एक चापलूसी पावर-लॉ वितरण के साथ पूर्णांकों में सामान्यीकृत करती है, जैसे गोलोम्ब कोडिंग यूनरी कोड को सामान्यीकृत करती है। इसमें संख्या को एक सकारात्मक भाजक, आमतौर पर 2 की घात, से विभाजित करना, भागफल से एक अधिक के लिए गामा कोड लिखना और शेष को एक साधारण बाइनरी कोड में लिखना शामिल है।

यह भी देखें

  • एलियास डेल्टा कोडिंग|एलियास डेल्टा (δ) कोडिंग
  • एलियास ओमेगा कोडिंग|एलियास ओमेगा (ω) कोडिंग
  • पद (संख्या प्रारूप)

संदर्भ

  1. 1.0 1.1 Elias, Peter (March 1975). "Universal codeword sets and representations of the integers". IEEE Transactions on Information Theory. 21 (2): 194–203. doi:10.1109/tit.1975.1055349.


अग्रिम पठन