संशोधित असतत कोसाइन परिवर्तन

संशोधित डिस्क्रीट कोसाइन ट्रांस्फ़ॉर्म (MDCT) टाइप-IV असतत कोसाइन परिवर्तन (DCT-IV) पर आधारित एक ट्रांसफ़ॉर्म है, लैप्ड ट्रांसफॉर्म होने की अतिरिक्त संपत्ति के साथ: इसे एक बड़े डाटासेट  के लगातार ब्लॉक पर निष्पादित करने के लिए डिज़ाइन किया गया है, जहाँ बाद के ब्लॉकों को ओवरलैप किया जाता है ताकि एक ब्लॉक का अंतिम आधा अगले ब्लॉक के पहले भाग के साथ मेल खाता हो। यह ओवरलैपिंग, डीसीटी के ऊर्जा-संघनन गुणों के अलावा, एमडीसीटी को सिग्नल संपीड़न अनुप्रयोगों के लिए विशेष रूप से आकर्षक बनाता है, क्योंकि यह ब्लॉक सीमाओं से उपजी संपीड़न विरूपण साक्ष्य से बचने में मदद करता है। इन फायदों के परिणामस्वरूप, एमडीसीटी ऑडियो डेटा संपीड़न में सबसे व्यापक रूप से उपयोग की जाने वाली हानिपूर्ण संपीड़न तकनीक है। यह MP3, डॉल्बी डिजिटल (AC-3), वॉर्बिस (Ogg), विंडोज मीडिया ऑडियो (WMA), ATRAC, कुक कोडेक,  उन्नत ऑडियो कोडिंग  (AAC) सहित अधिकांश आधुनिक ऑडियो कोडिंग मानकों में कार्यरत है। हाई-डेफिनिशन कोडिंग (HDC), एलडीएसी (कोडेक), डॉल्बी एसी-4, और एमपीईजी-एच 3डी ऑडियो, साथ ही भाषण कोडिंग मानकों जैसे एएसी-एलडी (एलडी-एमडीसीटी), जी.722.1, G.729.1, सीईएलटी, और ओपस (ऑडियो प्रारूप)। असतत कोज्या रूपांतरण (DCT) पहली बार 1972 में एन. अहमद द्वारा प्रस्तावित किया गया था, और 1974 में टी. नटराजन और के.आर. राव के साथ अहमद द्वारा प्रदर्शित किया गया। एमडीसीटी को बाद में जॉन पी. प्रिंसन, ए.डब्ल्यू. द्वारा प्रस्तावित किया गया था। 1987 में सरे विश्वविद्यालय में जॉनसन और एलन बी. ब्राडली, प्रिंसेन और ब्रैडली (1986) द्वारा पहले के काम के बाद एमडीसीटी के टाइम-डोमेन अलियासिंग रद्दीकरण (टीडीएसी) के अंतर्निहित सिद्धांत को विकसित करने के लिए, नीचे वर्णित है। (विभिन्न प्रकार के डीसीटी या डीसीटी/डीएसटी संयोजनों के आधार पर अलग-अलग साइन ट्रांसफॉर्म के साथ-साथ अन्य, शायद ही कभी इस्तेमाल किए जाने वाले एमडीसीटी के रूपों के आधार पर एक अनुरूप परिवर्तन, एमडीएसटी भी मौजूद है।)

MP3 में, MDCT सीधे ऑडियो सिग्नल पर लागू नहीं होता है, बल्कि 32-बैंड पॉलीफ़ेज़ क्वाडरेचर फ़िल्टर (PQF) बैंक के आउटपुट पर लागू होता है। PQF फ़िल्टर बैंक के विशिष्ट अलियासिंग को कम करने के लिए इस MDCT के आउटपुट को उपनाम कमी सूत्र द्वारा पोस्टप्रोसेस किया जाता है। MDCT के साथ फ़िल्टर बैंक के इस तरह के संयोजन को हाइब्रिड फ़िल्टर बैंक या सबबैंड MDCT कहा जाता है। दूसरी ओर, एएसी सामान्य रूप से एक शुद्ध एमडीसीटी का उपयोग करता है; केवल (शायद ही कभी इस्तेमाल किया जाने वाला) एमपीईजी-4 एएसी-एसएसआर संस्करण (सोनी द्वारा) एमडीसीटी के बाद चार-बैंड पीक्यूएफ बैंक का उपयोग करता है। MP3 के समान, ATRAC एक MDCT के बाद स्टैक्ड चतुर्भुज दर्पण फिल्टर (QMF) का उपयोग करता है।

परिभाषा
लैप्ड ट्रांसफ़ॉर्म के रूप में, MDCT अन्य फूरियर-संबंधित ट्रांसफ़ॉर्म की तुलना में थोड़ा असामान्य है, जिसमें इनपुट के रूप में आधे आउटपुट हैं (समान संख्या के बजाय)। विशेष रूप से, यह एक रैखिक कार्य है $$F\colon \mathbf{R}^{2N} \to \mathbf{R}^N$$ (जहाँ R वास्तविक संख्याओं के समुच्चय को दर्शाता है)। 2N वास्तविक संख्या x0, ..., एक्स2N-1 एन वास्तविक संख्या एक्स में परिवर्तित हो जाते हैं0, ..., एक्सN-1 सूत्र के अनुसार:


 * $$X_k = \sum_{n=0}^{2N-1} x_n \cos \left[\frac{\pi}{N} \left(n+\frac{1}{2}+\frac{N}{2}\right) \left(k+\frac{1}{2}\right) \right]$$

(इस परिवर्तन के सामने सामान्यीकरण गुणांक, यहाँ एकता, एक मनमाना सम्मेलन है और उपचारों के बीच भिन्न है। केवल MDCT और IMDCT के सामान्यीकरण का उत्पाद, नीचे, विवश है।)

उलटा परिवर्तन
व्युत्क्रम MDCT को IMDCT के रूप में जाना जाता है। क्योंकि इनपुट और आउटपुट की अलग-अलग संख्याएँ हैं, पहली नज़र में ऐसा लग सकता है कि MDCT उलटा नहीं होना चाहिए। हालाँकि, बाद के ओवरलैपिंग ब्लॉकों के ओवरलैप किए गए IMDCTs को 'जोड़' द्वारा पूर्ण अपवर्तनीयता प्राप्त की जाती है, जिससे त्रुटियाँ 'रद्द' हो जाती हैं और मूल डेटा को पुनः प्राप्त किया जा सकता है; इस तकनीक को 'टाइम-डोमेन अलियासिंग कैंसलेशन' (TDAC) के रूप में जाना जाता है।

आईएमडीसीटी एन वास्तविक संख्या एक्स को रूपांतरित करता है0, ..., एक्सN-1 2N वास्तविक संख्या y में0, ..., और2N-1 सूत्र के अनुसार:


 * $$y_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k \cos \left[\frac{\pi}{N} \left(n+\frac{1}{2}+\frac{N}{2}\right) \left(k+\frac{1}{2}\right) \right]$$

(जैसे Discrete_cosine_transform#DCT-IV|DCT-IV, एक ओर्थोगोनल रूपांतरण के लिए, व्युत्क्रम का वही रूप है जो आगे के रूपांतरण का है।)

सामान्य विंडो सामान्यीकरण (नीचे देखें) के साथ एक विंडो एमडीसीटी के मामले में, आईएमडीसीटी के सामने सामान्यीकरण गुणांक को 2 से गुणा किया जाना चाहिए (अर्थात, 2/एन बनना)।

गणना
हालांकि MDCT फॉर्मूले के सीधे आवेदन के लिए O(N2) ऑपरेशंस, फास्ट फूरियर ट्रांसफॉर्म (एफएफटी) के रूप में गणना को पुनरावर्ती रूप से कारक बनाकर केवल ओ (एन लॉग एन) जटिलता के साथ एक ही चीज़ की गणना करना संभव है। कोई अन्य रूपांतरणों के माध्यम से MDCTs की गणना भी कर सकता है, आमतौर पर एक DFT (FFT) या DCT, O(N) पूर्व और बाद के प्रसंस्करण चरणों के साथ। इसके अलावा, जैसा कि नीचे बताया गया है, DCT-IV के लिए कोई भी एल्गोरिथम समान आकार के MDCT और IMDCT की गणना करने के लिए तुरंत एक विधि प्रदान करता है।

विंडो फ़ंक्शंस
विशिष्ट सिग्नल-संपीड़न अनुप्रयोगों में, खिड़की समारोह w का उपयोग करके रूपांतरण गुणों को और बेहतर बनाया जाता हैn (n = 0, ..., 2N−1) जिसे x से गुणा किया जाता हैn और वाईn उपरोक्त एमडीसीटी और आईएमडीसीटी सूत्रों में, एन = 0 और 2एन सीमाओं पर असंतुलन से बचने के लिए फ़ंक्शन को उन बिंदुओं पर सुचारू रूप से शून्य पर ले जाने के लिए। (अर्थात, हम डेटा को MDCT से पहले और IMDCT के बाद विंडो करते हैं।) सिद्धांत रूप में, x और y में अलग-अलग विंडो फ़ंक्शन हो सकते हैं, और विंडो फ़ंक्शन भी एक ब्लॉक से अगले ब्लॉक में बदल सकता है (विशेष रूप से उस मामले में जहां डेटा ब्लॉक होता है) विभिन्न आकारों के संयुक्त होते हैं), लेकिन सादगी के लिए हम समान आकार के ब्लॉकों के लिए समान विंडो फ़ंक्शंस के सामान्य मामले पर विचार करते हैं।

एक सममित विंडो डब्ल्यू के लिए परिवर्तन उलटा रहता है (यानी, टीडीएसी काम करता है)।n = डब्ल्यू2N−1−n, जब तक w प्रिंसेन-ब्रैडली शर्त को संतुष्ट करता है:


 * $$w_n^2 + w_{n + N}^2 = 1$$.

विभिन्न विंडो फ़ंक्शंस का उपयोग किया जाता है। एक विंडो जो मॉड्युलेटेड लैप्ड ट्रांसफ़ॉर्म (MLT) के रूप में जाना जाने वाला फ़ॉर्म उत्पन्न करती है द्वारा दिया गया है


 * $$w_n = \sin \left[\frac{\pi}{2N} \left(n+\frac{1}{2}\right) \right]$$

और MP3 और MPEG-2 AAC के लिए प्रयोग किया जाता है, और


 * $$w_n = \sin \left( \frac{\pi}{2} \sin^2 \left[\frac{\pi}{2N} \left(n+\frac{1}{2}\right) \right] \right)$$

वोरबिस के लिए। AC-3 कैसर-बेसेल व्युत्पन्न (KBD) विंडो का उपयोग करता है, और MPEG-4 AAC भी KBD विंडो का उपयोग कर सकता है।

ध्यान दें कि MDCT पर लागू विंडो कुछ अन्य प्रकार के सिग्नल विश्लेषण के लिए उपयोग की जाने वाली विंडो से अलग हैं, क्योंकि उन्हें प्रिंसन-ब्रैडली शर्त को पूरा करना होगा। इस अंतर के कारणों में से एक यह है कि MDCT विंडो को MDCT (विश्लेषण) और IMDCT (संश्लेषण) दोनों के लिए दो बार लागू किया जाता है।

DCT-IV से संबंध और TDAC की उत्पत्ति
जैसा कि परिभाषाओं के निरीक्षण से देखा जा सकता है, यहां तक ​​कि N के लिए भी MDCT अनिवार्य रूप से DCT-IV के समतुल्य है, जहां इनपुट को N/2 और दो N-ब्लॉक द्वारा स्थानांतरित किया जाता है डेटा का एक बार में रूपांतरण किया जाता है। इस समानता की अधिक सावधानी से जांच करके, टीडीएसी जैसे महत्वपूर्ण गुणों को आसानी से प्राप्त किया जा सकता है।

