कौमा कोड
अल्पविराम कोड एक प्रकार का उपसर्ग-मुक्त कोड है जिसमें अल्पविराम, एक विशेष प्रतीक या प्रतीकों का क्रम, एक कोड शब्द के अंत में होता है और अन्यथा कभी नहीं होता है।[1] यह सरणियों को व्यक्त करने का एक सहज तरीका है।
उदाहरण के लिए, फाइबोनैचि कोडिंग एक अल्पविराम कोड है जिसमें अल्पविराम होता है 11
. 11
और 1011
वैध फाइबोनैचि कोड शब्द हैं, लेकिन 101
, 0111
, और 11011
नहीं हैं।
उदाहरण
- यूनरी कोडिंग, जिसमें अल्पविराम होता है
0
. यह NULL मानों की अनुमति देता है (जब कोड और अल्पविराम एकल हो0
, मान को NULL या 0) के रूप में लिया जा सकता है। - फाइबोनैचि कोडिंग, जिसमें अल्पविराम होता है
11
. - सभी हफ़मैन कोडिंग को a जोड़कर अल्पविराम कोड में परिवर्तित किया जा सकता है
1
पूरे कोड के लिए और एक का उपयोग करके0
एक कोड और अल्पविराम के रूप में.
Symbol | Code | Comma Code |
---|---|---|
Comma | - (N/A) | 0 |
0 | 00 | 100 |
1 | 01 | 101 |
2 | 10 | 110 |
3 | 11 | 111 |
शब्द की परिभाषा अल्पविराम में समाप्त होने वाले कई प्रतीकों से होती है, जो एक स्पेस (विराम चिह्न) वर्ण के बराबर है।
- सभी डेटा स्वयंसिद्ध में 50% अल्पविराम - सभी निहित डेटा विशेष रूप से परिवर्तनीय लंबाई विशेषण डेटा को बिल्कुल 50% अल्पविराम से युक्त दिखाया जा सकता है।
सभी क्रमबद्ध डेटा या उपयुक्त रूप से क्यूरेटेड समान-लंबाई डेटा तथाकथित निहित संभावना प्रदर्शित करते हैं।
ऐसे डेटा को 'जेनेरिक डेटा' कहा जा सकता है, जिसका विश्लेषण हेडर के रूप में किसी भी इंटरलीविंग यूनरी कोड का उपयोग करके किया जा सकता है, जहां अतिरिक्त विशेषण बिट्स (अभी पढ़े गए यूनरी कोड की लंबाई के बराबर) को डेटा के रूप में पढ़ा जाता है, जबकि यूनरी कोड एक परिचय या हेडर के रूप में कार्य करता है। डेटा के लिए. यह हेडर अल्पविराम के रूप में कार्य करता है. डेटा को हेडर के प्रत्येक बिट के बीच इंटरलेविंग फैशन में या पोस्ट रीड फैशन में पढ़ा जा सकता है, जब डेटा केवल पूरे यूनरी हेडर कोड को चेन-हो एन्कोडिंग | चेन-हो एन्कोडिंग की तरह पढ़ने के बाद पढ़ा जाता है।
इसे रैंडम वॉक तकनीकों और सांख्यिकीय योग द्वारा देखा जा सकता है कि सभी सामान्य डेटा में औसतन 2 बिट्स का हेडर या अल्पविराम होता है और अतिरिक्त 2 बिट्स (न्यूनतम 1) का डेटा होता है।
यह बेस-3 या बेस-5 संचार चैनलों जैसे गैर-बाइनरी संचार चैनलों में ट्रांसमिशन से पहले एक सस्ते आधार वृद्धि एल्गोरिदम की भी अनुमति देता है।
n | RL code | Next code | Bijective data (non-NULL) | Commas |
---|---|---|---|---|
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% अल्पविराम होते हैं। यह 50% की निहित संभावना से काफी स्पष्ट है 0
हफ़मैन बेस 3 कोड में कोड: 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 | RL code | Next code | Bijective data (has NULL) | Commas |
---|---|---|---|---|
1 | 1 | 0 | NULL (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-बिट है:
Binary encoding | Ternary digits | ||||||||
---|---|---|---|---|---|---|---|---|---|
READS - Code space (128 states) | b3 | b2 | b1 | b0 | Values encoded | Description | WRITES - Occurrences (100 states) | ||
50% (64 states) | 0 | a | b | (0–1) (0–1) | Two lower digits | 44.44% (45 states) | |||
25% (32 states) | 1 | 0 | a | (2) (0–1) | One lower digit,
one higher digit |
22.22% (22 states) | |||
12.5% (16 states) | 1 | 1 | 0 | b | (0–1) (2) | 22.22% (22 states) | |||
12.5% (16 states) | 1 | 1 | 1 | (2) (2) | Two higher digits | 11.11% (11 states) |
इसलिए इस विधि में पढ़ने के लिए 2 टर्नरी अंकों की पढ़ने की दक्षता है बाइनरी बिट्स या 1.5625 बाइनरी बिट्स/टर्नरी अंक। या .
एक लेखन के लिए 2 टर्नरी अंकों की लेखन दक्षता बिट्स या 1.61 बाइनरी बिट्स/टर्नरी अंक, या
- कुशल आधार रूपांतरण के लिए कार्डिनल नंबर - चूंकि यह पता चला है कि अल्पविराम कोड आधार रूपांतरण के समान हैं, एकमात्र चिंता दक्षता और समय है, 19 बाइनरी बिट्स का प्रत्यक्ष रूपांतरण/मैपिंग 12 टर्नरी ट्रिट्स की संख्या संख्याएँ दक्षता की अनुमति देती हैं या गणना की विधि के आधार पर दक्षता। यह इसलिए काम करता है और ≃ . यह निश्चित रूप से एक सैद्धांतिक निर्माण है और इसे टर्नरी ट्रांसमिशन विधियों पर लागू करने का प्रयास करते समय समय के बारे में कोई उल्लेख नहीं है। हालाँकि यह छूट जाता है समय संबंधी चिंताओं के अनुरूप डिजाइन करने के लिए कोड।
यह भी देखें
संदर्भ
- ↑ Wade, Graham (8 September 1994). सिग्नल कोडिंग और प्रोसेसिंग. Cambridge University Press. p. 56. ISBN 978-0-521-42336-6.