CODE BARRES ET QR CODE. Rencontre de l Orme 2013 - Marseille Jean-Baptiste CIVET



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

Projet Matlab : un logiciel de cryptage

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

1 Introduction au codage

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Algorithme. Table des matières

Conversion d un entier. Méthode par soustraction

Représentation des Nombres

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

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

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

TD : Codage des images

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

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

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

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

Chap17 - CORRECTİON DES EXERCİCES

Les opérations binaires

Les chaînes de caractères

Du Premier au Second Degré

EXERCICES DE REVISIONS MATHEMATIQUES CM2

Programmation C. Apprendre à développer des programmes simples dans le langage C

Le codage informatique

Système binaire. Algèbre booléenne

Série D65/D75/D72 Afficheurs digitaux modulaires

EXCEL TUTORIEL 2012/2013

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

Représentation d un entier en base b

Une version javascript sera disponible directement dans le cours prochainement.

Introduction à MATLAB R

ANALYSE TRAMEs LIAISON SERIE

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Créer une base de données

Transmission d informations sur le réseau électrique

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

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

Licence Sciences et Technologies Examen janvier 2010

CAHIER DES CHARGES ETIQUETTES MP06-EU (FORMAT ODETTE)

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Introduction à l étude des Corps Finis


Information. BASES LITTERAIRES Etre capable de répondre à une question du type «la valeur trouvée respecte t-elle le cahier des charges?

nom : Collège Ste Clotilde

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

Titres de créances NégOciables Refonte Informatique et organisationnelle

1.1 L EXPLORATEUR WINDOWS

Chapitre 2 : communications numériques.

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Fête de la science Initiation au traitement des images

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Jeux de caracte res et encodage (par Michel Michaud 2014)

Logiciel de Base. I. Représentation des nombres

Algorithmique et Programmation, IMA

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]

Guide de démarrage rapide. (pour la version 5.0.)

I- Définitions des signaux.

CREG : versailles.fr/spip.php?article803

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Informatique Générale

Manuel M O D U L E D I M P O R T A T I O N

LA SECURITE DES CARTES A BANDE MAGNETIQUE

Formation tableur niveau 1 (Excel 2013)

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Transmission de données. A) Principaux éléments intervenant dans la transmission

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

ÉPREUVE COMMUNE DE TIPE Partie D

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Tp_chemins..doc. Dans la barre "arche 2" couleur claire 1/5 21/01/13

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

GPA770 Microélectronique appliquée Exercices série A


Compression Compression par dictionnaires

TD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

DM 1 : Montre Autoquartz ETA

IV- Comment fonctionne un ordinateur?

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Base de données relationnelle et requêtes SQL

Ecran : Processeur : OS : Caméra : Communication : Mémoire : Connectique : Audio : Batterie : Autonomie : Dimensions : Poids : DAS :

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

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Algorithmique des Systèmes Répartis Protocoles de Communications

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

Initiation à LabView : Les exemples d applications :

L ALGORITHMIQUE. Algorithme

Création de maquette web

TP 1. Prise en main du langage Python

Formats d images. 1 Introduction

Transcription:

CODE BARRES ET QR CODE Rencontre de l Orme 2013 - Marseille Jean-Baptiste CIVET

2 Au départ Un QR Code floral.

Code Barres et QR Code 3 Oui mais voilà

4 Avant de comprendre la 2D, petit détour par la 1D Le code barres se décode facilement mais ne résiste pas à la dégradation

5 Exemple : le code barre 39 Il s agit d un code alphanumérique. Nous pouvons coder 26 lettres majuscules et 10 chiffres. L ensemble est complété de 8 caractères spéciaux. Pour ce code-barres, il n y a pas de limite de longueur de chaîne de caractères.

6 Exemple : le code barre 39 _ chaque caractère est composé de 9 bits. Parmi ces 9 bits, 3 et uniquement 3 sont toujours égaux à 1. _ Un bit est représenté alternativement par une barre noire ou un espace blanc. Le 1 er bit est une barre noire, le 2 e un espace, le 3 e une barre etc. _ S il s agit d un bit à 1, on le représentera par une barre ou un espace large. Inversement s il s agit d un bit à 0, on le représentera par une barre ou un espace étroit _ Une barre large est deux fois plus grande qu une barre étroite. Selon la précision souhaitée, on peut aller jusqu à une largeur trois fois plus importante.

7 Exemple : le code barre 39 La lettre A est codée selon la série de bits suivante : 100001001 Chacune des caractéristiques précédentes est respectée : _ on démarre par une barre noire. _ elle est large puisqu il s agit d un bit à 1. _ le bit suivant est donc un espace. _ il est étroit puisqu égal à 0 On remarquera qu il y a bien seulement 3 éléments larges dans ce dessin. Du fait de l utilisation de 9 bits, chaque caractère démarre et finit par une barre noire.

8 Exemple : le code barre 39 Finalement, on se rend compte qu on peut facilement coder un générateur de code barres _ il nous faut connaitre l alphabet du CB39 _ il faut savoir que toute chaine doit démarrer et finir par «*» _ il faut avoir dessiner des rectangles avec la GDI de son logiciel de programmation

9 Et les QR Codes dans tout ça? Une référence : la norme ISO 18004 120 pages en Anglais 70 variations Version 1 à 21 modules Des marqueurs de reconnaissance Des timers Des zones d informations