DCT-IV से सटीक संबंध को परिभाषित करने के लिए, किसी को यह महसूस करना चाहिए कि DCT-IV वैकल्पिक सम/विषम सीमा स्थितियों से मेल खाता है: यहां तक ​​​​कि इसकी बाईं सीमा पर भी (n = −1/2 के आसपास), विषम इसकी दाहिनी सीमा पर (लगभग n = N − 1/2), और इसी तरह (अलग-अलग फूरियर रूपांतरण के लिए आवधिक सीमाओं के बजाय)। यह पहचान से अनुसरण करता है $$\cos\left[\frac{\pi}{N} \left(-n-1+\frac{1}{2}\right) \left(k+\frac{1}{2}\right)\right] = \cos\left[\frac{\pi}{N} \left(n+\frac{1}{2}\right) \left(k+\frac{1}{2}\right)\right]$$ और $$\cos\left[\frac{\pi}{N} \left(2N-n-1+\frac{1}{2}\right) \left(k+\frac{1}{2}\right)\right] = -\cos\left[\frac{\pi}{N} \left(n+\frac{1}{2}\right) \left(k+\frac{1}{2}\right)\right]$$. इस प्रकार, यदि इसके इनपुट लंबाई N की एक सरणी x हैं, तो हम इस सरणी को (x, −x) तक विस्तारित करने की कल्पना कर सकते हैंR, -एक्स, एक्सR, ...) और इसी तरह, जहां xR एक्स को उल्टे क्रम में दर्शाता है।

2एन इनपुट और एन आउटपुट के साथ एक एमडीसीटी पर विचार करें, जहां हम इनपुट को चार ब्लॉक (ए, बी, सी, डी) में विभाजित करते हैं, जिनमें से प्रत्येक का आकार एन/2 है। यदि हम इन्हें N/2 (MDCT परिभाषा में +N/2 शब्द से) द्वारा दाईं ओर स्थानांतरित करते हैं, तो (b, c, d) N DCT-IV इनपुट के अंत से आगे बढ़ते हैं, इसलिए हमें उन्हें मोड़ना चाहिए ऊपर वर्णित सीमा शर्तों के अनुसार वापस।


 * इस प्रकार, 2N इनपुट का MDCT (a, b, c, d) N इनपुट के DCT-IV के बिल्कुल बराबर है: (−cR-डी, ए-बीR), जहां आर ऊपर के रूप में उत्क्रमण को दर्शाता है।

(इस तरह, DCT-IV की गणना करने के लिए किसी भी एल्गोरिथ्म को मामूली रूप से MDCT पर लागू किया जा सकता है।)

इसी तरह, ऊपर दिया गया IMDCT सूत्र DCT-IV (जो इसका अपना प्रतिलोम है) का ठीक 1/2 है, जहां आउटपुट को (सीमा स्थितियों के माध्यम से) लंबाई 2N तक बढ़ाया जाता है और N/2 द्वारा बाईं ओर वापस स्थानांतरित कर दिया जाता है। व्युत्क्रम DCT-IV केवल इनपुट वापस देगा (−cR-डी, ए-बीR) उपर से। जब इसे सीमा शर्तों के माध्यम से बढ़ाया जाता है और स्थानांतरित किया जाता है, तो एक प्राप्त होता है:


 * IMDCT (MDCT (a, b, c, d)) = (a−bR, बी-एR, सी + डीR, डी + सीR)/ 2.

IMDCT आउटपुट का आधा इस प्रकार बेमानी है, जैसा कि b−aR = -(ए−बीR)R, और इसी तरह पिछले दो शब्दों के लिए। यदि हम इनपुट को N आकार के बड़े ब्लॉक A,B में समूहित करते हैं, जहाँ A = (a, b) और B = (c, d), हम इस परिणाम को सरल तरीके से लिख सकते हैं:


 * IMDCT (MDCT (A, B)) = (A−AR, बी + बीR)/ 2

अब कोई भी समझ सकता है कि टीडीएसी कैसे काम करता है। मान लीजिए कि कोई बाद के एमडीसीटी की गणना करता है, 50% ओवरलैप, 2 एन ब्लॉक (बी, सी)। इसके बाद IMDCT उपरोक्त के अनुरूप परिणाम देगा: (B−BR, सी + सीR) / 2. जब इसे पिछले IMDCT परिणाम के साथ ओवरलैपिंग आधे में जोड़ा जाता है, तो उलटी शर्तें रद्द हो जाती हैं और मूल डेटा को पुनर्प्राप्त करते हुए केवल B प्राप्त होता है।

