La transformada discreta del coseno modificada ( MDCT ) es una transformada basada en la transformada discreta del coseno de tipo IV (DCT-IV), con la propiedad adicional de superposición : está diseñada para aplicarse a bloques consecutivos de un conjunto de datos mayor , donde los bloques subsiguientes se superponen de manera que la última mitad de un bloque coincide con la primera mitad del siguiente. Esta superposición, sumada a las cualidades de compactación de energía de la DCT, hace que la MDCT sea especialmente atractiva para aplicaciones de compresión de señales, ya que ayuda a evitar artefactos derivados de los límites de los bloques. Como resultado de estas ventajas, la MDCT es la técnica de compresión con pérdida más utilizada en la compresión de datos de audio . Se emplea en la mayoría de los estándares de codificación de audio modernos , incluidos MP3 , Dolby Digital (AC-3), Vorbis (Ogg), Windows Media Audio (WMA), ATRAC , Cook , Advanced Audio Coding (AAC), [ 1 ] High-Definition Coding (HDC), [ 2 ] LDAC , Dolby AC-4 , [ 3 ] y MPEG-H 3D Audio , [ 4 ] así como estándares de codificación de voz como AAC-LD (LD-MDCT), [ 5 ] G.722.1 , [ 6 ] G.729.1 , [ 7 ] CELT , [ 8 ] y Opus . [ 9 ] [ 10 ]
La transformada discreta del coseno (DCT) fue propuesta por primera vez por Nasir Ahmed en 1972, [ 11 ] y demostrada por Ahmed junto con T. Natarajan y KR Rao en 1974. [ 12 ] La MDCT fue propuesta posteriormente por John P. Princen, AW Johnson y Alan B. Bradley en la Universidad de Surrey en 1987, [ 13 ] siguiendo el trabajo previo de Princen y Bradley (1986) [ 14 ] para desarrollar el principio subyacente de cancelación de aliasing en el dominio del tiempo (TDAC) de la MDCT , que se describe a continuación. (También existe una transformada análoga, la MDST, basada en la transformada discreta del seno , así como otras formas de la MDCT, poco utilizadas, basadas en diferentes tipos de DCT o combinaciones de DCT/DST).
En MP3, la MDCT no se aplica directamente a la señal de audio, sino a la salida de un banco de filtros de cuadratura polifásica (PQF) de 32 bandas. La salida de esta MDCT se procesa posteriormente mediante una fórmula de reducción de aliasing para minimizar el aliasing típico del banco de filtros PQF. Esta combinación de un banco de filtros con una MDCT se denomina banco de filtros híbrido o MDCT de subbanda . Por otro lado, AAC normalmente utiliza una MDCT pura; solo la variante MPEG-4 AAC-SSR (de Sony ), poco utilizada, emplea un banco PQF de cuatro bandas seguido de una MDCT. De forma similar a MP3, ATRAC utiliza filtros de espejo de cuadratura apilados (QMF) seguidos de una MDCT.
Definición
Como transformada solapada, la MDCT es algo inusual en comparación con otras transformadas relacionadas con Fourier, ya que tiene la mitad de salidas que de entradas (en lugar del mismo número). En particular, es una función lineal.(donde R denota el conjunto de los números reales ). Los 2N números reales x₀ , ..., x₂N − 1 se transforman en los N números reales X₀ , ..., XₙN − 1 según la fórmula
El coeficiente de normalización que precede a esta transformación, en este caso la unidad, es una convención arbitraria y varía según el tratamiento. Solo el producto de las normalizaciones de la MDCT y la IMDCT, que se muestra a continuación, está sujeto a restricciones.
Transformación inversa
La MDCT inversa se conoce como IMDCT . Debido a que hay diferente número de entradas y salidas, a primera vista podría parecer que la MDCT no debería ser invertible. Sin embargo, la invertibilidad perfecta se logra sumando las IMDCT superpuestas de bloques superpuestos subsiguientes, lo que provoca que los errores se cancelen y se recuperen los datos originales; esta técnica se conoce como cancelación de aliasing en el dominio del tiempo ( TDAC ).
La IMDCT transforma N números reales X 0 , ..., X N −1 en 2 N números reales y 0 , ..., y 2 N −1 según la fórmula
Al igual que en el caso de la DCT-IV , una transformada ortogonal, la inversa tiene la misma forma que la transformada directa.
En el caso de una MDCT con ventana y la normalización de ventana habitual (ver más abajo), el coeficiente de normalización delante de la IMDCT debe multiplicarse por 2 (es decir, convertirse en 2/ N ).
Cálculo
Aunque la aplicación directa de la fórmula MDCT requeriría O( N² ) operaciones, es posible calcular lo mismo con una complejidad de solo O( N log N ) factorizando recursivamente el cálculo, como en la transformada rápida de Fourier (FFT). También se pueden calcular MDCT mediante otras transformadas, típicamente una DFT (FFT) o una DCT, combinadas con pasos de preprocesamiento y postprocesamiento de O( N ). Además, como se describe a continuación, cualquier algoritmo para la DCT-IV proporciona inmediatamente un método para calcular la MDCT y la IMDCT de tamaño par.
Funciones de ventana

