Sommaire
Introduction
Introduction au codage multimédia et la compression Codage des images
Format matriciel (bitmap)
Format vectoriel
[Link]@[Link]
IUT SRC Rouen Codage du son
2012-2013 Compression de données
Introduction
Compression sans perte
Compression avec pertes
1/36 2/36
Généralités Forme d’un fichier
I En général, un fichier binaire est constitué d’un en-tête, et des
I Un fichier informatique est un ensemble d’octets, stocké sur un données.
support de stockage de masse. En-tête (header)
I On distingue les fichiers texte (au contenu lisible par l’homme), et
les fichiers binaires.
Données (data)
I La machine ne fait absolument aucune distinction (mais l’OS 1
peut ”présenter” les données d’une certaine façon).
I Le type du fichier peut être reconnu par l’OS par plusieurs
mécanismes : I Par exemple, une image png est identifiée par l’en-tête de 8 octets :
I l’extension du nom du fichier ([Link], [Link], ...) 89 50 4E 47 0D 0A 1A 0A
I Une analyse de son contenu (Mac/Linux only...) suivi de un ou plusieurs ”chunks” (blocs) de données, eux-même
I Un type-MIME, rattaché au fichier en tant que métadonnée (transfert identifiés par un en-tête.
de fichier par mail ou http).
I On parlera de fichier raw (”brut”) en cas de fichier binaire sans
aucun en-tête.
1. OS : Operating System (système d’exploitation)
3/36 4/36
Sommaire Images bitmap vs. vectorielle
I 2 façon de concevoir une image :
Introduction I Image matricielle (bitmap=”champ de pixel”) :
Codage des images
Format matriciel (bitmap)
Format vectoriel
I description du contenu :
”une droite du point (2,2) au point (10,2)”
Codage du son
⇒ 2 types de format de fichier :
I Format ”bitmap” : bmp, gif, png, jpg, tiff, ppm, ...
Compression de données I Format vectoriel : svg (xml), ai (Adobe), ps & eps (postscript), ...
Introduction
Compression sans perte I Mais la visualisation (écran ou papier) sera fera sous forme de pixels.
Compression avec pertes I Selon le type d’image, l’un ou l’autre sera à privilégier :
I photo, dessin complexe : bitmap
I illustration, DAO, CAO, logos, ... : vectoriel
5/36 6/36
Images binaires Images en niveau de gris (”grayscale”)
I Principe 1 pixel = 1 octet (256 valeurs)
I Principe : un pixel = 1 bit I Noir → 0
I Blanc → 255
Source : J. Landré
Source : J. Landré
8/36 9/36
Images couleurs Notion d’espace de couleur
I Une couleur réelle correspond à un signal complexe, composé de
I Principe 1 pixel = 3 pixels RGB = 3 x 1 octet
plusieurs longueurs d’ondes.
I on parle d’espace ”16 millions de couleurs” : I Les machines en font une visualisation dans un espace de couleur
23×8 = 224 = 16.777.216
donné :
I Ecrans : espace RGB (Red Green
Blue)
I Impression : espace
Jaune-Cyan-Magenta
I De multiples autres espaces de couleurs peuvent être utilisés en
interne.
I TSL (Teinte-Saturation-Luminance), HSV en anglais
I Lab
Source : J. Landré
I ...
10/36 11/36
Problématique du bitmap Aliasing d’image matricielle
I En cas d’agrandissement de l’image (”zoom”), l’image conserve sa I On peut compenser en procédant à un suréchantillonnage (aliasing)
résolution initiale, et des déformations invisibles à petites échelle
deviennent visible.
I Les formats vectoriels éliminent cet inconvénient :
12/36 13/36
Taille des images de type bitmap Format vectoriel
I Le poids des images est directement lié à leur résolution.
I Une image 1000 x 1000 pixels contient... 1 million de pixels. I Le fichier stocke l’image sous forme d’informations géométriques.
I Si on divise par 2 la résolution (500 x 500), elle en contiendra 4 fois I L’affichage ou l’impression passe par un moteur de rendu, qui va
moins !
”dessiner” les pixels à l’échelle désirée.
I Ceci est important dans un contexte ”web”, ou chaque image est
I Formats libre : SVG (xml)
chargée avec la page.
I Logiciels : Inkscape, Adobe Illustrator, ...
I Remarques : les formats d’images permettent parfois une
compression des données.
14/36 16/36
Format SVG Sommaire
I Les informations sont stockées sous forme lisible dans un fichier
XML : Introduction
<marker,
inkscape:stockid ="Arrow1Mend"
Codage des images
orient ="auto" Format matriciel (bitmap)
refY="0" refX="0" Format vectoriel
id="Arrow1Mend-7-65"
style ="overflow:visible"> Codage du son
<path
inkscape:connector −curvature="0"
id="path3276-4-7" Compression de données
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" Introduction
style ="fill-rule:evenodd;stroke:#000000;stroke- Compression sans perte
width:1pt;marker-start:none" Compression avec pertes
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
17/36 18/36
Comment ? Codage PCM
I Un fichier audio non-compressé (format .WAV) code les échantillons
I Le son est un signal monodimensionnel, qui est stocké sous forme en PCM (Pulse Coded Modulation).
numérique : I Par exemple, le signal suivant :
I CD (qualité hifi) : échantillonnage à 44,1 kHz, quantification linéaire
sur 16 bits, sur 2 canaux (stéréo).
I téléphone (bande limitée à 300-3,4 kHz) : échantillonnage à 8000 Hz,
quantification logaritmique sur 8 bits.
I Problème du débit : CD : en 1s, il faut transmettre 44100 x 2 octets
x 2 canaux = 176 ko = 1,4 Millions de bits / s. !
I Apparition de techniques de compression avec pertes dédiées à
l’audio (mp3, aac, ogg, ...)
va être codé par la séquence de valeurs :
0 - 3 - 6 - 8 - 9 - 8 - 6 - 3 ...
19/36 20/36
Sommaire Compression
Définition
Introduction I Compression : opération informatique qui consiste à transformer une
suite de bits A en une suite de bits B plus courte, contenant les
Codage des images mêmes informations.
Format matriciel (bitmap) I Décompression : opération informatique inverse, permettant de
Format vectoriel retrouver l’information d’origine à partir de la suite de bits B.
Codage du son
Compression de données
Introduction
Compression sans perte
Compression avec pertes
Remarque : Ces opérations sont parfois transparentes pour l’utilisateur
final. Exemple : lecture d’une vidéo : la décompression est intégrée dans
le lecteur de média.
21/36 23/36
Comment compresser ? Compression sans perte
I Il n’existe pas de méthode universelle, pour avoir les meilleurs
résultats, on doit considérer :
I On veut pouvoir récuperer l’information dans toute son intégrité :
I La nature des données (image, texte, son, ...)
I Le contexte général : quelle qualité attendue ? Combien de temps une comparaison bit-à bit doit donner donner un résultat identique.
accorde-t-on à la compression ? à la décompression ? I Trois techniques principales :
I On distingue : 1. compression par encodage des répétition de motifs (RLE),
I Compression sans pertes : on peut retrouver l’information de départ 2. compression par codage de Huffman,
exactement. 3. compression par dictionnaire.
I Compression avec pertes : on accepte une dégradation de
l’information, plus ou moins perceptible.
24/36 26/36
1 - Run Length Encoding (RLE) 1 - Run Length Encoding (RLE)
I Idée générale : en cas de répétition d’une valeur, on stocke :
I Le nombre de répétition
I La valeur répétée Conclusion
I Exemple 1 : soit le message AAAAAAAAAAAAAAA de longueur 15 ; I Facile à mettre en oeuvre.
on va le coder par les deux valeurs 15-A I N’est efficace que pour des des données possédant de nombreux
⇒ Taux de compression = 15/2 = 7, 5
éléments consécutifs redondants, notamment les images possédant
I Exemple 2 : soit le message AAAAAAbbbXXXXXt de large parties uniformes.
on va le coder par les 8 valeurs : 6-A 3-b 5-X 1-t
⇒ Taux de compression = 14/8 = 1, 75 I En pratique : format d’images BMP (Windows), Fax (CCIT)
I Exemple 3 : soit le message ABCDEF
on va le coder par les 12 valeurs : 1-A 1-B 1-C 1-D 1-E 1-F
⇒ Taux de compression = 6/12 = 0, 5 ! ! !
27/36 28/36
2 - Codage de Huffman 3 - Algorithmes de type Lempel-Ziv-Welch
I Principe général : on construit au fur et à mesure de la lecture du
fichier un dictionnaire, via une fenêtre glissante.
I Le code est déterminé à partir d’une estimation des probabilités
d’apparition des symboles de source, un code court étant associé
aux symboles de source les plus fréquents (voir cours / codage).
I Inconvénient : il faut faire au préalable une lecture complète des
(en général, la fenêtre est de taille fixe)
données à compresser pour contruire la table des fréquences.
I Ce dictionnaire référence chaque mot rencontré, et si le mot est déja
I Solution : codage de Huffman adaptatif : on recalcule la table des
dans le dictionnaire, alors l’algorithme le remplace par sa position
fréquences et on modifie le code en temps réel.
dans le dictionnaire.
I Le dictionnaire n’est pas transmis avec le fichier encodé : le
décompresseur va le reconstruire de la même façon.
I De nombreuses variantes existent (LZ77, LZ78, LZW, LZMA, ...)
29/36 30/36
3 - Algorithmes de type Lempel-Ziv-Welch Principe
Conclusion
I Très efficace, pour tout type de fichiers. I On admet ici que l’information reste pertinente malgré une
I Implémenté dans de nombreux logiciels. dégradation de son contenu
I Paramétrable : ratio temps/taux de compression réglable. I Applications : image, son (pas le texte ! ! !)
Compression avec pertes pour le texte
I En pratique : format zip, rar, 7z, etc.
Qll st l clr d chvl blnc d’hnr IV
I Application : Le format d’image png implémente une compression
qui couple une compression de type LZ avec un codage de Huffman.
31/36 33/36
Images : compression JPEG Images : compression JPEG
I Adapté aux fichiers de type ”photo”
I Fondement théorique : transformation DCT (Discrete Cosine
Transform). I Pas adapté aux images comportant beaucoup de zones homogènes
I Facteur de compression réglable en %. (”aplats”), type logo ou schémas.
I Exemples (résolution : 190 x 190 ) :
Sans compression Compression Compression q=2
q=10
Sans compression, Compression q=50, Compression q=10,
taille=53 ko taille=5,3 ko taille=1,7 ko
34/36 35/36
Son : compression MP3
I Nom exact : MPEG-1/2 Layer 3, correspond à la spécification
sonore du standard vidéo MPEG-1/MPEG-2.
(MPEG : Moving Picture Experts Group)
I Utilise les imperfections du système auditif humain pour réduire le
volume des informations.
I Utilise l’effet de masque :
I Masque fréquentiel : l’audition humaine analyse le son perçu en
bandes de fréquences. A l’intérieur de ces bandes, un signal peut en
masquer un autre d’intensité moins élevée.
I Masque temporel : Un signal d’intensité elevée va masquer les sons
qui suivent pendant quelques ms.
⇒ La compression MP3 supprime/atténue ces signaux qui sont
masqués par d’autres.
36/36