Кіріспе

Сигналды өңдеуде қолданылатын математикалық трансформация. Модификацияланған дискретті косинус трансформациясы (MDCT) – IV типті дискретті косинус трансформациясына (DCT IV) негізделген трансформация, оның қосымша қасиеті – жабысу: ол үлкен деректер жиынтығының тікелей келесі блоктарында орындалуға арналған, мұнда келесі блоктардың арасында жамылу жасалады, сонда бір блоктың соңғы жартысы келесі блоктың бірінші жартысымен сәйкес келеді. Бұл жамылу, DCT-нің энергияны шоғырландыру қасиеттерімен қатар, MDCT-ні сигналды сығымдау үшін ерекше тартымды етеді, себебі ол блок шекараларынан туындайтын бұрмалаулардан (артефакттардан) сақтануға көмектеседі. Осы артықшылықтарының нәтижесінде MDCT аудио деректерін сығымдауда ең көп қолданылатын жоғалтулы сығыстыру әдісі болып табылады. Ол MP3, Dolby Digital (AC 3), Vorbis (Ogg), Windows Media Audio (WMA), ATRAC, Cook, Advanced Audio Coding (AAC), High Definition Coding (HDC), LDAC, Dolby AC 4 және MPEG H 3D Audio сияқты қазіргі заманғы аудио кодтау стандарттарында, сондай-ақ AAC LD (LD MDCT), G.722.1, G.729.1, CELT және Opus сияқты сөйлеу кодтау стандарттарында қолданылады. Дискретті косинус трансформациясын (DCT) алғаш рет Насыр Ахмед 1972 жылы ұсынды, ал Ахмед Т. Натаражан мен К. Р. Раомен бірге 1974 жылы көрсетті. MDCT кейіннен Джон П. Принсен, А. В. Джонсон және Алан Б. Брэдли 1987 жылы Суррей университетінде ұсынды, бұған дейін Принсен мен Брэдли (1986) MDCT-нің негізгі принципі – уақыт доменіндегі қате сигналдарды жою (TDAC) әдісін әзірлеген болатын, ол төменде сипатталған. (Дискретті синустық трансформацияға негізделген MDST және DCT немесе DCT/DST комбинацияларының басқа, сирек қолданылатын түрлеріне негізделген MDCT-нің басқа да ұқсас трансформациялары бар.) MP3-де MDCT тікелей аудио сигналына емес, 32 жолақты полифазды квадраттау сүзгісі (PQF) банкінің шығысына қолданылады. Бұл MDCT шығысы PQF сүзгі банкіне тән қате сигналдарды азайту үшін арнайы формуламен өңделеді. Сүзгі банкі мен MDCT-нің мұндай комбинациясы гибридті сүзгі банкі немесе субдиапазонды MDCT деп аталады. AAC, керісінше, әдетте таза MDCT қолданады; тек (сирек қолданылатын) MPEG 4 AAC SSR нұсқасы (Sony) төрт жолақты PQF банкін және одан кейін MDCT қолданады. MP3-ке ұқсас, ATRAC қатарланған квадраттық айна сүзгілерін (QMF) және одан кейін MDCT қолданады.

Анықтама

Лаппен түрлендіру ретінде MDCT, басқа Фурьеге байланысты түрлендірулермен салыстырғанда, кіріс деректер санына қарағанда екі есе аз шығыс деректерге ие болғандықтан, сәл ерекше. Атап айтқанда, бұл – сызықтық функция (мұнда R нақты сандар жиынын білдіреді). 2N санындағы x0, ..., x2N-1 нақты сандары, мына формула бойынша N санындағы X0, ..., XN-1 нақты сандарына түрлендіріледі: (Бұл түрлендіру алдындағы нормалау коэффициенті, мұндағы бірлік, кездейсоқ шарттылық болып табылады және әртүрлі нұсқаулықтарда өзгеше болуы мүмкін. Тек MDCT және IMDCT нормалауларының көбейтіндісі ғана белгілі бір шектеуге бағынады.)

Кері түрлендіру

Кері MDCT IMDCT деп аталады. Кірістер мен шығыстардың саны әртүрлі болғандықтан, көз тартарлықтай, MDCT кері айналдырылмайтын сияқты көрінеді. Дегенмен, толық кері айналдыруға жетеді, себебі келесі бір-бірімен жапсарлас блоктардың IMDCT-лерін қосу арқылы қателер өзара жойылып, бастапқы деректер қалпына келтіріледі; бұл техника уақыт доменіндегі қателерді жою (TDAC) деп аталады. IMDCT N нақты санды X0, …, XN-1 2N нақты санға y0, …, y2N-1 формуласы бойынша түрлендіреді: (DCT IV сияқты, ортогональды түрлендіруде кері түрлендіру алға түрлендірумен бірдей формада болады.) Терезеленген MDCT үшін, әдеттегі терезе нормалауда (төменде қараңыз), IMDCT алдындағы нормалау коэффициентін 2-ге көбейту керек (яғни, ол 2/N-ге тең болады).

Есептеу

MDCT формуласын тікелей қолдану O(N²) операцияларды талап етеді, бірақ есептеуді рекурсивті түрде бөліп, жылдам Фурье түрлендіруіндегідей (FFT) жасаса, оны O(N log N) күрделілігімен есептеуге болады. MDCT-ны DFT (FFT) немесе DCT сияқты басқа түрлендірулер арқылы, O(N) көлемді алдын ала және кейін өңдеу қадамдарымен біріктіре отырып есептеуге де болады. Сонымен қатар, төменде сипатталғандай, DCT IV үшін кез келген алгоритм MDCT және IMDCT-ны есептеу әдісін бірден ұсынады.