diff --git a/455-Codage_Sources/Cours/chap4.tex b/455-Codage_Sources/Cours/chap4.tex index 397cce2..885a1f6 100644 --- a/455-Codage_Sources/Cours/chap4.tex +++ b/455-Codage_Sources/Cours/chap4.tex @@ -16,14 +16,14 @@ Si $\vec{x}$ représente par exemple une suite de $N$ échantillons d'un signal Dans le second cas on essaie d'exprimer $\vec{x}$sur une ``meilleure'' base que la base canonique. \section{Transformations} -\begin{defin} +\begin{prop} Une base de $\R^n$ est ensemble de $n$ vecteurs $\{\vec{u_1} ...\vec{u_n}\}$ linéairement indépendants. Si on pose \[ \vec{U} = [ \vec{u_1} ... \vec{u_n}] \] Alors $\vec{U}$ est inversible. -\end{defin} +\end{prop} \paragraph{Transformation inverse} @@ -83,7 +83,7 @@ Si on veux transformée une image $\vec{X}\in \R^{n\times n}$ il faut considér \item Reformer $\vec{T} \in \R^{n\times m}$ à partir de $t$. \end{itemize} -\begin{defin} +\begin{prop} Une transformée pour une image $\vec{x}\in \R^{n\times m}$ est dites \emph{séparable} s'il existe une matrice $\vec{U_s}$ telle que la matrice $\vec{T}$ transformée définie précédement puisse s'écrire \[ \vec{T} = \vec{U_s}^{-1}\vec{x}(\vec{U_s}^{-1})^T @@ -92,12 +92,205 @@ et si $U_s$ est unitaire: \[ \vec{T} = \vec{U_s}^T x \vec{U_s} \] -\end{defin} +\end{prop} \begin{rem} Pour une transformée non séparable on a une complexité en $O(n^4)$. Pour une transformée séparable on a une complexité en $O(2n^3)$ \end{rem} + +\section{Transformée de Karhuman-Loeve} + +On considère une source vectorielle, centrée et de matrice de covariance $\vec{\Gamma}$: +\[ + \vec{\Gamma} = E(\vec{X.X}^T) +\] +\begin{rem} + $\vec{\Gamma}$ est symétrique. +\end{rem} +On cherche une transformée discrète optimale décrite par $\vec{A}$ et une transformée inverse décrite par $\vec{B}$. qui soit \emph{optimale} au sens de l'EQM. de reconstruction lorsqu'on réalise une réduction à $m$ composantes du vecteur transformé. + +Le vecteur transmformé est : +\[ + \vec{t} = \vec{A}\vec{x} +\] + +On ne garde que les $m$ premières composantes de $\vec{T}$ pour obtenir $\vec{t}_{m}$. +\[ + \vec{t_m} = \vec{I_m} \vec{t} \quad \text{ avec } \vec{I_m} = diag(\underbracket{1, ... ,1 }_{m},\underbracket{0, ..., 0}_{N-m}) +\] + +Le vecteur reconstruit est alors : +\[ + \hat{\vec{x_m}} =\vec{B}\vec{t_m} = \vec{B}\vec{I}_m\vec{t} =\vec{B}\vec{I_m}\vec{A}\vec{x} +\] + + +\begin{thm} + La matrice de transformation directe qui minimise l'EQM de reconstruction lors d'une reduction à m composante d'une source $X$ en considérant la transformée inverse est telle que + \[\vec{B} = \vec{A}^T\] + et où $\vec{A}$ est formée des vecteurs propres de $\vec{\Gamma}$ rangés par valeurs propres décroissantes. +\end{thm} + + +\begin{proof} + + À partir de l'expression de l'EQM on a: + \begin{align*} +J_m & = \frac{1}{N}E((\vec{x}-\vec{\hat{x}})^T(\vec{x}-\vec{\hat{x}})) \\ + & = \frac{1}{N} tr(E((\vec{x}-\vec{\hat{x}})(\vec{x}-\vec{\hat{x}})^T)) \\ + & = \frac{1}{N} tr(\vec{t}-\vec{BIA}E(\vec{xx}^T)(\vec{t}-\vec{BI_mA})^T) \\ + & = \frac{1}{N} tr(\vec{t}-\vec{BIA}\vec{\Gamma}(\vec{t}-\vec{BI_mA})^T) \\ + & = \frac{1}{N} \left[tr(\vec{\Gamma}) - tr(\vec{BI_mA\Gamma})- tr(\vec{\Gamma}(\vec{BI_mA})^T)+tr(\vec{BI_mA\Gamma A^TI_mB}) \right] \\ + \intertext{À partir des propriétés élémentaire de la trace (symétrie, bilinéaire)} + & = \frac{1}{N}\left[tr(\vec{\Gamma})- tr(\vec{A\Gamma B I_m}) - tr(\vec{AI_mB\Gamma}) + tr(\vec{BI_mA\Gamma A^TI_mB}^T)\right] + \end{align*} + + \begin{lemme} + + Pour une fonction matricielle $\vec{Y} = f(\vec{A}) $ on a : + \[ + D_{\vec{A}}(\vec{B}) =\derivp[tr(\vec{Y})]{A} + \] + qui est la matrice contenant les dérivées de $tr(\vec{A})$ par rapport aux composante de $\vec{A}$. Alors : + \[ + D_{\vec{A}}(\vec{AB}) = \derivp[tr(\vec{AB})]{A}= \vec{B}^T + \] + \[ + D_{\vec{A}}(\vec{ABA}^T) = \vec{AB}^T+\vec{AB} + \] + \[ + D_{\vec{A}}(\vec{CABA^TD}) = \vec{C}^T\vec{D}^T\vec{AB}^T+\vec{DCAB} + \] + \end{lemme} + Avec le lemme on a : + + \begin{align*} + \derivp[J_m]{\vec{A}} = \frac{1}{N}\left[ + \vec{0} - 2\vec{\Gamma BI_m}^T+ (\vec{BI_m})^T(\vec{I_mB}^T)^T\vec{A}\vec{\Gamma}+(\vec{I_mB^T})(\vec{BI_m})\vec{A\Gamma} \right]=0 + \end{align*} + On en déduit: + \[ + \vec{I_mB}^T(\vec{I}-\vec{I_mA})\vec{\Gamma} = \vec{0} \tag{(1)} + \] + On réecrit alors le critère sous la forme: + + \begin{align*} + J_m &= \frac{1}{N} tr((\vec{I}-\vec{BI_mA})\vec{\Gamma}) - \frac{1}{N}tr((I-\vec{BI_mA})(\vec{BI_mA})^T) \\ + &= \frac{1}{N} tr((\vec{I}-\vec{BI_mA})\vec{\Gamma}) - \frac{1}{N} tr(\vec{A}^T\vec{I_m}\vec{B}^T(\vec{I-BI_mA})) + \end{align*} + En général $\Gamma$ etant inversible, en utilisant (1) on déduit : + + Si $m=n$ on doit avoir $J_n = 0$ soit : + \[ + tr((\vec{I}-\vec{BA})\vec{\Gamma}) = 0 + \] + Une condition suffisante est que: + \[ + \vec{A} = \vec{B}^{-1} + \] + Avec (1), mais pour tout $\vec{\Gamma}$ on a alors : \footnote{À développer : écriture par bloc des matrice, $B^TB$ est diagonale } + \[ + \vec{I_mBB}^T = \vec{I_mB}^T\vec{B}\vec{I_m} + \] + On a alors: + \[ + I_m = \frac{1}{N}tr(\vec{I}-\vec{BI_mA}\vec{\Gamma}) + \] + Si on prend une matrice $\vec{D}$ diagonale inversible et qu'on remplace $\vec{B}$ par $\vec{BD}$ $\vec{A}= \vec{B}^{-1}$ va être remplacé par $\vec{D}^{-1}\vec{A}$ + \begin{align*} + J_m &= \frac{1}{N}((\vec{I}-\vec{BDI_mD}^{-1}\vec{A})\vec{\Gamma}) \\ + &= \frac{1}{N}((\vec{I}-\vec{BI_mA})\vec{\Gamma}) + \end{align*} + Cette propriété permet de choisir $\vec{B}$ unitaire c'est à dire $\vec{B}^T\vec{B} = \vec{I} $ soit $\vec{A}=\vec{B}$. Alors on remplace dans l'expression de l'EQM: + + \[ + J_m = \frac{1}{N}tr(\vec{\Gamma}) - \frac{1}{N}tr(\vec{A}^T\vec{I_m}\vec{A}\vec{\Gamma}) + \] + Ainsi pour minimiser l'EQM il faut minimiser : + \[ + tr(\vec{A}^T\vec{I_m}\vec{A}\vec{\Gamma}) = tr(\vec{I_mA\Gamma A}^T) + \] + + On note $\vec{a_1}^T ... \vec{a_N}^T $ les lignes de $\vec{A}$ . On a alors: + \[ + K_m = tr(\vec{I_mA\Gamma A^T}) = \sum_{i=1}^{m}\vec{a_i}^T\vec{\Gamma}\vec{a_i} + \] + qu'il faut minimiser sous le contraintes: + \[ + \vec{a_i}^T\vec{a_i}, \forall i \in [1 ... N] + \] + On introduit donc le lagrangien: + \[ + \mathcal{L}(\vec{a_1} ...\vec{a_N},\lambda_1 ... \lambda_N) = \sum_{i=1}^{m}\vec{a_i}^T\vec{\Gamma}\vec{a_i} - \sum_{i=1}^{N}\lambda_i(\vec{a_i}^T\vec{a_i}-1) + \] + On a donc: + \[ + \derivp[\mathcal{L}]{\vec{a_i}}= + \begin{cases} + 2\vec{\Gamma}\vec{a_i}-2\lambda_ia_i & = 0 \quad \forall i \in [1...m] \\ + -2 \lambda_i\vec{a_i} & = 0 \quad \forall i \in [m+1...N] + \end{cases} + \] + On a donc $\vec{\Gamma}\vec{a_i} = \lambda_i \vec{a_i}$. + Les $\vec{a_i}$ sont les vecteurs propres de $\Gamma_i$ associées aux valeurs propres $\lambda_i$. Alors + \[ + K_m = \sum_{i=}^{m}\lambda_i + \] + qui est maximisé lorsque les $vec{a_i}$ sont associés aux $m$ plus grandes valeurs propres de $\Gamma$. + +\begin{flushright} +Ouf ! +\end{flushright} + +\end{proof} +\subsection{Mise en oeuvre pratique} +On dispose d'un signal sonore $ x_1 ... x_M$ centré. +\begin{enumerate} +\item On découpe le signal en vecteur de $N$ composante $\vec{x_1} = (x_1 ... x_N),\vec{x_2} = (x_{N+1} ... x_{2N}) ... \vec{x_K}$. +\item On calcule: + \[ + \vec{\hat{\Gamma}}\frac{1}{K}\sum_{k=1}^{K}\vec{x_k}\vec{x_k}^T + \] +\item On calcule les vecteurs propres $\vec{\gamma_1 ... \gamma_N}$ de $\vec{\Gamma}$ associé aux valeurs propres $\lambda_1 \ge ... \lambda_N$ +\item On construit la matrice de transformation : + \[ + \vec{A} =\vect{\vec{\gamma_1}^T\\ \vec{\gamma_2}^T\\ \vdots \\ \vec{\gamma_N}^T} = \vec{B}^T + \] +\item calculer: + \[ + \vec{t_k} = \vec{A}\vec{x_k} \quad \forall k \in [1... K] + \] +\item Mettre à 0 les $N-m$ derniers coefficient de $\vec{t_k}$. +\item Calculer + \[ + \hat{\vec{x_k^{(m)}}} =\vec{B} \vec{t_k^{(m)}} \quad \forall k \in [1... K] + \] + +\end{enumerate} + +\begin{rem} + La KLT a cependant des défauts: + \begin{itemize} + \item Elles dépend du signal à compresser. + \item Elle n'est pas séparable. + \end{itemize} + De ce fait elle est très peu utilisée en compression d'image +\end{rem} +\section{Transformée sous optimales} +\subsection{Transformée en cosinus discrete (DCT)} +La DCT est une très bonne alternative à la KLT. +\begin{defin} + La transformée en cosinus discrète a pour matrice de transformation: + \[ + \vec{u_{i,k}} =\alpha_i \cos \frac{\pi(2k-1)i}{2N} + \] + Avec $\alpha_0 =\frac{1}{\sqrt{N}}$ et $\alpha_i = \sqrt{\frac{2}{N}}$. +\end{defin} +\begin{rem} + La DCT est séparable. + En terme de compaction d'énergie elle est presque aussi efficace que la KLT. Elle est utilisée en compression audio (mp4) vidéo (H261 à H265) +\end{rem} \end{document} %%% Local Variables: %%% mode: latex