10 Et les Mathématiques dans tout ça? Un carré de 21 modules de côté, Théoriquement, 441 bits, c'est-à-dire 55 octets. La version 70, un carré de 177 modules de côté. Marqueurs de reconnaissance 202 modules. Modules réservés pour la transcription d information de Format et Version, soit 31 modules supplémentaires. Pour l instant, nous avons donc 441 202 31 modules soit 208 modules de disponibles c'està-dire 208 bits c'est-à-dire en réalité 26 octets (contre 55 au départ).

11 Et les Mathématiques dans tout ça? Le choix d un alphabet 8 bits (c'est-à-dire 1 octet) permet de coder 256 caractères différents. En revanche, l usage d un alphabet «alphanumérique» à 30 symboles permet de coder davantage de caractères sur un même nombre de bits que l alphabet ASCII. Exemple : pour coder 2 caractères avec l alphabet ASCII, 16 bits seront nécessaires pour coder 2 caractères avec l alphabet Alphanumérique, 11 bits seront nécessaires Rappelons que nous ne disposons que de 208 bits c'est-à-dire 26 octets pour coder notre message.

12 Et les Mathématiques dans tout ça? Dernier point et non des moindres, le niveau de résistance à la dégradation de notre QRCode! Il y a 4 niveaux de correction d erreur possibles, décrits dans la norme des QRCodes, répertorié sous les initiales L, M, Q, H (pour s en souvenir : Low quality, Médium quality, Quality, High quality). Nous allons opté pour la plus haute norme de correction d erreurs disponible, à savoir la norme H. Ainsi sur les 26 octets disponibles, 9 octets seront dédiés au message à coder et 17 octets seront dédiés à la correction d erreur. A ce stade de notre balade, nous savons que Le QR Code est donc en version 1-H, soit 9 octets pour le codage L alphabet retenu est l alphabet ASCII sur 8 bits (1 octet par caractère)

13 Dans le calcul des blocs d erreur Vous avez probablement déjà abordé en classe le principe de la clé de contrôle du numéro INSEE, clé qui est issue dela différence de 97 et du reste de la division euclidienne par 97du numéro INSEE à 13 chiffres. Exemple : si le n INSEE suivant existait, 1234567891011, sa clé de contrôle vaudrait 93 En effet 1234567891011 = 12727504031 * 97 + 4 et 97 4 = 93 Pour notre projet, le système de code d erreur reprend le principe du reste de la division sauf que les nombres entiers sont remplacés par des polynômes dont les coefficients seront tous compris entre 0 et 255. Nos opérations ne seront donc pas tout à fait l addition et la multiplication que vous connaissez. Plutôt un travail de calcul d exposant et de «XOR». Il existe une règle de base dans cet univers : a^255 = 1. C est ce que l on appelle le code d erreur Reed Solomon.

14 Dans le calcul des blocs d erreur Initialisation G(x) = x^17+a^43*x^16+a^139*x^15+a^206*x14+a^78*x^13+a^43*x^12+a^239*x^11+a^1 23*x^10+a^206*x^9+a^214*x^8+a^147*x^7+a^24*x^6+a^99*x^5+a^150*x^4+a^39* x^3+a^243*x^2+a^163*x+a^136 Ce polynôme nous est donné par la théorie Reed Solomon et la norme ISO qui décrit le fonctionnement des QR Codes où a est tel que a^255 = 1 F(x) est un polynôme de degré 25 dont les coefficients f25 à f17 sont nos 9 octets exprimés en décimal du message que nous souhaitons codé. Voir chapitre 1. Nous allons chercher R(x) le reste de la division de F(x) par G(x)

15 Un algorithme simple à mettre en oeuvre for index=1,9 do if coeff_f1[index] ~= 0 then exposant = table_entier[coeff_f1[index]] --conversion du coefficient en exposant for k=1,degre_g+1 do coeff_f2[k+index-1] = table_exposant[(exposant+exposant_g[k]) % 255 + 1] end for k=1,26 do coeff_f2[k]=xor(coeff_f1[k],coeff_f2[k]) end for k=1,26 do coeff_f1[k] = coeff_f2[k] end end end --end for index

16 On y est presque ou pas A ce stade, on a 9 octets de message et 17 octets issus du code RS On va placer des entêtes dans notre QR Code L : 01, M : 00, Q : 11 et H : 10 Le n de masque parmi 8 possibles (sur 3 bits) Correction d erreur BCH de paramètres (15,5)

17 On y est presque ou pas Qualité H (10) et Masque 3 (011) Message de départ : 10 011 Polynôme de départ :f(x) = x^14+x^11+x^10 Polynôme de référence, imposé : g(x) = x^10+x^8+x^5+x^4+x^2+x+1 Polynôme restant en divisant f(x) par g(x) : r(x) = x^8+x^7+x^6+x Code BCH correspondant : 0111000010 Message de Format avant masquage (on concatene) : 10 011 0111000010 XOR binaire, imposé : 10 011 0111000010 XOR 101010000010010 Message à recopier dans la zone grisée : 001100111010000

18 Ca y est, on dessine.matriciellement

19 Ca y est, on dessine.matriciellement

20 La nature a horreur du vide!

21 XOR à la rescousse! XOR ENTREE 1 ENTREE 2 SORTIE 0 0 0 0 1 1 1 0 1 1 1 0 Message Non Masqué XOR Masque = Message Masqué Message Masqué XOR Masque = Message Non Masqué

22 Rappel et exemple! Le 1 er module en haut à gauche a pour coordonnées (1,1). (1+ 1) mod 2 est effectivement égale à 0 donc on renvoie 1 donc on noircit le module sur le masque.

23 XOR à la rescousse! Le retour! XOR = XOR =

24 Quelques exemples de masques

25 Quelques exemples de masques

26 Finalement

27 Merci