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

From Vigyanwiki
Revision as of 12:59, 26 July 2023 by alpha>Indicwiki (Created page with "{{More citations needed|date=December 2022}} संदर्भ-अनुकूली चर-लंबाई कोड | चर-लंबाई कोडिंग (CAVLC)...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

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

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

कोडित तत्व

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

Parameters Description
Macroblock type Prediction method for each coded macroblock
Coded block pattern Indicates which blocks within a macroblock contain coded coefficients
Quantizer parameter reference frame Transmitted as a delta value from the previous value of QP
Reference frame index Identify reference frame(s) for inter prediction
Motion vector Transmitted as a difference (mvd) from predicted motion vector
Residual data Coefficient data for each 4×4 or 2×2 block


CAVLC उदाहरण

Element Value Code
coeff_token TotalCoeffs=5, T1s=3 0000100
T1 sign (4) + 0
T1 sign (3) - 1
T1 sign (2) - 1
Level (1) +1 (use Level_VLC0) 1
Level (0) +3 (use Level_VLC1) 0010
TotalZeros 3 111
run_before(4) ZerosLeft=3; run_before=1 10
run_before(3) ZerosLeft=2; run_before=0 1
run_before(2) ZerosLeft=2; run_before=0 1
run_before(1) ZerosLeft=2; run_before=1 01
run_before(0) ZerosLeft=1; run_before=1 No code required; last coefficient.
Code Element Value Output array
0000100 coeff_token Total Coeffs=5, T1s=3 Empty
0 T1 sign + 1
1 T1 sign - −1, 1
1 T1 sign - −1, −1, 1
1 Level +1 1, −1, −1, 1
0010 Level +3 3, 1, −1, −1, 1
111 TotalZeros 3 3, 1, −1, −1, 1
10 run_before 1 3, 1, −1, −1, 0, 1
1 run_before 0 3, 1, −1, −1, 0, 1
1 run_before 0 3, 1, −1, −1, 0, 1
01 run_before 1 3, 0, 1, −1, −1, 0, 1

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

4x4CAVLC.svg

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

यह भी देखें

बाहरी संबंध