Transformada de coseno discreta

Técnica utilizada en el procesamiento de señales y compresión de datos.

Una transformada discreta del coseno ( DCT ) expresa una secuencia finita de puntos de datos en términos de una suma de funciones coseno que oscilan a diferentes frecuencias . La DCT, propuesta por primera vez por Nasir Ahmed en 1972, es una técnica de transformación ampliamente utilizada en el procesamiento de señales y la compresión de datos . Se utiliza en la mayoría de los medios digitales , incluidas las imágenes digitales (como JPEG y HEIF ), el vídeo digital (como MPEG y H.26x ), el audio digital (como Dolby Digital , MP3 y AAC ), la televisión digital (como SDTV , HDTV y VOD ), la radio digital (como AAC+ y DAB+ ) y la codificación de voz (como AAC-LD , Siren y Opus ). Las DCT también son importantes para numerosas otras aplicaciones en ciencia e ingeniería , como el procesamiento de señales digitales , los dispositivos de telecomunicaciones , la reducción del uso del ancho de banda de la red y los métodos espectrales para la solución numérica de ecuaciones diferenciales parciales .

Una DCT es una transformada relacionada con Fourier similar a la transformada discreta de Fourier (DFT), pero que utiliza solo números reales . Las DCT generalmente están relacionadas con los coeficientes de la serie de Fourier de una secuencia extendida periódica y simétricamente, mientras que las DFT están relacionadas con los coeficientes de la serie de Fourier de solo secuencias extendidas periódicamente. Las DCT son equivalentes a las DFT de aproximadamente el doble de longitud, que operan en datos reales con simetría par (ya que la transformada de Fourier de una función real y par es real y par), mientras que en algunas variantes los datos de entrada o salida se desplazan en media muestra.

Existen ocho variantes estándar de la DCT, de las cuales cuatro son comunes. La variante más común de la transformada discreta del coseno es la DCT de tipo II, que a menudo se denomina simplemente DCT . Esta fue la DCT original propuesta por primera vez por Ahmed. Su inversa, la DCT de tipo III, a menudo se denomina simplemente DCT inversa o IDCT . Dos transformadas relacionadas son la transformada discreta del seno (DST), que es equivalente a una DFT de funciones reales e impares , y la transformada discreta del coseno modificada (MDCT), que se basa en una DCT de datos superpuestos. Las DCT multidimensionales (MD DCT) se desarrollan para extender el concepto de DCT a señales multidimensionales. Se han desarrollado diversos algoritmos rápidos para reducir la complejidad computacional de la implementación de la DCT. Una de ellas es la DCT entera (IntDCT), [1] una aproximación entera de la DCT estándar, [2] : ix, xiii, 1, 141–304  utilizada en varias normas internacionales ISO/IEC e ITU-T . [1] [2]

La compresión DCT, también conocida como compresión de bloques, comprime datos en conjuntos de bloques DCT discretos. [3] Los tamaños de bloques DCT incluyen 8x8 píxeles para la DCT estándar y tamaños de DCT enteros variados entre 4x4 y 32x32 píxeles. [1] [4] La DCT tiene una fuerte propiedad de compactación de energía , [5] [6] capaz de lograr alta calidad en altas relaciones de compresión de datos . [7] [8] Sin embargo, pueden aparecer artefactos de compresión en bloques cuando se aplica una compresión DCT pesada.

Historia

La DCT fue concebida por primera vez por Nasir Ahmed , T. Natarajan y KR Rao mientras trabajaban en la Universidad Estatal de Kansas . El concepto fue propuesto a la Fundación Nacional de Ciencias en 1972. La DCT fue pensada originalmente para la compresión de imágenes . [9] [1] Ahmed desarrolló un algoritmo DCT práctico con sus estudiantes de doctorado T. Raj Natarajan, Wills Dietrich y Jeremy Fries, y su amigo el Dr. KR Rao en la Universidad de Texas en Arlington en 1973. [9] Presentaron sus resultados en un artículo de enero de 1974, titulado Transformada Discreta del Coseno . [5] [6] [10] Describía lo que ahora se llama la DCT de tipo II (DCT-II), [2] : 51  así como la DCT inversa de tipo III (IDCT). [5]

Desde su introducción en 1974, se han realizado importantes investigaciones sobre la DCT. [10] En 1977, Wen-Hsiung Chen publicó un artículo con C. Harrison Smith y Stanley C. Fralick presentando un algoritmo DCT rápido. [11] [10] Otros desarrollos incluyen un artículo de 1978 de MJ Narasimha y AM Peterson, y un artículo de 1984 de BG Lee. [10] Estos artículos de investigación, junto con el artículo original de Ahmed de 1974 y el artículo de Chen de 1977, fueron citados por el Joint Photographic Experts Group como base para el algoritmo de compresión de imágenes con pérdida de JPEG en 1992. [10] [12]

La transformada sinusoidal discreta (DST) se derivó de la DCT, al reemplazar la condición de Neumann en x=0 con una condición de Dirichlet . [2] : 35-36  La DST fue descrita en el artículo de 1974 sobre DCT por Ahmed, Natarajan y Rao. [5] Una DST de tipo I (DST-I) fue descrita posteriormente por Anil K. Jain en 1976, y una DST de tipo II (DST-II) fue descrita posteriormente por HB Kekra y JK Solanka en 1978. [13]

En 1975, John A. Roese y Guner S. Robinson adaptaron la DCT para la codificación de vídeo con compensación de movimiento entre fotogramas . Experimentaron con la DCT y la transformada rápida de Fourier (FFT), desarrollando codificadores híbridos entre fotogramas para ambos, y descubrieron que la DCT es la más eficiente debido a su complejidad reducida, capaz de comprimir datos de imagen hasta 0,25 bits por píxel para una escena de videoteléfono con una calidad de imagen comparable a un codificador intrafotograma que requiere 2 bits por píxel. [14] [15] En 1979, Anil K. Jain y Jaswant R. Jain desarrollaron aún más la compresión de vídeo DCT con compensación de movimiento, [16] [17] también llamada compensación de movimiento en bloque. [17] Esto llevó a Chen a desarrollar un algoritmo práctico de compresión de video, llamado DCT con compensación de movimiento o codificación de escena adaptativa, en 1981. [17] La ​​DCT con compensación de movimiento luego se convirtió en la técnica de codificación estándar para la compresión de video desde fines de la década de 1980 en adelante. [18] [19]

Una variante de DCT, la transformada de coseno discreta modificada (MDCT), fue desarrollada por John P. Princen, AW Johnson y Alan B. Bradley en la Universidad de Surrey en 1987, [20] siguiendo el trabajo previo de Princen y Bradley en 1986. [21] La MDCT se utiliza en la mayoría de los formatos de compresión de audio modernos , como Dolby Digital (AC-3), [22] [23] MP3 (que utiliza un algoritmo híbrido DCT- FFT ), [24] Advanced Audio Coding (AAC), [25] y Vorbis ( Ogg ). [26]

Nasir Ahmed también desarrolló un algoritmo DCT sin pérdida con Giridhar Mandyam y Neeraj Magotra en la Universidad de Nuevo México en 1995. Esto permite que la técnica DCT se utilice para la compresión sin pérdida de imágenes. Es una modificación del algoritmo DCT original e incorpora elementos de DCT inversa y modulación delta . Es un algoritmo de compresión sin pérdida más eficaz que la codificación de entropía . [27] La ​​DCT sin pérdida también se conoce como LDCT. [28]

Aplicaciones

La DCT es la técnica de transformación más utilizada en el procesamiento de señales , [29] y, con diferencia, la transformación lineal más utilizada en la compresión de datos . [30] Los medios digitales sin comprimir, así como la compresión sin pérdida , tienen unos requisitos elevados de memoria y ancho de banda , que se reducen significativamente con la técnica de compresión con pérdida DCT, [7] [8] capaz de conseguir relaciones de compresión de datos de 8:1 a 14:1 para una calidad cercana a la de un estudio, [7] hasta 100:1 para un contenido de calidad aceptable. [8] Los estándares de compresión DCT se utilizan en tecnologías de medios digitales, como imágenes digitales , fotografías digitales , [31] [32] vídeo digital , [18] [33] transmisión de medios , [34] televisión digital , transmisión de televisión , vídeo a la carta (VOD), [8] cine digital , [22] vídeo de alta definición (vídeo HD) y televisión de alta definición (HDTV). [7] [35]

La DCT, y en particular la DCT-II, se utiliza a menudo en el procesamiento de señales e imágenes, especialmente para la compresión con pérdida, porque tiene una fuerte propiedad de compactación de energía . [5] [6] En aplicaciones típicas, la mayor parte de la información de la señal tiende a concentrarse en unos pocos componentes de baja frecuencia de la DCT. Para procesos de Markov fuertemente correlacionados , la DCT puede acercarse a la eficiencia de compactación de la transformada de Karhunen-Loève (que es óptima en el sentido de decorrelación). Como se explica a continuación, esto se deriva de las condiciones de contorno implícitas en las funciones coseno.

Las DCT se emplean ampliamente para resolver ecuaciones diferenciales parciales mediante métodos espectrales , donde las diferentes variantes de la DCT corresponden a condiciones de contorno pares e impares ligeramente diferentes en los dos extremos de la matriz.

Las DCT están estrechamente relacionadas con los polinomios de Chebyshev , y los algoritmos DCT rápidos (abajo) se utilizan en la aproximación de Chebyshev de funciones arbitrarias mediante series de polinomios de Chebyshev, por ejemplo en la cuadratura de Clenshaw-Curtis .

Aplicaciones generales

La DCT se utiliza ampliamente en muchas aplicaciones, que incluyen las siguientes.

Estándares de medios visuales

La DCT-II es una técnica de compresión de imágenes importante. Se utiliza en estándares de compresión de imágenes como JPEG y estándares de compresión de vídeo como H.26x , MJPEG , MPEG , DV , Theora y Daala . Allí, se calcula la DCT-II bidimensional de bloques y los resultados se cuantifican y codifican por entropía . En este caso, normalmente es 8 y se aplica la fórmula DCT-II a cada fila y columna del bloque. El resultado es una matriz de coeficientes de transformación de 8 × 8 en la que el elemento (arriba a la izquierda) es el componente DC (frecuencia cero) y las entradas con valores de índice verticales y horizontales crecientes representan frecuencias espaciales verticales y horizontales más altas. norte × norte {\displaystyle N\veces N} norte {\estilo de visualización N} ( 0 , 0 ) {\estilo de visualización (0,0)}

La DCT entera, una aproximación entera de la DCT, [2] [1] se utiliza en la codificación de vídeo avanzada (AVC), [52] [1] introducida en 2003, y en la codificación de vídeo de alta eficiencia (HEVC), [4] [1] introducida en 2013. La DCT entera también se utiliza en el formato de imagen de alta eficiencia (HEIF), que utiliza un subconjunto del formato de codificación de vídeo HEVC para codificar imágenes fijas. [4] AVC utiliza bloques de 4 x 4 y 8 x 8. HEVC y HEIF utilizan tamaños de bloque variados entre 4 x 4 y 32 x 32 píxeles . [4] [1] A partir de 2019 [actualizar], AVC es, con diferencia, el formato más utilizado para la grabación, compresión y distribución de contenido de vídeo, utilizado por el 91% de los desarrolladores de vídeo, seguido de HEVC, que es utilizado por el 43% de los desarrolladores. [43]

Formatos de imagen

Estándar de compresión de imágenesAñoAplicaciones comunes
JPEG [1]1992El estándar de compresión de imágenes más utilizado [53] [54] y el formato de imagen digital [46] .
JPEG-XR2009Especificación de documentos XML abiertos
WebP2010Formato gráfico que permite la compresión sin pérdida de imágenes digitales. Desarrollado por Google .
Formato de imagen de alta eficiencia (HEIF)2013Formato de archivo de imagen basado en compresión HEVC. Mejora la compresión con respecto a JPEG, [4] y admite animación con una compresión mucho más eficiente que el formato GIF animado . [55]
BPG2014Basado en compresión HEVC
JPEG-XL [56]2020Un formato de archivo de gráficos rasterizados libre de regalías que admite compresión con pérdida y sin pérdida.

Formatos de vídeo

