Vous êtes sur la page 1sur 103

Méthodes de compression avec pertes

Méthodes basées sur les transformations orthogonales


Introduction
Compression - Types
• Deux familles de méthodes de compression

– Compression sans perte

– Compression avec perte

25/05/2022 3
Compression - Types
Compression - Types
Objectif de la compression : Réduction de la taille des données mesurée par
le taux de compression

CR (Compression Ratio) ou Taux de compression est une mesure relative et sans


dimension. Il est souvent fois représenté comme un rapport normalisé (par exemple 2:
1, ce qui signifie que la taille non compressée est deux fois la taille compressée).

On peut utiliser le bpp qui est une mesure absolue et représente le nombre moyen de
bits nécessaires pour coder chaque information de pixel d'image.

Bpp est égale au rapport de la quantité d’information image compressée


Compression sans perte

• Differences entre des pixels voisins d’une même image


• Codage Run length
• Codage Huffman – PKZIP
• Codage arithmétique
• …. etc

25/05/2022 6
Compression avec perte

• Quantification
• Prediction et interpolation
• Codage Fractal
• Discrete cosine transform (DCT)
• Discrete wavelet transform (DWT)
• ...etc

25/05/2022 7
Compression avec perte
Les méthodes de compression des images fixes, basées sur des
transformations linéaires orthogonales, utilisent souvent trois étapes
similaires:
• Transformation linéaire (DCT, DFT, KLT, DWT, …et),
• Quantification: C’est la seule étape ou il y’a perte
Image • Codage entropique

Codage
Transformation Quantification
entropique

111010010010…..

25/05/2022 8
Schéma générale de compression d’image par transformée
Compression avec perte
Les schéma de principe complet d’un codeur/décodeur utilisant les méthodes de
compression basées sur des transformations est décrit ci-dessous:
Changement d’espace Compression
de représentation sans pertes

Transformation Quantification Codage


entropique

Codeur
Stockage ou
transmission

Décodeur

Transformation Déquantification Décodage


inverse entropique

25/05/2022 9
Compression avec perte

But de la transformation linéaire:

• Décorrélation des coefficients

• Compacter les coefficients dans une zone étroite


Compression avec perte

Exemples de transformations linéaires:

• DCT
• DFT
• KLT
• DWT
• …ETC
Compression avec perte
Exemple de l’effet d’une transformation orthogonale sur une image:

Dans l’exemple ci-dessous on a appliqué une simple FFT 2 D sur l’image de gauche. Le
spectre 2 D représenté à droite montrent que peut de coefficients (en blanc) sont
significatives (amplitudes importantes) et le reste (la majorité) des coefficients sont
d’amplitudes relativement faibles.
Organismes de Normalisation
Depuis les années 80 du siècle dernier, des méthodes et des standards de compression
de données notamment des images sont proposées et adoptées. La standardisation de
tels codec (codage/décodage) de sources sont surtout assurées par des organismes
mondiaux reconnus comme UIT et ISO. Ci-dessous quelques uns de ces organismes
connus dans le domaine des télécommunications:

1. UIT : Union Internationale des Télécommunications – ITU (en anglais :


International Telecommunication Union ). UIT se subdivise en trois secteurs
principaux:
- IUT-D (secteur Développement des télécommunications),
- IUT-R(secteur des Radiocommunications) et
- IUT-T (secteur de la normalisation des Télécommunications).

2. ISO : International Organization for Standardization.


En Français Organisation internationale de normalisation ou de
Standardisation.

3. CCITT : est un Comité Consultatif International Téléphonique et Télégraphique,


c’est-à-dire de IUT-T
Standards de Compression
Images fixes
Les formats d’images compressées sont maintenant nombreux et beaucoup sont
normalisés. Evidemment, le type des images originales (naturelles ou synthétiques par
exemple) nous conduit à choisir tel ou tel standard de compression.
Ci-dessous quelques exemples de standards de compression d’images qu’on utilise
avec les organismes de standardisation.

JPEG · JPEG 2000 · JPEG-LS · JBIG ·


ISO/CEI/UIT-T JBIG2 · PNG · WBMP · HEIF
BMP · BPG · FLIF · GIF · ICER · ILBM ·
Autres MNG · PCX · PGF · TGA · TIFF ·
JPEG XR / HD Photo · EMF/WMF ·
WebP
Wikipédia : https://fr.wikipedia.org/wiki/Compression_d%27image
Standards de Compression
Images fixes
Parmi les normes de compression d’images fixes les plus connues et les plus
utilisées de nos jours : JPEG
JPEG : Joint Photographic Expert Group,
Spécifiée en 1991 et adoptée en 1992
Appliquée pour des images couleurs ou en Niveaux de gris
Modes : Séquentiel, sans perte, progressif, hiérarchique …etc
Format d’images 768×576
Débit : de 8Mbps à 40Mbps

JPEG2000 : ISO/CEI 15444-1, abrégé JP2 (quelquefois J2K),

Utilise le codec EBCOT basée sur la transformation en


ondelette discrète (DWT)
Exemples de formats d’images numériques
Evaluation de la qualité des images
reconstruites

L’évaluation de la qualité, ou plutôt la mesure de la dégradation engendrée par


