कॉन्टेक्स्ट-एडेप्टिव वेरिएबल-लेन्थ कोडिंग

कॉन्टेक्स्ट-एडेप्टिव वेरिएबल-लेन्थ कोडिंग (सीएवीएलसी) H.264/MPEG-4 AVC वीडियो एन्कोडिंग में उपयोग की जाने वाली एन्ट्रापी कोडिंग का एक रूप है। यह लगभग सभी एन्ट्रापी-कोडर्स की तरह एक स्वाभाविक रूप से दोषरहित संपीड़न तकनीक है। H.264/MPEG-4 AVC में, इसका उपयोग अवशिष्ट, ज़िग-ज़ैग ऑर्डर, ट्रांसफ़ॉर्म गुणांक के ब्लॉक को एनकोड करने के लिए किया जाता है। यह कॉन्टेक्स्ट-आधारित अनुकूली बाइनरी अंकगणित कोडिंग (सीएबीएसी) का एक विकल्प है। सीएवीएलसी को सीएबीएसी की तुलना में डिकोड करने के लिए काफी कम प्रसंस्करण की आवश्यकता होती है, चूंकि यह आँकड़े को प्रभावी ढंग से संपीड़ित नहीं करता है। सीएवीएलसी सभी H.264 प्रोफाइल में समर्थित है, CABAC के विपरीत जो बेसलाइन और विस्तारित प्रोफाइल में समर्थित नहीं है।

सीएवीएलसी का उपयोग रूपांतरण गुणांक के अवशिष्ट, ज़िग-ज़ैग आदेशित 4×4 (और 2×2) ब्लॉक को एनकोड करने के लिए किया जाता है। सीएवीएलसी को परिमाणित 4×4 ब्लॉकों की कई विशेषताओं का लाभ उठाने के लिए डिज़ाइन किया गया है:


 * पूर्वानुमान, परिवर्तन और परिमाणीकरण के बाद, ब्लॉक सामान्यत: विरल होते हैं (ज्यादातर शून्य वाले)।
 * ज़िग-ज़ैग स्कैन के बाद उच्चतम गैर-शून्य गुणांक अधिकांशत: +/− 1 के अनुक्रम होते हैं। सीएवीएलसी एक संहत तरीके से उच्च आवृत्ति +/−1 गुणांक की संख्या का संकेत देता है।
 * पड़ोसी ब्लॉकों में गैर-शून्य गुणांकों की संख्या सहसंबद्ध है। गुणांकों की संख्या को लुक-अप तालिका का उपयोग करके एन्कोड किया गया है; लुक-अप तालिका का चुनाव पड़ोसी ब्लॉकों में गैर-शून्य गुणांकों की संख्या पर निर्भर करता है।
 * गैर-शून्य गुणांक का लेवल (परिमाण) पुन: व्यवस्थित सरणी के प्रारंभ में अधिक होता है (डीसी गुणांक के पास) और उच्च आवृत्तियों की ओर कम होता है। सीएवीएलसी हाल ही में कोडित लेवल परिमाण के आधार पर "लेवल" पैरामीटर के लिए VLC लुक-अप तालिका की पसंद को अनुकूलित करके इसका लाभ उठाता है।

कोडित तत्व
जिन पैरामीटर्स को एन्कोड और ट्रांसमिट करने की आवश्यकता है उनमें निम्नलिखित तालिका सम्मलित है:

सीएवीएलसी उदाहरण
निम्नलिखित सभी उदाहरणों में, हम मानते हैं कि तालिका Num-VLC0 का उपयोग coeff_token को एनकोड करने के लिए किया जाता है।

0, 3, 0, 1, −1, −1, 0, 1, 0… कुल गुणांक = 5 (उच्चतम आवृत्ति [4] से न्यूनतम आवृत्ति [0] तक अनुक्रमित)

टोटलज़ीरोस = 3

T1s = 3 (वास्तव में 4 अनुगामी हैं लेकिन केवल 3 को "विशेष" के रूप में एन्कोड किया जा सकता है)

एन्कोडिंग:

इस ब्लॉक के लिए प्रेषित बिटस्ट्रीम 000010001110010111101101 है।

डिकोडिंग: जैसा कि नीचे दिखाया गया है, आउटपुट ऐरे को डिकोड किए गए मानों से "निर्मित" किया गया है। प्रत्येक चरण में आउटपुट ऐरे में जोड़े गए मानों को रेखांकित किया गया है।

डिकोडर ने दो शून्य डाले हैं; चूंकि, टोटलज़ीरोस 3 के बराबर है और इसलिए न्यूनतम गुणांक से पहले एक और 1 शून्य डाला जाता है, जिससे अंतिम आउटपुट सरणी बनती है: 0, 3, 0, 1, −1, −1, 0, 1

यह भी देखें

 * उन्नत वीडियो कोडिंग#विशेषताएं|H.264 (एन्ट्रॉपी कोडिंग)
 * आधार - सामग्री संकोचन
 * दोषरहित संपीड़न

बाहरी संबंध

 * Context adaptive variable length coding tutorial (out of date)