Le théorème du codage de source (ou premier théorème de Shannon, ou encore théorème de codage sans bruit) est un théorème en théorie de l'information, énoncé par Claude Shannon en 1948, qui énonce la limite théorique pour la compression d'une source.
Le théorème montre que l'on ne peut pas compresser une chaine de variables aléatoires i.i.d, quand la longueur de celle-ci tend vers l'infini, de telle sorte à ce que la longueur moyenne des codes des variables soit inférieure à l'entropie de la variable source. Cependant, on peut avoir une compression avec une longueur moyenne de code arbitrairement proche de l'entropie lorsque la longueur de la chaîne tend vers l'infini.
Preuves
Preuve du théorème de codage de source
Soit donc
une variable aléatoire, notons
la suite de
réalisations différentes de
(
suivent la même loi que
et sont indépendantes). Le théorème affirme que
, encadrons donc cette limite par deux inégalités.
Preuve d'atteignabilité
Pour
et
, on définit un ensemble de réalisations typiques de
ainsi :
.
On a alors, avec
et
l'entropie :

Puisque
, la loi faible des grands nombres nous assure
.
Pour
assez grand,
et comme
on peut coder cet ensemble avec moins de
bits.
Ainsi
pour tout
et
correspondant assez grand, donc
.
Preuve inverse
Pour
, soit
tel que
, posons
et
tels que
de cette façon :

Maintenant,

Le premier terme tendant vers 0, et par la loi faible des grands nombres le second aussi, on a donc
donc la probabilité de pouvoir encoder
avec
caractères ou moins tend vers 0. Ainsi, à partir d'un
assez grand, elle passera en dessous de
et donc pour tout
on aura
.
Comme ceci est vrai pour tout
:
, ce qui achève d'encadrer la limite souhaitée.
Preuve pour les codes par symboles
Soit
une variable aléatoire et
un code optimal pour
(c'est-à-dire d'espérance de longueur minimale).
Pour tout
, avec
la longueur du code de
, on définit
avec
la taille de l'alphabet sur lequel X prend des valeurs et
une constante de normalisation telle que
. Alors tout d'abord

d'après l'Inégalité de Gibbs.
![{\displaystyle {\begin{aligned}H(X)&\leq -\sum _{i=1}^{n}p_{i}\log _{2}a^{-l(x_{i})}+\sum _{i=1}^{n}p_{i}\log _{2}C\\&=-\sum _{i=1}^{n}p_{i}\log _{2}a^{-l(x_{i})}+\log _{2}C\\&\leq -\sum _{i=1}^{n}-l(x_{i})p_{i}\log _{2}a\\&\leq \mathbb {E} [l(X)]\log _{2}a\\\end{aligned}}}](https://img.franco.wiki/i/b9fff9ef0f7e605b643edc99ca191dd4c9b6656f.svg)
d'après l'Inégalité de Kraft. On a donc bien la borne inférieure.
Comme
, on a 
On peut tenter de fixer
pour avoir
.
Ensuite,
donc
et l'inégalité de Kraft nous donne l'existence d'un code préfixe pour
avec ces longueurs de mots là.
Finalement,
![{\displaystyle {\begin{aligned}E[l(X)]&=\sum p_{i}l(x_{i})\\&<\sum p_{i}(-\log _{a}(p_{i})+1)\\&=\sum -p_{i}{\frac {log_{2}(p_{i})}{log_{2}(a)}}+1\\&={\frac {H(X)}{log_{2}(a)}}+1\end{aligned}}}](https://img.franco.wiki/i/be78a088ceef6f24c405428ff46bb87091cc2e25.svg)
Ce qui nous donne la borne supérieure et achève la preuve.