Estándar de codificación de vídeoAñoAplicaciones comunes
H.261 [57] [58]1988Primero de una familia de estándares de codificación de video . Se utiliza principalmente en productos de videoconferencia y videoteléfono más antiguos .
JPEG en movimiento (MJPEG) [59]1992QuickTime , edición de vídeo , edición no lineal , cámaras digitales
Vídeo MPEG-1 [60]1993Distribución de vídeo digital en CD o vídeo de Internet
Vídeo MPEG-2 ( H.262 ) [60]1995Almacenamiento y manejo de imágenes digitales en aplicaciones de transmisión, televisión digital , HDTV , cable, satélite, Internet de alta velocidad , distribución de video DVD
DV1995Videocámaras , casetes digitales
H.263 ( MPEG-4 Parte 2 ) [57]1996Telefonía por vídeo sobre red telefónica pública conmutada (RTPC), H.320 , Red Digital de Servicios Integrados (RDSI) [61] [62]
Codificación de vídeo avanzada (AVC, H.264 , MPEG-4 ) [1] [52]2003Formato popular de grabación, compresión y distribución de vídeo HD , vídeo de Internet , YouTube , discos Blu-ray , transmisiones de HDTV , navegadores web , transmisión de televisión , dispositivos móviles , dispositivos de consumo, Netflix , [42] telefonía por vídeo , FaceTime [41]
Teora2004Vídeo de Internet, navegadores web
VC-12006Medios de Windows , discos Blu-ray
Apple ProRes2007Producción de vídeo profesional. [50]
VP92010Un códec de vídeo desarrollado por Google utilizado en el formato contenedor WebM con HTML5 .
Codificación de vídeo de alta eficiencia (HEVC, H.265 ) [1] [4]2013Sucesor del estándar H.264 , con una capacidad de compresión sustancialmente mejorada
Daala2013Formato de video de investigación de Xiph.org
AV1 [63]2018Un formato de código abierto basado en VP10 ( el sucesor interno de VP9 ), Daala y Thor ; utilizado por proveedores de contenido como YouTube [64] [65] y Netflix . [66] [67]

Estándares de audio MDCT

Audio general

Estándar de compresión de audioAñoAplicaciones comunes
Dolby Digital (AC-3) [22] [23]1991Cine , cine digital , DVD , Blu-ray , streaming multimedia , videojuegos
Codificación acústica por transformación adaptativa (ATRAC) [22]1992Minidisco
MP3 [24] [1]1993Distribución de audio digital , reproductores de MP3 , reproductores multimedia portátiles , transmisión de medios
Codificador de audio perceptual (PAC) [22]1996Servicio de radio de audio digital (DARS)
Codificación de audio avanzada (audio AAC/ MP4 ) [25] [22]1997Distribución de audio digital , reproductores multimedia portátiles , transmisión multimedia , consolas de juegos , dispositivos móviles , iOS , iTunes , Android , BlackBerry
Codificación de audio avanzada de alta eficiencia (AAC+) [68] [38] : 478 1997Radio digital , radiodifusión de audio digital (DAB+), [38] Radio Digital Mundial (DRM)
Códec de cocina1998RealAudio
Audio de Windows Media (WMA) [22]1999Windows Media
Vorbis [26] [22]2000Distribución de audio digital , estaciones de radio , transmisión de medios , videojuegos , Spotify , Wikipedia
Codificación de alta definición (HDC) [39]2002Radio digital, radio HD
Adaptación de resolución dinámica (DRA) [22]2008Estándar nacional de audio de China, transmisión móvil multimedia de China , DVB-H
Obra [69]2012VoIP, [70] telefonía móvil, WhatsApp , [71] [72] [73] PlayStation 4 [74]
Dolby AC-4 [75]2015ATSC 3.0 , televisión de ultra alta definición (UHD TV)
Audio 3D MPEG-H [76]

Codificación de voz

Estándar de codificación de vozAñoAplicaciones comunes
AAC-LD (LD-MDCT) [77]1999Telefonía móvil , voz sobre IP (VoIP), iOS , FaceTime [41]
Sirena [40]1999VoIP , audio de banda ancha , G.722.1
G.722.1 [78]1999VoIP, audio de banda ancha, G.722
G.729.1 [79]2006G.729 , VoIP, audio de banda ancha, [79] telefonía móvil
EVRC-WB [38] : 31, 478] 2007Audio de banda ancha
G.718 [80]2008VoIP, audio de banda ancha, telefonía móvil
G.719 [38]2008Teleconferencia , videoconferencia , correo de voz
CELTA [81]2011VoIP, [82] [83] telefonía móvil
Servicios de voz mejorados (EVS) [84]2014Telefonía móvil, VoIP, audio de banda ancha

DCT multidimensional

Las DCT multidimensionales (MD DCT) tienen varias aplicaciones, principalmente DCT 3-D como la DCT-II 3-D, que tiene varias aplicaciones nuevas como sistemas de codificación de imágenes hiperespectrales, [85] codificación DCT 3-D de longitud temporal variable, [86] algoritmos de codificación de video , [87] codificación de video adaptativa [88] y compresión 3-D. [89] Debido a la mejora en el hardware, software y la introducción de varios algoritmos rápidos, la necesidad de usar DCT MD está aumentando rápidamente. La DCT-IV ha ganado popularidad por sus aplicaciones en la implementación rápida de bancos de filtrado polifásico de valor real, [90] transformada ortogonal superpuesta [91] [92] y bases wavelet moduladas por coseno. [93]

Procesamiento de señales digitales

La DCT desempeña un papel importante en el procesamiento de señales digitales , específicamente en la compresión de datos . La DCT se implementa ampliamente en procesadores de señales digitales (DSP), así como en software de procesamiento de señales digitales. Muchas empresas han desarrollado DSP basados ​​en la tecnología DCT. Las DCT se utilizan ampliamente para aplicaciones como codificación , decodificación, video, audio, multiplexación , señales de control, señalización y conversión de analógico a digital . Las DCT también se utilizan comúnmente para chips codificadores/decodificadores de televisión de alta definición (HDTV) . [1]

Artefactos de compresión

Un problema común con la compresión DCT en medios digitales son los artefactos de compresión en bloques , [94] causados ​​por bloques DCT. [3] En un algoritmo DCT, una imagen (o fotograma en una secuencia de imágenes) se divide en bloques cuadrados que se procesan independientemente unos de otros, luego los bloques DCT se toman dentro de cada bloque y los coeficientes DCT resultantes se cuantifican . Este proceso puede causar artefactos de bloqueo, principalmente en altas relaciones de compresión de datos . [94] Esto también puede causar el efecto de ruido de mosquito , que se encuentra comúnmente en el video digital . [95]

Los bloques DCT se utilizan a menudo en el arte glitch . [3] La artista Rosa Menkman hace uso de artefactos de compresión basados ​​en DCT en su arte glitch, [96] particularmente los bloques DCT que se encuentran en la mayoría de los formatos de medios digitales como imágenes digitales JPEG y audio MP3 . [3] Otro ejemplo es Jpegs del fotógrafo alemán Thomas Ruff , que utiliza artefactos JPEG intencionales como base del estilo de la imagen. [97] [98]

Visión general informal

Al igual que cualquier transformada relacionada con Fourier, las transformadas discretas del coseno (DCT) expresan una función o una señal en términos de una suma de senos con diferentes frecuencias y amplitudes . Al igual que la transformada discreta de Fourier (DFT), una DCT opera sobre una función en un número finito de puntos de datos discretos . La distinción obvia entre una DCT y una DFT es que la primera utiliza solo funciones coseno, mientras que la segunda utiliza tanto cosenos como senos (en forma de exponenciales complejas ). Sin embargo, esta diferencia visible es meramente una consecuencia de una distinción más profunda: una DCT implica diferentes condiciones de contorno de la DFT u otras transformadas relacionadas.

Las transformadas relacionadas con Fourier que operan sobre una función sobre un dominio finito , como la DFT o la DCT o una serie de Fourier , pueden considerarse como la definición implícita de una extensión de esa función fuera del dominio. Es decir, una vez que escribes una función como una suma de senos, puedes evaluar esa suma en cualquier , incluso para donde no se especificó el original. La DFT, al igual que la serie de Fourier, implica una extensión periódica de la función original. Una DCT, al igual que una transformada del coseno , implica una extensión par de la función original. F ( incógnita ) {\estilo de visualización f(x)} incógnita {\estilo de visualización x} incógnita {\estilo de visualización x} F ( incógnita ) {\estilo de visualización f(x)}

Ilustración de las extensiones implícitas pares/impares de los datos de entrada de la DCT, para N = 11 puntos de datos (puntos rojos), para los cuatro tipos más comunes de DCT (tipos I-IV). Nótese las diferencias sutiles en las interfaces entre los datos y las extensiones: en la DCT-II y la DCT-IV, ambos puntos finales se replican en las extensiones, pero no en la DCT-I o la DCT-III (y se inserta un punto cero en la extensión de inversión de signo en la DCT-III).

Sin embargo, debido a que las DCT operan en secuencias discretas finitas , surgen dos problemas que no se aplican para la transformada continua del coseno. Primero, uno tiene que especificar si la función es par o impar en los límites izquierdo y derecho del dominio (es decir, los límites min- n y max- n en las definiciones a continuación, respectivamente). Segundo, uno tiene que especificar alrededor de qué punto la función es par o impar. En particular, considere una secuencia abcd de cuatro puntos de datos igualmente espaciados, y digamos que especificamos un límite izquierdo par . Hay dos posibilidades sensatas: o bien los datos son pares sobre la muestra a , en cuyo caso la extensión par es dcbabcd , o bien los datos son pares sobre el punto a medio camino entre a y el punto anterior, en cuyo caso la extensión par es dcbaabcd ( a se repite).

Estas opciones dan lugar a todas las variantes estándar de las DCT y también a las transformadas sinusoidales discretas (DST). Cada límite puede ser par o impar (2 opciones por límite) y puede ser simétrico respecto de un punto de datos o del punto intermedio entre dos puntos de datos (2 opciones por límite), para un total de 2 × 2 × 2 × 2 = 16 posibilidades. La mitad de estas posibilidades, aquellas en las que el límite izquierdo es par, corresponden a los 8 tipos de DCT; la otra mitad son los 8 tipos de DST.

Estas diferentes condiciones de contorno afectan fuertemente las aplicaciones de la transformada y conducen a propiedades excepcionalmente útiles para los diversos tipos de DCT. De manera más directa, cuando se utilizan transformadas relacionadas con Fourier para resolver ecuaciones diferenciales parciales mediante métodos espectrales , las condiciones de contorno se especifican directamente como parte del problema que se está resolviendo. O, para la MDCT (basada en la DCT de tipo IV), las condiciones de contorno están íntimamente involucradas en la propiedad crítica de la MDCT de cancelación de aliasing en el dominio del tiempo. De una manera más sutil, las condiciones de contorno son responsables de las propiedades de "compactación de energía" que hacen que las DCT sean útiles para la compresión de imágenes y audio, porque los límites afectan la tasa de convergencia de cualquier serie de tipo Fourier.

En particular, es bien sabido que cualquier discontinuidad en una función reduce la tasa de convergencia de la serie de Fourier, de modo que se necesitan más senos para representar la función con una precisión dada. El mismo principio rige la utilidad de la DFT y otras transformadas para la compresión de señales; cuanto más suave es una función, menos términos en su DFT o DCT se requieren para representarla con precisión, y más se puede comprimir. (Aquí, pensamos en la DFT o DCT como aproximaciones para la serie de Fourier o la serie de cosenos de una función, respectivamente, para poder hablar de su "suavidad"). Sin embargo, la periodicidad implícita de la DFT significa que las discontinuidades suelen ocurrir en los límites: es poco probable que cualquier segmento aleatorio de una señal tenga el mismo valor tanto en los límites izquierdo como derecho. (Un problema similar surge para la DST, en la que la condición de contorno izquierdo impar implica una discontinuidad para cualquier función que no sea cero en ese contorno.) En contraste, una DCT donde ambos contornos son pares siempre produce una extensión continua en los contornos (aunque la pendiente es generalmente discontinua). Esta es la razón por la que las DCT, y en particular las DCT de tipos I, II, V y VI (los tipos que tienen dos contornos pares) generalmente funcionan mejor para la compresión de señales que las DFT y las DST. En la práctica, una DCT de tipo II suele ser la preferida para tales aplicaciones, en parte por razones de conveniencia computacional.

Definición formal

