Transformada cosinus discreta

De Viquipèdia
Dreceres ràpides: navegació, cerca
Concentració d'energia d'una DCT-II bidimensional comparada amb una DFT

La transformada cosinus discreta (DCT, de l'anglès discrete cosine transform) és una transformada basada amb la Transformada Discreta de Fourier amb moltes aplicacions a la ciència i a l'enginyeria, una de les més importants és a l'hora de la compressió del senyal d'àudio, vídeo i imatges. La DCT és una transformada semblant a la Transformada Discreta de Fourier, però utilitzant només nombres reals. La transformada cosinus discreta expressa una seqüència finita de diversos punts com a resultat de la suma de diferents senyals sinusoïdals (amb diferents freqüències i amplituds). Com la transformada discreta de Fourier (DFT) la DCT treballa amb una sèrie de nombres finits, però mentre la DCT només treballa amb cosinus la DFT treballa amb exponencials complexos. Formalment la transformada del cosinus discreta és una funció lineal i invertible del domini real RN al domini real RN. Que també es pot entendre de forma equivalent a una matriu de NxN posicions. També existeix la DCT multidimensional, que es pot considerar com la multiplicació separable de diverses DCT, cada una en la seva dimensió. Per exemple la DCT de dues dimensions és una transformada normal calculada en cada fila i cada columna.

L'aplicació més important de la DCT és la compressió de senyals, sobretot gràcies a la propietat de compressió de l'energia. La Transformada del Cosinus Discreta s'utilitza molt en els estàndards de compressió d'imatge, àudio i vídeo com els JPEG, MJPEG, MPEG-1, MPEG-2, MPEG-4 i DV. Alguns altres estàndards utilitzen una variant de la DCT anomenada Transformada Cosinus Discreta Modificada (MDCT) com són, per exemple, els estàndards MP3, AC-3, WMA, Ogg Vorbis i AAC. Per exemple, l'estàndard MPEG-1 utilitza la DCT per convertir els píxels organitzats espaialment en una matriu de valors de freqüències que s'organitza de la mateixa forma rectangular. Així a l'hora de transmetre els coeficients codificats ho pot fer de forma més eficaç.

Característiques útils per a la compressió d'imatge[modifica | modifica el codi]

  • La DCT té una bona capacitat de compactació de l'energia al domini transformat, és a dir, que la transformada cosinus discreta aconsegueix concentrar la major part de la informació en pocs coeficients transformats. Tal com mostra la figura de la dreta amb comparació amb la DFT.
  • És una transformada independent de les dades. L'algoritme és el mateix, sense tenir en compte les dades a les quals s'aplica l'algoritme.
  • Hi ha algoritmes eficients pel càlcul ràpid de la DCT, anàlogament a la FFT, per realitzar la transformació.
  • Produeix pocs errors als límits dels blocs de la imatge. La minimització dels errors als blocs d'imatge permet reduir l'efecte de blocs en les imatges reconstruïdes.
  • Té una identificació i interpretació freqüencial dels components transformats. La capacitat d'interpretar els coeficients des del punt de vista freqüencial permet aprofitar al màxim la capacitat de compressió.

Definició matemàtica[modifica | modifica el codi]

Hi ha diferents variants, des de la DCT-I fins a la DCT-VIII, de la transformada segons la forma en que s'amplia el senyal, la periodicitat i la simetria que se li aplica. Tot i existir vuit diferents possibilitats de creació per la DCT les més utilitzades són la DCT-I i la DCT-II. Depenent de l'elecció de la simetria i periodicitat tenim una transformada cosinus diferent igual com passa amb la transformada sinus discreta (DST). A la imatge de la dreta es veuen 4 possibles formes de reproduir la periodicitat.

DCT-I[modifica | modifica el codi]

X_k = \frac{1}{2} (x_0 + (-1)^k x_{N-1}) 
 + \sum_{n=1}^{N-2} x_n \cos \left[\frac{\pi}{N-1} n k \right] \quad \quad k = 0, \dots, N-1.

DCT-II[modifica | modifica el codi]

X_k =
 \sum_{n=0}^{N-1} x_n \cos \left[\frac{\pi}{N} \left(n+\frac{1}{2}\right) k \right] \quad \quad k = 0, \dots, N-1.

És la transformada més comuna i utilitzada a l'hora de codificar senyals i imatges.

DCT-III[modifica | modifica el codi]

X_k = \frac{1}{2} x_0 +
 \sum_{n=1}^{N-1} x_n \cos \left[\frac{\pi}{N} n \left(k+\frac{1}{2}\right) \right] \quad \quad k = 0, \dots, N-1.

També coneguda popularment com a Inversa de la Transformada Cosinus Discreta(IDCT)

DCT-IV[modifica | modifica el codi]

X_k =
 \sum_{n=0}^{N-1} x_n \cos \left[\frac{\pi}{N} \left(n+\frac{1}{2}\right) \left(k+\frac{1}{2}\right) \right] \quad \quad k = 0, \dots, N-1.
Representació de les imatges base de la transformada cosinus discreta bidimensional de 8x8


DCT bidimensional[modifica | modifica el codi]

X_{k_1,k_2} =
 \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].


A la imatge de la dreta podem veure un quadre amb la combinació horitzontal i vertical (8 x 8) d'una DCT bidimensional.

Quantificació i representació de la DCT sencera[modifica | modifica el codi]

La quantificació ens permet reduir la precisió amb la qual els coeficients de la DCT que es representen quan es converteix la DCT a una representació sencera. Això pot ser molt important en compressió d'imatge, on es tendeix a anul·lar molts coeficients - especialment els d'altes freqüències-. Els valors quantificats poden ser assignats individualment per a cada coeficient DCT, utilitzant el criteri basat en la visibilitat de les funcions base. Si amidem el llindar de visibilitat d'una funció base determinada podem dividir (quantificar) els coeficients per aquest valor (amb l'apropiat arrodoniment a valors sencers). Si multipliquem (decuantificar) els coeficients així obtinguts per aquest valor abans de la reconstrucció, crearem una condició en la qual l'ull no podria detectar cap diferència entre els coeficients DCT quantificats i sense quantificar. Si estem disposats a tolerar alguns " defectes " visibles en la imatge reconstruïda, podríem dividir per un valor més gran que el corresponent al llindar de visibilitat. Aquest procés de ponderació i truncament dels coeficients de la DCT a valors sencers es denomina quantificació, i el restabliment aproximat de la magnitud dels coeficients originals de la DCT rep el nom de desquantificació.

Vegeu també[modifica | modifica el codi]

Bibliografia[modifica | modifica el codi]

  • Tarrés Ruiz, Frances; "Sistemas audiovisuales 1-Televisión analógica y digital"; Edicions UPC; 299-314; juny 2000
  • Oppenheim, Alan V.; Schafer, Ronald W.; "Discrete-time signal processing"; Prentice Hall; 1999

Enllaços externs[modifica | modifica el codi]