En las aplicaciones típicas de compresión de señales, las propiedades de la transformación se mejoran aún más mediante el uso de una función de ventana w n ( n = 0, ..., 2 N − 1) que se multiplica por x n en la MDCT y por y n en las fórmulas IMDCT anteriores, para evitar discontinuidades en los límites n = 0 y 2 N haciendo que la función tienda suavemente a cero en esos puntos. (Es decir, la función de ventana se aplica a los datos antes de la MDCT o después de la IMDCT). En principio, x e y podrían tener funciones de ventana diferentes, y la función de ventana también podría cambiar de un bloque a otro (especialmente en el caso de que se combinen bloques de datos de diferentes tamaños), pero para simplificar, consideramos el caso común de funciones de ventana idénticas para bloques de igual tamaño.
La transformada sigue siendo invertible (es decir, TDAC funciona), para una ventana simétrica w n = w 2 N −1− n , siempre que w satisfaga la condición de Princen–Bradley:
Se utilizan diversas funciones de ventana. Una ventana que produce una forma conocida como transformada superpuesta modulada (MLT) [ 15 ] [ 16 ] viene dada por
y se utiliza para MP3 y MPEG-2 AAC, y
para Vorbis. AC-3 utiliza una ventana derivada de Kaiser-Bessel (KBD) , y MPEG-4 AAC también puede utilizar una ventana KBD.
Cabe destacar que las ventanas aplicadas a la MDCT son diferentes de las utilizadas para otros tipos de análisis de señales, ya que deben cumplir la condición de Princen-Bradley. Una de las razones de esta diferencia es que las ventanas de la MDCT se aplican dos veces: tanto para el análisis (MDCT) como para la síntesis (IMDCT).
Relación con DCT-IV y origen de TDAC
Como se puede apreciar al examinar las definiciones, para N par , la MDCT es esencialmente equivalente a una DCT-IV, donde la entrada se desplaza N /2 y se transforman dos bloques de datos de N elementos a la vez. Al analizar esta equivalencia con mayor detenimiento, se pueden derivar fácilmente propiedades importantes como la TDAC.
Para definir la relación precisa con la DCT-IV, hay que tener en cuenta que la DCT-IV corresponde a condiciones de contorno pares/impares alternas: pares en su límite izquierdo (alrededor de n = − 1/2), impares en su límite derecho (alrededor de n = N − 1/2), y así sucesivamente (en lugar de límites periódicos como en una DFT ). Esto se deduce de las identidades
y
Así, si sus entradas son una matriz x de longitud N , podemos imaginar extender esta matriz a ( x , − x R , − x , x R , ...) y así sucesivamente, donde x R denota x en orden inverso.
Consideremos una MDCT con 2N entradas y N salidas, donde dividimos las entradas en cuatro bloques ( a , b , c , d ), cada uno de tamaño N /2. Si los desplazamos a la derecha en N /2 (desde el término + N /2 en la definición de MDCT), entonces ( b , c , d ) se extienden más allá del final de las N entradas DCT-IV, por lo que debemos "plegarlos" de vuelta según las condiciones de contorno descritas anteriormente.
- Por lo tanto, la MDCT de 2 N entradas ( a , b , c , d ) es exactamente equivalente a una DCT-IV de las N entradas: ( − c R − d , a − b R ), donde R denota inversión como se indicó anteriormente.
De esta forma, cualquier algoritmo para calcular el DCT-IV se puede aplicar fácilmente al MDCT.
De manera similar, la fórmula IMDCT anterior es precisamente 1/2 de la DCT-IV (que es su propia inversa), donde la salida se extiende (a través de las condiciones de contorno) a una longitud 2 N y se desplaza hacia la izquierda N /2. La DCT-IV inversa simplemente devolvería las entradas ( − c R − d , a − b R ) de arriba. Cuando esto se extiende a través de las condiciones de contorno y se desplaza, se obtiene
- IMDCT(MDCT( a , b , c , d )) = ( a − b R , b − a R , c + d R , d + c R )/2.
La mitad de las salidas de IMDCT son, por lo tanto, redundantes, ya que b − a R = − ( a − b R ) R , y lo mismo ocurre con los dos últimos términos. Si agrupamos la entrada en bloques más grandes A , B de tamaño N , donde A = ( a , b ) y B = ( c , d ), podemos escribir este resultado de una manera más sencilla:
- IMDCT(MDCT( A , B )) = ( A − A R , B + B R )/2.
Ahora se puede comprender cómo funciona TDAC. Supongamos que se calcula la MDCT del bloque subsiguiente, con un solapamiento del 50%, 2N ( B, C). La IMDCT dará como resultado, de forma análoga a lo anterior: (B − BR , C + CR ) / 2 . Al sumar este resultado al resultado de la IMDCT anterior en la mitad solapada, los términos invertidos se cancelan y se obtiene simplemente B , recuperando así los datos originales.
Origen de TDAC
El origen del término "cancelación de aliasing en el dominio del tiempo" ahora está claro. El uso de datos de entrada que se extienden más allá de los límites de la DCT-IV lógica hace que los datos se aliasen de la misma manera que las frecuencias más allá de la frecuencia de Nyquist se aliasean a frecuencias más bajas, excepto que este aliasing ocurre en el dominio del tiempo en lugar del dominio de la frecuencia: no podemos distinguir las contribuciones de a y de b R a la MDCT de ( a , b , c , d ), o equivalentemente, al resultado de
- IMDCT(MDCT( a , b , c , d ))= ( a − b R , b − a R , c + d R , d + c R )/2.
Las combinaciones c − d R y así sucesivamente tienen precisamente los signos correctos para que las combinaciones se cancelen cuando se suman.
Para valores impares de N (que rara vez se utilizan en la práctica), N /2 no es un número entero, por lo que la MDCT no es simplemente una permutación desplazada de una DCT-IV. En este caso, el desplazamiento adicional de media muestra implica que la MDCT/IMDCT se vuelve equivalente a la DCT-III/II, y el análisis es análogo al anterior.
Suavidad y discontinuidades
Hemos visto anteriormente que la MDCT de 2 N entradas ( a , b , c , d ) es equivalente a una DCT-IV de las N entradas (− c R − d , a − b R ). La DCT-IV está diseñada para el caso en que la función en el límite derecho es impar y, por lo tanto, los valores cerca del límite derecho son cercanos a 0. Si la señal de entrada es suave, este es el caso: los componentes más a la derecha de a y b R son consecutivos en la secuencia de entrada ( a , b , c , d ), y por lo tanto su diferencia es pequeña. Veamos el medio del intervalo: si reescribimos la expresión anterior como (− c R − d , a − b R ) = (− d , a ) − ( b , c ) R , el segundo término, ( b , c ) R , da una transición suave en el medio. Sin embargo, en el primer término, (− d , a ), existe una posible discontinuidad donde el extremo derecho de − d se encuentra con el extremo izquierdo de a . Esta es la razón por la que se utiliza una función de ventana que reduce los componentes cercanos a los límites de la secuencia de entrada ( a , b , c , d ) hacia 0.
TDAC para MDCT con ventana
Anteriormente, se demostró la propiedad TDAC para la MDCT ordinaria, mostrando que la suma de las IMDCT de bloques subsiguientes en su mitad superpuesta recupera los datos originales. La derivación de esta propiedad inversa para la MDCT con ventana es solo un poco más compleja.
Consideremos dos conjuntos consecutivos superpuestos de 2N entradas ( A , B ) y ( B , C ), para bloques A , B , C de tamaño N. Recordemos de arriba que cuandoyson MDCT, IMDCT y sumados en su mitad superpuesta, obtenemos, los datos originales.
Ahora suponemos que multiplicamos tanto las entradas MDCT como las salidas IMDCT por una función ventana de longitud 2N . Como se indicó anteriormente, asumimos una función ventana simétrica, que por lo tanto tiene la formadonde W es un vector de longitud N y R denota la inversión como antes. Entonces, la condición de Princen-Bradley se puede escribir como, con los cuadrados y las sumas realizadas elemento por elemento.
Por lo tanto, en lugar de MDCTAhora tenemos MDCT(con todas las multiplicaciones realizadas elemento a elemento). Cuando se aplica la transformada inversa de coseno discontinuo (IMDCT) y se vuelve a multiplicar (elemento a elemento) por la función de ventana, la última mitad N se convierte en:
- .
(Tenga en cuenta que ya no tenemos la multiplicación por 1/2, porque la normalización IMDCT difiere por un factor de 2 en el caso con ventana).
De manera similar, la MDCT con ventana y la IMDCT derinde, en su primera mitad N :
- .
Cuando sumamos estas dos mitades, obtenemos:
recuperando los datos originales.
Véase también
- Transformada discreta del coseno
- Otras transformadas de Fourier con ventanas superpuestas incluyen:
- Formato de codificación de audio
- Compresión de audio (datos)
Referencias
- ↑ Luo, Fa-Long (2008). Estándares de radiodifusión multimedia móvil: tecnología y práctica . Springer Science & Business Media . pág. 590. ISBN 9780387782638.
- ↑ Jones, Graham A.; Layer, David H.; Osenkowsky, Thomas G. (2013). Manual de ingeniería de la Asociación Nacional de Radiodifusores: Manual de ingeniería de la NAB . Taylor & Francis . págs. 558–559 . ISBN 978-1-136-03410-7.
- ↑ "Dolby AC-4: Entrega de audio para servicios de entretenimiento de próxima generación" (PDF) . Dolby Laboratories . Junio de 2015. Consultado el 11 de noviembre de 2019 .
- ↑ Bleidt, RL; Sen, D.; Niedermeier, A.; Czelhan, B.; Füg, S.; et al. (2017). "Desarrollo del sistema de audio de TV MPEG-H para ATSC 3.0" (PDF) . IEEE Transactions on Broadcasting . 63 (1): 202–236 . doi : 10.1109/TBC.2017.2661258 . S2CID 30821673 .
- ↑ Schnell, Markus; Schmidt, Markus; Jander, Manuel; Albert, Tobias; Geiger, Ralf; Ruoppila, Vesa; Ekstrand, Per; Bernhard, Grill (octubre de 2008). MPEG-4 Enhanced Low Delay AAC: un nuevo estándar para la comunicación de alta calidad (PDF) . 125.ª Convención de la AES. Fraunhofer IIS . Audio Engineering Society . Consultado el 20 de octubre de 2019 .
- ↑ Lutzky, Manfred; Schuller, Gerald; Gayer, Marc; Krämer, Ulrich; Wabnik, Stefan (mayo de 2004). Una guía sobre el retardo de los códecs de audio (PDF) . 116.ª Convención de la AES. Fraunhofer IIS . Audio Engineering Society . Consultado el 24 de octubre de 2019 .
- ↑ Nagireddi, Sivannarayana (2008). Procesamiento de señales de voz y fax VoIP . John Wiley & Sons . pág. 69. ISBN 9780470377864.
- ↑ Presentación del códec CELT Archivada el 7 de agosto de 2011 en Wayback Machine por Timothy B. Terriberry (65 minutos de vídeo; véanse también las diapositivas de la presentación archivadas el 16 de noviembre de 2023 en Wayback Machine en formato PDF).
- ↑ "Opus Codec" . Opus (Página principal). Fundación Xiph.org . Consultado el 31 de julio de 2012 .
- ↑ Bright, Peter (12 de septiembre de 2012). "El nuevo códec de audio Opus estandarizado cumple todas las funciones, desde el chat en línea hasta la música" . Ars Technica . Consultado el 28 de mayo de 2014 .
- ↑ Ahmed, Nasir (enero de 1991). "Cómo desarrollé la transformada discreta del coseno" (PDF) . Procesamiento de señales digitales . 1 (1): 4– 5. Bibcode : 1991DSP.....1....4A . doi : 10.1016/1051-2004(91)90086-Z .
- ↑ Ahmed, Nasir ; Natarajan, T.; Rao, KR (enero de 1974), "Transformada discreta del coseno", IEEE Transactions on Computers , C-23 (1): 90–93 , doi : 10.1109/TC.1974.223784 , S2CID 149806273
- ↑ Princen, John P.; Johnson, AW; Bradley, Alan B. (1987). "Codificación de subbanda/transformación utilizando diseños de bancos de filtros basados en la cancelación de aliasing en el dominio del tiempo". ICASSP '87. Conferencia Internacional IEEE sobre Acústica, Habla y Procesamiento de Señales . Vol. 12. pp. 2161– 2164. doi : 10.1109/ICASSP.1987.1169405 . S2CID 58446992 .
- ↑ John P. Princen, Alan B. Bradley: Diseño de banco de filtros de análisis/síntesis basado en la cancelación de aliasing en el dominio del tiempo , IEEE Trans. Acoust. Speech Signal Processing, ASSP-34 (5), 1153–1161, 1986. Describió un precursor del MDCT utilizando una combinación de transformadas discretas de coseno y seno.
- ↑ HS Malvar, "Transformadas superpuestas para una codificación eficiente de transformada/subbanda", IEEE Trans. on Acoustics, Speech, and Signal Processing , vol. 38, n.º 6, págs. 969–978 (Ecuación 22), junio de 1990.
- ↑ HS Malvar, "Bancos de filtros QMF modulados con reconstrucción perfecta", Electronics Letters , vol. 26, n.º 13, págs. 906–907 (Ecuación 13), junio de 1990.
Bibliografía
- Henrique S. Malvar, Procesamiento de señales con transformadas superpuestas (Artech House: Norwood, MA, 1992).
- AW Johnson y AB Bradley, "Codificación de transformación adaptativa que incorpora cancelación de aliasing en el dominio del tiempo", Speech Comm. 6 , 299-308 (1987).
- Para ver los algoritmos, consulte los ejemplos:
- Chi-Min Liu y Wen-Chieh Lee, " Un algoritmo rápido unificado para bancos de filtros modulados en coseno en los estándares de audio actuales ", J. Audio Engineering 47 (12), 1061-1075 (1999).
- V. Britanak y KR Rao, "Un nuevo algoritmo rápido para el cálculo unificado directo e inverso de MDCT/MDST", Procesamiento de señales 82 , 433-459 (2002)
- Vladimir Nikolajevic y Gerhard Fettweis, "Cálculo de MDCT directa e inversa utilizando la fórmula de recurrencia de Clenshaw", IEEE Trans. Sig. Proc. 51 (5), 1439-1444 (2003)
- Che-Hong Chen, Bin-Da Liu y Jar-Ferr Yang, "Arquitecturas recursivas para la realización de la transformada discreta del coseno modificada y su inversa", IEEE Trans. Circuits Syst. II: Analog Dig. Sig. Proc. 50 (1), 38-45 (2003)
- JS Wu, HZ Shu, L. Senhadji y LM Luo, "Algoritmo de base mixta para el cálculo de MDCT directas e inversas", IEEE Trans. Circuits Syst. I: Reg. Papers 56 (4), 784-794 (2009)
- V. Britanak, "Un estudio de implementaciones eficientes de MDCT en el estándar de codificación de audio MP3: retrospectiva y estado del arte", Signal. Process. 91 (4), 624-672 (2011)
- Análisis de Fourier
- Transformaciones discretas
- Compresión de datos