cours-m1-eea/455-Codage_Sources/TD/TD6/TD6.tex

212 lines
7.6 KiB
TeX
Raw Normal View History

2019-01-15 15:56:28 +01:00
\documentclass{article}
\input{../../preambule/preambule}
\newcommand{\nom}{TD6 : Allocation optimale de bits}
\renewcommand{\nomentete}{UE455 - \nom}
\begin{document}
\titre{\nom}
\cacededi{C'est bizarre, il a dit "reconnaissance de formes" et on l'a pas entendu jouir derrière.}{Tom Colinot}
\section{Transformation unitaires, gain de codage}
\subsection{Quantification sans transformation}
\newcommand{\y}{\underline{y}}
On considère une source $X$ dont les réalisations sont groupées en $N$ composantes considérées comme générées par une source vectorielle $Y$.
\begin{center}
\begin{tabular}{c|cc}
$X_i$ & $x_1\dots x_N$ & $x_{N+1} \dots x_{2N}$ \\
\hline
$Y_i$ & $\y_1$ & $\y_2$
\end{tabular}
\end{center}
\begin{enumerate}\setlength{\itemsep}{5mm}
\item On dispose de $NR$ bits par vecteur de $N$ composantes, donc on utilise $R$ bits par composante.
\item $D_Y = \frac{1}{N} E(||\y_k-\tilde{\y_k}||^2) = D_X$.
\end{enumerate}
\subsection{Quantification après transformation}
\newcommand{\tv}{\underline{t}}
\newcommand{\Uu}{\underline{\underline{U}}}
\newcommand{\Id}{\underline{\underline{I}}}
\begin{enumerate}\setlength{\itemsep}{5mm}\setcounter{enumi}{2}
\item On fait une transformation sur $\y_k$ :
\[ \tv_k = \Uu^T \y_k \avec \Uu.\Uu^T = \Id_N\]
\imgt{1}
\begin{align*}
D_T & = \frac{1}{N}E(||\tv_k - \tilde{\tv_k}||^2 ) \\
& = \frac{1}{N} E(||\Uu^T \y_k - \Uu^T \tilde{\y_k}||^2) \\
& = \frac{1}{N} E((\Uu^T(\y_k-\tilde{\y_k}))^T.(\Uu^T(\y_k-\tilde{\y_k}))) \\
& = \frac{1}{N}E((\y_k - \tilde{y_k})^T \Uu.\Uu^T(\y_k - \tilde{y_k})) \\
& = \frac{1}{N}E(||\y_k - \tilde{\y_k}||^2) \\
& = D_Y
\end{align*}
\item \[NR = \sum_{l=1}^N R_l\]
\item \[D_T = \frac{1}{N} \sum_{l=1}^N D_{t,l}(R_l) = \frac{1}{N} \sum_{i=1}^N \epsilon_{t,l}\sigma^1_{t,l} 2^{-2R_l} \]
\item On peut jouer sur $R_i, \forall i= 1, \dots N$ pour minimiser $D_T$ sous la contrainte $\sum R_l = NR$.\\
$D_T$ est une fonction convexe, donc la condition d'extremum est une condition de minimum.\\
On utilise le lagrangien :
\[ J(R_1, \dots, R_N, \ld) = \frac{1}{N} \sum_{l=1}^N \epsilon_{t,l} \sigma_{t,l}^2 2^{-2R_l} + \ld(\sum_{l=1}^N R_l - NR) \]
\item Les conditions nécessaires pour minimiser $J(R_1, \dots, R_N, \ld)$ sont donc :
\[ \acc{ \drond{J}{R_l} & = 0, \quad \forall l = 1, \dots, N }{ \drond{J}{\ld} & = 0, \quad \forall \ld \in \{\ld\} \quad \text{Lolilonche}} \]
\item \begin{align*}
\drond{J}{R_l} = 0 & \Leftrightarrow \frac{1}{N} \epsilon_{t,l} \sigma_{t,l}^2 (-2\ln2)2^{-2R_l} + \ld = 0 \\
& \Leftrightarrow 2^{-2R_l} = \frac{N\ld}{\epsilon_{t,l} \sigma_{t,l}^2 (2\ln2)}, \quad \forall l = 1, \dots, N\\
\drond{J}{\ld} = 0 & \Leftrightarrow \sum_{l=1}^N R_l = NR
\intertext{On en déduit donc que}
2^{-2\sum R_l} & = \prod_{l=1}^N \frac{N\ld}{\epsilon_{t,l} \sigma_{t,l}^2 (2\ln2)} \\
2^{-2NR} & = \prod_{l=1}^N \frac{(N\ld/(2\ln2))}{\epsilon_{t,l} \sigma_{t,l}^2} \\
2^{-2NR} & = \frac{(N\ld/(2\ln2))^N}{\prod_{l=1}^N\epsilon_{t,l} \sigma_{t,l}^2} \\
(N\ld/(2\ln2)) & = 2^{-2R} (\prod_{l=1}^N\epsilon_{t,l} \sigma_{t,l}^2)^{1/N} \\
\ld & = \frac{2\ln2}{N}2^{-2R} (\prod_{l=1}^N\epsilon_{t,l} \sigma_{t,l}^2)^{1/N}
\intertext{ Ainsi, en reprenant l'expression trouvée pour $2^{-2R_l}$}
R_l & = -\frac{1}{2} \log_2 \frac{(N\ld/(2\ln2))}{\epsilon_{t,l} \sigma_{t,l}^2} \\
& = \frac{1}{2} \log_2 \frac{\epsilon_{t,l} \sigma_{t,l}^2}{2^{-2R}(\prod_{l=1}^N\epsilon_{t,l} \sigma_{t,l}^2)^{1/N}} \\
R_l & = R + \frac{1}{2} \log_2 \frac{\epsilon_{t,l} \sigma_{t,l}^2}{2^{-2R}(\prod_{l=1}^N\epsilon_{t,l} \sigma_{t,l}^2)^{1/N}}
\end{align*}
\item \begin{align*}
D_{t,l}(R_l) & = \epsilon_{t,l} \sigma_{t,l}^2 2^{-2R_l} \\
& = \epsilon_{t,l} \sigma_{t,l}^2 \frac{N\ld}{\epsilon_{t,l} \sigma_{t,l}^2 (2\ln2)} \\
D_{t,l}(R_l)& = \frac{N\ld }{2\ln2} \quad \text{constante}
\end{align*}
\item \begin{align*}
D_T^* & = \frac{1}{N} \sum_{l=1}^N D_{t,l}(Rl) \\
& = \frac{1}{N} N \frac{N\ld}{2\ln2} \\
& = \frac{N\ld}{2\ln2} \\
D_T^* & = 2^{-2R} (\prod_{l=1}^N\epsilon_{t,l} \sigma_{t,l}^2)^{1/N}
\end{align*}
\item \[ D = \frac{1}{N} \sum_{l=1}^N \epsilon_{t,l} \sigma_{t,l}^2 2^{-2R} \]
\item \[G_T = \frac{\frac{1}{N}\sum_{l=1}^N \epsilon_{t,l} \sigma_{t,l}^2}{(\prod_{l=1}^N \epsilon_{t,l} \sigma_{t,l}^2)^{1/N}} \]
\end{enumerate}
\begin{flushright}
Si tu n'as pas encore vomi c'est le moment, je te laisse un bout de page blanche.
\end{flushright}
\vspace{8cm}
\subsection{Applications numériques}
Le chinois a \emph{rage quit}.
\newpage
\section{Techniques de codage d'images}
\subsection{Codage sans pertes}
\begin{enumerate}\setlength{\itemsep}{5mm}
\item On estime d'abord les probabilités d'apparition :
\begin{center}
\begin{tabular}{c|c|c}
Symbole & Nombre doccurrences & Probabilité estimée \\
\hline
4 & 1 & 1/16 \\
6 & 3 & 3/16 \\
8 & 7 & 7/16 \\
10 & 5 & 5/16
\end{tabular}
\end{center}
L'estimation de l'entropie est donc :
\[ \hat{H} = -\sum_i p_i \log_2 p_i \approx 1.749 \text{bpp} \]
\item Il n'est pas possible d'obtenir un débit de 0.5 bpp $< \hat{H}$.
\end{enumerate}
\subsection{Codage avec pertes - Quantification}
\begin{enumerate}\setlength{\itemsep}{5mm}\setcounter{enumi}{2}
\item $E(X) = 4\frac{1}{16} + 6\frac{3}{16} + 8\frac{7}{16} + 10\frac{5}{16} = 8$
$Var(X) = E((X-E(X))^2) = \dots = 3$
\item $D(R) = \sigma_X^2 2^{-2R}$
\img{0.5}{2}
\item $RSB_{dB} \approx 6R$ donc $R=1 \text{bpp} \Rightarrow RSB_{dB} = 6dB$. Pour $R=0.5\text{bpp}$, on aurait $RSB_{dB}=3dB$.
\item On choisit le quantificateur suivant :
\img{0.5}{3}
\[ \hat{X} = \acc{ \mu + \Delta & \si X \geq \mu }{ \mu - \Delta & \sinon} \]
\begin{align*}
D & = \int_{-\infty}^{+\infty} ( X-\hat{X})^2 f_X(x) dx \\
& = 2 \int_{\mu}^{+\infty} (X-\mu-\Delta)^2 f_X(x) dx
\intertext{Changement de variables $z=x-\mu$}
D & = 2\int_0^{+\infty} (z-\Delta)^2 f_Z(z) dz \quad \avec f_Z(z) = \frac{1}{\sqrt{2\pi\sigma_X^2}}\exp(-\frac{z)^2}{2\sigma_X^2}) \\
D & = 2\int_0^{\infty} z^2 f_Z(z) dz + 2\Delta^2 \int_0^{\infty} f_Z(z)dz - 4 \Delta\int_0^{\infty} zf_Z(z)dz \\
& = \sigma_X^2 + \Delta^2 - 4 \Delta\int_0^{\infty} zf_Z(z)dz
\intertext{Or,}
\int_0^{\infty} zf_Z(z)dz & = \int_0^{+\infty} \frac{1}{\sqrt{2\pi\sigma_X^2}}\exp(-\frac{z)^2}{2\sigma_X^2}) dz \\
& = \frac{1}{2} \int_0^{\infty} \frac{1}{\sqrt{2\pi\sigma_X^2}}\exp(\frac{-y}{2\sigma_X^2}) dy \quad \avec y=z^2\\
& = \frac{1}{2} \frac{2\sigma_X^2}{\sqrt{2\pi\sigma_X^2}} = \frac{1}{2} \sqrt{\frac{2\sigma_X^2}{\pi}}
\intertext{Donc}
D(\Delta) = \Delta^2 - 2\sqrt{\frac{2\sigma_X^2}{\pi}} \Delta + \sigma_X^2
\end{align*}
Ainsi,
\begin{align*}
\drond{D}{\Delta} = 0 & \Rightarrow \Delta^* = \sqrt{\frac{2\sigma_X^2}{\pi}} \approx 1.4 \\
& \Rightarrow D^* = \frac{2\sigma_X^2}{\pi} - 2\frac{2\sigma_X^2}{\pi} + \sigma_X^2 = \sigma_X^2(1-\frac{2}{\pi})\\
& \Rightarrow RSB^* = \frac{\sigma_X^2}{D^*} = \frac{1}{1-\frac{2}{\pi}} \approx 2.75
& \Rightarrow RSB_{dB}^* = 10\log_{10}2.75 \approx 4.396 \text{dB} < 6 \text{dB}
\end{align*}
\item Pour avoir $R=0.5$ bpp on doit utiliser un quantificateur vectoriel.
\end{enumerate}
\subsection{Codage avec perte - DPCM}
\newcommand{\Aa}{\underline{\underline{A}}}
\newcommand{\A}{\underline{A}}
\begin{enumerate}\setlength{\itemsep}{5mm}\setcounter{enumi}{7}
\item \begin{align*}
\Aa & = [ \A_1 \A_2 \A_3 \A_4 ] \\
\A_l & = [\A_1^T \A_2^T \A_3^T \A_4^T] \\
& = [6,4,6,8,6,8,10,8,8,10,10,8,10,8,10]
\end{align*}
\item Soit $E(y) = 0, \y=[y_1,\dots y_N]$
$\hat{y_{i+1}} = \alpha y_i, \quad \alpha^* = \frac{\gamma_Y(1)}{\gamma_Y(0)}$
$\underline{B}_L = \A_l - 8[ 1, 1, \dots 1 ] = [-2, -4, -2, \dots]$
$\gamma_X(0) = \sigma_X^2 = 3$
$\gamma_X(1) = \frac{1}{N} \sum_{i=1}^{N-1} B_l(i+1) B_L(i) = 5/4$
$\alpha \approx 0.4$
$\y(i) = \alpha B_L(i-1) + 8$
La variance diminue un peu.
\end{enumerate}
\end{document}