La transformada de coseno discreta modificada ( MDCT ) es una transformada basada en la transformada de coseno discreta de tipo IV (DCT-IV), con la propiedad adicional de superponerse : está diseñada para realizarse en bloques consecutivos de un conjunto de datos más grande , donde posteriormente los bloques se superponen de modo que la última mitad de un bloque coincida con la primera mitad del siguiente bloque. Esta superposición, además de las cualidades de compactación de energía del DCT, hace que el MDCT sea especialmente atractivo 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 compresión con pérdida más utilizadatécnica en 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] Alta definición Codificación (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 de coseno discreta (DCT) fue propuesta por primera vez por Nasir Ahmed en 1972, [11] y demostrada por Ahmed con T. Natarajan y KR Rao en 1974. [12] La MDCT fue propuesta más tarde por John P. Princen, AW Johnson y Alan B. Bradley en la Universidad de Surrey en 1987, [13] siguiendo un trabajo anterior de Princen y Bradley (1986) [14] para desarrollar el principio subyacente de la MDCT de cancelación de alias en el dominio del tiempo (TDAC), que se describe a continuación. (También existe una transformada análoga, la MDST, basada en la transformada sinusoidal discreta , así como otras formas, raramente utilizadas, de la MDCT basadas en diferentes tipos de combinaciones de DCT o DCT / DST).
En MP3, la MDCT no se aplica directamente a la señal de audio, sino a la salida de un banco de filtro en cuadratura polifásico de 32 bandas (PQF). La salida de esta MDCT se procesa posteriormente mediante una fórmula de reducción de alias para reducir el alias 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 . AAC, por otro lado, normalmente utiliza una TCMD pura; sólo la variante MPEG-4 AAC-SSR (rara vez utilizada) (de Sony ) utiliza un banco PQF de cuatro bandas seguido de una MDCT. Al igual que en MP3, ATRAC utiliza filtros de espejo en cuadratura apilados (QMF) seguidos de un MDCT.
Definición
Como transformación traslapada, la MDCT es un poco inusual en comparación con otras transformadas relacionadas con Fourier, ya que tiene la mitad de salidas que entradas (en lugar del mismo número). En particular, es una función lineal (donde R denota el conjunto de números reales ). Los 2 N números reales x 0 , ..., x 2 N -1 se transforman en los N números reales X 0 , ..., X N -1 según la fórmula:
(El coeficiente de normalización frente a esta transformada, aquí la unidad, es una convención arbitraria y difiere entre tratamientos. Solo el producto de las normalizaciones de la MDCT y la IMDCT, a continuación, está restringido).
Transformada inversa
La TCMD inversa se conoce como IMDCT . Debido a que hay diferentes números 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 agregando los IMDCT superpuestos de los bloques superpuestos subsiguientes, lo que hace que los errores se cancelen y se recuperen los datos originales; esta técnica se conoce como cancelación de alias en el dominio del tiempo ( TDAC ).
El 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 para el DCT-IV , una transformada ortogonal, la inversa tiene la misma forma que la transformada directa).
En el caso de una MDCT con ventana con la normalización de ventana habitual (ver más abajo), el coeficiente de normalización frente a la IMDCT debe multiplicarse por 2 (es decir, convirtiéndose en 2 / N ).
Cálculo
Aunque la aplicación directa de la fórmula MDCT requeriría operaciones O ( N 2 ), es posible calcular lo mismo con solo complejidad O ( N log N ) factorizando recursivamente el cálculo, como en la transformada rápida de Fourier (FFT). También se pueden calcular MDCT a través de otras transformaciones, normalmente una DFT (FFT) o una DCT, combinada con pasos de pre y posprocesamiento O ( N ). Además, como se describe a continuación, cualquier algoritmo para el DCT-IV proporciona inmediatamente un método para calcular el MDCT y el IMDCT de tamaño uniforme.
Funciones de ventana
En aplicaciones típicas de compresión de señales, las propiedades de 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 y y n en las fórmulas MDCT e IMDCT, anterior, para evitar discontinuidades en los límites n = 0 y 2 N haciendo que la función vaya suavemente a cero en esos puntos. (Es decir, tenemos ventana de los datos antes de la TCMD y después de la IMDCT.) En principio, X e Y pueden tener diferentes funciones de la ventana, y la función de ventana también podría cambiar de un bloque a otro (sobre todo para el caso en que los bloques de datos de diferentes tamaños), pero por simplicidad consideramos el caso común de funciones de ventana idénticas para bloques de igual tamaño.
La transformada permanece 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 varias funciones de ventana. Una ventana que produce una forma conocida como transformada traslapada modulada (MLT) [15] [16] está dada por
y se utiliza para MP3 y MPEG-2 AAC, y
para Vorbis. AC-3 usa una ventana derivada de Kaiser-Bessel (KBD) y MPEG-4 AAC también puede usar una ventana KBD.
Tenga en cuenta que las ventanas aplicadas al MDCT son diferentes de las ventanas utilizadas para algunos 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 MDCT se aplican dos veces, tanto para MDCT (análisis) como para IMDCT (síntesis).
Relación con DCT-IV y origen de TDAC
Como puede verse al examinar las definiciones, incluso para N, la MDCT es esencialmente equivalente a una DCT-IV, donde la entrada se desplaza N / 2 y dos N bloques de datos se transforman a la vez. Al examinar esta equivalencia más detenidamente, se pueden derivar fácilmente propiedades importantes como TDAC.
Para definir la relación precisa con el DCT-IV, uno debe darse cuenta de que el DCT-IV corresponde a condiciones de frontera pares / impares alternas: incluso en su límite izquierdo (alrededor de n = −1 / 2), impar en su límite derecho (alrededor de n = N −1/2), y así sucesivamente (en lugar de límites periódicos como para una DFT ). Esto se sigue de las identidades y . Por lo tanto, si sus entradas son una matriz x de longitud N , podemos imaginar que se extiende esta matriz a ( x , - x R , - x , x R , ...) y así sucesivamente, donde x R denota x en orden inverso.
Considere una MDCT con 2 N 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 hacia la derecha N / 2 (del 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 "doblar "devolverlos de acuerdo con 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 manera, cualquier algoritmo para calcular el DCT-IV se puede aplicar trivialmente 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 de 2 N y se desplaza hacia la izquierda en N / 2. . La DCT-IV inversa simplemente devolvería las entradas (- c R - d , a - b R ) desde arriba. Cuando esto se extiende a través de las condiciones de contorno y se desplaza, se obtiene:
- IMDCT (TCMD ( a , b , c , d )) = ( a - segundo R , b - una R , c + d R , d + c R ) / 2.
Por tanto, la mitad de las salidas de IMDCT son 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 simple:
- IMDCT (TCMD ( A , B )) = ( A - A R , B + B R ) / 2
Ahora se puede entender cómo funciona TDAC. Suponga que se calcula la TCMD del bloque 2 N subsiguiente, superpuesto al 50% ( B , C ). La IMDCT cederá entonces, análogamente a lo anterior: ( B - B R , C + C R ) / 2. Cuando esto se suma con el resultado IMDCT anterior en la mitad superpuesta, los términos invertidos se cancelan y se obtiene simplemente B , recuperando los datos originales.
Origen de TDAC
El origen del término "cancelación de alias en el dominio del tiempo" ahora está claro. El uso de datos de entrada que se extienden más allá de los límites del DCT-IV lógico hace que los datos tengan un alias de la misma manera que las frecuencias más allá de la frecuencia de Nyquist tienen un alias en frecuencias más bajas, excepto que este alias ocurre en el dominio del tiempo en lugar del alias. dominio de la frecuencia: no puede distinguir las contribuciones de una y de b R a la MDCT de ( un , b , c , d ), o equivalentemente, con el resultado de IMDCT (MDCT ( un , 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 N impar (que rara vez se usa en la práctica), N / 2 no es un número entero, por lo que la TCMD no es simplemente una permutación de desplazamiento de una DCT-IV. En este caso, el desplazamiento adicional de la mitad de una muestra significa que el MDCT / IMDCT se vuelve equivalente al 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 ). El DCT-IV se diseña para el caso en que la función en el límite derecho es impar, y por lo tanto los valores cerca de la frontera derecha están cerca de 0. Si la señal de entrada es suave, este es el caso: los componentes de la derecha de una 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 discontinuidad potencial donde el extremo derecho de - d se encuentra con el extremo izquierdo de a . Esta es la razón para usar una función de ventana que reduce los componentes cerca de los límites de la secuencia de entrada ( a , b , c , d ) hacia 0.
TDAC para la MDCT con ventana
Arriba, se demostró la propiedad TDAC para la MDCT ordinaria, mostrando que la adición de 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 complicada.
Considere a la superposición de series consecutivas de 2 N entradas ( A , B ) y ( B , C ), para los bloques A , B , C de tamaño N . Recuerda desde arriba que cuando y son MDCTed, IMDCTed, y añadidos en su mitad superpuesta, obtenemos , los datos originales.
Ahora supongamos que multiplicamos ambos las entradas MDCT y las salidas IMDCT por una función de ventana de longitud 2 N . Como arriba, asumimos una función de ventana simétrica, que por lo tanto tiene la formadonde W es un vector de longitud- N y R denota inversión como antes. Entonces la condición de Princen-Bradley se puede escribir como, con los cuadrados y las adiciones realizadas por elementos.
Por lo tanto, en lugar de MDCTing , ahora MDCT (con todas las multiplicaciones realizadas por elementos). Cuando esto es IMDCTed y multiplicado nuevamente (elemento a nivel) 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 de ventana).
Del mismo modo, la MDCT y la IMDCT con ventana de rinde, en su primera mitad N :
- .
Cuando sumamos estas dos mitades, obtenemos:
recuperar los datos originales.
Ver también
- Transformada de coseno discreta
- Otras transformadas de Fourier con ventanas superpuestas incluyen:
- Transformada lapeada compleja modulada
- Transformada de Fourier de corta duración
- El método de Welch
- 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 . pag. 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 y Francis . págs. 558–9. 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; Enviar.; Niedermeier, A .; Czelhan, B .; Füg, S .; et al. (2017). "Desarrollo del sistema de audio MPEG-H TV para ATSC 3.0" (PDF) . Transacciones IEEE sobre radiodifusión . 63 (1): 202–236. doi : 10.1109 / TBC.2017.2661258 .
- ^ Schnell, Markus; Schmidt, Markus; Jander, Manuel; Albert, Tobías; Geiger, Ralf; Ruoppila, Vesa; Ekstrand, Per; Bernhard, Grill (octubre de 2008). MPEG-4 Enhanced Low Delay AAC: un nuevo estándar para comunicaciones de alta calidad (PDF) . 125a Convención AES. Fraunhofer IIS . Sociedad de Ingeniería de Audio . Consultado el 20 de octubre de 2019 .
- ^ Lutzky, Manfred; Schuller, Gerald; Gayer, Marc; Krämer, Ulrich; Wabnik, Stefan (mayo de 2004). Una guía para el retardo de códec de audio (PDF) . 116a Convención AES. Fraunhofer IIS . Sociedad de Ingeniería de Audio . Consultado el 24 de octubre de 2019 .
- ^ Nagireddi, Sivannarayana (2008). Procesamiento de señales de voz y fax de VoIP . John Wiley e hijos . pag. 69. ISBN 9780470377864.
- ^ Presentación del códec CELT por Timothy B. Terriberry (65 minutos de video, ver también diapositivas de presentación en PDF)
- ^ "Opus Codec" . Opus (página de inicio). Fundación Xiph.org . Consultado el 31 de julio de 2012 .
- ^ Bright, Peter (12 de septiembre de 2012). "El códec de audio Opus recientemente 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 se me ocurrió la transformada discreta del coseno" . Procesamiento de señales digitales . 1 (1): 4–5. doi : 10.1016 / 1051-2004 (91) 90086-Z .
- ^ Ahmed, Nasir ; Natarajan, T .; Rao, KR (enero de 1974), "Discrete Cosine Transform", IEEE Transactions on Computers , C-23 (1): 90–93, doi : 10.1109 / TC.1974.223784
- ^ 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 alias en el dominio del tiempo". ICASSP '87. Conferencia internacional IEEE sobre acústica, habla y procesamiento de señales . 12 : 2161–2164. doi : 10.1109 / ICASSP.1987.1169405 .
- ^ John P. Princen, Alan B. Bradley: Diseño de banco de filtros de análisis / síntesis basado en la cancelación de alias en el dominio del tiempo , IEEE Trans. Acoust. Procesamiento de señales de voz, ASSP-34 (5), 1153-1161, 1986. Describió un precursor de la TCMD utilizando una combinación de transformadas de seno y coseno discretas.
- ^ HS Malvar, "Transformaciones traslapadas para una codificación eficiente de transformación / subbanda", IEEE Trans. sobre acústica, habla y procesamiento de señales , vol. 38, no. 6, págs. 969–978 (Ecuación 22), junio de 1990.
- ^ HS Malvar, "Bancos de filtros modulados QMF con reconstrucción perfecta", Electronics Letters , vol. 26, no. 13, págs. 906–907 (Ecuación 13), junio de 1990.
Bibliografía
- Henrique S. Malvar, Procesamiento de señales con transformaciones traslapadas (Artech House: Norwood MA, 1992).
- AW Johnson y AB Bradley, "Codificación de transformación adaptativa que incorpora la cancelación de alias en el dominio del tiempo", Speech Comm. 6 , 299 - 308 (1987).
- Para algoritmos, vea ejemplos:
- Chi-Min Liu y Wen-Chieh Lee, " Un algoritmo rápido unificado para bancos de filtros modulados por coseno en los estándares de audio actuales [ enlace muerto permanente ] ", J. Audio Engineering 47 (12), 1061-1075 (1999).
- V. Britanak y KR Rao, "Un nuevo algoritmo rápido para el cálculo unificado de MDCT / MDST directo e inverso", Signal Processing 82 , 433-459 (2002)
- Vladimir Nikolajevic y Gerhard Fettweis, "Cálculo de MDCT directo e inverso usando 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 realizar transformadas de coseno discretas modificadas y su inversa", IEEE Trans. Circuitos Syst. II: Excavación analógica. 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. Circuitos Syst. Yo: Reg. Documentos 56 (4), 784-794 (2009)
- V. Britanak, "Un estudio de las implementaciones eficientes de MDCT en el estándar de codificación de audio MP3: retrospectiva y de vanguardia", Signal. Proceso. 91 (4), 624-672 (2011)