ASCII : Code de 7 bits pour les caractères anglais (0-127).
UTF-8 : Encodage variable pour tous les caractères Unicode.
- Évaluer l'efficacité du codage
- Comparer la redondance
- Analyser la compatibilité
- Considérer l'universalité
ASCII : 5 caractères × 8 bits = 40 bits
UTF-8 : 5 caractères × 8 bits = 40 bits (compatibilité ASCII)
Pour "café" : ASCII = impossible, UTF-8 = 40 bits
7 bits fixes, 128 caractères, efficacité maximale pour anglais
Variable (1-4 octets), compatible ASCII, universel
Simple, compact, rapide
International, extensible, compatible
Langue utilisée, caractères supportés
Bits par caractère, redondance
Support par les systèmes existants
| Caractéristique | ASCII | UTF-8 |
|---|---|---|
| Longueur | Fixe (7 bits) | Variable (1-4 octets) |
| Caractères | 128 | 1 million+ |
| Efficacité | Maximale | Variable |
| Universalité | Faible | Élevée |
• ASCII : Meilleure efficacité pour caractères anglais
• UTF-8 : Meilleure universalité pour toutes les langues
• Compromis : Efficacité vs compatibilité
Code Huffman : Code de longueur variable basé sur la fréquence des symboles.
Code fixe : Chaque symbole codé sur le même nombre de bits.
Code fixe (2 bits) : A=00, B=01, C=10, D=11
Code Huffman : A=0, B=10, C=110, D=111
Longueur moyenne Huffman : 0.5×1 + 0.3×2 + 0.15×3 + 0.05×3 = 1.7 bits
Longueur variable, optimal pour la distribution
Simple à implémenter, décodage rapide
Approche l'entropie de la source
Complexité de compression/décompression
Calculer la probabilité de chaque symbole
Combiner les symboles les moins fréquents
Parcours de l'arbre pour générer les codes
Code fixe : 2 bits/symbole (tous égaux)
Code Huffman : 1.7 bits/symbole en moyenne
Taux de compression : (2-1.7)/2 = 15%
Gain d'efficacité : 15% de réduction
• Code Huffman : Approche l'entropie de la source
• Optimalité : Meilleur pour distributions inégales
• Complexité : Plus grande que les codes fixes
Parité : Bit supplémentaire pour détecter une erreur simple.
CRC : Division polynomiale pour détection robuste.
Parité : 1 bit de redondance, détection d'une erreur
CRC : Plusieurs bits, détection multiple
Hamming : Correction d'une erreur, détection de deux
1 bit, simple, détection 1 erreur
Somme, modéré, détection multiple
Division polynomiale, robuste, détection multiple
Correction 1 erreur, détection 2 erreurs
Niveau de fiabilité requis, bande passante disponible
Redondance, complexité, performances
Parité pour simple, CRC pour robuste, Hamming pour correction
| Stratégie | Redondance | Détection | Correction | Complexité |
|---|---|---|---|---|
| Parité | 1 bit | 1 erreur | Non | Faible |
| CRC | 4-32 bits | Multiple | Non | Moyenne |
| Hamming | Log(n) | 2 erreurs | 1 erreur | Moyenne |
• Parité : Simple mais limité
• CRC : Robuste, utilisé dans les réseaux
• Hamming : Correction d'erreurs, pour mémoires critiques
Compromis : Équilibre entre la quantité d'information utile et la protection contre les erreurs.
Haute efficacité : Moins de redondance, plus d'erreurs possibles
Haute sécurité : Plus de redondance, moins d'erreurs mais plus de bande passante
Moins de bits de contrôle, plus vulnérable
Beaucoup de bits de contrôle, plus robuste
Fonction du taux d'erreur du canal
Limite supérieure de transmission fiable
Taux d'erreur, bande passante, type d'erreurs
Fiabilité requise, débit minimum
Équilibre entre efficacité et sécurité
Pour canal peu bruité : Maximiser l'efficacité
Pour canal très bruité : Maximiser la sécurité
Compromis : Minimiser le taux d'erreurs résiduel
Théorème de Shannon : Limite fondamentale
• Théorème de Shannon : Limite supérieure de transmission fiable
• Adaptation : Stratégie selon les caractéristiques du canal
• Optimisation : Trouver le bon équilibre selon les contraintes
Entropie de Shannon : Mesure de l'information moyenne contenue dans une source.
H(X) = -[0.5×log₂(0.5) + 0.3×log₂(0.3) + 0.15×log₂(0.15) + 0.05×log₂(0.05)]
H(X) = -[0.5×(-1) + 0.3×(-1.737) + 0.15×(-2.737) + 0.05×(-4.322)]
H(X) = 0.5 + 0.521 + 0.411 + 0.216 = 1.648 bits/symbole
Limite inférieure de la longueur moyenne d'un code
Entropie maximale
Entropie plus faible, compression possible
Approche l'entropie de la source
p(A)=0.5, p(B)=0.3, p(C)=0.15, p(D)=0.05
H(X) = -∑ p(xi) × log₂(p(xi))
Et faire la somme
Entropie de la source : 1.648 bits/symbole
Code Huffman optimal : ~1.7 bits/symbole
Limite théorique pour la compression
Indicateur de l'information moyenne par symbole
• Limite inférieure : Aucun code ne peut faire mieux que l'entropie
• Compression : Plus efficace pour distributions inégales
• Optimalité : Code de Huffman approche cette limite
- Compression : Huffman, LZW, arithmetic coding
- Détection d'erreurs : Parité, checksum, CRC
- Correction d'erreurs : Hamming, Reed-Solomon, LDPC
- Chiffrement : Symétrique, asymétrique, hachage
- L'entropie est la limite inférieure de la longueur moyenne d'un code
- Le compromis entre efficacité et sécurité dépend des besoins applicatifs
- Les codes optimaux approchent l'entropie de la source
- La redondance est nécessaire pour la détection/correction d'erreurs
- Le choix de la stratégie dépend des contraintes de l'application
- Efficacité : Taux de compression, bits utiles/transmis
- Robustesse : Capacité à détecter/corriger les erreurs
- Complexité : Temps de calcul, ressources nécessaires
- Compatibilité : Support par les systèmes existants
- Sécurité : Protection contre les attaques
- Audio/vidéo : Compression avec perte (MP3, JPEG)
- Texte : Compression sans perte (ZIP, PNG)
- Réseaux : Détection d'erreurs (CRC, parité)
- Mémoires : Correction d'erreurs (ECC)
- Communications : Chiffrement et authentification