एलियास गामा कोडिंग: 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
 
(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> कोड या एलियास गामा कोड [[पीटर एलियास]] द्वारा विकसित सकारात्मक पूर्णांकों को एन्कोड करने वाला एक सार्वभौमिक कोड (डेटा संपीड़न) है।<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 अंकों को पढ़ें।


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


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


== सामान्यीकरण ==<!-- 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 लगाएं और फिर शून्य को एक 0 के रूप में कोड करें।


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


==यह भी देखें==
==यह भी देखें==
* एलियास डेल्टा कोडिंग|एलियास डेल्टा (δ) कोडिंग
* एलियास डेल्टा (δ) कोडिंग
* एलियास ओमेगा कोडिंग|एलियास ओमेगा (ω) कोडिंग
* एलियास ओमेगा (ω) कोडिंग
* [[पद (संख्या प्रारूप)]]
* [[पद (संख्या प्रारूप)|सकारात्मक (संख्या प्रारूप)]]


==संदर्भ==
==संदर्भ==
Line 106: Line 104:
{{Compression Methods}}
{{Compression Methods}}


{{DEFAULTSORT:Elias Gamma Coding}}[[Category: अंक प्रणाली]] [[Category: दोषरहित संपीड़न एल्गोरिदम]] [[Category: उदाहरण सी कोड वाले लेख]]
{{DEFAULTSORT:Elias Gamma Coding}}
 
 


[[Category: Machine Translated Page]]
[[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 कोड करने के लिए:

  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 के रूप में जोड़ना है।

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

घातीय-गोलोम्ब कोडिंग गामा कोड को एक चापलूसी पावर-लॉ वितरण के साथ पूर्णांकों में सामान्यीकृत करती है, जैसे गोलोम्ब कोडिंग यूनरी कोड को सामान्यीकृत करती है। इसमें संख्या को एक सकारात्मक विभाजक से विभाजित करना सम्मिलित है, आमतौर पर 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.


अग्रिम पठन