cours du 11/03

This commit is contained in:
Pierre-antoine Comby 2019-03-11 16:31:32 +01:00
parent e66bdb987f
commit 013623770e
2 changed files with 151 additions and 25 deletions

View file

@ -260,7 +260,7 @@ Les conditions nécessaires pour avoir $D$ minimale sont :
\subsection{Quantification non uniforme} \subsection{Quantification non uniforme}
\subsection*{Algorithme de Lloyd -Max} \subsection{Algorithme de Lloyd -Max}
\begin{enumerate} \begin{enumerate}
\item Initialisation : $b_0^{(0)} < b_1^{(0)} < \dots < b_n^{(0)}$ choisis arbitrairement, $k=1$. \item Initialisation : $b_0^{(0)} < b_1^{(0)} < \dots < b_n^{(0)}$ choisis arbitrairement, $k=1$.
\item $y_i^{(k)}$ obtenus à partir des $b_i^{(k-1)}, i=0 \dots M$ en utilisant la 1ère condition d'optimalité \item $y_i^{(k)}$ obtenus à partir des $b_i^{(k-1)}, i=0 \dots M$ en utilisant la 1ère condition d'optimalité
@ -336,19 +336,98 @@ Pour une source quelconque, le comportement débit / distorsion sera :
\[ \boxed{ D(R) = \epsilon_X \sigma_X^2 2^{-2R} \text{ avec } \epsilon_X = \frac{1}{12\sigma_X^2}(\int_{-\infty}^{+\infty} (f_X(x))^{1/3}dx)^3 } \] \[ \boxed{ D(R) = \epsilon_X \sigma_X^2 2^{-2R} \text{ avec } \epsilon_X = \frac{1}{12\sigma_X^2}(\int_{-\infty}^{+\infty} (f_X(x))^{1/3}dx)^3 } \]
\end{rem} \end{rem}
\section{Quantification vectorielle - Algorithme de Linde-Buzo-Gray} \section{Quantification vectorielle}
\begin{defin}
Un quantificateur vectoriel pour une source $\vec{X}\in\R^n$ est défini:
Avec une quantification vectorielle on considère des vecteurs de $N$ échantillons de la source que l'on va représenter à l'aide d'un index de quantification. \begin{itemize}
\item par une fonction de quantification :
\[
q : \R^n \to \{0, .... ,n-1\}
\]
\item par une fonction de reconstruction:
\[
q^{-1} : \{0, .... ,n-1\} \to \R^n
\]
On note $\vec{y_m} = q^{-1}(m)$ les valeurs de reconstruction du quantificateur.
\end{itemize}
\end{defin}
On étend la notion de distorsion et de mesure de distorsion au cas vectoriel:
\begin{prop}[Mesure de distortion vectorielle]
Mesure de distortion quadratique:\\
\[
d_2(\vec{x},\vec{y}) = \frac{1}{n}\sum_{i=1}^{n}|x_i-y_i|^2
\]
Mesure de distortion en valeur absolue:
\[
d_1(\vec{x},\vec{y}) = \frac{1}{n}\sum_{i=1}^{n}|x_i-y_i|
\]
La distorsion introduite par le quantificateur Q est alors l'espérance de la mesure de distorsion:
\[
D = E[d(\vec{x},Q(\vec{x}))]
\]
\end{prop}
%\img{0.5}{2/2/2} %\img{0.5}{2/2/2}
\subsection{Condition d'optimalité}
On considère une quantification vectorielle d'une source $\vec{X}\in\R^n$ sur $M$ niveau de quantification. On alors la distorsion:
\[
D = \int_\R^n \|\vec{x}-Q(\vec{x})\|^2_2 f_{\vec{x}}(\vec{x})\d \vec{x}
\]
On partitionne $\R^n$ en cellule de quantification $\mathcal{C}^k, k\in[0...M-1]$ au seins desquelles la valeur de reconstructio vaut $\vec{y_k}$.
\emph{Comment choisir $\mathcal{C}^k$ et $y_k$ pour minimiser $\vec{y_k}$?
}
\[
D = \sum_{k=0}^{M-1}\int_{\mathcal{C}^k} \|\vec{x}-\vec{y_k}\|^2 f_\vec{X}(\vec{x})\d \vec{x}
\]
\begin{prop}
Si on fixe les $\mathcal{C}^k$:
\[
\vec{y_k} = \frac{\int_{\mathcal{C}^k}\vec{x}f_{\vec{X}}(\vec{x})\d\vec{x}}{\int_{\mathcal{C}^k}f_{\vec{X}}(\vec{x})\d\vec{x}}
\]
$ \vec{y_k}$ est le barycentre de $\mathcal{C}^k$ en utilisant la densité$f_{\vec{X}}(\vec{x})$.
Si on fixe les $\vec{y_k}$ alors pour minimiser $D$ il faut prendre:
\[
\mathcal{C}^k =\{ \vec{x}\in\R^n ,\quad\|\vec{x}-\vec{y_k}\| \le \|\vec{x}-\vec{y_l}\| , \forall l \neq k\}
\]
\end{prop}
\begin{proof}
Si on suppose $\mathcal{C}^k$fixé alors pour fixer $y_k$ on calcule:
\[
\derivp[D]{\vec{y_k}} = -2 \int_{\mathcal{C}^k} (\vec{x}-\vec{y_k})f_{\vec{X}}(x)\d\vec{x}
\]
On en déduit:
\[
\vec{y_k} = \frac{\int_{\mathcal{C}^k}\vec{x}f_{\vec{X}}(\vec{x})\d\vec{x}}{\int_{\mathcal{C}^k}f_{\vec{X}}(\vec{x})\d\vec{x}}
\]
\end{proof}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Pour un couple (poids, taille), on peut : Pour un couple (poids, taille), on peut :
\begin{itemize} \begin{itemize}
\item quantifier indépendamment le poids et la taille avec deux quantificateurs scalaires \item quantifier indépendamment le poids et la taille avec deux quantificateurs scalaires
\item les quantifier simultanément avec une quantification vectorielle \item les quantifier simultanément avec une quantification vectorielle
\end{itemize} \end{itemize}
\subsection*{Algorithme de Linde-Buzo-Gray} \subsection{Algorithme de Linde-Buzo-Gray}
\emph{Similaire à l'algorithme $K$-means}
\newcommand{\x}{\underline{x}} \newcommand{\x}{\underline{x}}
Cet algorithme permet de fabriquer une quantification vectorielle optimale (optimum local) pour un ensemble de $K$ points de $\R^N$ : $\x_1 \dots \x_K$ et quantifiés sur $M$ niveaux. Cet algorithme permet de fabriquer une quantification vectorielle optimale (optimum local) pour un ensemble de $K$ points de $\R^N$ : $\x_1 \dots \x_K$ et quantifiés sur $M$ niveaux.
@ -401,28 +480,28 @@ En pratique :
\newpage \newpage
\section{Quantification scalable} \section{Quantification scalable}
% \emph{non traité en 2018-2019}
% L'objectif est de permettre une flexibilité en terme de compression débit-distorsion. Une possibilité est d'avoir recours à un quantificateur scalable.\\
L'objectif est de permettre une flexibilité en terme de compression débit-distorsion. Une possibilité est d'avoir recours à un quantificateur scalable.\\ % On considère une source uniforme sur $[-X_{max};X_{max}]$ quantifiée sur 8 niveaux.
On considère une source uniforme sur $[-X_{max};X_{max}]$ quantifiée sur 8 niveaux. % %\img{0.5}{2/3/2}
%\img{0.5}{2/3/2} % Si on a $K$ échantillons à quantifier, on obtient $3K$ bits.\\
Si on a $K$ échantillons à quantifier, on obtient $3K$ bits.\\ % Les $K$ bits de poids fort sont placés dans un premier paquet.
Les $K$ bits de poids fort sont placés dans un premier paquet. % Les $K$ bits de poids intermédiaire sont placés dans un second paquet.
Les $K$ bits de poids intermédiaire sont placés dans un second paquet. % Les $K$ bits de poids faible sont placés dans un troisième paquet.\\
Les $K$ bits de poids faible sont placés dans un troisième paquet.\\ % Des utilisateurs disposant d'un mauvais canal recevront le premier paquet : la distorsion sera élevée.
Des utilisateurs disposant d'un mauvais canal recevront le premier paquet : la distorsion sera élevée. % Des utilisateurs disposant d'un excellent canal recevront les 3 paquets et auront une distorsion faible.\\
Des utilisateurs disposant d'un excellent canal recevront les 3 paquets et auront une distorsion faible.\\ % \begin{rem}
% Cette méthode permet de réaliser une quantification sans avoir à connaître l'état du canal.
\begin{rem} % \end{rem}
Cette méthode permet de réaliser une quantification sans avoir à connaître l'état du canal.
\end{rem}
\end{document} \end{document}

View file

@ -30,9 +30,53 @@ Avec Matlab, on l'obtient avec :
% \end{lstlisting} % \end{lstlisting}
$\gamma_x(k)$ est maximale en 0 et est égale à l'énergie $\sigma^2$ du signal. $\gamma_x(k)$ est maximale en 0 et est égale à l'énergie $\sigma^2$ du signal.
\section{Codage prédictif en boucle ouverte}
Schéma en boucle ouverte:
\newpage \begin{figure}[H]
\section{Prédicteur optimal à 1 pas} \centering
\begin{tikzpicture}
\sbEntree{E}
\node[above] at (E) {$x_n$};
\sbDecaleNoeudy[5]{E}{mem}
\sbBloc{mem2}{Mémoire}{mem}
\sbBlocL{pred}{Prédiction}{mem2}
\sbRelieryx{E}{mem2}
\sbDecaleNoeudy[-5]{pred}{comp2}
\sbComp{comp}{comp2}
\sbRelierxy{pred}{comp}
\sbRelier{E}{comp}
\sbBlocL{Q}{Quantif}{comp}
\sbBlocL{C}{Codage entropique}{Q}
\sbSortie[5]{S}{C}
\sbRelier[0100..1]{C}{S}
\end{tikzpicture}
\caption{Emetteur en boucle ouverte}
\end{figure}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\sbEntree{E}
\sbBlocL{Dc}{Décodeur entropique}{E}
\sbBlocL{Di}{Desindexation}{Dc}
\sbSumb[7]{comp}{Di}
\sbRelier{Di}{comp}
\sbDecaleNoeudy[5]{comp}{comp2}
\sbBloc{pred}{Prédicteur}{comp2}
\sbBlocL{mem}{Mémoire}{pred}
\sbDecaleNoeudy[-5]{mem}{S}
\sbSortie[5]{X}{S}
\sbRelierxy{pred}{comp}
\sbRelieryx{X}{mem}
\sbRelier{comp}{X}
\end{tikzpicture}
\caption{Recepteur en boucle ouverte}
\end{figure}
Ca marche mais la quantification introduit des erreurs qui peuvent s'accumuler. On s'en sort en réinitialisant le codeur régulièrement.
\subsection{Prédicteur linéaire optimal à 1 pas}
On souhaite prédire la valeur de $X_n$ à partir de la valeur de $X_{n-1}$. On souhaite prédire la valeur de $X_n$ à partir de la valeur de $X_{n-1}$.
@ -62,19 +106,22 @@ Pour la valeur de $\hat{a_1}$ obtenue, on a
$\hat{e}$ est l'énergie de la partie qui n'a pas pu être prédite de $x_1,\dots,x_N$.\\ $\hat{e}$ est l'énergie de la partie qui n'a pas pu être prédite de $x_1,\dots,x_N$.\\
Lorsque le signal est fortement corrélé, $\gamma_x(1)\simeq \gamma_x(0)$ et $\hat{a_1}\simeq 1$.
Le résidu de prédiction a une variance plus faible. Si on le quantifie, il permettra de reconstituer le signal initial avec une distorsion plus faible. Le résidu de prédiction a une variance plus faible. Si on le quantifie, il permettra de reconstituer le signal initial avec une distorsion plus faible.
\newpage \newpage
\section{Prédiction à $p$ pas} \section{Prédiction à $p$ pas}
On cherche à prédire $X_n$ à partir des échantillons précédents $X_{n-1},\dots,X_{n-p}$.
\newcommand{\ap}{\underline{a}} On cherche à prédire $\vec{X_n}$ à partir des échantillons précédents $X_{n-1},\dots,X_{n-p}$.
\newcommand{\Xn}{\underline{X_n}}
\newcommand{\cp}{\underline{c}}
\newcommand{\Rp}{\underline{\underline{R}}}
\[ \hat{X_n} = a_1 X_{n-1} + \dots + a_pX_{n-p} = \ap^T \Xn \quad \text{ avec} \ap^T=(a_1\dots a_p) \text{ et } \Xn^T = (X_{n-1} \dots X_{n-p})\] \newcommand{\ap}{\vec{a}}
\newcommand{\Xn}{\vec{X_n}}
\newcommand{\cp}{\vec{c}}
\newcommand{\Rp}{\vec{R}}
\[ \hat{X_n} = a_1 X_{n-1} + \dots + a_pX_{n-p} = \ap^T \Xn \quad\text{avec}\quad \ap^T=(a_1\dots a_p) \text{ et } \Xn^T = (X_{n-1} \dots X_{n-p})\]
On cherche $\ap$ minimisant On cherche $\ap$ minimisant
\begin{align*} \begin{align*}