एलियास गामा कोडिंग: Difference between revisions
(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> कोड या एलियास गामा कोड [[पीटर एलियास]] द्वारा | |||
एलियास <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</math> शून्य बिट्स लिखें | ||
# | # <math>x</math> के बाइनरी रूप को जोड़ें, एक <math>N+1-\text{bit}</math> बाइनरी संख्या। | ||
उसी प्रक्रिया को व्यक्त करने का एक समकक्ष तरीका: | उसी प्रक्रिया को व्यक्त करने का एक समकक्ष तरीका: | ||
# | # यूनरी में <math>N</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}} | |||
कोड शुरू होता है ( | कोड शुरू होता है (कोड के लिए निहित संभाव्यता वितरण स्पष्टता के लिए जोड़ा जाता है): | ||
{| class=wikitable | {| class=wikitable | ||
Line 64: | Line 66: | ||
| 17 = 2<sup>4</sup> + ''1'' || {{nowrap|<code>1 0001</code>}} || {{nowrap|<code>0000 1 0001</code>}} || 1/512 | | 17 = 2<sup>4</sup> + ''1'' || {{nowrap|<code>1 0001</code>}} || {{nowrap|<code>0000 1 0001</code>}} || 1/512 | ||
|} | |} | ||
==डिकोडिंग== | ==डिकोडिंग== | ||
एलियास गामा-कोडित पूर्णांक को डीकोड करने के लिए: | एलियास गामा-कोडित पूर्णांक को डीकोड करने के लिए: | ||
#स्ट्रीम से 0 को | #स्ट्रीम से 0 को पढ़ें और गिनें जब तक आप पहले 1 तक नहीं पहुंच जाते। शून्य की इस गिनती को N कहते हैं। | ||
#2 के मान के साथ, | #2<sup>N</sup> के मान के साथ, पूर्णांक के पहले अंक तक पहुंचने वाले अंक को ध्यान में रखते हुए, पूर्णांक के शेष N अंकों को पढ़ें। | ||
==उपयोग== | ==<s>उपयोग</s>== | ||
गामा कोडिंग का उपयोग उन अनुप्रयोगों में किया जाता है जहां सबसे बड़ा एन्कोडेड मान समय से पहले ज्ञात नहीं होता है, या डेटा संपीड़न डेटा में जिसमें छोटे मान बड़े मानों की तुलना में अधिक बार होते हैं। | गामा कोडिंग का उपयोग उन अनुप्रयोगों में किया जाता है जहां सबसे बड़ा एन्कोडेड मान समय से पहले ज्ञात नहीं होता है, या डेटा संपीड़न डेटा में जिसमें छोटे मान बड़े मानों की तुलना में अधिक बार होते हैं। | ||
Revision as of 18:57, 6 July 2023
एलियास कोड या एलियास गामा कोड पीटर एलियास द्वारा विकसितएक सार्वभौमिक कोड एन्कोडिंग सकारात्मक पूर्णांक है।[1]: 197, 199 इसका उपयोग सबसे अधिक तब किया जाता है जब पूर्णांक कोडिंग होती है जिनके ऊपरी-बाध्य को पहले से निर्धारित नहीं किया जा सकता है।
एनकोडिंग
किसी संख्या को x ≥ 1 कोड करने के लिए:
- मान लीजिए कि इसमें 2 की उच्चतम शक्ति है, इसलिए 2एन ≤ x <2एन+1 है।
- फिर शून्य बिट्स लिखें
- के बाइनरी रूप को जोड़ें, एक बाइनरी संख्या।
उसी प्रक्रिया को व्यक्त करने का एक समकक्ष तरीका:
- यूनरी में को एनकोड करें; यही है, जैसे कि शून्य के बाद एक है।
- के शेष द्विआधारी अंकों को के इस प्रतिनिधित्व के लिए में जोड़ें।
एक संख्या का प्रतिनिधित्व करने के लिए , इलियास गामा (γ) बिट्स का उपयोग करता है। [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 |
डिकोडिंग
एलियास गामा-कोडित पूर्णांक को डीकोड करने के लिए:
- स्ट्रीम से 0 को पढ़ें और गिनें जब तक आप पहले 1 तक नहीं पहुंच जाते। शून्य की इस गिनती को N कहते हैं।
- 2N के मान के साथ, पूर्णांक के पहले अंक तक पहुंचने वाले अंक को ध्यान में रखते हुए, पूर्णांक के शेष N अंकों को पढ़ें।
उपयोग
गामा कोडिंग का उपयोग उन अनुप्रयोगों में किया जाता है जहां सबसे बड़ा एन्कोडेड मान समय से पहले ज्ञात नहीं होता है, या डेटा संपीड़न डेटा में जिसमें छोटे मान बड़े मानों की तुलना में अधिक बार होते हैं।
गामा कोडिंग इलियास डेल्टा कोड में एक बिल्डिंग ब्लॉक है।
सामान्यीकरण
गामा कोडिंग शून्य या नकारात्मक पूर्णांकों को कोड नहीं करती है। शून्य को संभालने का एक तरीका कोडिंग से पहले 1 जोड़ना और फिर डिकोडिंग के बाद 1 घटाना है। दूसरा तरीका यह है कि प्रत्येक गैर-शून्य कोड के पहले एक 1 लगाएं और फिर शून्य को एक 0 के रूप में कोड करें।
सभी पूर्णांकों को कोड करने का एक तरीका एक आक्षेप स्थापित करना है, पूर्णांकों (0, −1, 1, −2, 2, −3, 3, ...) को (1, 2, 3, 4, 5, 6) में मैप करना है। , 7, ...) कोडिंग से पहले। सॉफ़्टवेयर में, यह गैर-नकारात्मक इनपुट को विषम आउटपुट में और नकारात्मक इनपुट को सम आउटपुट में मैप करके सबसे आसानी से किया जाता है, इसलिए सबसे कम महत्वपूर्ण बिट एक उलटा साइन बिट बन जाता है:
[[एक्सपोनेंशियल-गोलोम्ब कोडिंग]] गामा कोड को एक चापलूसी पावर-लॉ वितरण के साथ पूर्णांकों में सामान्यीकृत करती है, जैसे गोलोम्ब कोडिंग यूनरी कोड को सामान्यीकृत करती है।
इसमें संख्या को एक सकारात्मक भाजक, आमतौर पर 2 की घात, से विभाजित करना, भागफल से एक अधिक के लिए गामा कोड लिखना और शेष को एक साधारण बाइनरी कोड में लिखना शामिल है।
यह भी देखें
- एलियास डेल्टा कोडिंग|एलियास डेल्टा (δ) कोडिंग
- एलियास ओमेगा कोडिंग|एलियास ओमेगा (ω) कोडिंग
- पद (संख्या प्रारूप)
संदर्भ
- ↑ 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.
अग्रिम पठन
- Sayood, Khalid (2003). "Levenstein and Elias Gamma Codes". Lossless Compression Handbook. Elsevier. ISBN 978-0-12-620861-0.