कॉन्टेक्स्ट-अडाप्टिव बाइनरी अरिथमेटिक कोडिंग: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Entropy coding method}}संदर्भ-अनुकूली बाइनरी अंकगणित कोडिंग (सीएबीएसी) ए...")
 
(TEXT)
Line 1: Line 1:
{{Short description|Entropy coding method}}संदर्भ-अनुकूली बाइनरी अंकगणित कोडिंग (सीएबीएसी) एच.264/एमपीईजी-4 एवीसी में प्रयुक्त [[एन्ट्रापी एन्कोडिंग]] का एक रूप है<ref name="H.264_overview" /><ref name="H.264_book" />और [[उच्च दक्षता वीडियो कोडिंग]] (HEVC) मानक। यह एक [[दोषरहित संपीड़न]] तकनीक है, हालाँकि जिन वीडियो कोडिंग मानकों में इसका उपयोग किया जाता है वे आमतौर पर [[हानिपूर्ण संपीड़न]] अनुप्रयोगों के लिए होते हैं। CABAC वीडियो एन्कोडिंग में उपयोग किए जाने वाले अधिकांश अन्य एन्ट्रापी एन्कोडिंग एल्गोरिदम की तुलना में बहुत बेहतर डेटा संपीड़न प्रदान करने के लिए उल्लेखनीय है, और यह उन प्रमुख तत्वों में से एक है जो H.264/AVC एन्कोडिंग योजना को अपने पूर्ववर्तियों की तुलना में बेहतर संपीड़न क्षमता प्रदान करता है।<ref name="LiDrew2014">{{cite book|author1=Ze-Nian Li|author2=Mark S. Drew|author3=Jiangchuan Liu|title=मल्टीमीडिया के मूल सिद्धांत|url=https://books.google.com/books?id=R6vBBAAAQBAJ|date=9 April 2014|publisher=Springer Science & Business Media|isbn=978-3-319-05290-8}}</ref> H.264/MPEG-4 AVC में, CABAC केवल मानक के मुख्य और उच्चतर H.264/MPEG-4_AVC#प्रोफाइल (लेकिन विस्तारित प्रोफ़ाइल नहीं) में समर्थित है, क्योंकि इसे मानक के बेसलाइन प्रोफ़ाइल में उपयोग की जाने वाली [[संदर्भ-अनुकूली चर-लंबाई कोडिंग]] (CAVLC) के रूप में ज्ञात सरल योजना की तुलना में डिकोड करने के लिए बड़ी मात्रा में प्रसंस्करण की आवश्यकता होती है। सीएबीएसी को समानांतर बनाना और सदिश बनाना भी मुश्किल है, इसलिए समानता के अन्य रूपों (जैसे स्थानिक क्षेत्र समानता) को इसके उपयोग के साथ जोड़ा जा सकता है। HEVC में, CABAC का उपयोग मानक के सभी प्रोफाइलों में किया जाता है।
{{Short description|Entropy coding method}}कॉन्टेक्स्ट-अडाप्टिव बाइनरी अरिथमेटिक कोडिंग (सीएबीएसी) एच.264/एमपीईजी-4 एवीसी में प्रयुक्त [[एन्ट्रापी एन्कोडिंग]] का एक रूप है <ref name="H.264_overview" /><ref name="H.264_book" /> और [[उच्च दक्षता वीडियो कोडिंग|हाई एफिशिएंसी वीडियो कोडिंग]] (एचईवीसी) स्टैंडर्ड। यह एक [[दोषरहित संपीड़न|लॉसलेस कम्प्रेशन]] तकनीक है, हालाँकि जिन वीडियो कोडिंग स्टैंडर्ड में इसका उपयोग किया जाता है वे सामान्यतः [[हानिपूर्ण संपीड़न|लॉसी कम्प्रेशन]] एप्लीकेशन के लिए होते हैं। सीएबीएसी वीडियो एन्कोडिंग में उपयोग किए जाने वाले अधिकांश अन्य एन्ट्रापी एन्कोडिंग एल्गोरिदम की तुलना में बहुत बेहतर डेटा कम्प्रेशन प्रदान करने के लिए उल्लेखनीय है, और यह उन प्रमुख एलिमेंट में से एक है जो H.264/एवीसी एन्कोडिंग स्कीम को अपने प्रीडेसर की तुलना में बेहतर कम्प्रेशन कैपेबिलिटी प्रदान करता है। <ref name="LiDrew2014">{{cite book|author1=Ze-Nian Li|author2=Mark S. Drew|author3=Jiangchuan Liu|title=मल्टीमीडिया के मूल सिद्धांत|url=https://books.google.com/books?id=R6vBBAAAQBAJ|date=9 April 2014|publisher=Springer Science & Business Media|isbn=978-3-319-05290-8}}</ref> H.264/एमपीईजी-4 एवीसी में, सीएबीएसी केवल स्टैंडर्ड के मुख्य और उच्चतर H.264/एमपीईजी-4 एवीसी (लेकिन विस्तारित प्रोफ़ाइल नहीं) में समर्थित है, क्योंकि इसे स्टैंडर्ड के बेसलाइन प्रोफ़ाइल में उपयोग की जाने वाली [[संदर्भ-अनुकूली चर-लंबाई कोडिंग|कॉन्टेक्स्ट-अडाप्टिव वेरिएबल-लेंथ कोडिंग]] (सीएवीएलसी) के रूप में ज्ञात सिम्पलर स्कीम की तुलना में डिकोड करने के लिए बड़ी मात्रा में प्रोसेसिंग की आवश्यकता होती है। सीएबीएसी को पैरेललाईज बनाना और वेक्टोराइज़ बनाना भी कठिन है, इसलिए समानता के अन्य रूपों (जैसे स्थानिक क्षेत्र समानता) को इसके उपयोग के साथ जोड़ा जा सकता है। एचईवीसी में, सीएबीएसी का उपयोग स्टैंडर्ड के सभी प्रोफाइलों में किया जाता है।


==एल्गोरिदम==
==एल्गोरिदम==


CABAC अंकगणित कोडिंग पर आधारित है, इसे वीडियो एन्कोडिंग मानकों की आवश्यकताओं के अनुकूल बनाने के लिए कुछ नवाचारों और परिवर्तनों के साथ:<ref name="CABAC_paper" />* यह बाइनरी प्रतीकों को एन्कोड करता है, जो जटिलता को कम रखता है और किसी भी प्रतीक के अधिक बार उपयोग किए जाने वाले बिट्स के लिए संभाव्यता मॉडलिंग की अनुमति देता है।
सीएबीएसी अरिथमेटिक कोडिंग पर आधारित है, इसे वीडियो एन्कोडिंग स्टैंडर्ड की नीड्स अडेप्ट करने के लिए कुछ इनोवेशन और चेंज के साथ:<ref name="CABAC_paper" />
* संभाव्यता मॉडल को स्थानीय संदर्भ के आधार पर अनुकूल रूप से चुना जाता है, जिससे [[संभावना]]ओं के बेहतर मॉडलिंग की अनुमति मिलती है, क्योंकि कोडिंग मोड आमतौर पर स्थानीय रूप से अच्छी तरह से सहसंबद्ध होते हैं।
* यह [[ परिमाणीकरण (सिग्नल प्रोसेसिंग) ]] संभाव्यता श्रेणियों और संभाव्यता स्थितियों के उपयोग द्वारा गुणन-मुक्त श्रेणी विभाजन का उपयोग करता है।


CABAC में विभिन्न संदर्भों के लिए कई संभाव्यता मोड हैं। यह सबसे पहले सभी गैर-बाइनरी अंक प्रणाली प्रतीकों को बाइनरी में परिवर्तित करता है। फिर, प्रत्येक बिट के लिए, कोडर चयन करता है कि किस संभाव्यता मॉडल का उपयोग करना है, फिर संभाव्यता अनुमान को अनुकूलित करने के लिए आस-पास के तत्वों से जानकारी का उपयोग करता है। डेटा को संपीड़ित करने के लिए अंततः अंकगणित कोडिंग लागू की जाती है।
यह बाइनरी सिंबल को एन्कोड करता है, जो कॉम्पलेक्सिटी कम रखता है और किसी भी सिंबल के अधिक बार उपयोग किए जाने वाले बिट्स के लिए प्रोबेबिलिटी मॉडलिंग की अनुमति देता है।
[[File:CABAC Encoder Workflow Diagram.png|alt=|center|thumb|800x800px|एंट्रॉपी एन्कोडिंग की CABAC विधि अंग्रेजी में H264 वीडियो संपीड़न मानक के भीतर उपयोग की जाती है]]संदर्भ मॉडलिंग कोडिंग प्रतीकों की सशर्त संभावनाओं का अनुमान प्रदान करता है। उपयुक्त संदर्भ मॉडल का उपयोग करते हुए, एन्कोड करने के लिए वर्तमान प्रतीक के पड़ोस में पहले से कोडित प्रतीकों के अनुसार विभिन्न संभाव्यता मॉडल के बीच स्विच करके दिए गए अंतर-प्रतीक अतिरेक का फायदा उठाया जा सकता है। [[CAVLC]] एन्ट्रापी कोडिंग विधि की तुलना में CABAC की [[बिट दर]] में लगभग 10% की बचत के लिए संदर्भ मॉडलिंग जिम्मेदार है।
* प्रोबेबिलिटी मॉडल को लोकल कॉन्टेक्स्ट के आधार पर अडाप्टिवली चुना जाता है, जिससे [[संभावना|प्रोबेबिलिटी]] के बेहतर मॉडलिंग की अनुमति मिलती है, क्योंकि कोडिंग मोड सामान्यतः लोकली अच्छी तरह से कोरिलेटेड होते हैं।
* यह [[ परिमाणीकरण (सिग्नल प्रोसेसिंग) |क्वान्टिजेशन (सिग्नल प्रोसेसिंग)]] प्रोबेबिलिटी रेंज और प्रोबेबिलिटी स्टेट के उपयोग द्वारा मल्टिप्लिकेशन-फ्री श्रेणी विभाजन का उपयोग करता है।


डेटा सिंबल को कोड करने में निम्नलिखित चरण शामिल होते हैं।
सीएबीएसी में डिफरेंट संदर्भों के लिए कई प्रोबेबिलिटी मोड हैं। यह सबसे पहले सभी नॉन-बाइनरी नंबर सिस्टम सिंबल को बाइनरी में परिवर्तित करता है। फिर, प्रत्येक बिट के लिए, कोडर सिलेक्शन करता है कि किस प्रोबेबिलिटी मॉडल का उपयोग करना है, फिर प्रोबेबिलिटी एस्टीमेट को ऑप्टिमाइज़ करने के लिए आस-पास के एलिमेंट से इन्फॉर्मेशन का उपयोग करता है। डेटा को कंप्रेस करने के लिए अंततः अरिथमेटिक कोडिंग लागू की जाती है।
* बाइनराइजेशन: सीएबीएसी बाइनरी अंकगणित कोडिंग का उपयोग करता है जिसका अर्थ है कि केवल बाइनरी निर्णय (1 या 0) एन्कोड किए गए हैं। एक गैर-बाइनरी-मूल्यवान प्रतीक (उदाहरण के लिए एक परिवर्तन गुणांक या गति वेक्टर) को अंकगणित कोडिंग से पहले बाइनरीकृत या बाइनरी कोड में परिवर्तित किया जाता है। यह प्रक्रिया डेटा प्रतीक को एक चर लंबाई कोड में परिवर्तित करने की प्रक्रिया के समान है लेकिन ट्रांसमिशन से पहले बाइनरी कोड को आगे एन्कोड किया जाता है (अंकगणित कोडर द्वारा)।
[[File:CABAC Encoder Workflow Diagram.png|alt=|center|thumb|800x800px|एंट्रॉपी एन्कोडिंग की सीएबीएसी मेथड अंग्रेजी में H264 वीडियो कम्प्रेशन स्टैंडर्ड के भीतर उपयोग की जाती है]]कॉन्टेक्स्ट मॉडलिंग कोडिंग सिंबल की कंडीशनल प्रोबेबिलिटी का एस्टीमेट प्रदान करता है। सूटेबल कॉन्टेक्स्ट मॉडल को यूटीलाइज़ करते हुए, एन्कोड करने के लिए करंट सिंबल के नेबर में पहले से कोडित सिंबल के अनुसार डिफरेंट प्रोबेबिलिटी मॉडल के बीच स्विच करके दिए गए इंटर-सिंबल अतिरेक का लाभ उठाया जा सकता है। [[CAVLC|सीएवीएलसी]] एन्ट्रापी कोडिंग विधि की तुलना में सीएबीएसी की [[बिट दर]] में लगभग 10% की बचत के लिए कॉन्टेक्स्ट मॉडलिंग रीस्पोंसिबल है।
* बाइनराइज़्ड प्रतीक के प्रत्येक बिट (या बिन) के लिए चरण दोहराए जाते हैं।
 
* संदर्भ मॉडल चयन: एक संदर्भ मॉडल बाइनराइज्ड प्रतीक के एक या अधिक डिब्बे के लिए एक संभाव्यता मॉडल है। इस मॉडल को हाल ही में कोड किए गए डेटा प्रतीकों के आंकड़ों के आधार पर उपलब्ध मॉडलों के चयन में से चुना जा सकता है। संदर्भ मॉडल प्रत्येक बिन के 1 या 0 होने की संभावना को संग्रहीत करता है।
डेटा सिंबल को कोड करने में निम्नलिखित चरण सम्मिलित होते हैं।
* अंकगणितीय एन्कोडिंग: एक अंकगणितीय कोडर चयनित संभाव्यता मॉडल के अनुसार प्रत्येक बिन को एन्कोड करता है। ध्यान दें कि प्रत्येक बिन के लिए केवल दो उप-श्रेणियाँ हैं (0 और 1 के अनुरूप)।
* बाइनराइजेशन: सीएबीएसी बाइनरी अरिथमेटिक कोडिंग का उपयोग करता है जिसका अर्थ है कि केवल बाइनरी डिसीज़न (1 या 0) एन्कोड किए गए हैं। एक नॉन-बाइनरी-वैल्यूड सिंबल (उदाहरण के लिए एक ट्रांसफॉर्म कोफीशिएंट या मोशन वेक्टर) को अरिथमेटिक कोडिंग से पहले बाईनरीज़ या बाइनरी कोड में परिवर्तित किया जाता है। यह प्रोसेस डेटा सिंबल को एक वेरिएबल लेंथ कोड में परिवर्तित करने की प्रोसेस के समान है लेकिन ट्रांसमिशन से पहले बाइनरी कोड को आगे एन्कोड किया जाता है (अरिथमेटिक कोडर द्वारा)।
* संभाव्यता अद्यतन: चयनित संदर्भ मॉडल को वास्तविक कोडित मान के आधार पर अद्यतन किया जाता है (उदाहरण के लिए यदि बिन मान 1 था, तो 1 s की आवृत्ति गणना बढ़ जाती है)।
* बाइनराइज़्ड सिंबल के प्रत्येक बिट (या बिन) के लिए स्टेज रिपीट किये जाते हैं।
* कॉन्टेक्स्ट मॉडल सिलेक्शन: एक कॉन्टेक्स्ट मॉडल बाइनराइज्ड सिंबल के एक या अधिक बॉक्स के लिए एक प्रोबेबिलिटी मॉडल है। इस मॉडल को हाल ही में कोड किए गए डेटा सिंबल के आंकड़ों के आधार पर उपलब्ध मॉडलों के सिलेक्शन में से चुना जा सकता है। कॉन्टेक्स्ट मॉडल प्रत्येक बिन के 1 या 0 होने की प्रोबेबिलिटी को स्टोर करता है।
* अरिथमेटिक एन्कोडिंग: एक अरिथमेटिक कोडर सिलेक्टेड प्रोबेबिलिटी मॉडल के अनुसार प्रत्येक बिन को एन्कोड करता है। ध्यान दें कि प्रत्येक बिन के लिए केवल दो सब-रेंज हैं (0 और 1 के अनुरूप)।
* प्रोबेबिलिटी अपडेट: सिलेक्टेड कॉन्टेक्स्ट मॉडल को वास्तविक कोडित मान के आधार पर अपडेट किया जाता है (उदाहरण के लिए यदि बिन मान 1 था, तो 1 s की आवृत्ति गणना बढ़ जाती है)।


==उदाहरण==
==उदाहरण==


1. मान MVDx को बिनाराइज़ करें, गति वेक्टर अंतर {{var|x}} दिशा।
1. मान MVDx को बिनाराइज़ करें, डिफरेंस वेक्टर अंतर {{var|x}} दिशा।


{| class="wikitable floatright"
{| class="wikitable floatright"
! MVD<sub>x</sub>
! एमवीडी<sub>x</sub>
! Binarization
! बाइनाराईज़ेशन
|-
|-
| 0
| 0
Line 54: Line 56:
बाइनराइज़्ड कोडवर्ड का पहला बिट बिन 1 है; दूसरा बिट बिन 2 है; और इसी तरह।
बाइनराइज़्ड कोडवर्ड का पहला बिट बिन 1 है; दूसरा बिट बिन 2 है; और इसी तरह।


2. प्रत्येक बिन के लिए एक संदर्भ मॉडल चुनें। पिछले कोडित एमवीडी मूल्यों के आधार पर, बिन 1 के लिए 3 मॉडलों में से एक का चयन किया जाता है। दो पूर्व-कोडित मानों का L1 मानदंड, उदा<sub>k</sub>, परिकलित:
2. प्रत्येक बिन के लिए एक कॉन्टेक्स्ट मॉडल चुनें। पिछले कोडित एमवीडी वैल्यू के आधार पर, बिन 1 के लिए 3 मॉडलों में से एक का सिलेक्शन किया जाता है। दो -कोडेड वैल्यू वैल्यू का L1 मानदंड, उदा<sub>k</sub>, अकोर्डिंगली:


{| class="wikitable floatright"
{| class="wikitable floatright"
! e<sub>k</sub>
! e<sub>k</sub>
! Context model for bin 1
! कॉन्टेक्स्ट मॉडल फॉर बिन
|-
|-
| 0 ≤ e<sub>k</sub> < 3
| 0 ≤ e<sub>k</sub> < 3
Line 69: Line 71:
| Model 2
| Model 2
|}
|}
यदि ई<sub>k</sub> छोटा है, तो इस बात की बहुत अधिक संभावना है कि वर्तमान एमवीडी का परिमाण छोटा होगा; इसके विपरीत, यदि ई<sub>k</sub> बड़ा है तो यह अधिक संभावना है कि वर्तमान एमवीडी का परिमाण बड़ा होगा। हम तदनुसार एक संभाव्यता तालिका (संदर्भ मॉडल) का चयन करते हैं। शेष डिब्बे को 4 अतिरिक्त संदर्भ मॉडलों में से एक का उपयोग करके कोडित किया गया है:
यदि ई<sub>k</sub> छोटा है, तो इस बात की बहुत अधिक प्रोबेबिलिटी है कि वर्तमान एमवीडी का मैग्नीट्यूड छोटा होगा; इसके विपरीत, यदि ई<sub>k</sub> बड़ा है तो यह अधिक प्रोबेबिलिटी है कि वर्तमान एमवीडी का मैग्नीट्यूड बड़ा होगा। हम तदनुसार एक प्रोबेबिलिटी टेबल (कॉन्टेक्स्ट मॉडल) का सिलेक्शन करते हैं। शेष डिब्बे को 4 अतिरिक्त कॉन्टेक्स्ट मॉडलों में से एक का उपयोग करके कोडित किया गया है:


{| class="wikitable floatright"
{| class="wikitable floatright"
! Bin
! बिन
! Context model
! कॉन्टेक्स्ट मॉडल
|-
|-
| 1
| 1
Line 87: Line 89:
| 5
| 5
|-
|-
| 5 and higher
| 5 और उच्चतर
| 6
| 6
|}
|}
3. प्रत्येक बिन को एन्कोड करें। चयनित संदर्भ मॉडल दो संभाव्यता अनुमान प्रदान करता है: संभावना कि बिन में "1" है और संभावना है कि बिन में "0" है। ये अनुमान उन दो उप-श्रेणियों को निर्धारित करते हैं जिनका उपयोग अंकगणित कोडर बिन को एनकोड करने के लिए करता है।
3. प्रत्येक बिन को एन्कोड करें। सिलेक्टेड कॉन्टेक्स्ट मॉडल दो प्रोबेबिलिटी एस्टीमेट प्रदान करता है: प्रोबेबिलिटी कि बिन में "1" है और प्रोबेबिलिटी है कि बिन में "0" है। ये एस्टीमेट उन दो सब-रेंज को निर्धारित करते हैं जिनका उपयोग अरिथमेटिक कोडर बिन को एनकोड करने के लिए करता है।


4. संदर्भ मॉडल अद्यतन करें. उदाहरण के लिए, यदि संदर्भ मॉडल 2 को बिन 1 के लिए चुना गया था और बिन 1 का मान "0" था, तो "0" की आवृत्ति गणना बढ़ जाती है। इसका मतलब यह है कि अगली बार जब यह मॉडल चुना जाएगा, तो "0" की संभावना थोड़ी अधिक होगी। जब किसी मॉडल की घटनाओं की कुल संख्या एक सीमा मान से अधिक हो जाती है, तो "0" और "1" के लिए आवृत्ति गणना को कम कर दिया जाएगा, जो वास्तव में हाल के अवलोकनों को उच्च प्राथमिकता देता है।
4. कॉन्टेक्स्ट मॉडल अपडेट करें- उदाहरण के लिए, यदि कॉन्टेक्स्ट मॉडल 2 को बिन 1 के लिए चुना गया था और बिन 1 की वैल्यू "0" थी, तो "0" की आवृत्ति गणना बढ़ जाती है। इसका अर्थ यह है कि अगली बार जब यह मॉडल चुना जाएगा, तो "0" की प्रोबेबिलिटी थोड़ी अधिक होगी। जब किसी मॉडल की घटनाओं की कुल संख्या एक सीमा मान से अधिक हो जाती है, तो "0" और "1" के लिए फ्रीक्वेंसी काउंट को कम कर दिया जाएगा, जो वास्तव में हाल के ऑब्जरवेशन को उच्च प्रायोरिटी देता है।


==अंकगणितीय डिकोडिंग इंजन==
==अरिथमेटिक डिकोडिंग इंजन==


मानक में अंकगणित डिकोडर का कुछ विस्तार से वर्णन किया गया है। इसके तीन विशिष्ट गुण हैं:
स्टैंडर्ड में अरिथमेटिक डिकोडर का कुछ डिटेल से डिस्क्राइब किया गया है। इसके तीन विशिष्ट गुण हैं:
#संभावना का आकलन न्यूनतम संभावित प्रतीक (एलपीएस, दो द्विआधारी निर्णयों 0 या 1 में से सबसे कम संभावित) के लिए 64 अलग-अलग संभाव्यता राज्यों के बीच एक संक्रमण प्रक्रिया द्वारा किया जाता है।
#प्रोबेबिलिटी का एस्टिमेशन लीस्ट प्रोबेबल सिंबल (एलपीएस, दो बाइनरी डिसीज़न 0 या 1 में से सबसे कम संभावित) के लिए 64 अलग-अलग प्रोबेबिलिटी स्टेट के बीच एक ट्रांजीशन प्रोसेस द्वारा किया जाता है।
#सीमा {{var|R}} अंकगणित कोडर की वर्तमान स्थिति का प्रतिनिधित्व प्रत्येक चरण में नई सीमा की गणना करने से पहले पूर्व-निर्धारित मानों की एक छोटी श्रृंखला में किया जाता है, जिससे लुक-अप तालिका (यानी गुणन-मुक्त) का उपयोग करके नई सीमा की गणना करना संभव हो जाता है।
#सीमा {{var|R}} अरिथमेटिक कोडर की करंट स्टेट का प्रतिनिधित्व प्रत्येक चरण में नई रेंज का काउंट करने से पहले प्री-सेट वैल्यू की एक स्माल रेंज में किया जाता है, जिससे लुक-अप टेबल (यानी मल्टिप्लिकेशन-फ्री) का उपयोग करके नई रेंज को काउंट करना संभव हो जाता है।
#एक समान संभाव्यता वितरण के साथ डेटा प्रतीकों के लिए एक सरलीकृत एन्कोडिंग और डिकोडिंग प्रक्रिया को परिभाषित किया गया है।
#एक सिम्प्लिफाईड एन्कोडिंग के साथ डेटा सिंबल के लिए एक सिम्प्लिफाईड एन्कोडिंग और डिकोडिंग प्रोसेस को डिफाइन किया गया है।
डिकोडिंग प्रक्रिया की परिभाषा कम जटिलता को सुविधाजनक बनाने के लिए डिज़ाइन की गई है
डिकोडिंग प्रोसेस की परिभाषा कम जटिलता को फैसिलिटेट करने के लिए डिज़ाइन की गई है
अंकगणित एन्कोडिंग और डिकोडिंग का कार्यान्वयन। कुल मिलाकर, CABAC प्रदान करता है
 
CAVLC-आधारित कोडिंग की तुलना में बेहतर कोडिंग दक्षता, अधिक कीमत पर
अरिथमेटिक एन्कोडिंग और डिकोडिंग का कार्यान्वयन। कुल मिलाकर, सीएबीएसी प्रदान करता है
अभिकलनात्मक जटिलता।
 
सीएवीएलसी-आधारित कोडिंग की तुलना में बेहतर कोडिंग दक्षता, अधिक कीमत पर अभिकलनात्मक जटिलता।


==इतिहास==
==इतिहास==
1986 में, [[आईबीएम]] के शोधकर्ताओं कोट्टप्पुरम एम. ए. मोहिउद्दीन और जोर्मा जोहानन रिसानन ने गुणन-मुक्त बाइनरी अंकगणित कोडिंग एल्गोरिदम के लिए एक [[पेटेंट]] दायर किया।<ref name="t81">{{cite web |title=T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |accessdate=12 July 2019}}</ref><ref>{{US patent|4652856}}</ref> 1988 में, आर.बी. आर्प्स, टी.के. सहित आईबीएम अनुसंधान दल। ट्रूंग, डी.जे. लू, डब्ल्यू.बी. पेनेबेकर, एल. मिशेल और जी.जी. लैंगडन ने क्यू-कोडर नामक एक अनुकूली बाइनरी अंकगणित कोडिंग (एबीएसी) एल्गोरिदम प्रस्तुत किया।<ref>{{cite journal |last1=Arps |first1=R. B. |last2=Truong |first2=T. K. |last3=Lu |first3=D. J. |last4=Pasco |first4=R. C. |last5=Friedman |first5=T. D. |title=बाइलेवल छवियों के अनुकूली डेटा संपीड़न के लिए एक बहुउद्देश्यीय वीएलएसआई चिप|journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=775–795 |doi=10.1147/rd.326.0775 |issn=0018-8646}}</ref><ref>{{cite journal |last1=Pennebaker |first1=W. B. |last2=Mitchell |first2=J. L. |last3=Langdon |first3=G. G. |last4=Arps |first4=R. B. |title=क्यू-कोडर अनुकूली बाइनरी अंकगणितीय कोडर के बुनियादी सिद्धांतों का अवलोकन|journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=717–726 |doi=10.1147/rd.326.0717 |issn=0018-8646}}</ref>
1986 में, [[आईबीएम]] के शोधकर्ताओं कोट्टप्पुरम एम. ए. मोहिउद्दीन और जोर्मा जोहानन रिसानन ने मल्टिप्लिकेशन-फ्री बाइनरी अरिथमेटिक कोडिंग एल्गोरिदम के लिए एक [[पेटेंट]] सबमिट किया। <ref name="t81">{{cite web |title=T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |accessdate=12 July 2019}}</ref><ref>{{US patent|4652856}}</ref> 1988 में, आर.बी. आर्प्स, टी.के. सहित आईबीएम अनुसंधान दल। ट्रूंग, डी.जे. लू, डब्ल्यू.बी. पेनेबेकर, एल. मिशेल और जी.जी. लैंगडन ने क्यू-कोडर नामक एक अडाप्टिव बाइनरी अरिथमेटिक कोडिंग (एबीएसी) एल्गोरिदम प्रस्तुत किया। <ref>{{cite journal |last1=Arps |first1=R. B. |last2=Truong |first2=T. K. |last3=Lu |first3=D. J. |last4=Pasco |first4=R. C. |last5=Friedman |first5=T. D. |title=बाइलेवल छवियों के अनुकूली डेटा संपीड़न के लिए एक बहुउद्देश्यीय वीएलएसआई चिप|journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=775–795 |doi=10.1147/rd.326.0775 |issn=0018-8646}}</ref><ref>{{cite journal |last1=Pennebaker |first1=W. B. |last2=Mitchell |first2=J. L. |last3=Langdon |first3=G. G. |last4=Arps |first4=R. B. |title=क्यू-कोडर अनुकूली बाइनरी अंकगणितीय कोडर के बुनियादी सिद्धांतों का अवलोकन|journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=717–726 |doi=10.1147/rd.326.0717 |issn=0018-8646}}</ref>
उपरोक्त पेटेंट और शोध पत्र, आईबीएम और [[मित्सुबिशी इलेक्ट्रिक]] के कई अन्य पेटेंटों के साथ, बाद में [[सीसीआईटीटी]] और संयुक्त फोटोग्राफिक विशेषज्ञ समूह द्वारा 1992 में [[जेपीईजी]] [[छवि संपीड़न]] प्रारूप के अनुकूली बाइनरी अंकगणित कोडिंग एल्गोरिदम के आधार के रूप में उद्धृत किए गए थे।<ref name="t81"/>हालाँकि, JPEG फ़ाइल प्रारूप के एनकोडर और डिकोडर, जिनमें [[हफ़मैन एन्कोडिंग]] और अंकगणित कोडिंग दोनों के विकल्प हैं, आमतौर पर केवल हफ़मैन एन्कोडिंग विकल्प का समर्थन करते हैं, जो मूल रूप से पेटेंट चिंताओं के कारण था, हालाँकि JPEG के अंकगणित कोडिंग पेटेंट<ref>{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&id=T-REC-T.81-200401-I!Cor1!PDF-E&type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}</ref> जेपीईजी मानक की उम्र के कारण यह समाप्त हो चुका है।<ref>''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}</ref>गति वीडियो संपीड़न में अनुकूली बाइनरी अंकगणित कोडिंग का पहला उपयोग 1989 में आईबीएम शोधकर्ताओं द्वारा एमपीईजी समूह के एक प्रस्ताव में किया गया था।<ref>''DCT Coding for Motion Video Storage using Adaptive Arithmetic Coding'', C. A. Gonzales. L. Allman, T. McCarthy, P. Wendt and A. N. Akansu, Signal Processing: Image Communication, 2, 145, 1990.</ref><ref>''Encoding of motion video sequences for the MPEG environment using arithmetic coding'', E. Viscito and C. Gonzales, SPIE Visual Communications and Image Processing '90, October 2-4, 1990.</ref>इस प्रस्ताव ने इंट्राफ्रेम जेपीईजी से इंटरफ्रेम वीडियो कोडिंग तक अंकगणितीय कोडिंग के उपयोग को बढ़ाया।
 
अबव पेटेंट और रिसर्च पेपर्स, आईबीएम और [[मित्सुबिशी इलेक्ट्रिक]] के कई अन्य पेटेंटों के साथ, बाद में [[सीसीआईटीटी]] और जॉइंट फोटोग्राफिक एक्सपर्ट ग्रुप द्वारा 1992 में [[जेपीईजी]] [[छवि संपीड़न|इमेज कम्प्रेशन]] फॉर्मेट के अडाप्टिव बाइनरी अरिथमेटिक कोडिंग एल्गोरिदम के बेसिस के रूप में उद्धृत किए गए थे।<ref name="t81" /> हालाँकि, जेपीईजी फ़ाइल फॉर्मेट के एनकोडर और डिकोडर, जिनमें [[हफ़मैन एन्कोडिंग]] और अरिथमेटिक कोडिंग दोनों के ऑप्शन हैं, सामान्यतः केवल हफ़मैन एन्कोडिंग ऑप्शन को सपोर्ट करते हैं, जो मूल रूप से पेटेंट कंसर्न के कारण था, हालाँकि जेपीईजी के अरिथमेटिक कोडिंग पेटेंट <ref>{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&id=T-REC-T.81-200401-I!Cor1!PDF-E&type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}</ref> जेपीईजी स्टैंडर्ड की उम्र के कारण यह समाप्त हो चुका है। <ref>''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}</ref> मोशन वीडियो कम्प्रेशन में अडाप्टिव बाइनरी अरिथमेटिक कोडिंग का पहला उपयोग 1989 में आईबीएम साइंटिस्ट द्वारा एमपीईजी समूह के एक प्रस्ताव में किया गया था। <ref>''DCT Coding for Motion Video Storage using Adaptive Arithmetic Coding'', C. A. Gonzales. L. Allman, T. McCarthy, P. Wendt and A. N. Akansu, Signal Processing: Image Communication, 2, 145, 1990.</ref><ref>''Encoding of motion video sequences for the MPEG environment using arithmetic coding'', E. Viscito and C. Gonzales, SPIE Visual Communications and Image Processing '90, October 2-4, 1990.</ref> इस प्रस्ताव ने इंट्राफ्रेम जेपीईजी से इंटरफ्रेम वीडियो कोडिंग तक अरिथमेटिक कोडिंग के उपयोग को बढ़ाया।
 
1999 में, यंगजुन यू ([[ टेक्सस उपकरण |टेक्सस इंस्ट्रूमेंट्स]]), यंग गैप क्वोन और एंटोनियो ओर्टेगा ([[दक्षिणी कैलिफोर्निया विश्वविद्यालय]]) ने बाइनरी अरिथमेटिक कोडिंग का एक कॉन्टेक्स्ट-अडाप्टिव रूप प्रस्तुत किया। <ref>{{cite book |last1=Ortega |first1=A. |title=Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348) |chapter=Embedded image-domain compression using context models |date=October 1999 |volume=1 |pages=477–481 vol.1 |doi=10.1109/ICIP.1999.821655|isbn=0-7803-5467-2 |s2cid=27303716 }}</ref> आधुनिक कॉन्टेक्स्ट-अडाप्टिव बाइनरी अरिथमेटिक कोडिंग (सीएबीएसी) एल्गोरिदम को 2003 में H.264/एमपीईजी-4 एवीसी फॉर्मेट के साथ प्रोफेशनल रूप से रिप्रेजेंट किया गया था। <ref>{{cite web |title=संदर्भ-आधारित अनुकूली बाइनरी अंकगणित कोडिंग (सीएबीएसी)|url=https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/context-based-adaptive-binary-arithmetic-coding-cabac.html |website=Fraunhofer Heinrich Hertz Institute |accessdate=13 July 2019 |language=en}}</ref> एवीसी फॉर्मेट के लिए मैक्सिमम पेटेंट [[ PANASONIC |पैनासोनिक]], [[ पांचवी कंपनी | गोडो कैशा आई- पी ब्रिज]] और [[एलजी इलेक्ट्रॉनिक्स]] के पास हैं। <ref name="patents">{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |accessdate=6 July 2019}}</ref>


1999 में, यंगजुन यू ([[ टेक्सस उपकरण ]]्स), यंग गैप क्वोन और एंटोनियो ओर्टेगा ([[दक्षिणी कैलिफोर्निया विश्वविद्यालय]]) ने बाइनरी अंकगणित कोडिंग का एक संदर्भ-अनुकूली रूप प्रस्तुत किया।<ref>{{cite book |last1=Ortega |first1=A. |title=Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348) |chapter=Embedded image-domain compression using context models |date=October 1999 |volume=1 |pages=477–481 vol.1 |doi=10.1109/ICIP.1999.821655|isbn=0-7803-5467-2 |s2cid=27303716 }}</ref> आधुनिक संदर्भ-अनुकूली बाइनरी अंकगणित कोडिंग (CABAC) एल्गोरिदम को 2003 में H.264/MPEG-4 AVC प्रारूप के साथ व्यावसायिक रूप से पेश किया गया था।<ref>{{cite web |title=संदर्भ-आधारित अनुकूली बाइनरी अंकगणित कोडिंग (सीएबीएसी)|url=https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/context-based-adaptive-binary-arithmetic-coding-cabac.html |website=Fraunhofer Heinrich Hertz Institute |accessdate=13 July 2019 |language=en}}</ref> AVC प्रारूप के लिए अधिकांश पेटेंट [[ PANASONIC ]], [[ पांचवी कंपनी ]] और [[एलजी इलेक्ट्रॉनिक्स]] के पास हैं।<ref name="patents">{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |accessdate=6 July 2019}}</ref>