les traitements des images, tel que la compression, n’est pas facile à réaliser.

Il faut surtout retenir que c’est l’observateur qui est seul juge, soit une
appréciation SUBJECTIVE !
Evaluation de la qualité des images
reconstruites
Il faut distinguer :

• Les tests comparatifs, par rapport à une référence (image ou zone d’image)
• Les tests d’agrément de la qualité perçue (statistiquement ou par sondage)

Systèmes couramment rencontrés :

• MOS (Tests statistiques subjectifs)


• Distorsion (Erreur Absolue Moyenne)
• EQM (Erreur Quadratique Moyenne)
• SSIM (Structural SIMilarity)
• PQS (Picture Quality Scale)
• HVS (Human Visual System) (par modélisation)
• …etc
Evaluation de la qualité des images
reconstruites
MOS : Mean Opinion Score

Il s'agit de tests globaux des systèmes de traitement d’images faits par sondage
auprès d’un public. L'évaluation est donc subjective et gérée statistiquement.

Note Signification
5 Défauts imperceptibles
4 Défauts tout juste perceptibles
3 Défauts perceptibles mais pas gênants
2 Défauts perceptibles et un peu gênants
1 Défauts perceptibles et gênants
0 Défauts perceptibles et très gênants
Evaluation de la qualité des images
reconstruites

Distorsion: (Evaluation objective)


Mesure de différence entre zones d’images ; calcul simple, utilisé pour le
« Block Matching » sur des blocs de 16*16 pixels (pour l’estimation du
mouvement).
Evaluation de qualité entre :
• une image source I (de taille M*N) et
• une image résultante Î (de même taille)

La valeur la plus faible est à retenir, pas d’échelle de valeur.


Evaluation de la qualité des images
reconstruites
EQM ou MSE: (Evaluation objective)

Calcul de l’Erreur Quadratique Moyenne (EQM ou MSE(mean square error)) ;


traitement statistique sur toute l’image permettant de donner une « métrique »
(évaluation objective) pour évaluer des algorithmes. RMSE est la racine carrée
de l’erreur quadratique moyenne (Root Mean Square Error)

Evaluation de qualité entre :


