Top 10 artigos

Goole
Hotmail
Lista dos países onde o inglês é uma língua oficial
Lista de doenças mentais
Gmail
Família real britânica
Googol
Tuenti
Tsunami
KGB

News:

O cosine discreto transforma

A o cosine discreto transforma (DCT) expressa uma seqüência finita de muitos pontos de dados nos termos de uma soma de cosine funções que oscilam em diferente freqüências. DCTs é importante para aplicações numerosas na ciência e na engenharia, de compressão do lossy de audio e imagens (onde pequeno os componentes de alta freqüência podem ser rejeitados), a métodos spectral para a solução numérica de equações diferenciais parciais. O uso do cosine melhor que seno as funções são críticas nestas aplicações: para a compressão, gira para fora que as funções de cosine são muito mais eficientes (como explicado abaixo, menos são needed aproximar um típico sinal), visto que para equações diferenciais os cosines expressam uma escolha particular de condições de limite.

No detalhe, um DCT é a Fourier-relacionado transforme similar ao Fourier discreto transforma (DFT), mas usando-se somente números reais. DCTs é equivalente a DFTs aproximadamente duas vezes do comprimento, operando-se em dados reais com uniforme simetria (desde que o Fourier transforma de um real e mesmo a função é real e uniforme), onde em alguns variants os dados da entrada e/ou da saída são deslocados pela metade de uma amostra. Há oito variants padrão de DCT, de que quatro são comuns.

O variant o mais comum do cosine discreto transforma é o tipo-Ii DCT, que é chamado frequentemente simplesmente “o DCT”; seu inverse, o tipo-IIi DCT, é chamado correspondingly frequentemente simplesmente “o DCT inverso” ou “o IDCT”. Dois relacionados transformam são o seno discreto transforma (DST), que é equivalente a um DFT de real e impar funções, e o cosine discreto modificado transforma (MDCT), de que é baseado em um DCT sobrepôr dados.

Índices

Aplicações

O DCT, e no detalhe o DCT-II, é usado frequentemente em processar do sinal e de imagem, especialmente para a compressão de dados do lossy, porque tem da “uma propriedade forte do compaction energia” (Rao e Yip, 1990): a maioria da informação do sinal tende a ser concentrada em alguns componentes low-frequency do DCT, aproximar-se Karhunen-Loève transforma (que é optimal no sentido do decorrelation) para os sinais baseados em determinados limites de Processos de Markov. Como explicado abaixo, isto stems das condições de limite implícitas nas funções de cosine.

Um relacionado transforma, modificado o cosine discreto transforma, ou MDCT (baseado no DCT-IV), é usado dentro AAC, Vorbis, WMA, e MP3 compressão audio.

DCTs é empregado também extensamente em resolver equações diferenciais parciais pelos métodos spectral, onde os variants diferentes do DCT correspondem a ligeiramente diferente mesmo/condições de limite impares nos dois fins da disposição.

DCTs é relacionado também pròxima a Polynomials de Chebyshev, e os algoritmos rápidos de DCT (abaixo) são usados dentro Aproximação de Chebyshev de funções arbitrárias por séries de polynomials de Chebyshev, por exemplo dentro Quadratura de Clenshaw-Curtis.

JPEG

O DCT é usado dentro JPEG compressão da imagem, MJPEG, MPEG, e DV compressão video. Lá, o DCT-II bidimensional de os blocos são computados e os resultados são quantized e entropia codificada. Neste caso, N são tipicamente 8 e a fórmula de DCT-II é aplicada a cada fileira e coluna do bloco. O resultado é uns 8 que o × 8 transforma a disposição do coeficiente em que (0,0) o elemento (alto-esquerdo) é o componente e entradas da C.C. (zero-freqüência) com aumento de valores de índice verticais e horizontais representa umas freqüências spatial verticais e horizontais mais elevadas.

Vista geral informal

