कौमा कोड
कौमा कोड एक प्रकार का उपसर्ग-मुक्त कोड है जिसमें कौमा, एक विशेष प्रतीक या प्रतीकों का क्रम, एक कोड शब्द के अंत में होता है और अन्यथा कभी नहीं होता है। [1] यह सरणियों को व्यक्त करने का एक सहज तरीका है।
उदाहरण के लिए, फाइबोनैचि कोडिंग एक कौमा कोड है जिसमें कौमा 11
. 11
होता है और 1011
वैध फाइबोनैचि कोड शब्द हैं, लेकिन 101
, 0111
, और 11011
नहीं हैं।
उदाहरण
- यूनरी कोडिंग, जिसमें कौमा
0
होता है। यह शून्य मानों की अनुमति देता है (जब कोड और कौमा एकल0
हो, मान को शून्य या 0) के रूप में लिया जा सकता है। - फाइबोनैचि कोडिंग, जिसमें कौमा
11
होता है। - सभी हफ़मैन कोडिंग सभी हफ़मैन कोड को पूरे कोड में
1
जोड़कर और कोड और कौमा के रूप में एकल0
का उपयोग करके कौमा कोड में परिवर्तित किया जा सकता है।
प्रतीक | कोड | कौमा कोड |
---|---|---|
कौमा | - (एन/ए) | 0 |
0 | 00 | 100 |
1 | 01 | 101 |
2 | 10 | 110 |
3 | 11 | 111 |
शब्द की परिभाषा कौमा में समाप्त होने वाले कई प्रतीकों से होती है, जो एक स्पेस (विराम चिह्न) वर्ण के बराबर है।
- सभी डेटा स्वयंसिद्ध में 50% कौमा - सभी निहित डेटा विशेष रूप से परिवर्तनीय लंबाई बाईजेक्टिव डेटा को बिल्कुल 50% कौमा से युक्त दिखाया जा सकता है।
सभी जेनेरिक डाटा या उपयुक्त रूप से क्यूरेटेड समान-लंबाई डेटा तथाकथित निहित संभावना प्रदर्शित करते हैं।
ऐसे डेटा को 'जेनेरिक डेटा' कहा जा सकता है, जिसका विश्लेषण हेडर के रूप में किसी भी बाईजेक्टिव यूनरी कोड का उपयोग करके किया जा सकता है, जहां अतिरिक्त बाईजेक्टिव बिट्स (अभी पढ़े गए यूनरी कोड की लंबाई के बराबर) को डेटा के रूप में पढ़ा जाता है, जबकि यूनरी कोड एक परिचय या डेटा के लिए हेडर के रूप में कार्य करता है। यह हेडर कौमा के रूप में कार्य करता है। डेटा को हेडर के प्रत्येक बिट के बीच इंटरलेविंग फैशन में या पोस्ट रीड फैशन में पढ़ा जा सकता है, जब डेटा केवल पूरे यूनरी हेडर कोड को चेन-हो एन्कोडिंग की तरह पढ़ने के बाद पढ़ा जाता है।
इसे रैंडम वॉक तकनीकों और सांख्यिकीय योग द्वारा देखा जा सकता है कि सभी सामान्य डेटा में औसतन 2 बिट्स का हेडर या कौमा होता है और अतिरिक्त 2 बिट्स (न्यूनतम 1) का डेटा होता है।
यह बेस-3 या बेस-5 संचार चैनलों जैसे गैर-बाइनरी कम्युनिकेशन चैनलों में ट्रांसमिशन से पहले एक सस्ते आधार वृद्धि एल्गोरिदम की भी अनुमति देता है।
n | आरएल कोड | नेक्स्ट कोड | बाईजेक्टिवात्मक डेटा (गैर-शून्य) | कौमा |
---|---|---|---|---|
1 | 1?
|
0?
|
? (1=1,2=2) | , |
2 | 1? 1?
|
0? 0?
|
?? (3,4,5,6=11,12,21,22) | ,, |
3 | 1? 1? 1?
|
0? 0? 0?
|
??? | ,,, |
4 | 1? 1? 1? 1?
|
0? 0? 0? 0?
|
???? | ,,,, |
5 | 1? 1? 1? 1? 1?
|
0? 0? 0? 0? 0?
|
????? | ,,,,, |
6 | 1? 1? 1? 1? 1? 1?
|
0? 0? 0? 0? 0? 0?
|
?????? | ,,,,,, |
7 | 1? 1? 1? 1? 1? 1? 1?
|
0? 0? 0? 0? 0? 0? 0?
|
??????? | ,,,,,,, |
8 | 1? 1? 1? 1? 1? 1? 1? 1?
|
0? 0? 0? 0? 0? 0? 0? 0?
|
???????? | ,,,,,,,, |
9 | 1? 1? 1? 1? 1? 1? 1? 1? 1?
|
0? 0? 0? 0? 0? 0? 0? 0? 0?
|
????????? | ,,,,,,,,, |
10 | 1? 1? 1? 1? 1? 1? 1? 1? 1? 1?
|
0? 0? 0? 0? 0? 0? 0? 0? 0? 0?
|
?????????? | ,,,,,,,,,, |
... |
जहाँ '?' बाईजेक्टिव अंक के मान के लिए '1' या '2' है जिसके लिए आगे किसी प्रक्रिया की आवश्यकता नहीं है।
निस्सन्देह हम डेटा के प्रत्येक क्षेत्र को अलग करने के लिए एक एकल कौमा का उपयोग करते हैं, इसलिए यह दर्शाता है कि सभी डेटा में 50% कौमा होते हैं। यह हफमैन बेस 3 कोड में 0 कोड के लिए 50% की निहित संभावना से काफी स्पष्ट है: 0
,10
,11
(शुद्ध 2/3 या 66.66% कौमा) या ऊपर दिखाया गया आधार-5 कौमा कोड स्पष्ट है। उच्च आधार संचार के लागत-प्रति-वर्ण भागफल को लघुगणकीय मानों के निकट बनाए रखना होता है और लागत प्रभावशीलता बनाए रखने के लिए कौमा वर्ण के लिए 2-बिट से कम होना चाहिए।।
इस पद्धति में प्रत्येक '0' (कौमा) के बाद '1' या '2' का आश्वासन होता है और ट्रांसमिशन में समय संबंधी चिंताओं को अभिकल्पना करते समय यह विशेषता उपयोगी हो सकती है। ज्ञात बाइनरी मान को टर्नरी में परिवर्तित करना कुछ हद तक महंगा हो सकता है जब तक कि टर्नरी बिट लागत को बाइनरी बिट लागत के समान कम नहीं किया जाता है, इसलिए यदि लागत सहमत होती है तो इस बिट को एक अलग बाइनरी चैनल में मल्टीप्लेक्स किया जा सकता है (इसके लिए अतिरिक्त पढ़ने की आवश्यकता हो सकती है) बाइनरी चैनल के लिए 2-बिट शुद्ध डेटा का टेल'/अनुगामी भाग (पहले परिवर्तन के पहले बिट के बाद से क्योंकि यह तुरंत-डिकोड करने योग्य कोड नहीं है, अगर तुरंत डिकोड करने योग्य यूनरी कोड का उपयोग किया जाए तो इसे पढ़ें) के समान होना चाहिए प्राथमिक चैनल पर 2 औसत टर्नरी बिट शेष हैं, लागत तुलना से पहले बिट्स को ध्यान में रखा जाता है)।
मल्टीप्लेक्सिंग पर विचार न करते हुए, इस पद्धति में 4 बाइनरी बिट्स या 1.33 बिट्स या की रीड के लिए 3 टर्नरी अंकों की रीड दक्षता है।
सभी डाटा एक्सिओम में 66.66% (2/3) कौमा - सभी निहित डेटा विशेष रूप से परिवर्तनीय लंबाई डेटा को बिल्कुल 66.66% (2/3) कौमा से युक्त दिखाया जा सकता है।
n | आरएल कोड | Next code | Bijective data (has शून्य) | Commas |
---|---|---|---|---|
1 | 1 | 0 | शून्य (or 0) | , |
2 | 1? 1
|
0? 0
|
? (1=1,2=2) | ,, |
3 | 1? 1? 1
|
0? 0? 0
|
?? (3,4,5,6=11,12,21,22) | ,,, |
4 | 1? 1? 1? 1
|
0? 0? 0? 0
|
??? | ,,,, |
5 | 1? 1? 1? 1? 1
|
0? 0? 0? 0? 0
|
???? | ,,,,, |
6 | 1? 1? 1? 1? 1? 1
|
0? 0? 0? 0? 0? 0
|
????? | ,,,,,, |
7 | 1? 1? 1? 1? 1? 1? 1
|
0? 0? 0? 0? 0? 0? 0
|
?????? | ,,,,,,, |
8 | 1? 1? 1? 1? 1? 1? 1? 1
|
0? 0? 0? 0? 0? 0? 0? 0
|
??????? | ,,,,,,,, |
9 | 1? 1? 1? 1? 1? 1? 1? 1? 1
|
0? 0? 0? 0? 0? 0? 0? 0? 0
|
???????? | ,,,,,,,,, |
10 | 1? 1? 1? 1? 1? 1? 1? 1? 1? 1
|
0? 0? 0? 0? 0? 0? 0? 0? 0? 0
|
????????? | ,,,,,,,,,, |
... |
जहाँ '?' बाईजेक्टिव अंक के मान के लिए '1' या '2' है जिसके लिए आगे किसी प्रक्रिया की आवश्यकता नहीं है। इस पद्धति के परिणामस्वरूप हफ़मैन बेस 3 कोड के एक सरल 'इम्प्लॉइड रीड' के समान सांख्यिकीय समानता प्राप्त होती है: 0
,10
,11
(शुद्ध 2/3 या 66.66% कौमा)।
इसे रैंडम वॉक तकनीकों और सांख्यिकीय सारांश द्वारा देखा जा सकता है कि सभी सामान्य डेटा में औसतन 2 बिट का हेडर या कौमा होता है और अतिरिक्त 1 बिट (न्यूनतम 0) का डेटा होता है।
इसमें प्रत्येक '0' (कौमा) के बाद '1' या '2' का कोई आश्वासन नहीं है, एक ऐसी विशेषता जो ट्रांसमिशन में समय संबंधी चिंताओं को अभिकल्पना करते समय उपयोगी हो सकती है।
इस विधि में 3 बाइनरी बिट्स या 1.5 बाइनरी बिट्स/टर्नरी डिजिट की रीड के लिए 2 टर्नरी अंकों की रीड दक्षता है। अथवा
- 34.375% | 31.25% (~ 1/3) संख्या विभाजन का उपयोग करके दक्षता लाभ के लिए कौमा लिखते हैं - चेन-हो एन्कोडिंग के समान संख्या विभाजन तकनीकों ('एम' संख्याओं को 'एन' विभाजनों में विभाजित करने पर एन^एम क्रमपरिवर्तन होता है) का उपयोग करके निहित रूप से पढ़ता और लिखता है। चेन-हो और हर्ट्ज़ एन्कोडिंग लगभग यादृच्छिक वितरण के समान पढ़ने और लिखने दोनों की अधिक दक्षता दिखाते हैं। इस प्रकार कोड का उपयोग कम अर्थपूर्ण होता है और उच्च आधारों का उपयोग अधिक महत्वपूर्ण हो जाता है। इसी तरह, 'लिखें' कौमा आधार में कोई भी संख्या बन जाता है, 'पढ़ें' कौमा नीचे दिखाया गया हेडर है, हफ़मैन आधार 4 कोड:
0
,10
,110
,111 हैं।
उच्च दक्षता के अतिरिक्त इस तकनीक का मुख्य लाभ यह है कि इसमें किसी आधार रूपांतरण की आवश्यकता नहीं होती है जिसके लिए पूरी स्ट्रीम को पहले पढ़ना होगा और फिर परिवर्तित करना होगा। हानि यह है कि औसत संख्या की लंबाई अधिक हो जाती है और यादृच्छिक संख्या पीढ़ी के समान होती है और टर्नरी ट्रांसमिशन को नियंत्रित करने वाली समय संबंधी चिंताएं सामने आती हैं। एम=2 और एन=2 के साथ, हम पाते हैं, यह न भूलें कि '(2)' का मान अनिवार्य रूप से 0-बिट है:
बाइनरी एन्कोडिंग | टर्नेरी डिजिट | ||||||||
---|---|---|---|---|---|---|---|---|---|
रीड्स - कोड स्पेस (128 स्टेट) | b3 | b2 | b1 | b0 | वैल्यू एनकोडेड | वर्णन | राइट्स - उपस्थिति (100 स्टेट) | ||
50% (64 स्टेट) | 0 | a | b | (0–1) (0–1) | दो निचले अंक | 44.44% (45 स्टेट) | |||
25% (32 स्टेट) | 1 | 0 | a | (2) (0–1) | एक निचला अंक,
एक उच्चतर अंक |
22.22% (22 स्टेट) | |||
12.5% (16 स्टेट) | 1 | 1 | 0 | b | (0–1) (2) | 22.22% (22 स्टेट) | |||
12.5% (16 स्टेट) | 1 | 1 | 1 | (2) (2) | दो उच्चतर अंक | 11.11% (11 स्टेट) |
इसलिए इस विधि में पढ़ने के लिए 2 टर्नरी अंकों की पढ़ने की दक्षता बाइनरी बिट्स या 1.5625 बाइनरी बिट्स/टर्नरी अंक या .
एक लेखन के लिए 2 टर्नरी अंकों की लेखन दक्षता बिट्स या 1.61 बाइनरी बिट्स/टर्नरी अंक, या है।
- कुशल आधार रूपांतरण के लिए कार्डिनल नंबर - चूंकि यह पता चला है कि कौमा कोड आधार रूपांतरण के समान हैं, एकमात्र चिंता दक्षता और समय है, 19 बाइनरी बिट्स का प्रत्यक्ष रूपांतरण/मैपिंग 12 टर्नरी ट्रिट्स की संख्या गणना की विधि के आधार पर दक्षता या संख्याएँ दक्षता की अनुमति देती हैं। यह इसलिए काम करता है क्यूकि और ≃ है। यह निश्चित रूप से एक सैद्धांतिक निर्माण है और इसे टर्नरी ट्रांसमिशन मेथड पर लागू करने का प्रयास करते समय समय के बारे में कोई उल्लेख नहीं है। हालाँकि, यह समय संबंधी चिंताओं के अनुरूप अभिकल्पना करने के लिए कोड छोड़ता है।
यह भी देखें
संदर्भ
- ↑ Wade, Graham (8 September 1994). सिग्नल कोडिंग और प्रोसेसिंग. Cambridge University Press. p. 56. ISBN 978-0-521-42336-6.