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*{Algorithme de Lloyd -Max}
\subsection{Algorithme de Lloyd -Max}
\begin{enumerate}
\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é
@ -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 } \]
\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}
\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 :
\begin{itemize}
\item quantifier indépendamment le poids et la taille avec deux quantificateurs scalaires
\item les quantifier simultanément avec une quantification vectorielle
\end{itemize}
\subsection*{Algorithme de Linde-Buzo-Gray}
\subsection{Algorithme de Linde-Buzo-Gray}
\emph{Similaire à l'algorithme $K$-means}
\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.
@ -401,28 +480,28 @@ En pratique :
\newpage
\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.
\end{rem}
% \begin{rem}
% Cette méthode permet de réaliser une quantification sans avoir à connaître l'état du canal.
% \end{rem}
\end{document}

View file

@ -30,9 +30,53 @@ Avec Matlab, on l'obtient avec :
% \end{lstlisting}
$\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
\section{Prédicteur optimal à 1 pas}
\begin{figure}[H]
\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}$.
@ -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$.\\
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.
\newpage
\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}}
\newcommand{\Xn}{\underline{X_n}}
\newcommand{\cp}{\underline{c}}
\newcommand{\Rp}{\underline{\underline{R}}}
On cherche à prédire $\vec{X_n}$ à partir des échantillons précédents $X_{n-1},\dots,X_{n-p}$.
\[ \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
\begin{align*}