• une image source I (de taille M*N) et
• une image résultante
MSE = même taille)
Î (de

M N
1 2
RMSE 
MN
  I i, j   Iˆ i, j 
i 1 j 1
Evaluation de la qualité des images
reconstruites

SNR: (Evaluation objective)


Rapport signal-à-bruit. Comme son nom l’indique c’est rapport entre la
puissance du signal utile par la puissance du bruit. La valeur la plus faible est à
retenir, pas d’échelle de valeur. Souvent utilisée comme métrique pour évaluer
les techniques de prétraitement notamment le débruitage et l’amélioration de la
qualité des signaux et images. Il est utilisé aussi pour caractériser les canaux de
transmission surtout les AWGN (Add White Gaussain Noise).

La mesure du SNR en décibel (dB) est calculée par l’expression


suivante :
 M N 
  i 1 j 1
I 2
 i , j  •
SNR  10log10  2 
une image source I (de taille M*N) et
M N
  i 1 j 1  I i, j   Iˆ i, j   • une image résultante Î (de même
 
taille)
Evaluation de la qualité des images
reconstruites

PSNR: (Evaluation objective)


La valeur la plus faible est à retenir, pas d’échelle de valeur. Pour corriger cet
inconvénient (pour pouvoir effectuer des comparaisons), on emploie plutôt une
version "corrigée" du rapport signal-à-bruit, notée PSNR (Peak Signal-to-Noise
Ratio) :

L : nombre d’échelons de Luminance (255 pour 8 bits) Une valeur de PSNR


inférieure à 30 dB traduit généralement une image présentant des dégradations
perceptibles ; le PSNR est l'évaluation la plus couramment utilisée.
Evaluation de la qualité des images
reconstruites
SSIM: (Evaluation objective)
SSIM : Structural Similarity Index ; le principe est d'évaluer la dégradation en
fonction du contexte local du défaut ; il est fait une pondération de 3 paramètres
: Luminance, Contraste et Contours :
Evaluation de la qualité des images
reconstruites
SSIM : La formule de calcul est la suivante :
LA TRANSFORMATION LINEAIRE
Etape : Transformation
• Pourquoi nous avons besoin de transformations d’images?
Etape : Transformation
• Pourquoi nous avons besoin de transformations d’images?

• Meilleur traitement d'image


– Prendre en compte les corrélations spatiales souvent sur de longues distances
– Aperçus conceptuels des informations spatio-fréquentielles. ce que cela signifie d'être
«un changement en douceur et modéré, un changement rapide,…»

• Calcul rapide: convolution vs multiplication

• Représentation et détection alternatives


– Obtenir des données transformées comme mesure dans des images de
radiologie (médicale et astrophysique), transformation inverse pour
récupérer l'image

• Stockage et transmission efficaces ?


– Compactage énergétique
– Choisissez quelques «représentants» (base)
– Il suffit de stocker / envoyer la «contribution» de chaque base
Exemples de transformations
• Transformée de Fourier 2D ou TFD 2D
• Transformée en cosinus discrète ou DCT 2D
• Transformée KLT et autres
Sous forme discrète ces transformations linéaires représentent un vecteur ou
signal f(x) d’un domaine direct , dans un domaine dit transformé. Ceci en
utilisant un noyau de transformation souvent sous forme d’une base de
fonctions orthogonale (u,x)

Transformée directe Transformée Inverse


N 1 N 1
F (u )   f ( x) u , x 
*
f (u )   F (u ) u, x 
x 0 x 0

u  0,1,..., N  1 x  0,1,..., N  1
Transformée de Fourier 1D: TF 1D

 TF 1D : Continue

real(g(x)) imag(g(x))
F u    f x exp 2jxu 
  =0
x : variable continue du domaine direct
u : variable continue du domaine transformé

 TFD 1D de longueur N : Discrète


N 1
 2jxu 
F (u )   f ( x) exp  
x 0  N 
u  0,1,..., N  1  =7
x : indice discret du domaine direct
x x
u : indice discret du domaine transformé
Transformée de Fourier 1D: TF 1D
Transformée de Fourier Discrète Directe
N 1
 2jxu  x : indice discret du domaine direct
F (u )   f ( x ) exp   u : indice discret du domaine transformé
x 0  N 
u  0,1,..., N  1 real(A) imag(A)
Transformée de Fourier Discrète Inverse u=0

1 N 1
 2jxu 
f ( x) 
N

u 0
F (u ) exp
 N 

x  0,1,..., N  1
Base de fonctions ou noyau de la
transformations: Exponentielles Complexes

 2jux 
 u , x   exp  u=7
 N 
n n
TFD 1 D sous forme matricielle

N 1
 2jxu 
F (u )   f ( x ) exp  
x 0  N 
u  0,1,..., N  1
x : indice discret du domaine direct real(A) imag(A)
u : indice discret du domaine transformé
u=0

F   W . f  N=8

W   Matrice noyau N×N


  2jxu 
Contient les valeurs de W u , x  exp  
  N 
u=7

 f   W  .F 
1* TFD inverse
matricielle n n
TFD 1 D sous forme matricielle

• { f(x) }  { F(u) }
u, x = 0, 1, …, N-1
WN = exp{ - j2 / N }

 N 1

 F (u )   f ( x )  WN
ux

 x 0

 f ( x)  1 N 1




N u 0
 ux
F (u )  WN
Propriétés de la TFD 1 D

F   W . f  W   Matrice noyau N×N


W u , x  exp  2jxu 
  N 
• Energy Conservation
– || F ||2 = || f ||2

• || F ||2 = || Wf ||2= (Wf)*T (Wf)= f*T W*T W x = f*T f = || f ||2


• Rotation
– The angles entre les vecteurs sont préservés

– Une transformation unitaire est une rotation d'un


vecteur dans un espace de dimension N, c'est-à-dire
une rotation des coordonnées de base
Propriétés de la TFD 1 D

•Compactage énergétique

De nombreuses transformées unitaires communes ont tendance à regrouper une grande partie
de l'énergie du signal en seulement quelques coefficients de transformation.
•Décorrélation

Éléments d'entrée hautement corrélés vs coefficients de sortie très peu corrélés

Matrice de covariance E [(F - E (F)) (F - E (F)) * T]


une petite corrélation implique de petits termes hors diagonale

Question: Quelle transformation unitaire donne le meilleur compactage et la


meilleure décorrélation?
1-D DFT pour différentes longueurs
n Réelle(W) imag(W)
N=32
u

N=8

N=16

N=64
TFD de 1D à 2D : Propriété de séparabilité
TFD 1D TFD 2D
f x  f x , y 

 u, x  u, v, x, y 
ux ux  vy
 j 2  j 2
e N
e N

N 1 N 1
F (u, v)   f ( x, y ) u , v, x, y  
x 0 y 0
N 1 N 1
 2jxu 
F (u )   f ( x) u , x    f ( x) exp   N 1 N 1
 2j ( xu  yv) 
x 0 x 0  N  
x 0 y 0
f ( x, y ) exp 
 N

F    . f  ?
TFD de 1D à 2D : Propriété de séparabilité
TFD 2D
N 1 N 1
 2j ( xu  yv) 
F (u , v)   f ( x, y ) exp   u , v  0,..., N  1
x 0 y 0  N 
N 1 N 1
 2jxu   2jyv  u , v  0,..., N  1
F (u , v)   f ( x, y ) exp   exp 
x 0 y 0  N   N 


N 1 N 1
 2jxu   2jyv 
F (u , v)    f ( x, y ) exp   exp  v  0,..., N  1
x 0  y 0  N   N 
u  0,..., N  1
N 1
 2jyv 
F (u , v)   F u, y exp   v  0,..., N  1
x 0  N 
Pour calculer une TFD 2 D de taille N×N on doit calculer N TFD 1D pour
chaque ligne , puis on calcule N TFD 1D pour chaque colonne
TFD de 1D à 2D : Propriété de séparabilité

TFD 2D

f x, y Nlignes , Ncolonnes F u , y Nlignes , Ncolonnes F u , y Nlignes, Ncolonnes

x  0,..., N  1 u  0,..., N  1 u  0,..., N  1


y  0,..., N  1 y  0,..., N  1 v  0,..., N  1

f x , y  :
est une image F u, y :
Calcul des TFD F u,v :
Calcul des TFD
1D de chaque ligne de
f x, y 
numérique supposée 1D de chaque ligne de
carrée N×N
F u, y 
Calcul TFD 2D
N 1 N 1
 2j ( xu  yv) 
TFD 2D F (u , v )  
x 0 y 0
f ( x , y ) exp
 N


u , v  0,..., N  1

1 N 1 N 1
 2j ( xu  yv)  x, y  0,..., N  1
ITFD 2D f ( x, y ) 
NN

u 0 v 0
F (u , v) exp
 N

 TFD 2D & TFD 2D Directe Inverse sont programmées sous Matlab


avec fft2 et ifft2, respectivement
 fftshift: Met la composante continue DC au centre
 Exemple:
>> I = imread(‘test.png’); % pour charger un exemple d’image
>> F = fftshift(fft2(I)); % Trasformée 2D avec décalage
>> imshow(log(abs(F)),[]); % Affiche le spectre d’amplitude
>> imshow(angle(F),[]); % Affiche le spectre de phase
Fonctions de base TFD 2 D
Réelle imag

real( ) imag( )
Implementation rapide de la TFD 2D
• TFD 2 D est séparable

1-D DFT
of f(m,n)
w.r.t n

1-D DFT
of F(m,v)
w.r.t m

 1D FFT: O(N¢log2N)
 2D DFT naïve implementation: O(N4)
 2D DFT est une 1D FFT for chaque ligne ensuite
pour chaque colonne
Implementation de la IDFT comme DFT
DFT2

IDFT2
Propriétés de la 2D-DFT
Les avantages pour une transformation d’image
• Theorie DFT ???
– Transformation inverse disponible X
– Conservation d’énergie (Parsevell) X
– Bon compactage de l’énergie

?
Orthonormal,
– invariant par décalage et rotation X
• Implémentation X
– Valeurs réelles x
– Séparable

X
Algorithme Rapide
– Même implementation for la transformée directe X
et inverse X
• Application
– Utile pour l'amélioration de l'image
– Capture des structures perceptuelles
X
significatives dans les images X
DFT vs. DCT
1D-DCT 1D-DFT

a real(a) imag(a)

u=0 u=0

u=7 u=7

n=7
1-D Discrete Cosine Transform (DCT)
 N 1
  ( 2n  1) k 


Z ( k )  
n 0
z ( n )   ( k ) cos  2N 

 z ( n) 
N 1
  ( 2n  1) k 



k 0
Z ( k )   ( k ) cos 
 2N 

1 2
 (0)  ,  (k ) 
N N

• Matrice transformée A
– a(k,n) = (0) for k=0
– a(k,n) = (k) cos[(2n+1)/2N] for k>0

• A est réelle et orthogonale


– lignes de A forment une base orthonormale
– A n’est pas symmétrique!
– DCT n’est pas la partie réelle de la TFD!
1-D DCT
1.0 1.0 100 100

0.0 0.0 0 0

-1.0 -1.0 -100 u=0 -100 u=0 to 4


z(n)
1.0 1.0 100 100

n 0.0 0.0 0 0

Original signal -1.0 -1.0 -100 u=0 to 1 -100 u=0 to 5

1.0 1.0 100 100

0.0 0.0 0 0

-1.0 -1.0 -100 u=0 to 2 -100 u=0 to 6


Z(k)
1.0 1.0 100 100

k 0.0 0.0 0 0

-1.0 -1.0 -100 u=0 to 3 -100 u=0 to 7


Transform coeff.
Basis vectors Reconstructions
DFT et DCT en notations Matricielles
Notation matricielle pour 1D

1D-DCT 1D-DFT

N=32 A real(A) imag(A)


de 1D-DCT à 2D-DCT
u=0

u=7

n=7

A est réelle et orthogonale


lignes de A forment une base orthonormale
A n’est pas symmétrique!
DCT n’est pas la partie réelle de la TFD!
DFT (real) vs DCT
Périodicité impliquée par DFT et DCT

TFD : périodise le signal


sur n points (nombre
d’échantillons par
discontinuités période)

DCT : symétrise ensuite


elle périodise le signal
sur 2n points (nombre
d’échantillons par
période)

La TFD et la DCT introduisent une périodicité au niveau signal 1D, mais pas de la
même manière.
 La TFD périodise le signal discret (1D) tel qu’il est. Ceci peut créer des
discontinuité
 La DCT symétrise d’abord le signal avant le périodiser. Ceci, éliminé toute
DFT et DCT de l’image Lena
DFT2 DCT2

Centrer les BF au
centre

L’image a été donc périodisée… Sysmétrisation et périodisation


La FFT pour implémenter une DCT rapide
• Reordoner les éléments pairs et impairs
~
 f ( x)  f (2 x) N
~ for 0  x  1
 2
 f ( N  n  1)  f ( 2n  1)

• Divisez la somme DCT en termes pairs et impairs


 N / 2 1   (4 x  1)u  N / 2 1   (4 x  3)u  
F (u )   (u )  f (2 x)  cos     f ( 2 x  1)  cos  
 x 0  2 N  n 0  2 N 
 N / 21 ~   (4 x  1)u  N / 2 1 ~   (4 x  3)u  
  (u )  f ( x )  cos   
 f ( N  x  1)  cos  
 x 0  2 N  x 0  2 N 
 N / 21 ~   (4 x  1)u  N 1 ~   ( 4 N  4 x'1)u  
  (u )  f (n)  cos   
 f ( x ' )  cos  
 x 0  2 N  x ' N / 2  2 N 
N 1 ~
  (4 x  1)u   N 1 ~
 j 2xu / N 
  (u ) f ( x)  cos    Re  (u ) e  ju / 2 N
 f ( x )  e 
x 0  2N   x 0 
  ju / 2 N ~  
 Re  (u )e DFT  f ( x ) 
  N 
The Desirables for Image Transforms
• Theorie DFT DCT ???
– Transformation inverse disponible X X
– Conservation d’énergie (Parsevell) X X
– Bon compactage de l’énergie X

?
Orthonormal, X
– invariant par décalage et rotation X
• Implémentation X X
– Valeurs réelles x X
– Séparable

X X
Algorithme Rapide
– Même implementation for la transformée directe X X
et inverse X X
• Application
– Utile pour l'amélioration de l'image
– Capture des structures perceptuelles
X
significatives dans les images X
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
Exemple
DCT REELLE
LA DCT REELLE

La transformée en cosinus discrète (DCT), découverte en 1974, appartient à la


classe des transformées unitaires sinusoïdales comprenant entre autres les
transformées de Fourier discrètes, cosinus, sinus et les transformées de
Karhunen-Loève ou KLT (sous condition de Markov de premier ordre).

Ces transformations réversibles ont souvent des algorithmes rapides leur


permettant d'être utilisées dans diverses techniques de traitement du signal.

Il existe quatre types de DCT, notés I, II, III et IV, où chaque type est classé
comme impair ou pair.

La DCT-II, en particulier, est devenu la solution la plus populaire dans le


traitement du signal, de l'image et de la vidéo, en particulier pour la
compression avec perte.
LA DCT REELLE
La Transformation en Cosinus Discrète unidimensionnelle DCT-II OU 1D ou xn sont
les entrées et Xk les sorties. Ces N sorties Xk de la transformation réelle DCT-II 1D
pour N entrées xn sont données par:
N 1
  1 
X k  Ak   xn cos   n    k 
n 0 N  2 

1 2
Avec A0  si k=0 et Ak  pour k quelconque
N N

Sous forme matricielle, la transformée 1D DCT-II réelle s'écrit:

X 1 N   C NII N  x1N 
Où X 1 N  et x1 N  sont les vecteurs de sortie et d'entrée de taille 1 × N.
C  est une transformée 1D DCT-II sous forme matricielle, donnée par:
II
N N

  
C 
II
N  N n,k  Ak  cos   n 
1
  k  où k , n  0,1,....N  1
N  2 
LA DCT REELLE

Le nombre d’opérations exigées par l’utilisation de la DCT-II augmente non


linéairement avec la taille de la matrice. Donc, on découpe l’image en matrices de taille
plus petite (8×8).

7
  1  1 1
X k  Ak   xn cos   n    k  Où A0  et Ak 
8
n0 8  2  4

En réécrivant la transformée DCT-II sous forme matricielle pour N = 8 nous avons :

X 18   C8II8  x18 


  1 
C 
II
88 n , k  Ak  cos   n    k  k , n  0,1,....7
8  2 
LA DCT REELLE

pour N = 8, la matrice C  II
88
prend donc alors la forme suivante:

 0,35355 0,35355 0,35355 0,35355 0,35355 0,35355 0,35355 0,35355 


 0,49039 0,41573 0,277779, 0,09755  0,09755  0,277779  0,41573  0,49039 

 0,46194 0,19134  0,19134  0,46194  0,46194  0,19134 0,19134 0,46194 
 
0,41573  0,09755  0,49039  0,277779, 0,277779, 0,49039 0,09755  0,41573 
C8II8 
 0,35355  0,35355  0,35355 0,35355 0,35355  0,35355  0,35355 0,35355 
 
0,277779,  0,49039 0,09755 0,41573  0,41573  0,09755 0,49039  0,277779
 0,19134  0,46194 0,46194  0,19134  0,19134 0,46194  0,46194 0,19134 
 
 0,09755  0,277779, 0,41573  0,49039 0,49039  0,41573 0,277779  0,09755 

la matrice dépend essentiellement de 7 valeurs différentes avec des signes + ou - que nous
noterons c0 = 0,35355, c1 = 0,49039, c2 = 0,41573, c3 = 0,277779, c4 = 0,09755, c5 = 0,46194
et c6 = 0,19134 .
LA DCT REELLE

II
C 
88
LA DCT REELLE
En utilisant ces notations, c0 = 0,35355, c1 = 0,49039, c2 = 0,41573, c3 = 0,277779, c4 =
0,09755, c5 = 0,46194 et c6 = 0,19134 ,la matrice prend alors la forme suivante:

c0 c0 c0 c0 c0 c0 c0 c0 
c c2 c3 c4  c4  c3  c2  c1 
1
c5 c6  c6  c5  c5  c6 c6 c5 
 
II  c2  c4  c1  c3 c3 c1 c4  c2 
C88 
c0  c0  c0 c0 c0  c0  c0 c0 
 
c3  c1 c4 c2  c2  c4 c1  c3 
c  c5 c5  c6  c6 c5  c5 c6 
6 
c4  c3 c2  c1 c1  c2 c3  c4 
LA DCT 2D REELLE

Alors que le 2D DCT-II, X (k1, k2) d'un bloc d'image 8 × 8 pixels, x (n1, n2) est donné
par l'expression suivante:

7 7
  1    1 
X k1 , k 2   Ak1  Ak2    xn1 , n2 cos   n1    k1   cos   n2    k 2 
n10 n 2 0 8  2  8  2 
Avec k1 et k2 = 0,1,…, 7

Compte tenu de la propriété de séparabilité, le 2D DCT-II est obtenu en effectuant le


DCT-II 1D le long des N lignes de ce bloc, puis le long de ses N colonnes. La DCT-II
2D et son inverse sous forme matricielle, s'écrivent respectivement:

X 88    C8II8  x88  


II t
C88  x88    II t
C88   X 88  
C 88 
II
COMPLEXITE CALCULATOIRE DE LA DCT REELLE

L'utilisation directe d'une transformée 1D DCT-II exacte nécessite un nombre


élevé d'opérations, ce qui n'est pas souhaitable pour les applications en temps
réel et à faible coût de calcul.

En effet, le calcul du DCT à l'aide de l'équation présentée ci-dessus nécessite


des opérations O (N2). Néanmoins, il est possible de réduire le nombre
d'opérations à seulement O (N × log2 (N)) en utilisant le même principe que la
transformée de Fourier rapide (FFT), à savoir une factorisation du calcul.

En 1989 un algorithme rapide utilisant seulement 40 opérations (11


multiplications et 29 additions) pour calculer un DCT à 8 points.

De nombreux autres travaux, depuis plusieurs décennies, ont permis de réduire


encore le nombre d'opérations pour le calcul de ce DCT.
EXEMPLES DU DIAGRAMME DE CALCUL DE LA DCT REELLE

Vladimir Britanak et al
‘’Discrete cosine and sine
transforms: general
properties, fast algorithms and
integer approximations.’’

1er exemple de graphe de flux généralisé pour le calcul d’une DCT-II 1 D pour N = 2, 4 et 8
EXEMPLES DU DIAGRAMME DE CALCUL DE LA DCT REELLE

Vladimir Britanak et al
‘’Discrete cosine and sine
transforms: general
properties, fast algorithms and
integer approximations.’’

2ème exemple de graphe de flux pour le calcul d’une DCT-II 1 D pour N = 2, 4 et 8


EXEMPLES DU DIAGRAMME DE CALCUL DE LA DCT REELLE

Vladimir Britanak et al
‘’Discrete cosine and sine
transforms: general
properties, fast algorithms and
integer approximations.’’

Graphe du flux pour le calcul DCT-II via DFT de données à valeur réelle pour N = 8.
DCT ENTIERE
LA DCT ENTIERE

D'autres travaux ont ensuite proposé de convertir cette matrice à valeurs réelles
en une matrice entière.

En effet, cela doit permettre de représenter les valeurs de cette nouvelle matrice
entière par un nombre fini de bits et conduit alors à une réduction du coût de
calcul.

L'approximation entière de C  , qui peut être notée IC 


II
II
88
88 , doit
satisfaire certaines propriétés comme l'orthogonalité et prend généralement la
forme suivante:
LA DCT REELLE

I0 I0 I0 I0 I0 I0 I0 I0 
I I2 I3 I4  I4  I3  I 2  I1 
1
I5 I6  I6  I5  I5  I6 I6 I5 
 
II  I2  I 4  I1  I3 I3 I1 I4  I2 
IC88  D 
I0  I0  I0 I0 I0  I0  I0 I0 
 
I3  I1 I 4 I2  I2  I 4 I1  I3 
I  I5 I5  I6  I6 I5  I5 I6 
6 
 I 4  I3 I2  I1 I1  I 2 I3  I 4 
Comme nous pouvons le remarquer cette matrice de la DCT entière a besoin
uniquement des valeurs entières I0, I1, I2, I3, I4, I5 et I6 pour être identifiée. C’est
pourquoi on peut la définir comme suit

IC8II8  I 1 , I 2 , I 3 , I 4 , I 5 , I 6 , I 0 
LA DCT REELLE

Exemple : Représenter les matrices DCT II 1 D entières suivantes

IC8II8  5,3,2,1,3,1,1

IC8II8  55,51,34,11,3,1,1

IC8II8  250,219,146,50,3,1,1

Comparez les à la matrice DCT II 2D réelle. Pouvez vous proposer une


métrique pour ces comparaisons?
APPROXIMATION DCT
APPROXIMATION DCT

Afin de réduire encore plus le coût de calcul d'une telle transformation, utilisé
par exemple dans une chaîne de compression d'image, nous utilisons souvent
des approximations DCT.

En effet, les valeurs c0, c1 ... c6 de la matrice, au lieu d'être remplacées par des
entiers, sont alors remplacées uniquement par des 0 et des 1.

Le calcul de ces approximations DCT nécessite généralement un nombre


d'opérations beaucoup plus petit que le DCT réel, au détriment d'une
dégradation supplémentaire.

Les approximations DCT doivent préserver les principales propriétés


mathématiques du DCT d'origine telles que la linéarité, l'orthogonalité et le
compactage énergétique.
APPROXIMATION DCT

Transformation d'onde carrée DCT signée

Une transformée en onde carrée efficace appelée DCT-II signée (SignDCT-II) a été
proposé.

Le SignDCT-II est obtenu en appliquant l'opérateur de fonction de signum aux


éléments de la matrice DCT-II d’ordre N, c'est-à-dire la matrice SignDCT-II d'ordre N

Sgn[DCT - II]  Sgn[C8II8 ]

Sgn[DCT - II] 
APPROXIMATION DCT
Transformation d'onde carrée DCT signée

Exemple d’un diagramme de flux rapide sans multilication d’une SignDCT-II à 8 points
APPROXIMATION DCT
Autre exemple d’approximation DCT
APPROXIMATION DCT
Autre exemple d’approximation DCT
APPROXIMATION DCT
Autre exemple d’approximation DCT
COMPLEXITE CALCULATOIRE 1D
Calcul du nombre d’opérations nécessaires à quelques exemples d’approximations DCT
dans le cas 1D

Méthodes Add shift Total


COMPLEXITE CALCULATOIRE 2D
Calcul du nombre d’opérations nécessaires à quelques exemples d’approximations DCT
pour le cas 2D

Méthodes Add shift Total


Transformation optimale
• Rappel: Pourquoi utiliser la transformation en codage / compression?
– Décorréler les données corrélées (exploiter la redondance)
– Compacter l'énergie dans un petit nombre de coefficients

– Intéressé par les transformées unitaires / orthogonales ou orthogonales


approximatives
• Préservation de l'énergie, ainsi les effets de quantification peuvent être mieux compris et
contrôlés
• Les transformations unitaires que nous avons traitées jusqu'à présent sont
indépendantes des données
– La base de transformation / les filtres ne dépendent pas des signaux que nous
traitons

• Quelle transformée unitaire donne le meilleur compactage et décorrélation d'énergie?


– "Optimal" au sens statistique pour permettre au codec de
bien fonctionner avec de nombreuses images
• Les statistiques de signaux joueraient un rôle important
Corrélation après une transformation linéaire
• Considérons un vecteur aléatoire [x] de taille Nx1 et à moyenne nulle
– Sa matrice de Covariance (autocorrelation) est Rx = E[ x xH ]
• Donne une indée sur la correlation entre ses éléments
• Rx est une matrice diagonale si les éléments de x sont non-corrélés

• En appliquant une transformation linéaire à x: y = A x


• Alors qu’elle sera la matrice de correlation de y ?

Ry = E[ y yH ] = E[ (Ax) (Ax)H ] = E[ A x xH AH ]
= A E[ x xH ] AH = A Rx AH

• Decorrelation: essayer de rechercher A qui peut produire un y décorrélé


(équiv. une matrice de corrélation diagonale Ry)
Transformation K-L
(analyse en composantes principales)

• Décomposition propre de Rx: Rx uk = k uk


– Rappel des propriétés de Rx
• Hermitienne (conjugué symétrique RH = R);
• Définie Non-négative (valeurs propres réelles non négatives)

• KLT Transformée de Karhunen-Loeve


y = UH x  x = U y avec U = [ u1, … uN ]
– KLT est une transformée unitaire avec des vecteurs de base en U étant les vecteurs
propres orthonormalisés de Rx

– UH Rx U = diag{1, 2, … , N} i.e. KLT effectue la décorrélation


– Souvent d’ordre {ui} pour que 1  2  …  N

– Également connue sous le nom de transformation de Hotelling ou analyse en


composantes principales (ACP)
Propriétés de la KLT
• Decorrelation
– E[ y yH ]= E[ (UH x) (UH x)H ]= UH E[ x xH ] U = diag{1, 2, … , N}

– Remarque: D'autres matrices (unitaires ou non unitaires) peuvent


également décorréler la séquence transformée

• Minimizing MSE under basis restriction


– Si seulement permettre de conserver m coefficients pour 1 m N,
quelle est la meilleure façon de minimiser les erreurs de reconstruction?
Gardez les coefficients w.r.t. les vecteurs propres des m premières
valeurs propres les plus grandes
KLT pour les Images
• Fonctionne avec la fonction d'autocorrélation 2D
– R(m,n; m’,n’)= E[ x(m, n) x(m’, n’) ] pour tous 0 m, m’, n, n’  N-1
– Les images de base K-L sont les fonctions propres orthonormalisées de R

• Réécrire les images sous forme vectorielle (N2x1)


– Besoin de résoudre le problème propre pour une matrice N2xN2 matrix! ~ O(N 6)

• R Réduction de calcul réduit pour R séparable


– R(m,n; m’,n’)= r1(m,m’) r2(n,n’)
– Il suffit de résoudre le problème propre pour deux matrices NxN ~ O(N3)
– KLT peut désormais être exécuté séparément sur les lignes et les colonnes
• Réduire la complexité de la transformation O(N4) to O(N3)
Avantages et inconvénients de la KLT

• Optimalité
– Décorrélation et MMSE pour le même nombre de coefficients partiels.

• Dépendant des données


– Doit estimer les statistiques de second ordre pour déterminer la transformation
– Pouvons-nous obtenir une transformation indépendante des données avec des
performances similaires?
• DCT

• Applications
– compression (non universelle)
– reconnaissance de formes: par exemple, faces propres
– analyser les principales composantes («dominantes»)
Compactage d’énergie de la DCT vs. KLT
• Le DCT a un excellent compactage énergétique
pour les données hautement corrélées
• DCT est un bon remplacement pour K-L
– Presque optimal pour des données hautement
corrélées
– Ne dépend pas de données spécifiques comme le
fait K-L
– Algorithme rapide disponible

[ref and statistics: Jain’s pp153, 168-175]


Compactage d’énergie de la DCT vs. KLT
• Preliminaries
– The matrices R, R-1, and R-1 share the same eigen vectors
– DCT basis vectors are eigenvectors of a symmetric tri-diagonal matrix Qc

– Covariance matrix R of 1st-order stationary Markov sequence with has an inverse in the
form of symmetric tri-diagonal matrix
• DCT is close to KLT on 1st-order stationary Markov
– For highly correlated sequence, a scaled version of R-1 approx.
Qc
LA QUANTIFICATION
QUANTIFICATION

 La quantification est la forme la plus élémentaire de compression de données avec


perte, tout en constituant une partie fondamentale de plus de schémas de compression
avec perte avancés tels que le codage par transformation.

 Nous pouvons quantifier directement une image ou quantifier les résultats d'une
transformation comme décrite plus haut. Il s’agit d’une opération non linéaire.

 Lorsqu'un nombre x est quantifié en niveaux L, nous voulons dire que sa valeur est
remplacée par (ou quantifiée en) le membre le plus proche d'un ensemble de niveaux
de quantification. Ici, nous considérons la quantification uniforme.

 Pour la quantification uniforme utilisée ici:


 Nous définissons une plage de quantification définie par les valeurs xmin et xmax.
 Nous divisons cette plage en L segments de taille égale, chacun avec:
xmax  xmin

L
Nous plaçons le niveau de quantification pour un segment donné au milieu de ce
segment.
QUANTIFICATION
Il s’agit d’une opération d’arrondie ou de troncature en fonction d’un pas de
quantification  qui peut être uniforme ou non.   xmax  xmin
L
Étant donné un pixel x [m; n], le quantificateur fonctionne en émettant le niveau le plus
proche. De manière équivalente, si x [m; n] se trouve dans le ième segment, alors le
quantificateur sort le ième niveau.
Données quantifiées
Données originales X Q(X)
Quantification
Taille N Q Taille N

Débit : R=log2N

Bruit de quantification  =X−Q(X)

Puissance du bruit =E[(X−Q(X))2]=E[2]


QUANTIFICATION

Source : Cours de cagnazzo


QUANTIFICATION ET CODAGE PREDICTIVE
 Si on se contente uniquement d’une quantification dans le domaine spatiale pour
compresser une image, nous ne pourrons pas espérer obtenir de bons résultats en
termes de taux de compression et de qualité d’images reconstruites.

 Mais dans le domaine spatiale nous pourrons associer avec l’opération de la


quantification un codage prédictif. Il s’agit d’exploiter la redondance entre les pixels
voisins d’une même image. Autrement dit, l’opération de quantification sera
effectuée sur l’erreur entre un pixel et sa prédiction (déterminée à partir des pixels
voisins).

 Evidemment, il faut définir le type de prédicteur à utiliser et dont les exemples sont
nombreux

Encodeur Décodeur

Source figures: Cours de cagnazzo


QUANTIFICATION DANS LE DOMAINE TRANSFORME

Dans le cas des méthodes de compression par transformation avec perte, la


quantification concerne les coefficients de la transformation et non pas les
pixels de l’image.
Image Codage Bit
Transformation Quantification stream
originale entropique
Cu , v Cuq,v
Cu ,v : Les coefficients obtenus par la transformation 2 D appliquée sur l’image ou un
bloc de l’image

Cuq,v : Les coefficients de la transformation quantifiés. Généralement obtenue comme


suit:
 Cu , v 
C q
u ,v  Trunc  

 Qu ,v 
Qu ,v Est une matrice de quantification déterminée en fonction des caractéristiques de la vision
humaine
QUANTIFICATION DANS LE DOMAINE TRANSFORME

La matrice de quantification dans le cas de la norme JPEG est de taille 8×8, car
l’image est d’abord découpée en blocs 8x8, ensuite on applique la DCT 2D à
chaque bloc. Les coefficients de la DCT de tailles 8×8 sont enfin quantifiés à
partir de la matrice de quantification suivante

Matrice de quantification de JPEG pour la luminance Y

Vous aimerez peut-être aussi