Formalmente, la transformada discreta del coseno es una función lineal invertible (donde denota el conjunto de números reales ), o equivalentemente una matriz cuadrada N × N invertible . Existen varias variantes de la DCT con definiciones ligeramente modificadas. Los N números reales se transforman en los N números reales según una de las fórmulas: F : R norte R norte {\displaystyle f:\mathbb {R} ^{N}\to \mathbb {R} ^{N}} R {\displaystyle \mathbb {R}}   incógnita 0 ,     incógnita norte 1   {\displaystyle ~x_{0},\ \ldots \ x_{N-1}~} incógnita 0 , , incógnita norte 1 {\displaystyle X_{0},\,\ldots ,\,X_{N-1}}

TCD-I

incógnita a = 1 2 ( incógnita 0 + ( 1 ) a incógnita norte 1 ) + norte = 1 norte 2 incógnita norte porque [   π norte 1 norte a ]  para    a = 0 ,     norte 1   . {\displaystyle X_{k}={\frac {1}{2}}(x_{0}+(-1)^{k}x_{N-1})+\sum _{n=1}^{N-2}x_{n}\cos \left[\,{\tfrac {\ \pi }{\,N-1\,}}\,n\,k\,\right]\qquad {\text{ para }}~k=0,\ \ldots \ N-1~.}

Algunos autores multiplican además los términos y por y, en consecuencia, multiplican los términos y por lo que, si se multiplica además por un factor de escala general de , la matriz DCT-I es ortogonal pero rompe la correspondencia directa con una DFT real-par . incógnita 0 estilo de visualización x_{0}} incógnita norte 1 estilo de visualización x_{N-1}} 2 , {\displaystyle {\sqrt {2\,}}\,,} incógnita 0 Estilo de visualización X_{0} incógnita norte 1 Estilo de visualización X_{N-1}} 1 / 2 , {\displaystyle 1/{\sqrt {2\,}}\,,} 2 norte 1 , {\displaystyle {\sqrt {{\tfrac {2}{N-1\,}}\,}},}

La DCT-I es exactamente equivalente (hasta un factor de escala total de 2) a una DFT de números reales con simetría par. Por ejemplo, una DCT-I de números reales es exactamente equivalente a una DFT de ocho números reales (simetría par), dividida por dos. (En cambio, las DCT de tipo II a IV implican un desplazamiento de media muestra en la DFT equivalente). 2 ( norte 1 ) {\estilo de visualización 2(N-1)} norte = 5 {\estilo de visualización N=5} a   b   do   d   mi {\estilo de visualización a\ b\ c\ d\ e} a   b   do   d   mi   d   do   b {\estilo de visualización a\b\c\d\e\d\c\b}

Sin embargo, tenga en cuenta que la DCT-I no está definida para menos de 2, mientras que todos los demás tipos de DCT están definidos para cualquier valor positivo. norte {\estilo de visualización N} norte . {\estilo de visualización N.}

Por lo tanto, la DCT-I corresponde a las condiciones de contorno: es par alrededor y par alrededor de ; de manera similar para incógnita norte Estilo de visualización x_{n} norte = 0 {\estilo de visualización n=0} norte = norte 1 {\displaystyle n=N-1} incógnita a . {\displaystyle X_{k}.}

Prueba de transferencia de datos continua II

incógnita a = norte = 0 norte 1 incógnita norte porque [ π norte ( norte + 1 2 ) a ]  para    a = 0 ,     norte 1   . {\displaystyle X_{k}=\sum _{n=0}^{N-1}x_{n}\cos \left[\,{\tfrac {\,\pi \,}{N}}\left(n+{\tfrac {1}{2}}\right)k\,\right]\qquad {\text{ para }}~k=0,\ \puntos \ N-1~.}

La DCT-II es probablemente la forma más utilizada y a menudo se la denomina simplemente "la DCT". [5] [6]

Esta transformación es exactamente equivalente (hasta un factor de escala total de 2) a una DFT de entradas reales de simetría par donde los elementos de índice par son cero. Es decir, es la mitad de la DFT de las entradas donde para y para la transformación DCT-II también es posible utilizando una señal 2 N seguida de una multiplicación por medio desplazamiento. Esto lo demuestra Makhoul . 4 norte {\estilo de visualización 4N} 4 norte {\estilo de visualización 4N} y norte , {\displaystyle y_{n},} y 2 norte = 0 , {\displaystyle y_{2n}=0,} y 2 norte + 1 = incógnita norte {\displaystyle y_{2n+1}=x_{n}} 0 norte < norte , {\displaystyle 0\leq n<N,} y 2 norte = 0 , {\displaystyle y_{2N}=0,} y 4 norte norte = y norte {\ Displaystyle y_ {4N-n} = y_ {n}} 0 < norte < 2 norte . {\displaystyle 0<n<2N.}

Algunos autores multiplican además el término por y multiplican el resto de la matriz por un factor de escala general de (ver más abajo el cambio correspondiente en DCT-III). Esto hace que la matriz DCT-II sea ortogonal , pero rompe la correspondencia directa con una DFT real-par de entrada semidesplazada. Esta es la normalización utilizada por Matlab , por ejemplo, ver. [99] En muchas aplicaciones, como JPEG , la escala es arbitraria porque los factores de escala se pueden combinar con un paso computacional posterior (por ejemplo, el paso de cuantificación en JPEG [100] ), y se puede elegir una escala que permita calcular la DCT con menos multiplicaciones. [101] [102] incógnita 0 Estilo de visualización X_{0} 1 / norte {\displaystyle 1/{\sqrt {N\,}}\,} 2 / N {\textstyle {\sqrt {{2}/{N}}}}

La DCT-II implica las condiciones de contorno: es par alrededor y par alrededor es par alrededor y impar alrededor x n {\displaystyle x_{n}} n = 1 / 2 {\displaystyle n=-1/2} n = N 1 / 2 ; {\displaystyle n=N-1/2\,;} X k {\displaystyle X_{k}} k = 0 {\displaystyle k=0} k = N . {\displaystyle k=N.}

DCT-III

X k = 1 2 x 0 + n = 1 N 1 x n cos [ π N ( k + 1 2 ) n ]  for    k = 0 ,     N 1   . {\displaystyle X_{k}={\tfrac {1}{2}}x_{0}+\sum _{n=1}^{N-1}x_{n}\cos \left[\,{\tfrac {\,\pi \,}{N}}\left(k+{\tfrac {1}{2}}\right)n\,\right]\qquad {\text{ for }}~k=0,\ \ldots \ N-1~.}

Debido a que es la inversa de la DCT-II hasta un factor de escala (ver más abajo), a esta forma a veces se la denomina simplemente "la DCT inversa" ("IDCT"). [6]

Algunos autores dividen el término por en lugar de por 2 (lo que da como resultado un término general) y multiplican la matriz resultante por un factor de escala general de (consulte más arriba el cambio correspondiente en DCT-II), de modo que la DCT-II y la DCT-III sean transpuestas entre sí. Esto hace que la matriz DCT-III sea ortogonal , pero rompe la correspondencia directa con una DFT real-par de salida semidesplazada. x 0 {\displaystyle x_{0}} 2 {\displaystyle {\sqrt {2}}} x 0 / 2 {\displaystyle x_{0}/{\sqrt {2}}} 2 / N {\textstyle {\sqrt {2/N}}}

La DCT-III implica las condiciones de contorno: es par alrededor y impar alrededor es par alrededor y par alrededor x n {\displaystyle x_{n}} n = 0 {\displaystyle n=0} n = N ; {\displaystyle n=N;} X k {\displaystyle X_{k}} k = 1 / 2 {\displaystyle k=-1/2} k = N 1 / 2. {\displaystyle k=N-1/2.}

Prueba de control de transmisión IV

X k = n = 0 N 1 x n cos [ π N ( n + 1 2 ) ( k + 1 2 ) ]  for  k = 0 ,     N 1   . {\displaystyle X_{k}=\sum _{n=0}^{N-1}x_{n}\cos \left[\,{\tfrac {\,\pi \,}{N}}\,\left(n+{\tfrac {1}{2}}\right)\left(k+{\tfrac {1}{2}}\right)\,\right]\qquad {\text{ for }}k=0,\ \ldots \ N-1~.}

La matriz DCT-IV se vuelve ortogonal (y por lo tanto, al ser claramente simétrica, su propia inversa) si se multiplica además por un factor de escala general de 2 / N . {\textstyle {\sqrt {2/N}}.}

Una variante de la DCT-IV, donde se superponen los datos de diferentes transformaciones , se denomina transformada de coseno discreta modificada (MDCT). [103]

La DCT-IV implica las condiciones de contorno: es par alrededor y es impar alrededor de manera similar para x n {\displaystyle x_{n}} n = 1 / 2 {\displaystyle n=-1/2} n = N 1 / 2 ; {\displaystyle n=N-1/2;} X k . {\displaystyle X_{k}.}

DCT V-VIII

Las DCT de los tipos I a IV tratan ambos límites de manera consistente en cuanto al punto de simetría: son pares/impares alrededor de un punto de datos para ambos límites o a medio camino entre dos puntos de datos para ambos límites. Por el contrario, las DCT de los tipos V a VIII implican límites que son pares/impares alrededor de un punto de datos para un límite y a medio camino entre dos puntos de datos para el otro límite.

En otras palabras, las transformadas discretas de coseno de tipo I a IV son equivalentes a las transformadas discretas de coseno de tipo par real de orden par (sin importar si es par o impar), ya que la transformada discreta de coseno correspondiente es de longitud (para la transformada discreta de coseno I) o (para la transformada discreta de coseno II y III) o (para la transformada discreta de coseno IV). Los cuatro tipos adicionales de transformada discreta de coseno [104] corresponden esencialmente a las transformadas discretas de coseno de tipo par real de orden lógicamente impar, que tienen factores de en los denominadores de los argumentos de coseno. N {\displaystyle N} 2 ( N 1 ) {\displaystyle 2(N-1)} 4 N {\displaystyle 4N} 8 N {\displaystyle 8N} N ± 1 / 2 {\displaystyle N\pm {1}/{2}}

Sin embargo, estas variantes parecen rara vez usarse en la práctica. Una razón, quizás, es que los algoritmos FFT para DFT de longitud impar son generalmente más complicados que los algoritmos FFT para DFT de longitud par (por ejemplo, los algoritmos de base 2 más simples son solo para longitudes pares), y esta mayor complejidad se traslada a las DCT como se describe a continuación.

(La matriz real-par trivial, una DFT de longitud uno (longitud impar) de un solo número a  , corresponde a una DCT-V de longitud ) N = 1. {\displaystyle N=1.}

Transformaciones inversas

Utilizando las convenciones de normalización anteriores, la inversa de DCT-I es DCT-I multiplicada por 2/( N  − 1). La inversa de DCT-IV es DCT-IV multiplicada por 2/ N . La inversa de DCT-II es DCT-III multiplicada por 2/ N y viceversa. [6]

Al igual que en el caso de la DFT , el factor de normalización que se encuentra delante de estas definiciones de transformada es simplemente una convención y difiere entre tratamientos. Por ejemplo, algunos autores multiplican las transformadas por de modo que la inversa no requiere ningún factor multiplicativo adicional. Combinado con factores apropiados de 2 (ver arriba), esto se puede utilizar para hacer que la matriz de transformada sea ortogonal . 2 / N {\textstyle {\sqrt {2/N}}}

DCT multidimensionales

Las variantes multidimensionales de los diversos tipos de DCT se derivan directamente de las definiciones unidimensionales: son simplemente un producto separable (equivalentemente, una composición) de DCT a lo largo de cada dimensión.

Prueba de detección de DCT-II de MD

Por ejemplo, una DCT-II bidimensional de una imagen o una matriz es simplemente la DCT-II unidimensional, desde arriba, realizada a lo largo de las filas y luego a lo largo de las columnas (o viceversa). Es decir, la DCT-II 2D se obtiene mediante la fórmula (omitiendo la normalización y otros factores de escala, como se indicó anteriormente):