Como Fourier-relacionado transforme, o cosine discreto transforma (DCTs) expressa uma função ou um sinal nos termos de uma soma de sinusoids com diferente freqüências e amplitudes. Como Fourier discreto transforma (DFT), um DCT opera sobre uma função em um número finito de pontos de dados discretos. A distinção óbvia entre um DCT e um DFT for que as funções de cosine anteriores dos usos somente, quando os últimos cosines e senos dos usos (no formulário de exponentials complexos). Entretanto, esta diferença visível é meramente uma conseqüência de uma distinção mais profunda: um DCT implica diferente condições de limite do que o DFT ou outro relacionado transforma.

O Fourier-relacionado transforma que opera sobre uma função sobre um finito domínio, como o DFT ou o DCT ou o a Série de Fourier, pode ser pensado como implicitamente de definir extensão dessa função fora do domínio. Isto é, uma vez que você escreve uma função f(x) como uma soma dos sinusoids, você pode avaliar essa soma em alguns x, nivele para x onde o original f(x) não foi especificado. O DFT, como a série de Fourier, implica a periódico extensão da função original. Um DCT, como a o cosine transforma, implica uniforme extensão da função original.

Entretanto, porque DCTs se opera sobre finito, discreto as seqüências, duas edições levantam-se que para o cosine contínuo não transformam. Primeiramente, se tem que especificar em se a função é uniforme ou impar ambos os limites esquerdos e direitos do domínio (isto é. o minuton e máximon limites nas definições abaixo, respectivamente). Em segundo, se tem que especificar ao redor que ponto a função é uniforme ou impar. No detalhe, considere uma seqüência abcd de quatro pontos de dados ingualmente espaçados, e diga que nós especificamos um uniforme esquerdo limite. Há duas possibilidades sensible: um ou outro os dados são uniformes sobre a amostra a, que no caso a extensão uniforme está dcbabcd, ou os dados são uniformes sobre o ponto incompletamente entre a e o ponto precedente, que no caso a extensão uniforme está dcbaabcd (a é repetido).

Estas escolhas conduzem a todas as variações padrão de DCTs e também o seno discreto transforma (DSTs). Cada limite pode ser uniforme ou impar (2 escolhas por o limite) e pode ser symmetric sobre um ponto de dados ou o ponto incompletamente entre dois pontos de dados (2 escolhas por o limite), para um total de possibilidades. Metade destas possibilidades, aquelas onde esquerdo o limite é uniforme, corresponde aos 8 tipos de DCT; a outra metade é os 8 tipos de DST.

Estas condições de limite diferentes afetam fortemente as aplicações da transformação, e conduzem-nas às propriedades excepcionalmente úteis para os vários tipos de DCT. O mais diretamente, quando usar-se Fourier-relacionado transformar para resolver equações diferenciais parciais por métodos spectral, as condições de limite são especificadas diretamente como uma parte do problema que está sendo resolvido. Ou, para MDCT (baseado no tipo-Iv DCT), as condições de limite são envolvidas intimately na propriedade crítica do MDCT do cancelamento do aliasing do tempo-domínio. Em uma forma mais subtle, as condições de limite são responsáveis para da “as propriedades do compaction energia” que fazem DCTs útil para a imagem e a compressão audio, porque os limites afetam a taxa da convergência de alguns Fourier-como séries.

