Введение
Математическое преобразование, используемое в обработке сигналов. Модифицированная дискретная косинусная трансформация (MDCT) – это преобразование, основанное на дискретной косинусной трансформации типа IV (DCT IV), с дополнительным свойством перекрытия (lapping): оно предназначено для выполнения на последовательных блоках большего набора данных, где последующие блоки перекрываются таким образом, что последняя половина одного блока совпадает с первой половиной следующего блока. Это перекрытие, в дополнение к свойствам сжатия энергии 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, основанное на дискретной синусоидальной трансформации, а также другие, редко используемые формы MDCT, основанные на различных типах DCT или комбинациях DCT/DST.) В MP3 MDCT не применяется непосредственно к аудиосигналу, а скорее к выходу 32-полосного полифазного квадратурного фильтра (PQF). Выход этой MDCT подвергается постобработке с использованием формулы уменьшения псевдоалиасов для снижения типичного псевдоалиасинга фильтра PQF. Такая комбинация фильтра и MDCT называется гибридным фильтром или субполосным MDCT. AAC, с другой стороны, обычно использует чистую MDCT; только (редко используемый) вариант MPEG-4 AAC SSR (от Sony) использует четырехполосный PQF-банк, за которым следует MDCT. Аналогично MP3, ATRAC использует каскадные квадратурные зеркальные фильтры (QMF), за которыми следует MDCT.
The modified discrete cosine transform (MDCT) is a transform based on the type IV discrete cosine transform (DCT IV), with the additional property of being lapped: it is designed to be performed on consecutive blocks of a larger dataset, where subsequent blocks are overlapped so that the last half of one block coincides with the first half of the next block. This overlapping, in addition to the energy compaction qualities of the DCT, makes the MDCT especially attractive for signal compression applications, since it helps to avoid artifacts stemming from the block boundaries. As a result of these advantages, the MDCT is the most widely used lossy compression technique in audio data compression. It is employed in most modern audio coding standards, including 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, and MPEG H 3D Audio, as well as speech coding standards such as AAC LD (LD MDCT), G.722.1, G.729.1, CELT, and Opus. The discrete cosine transform (DCT) was first proposed by Nasir Ahmed in 1972, and demonstrated by Ahmed with T. Natarajan and K. R. Rao in 1974. The MDCT was later proposed by John P. Princen, A. W. Johnson and Alan B. Bradley at the University of Surrey in 1987, following earlier work by Princen and Bradley (1986) to develop the MDCT's underlying principle of time domain aliasing cancellation (TDAC), described below. (There also exists an analogous transform, the MDST, based on the discrete sine transform, as well as other, rarely used, forms of the MDCT based on different types of DCT or DCT/DST combinations.) In MP3, the MDCT is not applied to the audio signal directly, but rather to the output of a 32 band polyphase quadrature filter (PQF) bank. The output of this MDCT is postprocessed by an alias reduction formula to reduce the typical aliasing of the PQF filter bank. Such a combination of a filter bank with an MDCT is called a hybrid filter bank or a subband MDCT. AAC, on the other hand, normally uses a pure MDCT; only the (rarely used) MPEG 4 AAC SSR variant (by Sony) uses a four band PQF bank followed by an MDCT. Similar to MP3, ATRAC uses stacked quadrature mirror filters (QMF) followed by an MDCT.
Определение
Как оконная трансформация, MDCT несколько необычна по сравнению с другими преобразованиями, связанными с преобразованием Фурье, поскольку имеет вдвое меньше выходных данных, чем входных (вместо их равного количества). В частности, это линейная функция (где R обозначает множество действительных чисел). 2N действительных чисел x0, …, x2N-1 преобразуются в N действительных чисел X0, …, XN-1 по формуле:
(Коэффициент нормализации перед этим преобразованием, здесь равный единице, является произвольным соглашением и различается в разных источниках. Ограничено лишь произведение нормализаций MDCT и обратного 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²) операций, можно вычислить то же самое со сложностью O(N log N), рекурсивно факторизуя вычисления, как в быстром преобразовании Фурье (FFT). Также можно вычислять MDCT с помощью других преобразований, обычно DFT (FFT) или DCT, в сочетании с O(N) этапами предварительной и последующей обработки. Кроме того, как описано ниже, любой алгоритм для DCT-IV сразу же предоставляет способ вычисления MDCT и IMDCT четного размера.