Application à la compression d'image

Supposons vouloir compresser une image sous la forme d’une matrice $A$ de dimensions $n\times m$. La première étape consiste à mettre la matrice $A$ sous forme $A = U \times S \times V$. La seconde étape consiste à considérer les valeurs de la diagonale de $S$, avec $k = \min(m,n)$ : $S_{1,1} \geq S_{2,2} \geq … \geq S_{k,k}$. La compression au rang $r$ consiste à annuler les termes diagonaux de $S$ d’indice strictement plus grand que $r$, avec $r \leq k$.

Take off - Original Take off - rank=5
Takeoff original Takeoff r=5
Take off - rank=50 Take off - rank=130
Takeoff r=50 Takeoff r=130

Compression

  • Question : Écrire un algorithme permettant d’obtenir la compression au rang k d’une matrice carrée donnée.

Analyse quantitative

  • Questions :
    1. Quel est le gain de place pour une compression au rang $k$ par rapport à la matrice initiale ?
    2. Quelle est le rang maximal au delà duquel la transformation est de taille supérieure à l’image initiale ?

Analyse qualitative

  • Question : Tracer l’efficacité de cette compression en fonction de $k$, (par exemple en mesurant la distance entre l’image réelle et l’image compressée).