No detalhe, é bom - sabido que alguns descontinuidades em uma função reduza taxa da convergência da série de Fourier, de modo que mais sinusoids sejam needed representar a função com uma exatidão dada. O mesmo princípio governa a utilidade do DFT e outro transforma para a compressão do sinal: o smoother uma função é, poucos termos em seu DFT ou DCT são requeridos para representá-lo exatamente, e o mais podem ser comprimidas. (Aqui, nós pensamos do DFT ou do DCT como aproximações para Série de Fourier ou série do cosine de uma função, respectivamente, a fim falar sobre sua “lisura. ”) Entretanto, o periodicity implícito dos meios de DFT que as descontinuidades ocorrem geralmente nos limites: todo o segmento aleatório de um sinal é improvável ter o mesmo valor nos limites esquerdos e direitos. (O problema similar de A se levanta para o DST, em que a condição de limite esquerda impar implica uma descontinuidade para toda a função que não acontecer ser zero nesse limite.) no contraste, um DCT onde ambos os limites são uniformes sempre rende uma extensão contínua nos limites (embora inclinação é geralmente discontinuous). Isto é porque DCTs, e em DCTs particular dos tipos I, II, V, e VI (os tipos que têm dois mesmo limites) geralmente para executar mais melhor para a compressão do sinal do que DFTs e DSTs. Na prática, um tipo-Ii DCT é preferido geralmente para tais aplicações, na peça para razões da conveniência computacional.

Definição formal

Formalmente, o cosine discreto transforma é a linear, invertible função F : RN -> RN (onde R denota o jogo de números reais), ou equivalente um invertible N × N matriz quadrada. Há diversos variants do DCT com definições ligeiramente modificadas. N números reais x0, ..., xN-1 são transformados no N números reais X0, ..., XN-1 de acordo com uma das fórmulas:

DCT-I

Alguns autores mais adicionais multiplicam x0 e xN-1 os termos por √2, e multiplicam correspondingly X0 e XN-1 termos por 1/√2. Isto faz a matriz de DCT-I orthogonal, se um mais adicional multiplicar por um fator de escala total de , mas quebra a correspondência direta com um DFT real-uniforme.

O DCT-I é exatamente equivalente (até um fator de escala total de 2), a um DFT de 2N − 2 números reais com simetria uniforme. Por exemplo, um DCT-I de Nnúmeros =5 reais abcde é exatamente o equivalente a um DFT de oito números reais abcdedcb (mesmo simetria), dividida por dois. (No contraste, os tipos II-IV de DCT envolvem um deslocamento da metade-amostra no DFT equivalente.)

Nota, entretanto, que o DCT-I não está definido para N menos de 2. (Todos tipos restantes de DCT são definidos para o positivo N.)

Assim, o DCT-I corresponde às condições de limite: xn é uniforme ao redor n=0 e nivelam ao redor n=N-1; similarmente para Xk.

DCT-II

O DCT-II é provavelmente o formulário o mais geralmente usado, e frequentemente é consultado simplesmente a como “o DCT”.

Isto transforma é exatamente equivalente (até um fator de escala total de 2) a um DFT de 4N entradas reais da simetria uniforme onde os elementos uniforme-posicionados são zero. Isto é, é metade do DFT do 4N entradas yn, onde y2n = 0, y2n + 1 = xn para , e y4Nn = yn para 0 < n < 2N.

Alguns autores mais adicionais multiplicam X0 termo por 1/√2 (veja abaixo para a mudança correspondente em DCT-III). Isto faz a matriz de DCT-II orthogonal, se um mais adicional multiplicar por um fator de escala total de , mas quebra a correspondência direta com um DFT real-uniforme da entrada metade-deslocada.

O DCT-II implica as condições de limite: xn é uniforme ao redor n=-1/2 e nivelam ao redor n=N-1/2; Xk é uniforme ao redor k=0 e impar ao redor k=N.

DCT-III

Porque é o inverse de DCT-II (até um fator de escala, veja abaixo), este formulário é consultado às vezes simplesmente a como “o DCT inverso” (“IDCT”).

Alguns autores mais adicionais multiplicam x0 o termo por 1/√2 (veja acima para a mudança correspondente em DCT-II), de modo que os DCT-II e os DCT-III sejam transpõe de um outro. Isto faz a matriz de DCT-III orthogonal, se um mais adicional multiplicar por um fator de escala total de , mas quebra a correspondência direta com um DFT real-uniforme da saída metade-deslocada.

O DCT-III implica as condições de limite: xn é uniforme ao redor n=0 e impar ao redor n=N; Xk é uniforme ao redor k=-1/2 e nivelam ao redor k=N-1/2.

