Activités
Transcription
Activités
Informatique et Sciences du Numérique 3 : LA COMPRESSION DE DONNEES Représentation de l’information Algorithmique Langages et programmation Architectures matérielles CONNAISSANCES ABORDEES Numérisation : Coder sous forme d'un code standard ou d'une liste de valeurs numériques Numérisation : Numériser une image sous forme d'un tableau de valeurs numériques Formats : Identifier quelques formats Formats : Choisir un format approprié PROBLEMATIQUE Comprendre comment est codé une information numérique et l’intérêt de compresser ces données CONDITIONS DE DEROULEMENT DE L’ACTIVITE Phases de travail Objectifs A) Mise en situation Comprendre la problématique de la compression de données à travers l’exemple de la photographie numérique Etude d’une documentation constructeur B) Activités Comprendre le codage d’une image Comprendre le contenu de l’entête d’un fichier Calculer la taille d’un fichier image Calculer le taux de compression d’un format JPEG. C) Synthèse Rendre par écrit un compte rendu synthétique de la séance Rédiger un compte-rendu LOGICIELS UTILISES - Editeur hexadécimal HexEdit Neo 5.12 Editeur d’images GIMP 2.6.10 DUREE : 1 Séance Activités Informatique et Sciences du Numérique 1. PROBLEMATIQUE Il est dorénavant courant de pouvoir faire une photo numérique avec une résolution de capteur de plus de 10 Méga pixels. Extrait du produit EOS 450 D de Canon http://www.canon.fr/For_Home/Product_Finder/Cameras/Digital_SLR/EOS_450D/ En format brut (format RAW), un pixel couleur (RVB = Rouge Vert Bleu) peut être codé et stocké sur trois Octets (1 octet pour chacune des trois couleurs). A partir de la doc constructeur de l’appareil photo, estimer la taille d’une photographie couleur avec la résolution maximum du capteur. L’appareil est équipé d’une carte mémoire de 16 GBytes (16 GOctets). Combien de photos est-il possible de stocker ? La taille moyenne d’un disque dur de PC est d’environ 500 GO. Combien de photos est-il possible de stocker sur ce support ? Une connexion Internet de bonne qualité ADSL est estimée à 1 Mo/s. Quel temps serait-il nécessaire pour transférer une photo ? Conclure sur l’utilité de la compression. Informatique et Sciences du Numérique 2. ACTIVITE : CODAGE DE L’IMAGE CODAGE D’UN PIXEL Avec le logiciel GIMP, créer une image de 1 pixel par 1 pixel sur fond blanc. Utiliser plusieurs fois la touche « + » pour zoomer. Sauvegarder cette image en format brut (.raw) en utilisant enregistrer sous, puis sélectionner le type de fichier et données d’images RAW. Constater, dans Image puis propriétés de l’image que la taille du fichier est de 3 octets. La couleur d’un pixel est obtenu est combinant les trois couleurs : RVB (Rouge, Vert et Bleu). Chacune de ces couleur est codée sur 1 octet soit 256 niveaux de coloration. Combien de combinaisons de couleur est-il possible d’obtenir sur un pixel codé en RVB sur 3 Octets ? Glisser votre fichier enregistré préalablement en données d’image RAW dans le logiciel HexEdit Vérifier que le contenu de votre fichier est bien constitué de trois octets. Le code hexadécimal de gauche donne l’intensité affecté pour la composante ROUGE (255 en décimal), celui du milieu la composante VERTE et celui de droite la composante BLEUE. Par synthèse additive, vous obtenez un pixel BLANC. Informatique et Sciences du Numérique CODAGE D’UN ENSEMBLE DE PIXELS Avec le logiciel GIMP, créer une image de 1 pixel de hauteur et 6 pixels de largeur sur fond blanc. Utiliser l’outil Crayon avec une brosse de type Circle (01) pour créer les pixels. Générer l’image pour obtenir une suite : Rouge, Vert, Jaune, Bleu, Noir et Blanc. Enregistrer sous le nom « couleur » cette image en RAW. Noter la taille de cette nouvelle image. Dans Image, puis Mode, choisir le mode niveaux de gris. Enregistrer sous le nom « gris » cette image en RAW. Noter la taille de cette nouvelle image. CODAGE BITMAP Bitmap, connu aussi sous son abréviation BMP, est un format d’image matricielle ouvert développé par Microsoft et IBM. C’est un des formats d’images les plus simples à développer et à utiliser pour programmer. Il est lisible par quasiment tous les visualiseurs et éditeurs d’images. SOURCE : Wikipédia Enregistrer votre image « couleur » sous l’extension .bmp et noter la taille du fichier. Pourquoi la taille du fichier (74 octet) est-elle différente et surtout plus importante qu’un format RAW ? Glisser votre fichier dans HexEdit et tenter une explication. A partir du site http://www.commentcamarche.net/contents/video/format-bmp.php3 sur l’entête d’un fichier BitMap et du code HexEdit, retrouver l’information qui correspond à la taille du fichier. Retrouvez-vous bien les 74 Octets attendus ? Informatique et Sciences du Numérique 3. ACTIVITE : TAUX DE COMPRESSION JPEG http://www.commentcamarche.net/contents/video/jpeg-jpg.php3 Avec le logiciel GIMP, créer une image de 800 pixels de hauteur et 800 pixels de largeur sur fond blanc avec un grand point noir. Enregistrer en format RAW puis en format JPEG (options standard). Evaluer dans ce cas le taux de compression du format JPEG. Informatique et Sciences du Numérique 4. ACTIVITE : EXERCICE SUR LE CODAGE BITMAP Ci-joint le fichier hexa d’un dessin (une œuvre) enregistré en format bitmap. Aucune autre information n’est donnée : A partir du fichier, donner les caractéristiques suivantes : - Taille du fichier, Largeur et longueur de l’image en pixels, Taille totale de l’image, Nombre de couleurs utilisé à l’enregistrement du fichier, Compression utilisée à l’enregistrement. Sous HEXEDIT, la lecture du code hexa se fait à l’envers. Par exemple, un ensemble de 4 octets se lira 0000a6ca soit 42698 en décimale. 5. POUR ALLER PLUS LOIN … Le format bitmap autorise une compression RLE. Décrire succinctement la méthode utilisée par une méthode RLE en donnant quelques exemples pour le codage de texte à répétition. Informatique et Sciences du Numérique 6. SITOGRAPHIE Entête des fichiers BitMap : http://www.commentcamarche.net/contents/video/format-bmp.php3 Compression de données http://neocortex.chez.com/projet/La%20Compression%20de%20donn%E9e.pdf Convertisseur hexa, décimal, binaire : http://sebastienguillon.com/test/javascript/convertisseur.html POUR ALLER PLUS LOIN : Codage de Huffman : http://www.commentcamarche.net/contents/video/huffman.php3#q=huffman&cur=1&url=%2F Compression RLE : http://www.commentcamarche.net/contents/video/compimg.php3 Compression de Lempel-Ziv http://www.commentcamarche.net/contents/video/lzw.php3 Informatique et Sciences du Numérique ANNEXE 1 : LE FORMAT BMP Extrait du site : http://www.commentcamarche.net/contents/video/format-bmp.php3 Le format BMP est un des formats les plus simples développé conjointement par Microsoft et IBM, ce qui explique qu'il soit particulièrement répandu sur les plates formes Windows et OS/2. Un fichier BMP est un fichier bitmap, c'est-à-dire un fichier d'image graphique stockant les pixels sous forme de tableau de points et gérant les couleurs soit en couleur vraie soit grâce à une palette indexée. Le format BMP a été étudié de telle manière à obtenir un bitmap indépendant du périphérique d'affichage (DIB, Device independent bitmap). La structure d'un fichier bitmap est la suivante : • • • • En-tête du fichier (en anglais file header) En-tête du bitmap (en anglais bitmap information header, appelé aussi information Header) Palette (optionnellement) Corps de l'image Entête du fichier L'entête du fichier fournit des informations sur le type de fichier (Bitmap), sa taille et indique où commencent les informations concernant l'image à proprement parler. L'entête est composé de quatre champs : • • • • La signature (sur 2 octets), indiquant qu'il s'agit d'un fichier BMP à l'aide des deux caractères. o BM, 424D en hexadécimal, indique qu'il s'agit d'un Bitmap Windows. o BA indique qu'il s'agit d'un Bitmap OS/2. o CI indique qu'il s'agit d'une icone couleur OS/2. o CP indique qu'il s'agit d'un pointeur de couleur OS/2. o IC indique qu'il s'agit d'une icone OS/2. o PT indique qu'il s'agit d'un pointeur OS/2. La taille totale du fichier en octets (codée sur 4 octets) Un champ réservé (sur 4 octets) L'offset de l'image (sur 4 octets), en français décalage, c'est-à-dire l'adresse relative du début des informations concernant l'image par rapport au début du fichier Entête de l'image L'entête de l'image fournit des informations sur l'image, notamment ses dimensions et ses couleurs. L'entête de l'image est composé de quatre champs : • • La taille de l'entête de l'image en octets (codée sur 4 octets). Les valeurs hexadécimales suivantes sont possibles suivant le type de format BMP : o 28 pour Windows 3.1x, 95, NT, ... o 0C pour OS/2 1.x o F0 pour OS/2 2.x La largeur de l'image (sur 4 octets), c'est-à-dire le nombre de pixels horizontalement (en anglais width) Informatique et Sciences du Numérique • • • • • • • • • La hauteur de l'image (sur 4 octets), c'est-à-dire le nombre de pixels verticalement (en anglais height) Le nombre de plans (sur 2 octets). Cette valeur vaut toujours 1 La profondeur de codage de la couleur(sur 2 octets), c'est-à-dire le nombre de bits utilisés pour coder la couleur. Cette valeur peut-être égale à 1, 4, 8, 16, 24 ou 32 La méthode de compression (sur 4 octets). Cette valeur vaut 0 lorsque l'image n'est pas compressée, ou bien 1, 2 ou 3 suivant le type de compression utilisé : o 1 pour un codage RLE de 8 bits par pixel o 2 pour un codage RLE de 4 bits par pixel o 3 pour un codage bitfields, signifiant que la couleur est codé par un triple masque représenté par la palette La taille totale de l'image en octets (sur 4 octets). La résolution horizontale (sur 4 octets), c'est-à-dire le nombre de pixels par mètre horizontalement La résolution verticale (sur 4 octets), c'est-à-dire le nombre de pixels par mètre verticalement Le nombre de couleurs de la palette (sur 4 octets) Le nombre de couleurs importantes de la palette (sur 4 octets). Ce champ peut être égal à 0 lorsque chaque couleur a son importance. Palette de l'image La palette est optionnelle. Lorsqu'une palette est définie, elle contient successivement 4 octets pour chacune de ses entrées représentant : • • • • La composante bleue (sur un octet) La composante verte (sur un octet) La composante rouge (sur un octet) Un champ réservé (sur un octet) Codage de l'image Le codage de l'image se fait en écrivant successivement les bits correspondant à chaque pixel, ligne par ligne en commençant par le pixel en bas à gauche. • • • • Les images en 2 couleurs utilisent 1 bit par pixel, ce qui signifie qu'un octet permet de coder 8 pixels Les images en 16 couleurs utilisent 4 bits par pixel, ce qui signifie qu'un octet permet de coder 2 pixels Les images en 256 couleurs utilisent 8 bits par pixel, ce qui signifie qu'un octet code chaque pixel Les images en couleurs réelles utilisent 24 bits par pixel, ce qui signifie qu'il faut 3 octets pour coder chaque pixel, en prenant soin de respecter l'ordre de l'alternance bleu, vert et rouge. Chaque ligne de l'image doit comporter un nombre total d'octets qui soit un multiple de 4; si ce n'est pas le cas, la ligne doit être complétée par des 0 de telle manière à respecter ce critère.
Documents pareils
Images numériques
est un fichier bitmap, c’est-à-dire un fichier d’image graphique stockant les pixels sous forme de tableau
de points et gérant les couleurs soit en couleur vraie soit grâce à une palette indexée. L...