X k 1 , k 2 = n 1 = 0 N 1 1 ( n 2 = 0 N 2 1 x n 1 , n 2 cos [ π N 2 ( n 2 + 1 2 ) k 2 ] ) cos [ π N 1 ( n 1 + 1 2 ) k 1 ] = n 1 = 0 N 1 1 n 2 = 0 N 2 1 x n 1 , n 2 cos [ π N 1 ( n 1 + 1 2 ) k 1 ] cos [ π N 2 ( n 2 + 1 2 ) k 2 ] . {\displaystyle {\begin{aligned}X_{k_{1},k_{2}}&=\sum _{n_{1}=0}^{N_{1}-1}\left(\sum _{n_{2}=0}^{N_{2}-1}x_{n_{1},n_{2}}\cos \left[{\frac {\pi }{N_{2}}}\left(n_{2}+{\frac {1}{2}}\right)k_{2}\right]\right)\cos \left[{\frac {\pi }{N_{1}}}\left(n_{1}+{\frac {1}{2}}\right)k_{1}\right]\\&=\sum _{n_{1}=0}^{N_{1}-1}\sum _{n_{2}=0}^{N_{2}-1}x_{n_{1},n_{2}}\cos \left[{\frac {\pi }{N_{1}}}\left(n_{1}+{\frac {1}{2}}\right)k_{1}\right]\cos \left[{\frac {\pi }{N_{2}}}\left(n_{2}+{\frac {1}{2}}\right)k_{2}\right].\end{aligned}}}
La inversa de una DCT multidimensional es simplemente un producto separable de las inversas de las DCT unidimensionales correspondientes (ver arriba), por ejemplo, las inversas unidimensionales aplicadas a lo largo de una dimensión a la vez en un algoritmo de fila-columna.

La DCT-II 3-D es solo la extensión de la DCT-II 2-D en el espacio tridimensional y se puede calcular matemáticamente mediante la fórmula

X k 1 , k 2 , k 3 = n 1 = 0 N 1 1 n 2 = 0 N 2 1 n 3 = 0 N 3 1 x n 1 , n 2 , n 3 cos [ π N 1 ( n 1 + 1 2 ) k 1 ] cos [ π N 2 ( n 2 + 1 2 ) k 2 ] cos [ π N 3 ( n 3 + 1 2 ) k 3 ] , for  k i = 0 , 1 , 2 , , N i 1. {\displaystyle X_{k_{1},k_{2},k_{3}}=\sum _{n_{1}=0}^{N_{1}-1}\sum _{n_{2}=0}^{N_{2}-1}\sum _{n_{3}=0}^{N_{3}-1}x_{n_{1},n_{2},n_{3}}\cos \left[{\frac {\pi }{N_{1}}}\left(n_{1}+{\frac {1}{2}}\right)k_{1}\right]\cos \left[{\frac {\pi }{N_{2}}}\left(n_{2}+{\frac {1}{2}}\right)k_{2}\right]\cos \left[{\frac {\pi }{N_{3}}}\left(n_{3}+{\frac {1}{2}}\right)k_{3}\right],\quad {\text{for }}k_{i}=0,1,2,\dots ,N_{i}-1.}

La inversa de la DCT-II 3-D es la DCT-III 3-D y se puede calcular a partir de la fórmula dada por

x n 1 , n 2 , n 3 = k 1 = 0 N 1 1 k 2 = 0 N 2 1 k 3 = 0 N 3 1 X k 1 , k 2 , k 3 cos [ π N 1 ( n 1 + 1 2 ) k 1 ] cos [ π N 2 ( n 2 + 1 2 ) k 2 ] cos [ π N 3 ( n 3 + 1 2 ) k 3 ] , for  n i = 0 , 1 , 2 , , N i 1. {\displaystyle x_{n_{1},n_{2},n_{3}}=\sum _{k_{1}=0}^{N_{1}-1}\sum _{k_{2}=0}^{N_{2}-1}\sum _{k_{3}=0}^{N_{3}-1}X_{k_{1},k_{2},k_{3}}\cos \left[{\frac {\pi }{N_{1}}}\left(n_{1}+{\frac {1}{2}}\right)k_{1}\right]\cos \left[{\frac {\pi }{N_{2}}}\left(n_{2}+{\frac {1}{2}}\right)k_{2}\right]\cos \left[{\frac {\pi }{N_{3}}}\left(n_{3}+{\frac {1}{2}}\right)k_{3}\right],\quad {\text{for }}n_{i}=0,1,2,\dots ,N_{i}-1.}

Técnicamente, el cálculo de una DCT bidimensional, tridimensional (o multidimensional) mediante secuencias de DCT unidimensionales a lo largo de cada dimensión se conoce como algoritmo de fila-columna . Sin embargo, al igual que con los algoritmos FFT multidimensionales , existen otros métodos para calcular lo mismo mientras se realizan los cálculos en un orden diferente (es decir, intercalando/combinando los algoritmos para las diferentes dimensiones). Debido al rápido crecimiento de las aplicaciones basadas en la DCT 3-D, se han desarrollado varios algoritmos rápidos para el cálculo de la DCT-II 3-D. Los algoritmos Vector-Radix se aplican para calcular la DCT MD para reducir la complejidad computacional y aumentar la velocidad computacional. Para calcular la DCT-II 3-D de manera eficiente, se desarrolló un algoritmo rápido, el algoritmo Vector-Radix Decimation in Frequency (VR DIF).

Diferencial de realidad virtual DCT-II 3D

Para aplicar el algoritmo VR DIF, los datos de entrada se deben formular y reorganizar de la siguiente manera. [105] [106] Se supone que el tamaño de la transformación N × N × N es 2.

Las cuatro etapas básicas del cálculo de DCT-II 3-D utilizando el algoritmo VR DIF.
x ~ ( n 1 , n 2 , n 3 ) = x ( 2 n 1 , 2 n 2 , 2 n 3 ) x ~ ( n 1 , n 2 , N n 3 1 ) = x ( 2 n 1 , 2 n 2 , 2 n 3 + 1 ) x ~ ( n 1 , N n 2 1 , n 3 ) = x ( 2 n 1 , 2 n 2 + 1 , 2 n 3 ) x ~ ( n 1 , N n 2 1 , N n 3 1 ) = x ( 2 n 1 , 2 n 2 + 1 , 2 n 3 + 1 ) x ~ ( N n 1 1 , n 2 , n 3 ) = x ( 2 n 1 + 1 , 2 n 2 , 2 n 3 ) x ~ ( N n 1 1 , n 2 , N n 3 1 ) = x ( 2 n 1 + 1 , 2 n 2 , 2 n 3 + 1 ) x ~ ( N n 1 1 , N n 2 1 , n 3 ) = x ( 2 n 1 + 1 , 2 n 2 + 1 , 2 n 3 ) x ~ ( N n 1 1 , N n 2 1 , N n 3 1 ) = x ( 2 n 1 + 1 , 2 n 2 + 1 , 2 n 3 + 1 ) {\displaystyle {\begin{array}{lcl}{\tilde {x}}(n_{1},n_{2},n_{3})=x(2n_{1},2n_{2},2n_{3})\\{\tilde {x}}(n_{1},n_{2},N-n_{3}-1)=x(2n_{1},2n_{2},2n_{3}+1)\\{\tilde {x}}(n_{1},N-n_{2}-1,n_{3})=x(2n_{1},2n_{2}+1,2n_{3})\\{\tilde {x}}(n_{1},N-n_{2}-1,N-n_{3}-1)=x(2n_{1},2n_{2}+1,2n_{3}+1)\\{\tilde {x}}(N-n_{1}-1,n_{2},n_{3})=x(2n_{1}+1,2n_{2},2n_{3})\\{\tilde {x}}(N-n_{1}-1,n_{2},N-n_{3}-1)=x(2n_{1}+1,2n_{2},2n_{3}+1)\\{\tilde {x}}(N-n_{1}-1,N-n_{2}-1,n_{3})=x(2n_{1}+1,2n_{2}+1,2n_{3})\\{\tilde {x}}(N-n_{1}-1,N-n_{2}-1,N-n_{3}-1)=x(2n_{1}+1,2n_{2}+1,2n_{3}+1)\\\end{array}}}
dónde 0 n 1 , n 2 , n 3 N 2 1 {\displaystyle 0\leq n_{1},n_{2},n_{3}\leq {\frac {N}{2}}-1}

La figura adyacente muestra las cuatro etapas que intervienen en el cálculo de la DCT-II 3-D utilizando el algoritmo VR DIF. La primera etapa es la reordenación 3-D utilizando el mapeo de índices ilustrado por las ecuaciones anteriores. La segunda etapa es el cálculo de la mariposa. Cada mariposa calcula ocho puntos juntos como se muestra en la figura que se encuentra justo debajo, donde . c ( φ i ) = cos ( φ i ) {\displaystyle c(\varphi _{i})=\cos(\varphi _{i})}

La DCT-II 3-D original ahora se puede escribir como

X ( k 1 , k 2 , k 3 ) = n 1 = 1 N 1 n 2 = 1 N 1 n 3 = 1 N 1 x ~ ( n 1 , n 2 , n 3 ) cos ( φ k 1 ) cos ( φ k 2 ) cos ( φ k 3 ) {\displaystyle X(k_{1},k_{2},k_{3})=\sum _{n_{1}=1}^{N-1}\sum _{n_{2}=1}^{N-1}\sum _{n_{3}=1}^{N-1}{\tilde {x}}(n_{1},n_{2},n_{3})\cos(\varphi k_{1})\cos(\varphi k_{2})\cos(\varphi k_{3})}

dónde φ i = π 2 N ( 4 N i + 1 ) ,  and  i = 1 , 2 , 3. {\displaystyle \varphi _{i}={\frac {\pi }{2N}}(4N_{i}+1),{\text{ and }}i=1,2,3.}

Si se consideran las partes pares e impares de y y , la fórmula general para el cálculo de la DCT-II 3-D se puede expresar como k 1 , k 2 {\displaystyle k_{1},k_{2}} k 3 {\displaystyle k_{3}}

