Introduction à l'acquisition vidéo dans un environnement PC Exposé donné dans le cadre du cours "Introduction aux techniques audio et video" Revision History Copyright Euresys s.a. 2003 Rev 1.1: 28 mars, 2001 Rev 1.2: 19 avril, 2001 Rev 1.3: 15 avril, 2002 Rev 1.4: 26 mars, 2003 Auteur: Yves Joskin Contents Contents 1 Introduction .............................................................................................................. 5 1.1 Frame Grabber.............................................................................................................5 1.1.1 1.1.2 1.1.3 1.2 Structure de l'exposé ...................................................................................................6 1.2.1 1.2.2 1.2.3 1.2.4 2 Definition.................................................................................................................. 5 "Le contraire" d'une carte VGA ................................................................................ 5 Usage ...................................................................................................................... 6 Sources d'images .................................................................................................... 6 Ordinateur hôte........................................................................................................ 6 Acquisition ............................................................................................................... 6 Conclusions ............................................................................................................. 6 Sources d'images .................................................................................................... 7 2.1 Classification ................................................................................................................7 2.1.1 2.1.2 2.1.3 2.2 Avec signal vidéo ..................................................................................................... 7 Sans signal vidéo..................................................................................................... 7 Cadre de cet exposé................................................................................................ 7 Signal vidéo..................................................................................................................8 2.2.1 2.2.2 Définition.................................................................................................................. 8 Signaux vidéo analogiques ...................................................................................... 8 2.2.2.1 2.2.2.2 2.2.2.3 2.2.2.4 2.2.2.5 2.2.3 Signaux vidéo numériques....................................................................................... 9 2.2.3.1 2.2.3.2 2.2.3.3 2.2.3.4 2.2.3.5 2.3 Version digitalisée d'un standard analogique..........................................................9 Vidéo digitale domestique.......................................................................................9 Vidéo digitale industrielle ........................................................................................9 Comparaison série/parallèle .................................................................................10 Standardisation d'un flux digital ou bitstream........................................................10 Caméras.....................................................................................................................11 2.3.1 2.3.2 2.3.3 Définition................................................................................................................ 11 Capteurs ................................................................................................................ 11 Formation du signal vidéo...................................................................................... 12 2.3.3.1 2.3.3.2 2.3.4 Caméra analogique...............................................................................................12 Caméra digitale .....................................................................................................12 Particularités des caméras..................................................................................... 12 2.3.4.1 2.3.4.2 2.3.4.3 2.3.4.4 2.3.4.5 2.3.4.6 2.3.4.7 3 Composite ...............................................................................................................8 Composantes ..........................................................................................................8 Oscillogramme ........................................................................................................8 Standards vidéo ......................................................................................................9 Vidéo sauvage ........................................................................................................9 Entrelacement .......................................................................................................12 Contrôle de l'exposition.........................................................................................13 Contrôle du balayage ............................................................................................13 Capture d'image de sujets mobiles .......................................................................13 Caméras linéaires .................................................................................................14 Multiplicité des canaux..........................................................................................14 Implication pour les frame grabbers......................................................................14 Ordinateur hôte...................................................................................................... 15 3.1 3.2 Pourquoi le PC ? ........................................................................................................15 Structure simplifiée d'un PC.......................................................................................16 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3 Diagramme ............................................................................................................ 16 Processeur............................................................................................................. 16 Chip set.................................................................................................................. 16 North bridge ........................................................................................................... 17 South bridge .......................................................................................................... 17 Mémoire................................................................................................................. 17 Contrôleur graphique ............................................................................................. 17 Bus PCI.................................................................................................................. 17 Bus ISA.................................................................................................................. 17 Bus PCI ......................................................................................................................18 3.3.1 3.3.2 3.3.3 3.3.4 Introduction ............................................................................................................ 18 Structure ................................................................................................................ 18 Agents.................................................................................................................... 18 Burst ...................................................................................................................... 18 Copyright Euresys s.a. 2003 Page 3 Contents 3.3.5 3.3.6 3.3.7 4 DMA ....................................................................................................................... 19 Variantes actuelles................................................................................................. 20 Variante future: PCI Express.................................................................................. 20 Acquisition.............................................................................................................. 21 4.1 Préliminaires.............................................................................................................. 21 4.1.1 4.1.2 4.1.3 4.1.4 4.2 Place du frame grabber.......................................................................................... 21 Exemple analogique............................................................................................... 22 Exemple digital....................................................................................................... 23 Structure ................................................................................................................ 24 Aspects hardware...................................................................................................... 24 4.2.1 4.2.2 Connexions ............................................................................................................ 24 Conditionnement analogique.................................................................................. 24 4.2.2.1 4.2.2.2 4.2.2.3 4.2.2.4 4.2.3 Base de temps ....................................................................................................... 25 4.2.3.1 4.2.3.2 4.2.3.3 4.2.3.4 4.2.4 Définition ................................................................................................................ 29 Client...................................................................................................................... 29 Missions du driver .................................................................................................. 29 Application programming interface......................................................................... 29 Fonctionnalité......................................................................................................... 29 4.3.5.1 4.3.5.2 4.3.6 Diversité des systèmes d'exploitation ................................................................... 31 Diversité des environnements .............................................................................. 31 Style d'API ............................................................................................................ 31 Evolution des fonctionnalités ................................................................................ 31 Considérations particulières...................................................................................... 32 4.4.1 4.4.2 4.4.3 Multiplicité des sources .......................................................................................... 32 Considérations de débit ......................................................................................... 32 Missions non liées à la vidéo.................................................................................. 32 4.4.3.1 4.4.3.2 4.4.3.3 4.5 Style séquentiel .................................................................................................... 30 Style événementiel ............................................................................................... 30 Evolutivité............................................................................................................... 31 4.3.6.1 4.3.6.2 4.3.6.3 4.3.6.4 5 Ordre des pixels.................................................................................................... 28 Format des pixels ................................................................................................. 28 Scatter-gather ....................................................................................................... 28 Aspects software ....................................................................................................... 29 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.4 Justification ........................................................................................................... 27 Frame grabber à FIFO .......................................................................................... 27 Frame grabber à frame buffer............................................................................... 27 Contrôle DMA ........................................................................................................ 28 4.2.6.1 4.2.6.2 4.2.6.3 4.3 Applicabilité........................................................................................................... 26 Traitements appliqués .......................................................................................... 26 But global.............................................................................................................. 26 Mémoire ................................................................................................................. 27 4.2.5.1 4.2.5.2 4.2.5.3 4.2.6 Généralités ........................................................................................................... 25 Synchronisation par boucle de phase................................................................... 25 Synchronisation par horloge pixel......................................................................... 25 Signaux produits par la base de temps ................................................................ 25 Conditionnement digital.......................................................................................... 26 4.2.4.1 4.2.4.2 4.2.4.3 4.2.5 Applicabilité........................................................................................................... 24 Traitements appliqués .......................................................................................... 24 Conversion analogique/digitale............................................................................. 24 Traitements particuliers ........................................................................................ 25 Contrôle de l'éclairage .......................................................................................... 32 Trigger externe...................................................................................................... 32 Entrées et sorties à usage général ....................................................................... 32 "Frame processor" versus "Frame grabber" ............................................................. 33 Conclusions ........................................................................................................... 35 5.1 5.2 5.3 Application des frame grabbers ................................................................................ 35 Euresys...................................................................................................................... 35 Gamme...................................................................................................................... 36 5.3.1 5.3.2 5.3.3 5.4 Page 4 Frame grabber analogiques ................................................................................... 36 Frame grabber digitaux .......................................................................................... 37 Software................................................................................................................. 37 Opportunités .............................................................................................................. 38 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 1 Introduction Introduction 1.1 1.1.1 Frame Grabber Definition Qu'est ce qu'un frame grabber ? En français: carte d'acquisition d'image. On emploie parfois le terme "Capture Board", ou "carte de capture". En amont: caméra (en général, une source vidéo) En aval: un PC (en général, un ordinateur hôte) PCI bus Connector Frame Grabber 1.1.2 "Le contraire" d'une carte VGA Computer to Video Video Monitor PC Graphic Card Video to Computer Video Camera PC Frame Grabber Copyright Euresys s.a. 2003 Page 5 Introduction 1.1.3 Acquisition vidéo dans un environnement PC Usage Que fait-on des images ? • Analyse • Archivage • Transmission • Montage Le présent exposé s'adresse particulièrement aux applications industrielles des frame grabbers. La finalité d'un frame grabber est de recueillir les images produites par une caméra et de les déposer dans la mémoire d'un PC. 1.2 1.2.1 Structure de l'exposé Sources d'images Variété des procédés Structure d'une caméra Particularité des caméras industrielles 1.2.2 Ordinateur hôte Pourquoi le PC ? Structure du PC Bus périphérique 1.2.3 Acquisition Structure du frame grabber Organes hardware Organes software 1.2.4 Conclusions Application La société Euresys Page 6 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 2 Sources d'images Sources d'images 2.1 Classification Pour situer le sujet de l'exposé, on considère deux cas: 2.1.1 • L'image est représentée par un signal vidéo • L'image n'est pas représentée par un signal vidéo Avec signal vidéo L'application implique la transmission de l'image par un canal spécialisé entre la source d'image et l'ordinateur hôte. Exemples de sources d'images vidéo: 2.1.2 • Caméra • Carte graphique d'un PC • Magnétoscope • Caméscope • Caméra vidéo digitale Sans signal vidéo On peut distinguer deux cas: • Pas de transmission. L'image est directement disponible à l'endroit où elle doit être exploitée. • La transmission de l'image n'emploie pas un canal spécialisé, mais utilise un médium de communication à usage général. Exemples de sources d'images non vidéo: 2.1.3 • Scanner de bureau • Scanner médical (Computerized Tomography) • Imagerie par résonance magnétique • Réseaux, Internet • Appareil photographique digital Cadre de cet exposé L'image est disponible sous la forme d'un signal vidéo. Copyright Euresys s.a. 2003 Page 7 Sources d'images 2.2 2.2.1 Acquisition vidéo dans un environnement PC Signal vidéo Définition Le signal vidéo a pour ambition de transporter des images d'un point à un autre sous forme électrique. Il est traditionnellement associé à la notion de séquence d'image (cinéma). Dans sa version la plus répandue, le signal vidéo est remarquablement bien standardisé. Dans beaucoup de versions dérivées, le signal vidéo est remarquablement peu standardisé. Les variantes industrielles sont nombreuses et profondes. 2.2.2 2.2.2.1 Signaux vidéo analogiques Composite Toutes les informations sont condensées dans un seul signal V(t): • Luminance • Chrominance • Synchronisation Un signal vidéo composite est propice à la radiodiffusion (broadcast). 2.2.2.2 Composantes Les informations sont transportées par plusieurs signaux V(t): 2.2.2.3 Page 8 • Luminance séparée de la chrominance • Composantes rouges, vertes, bleues • Synchronisation séparée Oscillogramme Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 2.2.2.4 Sources d'images Standards vidéo Résolution normale, usage broadcast, domestique ou surveillance • PAL (couleur): 625 lignes • NTSC (couleur): 525 lignes Haute résolution, usage broadcast • 2.2.2.5 HDTV: nombreuses variantes Vidéo sauvage Inspiration CCIR ou EIA, nombre de lignes balayées variable. La "règle" pour les usages industriels ou médicaux. 2.2.3 2.2.3.1 Signaux vidéo numériques Version digitalisée d'un standard analogique Le signal digital peut être transmis en parallèle ou en série. • CCIR 601, appelé aussi 4:2:2, version numérique du PAL et du NTSC. Existe en parallèle et en série Utilisé en broadcast. Versions particulières adaptées à l'enregistrement sur bandes (D1, D2). 2.2.3.2 Vidéo digitale domestique Standard IEEE1394, pour la connexion au PC de périphériques très rapides par une ligne digitale sérialisée. Autres noms: • FireWire (Apple) • iLink (Sony) Comporte un mécanisme spécifique pour le transport soutenu de séquences vidéo. 2.2.3.3 Vidéo digitale industrielle Solutions parallèles: Une paire de fils par bit de donnée ou de contrôle. Connectique lourde. Pas de standard. Solutions séries: Camera Link. Connectique légère. Copyright Euresys s.a. 2003 Page 9 Sources d'images 2.2.3.4 Acquisition vidéo dans un environnement PC Comparaison série/parallèle 20 MHz Parallel Digital Transmission Four Lines Parallel Digital Device Bit 1 @ T0 Bit 1 @ T0 + 50ns Bit 1 @ T0 + 100ns Bit 2 @ T0 Bit 2 @ T0 + 50ns Bit 2 @ T0 + 100ns Bit 3 @ T0 Bit 3 @ T0 + 50ns Bit 3 @ T0 + 100ns Bit 4 @ T0 Bit 4 @ T0 + 50ns Bit 4 @ T0 + 100ns Time T0 80 MHz Serial Digital Transmission One Line Serial Digital Device Bit 1 Bit 2 Bit 3 Bit 1,2,3,4 @ T0 Bit 4 Bit 1 Bit 2 Bit 3 Bit 4 Bit 1,2,3,4 @ T0 + 50 ns Bit 1 Bit 2 Bit 3 Bit 4 Bit 1,2,3,4 @ T0 + 100 ns Time T0 Top System Control Camera A Control Camera B Control Camera Data Lane P Camera Data Lane R Camera Data Lane Q Camera Data Lane S A8 A9 B8 B9 A1+ A2+ A3+ A4+ A5+ A6+ A7+ B1+ B2+ B3+ B4+ B5+ B6+ B7+ P0+ P1+ P2+ P3+ P4+ P5+ P6+ P7+ R0+ R1+ R2+ R3+ R4+ R5+ R6+ R7+ Q0+ Q1+ Q2+ Q3+ Q4+ Q5+ Q6+ Q7+ S0+ S1+ S2+ S3+ S4+ S5+ S6+ S7+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 IGND I5V IGND I5V A1A2A3A4A5A6A7B1B2B3B4B5B6B7P0P1P2P3P4P5P6P7R0R1R2R3R4R5R6R7Q0Q1Q2Q3Q4Q5Q6Q7S0S1S2S3S4S5S6S7- Shield 1 1 14 Shield 2 CC4- 2 15 CC4+ CC3+ 3 16 CC3- CC2- 4 17 CC2+ CC1+ 5 18 CC1- SerTFG+ 6 19 SerTFG- SerTC- 7 20 X3+ 8 21 X3- Xclk+ 9 22 Xclk- X2+ 10 23 X2- X1+ 11 24 X1- X0+ 12 25 X0- Shield 3 13 26 Shield 4 SerTC+ View from outside Bottom 2.2.3.5 Camera Link LH26F Standardisation d'un flux digital ou bitstream Le bitstream est plus un fichier qu'un signal. Il est manipulé par la couche appropriée d'un réseau de communication. Il peut être copié sur disque. • JPEG, JPEG2000 • MPEG2, MPEG4 Ces standards impliquent en général de la compression de données. L'organisation DVB (Digital Video Broadcast, http://www.dvb.org/) est concernée par la problématique de la diffusion des bitstreams. Page 10 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 2.3 2.3.1 Sources d'images Caméras Définition Implicitement, il s'agit de caméras vidéo, et non photo. La plupart des frame grabbers sont utilisés avec une caméra (contreexemple: slow-scan). Constitution d'une caméra: • Chambre noire • Optique formatrice d'image • Capteur solid-state • Electronique construisant le signal vidéo Scene Camera Sensor Scanning Control Signal Handling Lens 2.3.2 Video Signal Capteurs Transforme l'image projetée par l'optique en une matrice de charges électriques. Circuit intégré en technologie CCD ou CMOS. Doté de moyens de balayage pour véhiculer en série la matrice de charges électriques vers une borne extérieure du composant. Un capteur fournit toujours un signal analogique (échantillonné dans l'espace). Vertical CCD Registers Light sensitive area Light sensitive cell Memory Array Output Output Output CCD Register Interline transfer CCD Sensor Copyright Euresys s.a. 2003 Output CCD Register Frame transfer CCD Sensor Page 11 Sources d'images 2.3.3 2.3.3.1 Acquisition vidéo dans un environnement PC Formation du signal vidéo Caméra analogique Mise en forme du signal du capteur en vue de constituer le signal vidéo. Encodage approprié de l'information couleur le cas échéant. 2.3.3.2 Caméra digitale Le signal du capteur est digitalisé (discrétisation des niveaux). La digitalisation est parfois faite au niveau du capteur (CMOS). Mise en forme et éventuellement sérialisation des signaux. Analog Frame Grabber Analog Camera CCIR or EIA Analog Connection Sensor Digital Frame Grabber "Digital" Camera Sensor 2.3.4 2.3.4.1 Analog To Digital Converter Analog To Digital Converter Specific Digital Connection Particularités des caméras Entrelacement La plaie de toutes les applications "informatiques" de la vidéo. Une image mobile est décomposée en deux trames spatialement et temporellement différentes. Présent dans les applications broadcast, surveillance, domestique. Absent des applications industrielles et des appareils photographiques digitaux. "Non entrelacé" se dit "progressif". Page 12 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 2.3.4.2 Sources d'images Contrôle de l'exposition Obturateur électronique par effacement contrôlé des charges créées au niveau du capteur. Transfer Gate Building frame data from incoming light Sensor Condition Reset Condition Frame Exposure Reset Condition Sensor Output Frame Readout Extracting frame data out of sensor Exposure Duration Response Level Charge at a photosite 2.3.4.3 Time Discharged Level Slope is proportional to the light intensity reaching the photosite Contrôle du balayage Dans son utilisation traditionnelle, une caméra produit une séquence ininterrompue d'images à vitesse de répétition constante (exemple: 25 images/seconde). Les caméras industrielles sont dotées d'un contrôle extérieur qui leur permet sur ordre de produire le balayage d'une image à un instant arbitraire (Asynchronous Reset). L'exposition du capteur est contrôlée au moment du redémarrage du balayage. Transfer Gate Sensor Condition Transfer Gate Reset Expose 1 Sensor Output Expose 2 Readout 1 Transfer Gate Reset Expose 3 Readout 2 Reset Time Readout 3 -1 Frame Rate Camera Asynchronous Reset Camera Asynchronous Reset Transfer Gate Sensor Condition Reset Sensor Output 2.3.4.4 Expose 1 Transfer Gate Reset Readout 1 Expose 2 Reset Time Readout 2 Capture d'image de sujets mobiles Par le contrôle concerté de l'exposition et du balayage, une caméra industrielle joue le rôle d'un appareil photographique digital capable de saisir l'image d'objets en mouvement. Copyright Euresys s.a. 2003 Page 13 Sources d'images 2.3.4.5 Acquisition vidéo dans un environnement PC Caméras linéaires Certaines caméras captent une seule ligne de pixels, et non une matrice. La seconde dimension est obtenue par le déplacement relatif de la caméra et de l'objet observé. • Contrôle de qualité: l'objet se déplace sur un tapis roulant • Scanner de bureau: la caméra est mécaniquement transportée devant la page à saisir. Line-Scan Camera Axial Direction Observed Line Transverse Direction Motion 2.3.4.6 Multiplicité des canaux Pour accélérer la cadence de sortie des images, les fabricants de capteurs et de caméras industrielles multiplient le nombre de voies (tap) par lesquelles sort l'information constitutive d'une image. Par exemple: 2 canaux à 30 MHz permettent de sortir une image de 768 x 576 en 10 ms, soit 100 images/seconde. Une telle image est sortie à raison de 25 image/seconde pour un capteur de même résolution à structure classique (un canal à 15 MHz). Il existe des caméras à 1, 2, 3, 4 ou 8 canaux. Light sensitive area Output CCD Register Output 1 Output 2 Output CCD Register Dual tap linear CCD Sensor 2.3.4.7 Implication pour les frame grabbers Le niveau de performance d'un frame grabber se caractérise par la diversité des particularités de caméras qu'il est à même de gérer. Page 14 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 3 Ordinateur hôte Ordinateur hôte 3.1 Pourquoi le PC ? Le gros du marché du frame grabber est actuellement composé de cartes pour PC. Le choix d'un PC "bureautique" comme support d'une application industrielle est, techniquement, le plus mauvais qu'on puisse faire. C'est pourtant celui qui est fait par les industriels. Le rapport performance/prix d'un PC est imbattable. Les PC dits industriels sauvent un peu la situation. On voit émerger des PC de toutes petites dimensions (Micro ATX) pour des applications "network appliance" qui peuvent profiter à l'imagerie industrielle. La puissance de calcul des processeurs modernes qui animent les PC est phénoménale. Bien utilisée, cette puissance résout effectivement des applications de prise de décision consécutive à d'analyse informatique d'une image, et cela en temps réel. La finalité d'un système de vision est de recueillir les images d'un objet produites par une caméra, de les déposer dans la mémoire du PC, de permettre au processeur de les analyser par programme, d'extraire des informations pertinentes, et de prendre une décision relative à l'objet observé sur la base de ces informations. Copyright Euresys s.a. 2003 Page 15 Ordinateur hôte 3.2 3.2.1 Acquisition vidéo dans un environnement PC Structure simplifiée d'un PC Diagramme Figure simplifiée, typique d'un PC actuel. Ecran Processeur Bus graphique (AGP) Bus du processeur (FSB) Adaptateur graphique 500 MB/s Bus de la mémoire 1 GB/s North bridge Mémoire système 1 GB/s Bus périphérique rapide (PCI) Bus de stockage (ATA) 100 MB/s 10 MB/s CD/DVD Slots PCI Carte de capture Carte de capture South bridge Interface réseau Disque dur Clavier Bus périphérique lent (USB) Souris 1 MB/s Modem Monde… Caméras 3.2.2 Ethernet, réseaux Lignes téléphoniques Processeur Circuit intégré responsable de l'exécution des programmes. Doté d'un bus par où transitent toutes les informations qu'il traite, ainsi que le code qu'il exécute 3.2.3 Chip set Ensemble de circuits intégrés qui environnent le microprocesseur. Il y en a habituellement deux: Page 16 • North bridge • South bridge Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 3.2.4 Ordinateur hôte North bridge Le North bridge fait le pont entre le bus du microprocesseur et le bus périphérique PCI. Il route les données entre quatre intervenants: 3.2.5 • Le microprocesseur • La mémoire centrale • Le contrôleur graphique • Le bus PCI South bridge Le South Bridge fait le pont entre le bus périphérique PCI et le bus périphérique ISA. Il route les données entre trois intervenants: 3.2.6 • Le bus PCI • Le disque dur • Le bus ISA Mémoire Accédée par le microprocesseur ou par un agent du bus PCI (DMA, direct memory access). Mémoire dynamique synchrone. 3.2.7 Contrôleur graphique Destinataire d'un flux de données très rapide, placé "hors du chemin" du bus PCI aux bons soins du North Bridge. 3.2.8 Bus PCI Peripheral Component Interconnect. Siège des connexions aux cartes et composants internes périphériques rapides, notamment d'un frame grabber. Fait l'objet d'une analyse plus détaillée. 3.2.9 Bus ISA Industry Standard Architecture Siège des connexions aux cartes et composants internes périphériques lents. Copyright Euresys s.a. 2003 Page 17 Ordinateur hôte 3.3 3.3.1 Acquisition vidéo dans un environnement PC Bus PCI Introduction Le bus PCI est défini par une normalisation sérieuse et salutaire dans la communauté des PC. Il n'est pas limité aux PC, Apple et diverses stations Unix l'utilisent. 3.3.2 • http://www.pcisig.com/ (PCI special interest group) • http://www.picmg.org/ (PCI Industrial Computer Manufacturers Group) Structure Le bus PCI est synchrone. Tous les transferts élémentaires se font sous l'égide d'une horloge unique. Sous sa forme la plus répandue, le bus PCI possède une horloge à 33 MHz et une largeur de 32 bits, soient 4 bytes. Ceci autorise un débit théorique (inaccessible) de 132 Mbyte/s. Dans sa forme récente, la largeur du bus peut être de 64 bits et la vitesse de 66 MHz. Ceci autorise un débit théorique (inaccessible) de 528 Mbyte/s. 3.3.3 Agents A un instant donné, le bus est confié à deux agents auquel il est branché: • Initiator (Initiateur) • Target (Cible) A l'initiateur revient l'initiative de démarrer un transfert. A la cible revient la mission d'être attentif à cette initiative. 3.3.4 Burst Un transfert élémentaire est constitué d'une rafale (burst). Une rafale se scinde en: • Une phase d'adresse • Plusieurs phases de données Chaque phase dure idéalement une période de l'horloge du PC. C'est quand cette condition est atteinte que le bus approche de sa performance limite. La phase d'adresse est émise par l'initiateur pour désigner sa cible et la localisation des données au sein de la cible. Les phases de données réalisent le transfert effectif par mots de 32 bits. Le transfert peut être: Page 18 • Write: de l'initiateur vers la cible • Read: de la cible vers l'initiateur Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 3.3.5 Ordinateur hôte DMA L'initiateur de prédilection est naturellement le microprocesseur. Il est capable de lire ou écrire de sa propre initiative dans n'importe quel organe connecté au bus. La cible de prédilection est la mémoire. La mémoire est incapable de prendre l'initiative d'un transfert. Lorsqu'un organe autre que le microprocesseur est capable de prendre l'initiative d'accéder à la mémoire, on parle de DMA (Direct Memory Access). Ce transfert se fait "à l'insu" du processeur. Un frame grabber digne de ce nom est une carte PCI capable de prendre l'initiative du transfert des images vers la mémoire en DMA. On dit alors que la carte capable de "bus master". Une carte incapable de maîtriser le bus est dite "bus slave". Copyright Euresys s.a. 2003 Page 19 Ordinateur hôte 3.3.6 Acquisition vidéo dans un environnement PC Variantes actuelles Majorité actuelle: • Conventional PCI Version haut de gamme: • PCI-X 3.3.7 Variante future: PCI Express Extraits d'une présentation de PCI Express par le PCIsig Page 20 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 4 Acquisition Acquisition 4.1 4.1.1 Préliminaires Place du frame grabber Le frame grabber est un élément du système qui réalise l'application. Dans le cadre de cet exposé, il est intégré dans un PC. Pour une application industrielle, ce PC est responsable de tout ou partie du processus industriel. Copyright Euresys s.a. 2003 Page 21 Acquisition PIO SIO Page 22 Digitizing Unit B Digitizing Unit C Digitizing Unit D Frame Buffer Write Control Video Digitizing Unit A Digital Conditioning Timing Unit X DMA Unit X Timing Unit Y Frame Buffer 16 Mbytes Memory Bus 32 bit, 80 MHz DMA Unit Y DMA Unit Z Timing Unit Z PCI Controller Clock Synthesizer 1 Parallel Interface System Connectors TR-ST Electromagnetic Compatibility Network Z 6-way to 4-way Analog Router 3-way to 4-way Control Router Ctl & Clk Y Electromagnetic Compatibility Network Camera Connectors X Common-Mode Noise Removal Exemple analogique Serial Interface 4.1.2 Acquisition vidéo dans un environnement PC Clock Synthesizer 2 To all internal EasyCam Devices EasyCam Program Memory EasyCam Sequencer Control Bus 32 bit, 80 MHz PCI Connector Gamma Block Diagram Generic Analog Multi-Mode Acquisition Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC Exemple digital Channel Link deserializer B Rate Converter A I/O Interface 16 Mbytes Memory Bus 64 bit, 100 MHz DMA Unit A Timing Unit A Downstream Controller B Rate Converter B EasyCam Sequencer Copyright Euresys s.a. 2003 Frame Buffer Downstream Controller A LVDS A Channel Link deserializer A 2-way to 2-way Control Router LVDS B Ser Serial Interface A Video Ctl Ser I/O Electromagnetic Compatibility SystemConnectors SYSTEM Digital Conditioning Unit B Serial Interface B Camera Link B Electromagnetic Compatibility Network Camera Connectors Camera Link A Ctl Video Port Router Digital Conditioning Unit A Frame Buffer Write Control 4.1.3 Acquisition Control Bus 32 bit, 50 MHz EasyCam Program Memory To all internal EasyCam Devices DMA Unit B Timing Unit B PCI Controller PCI Connector GrabLink Expert Block Diagram Page 23 Acquisition 4.1.4 Acquisition vidéo dans un environnement PC Structure Un frame grabber typique sera constitué des éléments suivants: 4.2 4.2.1 • Connecteurs pour caméra(s) • Conditionneur analogique • Circuit de timing (base de temps) • Conditionneur digital • Mémoire tampon (buffer) • Contrôleur DMA • Contrôle auxiliaires • Software Aspects hardware Connexions La plus grande diversité est de mise. La principale difficulté provient de la petitesse de la surface réservée à l'interconnexion pour une carte PC. 4.2.2 4.2.2.1 Conditionnement analogique Applicabilité S'applique aux frame grabbers destinés à interfacer des caméras à signal vidéo analogique. 4.2.2.2 Traitements appliqués Adaptation de ligne. L'impédance caractéristique d'un câble coaxial vidéo est de 75Ω. Amplification en courant (buffer). Notamment pour permettre la mise en haute impédance. Filtrage passe-bas pour anti-aliasing. Un signal vidéo CCIR classique sera échantillonné à 14.75 MHz. Il convient d'éliminer toute composante spectrale à quelques 7 MHz. Clamping ou restauration du niveau du noir. Nécessaire car les standards vidéo analogiques ne précisent pas le niveau DC du signal vidéo. Ajustement de gain et d'offset. Similaires au contrôle du contraste (gain) et de la brillance (offset) d'un moniteur. Ces réglages sont placés sous la dépendance d'une action software. 4.2.2.3 Conversion analogique/digitale Echantillonnage entre 10 et 40 MHz. Discrétisation de la dynamique sur 8, 10 ou 12 bits (256 à 4096 niveaux). Page 24 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 4.2.2.4 Acquisition Traitements particuliers Détection de synchronisation horizontale par seuillage à mi-niveau (50% slicing). Détection de synchronisation verticale par intégration du signal de synchronisation verticale. Contrôle automatique du gain (AGC pour Automatic Gain Control). Ce mécanisme peut se baser sur l'amplitude de l'impulsion de synchronisation. 4.2.3 4.2.3.1 Base de temps Généralités Le signal vidéo (analogique ou digital) possède une structure temporelle compliquée (pixels, lignes, trames). Le frame grabber doit comprendre et obéir à cette structure temporelle. C'est le rôle du circuit de base de temps du frame grabber. 4.2.3.2 Synchronisation par boucle de phase S'applique à un signal vidéo composite "pur". Il s'agit de construire une horloge d'échantillonnage à une fréquence stable. Pour un signal CCIR, une fréquence de 14.75 MHz correspond à 768 échantillons sur la partie visible d'une ligne. Cette horloge s'obtient par multiplication de la fréquence horizontale matérialisée dans le signal vidéo par les impulsions de synchronisation horizontales. Ceci utilise une boucle de phase (PLL, Phase Lock Loop). 4.2.3.3 Synchronisation par horloge pixel S'applique à un signal vidéo composite accompagné d'un signal digital séparé destiné à servir d'horloge de digitalisation. 4.2.3.4 Signaux produits par la base de temps • Horloge d'échantillonnage. • Signal de clamping. • Signaux de contrôle de la PLL. • Signaux de validation de l'acquisition. La base de temps assure aussi les fonctions suivantes: Copyright Euresys s.a. 2003 • Démarrage du balayage pour les caméras dites à reset asynchrone. • Contrôle de l'exposition pour les caméras qui le supportent (shutter électronique). • Contrôle de l'éclairage de la scène ou de l'objet capté par la caméra (flash). • Interaction avec un signal de déclenchement issus de l'extérieur (trigger). Page 25 Acquisition 4.2.4 4.2.4.1 Acquisition vidéo dans un environnement PC Conditionnement digital Applicabilité S'applique aux frame grabbers destiné à interfacer des caméras à signal vidéo digital aussi bien qu'analogique. Dans ce cas, le conditionnement digital intervient après la digitalisation. 4.2.4.2 4.2.4.3 Traitements appliqués • Réconciliation des canaux de caméras. • Décodage de la couleur (PAL ou NTSC). • Changement d'espace de couleur (RGB, YUV ou autres) • Application de table de transformation (LUT, Look Up Tables). • Définition de zones d'intérêt. • Sous-échantillonnage (scaling) • Sur-échantillonnage (zooming) • Compression But global Conditionner les flux de données issus de la caméra de manière à constituer une matrice de pixels digitaux régulière conforme aux conventions du système d'exploitation du PC qui abrite le frame grabber. Page 26 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 4.2.5 4.2.5.1 Acquisition Mémoire Justification Adaptation des vitesses des flux de données. Une caméra délivre les données d'une image selon un canevas temporel structuré incontrôlable. Le bus PCI transmet les données à la mémoire du PC à un rythme accidenté. 4.2.5.2 Frame grabber à FIFO FIFO = First-In-First-Out Buffer d'une taille allant d'une fraction de ligne vidéo à plusieurs lignes vidéo. 4.2.5.3 Frame grabber à frame buffer Buffer d'une taille suffisante pour contenir au moins une image. Particulièrement justifié si le débit net venant de la caméra est supérieur au débit net à travers le bus PCI. Frame Grabber Board Frame Buffer Camera Control Grabber Video Data Board Surface Full frame (Area-scan) Full page (Line-scan) DMA controller Host Computer Peripheral Bus Host Memory Host Surface Full frame (Area-scan) Full page (Line-scan) Copyright Euresys s.a. 2003 Page 27 Acquisition 4.2.6 Acquisition vidéo dans un environnement PC Contrôle DMA Automate capable d'adresser de sa propre initiative une zone de la mémoire centrale du PC, doté d'un niveau avancé de programmabilité. 4.2.6.1 Ordre des pixels Un fichier bitmap de Windows commence en bas à gauche de l'image (origine "système d'axe"). L'image vidéo dans le frame buffer du frame grabber commence en haut à gauche (convention "vidéo"). 4.2.6.2 Format des pixels Un pixel monochrome occupe souvent un byte (256 niveaux de gris). Une acquisition monochrome vidéo à haute dynamique (10 ou 12 bits) utilise deux bytes par pixels. Une acquisition couleur utilise 3 bytes par pixels. Un format RGB32 place un pixel dans un mot de 32 bits, "sacrifiant" un byte. Un format RGB24 place quatre pixels dans trois mots de 32 bits sans perdre d'espace. Certaines applications nécessitent que les composantes couleur soient déposées dans trois buffers distincts en mémoire (transfert planaire). 4.2.6.3 Scatter-gather Une application software qui tourne sur un PC sous un système d'exploitation Windows utilise un mécanisme de mémoire virtuelle. Une adresse mémoire de l'application ne désigne de la mémoire physique que si la page correspondante est chargée du disque. Le contrôleur DMA doit nécessairement pointer vers de la mémoire physique. Le driver doit verrouiller pour l'usage DMA une zone de mémoire physique de taille convenable pour contenir une (ou des) images. Cette manière de faire est à la fois "OS-friendly " et "user-friendly". Le driver interroge l'OS qui lui rapporte la localisation physique du buffer réservé par l'application. Ce buffer est en général discontinu et dispersé (scatter) page par page (4 K bytes) dans la mémoire. Le contrôleur DMA dépose l'image dans cette zone disparate. Le mécanisme d'adressage virtuel du processeur se charge de présenter à l'application une version "rassemblée" (gather) de l'image. Page 28 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 4.3 Acquisition Aspects software Pour hardware qu'il soit, un frame grabber demande plus de temps de développement en software qu'en hardware. C'est sans doute une règle de l'électronique moderne. 4.3.1 Définition Un frame grabber est un matériel qui s'installe dans un PC. A ce titre, il est supporté par une extension du système d'exploitation (OS). L'OS a pour rôle d'animer chaque élément hardware de l'ordinateur. Cette extension de l'OS s'appelle un driver (pilote). Le driver est un software développé, fourni et maintenu par le constructeur du frame grabber. 4.3.2 Client Le système de vision basé sur PC comporte une lourde composante informatique. L'utilisateur du frame grabber est donc en général un programmeur, responsable de l'intégration du frame dans son application. Appelons-le l'intégrateur. 4.3.3 4.3.4 Missions du driver • Initialisation • Téléchargement des éléments programmables du hardware (FPGA) • Gestion du transfert des données • Dialogue entre l'application et le hardware (commandes et statuts, y compris rapport d'erreurs) Application programming interface Un driver se présente à l'intégrateur à travers son API, Application Programming Interface. L'API est un jeu de fonctions dont la syntaxe et l'usage font l'objet d'une documentation. Toute caractéristique programmable d'un frame grabber est invoquée par un appel adéquat d'une fonction de l'API. Euresys a normalisé une API unique pour tous ses frame grabbers, appelée MultiCam. 4.3.5 Fonctionnalité Par une combinaison judicieuse d'appel aux fonctions de l'API, l'intégrateur conditionne le fonctionnement du frame grabber. Un driver bien construit supporte deux styles de fonctionnement: Copyright Euresys s.a. 2003 • Séquentiel • Evénementiel Page 29 Acquisition 4.3.5.1 Acquisition vidéo dans un environnement PC Style séquentiel Flux des opérations: 4.3.5.2 • L'application prépare la caméra et le frame grabber • L'application attend rassemblées • L'application l'acquisition • La fonction sort quand l'acquisition est terminée • L'application réalise le traitement de l'image • Retour au début de la boucle que appelle les une conditions fonction d'acquisition bloquante qui soient démarre Style événementiel Basé sur des objets définis par le système d'exploitation qu'on appelle des "threads". Un thread est une filière d'exécution séquentielle dont il existe plusieurs représentants simultanés. Chaque représentant partage des ressources communes définies dans un "process". Sur un événement survenant au sein de l'application, on active un thread qui: • Prépare la caméra et le frame grabber • Attend que les conditions d'acquisition soient rassemblées • Appelle une fonction non bloquante qui démarre l'acquisition • S'endort Sur la fin de l'acquisition, on active un thread qui: • Réalise le traitement d'image • S'endort MultiCam Domain Image transported from camera to destination surface Acquisition Phase FILLING PROCESSING FREE Destination surface State Surface Processing User Process Callback Thread Image Processing Task Image in destination surface being processed by user-written code Main Application Program Page 30 Optional synchronisation Main Application Thread Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 4.3.6 Acquisition Evolutivité Pour suivre les demandes du marché et les possibilités e la technologie, le constructeur d'un frame grabber est tenu de faire évoluer régulièrement la composante software de sa production.(update release). C'est une tâche de maintenance des produits qui peut être extrêmement lourde. 4.3.6.1 Diversité des systèmes d'exploitation Chaque système d'exploitation impose ses propres conventions à l'écriture d'un driver. Lignée des OS Microsoft "domestiques" • Windows 95, 98, ME, XP Lignée des OS Microsoft "professionnels" • Windows NT-3, NT-4, 2000, XP Lignée Open Source • 4.3.6.2 Linux Diversité des environnements Une API compatible C est différente d'une API compatible C++. Les environnements de programmation, selon leur marque, ont des exigences particulières. 4.3.6.3 • Visual C++ de Microsoft • C++ Builder de Borland Style d'API Plusieurs choix d'architecture: 4.3.6.4 • API fonctionnelle classique • Classe C++ • Objet COM (Component Object Model) Evolution des fonctionnalités Grâce à l'usage des composants reprogrammables in situ (FPGA, CPLD), le hardware moderne peut être rendu évolutif. Il s'adapte à de nouvelles contingences sans évolution du circuit imprimé. S'agissant d'un frame grabber, on cite l'exemple du support d'une nouvelle caméra apparue sur le marché dotée de fonctions originales. Le client voit cette évolution sous la forme d'une mise à niveau du driver. Copyright Euresys s.a. 2003 Page 31 Acquisition 4.4 4.4.1 Acquisition vidéo dans un environnement PC Considérations particulières Multiplicité des sources La tendance est aux frame grabber supportant de multiples caméras. Selon les ressources hardware incorporées dans le frame grabber, on distingue: 4.4.2 • Frame grabber à commutation séquentielle • Frame grabber à acquisition concurrente Considérations de débit Pour chaque application, un bilan de l'adéquation des besoins et des ressources en matière de transfert d'information entre la caméra et la mémoire du PC. Un bus PCI bien constitué non chargé est capable de transférer 80 à 90 Mbytes/s. 4.4.3 4.4.3.1 Missions non liées à la vidéo Contrôle de l'éclairage Pour capter l'image d'un objet en mouvement, la technique du flash est possible. Le frame grabber doit assurer que le flash se produit à un instant correct dans le séquencement temporel d'une caméra. 4.4.3.2 Trigger externe Le frame grabber utilise une caméra vidéo pour prendre une "photo" d'une scène en général mobile. Ce sont les conditions extérieures qui déterminent quand la photo doit être prise. Le frame grabber se doit d'être doté d'une ligne de commande "system friendly" pour ce déclenchement. 4.4.3.3 Entrées et sorties à usage général Un frame grabber bien conçu pourra économiser à un intégrateur l'achat d'une carte I/O à installer dans le PC. Page 32 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 4.5 Acquisition "Frame processor" versus "Frame grabber" Equilibre de développement technique par rapport à la demande du marché. Actuellement, la demande principale concerne des cartes sans traitement embarqué. Les spécialistes des "usines à gaz" software perdent des marchés. La mise en œuvre des traitements embarqués est rigide et difficile: langages non-standard, architectures figées. A l'opposé, le software sur PC permet de traiter des problèmes complexes avec une relative aisance. Le frame processor n'est pas le fer de lance de la société Euresys. Copyright Euresys s.a. 2003 Page 33 Acquisition vidéo dans un environnement PC 5 Conclusions Conclusions 5.1 Application des frame grabbers Application broadcast • Matériel de studio Applications médicales • Radiologie télévisée • Endoscopie Applications scientifiques • Analyse de réactions chimiques • Microscopie Applications industrielles (machine vision) • Contrôle de qualité • Contrôle de processus • Packaging des semi-conducteurs • Assemblage électronique Applications vidéo-surveillance • Magnétoscope numérique • Diffusion par réseau • Alarme par analyse d'image Applications domestiques • Saisie magnétoscope et caméscope • Montage vidéo sur ordinateur personnel 5.2 Euresys Activité hardware: Développe une gamme complète de frame grabbers Couche software de pilotage (MultiCam) Utilitaires d'évaluation (EasyGrab) Activité software: Développe une gamme complète d'outils de traitement d'images à vocation industrielle Librairie de fonctions de traitement d'image (eVision) Utilitaires d'évaluation (EasyAccess) Activité commerciale: Promotion et commercialisation des produits dans le monde entier Siège central à Angleur Filiale à Dallas, Texas Bureau de liaison à Singapour Début d'une implantation au Japon Chiffre d'affaire d'environ 6.000.000 € en 2002. Copyright Euresys s.a. 2003 Page 35 Conclusions 5.3 5.3.1 Acquisition vidéo dans un environnement PC Gamme Frame grabber analogiques Picolo Picolo Pro 2 Picolo Pro 3 Picolo Tetra Domino Alpha Domino Gamma Page 36 Copyright Euresys s.a. 2003 Acquisition vidéo dans un environnement PC 5.3.2 Frame grabber digitaux GrabLink Value 5.3.3 Conclusions GrabLink Expert Software Copyright Euresys s.a. 2003 Page 37 Conclusions 5.4 Acquisition vidéo dans un environnement PC Opportunités L'acquisition et le traitement des images est un "sport complet". Les spécialisations impliquées sont nombreuses. Page 38 • Circuits imprimés • Schématique • Circuits analogiques • Circuits digitaux • FPGA / CPLD • Drivers • Software enfoui • Software DSP • Librairie de traitement d'image • Software de démonstration et de support • Software d'application • Support clientèle • Ingénieur d'application Copyright Euresys s.a. 2003 Copyright Euresys s.a. 2003 Last edition 27-03-03