Введение

Математическое преобразование, используемое в обработке сигналов. Модифицированная дискретная косинусная трансформация (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.

Определение

Как оконная трансформация, 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 четного размера.