DCT-IV

A matriz de DCT-IV torna-se orthogonal se um mais adicional multiplicar por um fator de escala total de .

Um variant do DCT-IV, onde os dados de diferente transformam está sobreposto, é chamado o cosine discreto modificado transforma (MDCT).

O DCT-IV implica as condições de limite: xn é uniforme ao redor n=-1/2 e impar ao redor n=N-1/2; similarmente para Xk.

DCT V-VIII

Os tipos I-IV de DCT são equivalentes a DFTs real-uniforme da ordem uniforme (não obstante se N é uniforme ou impar), desde que o DFT correspondente é do comprimento 2 (N−1) (para DCT-I) ou 4N (para DCT-II/III) ou 8N (para DCT-VIII). No princípio, há realmente quatro tipos adicionais de cosine discreto transforma (Martucci, 1994), correspondendo essencialmente DFTs real-uniforme da ordem logicamente impar, de que tenha fatores nos denominadores dos argumentos do cosine.

Equivalente, DCTs dos tipos I-IV implica os limites que são mesmo/impar em torno de um ponto de dados para ambos os limites ou incompletamente entre dois pontos de dados para ambos os limites. DCTs dos tipos V-VIII implica os limites que nivelam/impar em torno de um ponto de dados para um limite e incompletamente entre dois pontos de dados para o outro limite.

Entretanto, estes variants parecem ser usados raramente na prática. Uma razão, talvez, é que os algoritmos de FFT para o impar-comprimento DFTs são geralmente mais complicados do que algoritmos de FFT para o uniforme-comprimento DFTs (por exemplo. os algoritmos radix-2 os mais simples são somente para comprimentos uniformes), e este intricacy aumentado carrega sobre ao DCTs como descrito abaixo.

(A disposição real-uniforme trivial, um comprimento-um DFT (comprimento impar) de um único número a, corresponde a um DCT-V do comprimento N=1.)

O Inverse transforma

O inverse de DCT-I é DCT-I multiplicado por 2 (N-1). O inverse de DCT-IV é DCT-IV multiplicado por 2N. O inverse de DCT-II é DCT-III multiplicado por 2N (e versa vice).

Como para DFT, o fator do normalization na frente destes transforma definições é meramente uma convenção e difere entre tratamentos. Por exemplo, alguns autores multiplicam transformam perto de modo que o inverse não requeira nenhum fator multiplicative adicional. Combinado com os fatores apropriados de √2 (veja acima), isto pode ser usado fazer a matriz da transformação orthogonal.

DCTs Multidimensional

Os variants Multidimensional dos vários tipos de DCT seguem direta das definições one-dimensional: são simplesmente um produto separável (equivalente, uma composição) de DCTs ao longo de cada dimensão.

Por exemplo, um DCT-II bidimensional de uma imagem ou de uma matriz é simplesmente o DCT-II one-dimensional, de acima, executado ao longo das fileiras e então ao longo das colunas (ou do versa vice). Isto é, o 2d DCT-II é dado pela fórmula (omitindo o normalization e os outros fatores de escala, como acima):

Tècnica, computando uns dois (ou multi-) DCT dimensionais por seqüências de DCTs one-dimensional ao longo de cada dimensão é sabido como a fileira-coluna algoritmo (após o caso bidimensional). Como com algoritmos multidimensional de FFT, entretanto, existe outros métodos para computar a mesma coisa ao executar as computações em uma ordem diferente (isto é. intercalar/que combina os algoritmos para as dimensões diferentes). ``