La etapa de mariposa única del algoritmo VR DIF.
X ( k 1 , k 2 , k 3 ) = n 1 = 1 N 2 1 n 2 = 1 N 2 1 n 1 = 1 N 2 1 x ~ i j l ( n 1 , n 2 , n 3 ) cos ( φ ( 2 k 1 + i ) cos ( φ ( 2 k 2 + j ) cos ( φ ( 2 k 3 + l ) ) {\displaystyle X(k_{1},k_{2},k_{3})=\sum _{n_{1}=1}^{{\tfrac {N}{2}}-1}\sum _{n_{2}=1}^{{\tfrac {N}{2}}-1}\sum _{n_{1}=1}^{{\tfrac {N}{2}}-1}{\tilde {x}}_{ijl}(n_{1},n_{2},n_{3})\cos(\varphi (2k_{1}+i)\cos(\varphi (2k_{2}+j)\cos(\varphi (2k_{3}+l))}

dónde

x ~ i j l ( n 1 , n 2 , n 3 ) = x ~ ( n 1 , n 2 , n 3 ) + ( 1 ) l x ~ ( n 1 , n 2 , n 3 + n 2 ) {\displaystyle {\tilde {x}}_{ijl}(n_{1},n_{2},n_{3})={\tilde {x}}(n_{1},n_{2},n_{3})+(-1)^{l}{\tilde {x}}\left(n_{1},n_{2},n_{3}+{\frac {n}{2}}\right)}
+ ( 1 ) j x ~ ( n 1 , n 2 + n 2 , n 3 ) + ( 1 ) j + l x ~ ( n 1 , n 2 + n 2 , n 3 + n 2 ) {\displaystyle +(-1)^{j}{\tilde {x}}\left(n_{1},n_{2}+{\frac {n}{2}},n_{3}\right)+(-1)^{j+l}{\tilde {x}}\left(n_{1},n_{2}+{\frac {n}{2}},n_{3}+{\frac {n}{2}}\right)}
+ ( 1 ) i x ~ ( n 1 + n 2 , n 2 , n 3 ) + ( 1 ) i + j x ~ ( n 1 + n 2 + n 2 , n 2 , n 3 ) {\displaystyle +(-1)^{i}{\tilde {x}}\left(n_{1}+{\frac {n}{2}},n_{2},n_{3}\right)+(-1)^{i+j}{\tilde {x}}\left(n_{1}+{\frac {n}{2}}+{\frac {n}{2}},n_{2},n_{3}\right)}
+ ( 1 ) i + l x ~ ( n 1 + n 2 , n 2 , n 3 + n 3 ) {\displaystyle +(-1)^{i+l}{\tilde {x}}\left(n_{1}+{\frac {n}{2}},n_{2},n_{3}+{\frac {n}{3}}\right)}
+ ( 1 ) i + j + l x ~ ( n 1 + n 2 , n 2 + n 2 , n 3 + n 2 )  where  i , j , l = 0  or  1. {\displaystyle +(-1)^{i+j+l}{\tilde {x}}\left(n_{1}+{\frac {n}{2}},n_{2}+{\frac {n}{2}},n_{3}+{\frac {n}{2}}\right){\text{ where }}i,j,l=0{\text{ or }}1.}
Complejidad aritmética

Todo el cálculo de la DCT 3-D necesita etapas, y cada etapa implica mariposas. Todo el cálculo de la DCT 3-D requiere mariposas para ser calculado. Cada mariposa requiere siete multiplicaciones reales (incluidas las multiplicaciones triviales) y 24 sumas reales (incluidas las sumas triviales). Por lo tanto, el número total de multiplicaciones reales necesarias para esta etapa es y el número total de sumas reales, es decir, incluidas las sumas posteriores (sumas recursivas) que se pueden calcular directamente después de la etapa de mariposa o después de la etapa de inversión de bits, se da por [106].   [ log 2 N ]   {\displaystyle ~[\log _{2}N]~}   1 8   N 3   {\displaystyle ~{\tfrac {1}{8}}\ N^{3}~}   [ 1 8   N 3 log 2 N ]   {\displaystyle ~\left[{\tfrac {1}{8}}\ N^{3}\log _{2}N\right]~}   [ 7 8   N 3   log 2 N ]   , {\displaystyle ~\left[{\tfrac {7}{8}}\ N^{3}\ \log _{2}N\right]~,}   [ 3 2 N 3 log 2 N ] Real + [ 3 2 N 3 log 2 N 3 N 3 + 3 N 2 ] Recursive = [ 9 2 N 3 log 2 N 3 N 3 + 3 N 2 ]   . {\displaystyle ~\underbrace {\left[{\frac {3}{2}}N^{3}\log _{2}N\right]} _{\text{Real}}+\underbrace {\left[{\frac {3}{2}}N^{3}\log _{2}N-3N^{3}+3N^{2}\right]} _{\text{Recursive}}=\left[{\frac {9}{2}}N^{3}\log _{2}N-3N^{3}+3N^{2}\right]~.}

El método convencional para calcular MD-DCT-II utiliza un enfoque de marco de fila-columna (RCF), que es computacionalmente complejo y menos productivo en las plataformas de hardware más recientes y avanzadas. La cantidad de multiplicaciones necesarias para calcular el algoritmo VR DIF en comparación con el algoritmo RCF es bastante pequeña. La cantidad de multiplicaciones y sumas involucradas en el enfoque RCF se dan por y respectivamente. De la Tabla 1, se puede ver que la cantidad total   [ 3 2 N 3 log 2 N ]   {\displaystyle ~\left[{\frac {3}{2}}N^{3}\log _{2}N\right]~}   [ 9 2 N 3 log 2 N 3 N 3 + 3 N 2 ]   , {\displaystyle ~\left[{\frac {9}{2}}N^{3}\log _{2}N-3N^{3}+3N^{2}\right]~,}

TABLA 1 Comparación de los algoritmos VR DIF y RCF para el cálculo de 3D-DCT-II
Transformar tamañoMultiplicaciones de realidad virtual 3DRCF MultasLa realidad virtual 3D añadeRCF añade
8 × 8 × 82.6254.510.87510.875
16 × 16 × 163.5615.18815.188
32 × 32 × 324.3757.519.59419.594
64 × 64 × 645.25924.04724.047

El número de multiplicaciones asociadas con el algoritmo 3-D DCT VR es menor que el asociado con el enfoque RCF en más del 40%. Además, el enfoque RCF implica transposición de matriz y más indexación e intercambio de datos que el nuevo algoritmo VR. Esto hace que el algoritmo 3-D DCT VR sea más eficiente y más adecuado para aplicaciones 3-D que involucran el 3-D DCT-II, como la compresión de video y otras aplicaciones de procesamiento de imágenes 3-D.

La consideración principal al elegir un algoritmo rápido es evitar complejidades computacionales y estructurales. A medida que avanza la tecnología de las computadoras y los DSP, el tiempo de ejecución de las operaciones aritméticas (multiplicaciones y sumas) se está volviendo muy rápido, y la estructura computacional regular se convierte en el factor más importante. [107] Por lo tanto, aunque el algoritmo 3-D VR propuesto anteriormente no alcanza el límite inferior teórico en el número de multiplicaciones, [108] tiene una estructura computacional más simple en comparación con otros algoritmos 3-D DCT. Se puede implementar en su lugar utilizando una sola mariposa y posee las propiedades del algoritmo Cooley-Tukey FFT en 3-D. Por lo tanto, el 3-D VR presenta una buena opción para reducir las operaciones aritméticas en el cálculo de la DCT-II 3-D, al tiempo que mantiene la estructura simple que caracteriza a los algoritmos Cooley-Tukey FFT de estilo mariposa .

Frecuencias DCT bidimensionales de la DCT JPEG

La imagen de la derecha muestra una combinación de frecuencias horizontales y verticales para una DCT bidimensional de 8 × 8. Cada paso de izquierda a derecha y de arriba a abajo es un aumento de frecuencia de 1/2 ciclo. Por ejemplo, moverse un paso hacia la derecha desde el cuadrado superior izquierdo produce un aumento de medio ciclo en la frecuencia horizontal. Otro movimiento hacia la derecha produce dos medios ciclos. Un movimiento hacia abajo produce dos medios ciclos horizontales y un medio ciclo vertical. Los datos de origen (8×8) se transforman en una combinación lineal de estos 64 cuadrados de frecuencia. (   N 1 = N 2 = 8   ) {\displaystyle (~N_{1}=N_{2}=8~)}

MD-DCT-IV

La DCT-IV MD es simplemente una extensión de la DCT-IV 1-D en el dominio M  -dimensional. La DCT-IV 2-D de una matriz o una imagen se obtiene mediante

X k , = n = 0 N 1 m = 0 M 1   x n , m cos (   ( 2 m + 1 ) ( 2 k + 1 )   π 4 N   ) cos (   ( 2 n + 1 ) ( 2 + 1 )   π 4 M   )   , {\displaystyle X_{k,\ell }=\sum _{n=0}^{N-1}\;\sum _{m=0}^{M-1}\ x_{n,m}\cos \left(\ {\frac {\,(2m+1)(2k+1)\ \pi \,}{4N}}\ \right)\cos \left(\ {\frac {\,(2n+1)(2\ell +1)\ \pi \,}{4M}}\ \right)~,}
para y     k = 0 ,   1 ,   2     N 1     {\displaystyle ~~k=0,\ 1,\ 2\ \ldots \ N-1~~}     = 0 ,   1 ,   2 ,     M 1   . {\displaystyle ~~\ell =0,\ 1,\ 2,\ \ldots \ M-1~.}

Podemos calcular la DCT-IV MD utilizando el método de fila-columna regular o podemos utilizar el método de transformada polinómica [109] para un cálculo rápido y eficiente. La idea principal de este algoritmo es utilizar la transformada polinómica para convertir la DCT multidimensional en una serie de DCT 1-D directamente. La DCT-IV MD también tiene varias aplicaciones en varios campos.

Cálculo

Aunque la aplicación directa de estas fórmulas requeriría operaciones, es posible calcular lo mismo con solo complejidad factorizando el cálculo de manera similar a la transformada rápida de Fourier (FFT). También se pueden calcular DCT mediante FFT combinadas con pasos de preprocesamiento y posprocesamiento. En general, los métodos para calcular DCT se conocen como algoritmos de transformada rápida de coseno (FCT).   O ( N 2 )   {\displaystyle ~{\mathcal {O}}(N^{2})~}   O ( N log N )   {\displaystyle ~{\mathcal {O}}(N\log N)~}   O ( N )   {\displaystyle ~{\mathcal {O}}(N)~}   O ( N log N )   {\displaystyle ~{\mathcal {O}}(N\log N)~}

En principio, los algoritmos más eficientes suelen ser aquellos que están especializados directamente para la DCT, en lugar de utilizar una FFT ordinaria más operaciones adicionales (véase más adelante una excepción). Sin embargo, incluso los algoritmos DCT "especializados" (incluidos todos los que alcanzan los recuentos aritméticos más bajos conocidos, al menos para tamaños de potencia de dos ) suelen estar estrechamente relacionados con los algoritmos FFT; dado que las DCT son esencialmente DFT de datos reales-par, se puede diseñar un algoritmo DCT rápido tomando una FFT y eliminando las operaciones redundantes debido a esta simetría. Esto incluso se puede hacer de forma automática (Frigo y Johnson 2005). Los algoritmos basados ​​en el algoritmo Cooley-Tukey FFT son los más comunes, pero también se puede aplicar cualquier otro algoritmo FFT. Por ejemplo, el algoritmo Winograd FFT conduce a algoritmos de multiplicación mínima para la DFT, aunque generalmente a costa de más adiciones, y un algoritmo similar fue propuesto por (Feig y Winograd 1992a) para la DCT. Debido a que los algoritmos para DFT, DCT y transformaciones similares están tan estrechamente relacionados, cualquier mejora en los algoritmos para una transformada conducirá teóricamente a ganancias inmediatas también para las otras transformaciones (Duhamel y Vetterli 1990).   O ( N )   {\displaystyle ~{\mathcal {O}}(N)~}

Si bien los algoritmos DCT que emplean una FFT no modificada suelen tener cierta sobrecarga teórica en comparación con los mejores algoritmos DCT especializados, los primeros también tienen una clara ventaja: hay una amplia disponibilidad de programas FFT altamente optimizados. Por lo tanto, en la práctica, suele ser más fácil obtener un alto rendimiento para longitudes generales N con algoritmos basados ​​en FFT. [a] Por otro lado, los algoritmos DCT especializados se utilizan ampliamente para transformadas de tamaños pequeños y fijos, como la DCT-II de 8 × 8 utilizada en la compresión JPEG , o las DCT pequeñas (o MDCT) que se utilizan normalmente en la compresión de audio. (El tamaño reducido del código también puede ser una razón para utilizar una DCT especializada para aplicaciones de dispositivos integrados).

De hecho, incluso los algoritmos DCT que utilizan una FFT ordinaria son a veces equivalentes a podar las operaciones redundantes de una FFT más grande de datos simétricos reales, e incluso pueden ser óptimos desde la perspectiva de los recuentos aritméticos. Por ejemplo, una DCT de tipo II es equivalente a una DFT de tamaño con simetría real-par cuyos elementos de índice par son cero. Uno de los métodos más comunes para calcular esto a través de una FFT (por ejemplo, el método utilizado en FFTPACK y FFTW ) fue descrito por Narasimha y Peterson (1978) y Makhoul (1980), y este método en retrospectiva puede verse como un paso de un algoritmo Cooley-Tukey de diezmado en el tiempo de radix-4 aplicado a la DFT real-par "lógica" correspondiente a la DCT-II. [b] Debido a que los elementos de índice par son cero, este paso de radix-4 es exactamente el mismo que un paso de radix dividido. Si la FFT de datos reales de tamaño posterior también se realiza mediante un algoritmo de base dividida de datos reales (como en Sorensen et al. (1987)), entonces el algoritmo resultante en realidad coincide con lo que durante mucho tiempo fue el recuento aritmético publicado más bajo para la DCT-II de potencia de dos ( operaciones aritméticas reales [c] ).   4 N   {\displaystyle ~4N~}   N   {\displaystyle ~N~}   2 N log 2 N N + 2   {\displaystyle ~2N\log _{2}N-N+2~}

Una reducción reciente en el conteo de operaciones también utiliza una FFT de datos reales. [110] Por lo tanto, no hay nada intrínsecamente malo en calcular la DCT a través de una FFT desde una perspectiva aritmética: a veces es simplemente una cuestión de si el algoritmo FFT correspondiente es óptimo. (En la práctica, la sobrecarga de llamadas de función al invocar una rutina FFT separada puede ser significativa para pequeñas, pero esta es una implementación más que una cuestión algorítmica, ya que se puede resolver mediante desenrollado o inserción en línea).   17 9 N log 2 N + O ( N ) {\displaystyle ~{\tfrac {17}{9}}N\log _{2}N+{\mathcal {O}}(N)}   N   , {\displaystyle ~N~,}

Ejemplo de IDCT

Un ejemplo que muestra ocho filtros diferentes aplicados a una imagen de prueba (arriba a la izquierda) multiplicando su espectro DCT (arriba a la derecha) con cada filtro.

Considere esta imagen en escala de grises de 8x8 de la letra mayúscula A.

Tamaño original, escala 10x (vecino más cercano), escala 10x (bilineal).
Funciones base de la transformación discreta del coseno con los coeficientes correspondientes (específicos para nuestra imagen).
DCT de la imagen = . [ 6.1917 0.3411 1.2418 0.1492 0.1583 0.2742 0.0724 0.0561 0.2205 0.0214 0.4503 0.3947 0.7846 0.4391 0.1001 0.2554 1.0423 0.2214 1.0017 0.2720 0.0789 0.1952 0.2801 0.4713 0.2340 0.0392 0.2617 0.2866 0.6351 0.3501 0.1433 0.3550 0.2750 0.0226 0.1229 0.2183 0.2583 0.0742 0.2042 0.5906 0.0653 0.0428 0.4721 0.2905 0.4745 0.2875 0.0284 0.1311 0.3169 0.0541 0.1033 0.0225 0.0056 0.1017 0.1650 0.1500 0.2970 0.0627 0.1960 0.0644 0.1136 0.1031 0.1887 0.1444 ] {\displaystyle {\begin{bmatrix}6.1917&-0.3411&1.2418&0.1492&0.1583&0.2742&-0.0724&0.0561\\0.2205&0.0214&0.4503&0.3947&-0.7846&-0.4391&0.1001&-0.2554\\1.0423&0.2214&-1.0017&-0.2720&0.0789&-0.1952&0.2801&0.4713\\-0.2340&-0.0392&-0.2617&-0.2866&0.6351&0.3501&-0.1433&0.3550\\0.2750&0.0226&0.1229&0.2183&-0.2583&-0.0742&-0.2042&-0.5906\\0.0653&0.0428&-0.4721&-0.2905&0.4745&0.2875&-0.0284&-0.1311\\0.3169&0.0541&-0.1033&-0.0225&-0.0056&0.1017&-0.1650&-0.1500\\-0.2970&-0.0627&0.1960&0.0644&-0.1136&-0.1031&0.1887&0.1444\\\end{bmatrix}}}

Cada función base se multiplica por su coeficiente y luego este producto se suma a la imagen final.

A la izquierda se muestra la imagen final. En el medio se muestra la función ponderada (multiplicada por un coeficiente) que se agrega a la imagen final. A la derecha se muestra la función actual y el coeficiente correspondiente. Las imágenes se escalan (usando interpolación bilineal) por un factor de 10×.

Véase también

Notas

  1. ^ El rendimiento algorítmico en el hardware moderno generalmente no está determinado principalmente por simples recuentos aritméticos, y la optimización requiere un esfuerzo de ingeniería sustancial para hacer el mejor uso, dentro de sus límites intrínsecos, de la optimización de hardware incorporada disponible.
  2. ^ El paso de base 4 reduce la DFT de tamaño a cuatro DFT de tamaño de datos reales, dos de las cuales son cero y dos de las cuales son iguales entre sí por la simetría par. Por lo tanto, se obtiene una FFT de tamaño único de datos reales más mariposas , una vez que se eliminan y/o fusionan las partes triviales y/o duplicadas.   4 N   {\displaystyle ~4N~}   N   {\displaystyle ~N~}   N   {\displaystyle ~N~}   O ( N )   {\displaystyle ~{\mathcal {O}}(N)~}
  3. ^ El recuento preciso de operaciones aritméticas reales, y en particular el recuento de multiplicaciones reales, depende en cierta medida de la escala de la definición de la transformación. El recuento corresponde a la definición de DCT-II que se muestra aquí; se pueden guardar dos multiplicaciones si la transformación se escala por un factor general. Se pueden guardar multiplicaciones adicionales si se permite que las salidas de la transformación se reescalen individualmente, como lo demostraron Arai, Agui y Nakajima (1988) para el caso de tamaño 8 utilizado en JPEG.   2 N log 2 N N + 2   {\displaystyle ~2N\log _{2}N-N+2~} 2 {\displaystyle {\sqrt {2}}}

Referencias

  1. ^ abcdefghijklmnopqrstu vwxyz aa Stanković, Radomir S.; Astola, Jaakko T. (2012). "Reminiscencias de los primeros trabajos en DCT: entrevista con KR Rao" (PDF) . Reimpresiones de los primeros días de las ciencias de la información . 60 . Centro Internacional de Procesamiento de Señales de Tampere. ISBN 978-9521528187. ISSN  1456-2774. Archivado (PDF) del original el 30 de diciembre de 2021. Consultado el 30 de diciembre de 2021 – vía ETHW .
  2. ^ abcde Britanak, Vladimir; Yip, Patrick C.; Rao, KR (6 de noviembre de 2006). Transformadas discretas de coseno y seno: propiedades generales, algoritmos rápidos y aproximaciones enteras . Academic Press . ISBN 978-0123736246. LCCN  2006931102. OCLC  220853454. OL  18495589M. S2CID  118873224.
  3. ^ abcd Alikhani, Darya (1 de abril de 2015). «Más allá de la resolución: el arte glitch de Rosa Menkman». POSTmatter . Archivado desde el original el 19 de octubre de 2019. Consultado el 19 de octubre de 2019 .
  4. ^ abcdef Thomson, Gavin; Shah, Athar (2017). "Introducción a HEIF y HEVC" (PDF) . Apple Inc. Consultado el 5 de agosto de 2019 .
  5. ^ abcdef Ahmed, Nasir ; Natarajan, T. Raj; Rao, KR (1 de enero de 1974). "Transformada de coseno discreta". Transacciones IEEE en computadoras . C-23 (1). Sociedad de Computación IEEE: 90–93. doi :10.1109/TC.1974.223784. eISSN  1557-9956. ISSN  0018-9340. LCCN  75642478. OCLC  1799331. S2CID  206619973.
  6. ^ abcdef Rao, K. Ramamohan ; Yip, Patrick C. (11 de septiembre de 1990). Transformada discreta del coseno: algoritmos, ventajas, aplicaciones . Procesamiento de señales, imágenes y voz. Academic Press . arXiv : 1109.0337 . doi :10.1016/c2009-0-22279-3. ISBN 978-0125802031. LCCN  89029800. OCLC  1008648293. OL  2207570M. S2CID  12270940.
  7. ^ abcdefg Barbero, M.; Hofmann, H.; Wells, ND (14 de noviembre de 1991). "Codificación de fuente DCT e implementaciones actuales para HDTV". EBU Technical Review (251). Unión Europea de Radiodifusión : 22–33 . Consultado el 4 de noviembre de 2019 .
  8. ^ abcde Lea, William (1994). "Video on demand: Research Paper 94/68". Biblioteca de la Cámara de los Comunes . Consultado el 20 de septiembre de 2019 .
  9. ^ ab Ahmed, Nasir (enero de 1991). "Cómo se me ocurrió 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.
  10. ^ abcde «T.81 – Compresión digital y codificación de imágenes fijas de tono continuo – Requisitos y directrices» (PDF) . CCITT . Septiembre de 1992. Consultado el 12 de julio de 2019 .
  11. ^ Chen, Wen-Hsiung; Smith, CH; Fralick, SC (septiembre de 1977). "Un algoritmo computacional rápido para la transformada discreta del coseno". IEEE Transactions on Communications . 25 (9): 1004–1009. doi :10.1109/TCOM.1977.1093941.
  12. ^ Smith, C.; Fralick, S. (1977). "Un algoritmo computacional rápido para la transformada discreta del coseno". IEEE Transactions on Communications . 25 (9): 1004–1009. doi :10.1109/TCOM.1977.1093941. ISSN  0090-6778.
  13. ^ Dhamija, Swati; Jain, Priyanka (septiembre de 2011). "Análisis comparativo de la transformada sinusoidal discreta como método adecuado para la estimación del ruido". IJCSI International Journal of Computer Science . 8 (5, n.º 3): 162–164 (162) . Consultado el 4 de noviembre de 2019 .
  14. ^ Huang, TS (1981). Análisis de secuencias de imágenes. Springer Science & Business Media . pág. 29. ISBN. 9783642870378.
  15. ^ Roese, John A.; Robinson, Guner S. (30 de octubre de 1975). Tescher, Andrew G. (ed.). "Codificación espacial y temporal combinada de secuencias de imágenes digitales". Transmisión eficiente de información pictórica . 0066 . Sociedad Internacional de Óptica y Fotónica: 172–181. Bibcode :1975SPIE...66..172R. doi :10.1117/12.965361. S2CID  62725808.
  16. ^ Cianci, Philip J. (2014). Televisión de alta definición: la creación, el desarrollo y la implementación de la tecnología HDTV. McFarland. pág. 63. ISBN 9780786487974.
  17. ^ abc "Historia de la compresión de vídeo". UIT-T . Equipo de vídeo conjunto (JVT) de ISO/IEC MPEG y ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 y ITU-T SG16 Q.6). Julio de 2002. págs. 11, 24–9, 33, 40–1, 53–6 . Consultado el 3 de noviembre de 2019 .
  18. ^ abc Ghanbari, Mohammed (2003). Códecs estándar: de la compresión de imágenes a la codificación avanzada de vídeo. Institution of Engineering and Technology . págs. 1–2. ISBN 9780852967102.
  19. ^ Li, Jian Ping (2006). Actas de la Conferencia Internacional de Computación 2006 sobre Tecnología de Medios Activos Wavelet y Procesamiento de Información: Chongqing, China, 29-31 de agosto de 2006. World Scientific . p. 847. ISBN 9789812709998.
  20. ^ Princen, John P.; Johnson, AW; Bradley, Alan B. (1987). "Codificación de subbanda/transformación utilizando diseños de bancos de filtros basados ​​en cancelación de aliasing en el dominio del tiempo". ICASSP '87. IEEE International Conference on Acoustics, Speech, and Signal Processing . Vol. 12. págs. 2161–2164. doi :10.1109/ICASSP.1987.1169405. S2CID  58446992.
  21. ^ Princen, J.; Bradley, A. (1986). "Diseño de un banco de filtros de análisis/síntesis basado en la cancelación de aliasing en el dominio del tiempo". IEEE Transactions on Acoustics, Speech, and Signal Processing . 34 (5): 1153–1161. doi :10.1109/TASSP.1986.1164954.
  22. ^ abcdefghijk Luo, Fa-Long (2008). Estándares de transmisión multimedia móvil: tecnología y práctica. Springer Science & Business Media . pág. 590. ISBN 9780387782638.
  23. ^ ab Britanak, V. (2011). "Sobre propiedades, relaciones e implementación simplificada de bancos de filtros en los estándares de codificación de audio Dolby Digital (Plus) AC-3". IEEE Transactions on Audio, Speech, and Language Processing . 19 (5): 1231–1241. doi :10.1109/TASL.2010.2087755. S2CID  897622.
  24. ^ ab Guckert, John (primavera de 2012). "El uso de FFT y MDCT en la compresión de audio MP3" (PDF) . Universidad de Utah . Consultado el 14 de julio de 2019 .
  25. ^ ab Brandenburg, Karlheinz (1999). "MP3 y AAC explicados" (PDF) . Archivado (PDF) desde el original el 13 de febrero de 2017.
  26. ^ ab Xiph.Org Foundation (2009-06-02). "Especificación Vorbis I - Clasificación 1.1.2". Xiph.Org Foundation . Consultado el 22 de septiembre de 2009 .
  27. ^ Mandyam, Giridhar D. ; Ahmed, Nasir; Magotra, Neeraj (17 de abril de 1995). Rodriguez, Arturo A.; Safranek, Robert J.; Delp, Edward J. (eds.). "Esquema basado en DCT para compresión de imágenes sin pérdida". Compresión de vídeo digital: algoritmos y tecnologías 1995 . 2419 . Sociedad Internacional de Óptica y Fotónica: 474–478. Bibcode :1995SPIE.2419..474M. doi :10.1117/12.206386. S2CID  13894279.
  28. ^ Komatsu, K.; Sezaki, Kaoru (1998). "Transformada de coseno discreta reversible". Actas de la Conferencia Internacional IEEE de 1998 sobre Acústica, Habla y Procesamiento de Señales, ICASSP '98 (Cat. No.98CH36181) . Vol. 3. págs. 1769–1772 vol.3. doi :10.1109/ICASSP.1998.681802. ISBN 0-7803-4428-6.S2CID 17045923  .
  29. ^ Muchahary, D.; Mondal, A. J.; Parmar, RS; Borah, AD; Majumder, A. (2015). "Un enfoque de diseño simplificado para el cálculo eficiente de DCT". Quinta Conferencia Internacional de 2015 sobre Sistemas de Comunicación y Tecnologías de Red . págs. 483–487. doi :10.1109/CSNT.2015.134. ISBN 978-1-4799-1797-6.S2CID16411333  .
  30. ^ Chen, Wai Kai (2004). Manual de ingeniería eléctrica. Elsevier . pág. 906. ISBN 9780080477480.
  31. ^ abc "¿Qué es un JPEG? El objeto invisible que ves todos los días". The Atlantic . 24 de septiembre de 2013 . Consultado el 13 de septiembre de 2019 .
  32. ^ abc Pessina, Laure-Anne (12 de diciembre de 2014). "JPEG cambió nuestro mundo". Noticias EPFL . Escuela Politécnica Federal de Lausana . Consultado el 13 de septiembre de 2019 .
  33. ^ ab Lee, Ruby Bei-Loh; Beck, John P.; Lamb, Joel; Severson, Kenneth E. (abril de 1995). "Descodificador de vídeo MPEG de software en tiempo real en procesadores PA 7100LC mejorados con multimedia" (PDF) . Hewlett-Packard Journal . 46 (2). ISSN  0018-1153.
  34. ^ abc Lee, Jack (2005). Sistemas escalables de transmisión continua de medios: arquitectura, diseño, análisis e implementación. John Wiley & Sons . p. 25. ISBN 9780470857649.
  35. ^ abc Shishikui, Yoshiaki; Nakanishi, Hiroshi; Imaizumi, Hiroyuki (26-28 de octubre de 1993). "Un esquema de codificación HDTV utilizando DCT de dimensión adaptativa". Procesamiento de señales de HDTV . Elsevier . págs. 611–618. doi :10.1016/B978-0-444-81844-7.50072-3. ISBN 9781483298511.
  36. ^ ab Ochoa-Dominguez, Humberto; Rao, KR (2019). Transformada discreta del coseno, segunda edición. CRC Press . págs. 1–3, 129. ISBN 9781351396486.
  37. ^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae Ochoa-Dominguez, Humberto; Rao, KR (2019). Transformada discreta del coseno, segunda edición. CRC Press . págs. 1–3. ISBN 9781351396486.
  38. ^ abcde Britanak, Vladimir; Rao, KR (2017). Bancos de filtros modulados por seno y coseno: propiedades generales, algoritmos rápidos y aproximaciones enteras. Springer. pág. 478. ISBN 9783319610801.
  39. ^ ab 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–9. ISBN 978-1-136-03410-7.
  40. ^ abc Hersent, Olivier; Petit, Jean-Pierre; Gurle, David (2005). Más allá de los protocolos VoIP: comprensión de la tecnología de voz y las técnicas de redes para telefonía IP. John Wiley & Sons . p. 55. ISBN 9780470023631.
  41. ^ abcde Daniel Eran Dilger (8 de junio de 2010). «Dentro del iPhone 4: videollamadas FaceTime». AppleInsider . Consultado el 9 de junio de 2010 .
  42. ^ abcd Netflix Technology Blog (19 de abril de 2017). «Codificaciones móviles más eficientes para descargas de Netflix». Medium.com . Netflix . Consultado el 20 de octubre de 2019 .
  43. ^ ab "Informe de desarrolladores de vídeo 2019" (PDF) . Bitmovin . 2019 . Consultado el 5 de noviembre de 2019 .
  44. ^ Ochoa-Dominguez, Humberto; Rao, KR (2019). Transformada discreta del coseno, segunda edición. CRC Press. p. 186. ISBN 9781351396486.
  45. ^ abcd McKernan, Brian (2005). Cine digital: la revolución en cinematografía, posproducción y distribución. McGraw-Hill . p. 58. ISBN 978-0-07-142963-4La tecnología DCT se utiliza en la mayoría de los sistemas de compresión estandarizados por el Moving Picture Experts Group (MPEG) y es la tecnología dominante para la compresión de imágenes. En particular, es la tecnología básica de MPEG-2, el sistema utilizado para los DVD y la transmisión de televisión digital, que se ha utilizado en muchos de los ensayos del cine digital.
  46. ^ ab Baraniuk, Chris (15 de octubre de 2015). "La protección de copias podría llegar a JPegs". BBC News . BBC . Consultado el 13 de septiembre de 2019 .
  47. ^ Ascher, Steven; Pincus, Edward (2012). Manual del cineasta: una guía completa para la era digital: quinta edición. Penguin. págs. 246–7. ISBN 978-1-101-61380-1.
  48. ^ Bertalmio, Marcelo (2014). Procesamiento de imágenes para cine. Prensa CRC . pag. 95.ISBN 978-1-4398-9928-1.
  49. ^ Zhang, HongJiang (1998). "Exploración y recuperación de vídeo basada en contenido". En Furht, Borko (ed.). Manual de sistemas y aplicaciones de Internet y multimedia. CRC Press . págs. 83–108 (89). ISBN 9780849318580.
  50. ^ ab "Familia de códecs Apple ProRes 422". Biblioteca del Congreso . 17 de noviembre de 2014 . Consultado el 13 de octubre de 2019 .
  51. ^ Potluri, EE. UU.; Madanayake, A.; Cintra, RJ; Bayer, FM; Rajapaksha, N. (17 de octubre de 2012). "Aproximaciones DCT sin multiplicadores para imágenes espaciales de matriz de apertura digital multihaz de RF y detección direccional". Measurement Science and Technology . 23 (11): 114003. doi :10.1088/0957-0233/23/11/114003. ISSN  0957-0233. S2CID  119888170.
  52. ^ ab Wang, Hanli; Kwong, S.; Kok, C. (2006). "Algoritmo de predicción eficiente de coeficientes DCT enteros para optimización H.264 /AVC". IEEE Transactions on Circuits and Systems for Video Technology . 16 (4): 547–552. doi :10.1109/TCSVT.2006.871390. S2CID  2060937.
  53. ^ Hudson, Graham; Léger, Alain; Niss, Birger; Sebestyén, István; Vaaben, Jørgen (31 de agosto de 2018). "Estándar JPEG-1 25 años: razones pasadas, presentes y futuras de un éxito". Revista de imágenes electrónicas . 27 (4): 1. doi : 10.1117/1.JEI.27.4.040901 .
  54. ^ "Explicación del formato de imagen JPEG". BT.com . BT Group . 31 de mayo de 2018 . Consultado el 5 de agosto de 2019 .
  55. ^ "Comparación HEIF: formato de archivo de imagen de alta eficiencia". Nokia Technologies . Consultado el 5 de agosto de 2019 .
  56. ^ Alakuijala, Jyrki; Sneyers, Jon; Versari, Luca; Wassenberg, Jan (22 de enero de 2021). "Libro blanco sobre JPEG XL" (PDF) . JPEG Org . Archivado (PDF) del original el 2 de mayo de 2021 . Consultado el 14 de enero de 2022 . La DCT de tamaño variable (cuadrada o rectangular de 2x2 a 256x256) sirve como una aproximación rápida de la transformación decorrelacionante óptima.
  57. ^ ab Wang, Yao (2006). "Estándares de codificación de video: Parte I" (PDF) . Archivado desde el original (PDF) el 23 de enero de 2013.
  58. ^ Wang, Yao (2006). "Estándares de codificación de video: Parte II" (PDF) . Archivado desde el original (PDF) el 23 de enero de 2013.
  59. ^ Hoffman, Roy (2012). Compresión de datos en sistemas digitales. Springer Science & Business Media . pág. 255. ISBN. 9781461560319.
  60. ^ ab Rao, KR ; Hwang, JJ (18 de julio de 1996). Técnicas y estándares para la codificación de imágenes, vídeo y audio . Prentice Hall. JPEG: Capítulo 8; H.261 : Capítulo 9; MPEG-1: Capítulo 10; MPEG-2: Capítulo 11. ISBN 978-0133099072. LCCN  96015550. OCLC  34617596. OL  978319M. S2CID  56983045.
  61. ^ Davis, Andrew (13 de junio de 1997). "Resumen de la recomendación H.320". EE Times . Consultado el 7 de noviembre de 2019 .
  62. ^ IEEE WESCANEX 97: comunicaciones, energía y computación: actas de congresos. Universidad de Manitoba, Winnipeg, Manitoba, Canadá: Instituto de Ingenieros Eléctricos y Electrónicos . 22-23 de mayo de 1997. p. 30. ISBN 9780780341470H.263 es similar a H.261 , pero más complejo . Actualmente es el estándar de compresión de vídeo internacional más utilizado para telefonía por vídeo en líneas telefónicas ISDN (Red Digital de Servicios Integrados) .
  63. ^ Peter de Rivaz; Jack Haughton (2018). "AV1 Bitstream & Decoding Process Specification" (PDF) . Alianza para los Medios Abiertos . Consultado el 14 de enero de 2022 .
  64. ^ YouTube Developers (15 de septiembre de 2018). «Lista de reproducción del lanzamiento de la versión beta de AV1». YouTube . Consultado el 14 de enero de 2022 . Los primeros vídeos que recibirán las transcodificaciones AV1 de YouTube.
  65. ^ Brinkmann, Martin (13 de septiembre de 2018). «Cómo habilitar la compatibilidad con AV1 en YouTube» . Consultado el 14 de enero de 2022 .
  66. ^ Blog de tecnología de Netflix (5 de febrero de 2020). «Netflix ahora transmite AV1 en Android» . Consultado el 14 de enero de 2022 .
  67. ^ Blog de tecnología de Netflix (9 de noviembre de 2021). "Lleva la transmisión AV1 a los televisores de los miembros de Netflix" . Consultado el 14 de enero de 2022 .
  68. ^ Herre, J.; Dietz, M. (2008). "Codificación AAC de alta eficiencia MPEG-4 [Estándares en pocas palabras]". Revista IEEE Signal Processing . 25 (3): 137–142. Código Bibliográfico :2008ISPM...25..137H. doi :10.1109/MSP.2008.918684.
  69. ^ Valin, Jean-Marc; Maxwell, Gregory; Terriberry, Timothy B.; Vos, Koen (octubre de 2013). Codificación de música de alta calidad y bajo retardo en el códec Opus . 135.ª Convención de la AES. Sociedad de Ingeniería de Audio . arXiv : 1602.04845 .
  70. ^ "Opus Codec". Opus (página de inicio). Fundación Xiph.org . Consultado el 31 de julio de 2012 .
  71. ^ Leyden, John (27 de octubre de 2015). "WhatsApp al descubierto: se investigan las entrañas de una aplicación que absorbe información". The Register . Consultado el 19 de octubre de 2019 .
  72. ^ Hazra, Sudip; Mateti, Prabhaker (13 al 16 de septiembre de 2017). "Desafíos en la ciencia forense de Android". En Thampi, Sabu M.; Pérez, Gregorio Martínez; Westphall, Carlos Becker; Hu, Jiankun; Fan, Chun I.; Mármol, Félix Gómez (eds.). Seguridad en Computación y Comunicaciones: 5to Simposio Internacional, SSCC 2017 . Saltador. págs. 286–299 (290). doi :10.1007/978-981-10-6898-0_24. ISBN 9789811068980.
  73. ^ Srivastava, Saurabh Ranjan; Dube, Sachin; Shrivastaya, Gulshan; Sharma, Kavita (2019). "Desafíos de seguridad activados por teléfonos inteligentes: problemas, estudios de casos y prevención". En Le, Dac-Nhuong; Kumar, Raghvendra; Mishra, Brojo Kishore; Chatterjee, Jyotir Moy; Khari, Manju (eds.). Ciberseguridad en computación paralela y distribuida: conceptos, técnicas, aplicaciones y estudios de casos . John Wiley & Sons. págs. 187–206 (200). doi :10.1002/9781119488330.ch12. ISBN 9781119488057. Número de identificación del sujeto  214034702.
  74. ^ "Software de código abierto utilizado en PlayStation 4". Sony Interactive Entertainment Inc. Consultado el 11 de diciembre de 2017 .
  75. ^ "Dolby AC-4: Audio Delivery for Next-Generation Entertainment Services" (PDF) . Dolby Laboratories . Junio ​​de 2015. Archivado desde el original (PDF) el 30 de mayo de 2019 . Consultado el 11 de noviembre de 2019 .
  76. ^ 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.
  77. ^ 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 comunicaciones de alta calidad (PDF) . 125.ª Convención AES. Fraunhofer IIS . Sociedad de Ingeniería de Audio . Consultado el 20 de octubre de 2019 .
  78. ^ Lutzky, Manfred; Schuller, Gerald; Gayer, Marc; Krämer, Ulrich; Wabnik, Stefan (mayo de 2004). Una guía para el retardo de los códecs de audio (PDF) . 116.ª Convención de la AES. Fraunhofer IIS . Sociedad de Ingeniería de Audio . Consultado el 24 de octubre de 2019 .
  79. ^ ab Nagireddi, Sivannarayana (2008). Procesamiento de señales de voz y fax VoIP. John Wiley & Sons . pág. 69. ISBN 9780470377864.
  80. ^ "Programa de trabajo del UIT-T". UIT .
  81. ^ Terriberry, Timothy B. Presentación del códec CELT. El evento se produce a los 65 minutos. Archivado desde el original el 7 de agosto de 2011. Consultado el 19 de octubre de 2019 ., también "Diapositivas de presentación del códec CELT" (PDF) .
  82. ^ "Ekiga 3.1.0 disponible". Archivado desde el original el 2011-09-30 . Consultado el 2019-10-19 .
  83. ^ "☏ FreeSWITCH". Cable de señal .
  84. ^ "Enhanced Voice Services (EVS) Codec" (PDF) . Fraunhofer IIS . Marzo de 2017 . Consultado el 19 de octubre de 2019 .
  85. ^ Abousleman, GP; Marcellin, MW; Hunt, BR (enero de 1995), "Compresión de imágenes hiperespectrales utilizando DCT 3-D y DPCM/DCT híbrido", IEEE Trans. Geosci. Remote Sens. , 33 (1): 26–34, Bibcode :1995ITGRS..33...26A, doi :10.1109/36.368225
  86. ^ Chan, Y.; Siu, W. (mayo de 1997), "Codificación de transformada de coseno discreta tridimensional de longitud temporal variable" (PDF) , IEEE Trans. Image Process. , 6 (5): 758–763, Bibcode :1997ITIP....6..758C, CiteSeerX 10.1.1.516.2824 , doi :10.1109/83.568933, hdl :10397/1928, PMID  18282969 
  87. ^ Song, J.; SXiong, Z.; Liu, X.; Liu, Y., "Un algoritmo para la codificación y transmisión de video en capas", Proc. Fourth Int. Conf./Exh. High Performance Comput. Asia-Pacific Region , 2 : 700–703
  88. ^ Tai, S.-C; Gi, Y.; Lin, C.-W. (septiembre de 2000), "Un codificador de transformada de coseno discreta tridimensional adaptativa para la compresión de imágenes médicas", IEEE Trans. Inf. Technol. Biomed. , 4 (3): 259–263, doi :10.1109/4233.870036, PMID  11026596, S2CID  18016215
  89. ^ Yeo, B.; Liu, B. (mayo de 1995), "Representación de volumen de datos escalares 3D comprimidos basados ​​en DCT", IEEE Transactions on Visualization and Computer Graphics , 1 : 29–43, doi :10.1109/2945.468390
  90. ^ Chan, SC; Liu, W.; Ho, KI (2000). "Bancos de filtros modulados de reconstrucción perfecta con suma de coeficientes de potencias de dos". Simposio internacional IEEE de 2000 sobre circuitos y sistemas. Tecnologías emergentes para el siglo XXI. Actas (IEEE Cat No.00CH36353) . Vol. 2. págs. 73–76. doi :10.1109/ISCAS.2000.856261. hdl :10722/46174. ISBN 0-7803-5482-6.S2CID 1757438  .
  91. ^ Queiroz, RL; Nguyen, TQ (1996). "Transformadas superpuestas para codificación eficiente de transformadas/subbandas". IEEE Trans. Signal Process . 44 (5): 497–507.
  92. ^ Malvar 1992.
  93. ^ Chan, SC; Luo, L.; Ho, KL (1998). "Bases de wavelets moduladas por coseno biortogonales con soporte compacto de canal M". IEEE Trans. Signal Process . 46 (2): 1142–1151. Bibcode :1998ITSP...46.1142C. doi :10.1109/78.668566. hdl : 10722/42775 .
  94. ^ ab Katsaggelos, Aggelos K.; Babacan, S. Derin; Chun-Jen, Tsai (2009). "Capítulo 15: Restauración iterativa de imágenes". La guía esencial para el procesamiento de imágenes . Academic Press . págs. 349–383. ISBN 9780123744579.
  95. ^ "Ruido de mosquitos". Revista PC . Consultado el 19 de octubre de 2019 .
  96. ^ Menkman, Rosa (octubre de 2011). The Glitch Moment(um) (PDF) . Instituto de Culturas de Red. ISBN 978-90-816021-6-7. Recuperado el 19 de octubre de 2019 .
  97. ^ Ruff, Thomas (31 de mayo de 2009). "jpegs". Aperture . Aperture. pág. 132. ISBN 9781597110938.
  98. ^ Colberg, Jörg (17 de abril de 2009). "Reseña: jpegs de Thomas Ruff".
  99. ^ "Transformada discreta del coseno - MATLAB dct". www.mathworks.com . Consultado el 11 de julio de 2019 .
  100. ^ Pennebaker, William B.; Mitchell, Joan L. (31 de diciembre de 1992). JPEG: Estándar de compresión de datos de imágenes fijas . Springer. ISBN 9780442012724.
  101. ^ Arai, Y.; Agüí, T.; Nakajima, M. (1988). "Un esquema DCT-SQ rápido para imágenes". Transacciones IEICE . 71 (11): 1095–1097.
  102. ^ Shao, Xuancheng; Johnson, Steven G. (2008). "Algoritmos DCT/DST de tipo II/III con un número reducido de operaciones aritméticas". Procesamiento de señales . 88 (6): 1553–1564. arXiv : cs/0703150 . Código Bibliográfico :2008SigPr..88.1553S. doi :10.1016/j.sigpro.2008.01.004. S2CID  986733.
  103. ^ Malvar 1992
  104. ^ Martucci 1994
  105. ^ Chan, SC; Ho, KL (1990). "Métodos directos para calcular transformadas sinusoidales discretas". Actas del IEE F - Procesamiento de señales y radar . 137 (6): 433. doi :10.1049/ip-f-2.1990.0063.
  106. ^ ab Alshibami, O.; Boussakta, S. (julio de 2001). "Algoritmo tridimensional para la DCT-III 3-D". Proc. Sexto Simposio Internacional Comunitario, Aplicaciones Teóricas : 104–107.
  107. ^ Guoan Bi; Gang Li; Kai-Kuang Ma; Tan, TC (2000). "Sobre el cálculo de DCT bidimensional". IEEE Transactions on Signal Processing . 48 (4): 1171–1183. Bibcode :2000ITSP...48.1171B. doi :10.1109/78.827550.
  108. ^ Feig, E.; Winograd, S. (julio de 1992a). "Sobre la complejidad multiplicativa de las transformadas de coseno discretas". IEEE Transactions on Information Theory . 38 (4): 1387–1391. doi :10.1109/18.144722.
  109. ^ Nussbaumer, HJ (1981). Algoritmos de convolución y transformada rápida de Fourier (1ª ed.). Nueva York: Springer-Verlag.
  110. ^ Shao, Xuancheng; Johnson, Steven G. (2008). "Algoritmos DCT/DST de tipo II/III con un número reducido de operaciones aritméticas". Procesamiento de señales . 88 (6): 1553–1564. arXiv : cs/0703150 . Código Bibliográfico :2008SigPr..88.1553S. doi :10.1016/j.sigpro.2008.01.004. S2CID  986733.

Lectura adicional

  • Narasimha, M.; Peterson, A. (junio de 1978). "Sobre el cálculo de la transformada discreta del coseno". IEEE Transactions on Communications . 26 (6): 934–936. doi :10.1109/TCOM.1978.1094144.
  • Makhoul, J. (febrero de 1980). "Una transformada rápida del coseno en una y dos dimensiones". IEEE Transactions on Acoustics, Speech, and Signal Processing . 28 (1): 27–34. doi :10.1109/TASSP.1980.1163351.
  • Sorensen, H.; Jones, D.; Heideman, M.; Burrus, C. (junio de 1987). "Algoritmos de transformada rápida de Fourier con valor real". IEEE Transactions on Acoustics, Speech, and Signal Processing . 35 (6): 849–863. CiteSeerX  10.1.1.205.4523 . doi :10.1109/TASSP.1987.1165220.
  • Plonka, G. ; Tasche, M. (enero de 2005). "Algoritmos rápidos y numéricamente estables para transformadas de coseno discretas". Álgebra lineal y sus aplicaciones . 394 (1): 309–345. doi : 10.1016/j.laa.2004.07.015 .
  • Duhamel, P.; Vetterli, M. (abril de 1990). "Transformadas rápidas de Fourier: una revisión tutorial y un estado del arte". Procesamiento de señales (manuscrito enviado). 19 (4): 259–299. Código Bibliográfico :1990SigPr..19..259D. doi :10.1016/0165-1684(90)90158-U.
  • Ahmed, N. (enero de 1991). "Cómo se me ocurrió la transformada discreta del coseno". Procesamiento de señales digitales . 1 (1): 4–9. Bibcode :1991DSP.....1....4A. doi :10.1016/1051-2004(91)90086-Z.
  • Feig, E.; Winograd, S. (septiembre de 1992b). "Algoritmos rápidos para la transformada de coseno discreta". IEEE Transactions on Signal Processing . 40 (9): 2174–2193. Bibcode :1992ITSP...40.2174F. doi :10.1109/78.157218.
  • Malvar, Henrique (1992), Procesamiento de señales con transformadas superpuestas , Boston: Artech House, ISBN 978-0-89006-467-2
  • Martucci, SA (mayo de 1994). "Convolución simétrica y transformadas discretas de seno y coseno". IEEE Transactions on Signal Processing . 42 (5): 1038–1051. Bibcode :1994ITSP...42.1038M. doi :10.1109/78.295213.
  • Oppenheim, Alan; Schafer, Ronald; Buck, John (1999), Procesamiento de señales en tiempo discreto (2.ª ed.), Upper Saddle River, NJ: Prentice Hall, ISBN 978-0-13-754920-7
  • Frigo, M.; Johnson, SG (febrero de 2005). "El diseño y la implementación de FFTW3" (PDF) . Actas del IEEE . 93 (2): 216–231. Bibcode :2005IEEEP..93..216F. CiteSeerX  10.1.1.66.3097 . doi :10.1109/JPROC.2004.840301. S2CID  6644892.
  • Boussakta, Said.; Alshibami, Hamoud O. (abril de 2004). "Algoritmo rápido para la DCT-II 3-D" (PDF) . IEEE Transactions on Signal Processing . 52 (4): 992–1000. Bibcode :2004ITSP...52..992B. doi :10.1109/TSP.2004.823472. S2CID  3385296.
  • Cheng, LZ; Zeng, YH (2003). "Nuevo algoritmo rápido para DCT multidimensional tipo IV". IEEE Transactions on Signal Processing . 51 (1): 213–220. doi :10.1109/TSP.2002.806558.
  • Wen-Hsiung Chen; Smith, C.; Fralick, S. (septiembre de 1977). "Un algoritmo computacional rápido para la transformada discreta del coseno". IEEE Transactions on Communications . 25 (9): 1004–1009. doi :10.1109/TCOM.1977.1093941.
  • Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007), "Sección 12.4.2. Transformada del coseno", Recetas numéricas: el arte de la computación científica (3.ª ed.), Nueva York: Cambridge University Press, ISBN 978-0-85-0-312-0 978-0-521-88068-8, archivado desde el original el 11-08-2011 , consultado el 13-08-2011
  • Syed Ali Khayam: La transformada discreta del coseno (DCT): teoría y aplicación
  • Implementación de la aproximación de enteros MPEG de IDCT 8x8 (ISO/IEC 23002-2)
  • Matteo Frigo y Steven G. Johnson : FFTW , página de inicio de FFTW. Biblioteca C gratuita ( GPL ) que puede calcular DCT rápidas (tipos I-IV) en una o más dimensiones, de tamaño arbitrario.
  • Takuya Ooura: Paquete FFT de propósito general, paquete FFT 1-dim / 2-dim. Bibliotecas C y FORTRAN gratuitas para calcular DCT rápidas (tipos II-III) en una, dos o tres dimensiones, potencias de 2 tamaños.
  • Tim Kientzle: Algoritmos rápidos para calcular la DCT de 8 puntos y la IDCT, Algorithm Alley.
  • LTFAT es una caja de herramientas gratuita de Matlab/Octave con interfaces para la implementación FFTW de las DCT y DST de tipo I-IV.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Discrete_cosine_transform&oldid=1251649187"