टीडीएसी की उत्पत्ति
टाइम-डोमेन अलियासिंग रद्दीकरण शब्द की उत्पत्ति अब स्पष्ट है। तार्किक DCT-IV की सीमाओं से परे विस्तार करने वाले इनपुट डेटा का उपयोग डेटा को उसी तरह से अलियास करने का कारण बनता है जैसे कि Nyquist फ़्रीक्वेंसी से परे फ़्रीक्वेंसी कम फ़्रीक्वेंसी के लिए एलियासिंग कर रहे हैं, सिवाय इसके कि यह अलियासिंग टाइम डोमेन के बजाय समय डोमेन में होता है। फ़्रीक्वेंसी डोमेन: हम के योगदान को अलग नहीं कर सकते ए और बी काR (ए, बी, सी, डी) के एमडीसीटी या समकक्ष के लिए का परिणाम
 * IMDCT (MDCT (a, b, c, d)) = (a−bR, बी-एR, सी + डीR, डी + सीR) / 2.

संयोजन सी-डीR और इसी तरह, जोड़े जाने पर संयोजनों को रद्द करने के लिए सटीक रूप से सही संकेत होते हैं।

विषम N के लिए (जो शायद ही कभी व्यवहार में उपयोग किया जाता है), N/2 एक पूर्णांक नहीं है इसलिए MDCT केवल DCT-IV का शिफ्ट क्रमचय नहीं है। इस मामले में, आधे नमूने द्वारा अतिरिक्त बदलाव का मतलब है कि MDCT/IMDCT DCT-III/II के बराबर हो जाता है, और विश्लेषण ऊपर के अनुरूप है।

चिकनाई और असंततता
हमने ऊपर देखा है कि 2N इनपुट का MDCT (a, b, c, d) N इनपुट के DCT-IV के बराबर है (-सीR−d, एक-बीR). DCT-IV को इसके लिए डिज़ाइन किया गया है मामला जहां सही सीमा पर कार्य विषम है, और इसलिए सही सीमा के पास के मान 0 के करीब हैं। यदि इनपुट सिग्नल सुचारू है, यह मामला है: ए और बी के सबसे दाहिने घटकR हैं इनपुट अनुक्रम में लगातार (ए, बी, सी, डी), और इसलिए उनका अंतर छोटा है। आइए अंतराल के मध्य को देखें: अगर हम उपरोक्त अभिव्यक्ति को फिर से लिखते हैं (-सीR−d, एक-बीR) = (-डी, ए) - (बी, सी)R, दूसरा कार्यकाल, (बी, सी)R, चिकना देता है बीच में संक्रमण। हालाँकि, पहले पद में, (−d, a), एक है संभावित विच्छेदन जहां का सही अंत −d, a के बाएँ सिरे से मिलता है। विंडो फ़ंक्शन का उपयोग करने का यही कारण है जो घटकों को कम करता है इनपुट अनुक्रम की सीमाओं के पास (ए, बी, सी, डी) 0 की ओर।

विंडो एमडीसीटी
के लिए टीडीएसी

ऊपर, TDAC संपत्ति सामान्य MDCT के लिए सिद्ध हुई थी, यह दिखाते हुए कि बाद के ब्लॉकों के IMDCTs को उनके अतिव्यापी आधे हिस्से में जोड़ने से मूल डेटा ठीक हो जाता है। विंडो वाले MDCT के लिए इस उलटे गुण की व्युत्पत्ति केवल थोड़ी अधिक जटिल है।

आकार एन के ब्लॉक ए, बी, सी के लिए 2 एन इनपुट (ए, बी) और (बी, सी) के लगातार सेट ओवरलैप करने पर विचार करें। ऊपर से याद करें कि कब $$(A,B)$$ और $$(B,C)$$ MDCTed, IMDCTed हैं, और उनके अतिव्यापी आधे हिस्से में जोड़े गए हैं, हम प्राप्त करते हैं $$(B+B_R) / 2 + (B-B_R) / 2 = B$$, मूल डेटा।