A imagem à direita mostra a combinação de freqüências horizontais e verticais para uns 8 x 8 (N1 = N2 = 8) DCT bidimensional. Cada etapa da esquerda para a direita e o alto ao fundo são um aumento na freqüência pelo ciclo de 1/2. Por exemplo, a direita movente uma do quadrado alto-esquerdo rende um aumento do metade-ciclo na freqüência horizontal (vai de branco ao preto). Um outro movimento à direita rende dois metade-ciclos (brancos ao preto ao branco). Mover-se rende para baixo dois metade-ciclos horizontalmente e um metade-ciclo verticalmente. Os dados de fonte (8x8) são transformados a a combinação linear destes quadrados de 64 freqüências.

Computação

Embora a aplicação direta destas fórmulas requeresse O (N2) operações, é possível computar a mesma coisa com somente O (N registro N) complexidade factorizing a computação similarmente ao Fourier rápido transforma (FFT). Um pode também computar DCTs através de FFTs combinado com o O (N) etapas pre- e do post-processing.

Os algoritmos os mais eficientes, no princípio, são geralmente aqueles que são especializadas diretamente para o DCT, ao contrário de usar um FFT ordinário mais O (N) operações extra (veja abaixo para uma exceção). Entretanto, mesmo “especializou” algoritmos de DCT (toda a including aqueles que conseguem as contagens aritméticas sabidas as mais baixas, pelo menos para poder-de-dois os tamanhos) são relacionados tipicamente pròxima a FFT algoritmo-desde que DCTs é essencialmente DFTs de dados real-uniformes, um podem projetar um algoritmo rápido de DCT fazendo exame de um FFT e eliminando as operações redundantes devido a esta simetria. Isto pode mesmo ser feito automaticamente (Frigo & Johnson, 2005). Algoritmos baseados no Algoritmo de Cooley-Tukey FFT seja o mais comum, mas todo o outro algoritmo de FFT é também aplicável. Por exemplo, o algoritmo de Winograd FFT conduz aos algoritmos da mínimo-multiplicação para o DFT, albeit geralmente no custo de mais adições, e em um algoritmo similar foi proposto por Feig & por Winograd (1992) para o DCT. Porque todos os algoritmos para DFTs, DCTs, e similar transformam são relacionados assim pròxima, toda a melhoria nos algoritmos para um transformam conduzirão teòrica aos ganhos imediatos para o outro transformam também (Duhamel & Vetterli, 1990).

Quando os algoritmos de DCT que empregam um FFT unmodified tiverem frequentemente algumas despesas gerais teóricas comparadas aos mais melhores algoritmos especializados de DCT, o anteriores têm também uma vantagem distinta: os programas altamente optimized de FFT estão extensamente disponíveis. Assim, na prática, é frequentemente mais fácil obter o desempenho elevado para comprimentos gerais N com algoritmos FFT-baseados. (O desempenho na ferragem moderna não é dominado tipicamente simplesmente por contagens aritméticas, e o optimization requer o esforço de engenharia substancial.) os algoritmos especializados de DCT, na uma mão, vêem que o uso difundido para transforma de tamanhos pequenos, fixos tais como DCT-II usado dentro JPEG a compressão, ou o DCTs pequeno (ou MDCTs) usaram-se tipicamente na compressão audio. (O tamanho de código reduzido pode também ser uma razão usar um DCT especializado para aplicações do encaix-dispositivo.)

