|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
El coseno discreto transformaA el coseno discreto transforma (DCT) expresa una secuencia finito de muchos puntos de referencias en términos de suma de coseno funciones que oscilan en diferente frecuencias. DCTs es importante para los usos numerosos en ciencia y la ingeniería, de compresión del lossy de audio y imágenes (cuando sea pequeño los componentes de alta frecuencia pueden ser desechados), a métodos espectrales para la solución numérica de ecuaciones diferenciales parciales. El uso del coseno más bien que seno las funciones son críticas en estos usos: para la compresión, resulta que las funciones de coseno son mucho más eficientes (según lo explicado abajo, menos son necesarios aproximar un típico señal), mientras que para las ecuaciones diferenciales los cosenos expresan una opción particular de condiciones de límite. Particularmente, un DCT es a Fourier-relacionado transforme similar a Fourier discreto transforma (DFT), pero con solamente números verdaderos. DCTs es equivalente a DFTs áspero dos veces de la longitud, funcionando en datos verdaderos con uniforme simetría (puesto que el Fourier transforma de un verdadero e incluso la función es verdadera y uniforme), donde en algunas variantes los datos de la entrada y/o de la salida son cambiados de puesto por mitad de una muestra. Hay ocho variantes estándares de DCT, de las cuales cuatro son comunes. La variante más común del coseno discreto transforma es el tipo-Ii DCT, que a menudo se llama simplemente “el DCT”; su lo contrario, el tipo-III DCT, correspondientemente a menudo se llama simplemente “el DCT inverso” o “el IDCT”. Dos relacionados transforma son el seno discreto transforma (DST), que es equivalente a un DFT de verdadero y impar funciones, y el coseno discreto modificado transforma (MDCT), de que se basa en un DCT traslapo datos.
UsosEl DCT, y particularmente el DCT-II, es de uso frecuente en el proceso de la señal y de imagen, especialmente para la compresión de datos del lossy, porque tiene “una característica fuerte de la compactación de la energía” (Rao y Yip, 1990): la mayor parte de la información de la señal tiende para ser concentrada en algunos componentes de baja frecuencia del DCT, el acercarse Karhunen-Loève transforma (que es óptimo en el sentido del decorrelation) para las señales basó en ciertos límites de Procesos de Markov. Según lo explicado abajo, esto proviene las condiciones de límite implícitas en las funciones de coseno. Un relacionado transforma, modificado el coseno discreto transforma, o MDCT (basado en el DCT-IV), se utiliza adentro AAC, Vorbis, WMA, y MP3 compresión audio. DCTs también es empleado extensamente en solucionar ecuaciones diferenciales parciales por los métodos espectrales, donde las diversas variantes del DCT corresponden a levemente diferente incluso/las condiciones de límite impares en los dos finales del arsenal. DCTs también se relaciona de cerca con Polinomios de Chebyshev, y los algoritmos rápidos de DCT (abajo) se utilizan adentro Aproximación de Chebyshev de funciones arbitrarias por series de polinomios de Chebyshev, por ejemplo adentro Cuadratura de Clenshaw-Curtis. JPEGEl DCT se utiliza adentro JPEG compresión de la imagen, MJPEG, MPEG, y DV compresión video. Allí, el DCT-II de dos dimensiones de Descripción informalComo Fourier-relacionado transforme, el coseno discreto transforma (DCTs) expresa una función o una señal en términos de suma de sinusoids con diferente frecuencias y amplitudes. Como Fourier discreto transforma (DFT), un DCT funciona encendido una función en un número finito de los puntos de referencias discretos. La distinción obvia entre un DCT y un DFT es que las funciones de coseno anteriores de las aplicaciones solamente, mientras que los últimos cosenos y senos de las aplicaciones (bajo la forma de exponentials complejos). Sin embargo, esta diferencia visible es simplemente una consecuencia de una distinción más profunda: un DCT implica diferente condiciones de límite que el DFT u otro relacionado transforma. El Fourier-relacionado transforma que funciona encendido una función sobre un finito dominio, por ejemplo el DFT o el DCT o la a Serie de Fourier, puede ser pensado en como implícito definir extensión de esa función fuera del dominio. Es decir, una vez que usted escriba una función f(x) como suma de sinusoids, usted puede evaluar esa suma en cualesquiera x, iguale para x donde la original f(x) no fue especificado. El DFT, como la serie de Fourier, Implica a periódico extensión de la función original. Un DCT, como a el coseno transforma, implica uniforme extensión de la función original. Sin embargo, porque DCTs funciona encendido finito, discreto las secuencias, dos ediciones se presentan que para el coseno continuo no transformen. Primero, uno tiene que especificar en si la función es uniforme o impar ambos los límites izquierdos y derechos del dominio (es decir. el minuton y máximon límites en las definiciones abajo, respectivamente). En segundo lugar, uno tiene que especificar alrededor qué punto la función es uniforme o impar. Particularmente, considere una secuencia abcd de cuatro puntos de referencias equidistantes, y diga que especificamos un uniforme izquierdo límite. Hay dos posibilidades sensibles: cualquier los datos son uniformes sobre la muestra a, en este caso es la extensión uniforme dcbabcd, o los datos son uniformes sobre el punto a medio camino entre a y el punto anterior, en este caso es la extensión uniforme dcbaabcd (a se repite). Estas opciones conducen a todas las variaciones estándares de DCTs y también el seno discreto transforma (DSTs). Cada límite puede ser uniforme o impar (2 opciones por límite) y puede ser simétrico sobre un punto de referencias o el punto a medio camino entre dos puntos de referencias (2 opciones por límite), para un total de Estas diversas condiciones de límite afectan fuertemente los usos del transformar, y conducen a las características únicamente útiles para los varios tipos de DCT. Lo más directamente posible, cuando el usar Fourier-relacionado transforma para solucionar ecuaciones diferenciales parciales por métodos espectrales, las condiciones de límite se especifican directamente como una parte del problema que es solucionado. O, para MDCT (basado en el tipo-IV DCT), las condiciones de límite están implicadas íntimo en la característica crítica del MDCT de la cancelación del aliasing del tiempo-dominio. En una manera más sutil, las condiciones de límite son responsables “de las características de la compactación de la energía” que hacen DCTs útil para la imagen y la compresión audio, porque los límites afectan el índice de la convergencia de cualesquiera Fourier-como series. Particularmente, es bien sabido que cualesquiera discontinuidades en una función reduzca índice de la convergencia de la serie de Fourier, De modo que más sinusoids sean necesarios representar la función con una exactitud dada. El mismo principio gobierna la utilidad del DFT y otro transforma para la compresión de la señal: el smoother una función es, pocos términos en su DFT o DCT se requieren para representarlo exactamente, y más pueden ser comprimidas. (Aquí, pensamos en el DFT o el DCT como aproximaciones para Serie de Fourier o serie del coseno de una función, respectivamente, para hablar de su “suavidad. ”) Sin embargo, la periodicidad implícita de los medios de DFT que las discontinuidades ocurren generalmente en los límites: cualquier segmento al azar de una señal es poco probable tener el mismo valor en ambos los límites izquierdos y derechos. (El problema similar de A se presenta para el DST, en el cual la condición de límite izquierda impar implica una discontinuidad para cualquier función que no suceda ser cero en ese límite.) en cambio, un DCT donde ambos los límites son uniformes siempre rinde una extensión continua en los límites (aunque cuesta es generalmente discontinuo). Esta es la razón por la cual DCTs, y particularmente DCTs de tipos I, II, V, y VI (los tipos que tienen dos incluso límites) generalmente realizarse mejor para la compresión de la señal que DFTs y DSTs. En la práctica, un tipo-Ii DCT se prefiere generalmente para tales usos, en parte por razones de conveniencia de cómputo. Definición formalFormalmente, el coseno discreto transforma es a linear, inversible función F : RN -> RN (donde R denota el sistema de números verdaderos), o equivalente un inversible N × N matriz cuadrada. Hay varias variantes del DCT con definiciones levemente modificadas. N números verdaderos x0, ..., xN-1 se transforman en N números verdaderos X0, ..., XN-1 según uno de los fórmulas: DCT-IAlgunos autores más futuros multiplican x0 y xN-1 los términos por √2, y multiplican correspondientemente X0 y XN-1 términos por 1/√2. Esto hace la matriz de DCT-I orthogonal, si uno más futuro se multiplica por un factor de posicionamiento total de El DCT-I es exactamente equivalente (hasta un factor de posicionamiento total de 2), a un DFT de 2N − 2 números verdaderos con simetría uniforme. Por ejemplo, un DCT-I de Nnúmeros verdaderos =5 abcde está exactamente el equivalente a un DFT de ocho números verdaderos abcdedcb (incluso simetría), dividida por dos. (En cambio, los tipos II-IV de DCT implican una cambio de la mitad-muestra en el DFT equivalente.) Nota, sin embargo, que el DCT-I no está definido para N menos de 2. (El resto de los tipos de DCT se definen para el positivo N.) Así, el DCT-I corresponde a las condiciones de límite: xn es uniforme alrededor n=0 e igualan alrededor n=N-1; semejantemente para Xk. DCT-IIEl DCT-II es probablemente la forma más de uso general, y a menudo se refiere simplemente como “el DCT”. Esto transforma es exactamente equivalente (hasta un factor de posicionamiento total de 2) a un DFT de 4N entradas verdaderas de la simetría uniforme donde están cero los elementos uniforme-puestos en un índice. Es decir, es mitad del DFT del 4N entradas yn, donde y2n = 0, y2n + 1 = xn para Algunos autores más futuros multiplican X0 término por 1/√2 (véase abajo para el cambio correspondiente en DCT-III). Esto hace la matriz de DCT-II orthogonal, si uno más futuro se multiplica por un factor de posicionamiento total de El DCT-II implica las condiciones de límite: xn es uniforme alrededor n=-1/2 e igualan alrededor n=N-1/2; Xk es uniforme alrededor k=0 e impar alrededor k=N. DCT-IIIPorque es lo contrario de DCT-II (hasta un factor de posicionamiento, vea abajo), esta forma se refiere a veces simplemente como “el DCT inverso” (“IDCT”). Algunos autores más futuros multiplican x0 el término por 1/√2 (véase arriba para el cambio correspondiente en DCT-II), de modo que sean los DCT-II y los DCT-III transporta de uno otro. Esto hace la matriz de DCT-III orthogonal, si uno más futuro se multiplica por un factor de posicionamiento total de El DCT-III implica las condiciones de límite: xn es uniforme alrededor n=0 e impar alrededor n=N; Xk es uniforme alrededor k=-1/2 e igualan alrededor k=N-1/2. DCT-IVLa matriz de DCT-IV se convierte orthogonal si uno más futuro se multiplica por un factor de posicionamiento total de Una variante del DCT-IV, donde los datos de diferente transforman está traslapado, se llama el coseno discreto modificado transforma (MDCT). El DCT-IV implica las condiciones de límite: xn es uniforme alrededor n=-1/2 e impar alrededor n=N-1/2; semejantemente para Xk. DCT V-VIIILos tipos I-IV de DCT son equivalentes a DFTs verdadero-uniforme de la orden uniforme (sin importar si N es uniforme o impar), puesto que el DFT correspondiente está de la longitud 2 (N−1) (para DCT-I) o 4N (para DCT-II/III) o 8N (para DCT-VIII). En principio, hay realmente cuatro tipos adicionales de coseno discreto transforma (Martucci, 1994), correspondiendo esencialmente DFTs verdadero-uniforme de la orden lógicamente impar, de los cuales tenga factores Equivalente, DCTs de los tipos I-IV implica los límites que están incluso/impar alrededor de un punto de referencias para ambos límites o a medio camino entre dos puntos de referencias para ambos límites. DCTs de los tipos V-VIII implica los límites que igualan/impar alrededor de un punto de referencias para un límite y a medio camino entre dos puntos de referencias para el otro límite. Sin embargo, estas variantes se parecen ser utilizadas raramente en la práctica. Una razón, quizás, es que los algoritmos de FFT para la impar-longitud DFTs son generalmente más complicados que los algoritmos de FFT para la uniforme-longitud DFTs (e.g. los algoritmos más simples radix-2 están solamente para las longitudes uniformes), y esta intrincación creciente transporta al DCTs como descrito más abajo. (El arsenal verdadero-uniforme trivial, una longitud-uno DFT (longitud impar) de un solo número a, corresponde a un DCT-V de la longitud N=1.) Lo contrario transformaLo contrario de DCT-I es DCT-I multiplicado por 2 (N-1). Lo contrario de DCT-IV es DCT-IV multiplicado por 2N. Lo contrario de DCT-II es DCT-III multiplicado por 2N (y viceversa). Como para DFT, el factor de la normalización delante de éstos transforma definiciones es simplemente una convención y diferencia entre los tratamientos. Por ejemplo, algunos autores multiplican transforman cerca DCTs multidimensionalLas variantes multidimensionales de los varios tipos de DCT siguen directo de las definiciones unidimensionales: son simplemente un producto separable (equivalente, una composición) de DCTs a lo largo de cada dimensión. Por ejemplo, un DCT-II de dos dimensiones de una imagen o de una matriz es simplemente el DCT-II unidimensional, de arriba, realizado a lo largo de las filas y entonces a lo largo de las columnas (o viceversa). Es decir, el 2.o DCT-II es dado por el fórmula (omitiendo la normalización y otros factores de posicionamiento, como arriba): Técnico, computando dos (o multi) DCT dimensionales por secuencias de DCTs unidimensional a lo largo de cada dimensión se conoce como a fila-columna algoritmo (después del caso de dos dimensiones). Como con algoritmos multidimensionales de FFT, sin embargo, existen otros métodos para computar la misma cosa mientras que realiza los cómputos en una diversa orden (es decir. interpolación/que combina los algoritmos para las diversas dimensiones). `` La imagen a la derecha demuestra la combinación de las frecuencias horizontales y verticales para 8 x 8 (N1 = N2 = 8) DCT de dos dimensiones. Cada paso de izquierda a derecha y la tapa al fondo es un aumento en frecuencia al lado de ciclo del 1/2. Por ejemplo, la derecha móvil una del cuadrado tapa-izquierdo rinde un aumento del mitad-ciclo en la frecuencia horizontal (va de blanco al negro). Otro movimiento a la derecha rinde dos mitad-ciclos (blancos al negro al blanco). Una mudanza abajo rinde dos mitad-ciclos horizontalmente y un mitad-ciclo verticalmente. Los datos de fuente (8x8) se transforman a a combinación linear de estos cuadrados de 64 frecuencias. CómputoAunque el uso directo de estos fórmulas requeriría O (N2) las operaciones, es posible computar la misma cosa con solamente O (N registro N) complejidad descomponiendo en factores el cómputo semejantemente a Fourier rápido transforma (FFT). Uno puede también computar DCTs vía FFTs combinado con O (N) pasos pre y del post-processing. Los algoritmos más eficientes, del principio, son generalmente los que se especializan directamente para el DCT, en comparación con usar un FFT ordinario más O (N) operaciones adicionales (véase abajo para una excepción). Sin embargo, incluso “especializó” algoritmos de DCT (todos los incluyendo los que alcanzan las cuentas aritméticas sabidas más bajas, por lo menos para energía-de-dos los tamaños) se relacionan típicamente de cerca con FFT algoritmo-puesto que DCTs es esencialmente DFTs de datos verdadero-uniformes, uno pueden diseñar un algoritmo rápido de DCT tomando un FFT y eliminando las operaciones redundantes debido a esta simetría. Esto puede incluso ser hecha automáticamente (Frigo y Johnson, 2005). Algoritmos basados en Algoritmo de Cooley-Tukey FFT sea el más común, pero cualquier otro algoritmo de FFT es también aplicable. Por ejemplo, el algoritmo de Winograd FFT conduce a los algoritmos de la mínimo-multiplicación para el DFT, no obstante generalmente en el coste de más adiciones, y un algoritmo similar fue propuesto por Feig y Winograd (1992) para el DCT. Porque los algoritmos para DFTs, DCTs, y similar transforman son todos relacionados tan de cerca, cualquier mejora en los algoritmos para uno transforman conducirán teóricamente a los aumentos inmediatos para el otro transforman también (Duhamel y Vetterli, 1990). Mientras que los algoritmos de DCT que emplean un FFT sin modificar tienen a menudo ciertos gastos indirectos teóricos comparados a los mejores algoritmos especializados de DCT, el anteriores también tienen una ventaja distinta: los programas altamente optimizados de FFT están extensamente disponibles. Así, en la práctica, es a menudo más fácil obtener el alto rendimiento para las longitudes generales N con algoritmos FFT-basados. (El funcionamiento en el hardware moderno no es dominado típicamente simplemente por cuentas aritméticas, y la optimización requiere esfuerzo de ingeniería substancial.) los algoritmos especializados de DCT, por otra parte, consideran que el uso extenso para transforma de tamaños pequeños, fijos tales como De hecho, incluso los algoritmos de DCT que usan un FFT ordinario son a veces equivalente a podar las operaciones redundantes de un FFT más grande de datos verdadero-simétricos, y pueden incluso ser óptimos de la perspectiva de cuentas aritméticas. Por ejemplo, un tipo-Ii DCT es equivalente a un DFT del tamaño 4N con la simetría verdadero-uniforme que uniforme-puso en un índice los elementos son cero. Uno de los métodos mas comunes para computar esto vía un FFT (e.g. el método usado en FFTPACK y FFTW) es debido a Makhoul (el an o 80), y este método en la retrospección se puede considerar como un paso de un algoritmo de Cooley-Tukey del acción de diezmar-en-tiempo radix-4 aplicado al DFT verdadero-uniforme “lógico” que corresponde al DCT II. (El paso radix-4 reduce el tamaño 4N DFT al tamaño cuatroN DFTs de los datos verdaderos, dos de los cuales son cero y dos de los cuales sea igual a uno otro por la simetría uniforme, por lo tanto dando un solo tamañoN FFT de datos verdaderos más O(N) mariposas.) Porque los elementos uniforme-puestos en un índice son cero, este paso radix-4 es exactamente igual que un paso de la partir-raíz; si el tamaño subsecuenteN los verdadero-datos FFT también son realizados por verdadero-datos algoritmo de la partir-raíz (como en Sorensen y otros., 1987), entonces el algoritmo que resulta empareja realmente la cuenta aritmética publicada más baja para el energía-de-dos DCT-II (2Nregistro2N − N + 2 operaciones de la verdadero-aritmética[1]). Así pues, no hay nada intrínseco malo sobre computar el DCT vía un FFT de una aritmética que perspectiva-es a veces simplemente una cuestión de si el algoritmo correspondiente de FFT es óptimo. (Como cuestión práctica, función-llame los gastos indirectos en la invocación de una rutina separada de FFT pudo ser significativo para pequeño N, solamente esto es una puesta en práctica más bien que una pregunta algorítmica puesto que puede ser solucionada desenrollándose/inlining.) Notas
Referencias
Vea también
Acoplamientos externos
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Creative Commons Licence
se computan los bloques y los resultados son
posibilidades. Mitad de estas posibilidades, ésas donde izquierdo el límite es uniforme, corresponde a los 8 tipos de DCT; la otra mitad es los 8 tipos de DST.![X_k = \ frac {1} {2} (x_0 + (- ^k de 1) x_ {N-1})
+ \ el sum_ {n=1} ^ {N-2} x_n \ lechuga romano \ ido [\ frac {\ pi} {N-1} n k \] derecho \ cuadrángulo \ cuadrángulo k = 0, \ puntea, N-1.](../../../../math/9/9/d/99db2c8c49465a6e2b28163abcab5be3.png)
, pero rompe la correspondencia directa con un DFT verdadero-uniforme.![X_k =
\ el x_n del ^ del sum_ {n=0} {N-1} \ lechuga romana \ [\ frac} \ dejado {\ pi} {N (n+ \ el frac {1} {2} \ derecho) k dejada \] derecho \ cuadrángulo \ cuadrángulo k = 0, \ puntea, N-1.](../../../../math/9/b/9/9b912066d54e929387a28251790b9c4e.png)
, y
, pero rompe la correspondencia directa con un DFT verdadero-uniforme de la entrada mitad-cambiada de puesto.![= \ frac {1} de X_k {2} x_0 +
\ x_n del ^ del sum_ {n=1} {N-1} \ lechuga romana \ dejado [\ frac {\ pi} {N} n \ ido (k+ \ el frac {1} {2} \ derecho) \ derecho] \ cuadrángulo \ cuadrángulo k = 0, \ puntea, N-1.](../../../../math/e/0/1/e0186125d4115a3883a6a20871bd8eda.png)
![X_k =
\ el sum_ {n=0} el ^ {N-1} x_n \ lechuga romano \ ido [\ frac} \ dejado {\ pi} {N (n+ \ el frac {1} {2} \] derecho \ cuadrángulo \ cuadrángulo) \ dejado (k+ \ el frac {1} {2} \ derecho) \ derecho k = 0, \ puntea, N-1.](../../../../math/2/9/9/29902cf6803b837ae2a87e41ca48d31f.png)
en los denominadores de las discusiones del coseno.![X_ {k_1, k_2} =
\ sum_ {n_1=0} ^ {N_1-1}
\ sum_ {n_2=0} ^ {N_2-1}
} n_1, n_2 del x_ {
\ lechuga romana \ [\ frac {\ pi} {N_1} \ dejado (n_1+ \ frac {1} {2} \ derecho) k_1 dejado \] derecho
\ lechuga romana \ [\ frac {\ pi} {N_2} \ dejado (n_2+ \ frac {1} {2} \ derecho) k_2 \ derecho dejados].](../../../../math/e/d/a/eda2155809a0e714e7c8d327e6e108df.png)
DCT-II usado adentro
factor. Las multiplicaciones adicionales pueden ser ahorradas si una permite que sean las salidas del transformar rescaled individualmente, como fue demostrado por Arai y otros. (1988) para el caso size-8 usado en el JPEG.