अब हम मानते हैं कि हम MDCT इनपुट और IMDCT आउटपुट दोनों को 2N लंबाई के विंडो फ़ंक्शन से गुणा करते हैं। ऊपर के रूप में, हम एक सममित विंडो फ़ंक्शन मानते हैं, जो कि फॉर्म का है $$(W,W_R)$$ जहां W लंबाई-N वेक्टर है और R पहले की तरह उत्क्रमण को दर्शाता है। तब प्रिंसेन-ब्रैडली स्थिति को इस रूप में लिखा जा सकता है $$W^2 + W_R^2 = (1,1,\ldots)$$, वर्गों और परिवर्धन के साथ तत्ववार प्रदर्शन किया।

इसलिए, MDCTing के बजाय $$(A,B)$$, अब हम एमडीसीटी $$(WA,W_R B)$$ (सभी गुणाओं के साथ तत्ववार प्रदर्शन किया गया)। जब इसे IMDCTed किया जाता है और विंडो फ़ंक्शन द्वारा फिर से गुणा (तत्ववार) किया जाता है, तो अंतिम-एन आधा बन जाता है:
 * $$W_R \cdot (W_R B+(W_R B)_R) =W_R \cdot (W_R B+W B_R) = W_R^2 B+WW_R B_R$$.

(ध्यान दें कि अब हमारे पास 1/2 से गुणा नहीं है, क्योंकि विंडो वाले मामले में IMDCT सामान्यीकरण 2 के कारक से भिन्न होता है।)

इसी तरह, विंडो एमडीसीटी और आईएमडीसीटी की $$(B,C)$$ पैदावार, इसकी पहली-एन छमाही में:
 * $$W \cdot (WB - W_R B_R) = W^2 B - W W_R B_R$$.

जब हम इन दो हिस्सों को एक साथ जोड़ते हैं, तो हम प्राप्त करते हैं:


 * $$(W_R^2 B+WW_R B_R) + (W^2 B - W W_R B_R)= \left(W_R^2 + W^2\right)B = B,$$

मूल डेटा पुनर्प्राप्त करना।

यह भी देखें

 * असतत कोज्या परिवर्तन
 * अन्य अतिव्यापी विंडो वाले फूरियर रूपांतरणों में शामिल हैं:
 * संग्राहक जटिल लैप्ड रूपांतरण
 * शॉर्ट-टाइम फूरियर रूपांतरण
 * वेल्च की विधि
 * ऑडियो कोडिंग प्रारूप
 * ऑडियो संपीड़न (डेटा)

ग्रन्थसूची

 * Henrique S. Malvar, Signal Processing with Lapped Transforms (Artech House: Norwood MA, 1992).
 * A. W. Johnson and A. B. Bradley, "Adaptive transform coding incorporating time domain aliasing cancellation," Speech Comm. 6, 299-308 (1987).
 * For algorithms, see examples:
 * Chi-Min Liu and Wen-Chieh Lee, "A unified fast algorithm for cosine modulated filterbanks in current audio standards", J. Audio Engineering 47 (12), 1061-1075 (1999).
 * V. Britanak and K. R. Rao, "A new fast algorithm for the unified forward and inverse MDCT/MDST computation," Signal Processing 82, 433-459 (2002)
 * Vladimir Nikolajevic and Gerhard Fettweis, "Computation of forward and inverse MDCT using Clenshaw's recurrence formula," IEEE Trans. Sig. Proc. 51 (5), 1439-1444 (2003)
 * Che-Hong Chen, Bin-Da Liu, and Jar-Ferr Yang, "Recursive architectures for realizing modified discrete cosine transform and its inverse," IEEE Trans. Circuits Syst. II: Analog Dig. Sig. Proc. 50 (1), 38-45 (2003)
 * J.S. Wu, H.Z. Shu, L. Senhadji, and L.M. Luo, "Mixed-radix algorithm for the computation of forward and inverse MDCTs," IEEE Trans. Circuits Syst. I: Reg. Papers 56 (4), 784-794 (2009)
 * V. Britanak, "A survey of efficient MDCT implementations in MP3 audio coding standard: retrospective and state-of-the-art," Signal. Process. 91 (4), 624-672(2011)