एलियास गामा कोडिंग: 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 |
||
(5 intermediate revisions by 3 users not shown) | |||
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 अंकों को पढ़ें। | ||
==उपयोग== | ==उपयोग== | ||
गामा कोडिंग का उपयोग उन अनुप्रयोगों में किया जाता है जहां सबसे बड़ा एन्कोडेड मान समय से पहले ज्ञात नहीं होता है, या डेटा संपीड़न | गामा कोडिंग का उपयोग उन अनुप्रयोगों में किया जाता है जहां सबसे बड़ा एन्कोडेड मान समय से पहले ज्ञात नहीं होता है, या डेटा को संपीड़न करने के लिए जिसमें छोटे मान बड़े मूल्यों की तुलना में बहुत अधिक होते हैं। | ||
गामा कोडिंग [[इलियास डेल्टा कोड]] में एक बिल्डिंग ब्लॉक है। | गामा कोडिंग [[इलियास डेल्टा कोड|एलियास डेल्टा कोड]] में एक बिल्डिंग ब्लॉक है। | ||
== सामान्यीकरण ==<!-- This section is linked from [[Elias delta coding]] --> | == सामान्यीकरण ==<!-- This section is linked from [[Elias delta coding]] --> | ||
{{See also|Variable-length quantity#Zigzag encoding}} | {{See also|Variable-length quantity#Zigzag encoding}} | ||
गामा कोडिंग शून्य या नकारात्मक पूर्णांकों | गामा कोडिंग शून्य या नकारात्मक पूर्णांकों कोड नहीं करती है। शून्य को संभालने का एक तरीका कोडिंग से पहले 1 जोड़ना और फिर डिकोडिंग के बाद 1 घटाना है। एक अन्य तरीका प्रत्येक नॉनज़ीरो कोड को 1 के साथ उपसर्ग करना है और फिर कोड शून्य को एकल 0 के रूप में जोड़ना है। | ||
शून्य को संभालने का एक तरीका कोडिंग से पहले 1 जोड़ना और फिर डिकोडिंग के बाद 1 घटाना है। | |||
सभी पूर्णांकों को कोड करने का एक तरीका | सभी पूर्णांकों को कोड करने का एक तरीका कोडिंग से पहले (1, 2, 3, 4, 5, 6, 7, ...) के लिए एक बीज, मानचित्रण पूर्णांक (0, −1, 1, −2, 2, −3, 3, ...) सेट करना है। सॉफ़्टवेयर में, यह गैर-नकारात्मक इनपुट को विषम आउटपुट में मैप करके और यहां तक कि आउटपुट में नकारात्मक इनपुट को मैप करके सबसे आसानी से किया जाता है, इसलिए कम से कम महत्वपूर्ण बिट एक उल्टा संकेत बिट बन जाता है:<br/><math>\begin{cases} | ||
<math>\begin{cases} | |||
x \mapsto 2x+1 & \mathrm{when~} x \geq 0 \\ | x \mapsto 2x+1 & \mathrm{when~} x \geq 0 \\ | ||
x \mapsto -2x & \mathrm{when~} x < 0 \\ | x \mapsto -2x & \mathrm{when~} x < 0 \\ | ||
\end{cases}</math> | \end{cases}</math> | ||
इसमें संख्या को एक सकारात्मक | घातीय-[[गोलोम्ब कोडिंग]] गामा कोड को एक चापलूसी पावर-लॉ वितरण के साथ पूर्णांकों में सामान्यीकृत करती है, जैसे गोलोम्ब कोडिंग यूनरी कोड को सामान्यीकृत करती है। इसमें संख्या को एक सकारात्मक विभाजक से विभाजित करना सम्मिलित है, आमतौर पर 2 की शक्ति, भागफल से एक अधिक के लिए गामा कोड लिखना और शेष को एक साधारण बाइनरी कोड में लिखना। | ||
==यह भी देखें== | ==यह भी देखें== | ||
* | * एलियास डेल्टा (δ) कोडिंग | ||
* एलियास ओमेगा | * एलियास ओमेगा (ω) कोडिंग | ||
* [[पद (संख्या प्रारूप)]] | * [[पद (संख्या प्रारूप)|सकारात्मक (संख्या प्रारूप)]] | ||
==संदर्भ== | ==संदर्भ== | ||
Line 106: | Line 104: | ||
{{Compression Methods}} | {{Compression Methods}} | ||
{{DEFAULTSORT:Elias Gamma Coding}} | {{DEFAULTSORT:Elias Gamma Coding}} | ||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page|Elias Gamma Coding]] | ||
[[Category:Created On 03/07/2023]] | [[Category:Collapse templates|Elias Gamma Coding]] | ||
[[Category:Created On 03/07/2023|Elias Gamma Coding]] | |||
[[Category:Data compression|Elias Gamma Coding]] | |||
[[Category:Lua-based templates|Elias Gamma Coding]] | |||
[[Category:Machine Translated Page|Elias Gamma Coding]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists|Elias Gamma Coding]] | |||
[[Category:Pages with script errors|Elias Gamma Coding]] | |||
[[Category:Sidebars with styles needing conversion|Elias Gamma Coding]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready|Elias Gamma Coding]] | |||
[[Category:Templates generating microformats|Elias Gamma Coding]] | |||
[[Category:Templates that add a tracking category|Elias Gamma Coding]] | |||
[[Category:Templates that are not mobile friendly|Elias Gamma Coding]] | |||
[[Category:Templates that generate short descriptions|Elias Gamma Coding]] | |||
[[Category:Templates using TemplateData|Elias Gamma Coding]] | |||
[[Category:Use dmy dates from May 2019|Elias Gamma Coding]] | |||
[[Category:Use list-defined references from January 2022|Elias Gamma Coding]] | |||
[[Category:Wikipedia metatemplates|Elias Gamma Coding]] | |||
[[Category:अंक प्रणाली|Elias Gamma Coding]] | |||
[[Category:उदाहरण सी कोड वाले लेख|Elias Gamma Coding]] | |||
[[Category:दोषरहित संपीड़न एल्गोरिदम|Elias Gamma Coding]] |
Latest revision as of 11:55, 11 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 के रूप में जोड़ना है।
सभी पूर्णांकों को कोड करने का एक तरीका कोडिंग से पहले (1, 2, 3, 4, 5, 6, 7, ...) के लिए एक बीज, मानचित्रण पूर्णांक (0, −1, 1, −2, 2, −3, 3, ...) सेट करना है। सॉफ़्टवेयर में, यह गैर-नकारात्मक इनपुट को विषम आउटपुट में मैप करके और यहां तक कि आउटपुट में नकारात्मक इनपुट को मैप करके सबसे आसानी से किया जाता है, इसलिए कम से कम महत्वपूर्ण बिट एक उल्टा संकेत बिट बन जाता है:
घातीय-गोलोम्ब कोडिंग गामा कोड को एक चापलूसी पावर-लॉ वितरण के साथ पूर्णांकों में सामान्यीकृत करती है, जैसे गोलोम्ब कोडिंग यूनरी कोड को सामान्यीकृत करती है। इसमें संख्या को एक सकारात्मक विभाजक से विभाजित करना सम्मिलित है, आमतौर पर 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.