Le immagini sui nostri schermi sono discrete, formate da un numero finito di pixel, ciascuno caratterizzato da una luminanza ed eventuali informazioni di crominanza (vedi l’articolo « Le componenti delle nostre immagini: luminanza e crominanza »). Queste informazioni sono trasmesse in blocchi di dieci bit. La loro diffusione diventa sempre più onerosa, via via che aumenta il numero di righe e di pixel per riga.
Così, in televisione, passando dallo standard UIT 601 (definizione standard) allo standard UIT 709 (alta definizione), la velocità di trasmissione di ogni immagine è passata da 270 Mbit/sec (1 Mbit o megabit = 106 bit) a quasi 1,5 Gbit/sec (1 Gbit o gigabit = 109 bit). È dunque importante comprimerle. È ciò che fa il formato JPEG (Joint Photographic Experts Group), che stabilisce un algoritmo di compressione/decompressione o codifica/decodifica (codec) per qualunque immagine fissa.
Una scomposizione in blocchi ---------------------------
L’idea è elaborare i pixel blocco per blocco. In pratica, i blocchi sono costituiti da «microimmagini» quadrate di 8 × 8 pixel. La luminanza di ciascun pixel è codificata su dieci bit mediante un numero intero compreso tra 0 e 1023. Il trattamento della crominanza è identico.
Il procedimento numerico chiamato trasformata discreta del coseno (vedi l’articolo « Dalla trasformazione di Fourier alla trasformata discreta del coseno »), direttamente ispirato alle trasformate di Fourier, trasforma queste informazioni numeriche nella corrispondente rappresentazione spettrale, ossia in una matrice di numeri associati a coppie di frequenze prestabilite. La particolare scelta della forma della matrice da costruire non è casuale: nella matrice dei coefficienti DCT (i, j) associati a ogni blocco di pixel, il coefficiente DCT (0, 0) e i suoi vicini sono costruiti a partire dalle frequenze più basse (valori di i e j nella formula «vicini a zero»), mentre DCT (7, 7) e i suoi vicini tengono conto delle frequenze più alte (valori di i e j «vicini al massimo», qui 7). Un blocco 8 × 8 di pixel I(u, v), con u e v variabili da 0 a 7, viene infatti convertito in un altro blocco secondo la formula seguente: