Gestion de gros fichiers binaires (images) en APL*PLUS III



Documents pareils
Formats d images. 1 Introduction

INFO 2 : Traitement des images

FORMATS DE FICHIERS. Quels sont les différents types d informations numériques dans un document multimédia?

TD : Codage des images

Traitement numérique de l'image. Raphaël Isdant

Cours de numérisation sur Epson Perfection

Niveau 1. Atelier d'initiation à l'ordinateur ... Fondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél.

La Clé informatique. Formation Excel XP Aide-mémoire

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

nom : Collège Ste Clotilde

Une ergonomie intuitive

TP : Gestion d une image au format PGM

Chap17 - CORRECTİON DES EXERCİCES

Structure du format BMP, sa lecture, sa construction et son écriture

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Voici quelques-unes des questions auxquelles répond cette présentation.

Conversion d un entier. Méthode par soustraction

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

EXCEL TUTORIEL 2012/2013

Débuter avec Excel. Excel

TP SIN Traitement d image

Représentation des Nombres

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Codage d information. Codage d information : -Définition-

1.1 L EXPLORATEUR WINDOWS

Première étape : créer le fichier de données - extraire les données de PMB et les transférer dans Excel

Les images numériques. 1. Le dessin vectoriel

Introduction à MATLAB R

1 Comment faire un document Open Office /writer de façon intelligente?

Note de cours. Introduction à Excel 2007

Sur trois couches, on obtient donc 2563 = de couleurs, soit 24bpp (Bit Per Pixel).

Utiliser le logiciel Photofiltre Sommaire

Table des matières A. Introduction... 4 B. Principes généraux... 5 C. Exemple de formule (à réaliser) :... 7 D. Exercice pour réaliser une facture

Manuel de formation Spaceman 1 ère journée

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

GUIDE Excel (version débutante) Version 2013

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Comment mettre en page votre livre

Organiser le disque dur Dossiers Fichiers

EVOLUTION 7.1 Déroulement DREAM INFO 1 Dossier 23 Ciel Gestion Commerciale.

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

Usage des photos pour Internet et pour la presse

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Cours Excel : les bases (bases, texte)

Formation tableur niveau 1 (Excel 2013)

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Dragon Naturally Speaking 13

avec des nombres entiers

Cours Informatique 1. Monsieur SADOUNI Salheddine

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

Méthode de préparation du fichier texte d import depuis Excel, via Access jusqu à Drupal.

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Démarrer et quitter... 13

PHPWEBSITE -Tutoriel image

DM 1 : Montre Autoquartz ETA

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Le poids et la taille des fichiers

Chapitre 13 Numérisation de l information

Traitement des données avec Microsoft EXCEL 2010

Septembre Décembre 2015

Organiser ses photos sur l ordinateur

Google Documents permet d élaborer un questionnaire, de le diffuser sur le net pour ensuite le dépouiller.

GUIDE D UTILISATION DU BACKOFFICE

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Générer un PDF avec polices incorporées

Fonctions de plusieurs variables


Numérisation. Copieur-imprimante WorkCentre C2424

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Comment utiliser FileMaker Pro avec Microsoft Office

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Réalisation de cartes vectorielles avec Word

Your Detecting Connection. Manuel de l utilisateur. support@xchange2.net

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

Création de maquette web

Securexam pour le programme CPA,CGA

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

DETERMINER LA LARGEUR DE PAGE D'UN SITE et LES RESOLUTIONS d'ecran

Algorithme. Table des matières

Guide d usage pour Word 2007

Utilisation de l'outil «Open Office TEXTE»

Projet Matlab : un logiciel de cryptage

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

CMS Modules Dynamiques - Manuel Utilisateur

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Changer la taille des caractères en L A TEX

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

LES TYPES DE DONNÉES DU LANGAGE PASCAL

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

A L ERT. Pour démarrer rapidement avec

Description pas à pas des différents processus d installation, configuration, saisie des résultats et export des données.

Formation Word/Excel. Présentateur: Christian Desrochers Baccalauréat en informatique Clé Informatique, 15 février 2007

Transcription:

Gestion de gros fichiers binaires (images) en APL*PLUS III par Gérard A. Langlet Lun des nombreux problèmes que nous avons rencontrés en APL concerne l impression d images, constituées en fait de grosses matrices binaires. Une image de 512 512 points (pixels, soit noirs soit blancs) comporte déjà plus de 250.000 points. Pourtant, avec une imprimantelaser de résolution 600 points au pouce, cette image ne représentera qu un petit carré d environ 2 cm de côté. Il vaut mieux disposer d une implantation d APL qui gère les bits en bits, c est pourquoi nous opérerons cette fois en APL*PLUS III. (L adaptation en Dyalog.APL ne doit pas poser problème). Nous traiterons en parallèle deux cas, celui des fichiers *.BMP (en anglais «BitMaP») et celui des fichiers *.TIF («Tagged Image Format»). Ces deux formats permettent d accéder aux différents éditeurs graphiques («Brush», «Hpbrush», etc...) disponibles sur le marché sous Windows, et dont les fichiers peuvent être insérés sous forme d images directement sous Word (2 ou 6). Plus généralement, un fichier-image contient des caractères; il est constitué d un en-tête (appelé en jargon un bandeau) et du codage de l image proprement dit. Dans le cas des fichiers *.TIF, l en-tête se compose de la variable TIF, un vecteur de 198 caractères dont les indices successifs dans ŒAV le vecteur atomique en origine 0 sont par exemple les suivants : 73 73 42 0 24 0 0 0 44 1 0 0 1 0 0 0 44 1 0 0 1 0 0 0 14 0 254 0 4 0 1 0 0 0 0 0 0 0 0 1 3 0 1 0 0 0 200 0 0 0 1 1 3 0 1 0 0 0 233 0 0 0 2 1 3 0 1 0 0 0 1 0 0 0 3 1 3 0 1 0 0 0 1 0 0 0 6 1 3 0 1 0 0 0 0 0 0 0 7 1 3 0 1 0 0 0 1 0 0 0 17 1 4 0 1 0 0 0 198 0 0 0 21 1 3 0 1 0 0 0 1 0 0 0 22 1 4 0 1 0 0 0 233 0 0 0 23 1 4 0 1 0 0 0 170 23 0 0 26 1 5 0 1 0 0 0 8 0 0 0 27 1 5 0 1 0 0 0 16 0 0 0 40 1 3 0 1 0 0 0 2 0 0 0 0 0 0 0 Dans le cas des fichiers *.BMP, l en-tête se compose de la variable BMP, un vecteur de 118 caractères dont les indices successifs dans ŒAV en origine 0 sont les suivants : 66 77 118 150 0 0 0 0 0 0 118 0 0 0 40 0 0 0 64 1 0 0 240 0 0 0 1 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 0 0 191 0 0 0 191 191 0 191 0 0 0 191 0 191 0 191 191 0 0 192 192 192 0 128 128 128 0 0 0 255 0 0 255

0 0 0 255 255 0 255 0 0 0 255 0 255 0 255 255 0 0 255 255 255 Si maintenant on désire transformer une matrice binaire en fichierimage, il s agit de compléter de manière adéquate l une ou l autre de ces variables qui servira d en-tête. Programmes généraux d écriture et de lecture de fichiers natifs (pour APL*PLUS III; également valables pour APL*PLUS PC et APL*PLUS II à condition que la taille de fichier n excède pas la longueur d un segment de mémoire). R a dansfic f;k;œelx;e [1] 'R 1ªe ''a a rempltxt qs,qr,qs,qr,ql''ªœelx '' 1+ŒLC''ª fœntie Rª fœneras e R' [2] 'ŒELX ''ŒDM''ª fœncreate Rª K ~ql¹aª K K^qR¹aª K K^1=½½aª K/e' [3] 'aœnappend Rª Œnuntie RªR 0 0½a' a est un vecteur de caractères et f un nom de fichier natif [1]. rempltxt est la fonction txtrepl de la zone ASMFNS, avec des arguments commutés (le vecteur dans lequel s effectuent les remplacements à gauche). Les variables qs, qr et ql sont des scalaires-caractères, respectivement la barre oblique (en anglais «Slash»), le Retour du chariot (en APL*PLUS ŒTCNL : «Terminal Character New Line»), et le saut de Ligne (en APL*PLUS Œ TCLF: «Terminal Character Line Feed»). La ligne [1] a pour but a) de remplacer les retours du chariot simples (suffisants pour passer également à la ligne en APL) par des retours du chariot et des passages à la ligne (obligatoires pour les fichiers natifs DOS si vous voulez pouvoir les lire, par exemple à l aide d une simple instruction type sous DOS), b) de détruire un éventuel fichier portant déjà le même nom que celui contenu dans l argument f. Le cas d un fichier en tableau n est pas traité ici, car les logiciels décrits ci-après fabriquent des vecteurs de caractères. Le résultat R est normalement un objet vide; si on obtient 1 c'est qu'il s'est produit quelque chose d'anormal. R a depuisfic f;œelx [1] Œnuntie R 1ªŒelx 'Œdm'ª fœntie Rª f Œnread R,82,Œnsize Rª Œnuntie RªR f [2] a 0=ŒNC'a'ª a/'r R~qL'ª a -' '= 1 R ª R a R Comme pour l'écriture de fichier, le nom f est le nom de fichier; a est un argument facultatif, dont la présence entraîne l'élimination des sauts de ligne (en APL, comme déjà mentionné, le retour du chariot assure en plus la passage à la ligne suivante). L argument de sortie R contient alors le contenu du fichier, un vecteur de caractères; en

outre, si le dernier caractère du fichier est un caractère EOF «End Of File», ce qui correspond, en APL, au symbole de branchement, ce caractère, parfois gênant, se trouve ôté du vecteur-résultat. Nous sommes maintenant en mesure de fabriquer des fichiers *.TIF ou *.BMP. Fabrication de fichiers binaires (images) proprement dits R A FABTIF M;C;D;F;J;K;L;S;ŒIO [1] ŒIO 0ª 'A 0'do 0=ŒNC'A'ª L 11=ŒDR Mª L L^2=½D ½Mª F 'C:\APL.TIF'ª J 1 K 3½2 56 [2] L/'''D ½M M 0''do A' ajoute une lignes vide (A) en bas [3] L/'''D[1] CªM D M''do D[1] C 8.125 S D[1]ª D ½M 82ŒDR MªM,Mª R ½M TIF, M' [4] L/'M[154+²¼3] qaf K /Dª M[47 46] qaf J Sª M[143 142] M[59 58] qaf J D[0]' [5] L/'M dansfic Fª R R,F' Cette fonction FABTIF fabrique un fichier *.TIF à partir d'une matrice binaire M (non nécessairement carrée). Le nom du fichier s appelle ici 'C:\APL.TIF' mais on peut le changer à volonté. Comme d habitude, la sous-fonction do exécute l expression APL contenue dans son argument gauche, si la condition contenue dans l argument droit est vraie. Si l argument facultatif A existe, une ligne de zéros sera ajoutée en bas de la matrice M : on conseille de toujours utiliser cette option lorsque le nombre de lignes de M est impair. La fonction qaf équivaut à la fonction ŒAF d APL2. Elle établit une correspondance biunivoque entre les entiers de 0 à 255 et les caractères de AV. La mise en fichier d'une matrice binaire est immédiate. R FABBMP M;C;D;E;F;J;K;L;S;ŒIO [1] ŒIO 0ª L 11=ŒDR Mª L L^2=½D ½M ª F ' C:\APL.BMP' ª J 2 K 4½256ª M Mª M ~M [2] L/'E BMPªE[18+¼8] qaf,²³²k DªD[1] 2 S 4.125 D[1]ªM D 15 MªD /2 2½D[0],S,2 1' [3] L/'E[2 3] qaf²,j ½M qaf 16ƒ³D½MªM E,Mª ''R ½MªR R,F''do~ 1¹M dansfic F' Dans la fonction FABBMP, le nom du fichier F peut se changer également. Dans les deux fonctions, la mise en fichier n'a lieu que si M est bien une matrice binaire, c est-à-dire un objet de type 11 («Data Representation»). Pour faire fonctionner ce logiciel par exemple en APL*PLUS PC, implantation qui ne possède pas de codage binaire, il convient de remplacer cette condition par une vérification que tous les items de M font bien partie de l ensemble 0 1.

Nous laisserons le lecteur écrire, à titre d exercice, les fonctions inverses, qui, à partir d un fichier *.TIF ou *.BMP, reconstituent la matrice M. Il est tout à fait possible de créer des fichiers *.BMP en couleurs. Dans les listages ci-dessus, on n a choisi que deux couleurs, le noir et le blanc. Les fichiers *.TIF occupent moins de place sur disque que les fichiers *.BMP (à cause, justement, du codage possible de la couleur dans ces derniers). A titre d application maintenant, voici le résultat du QUINTO 1000, une matrice d un million de bits, insérée sous «WORD» en tant qu image, à partir d un fichier *.TIF. La vue suivante est une recopie d écran du fichier tel qu on peut la voir sous le logiciel «HP-Paintbrush» avec une magnification (zoom) d un facteur 3; seule la partie située en haut et à gauche (c est-à-dire les premières lignes et les premières colonnes) de la matrice-résultat se trouve affichée. La totalité du fichier *.TIF occupe en mémoire une place de 125198 octets exactement. La solution du QUINTO 1000 est unique et présente, de ce fait, la symétrie du carré. (Pour l obtenir, on a utilisé la méthode de Langlet- Mironov, amplement décrite dans les numéros précédents de ce journal; nous sommes bien loin des résultats que permettait d obtenir, selon M. Dumontier, le domino d APL, lequel déclare déjà forfait pour le pauvre QUINTO 18!). La seconde figure ne présente elle aussi qu une partie du résultat, sans «zoom», telle qu on peut l afficher en plein écran également sous «HP-Paintbrush». N.B. Les figures originales sont en taille double : ne pas oublier que les pages des Nouvelles d APL sont réduites d un facteur linéaire de 2.

Voici ce que donne l image complète d un million de points à l échelle 1, avec une résolution de 600 points au pouce (la nuit, tous les chats sont gris), après importation sous Word6 du fichier *.TIF correspondant. Une page complète pourrait théoriquement contenir 6 millions de points; encore faut-il pouvoir l imprimer, (votre imprimante-laser doit disposer de mémoire supplémentaire). Attention! En ce qui concerne la mise en fichier *.BMP, ne pas oublier que le type entier occupe, en APL*PLUS III, 4 octets par pixel (si le blanc est codé 0, le noir sera codé 15 et non pas 1), de sorte qu il vous faudra une mémoire centrale colossale pour transférer une simple image d un million de points! Passons alors à l un des «top models» les plus utilisés en traitement d image. Il s agit de la jolie Léna, célèbre de par le monde, car elle fait les gorges chaudes de nombreux articles consacrés à la transformée de Fourier et à la compression d images dans les milieux spécialisés [4]. La figure suivante est obtenue à partir d une matrice LENA de dimension 512 512, passée au scanneur à partie d une photographie, transférée par la fonction FABTIF en fichier *.TIF, puis affichée en plein écran par le logiciel «HP-Paintbrush» et transférée par le presse-papiers sous WORD6; ceci permet d obtenir sans autre forme de procès, une image environ 4 fois plus grande linéairement que si on l avait importée sous Word directement depuis le fichier *.TIF. Le fichier possède une taille de 32966 octets. On peut donc mettre sur disquette HD près de 50 fichiers de ce type, de quoi conserver le trombinoscope-palmarès des adhérents d AFAPL ayant réglé leur cotisation 1996 avant le printemps.

; ; Voici, importés directement sous Word sous forme d image, deux agrandissements différents d un fichier *.TIF obtenu à l aide de l instruction : FABTIF 2/2šLENA Ce qui fonctionne sur de gros fichiers fonctionne aussi, évidemment, sur de petits. Voici ce que donne une insertion de fichier sous «Word6» : Une matrice 15 15 est affichable (fichier *.BMP) comme:

Le fichier *.TIF correspondant s affiche comme: Ensuite, on peut dupliquer et agrandir en cliquant deux fois pour appeler l éditeur d images de Word: Bien que la qualité d impression des Nouvelles d APL n arrive pas encore à la cheville de celle de la formule du nouvel APL-Quote-Quad (2000 pixels au pouce), on voit très bien sur ces reproductions qu il

n est absolument pas nécessaire de considérer plus de deux niveaux d intensité pour décrire au mieux toutes les nuances de gris d une image (photographie) en noir et blanc. Les pixels (bits) eux-mêmes de l image définissent leur propre amplitude ou intensité, puis que le carré de 0 vaut 0 et que le carré de 1 vaut 1. Pourquoi donc se complique-t-on la vie en traitement d images classique, alors que le binaire pur permet d effectuer la totalité des manipulations d image directement en algèbre logique, sans aucun risque d erreur ni de troncature d information, et en outre, par des transformations le plus souvent linéaires? La réponse fait intervenir la force de l habitude [5] ; les physiciens et autres spécialistes du traitement d images ont toujours procédé comme cela; en fait, il s agit d une erreur historique, due à la méconnaissance de l algèbre vectorielle et matricielle modulo 2, telle qu on peut la pratiquer en APL avec un peu de jugeotte et une banque d idiomes du plus bel effet, esthétique comme pratique. [1] Il n est bien sûr pas nécessaire d inclure chaque ligne dans un vecteur de caractères exécutable : ' '. Si nous le faisons, c est parce qu il s agit d un moyen de supprimer les espaces blancs inutiles, et aussi parce que dans certaines implantations d APL (notamment APL.68000), les fonctions occupent beaucoup moins de place en mémoire. [2] Le Quinto 1000 est tout à fait soluble en APL*PLUS III. Sur un 486 à 33 MHz, il faut environ 80 minutes de patience! [3] Rappelons que la méthode de Langlet a été considérablement accélérée par le jeune Ilya Mironov, et que, sans ce dernier, la solution du Quinto 1000 exigerait plusieurs jours d ordinateur et une mémoire immense! [4] ce dont nous reparlerons à l occasion d un prochain article. [5] Cette force, inconnue des manuels de Physique, existe pourtant bel et bien. La plupart des physiciens utilisent des méthodes mathématiques mises au point essentiellement aux XVIIe et XVIIIe siècles, et encore enseignées comme le nec plus ultra dans les Grandes Ecoles et les Facultés, alors qu il conviendrait d innover quelque peu, c est-à-dire de bâtir des algorithmes mettant en jeu le langage propre de l ordinateur, qui ne sait parler QUE le binaire, langue dans laquelle il excelle savamment.