==यह भी देखें==
==यह भी देखें==
*अंकगणित कोडिंग
*अरिथमेटिक कोडिंग
*आधार - सामग्री संकोचन
*आधार - सामग्री संकोचन
*दोषरहित संपीड़न
*लॉसलेस कम्प्रेशन
*संदर्भ-अनुकूली चर-लंबाई कोडिंग|संदर्भ-अनुकूली चर-लंबाई कोडिंग (CAVLC)
*कॉन्टेक्स्ट-अडाप्टिव वेरिएबल-लंबाई कोडिंग|कॉन्टेक्स्ट-अडाप्टिव वेरिएबल-लंबाई कोडिंग (सीएवीएलसी)


==संदर्भ==
==कॉन्टेक्स्ट==
{{Reflist|
{{Reflist|
refs=
refs=

Revision as of 07:38, 7 August 2023

कॉन्टेक्स्ट-अडाप्टिव बाइनरी अरिथमेटिक कोडिंग (सीएबीएसी) एच.264/एमपीईजी-4 एवीसी में प्रयुक्त एन्ट्रापी एन्कोडिंग का एक रूप है [1][2] और हाई एफिशिएंसी वीडियो कोडिंग (एचईवीसी) स्टैंडर्ड। यह एक लॉसलेस कम्प्रेशन तकनीक है, हालाँकि जिन वीडियो कोडिंग स्टैंडर्ड में इसका उपयोग किया जाता है वे सामान्यतः लॉसी कम्प्रेशन एप्लीकेशन के लिए होते हैं। सीएबीएसी वीडियो एन्कोडिंग में उपयोग किए जाने वाले अधिकांश अन्य एन्ट्रापी एन्कोडिंग एल्गोरिदम की तुलना में बहुत बेहतर डेटा कम्प्रेशन प्रदान करने के लिए उल्लेखनीय है, और यह उन प्रमुख एलिमेंट में से एक है जो H.264/एवीसी एन्कोडिंग स्कीम को अपने प्रीडेसर की तुलना में बेहतर कम्प्रेशन कैपेबिलिटी प्रदान करता है। [3] H.264/एमपीईजी-4 एवीसी में, सीएबीएसी केवल स्टैंडर्ड के मुख्य और उच्चतर H.264/एमपीईजी-4 एवीसी (लेकिन विस्तारित प्रोफ़ाइल नहीं) में समर्थित है, क्योंकि इसे स्टैंडर्ड के बेसलाइन प्रोफ़ाइल में उपयोग की जाने वाली कॉन्टेक्स्ट-अडाप्टिव वेरिएबल-लेंथ कोडिंग (सीएवीएलसी) के रूप में ज्ञात सिम्पलर स्कीम की तुलना में डिकोड करने के लिए बड़ी मात्रा में प्रोसेसिंग की आवश्यकता होती है। सीएबीएसी को पैरेललाईज बनाना और वेक्टोराइज़ बनाना भी कठिन है, इसलिए समानता के अन्य रूपों (जैसे स्थानिक क्षेत्र समानता) को इसके उपयोग के साथ जोड़ा जा सकता है। एचईवीसी में, सीएबीएसी का उपयोग स्टैंडर्ड के सभी प्रोफाइलों में किया जाता है।

एल्गोरिदम

सीएबीएसी अरिथमेटिक कोडिंग पर आधारित है, इसे वीडियो एन्कोडिंग स्टैंडर्ड की नीड्स अडेप्ट करने के लिए कुछ इनोवेशन और चेंज के साथ:[4]

यह बाइनरी सिंबल को एन्कोड करता है, जो कॉम्पलेक्सिटी कम रखता है और किसी भी सिंबल के अधिक बार उपयोग किए जाने वाले बिट्स के लिए प्रोबेबिलिटी मॉडलिंग की अनुमति देता है।

  • प्रोबेबिलिटी मॉडल को लोकल कॉन्टेक्स्ट के आधार पर अडाप्टिवली चुना जाता है, जिससे प्रोबेबिलिटी के बेहतर मॉडलिंग की अनुमति मिलती है, क्योंकि कोडिंग मोड सामान्यतः लोकली अच्छी तरह से कोरिलेटेड होते हैं।
  • यह क्वान्टिजेशन (सिग्नल प्रोसेसिंग) प्रोबेबिलिटी रेंज और प्रोबेबिलिटी स्टेट के उपयोग द्वारा मल्टिप्लिकेशन-फ्री श्रेणी विभाजन का उपयोग करता है।

सीएबीएसी में डिफरेंट संदर्भों के लिए कई प्रोबेबिलिटी मोड हैं। यह सबसे पहले सभी नॉन-बाइनरी नंबर सिस्टम सिंबल को बाइनरी में परिवर्तित करता है। फिर, प्रत्येक बिट के लिए, कोडर सिलेक्शन करता है कि किस प्रोबेबिलिटी मॉडल का उपयोग करना है, फिर प्रोबेबिलिटी एस्टीमेट को ऑप्टिमाइज़ करने के लिए आस-पास के एलिमेंट से इन्फॉर्मेशन का उपयोग करता है। डेटा को कंप्रेस करने के लिए अंततः अरिथमेटिक कोडिंग लागू की जाती है।

एंट्रॉपी एन्कोडिंग की सीएबीएसी मेथड अंग्रेजी में H264 वीडियो कम्प्रेशन स्टैंडर्ड के भीतर उपयोग की जाती है

कॉन्टेक्स्ट मॉडलिंग कोडिंग सिंबल की कंडीशनल प्रोबेबिलिटी का एस्टीमेट प्रदान करता है। सूटेबल कॉन्टेक्स्ट मॉडल को यूटीलाइज़ करते हुए, एन्कोड करने के लिए करंट सिंबल के नेबर में पहले से कोडित सिंबल के अनुसार डिफरेंट प्रोबेबिलिटी मॉडल के बीच स्विच करके दिए गए इंटर-सिंबल अतिरेक का लाभ उठाया जा सकता है। सीएवीएलसी एन्ट्रापी कोडिंग विधि की तुलना में सीएबीएसी की बिट दर में लगभग 10% की बचत के लिए कॉन्टेक्स्ट मॉडलिंग रीस्पोंसिबल है।

डेटा सिंबल को कोड करने में निम्नलिखित चरण सम्मिलित होते हैं।

  • बाइनराइजेशन: सीएबीएसी बाइनरी अरिथमेटिक कोडिंग का उपयोग करता है जिसका अर्थ है कि केवल बाइनरी डिसीज़न (1 या 0) एन्कोड किए गए हैं। एक नॉन-बाइनरी-वैल्यूड सिंबल (उदाहरण के लिए एक ट्रांसफॉर्म कोफीशिएंट या मोशन वेक्टर) को अरिथमेटिक कोडिंग से पहले बाईनरीज़ या बाइनरी कोड में परिवर्तित किया जाता है। यह प्रोसेस डेटा सिंबल को एक वेरिएबल लेंथ कोड में परिवर्तित करने की प्रोसेस के समान है लेकिन ट्रांसमिशन से पहले बाइनरी कोड को आगे एन्कोड किया जाता है (अरिथमेटिक कोडर द्वारा)।
  • बाइनराइज़्ड सिंबल के प्रत्येक बिट (या बिन) के लिए स्टेज रिपीट किये जाते हैं।
  • कॉन्टेक्स्ट मॉडल सिलेक्शन: एक कॉन्टेक्स्ट मॉडल बाइनराइज्ड सिंबल के एक या अधिक बॉक्स के लिए एक प्रोबेबिलिटी मॉडल है। इस मॉडल को हाल ही में कोड किए गए डेटा सिंबल के आंकड़ों के आधार पर उपलब्ध मॉडलों के सिलेक्शन में से चुना जा सकता है। कॉन्टेक्स्ट मॉडल प्रत्येक बिन के 1 या 0 होने की प्रोबेबिलिटी को स्टोर करता है।
  • अरिथमेटिक एन्कोडिंग: एक अरिथमेटिक कोडर सिलेक्टेड प्रोबेबिलिटी मॉडल के अनुसार प्रत्येक बिन को एन्कोड करता है। ध्यान दें कि प्रत्येक बिन के लिए केवल दो सब-रेंज हैं (0 और 1 के अनुरूप)।
  • प्रोबेबिलिटी अपडेट: सिलेक्टेड कॉन्टेक्स्ट मॉडल को वास्तविक कोडित मान के आधार पर अपडेट किया जाता है (उदाहरण के लिए यदि बिन मान 1 था, तो 1 s की आवृत्ति गणना बढ़ जाती है)।

उदाहरण

1. मान MVDx को बिनाराइज़ करें, डिफरेंस वेक्टर अंतर x दिशा।

एमवीडीx बाइनाराईज़ेशन
0 0
1 10
2 110
3 1110
4 11110
5 111110
6 1111110
7 11111110
8 111111110

बाइनराइज़्ड कोडवर्ड का पहला बिट बिन 1 है; दूसरा बिट बिन 2 है; और इसी तरह।

2. प्रत्येक बिन के लिए एक कॉन्टेक्स्ट मॉडल चुनें। पिछले कोडित एमवीडी वैल्यू के आधार पर, बिन 1 के लिए 3 मॉडलों में से एक का सिलेक्शन किया जाता है। दो -कोडेड वैल्यू वैल्यू का L1 मानदंड, उदाk, अकोर्डिंगली:

ek कॉन्टेक्स्ट मॉडल फॉर बिन
0 ≤ ek < 3 Model 0
3 ≤ ek < 33 Model 1
33 ≤ ek Model 2

यदि ईk छोटा है, तो इस बात की बहुत अधिक प्रोबेबिलिटी है कि वर्तमान एमवीडी का मैग्नीट्यूड छोटा होगा; इसके विपरीत, यदि ईk बड़ा है तो यह अधिक प्रोबेबिलिटी है कि वर्तमान एमवीडी का मैग्नीट्यूड बड़ा होगा। हम तदनुसार एक प्रोबेबिलिटी टेबल (कॉन्टेक्स्ट मॉडल) का सिलेक्शन करते हैं। शेष डिब्बे को 4 अतिरिक्त कॉन्टेक्स्ट मॉडलों में से एक का उपयोग करके कोडित किया गया है:

बिन कॉन्टेक्स्ट मॉडल
1 0, 1 or 2 depending on ek
2 3
3 4
4 5
5 और उच्चतर 6

3. प्रत्येक बिन को एन्कोड करें। सिलेक्टेड कॉन्टेक्स्ट मॉडल दो प्रोबेबिलिटी एस्टीमेट प्रदान करता है: प्रोबेबिलिटी कि बिन में "1" है और प्रोबेबिलिटी है कि बिन में "0" है। ये एस्टीमेट उन दो सब-रेंज को निर्धारित करते हैं जिनका उपयोग अरिथमेटिक कोडर बिन को एनकोड करने के लिए करता है।

4. कॉन्टेक्स्ट मॉडल अपडेट करें- उदाहरण के लिए, यदि कॉन्टेक्स्ट मॉडल 2 को बिन 1 के लिए चुना गया था और बिन 1 की वैल्यू "0" थी, तो "0" की आवृत्ति गणना बढ़ जाती है। इसका अर्थ यह है कि अगली बार जब यह मॉडल चुना जाएगा, तो "0" की प्रोबेबिलिटी थोड़ी अधिक होगी। जब किसी मॉडल की घटनाओं की कुल संख्या एक सीमा मान से अधिक हो जाती है, तो "0" और "1" के लिए फ्रीक्वेंसी काउंट को कम कर दिया जाएगा, जो वास्तव में हाल के ऑब्जरवेशन को उच्च प्रायोरिटी देता है।

अरिथमेटिक डिकोडिंग इंजन

स्टैंडर्ड में अरिथमेटिक डिकोडर का कुछ डिटेल से डिस्क्राइब किया गया है। इसके तीन विशिष्ट गुण हैं:

  1. प्रोबेबिलिटी का एस्टिमेशन लीस्ट प्रोबेबल सिंबल (एलपीएस, दो बाइनरी डिसीज़न 0 या 1 में से सबसे कम संभावित) के लिए 64 अलग-अलग प्रोबेबिलिटी स्टेट के बीच एक ट्रांजीशन प्रोसेस द्वारा किया जाता है।
  2. सीमा R अरिथमेटिक कोडर की करंट स्टेट का प्रतिनिधित्व प्रत्येक चरण में नई रेंज का काउंट करने से पहले प्री-सेट वैल्यू की एक स्माल रेंज में किया जाता है, जिससे लुक-अप टेबल (यानी मल्टिप्लिकेशन-फ्री) का उपयोग करके नई रेंज को काउंट करना संभव हो जाता है।
  3. एक सिम्प्लिफाईड एन्कोडिंग के साथ डेटा सिंबल के लिए एक सिम्प्लिफाईड एन्कोडिंग और डिकोडिंग प्रोसेस को डिफाइन किया गया है।

डिकोडिंग प्रोसेस की परिभाषा कम जटिलता को फैसिलिटेट करने के लिए डिज़ाइन की गई है

अरिथमेटिक एन्कोडिंग और डिकोडिंग का कार्यान्वयन। कुल मिलाकर, सीएबीएसी प्रदान करता है

सीएवीएलसी-आधारित कोडिंग की तुलना में बेहतर कोडिंग दक्षता, अधिक कीमत पर अभिकलनात्मक जटिलता।

इतिहास

1986 में, आईबीएम के शोधकर्ताओं कोट्टप्पुरम एम. ए. मोहिउद्दीन और जोर्मा जोहानन रिसानन ने मल्टिप्लिकेशन-फ्री बाइनरी अरिथमेटिक कोडिंग एल्गोरिदम के लिए एक पेटेंट सबमिट किया। [5][6] 1988 में, आर.बी. आर्प्स, टी.के. सहित आईबीएम अनुसंधान दल। ट्रूंग, डी.जे. लू, डब्ल्यू.बी. पेनेबेकर, एल. मिशेल और जी.जी. लैंगडन ने क्यू-कोडर नामक एक अडाप्टिव बाइनरी अरिथमेटिक कोडिंग (एबीएसी) एल्गोरिदम प्रस्तुत किया। [7][8]

अबव पेटेंट और रिसर्च पेपर्स, आईबीएम और मित्सुबिशी इलेक्ट्रिक के कई अन्य पेटेंटों के साथ, बाद में सीसीआईटीटी और जॉइंट फोटोग्राफिक एक्सपर्ट ग्रुप द्वारा 1992 में जेपीईजी इमेज कम्प्रेशन फॉर्मेट के अडाप्टिव बाइनरी अरिथमेटिक कोडिंग एल्गोरिदम के बेसिस के रूप में उद्धृत किए गए थे।[5] हालाँकि, जेपीईजी फ़ाइल फॉर्मेट के एनकोडर और डिकोडर, जिनमें हफ़मैन एन्कोडिंग और अरिथमेटिक कोडिंग दोनों के ऑप्शन हैं, सामान्यतः केवल हफ़मैन एन्कोडिंग ऑप्शन को सपोर्ट करते हैं, जो मूल रूप से पेटेंट कंसर्न के कारण था, हालाँकि जेपीईजी के अरिथमेटिक कोडिंग पेटेंट [9] जेपीईजी स्टैंडर्ड की उम्र के कारण यह समाप्त हो चुका है। [10] मोशन वीडियो कम्प्रेशन में अडाप्टिव बाइनरी अरिथमेटिक कोडिंग का पहला उपयोग 1989 में आईबीएम साइंटिस्ट द्वारा एमपीईजी समूह के एक प्रस्ताव में किया गया था। [11][12] इस प्रस्ताव ने इंट्राफ्रेम जेपीईजी से इंटरफ्रेम वीडियो कोडिंग तक अरिथमेटिक कोडिंग के उपयोग को बढ़ाया।

1999 में, यंगजुन यू (टेक्सस इंस्ट्रूमेंट्स), यंग गैप क्वोन और एंटोनियो ओर्टेगा (दक्षिणी कैलिफोर्निया विश्वविद्यालय) ने बाइनरी अरिथमेटिक कोडिंग का एक कॉन्टेक्स्ट-अडाप्टिव रूप प्रस्तुत किया। [13] आधुनिक कॉन्टेक्स्ट-अडाप्टिव बाइनरी अरिथमेटिक कोडिंग (सीएबीएसी) एल्गोरिदम को 2003 में H.264/एमपीईजी-4 एवीसी फॉर्मेट के साथ प्रोफेशनल रूप से रिप्रेजेंट किया गया था। [14] एवीसी फॉर्मेट के लिए मैक्सिमम पेटेंट पैनासोनिक, गोडो कैशा आई- पी ब्रिज और एलजी इलेक्ट्रॉनिक्स के पास हैं। [15]


यह भी देखें

  • अरिथमेटिक कोडिंग
  • आधार - सामग्री संकोचन
  • लॉसलेस कम्प्रेशन
  • कॉन्टेक्स्ट-अडाप्टिव वेरिएबल-लंबाई कोडिंग|कॉन्टेक्स्ट-अडाप्टिव वेरिएबल-लंबाई कोडिंग (सीएवीएलसी)

कॉन्टेक्स्ट

  1. Richardson, Iain E. G., H.264 / MPEG-4 Part 10 White Paper, 17 October 2002.
  2. Richardson, Iain E. G. (2003). H.264 and MPEG-4 Video Compression: Video Coding for Next-generation Multimedia. Chichester: John Wiley & Sons Ltd.
  3. Ze-Nian Li; Mark S. Drew; Jiangchuan Liu (9 April 2014). मल्टीमीडिया के मूल सिद्धांत. Springer Science & Business Media. ISBN 978-3-319-05290-8.
  4. Marpe, D., Schwarz, H., and Wiegand, T., Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard, IEEE Trans. Circuits and Systems for Video Technology, Vol. 13, No. 7, pp. 620–636, July, 2003.
  5. 5.0 5.1 "T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES" (PDF). CCITT. September 1992. Retrieved 12 July 2019.
  6. U.S. Patent 4,652,856
  7. Arps, R. B.; Truong, T. K.; Lu, D. J.; Pasco, R. C.; Friedman, T. D. (November 1988). "बाइलेवल छवियों के अनुकूली डेटा संपीड़न के लिए एक बहुउद्देश्यीय वीएलएसआई चिप". IBM Journal of Research and Development. 32 (6): 775–795. doi:10.1147/rd.326.0775. ISSN 0018-8646.
  8. Pennebaker, W. B.; Mitchell, J. L.; Langdon, G. G.; Arps, R. B. (November 1988). "क्यू-कोडर अनुकूली बाइनरी अंकगणितीय कोडर के बुनियादी सिद्धांतों का अवलोकन". IBM Journal of Research and Development. 32 (6): 717–726. doi:10.1147/rd.326.0717. ISSN 0018-8646.
  9. "Recommendation T.81 (1992) Corrigendum 1 (01/04)". Recommendation T.81 (1992). International Telecommunication Union. 9 November 2004. Retrieved 3 February 2011.
  10. JPEG Still Image Data Compression Standard, W. B. Pennebaker and J. L. Mitchell, Kluwer Academic Press, 1992. ISBN 0-442-01272-1
  11. DCT Coding for Motion Video Storage using Adaptive Arithmetic Coding, C. A. Gonzales. L. Allman, T. McCarthy, P. Wendt and A. N. Akansu, Signal Processing: Image Communication, 2, 145, 1990.
  12. Encoding of motion video sequences for the MPEG environment using arithmetic coding, E. Viscito and C. Gonzales, SPIE Visual Communications and Image Processing '90, October 2-4, 1990.
  13. Ortega, A. (October 1999). "Embedded image-domain compression using context models". Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348). Vol. 1. pp. 477–481 vol.1. doi:10.1109/ICIP.1999.821655. ISBN 0-7803-5467-2. S2CID 27303716.
  14. "संदर्भ-आधारित अनुकूली बाइनरी अंकगणित कोडिंग (सीएबीएसी)". Fraunhofer Heinrich Hertz Institute (in English). Retrieved 13 July 2019.
  15. "AVC/H.264 – Patent List" (PDF). MPEG LA. Retrieved 6 July 2019.