No fato, mesmo os algoritmos de DCT que usam um FFT ordinário são às vezes equivalente a podar as operações redundantes de um FFT maior de dados real-symmetric, e podem mesmo ser optimal do perspective de contagens aritméticas. Por exemplo, um tipo-Ii DCT é equivalente a um DFT do tamanho 4N com simetria real-uniforme o cujo uniforme-posicionou os elementos são zero. Um dos métodos os mais comuns para computar isto através de um FFT (por exemplo. o método usado em FFTPACK e FFTW) é devido a Makhoul (1980), e este método no hindsight pode ser visto como uma etapa de um algoritmo de Cooley-Tukey do decimation-em-tempo radix-4 aplicado ao DFT real-uniforme “lógico” que corresponde ao DCT II. (A etapa radix-4 reduz o tamanho 4N DFT ao tamanho quatroN DFTs dos dados reais, dois de que são zero e dois de que seja igual a um outro pela simetria uniforme, daqui dando um único tamanhoN FFT de dados reais mais O(N) borboletas.) Porque os elementos uniforme-posicionados são zero, esta etapa radix-4 é exatamente a mesma que uma etapa da rach-raiz; se o tamanho subseqüenteN os real-dados FFT são executados também por uns real-dados algoritmo da rach-raiz (como em Sorensen e outros., 1987), então o algoritmo resultante combina realmente a contagem aritmética publicada a mais baixa para poder--dois de DCT-II (2Nregistro2NN + 2 operações da real-aritmética[1]). Assim, não há nada intrìnseca mau sobre computar o DCT através de um FFT de uma aritmética que perspective-é às vezes meramente uma pergunta de se o algoritmo correspondente de FFT é optimal. (Como uma matéria prática, função-chame despesas gerais em invocar uma rotina separada de FFT pôde ser significativo para pequeno N, mas esta é uma execução melhor que uma pergunta algorítmica desde que pode ser resolvido unrolling/que inlining.)

Notas

  1. ^ A contagem precisa de operações aritméticas reais, e no detalhe a contagem de multiplicações reais, depende um tanto do scaling da definição da transformação. 2Nregistro2NN + 2 a contagem é para a definição de DCT-II mostrada aqui; duas multiplicações podem ser conservadas se a transformação for escalada por um macacão fator. As multiplicações adicionais podem ser conservadas se uma permitir as saídas da transformação ser rescaled individualmente, como estêve mostrado por Arai e outros. (1988) para o caso size-8 usado no JPEG.

Referências

  • N. Ahmed, T. Natarajan, e K. R. Rao, “Cosine discreto transforma”, Transporte de IEEE. Computadores, 90-93, janeiro 1974.
  • Y. Arai, T. Agui, e M. Nakajima, “um esquema rápido de DCT-SQ para imagens,” Transporte. IEICE 71 (11), 1095-1097 (1988).
  • P. Duhamel e M. Vetterli, “Fourier rápido transforma: uma revisão tutorial e um último modelo, “ Processar de sinal 19, 259-299 (1990).
  • E. Feig, S. Winograd. “Os algoritmos rápidos para o cosine discreto transformam,” Transações de IEEE em processar de sinal 40 (9), 2174-2193 (1992).
  • Matteo Frigo e Steven G. Johnson: FFTW, http://www.fftw.org/. Um livre (GPL) Biblioteca de C que pode computar DCTs rápido (tipos I-IV) em um ou mais dimensão, do tamanho arbitrário. Também M. Frigo e S. G. Johnson, “O projeto e a execução de FFTW3," Continuações do IEEE 93 (2), 216-231 (2005).
  • John Makhoul, “um cosine rápido transforma em uma e dois dimensões,” Transporte de IEEE. Acoust. Sig do discurso. Proc. 28 (1), 27-34 (1980).
  • S. A. Martucci, “convolução Symmetric e o seno e o cosine discretos transforma,” Transporte de IEEE. Sig. Processar SP-42, 1038-1051 (1994).
  • A. V. Oppenheim, R. W. Schafer, e J. R. Buck, Processar de sinal do Discrete-Time, segunda edição (Prentice-Salão, New-jersey, 1999).
  • K. R. Rao e P. Yip, O Cosine discreto transforma: Algoritmos, vantagens, aplicações (Imprensa académico, Boston, 1990).
  • H. V. Sorensen, D. L. Jones, M. T. Heideman, e C. S. Burrus, “Fourier rápido Real-valued transforma algoritmos,” Transporte de IEEE. Acoust. Sig do discurso. Processar ASSP-35, 849-863 (1987).

Veja também

  • JPEG - Contem um mais fácil de compreender o exemplo da transformação de DCT

Ligações externas


The original article is from Wikipedia. To view the original article please click here.
Creative Commons Licence