Modified Discrete Cosine Transform

From Hydrogenaudio Knowledgebase
Revision as of 13:07, 5 October 2016 by (Talk)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The Modified Discrete Cosine Transform (MDCT) is a DCT-IV transform. The MDCT tries to minimize blocking artifacts. It is common in lossy audio codecs including MP3, Vorbis, and AAC.

As a lapped transform, the MDCT is a bit unusual compared to other Fourier-related transforms in that it has half as many outputs as inputs (instead of the same number). In particular, it is a linear function F : R2n -> Rn (where R denotes the set of real numbers). The 2n real numbers x0, ..., x2n-1 are transformed into the n real numbers f0, ..., fn-1 according to the formula:

MDCT formula

The inverse MDCT is known as the IMDCT. Because there are different numbers of inputs and outputs, at first glance it might seem that the MDCT should not be invertible. However, perfect invertibility is achieved by adding the overlapped IMDCTs of subsequent overlapping blocks, causing the errors to cancel and the original data to be retrieved; this technique is known as time-domain aliasing cancellation (TDAC).

The IMDCT transforms n real numbers f0, ..., fn-1 into 2n real numbers y0, ..., y2n-1 according to the formula:

IMDCT formula

The MDCT was developed by Henrique Malvar, an engineer now working for Microsoft who had considerable participation in creating the WMA format.