Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Copyright Euresys s.a. 2003 Auteur: Yves Joskin
Introduction à l'acquisition vidéo dans un environnement PC
Exposé donnédans le cadre du cours
"Introductionaux techniquesaudio et video"
Revision History
Rev 1.1: 28 mars, 2001
Rev 1.2: 19 avril, 2001
Rev 1.3: 15 avril, 2002
Rev 1.4: 26 mars, 2003
Contents
Copyright Euresys s.a. 2003 Page 3
Contents 1 Introduction.............................................................................................................. 5
1.1 Frame Grabber.............................................................................................................5 1.1.1 Definition.................................................................................................................. 5 1.1.2 "Le contraire" d'une carte VGA ................................................................................ 5 1.1.3 Usage ...................................................................................................................... 6
1.2 Structure de l'exposé ...................................................................................................6 1.2.1 Sources d'images .................................................................................................... 6 1.2.2 Ordinateur hôte........................................................................................................ 6 1.2.3 Acquisition ............................................................................................................... 6 1.2.4 Conclusions ............................................................................................................. 6
2 Sources d'images .................................................................................................... 7 2.1 Classification ................................................................................................................7
2.1.1 Avec signal vidéo..................................................................................................... 7 2.1.2 Sans signal vidéo..................................................................................................... 7 2.1.3 Cadre de cet exposé................................................................................................ 7
2.2 Signal vidéo..................................................................................................................8 2.2.1 Définition.................................................................................................................. 8 2.2.2 Signaux vidéo analogiques ...................................................................................... 8
2.2.2.1 Composite...............................................................................................................8 2.2.2.2 Composantes..........................................................................................................8 2.2.2.3 Oscillogramme ........................................................................................................8 2.2.2.4 Standards vidéo ......................................................................................................9 2.2.2.5 Vidéo sauvage ........................................................................................................9
2.2.3 Signaux vidéo numériques....................................................................................... 9 2.2.3.1 Version digitalisée d'un standard analogique..........................................................9 2.2.3.2 Vidéo digitale domestique.......................................................................................9 2.2.3.3 Vidéo digitale industrielle ........................................................................................9 2.2.3.4 Comparaison série/parallèle .................................................................................10 2.2.3.5 Standardisation d'un flux digital ou bitstream........................................................10
2.3 Caméras.....................................................................................................................11 2.3.1 Définition................................................................................................................ 11 2.3.2 Capteurs ................................................................................................................ 11 2.3.3 Formation du signal vidéo...................................................................................... 12
2.3.3.1 Caméra analogique...............................................................................................12 2.3.3.2 Caméra digitale.....................................................................................................12
2.3.4 Particularités des caméras..................................................................................... 12 2.3.4.1 Entrelacement.......................................................................................................12 2.3.4.2 Contrôle de l'exposition.........................................................................................13 2.3.4.3 Contrôle du balayage............................................................................................13 2.3.4.4 Capture d'image de sujets mobiles .......................................................................13 2.3.4.5 Caméras linéaires .................................................................................................14 2.3.4.6 Multiplicité des canaux..........................................................................................14 2.3.4.7 Implication pour les frame grabbers......................................................................14
3 Ordinateur hôte...................................................................................................... 15 3.1 Pourquoi le PC ? ........................................................................................................15 3.2 Structure simplifiée d'un PC.......................................................................................16
3.2.1 Diagramme ............................................................................................................ 16 3.2.2 Processeur............................................................................................................. 16 3.2.3 Chip set.................................................................................................................. 16 3.2.4 North bridge ........................................................................................................... 17 3.2.5 South bridge .......................................................................................................... 17 3.2.6 Mémoire................................................................................................................. 17 3.2.7 Contrôleur graphique ............................................................................................. 17 3.2.8 Bus PCI.................................................................................................................. 17 3.2.9 Bus ISA.................................................................................................................. 17
3.3 Bus PCI ......................................................................................................................18 3.3.1 Introduction ............................................................................................................ 18 3.3.2 Structure ................................................................................................................ 18 3.3.3 Agents.................................................................................................................... 18 3.3.4 Burst ...................................................................................................................... 18
Contents
Page 4 Copyright Euresys s.a. 2003
3.3.5 DMA....................................................................................................................... 19 3.3.6 Variantes actuelles................................................................................................. 20 3.3.7 Variante future: PCI Express.................................................................................. 20
4 Acquisition.............................................................................................................. 21 4.1 Préliminaires.............................................................................................................. 21
4.1.1 Place du frame grabber.......................................................................................... 21 4.1.2 Exemple analogique............................................................................................... 22 4.1.3 Exemple digital....................................................................................................... 23 4.1.4 Structure ................................................................................................................ 24
4.2 Aspects hardware...................................................................................................... 24 4.2.1 Connexions ............................................................................................................ 24 4.2.2 Conditionnement analogique.................................................................................. 24
4.2.2.1 Applicabilité...........................................................................................................24 4.2.2.2 Traitements appliqués ..........................................................................................24 4.2.2.3 Conversion analogique/digitale.............................................................................24 4.2.2.4 Traitements particuliers ........................................................................................25
4.2.3 Base de temps ....................................................................................................... 25 4.2.3.1 Généralités ...........................................................................................................25 4.2.3.2 Synchronisation par boucle de phase...................................................................25 4.2.3.3 Synchronisation par horloge pixel.........................................................................25 4.2.3.4 Signaux produits par la base de temps ................................................................25
4.2.4 Conditionnement digital.......................................................................................... 26 4.2.4.1 Applicabilité...........................................................................................................26 4.2.4.2 Traitements appliqués ..........................................................................................26 4.2.4.3 But global..............................................................................................................26
4.2.5 Mémoire ................................................................................................................. 27 4.2.5.1 Justification ...........................................................................................................27 4.2.5.2 Frame grabber à FIFO..........................................................................................27 4.2.5.3 Frame grabber à frame buffer...............................................................................27
4.2.6 Contrôle DMA ........................................................................................................ 28 4.2.6.1 Ordre des pixels....................................................................................................28 4.2.6.2 Format des pixels .................................................................................................28 4.2.6.3 Scatter-gather .......................................................................................................28
4.3 Aspects software ....................................................................................................... 29 4.3.1 Définition ................................................................................................................ 29 4.3.2 Client...................................................................................................................... 29 4.3.3 Missions du driver .................................................................................................. 29 4.3.4 Application programming interface......................................................................... 29 4.3.5 Fonctionnalité......................................................................................................... 29
4.3.5.1 Style séquentiel ....................................................................................................30 4.3.5.2 Style événementiel ...............................................................................................30
4.3.6 Evolutivité............................................................................................................... 31 4.3.6.1 Diversité des systèmes d'exploitation ...................................................................31 4.3.6.2 Diversité des environnements ..............................................................................31 4.3.6.3 Style d'API ............................................................................................................31 4.3.6.4 Evolution des fonctionnalités ................................................................................31
4.4 Considérations particulières...................................................................................... 32 4.4.1 Multiplicité des sources .......................................................................................... 32 4.4.2 Considérations de débit ......................................................................................... 32 4.4.3 Missions non liées à la vidéo.................................................................................. 32
4.4.3.1 Contrôle de l'éclairage ..........................................................................................32 4.4.3.2 Trigger externe......................................................................................................32 4.4.3.3 Entrées et sorties à usage général .......................................................................32
4.5 "Frame processor" versus "Frame grabber" ............................................................. 33 5 Conclusions ........................................................................................................... 35
5.1 Application des frame grabbers ................................................................................ 35 5.2 Euresys...................................................................................................................... 35 5.3 Gamme...................................................................................................................... 36
5.3.1 Frame grabber analogiques ................................................................................... 36 5.3.2 Frame grabber digitaux .......................................................................................... 37 5.3.3 Software................................................................................................................. 37
5.4 Opportunités.............................................................................................................. 38
Acquisition vidéo dans un environnement PC Introduction
Copyright Euresys s.a. 2003 Page 5
1 Introduction
1.1 Frame Grabber
1.1.1 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)
Frame Grabber
PCI bus Connector
1.1.2 "Le contraire" d'une carte VGA
Computer to Video
PC Video
Monitor
Graphic Card
Video to Computer
PC
Frame Grabber
Video Camera
Introduction Acquisition vidéo dans un environnement PC
Page 6 Copyright Euresys s.a. 2003
1.1.3 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 Structure de l'exposé
1.2.1 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
Acquisition vidéo dans un environnement PC Sources d'images
Copyright Euresys s.a. 2003 Page 7
2 Sources d'images
2.1 Classification Pour situer le sujet de l'exposé, on considère deux cas:
• L'image est représentée par un signal vidéo
• L'image n'est pas représentée par un signal vidéo
2.1.1 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:
• Caméra
• Carte graphique d'un PC
• Magnétoscope
• Caméscope
• Caméra vidéo digitale
2.1.2 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:
• Scanner de bureau
• Scanner médical (Computerized Tomography)
• Imagerie par résonance magnétique
• Réseaux, Internet
• Appareil photographique digital
2.1.3 Cadre de cet exposé
L'image est disponible sous la forme d'un signal vidéo.
Sources d'images Acquisition vidéo dans un environnement PC
Page 8 Copyright Euresys s.a. 2003
2.2 Signal vidéo
2.2.1 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 Signaux vidéo analogiques
2.2.2.1 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):
• Luminance séparée de la chrominance
• Composantes rouges, vertes, bleues
• Synchronisation séparée
2.2.2.3 Oscillogramme
Acquisition vidéo dans un environnement PC Sources d'images
Copyright Euresys s.a. 2003 Page 9
2.2.2.4 Standards vidéo
Résolution normale, usage broadcast, domestique ou surveillance
• PAL (couleur): 625 lignes
• NTSC (couleur): 525 lignes Haute résolution, usage broadcast
• HDTV: nombreuses variantes
2.2.2.5 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 Signaux vidéo numériques
2.2.3.1 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.
Sources d'images Acquisition vidéo dans un environnement PC
Page 10 Copyright Euresys s.a. 2003
2.2.3.4 Comparaison série/parallèle
T0
20 MHz Parallel Digital Transmission Four Lines
Time
Bit 1@ T0 + 50ns
Bit 1@ T0
Bit 1 @ T0 + 100ns
Bit 2@ T0 + 50ns
Bit 2@ T0
Bit 2 @ T0 + 100ns
Bit 3@ T0 + 50ns
Bit 3@ T0
Bit 3 @ T0 + 100ns
Bit 4@ T0 + 50ns
Bit 4@ T0
Bit 4 @ T0 + 100ns
Parallel Digital Device
T0
80 MHz Serial Digital Transmission One Line
Time Bit 1,2,3,4 @ T0
Serial Digital Device
Bit1
Bit2
Bit3
Bit4
Bit1
Bit2
Bit3
Bit4
Bit 1
Bit 2
Bit 3
Bit 4
Bit 1,2,3,4 @ T0 + 50 ns Bit 1,2,3,4 @ T0 + 100 ns
3
45
4
12
17
13 14 15 16
27 28 29 30 31 32 33 34
43 44
50
46 47 48 49
53
95
54
62
67
63 64 65 66
77 78 79 80 81 82 83 84
93 94
100
96 97 98 99
IGND I5V
B1- B2- B3- B4- B5- B6- B7-
S0- S1- S2- S3- S4- S5- S6- S7-
R0- R1- R2- R3- R4- R5- R6- R7-
1 2
51 52
IGND I5V A8 A9B8 B9 5 6 7 8 9
10 11
55 56 57 58 59 60 61
A1- A2- A3- A4- A5- A6- A7-
A1+A2+A3+A4+A5+A6+A7+
18 19 20 21 22 23 24 25 26
68 69 70 71 72 73 74 75 76
P0- P1- P2- P3- P4- P5- P6- P7-
P0+ P1+ P2+ P3+ P4+ P5+ P6+ P7+
B1+ B2+ B3+ B4+ B5+ B6+ B7+
37 38 39 40
35 36
41 42
87 88 89 90
85 86
91 92
Q0- Q1- Q2- Q3- Q4- Q5- Q6- Q7-
Q0+ Q1+ Q2+ Q3+ Q4+ Q5+ Q6+ Q7+ S0+S1+S2+S3+S4+S5+S6+S7+
R0+ R1+ R2+ R3+ R4+ R5+ R6+ R7+
System Control
Camera A Control
Camera B Control
Camera Data Lane P
Camera Data Lane R
Camera Data Lane Q
Camera Data Lane S
Bottom
Top
Shield 1 1CC4- 2CC3+ 3CC2- 4CC1+ 5SerTFG+ 6SerTC- 7X3+ 8Xclk+ 9X2+ 10X1+ 11X0+ 12Shield 3 13
14 Shield 2 15 CC4+ 16 CC3- 17 CC2+ 18 CC1- 19 SerTFG- 20 SerTC+ 21 X3- 22 Xclk- 23 X2- 24 X1- 25 X0- 26 Shield 4
View from outside
Camera Link LH26F
2.2.3.5 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.
Acquisition vidéo dans un environnement PC Sources d'images
Copyright Euresys s.a. 2003 Page 11
2.3 Caméras
2.3.1 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 (contre-exemple: slow-scan). Constitution d'une caméra:
• Chambre noire
• Optique formatrice d'image
• Capteur solid-state
• Electronique construisant le signal vidéo Scene
CameraSensorScanning Control
Signal Handling
Video Signal
Lens
2.3.2 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).
Light sensitive area
Interline transfer CCD Sensor
Vertical CCD Registers
Output CCD Register
Output
Light sensitive cell
Frame transfer CCD Sensor Output CCD Register
Output
Memory Array
Sources d'images Acquisition vidéo dans un environnement PC
Page 12 Copyright Euresys s.a. 2003
2.3.3 Formation du signal vidéo
2.3.3.1 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 GrabberAnalog Camera
SensorAnalog
ToDigital
Converter
CCIR or EIAAnalog Connection
Digital Frame Grabber"Digital" Camera
SensorAnalog
ToDigital
Converter
SpecificDigital Connection
2.3.4 Particularités des caméras
2.3.4.1 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".
Acquisition vidéo dans un environnement PC Sources d'images
Copyright Euresys s.a. 2003 Page 13
2.3.4.2 Contrôle de l'exposition
Obturateur électronique par effacement contrôlé des charges créées au niveau du capteur.
Charge at a photosite Slope is proportional to
the light intensity reaching the photosite
Response Level
Discharged Level
Exposure Duration
Frame Readout
Frame Exposure Building frame data from incoming light
Extracting frame data out of sensor
Transfer Gate
Reset Condition Reset Condition Time Sensor Condition
Sensor Output
2.3.4.3 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.
Expose 3
Readout 3
Expose 1
Readout 1
Frame Rate-1
Expose 2
Readout 2
Transfer Gate Transfer Gate Transfer Gate
Reset Time Sensor Condition
Sensor Output
Reset Reset
Expose 1
Readout 1
Camera Asynchronous
Reset
Expose 2
Readout 2
Camera Asynchronous
Reset
Transfer Gate Transfer Gate
Reset Time Sensor Condition
Sensor Output
Reset Reset
2.3.4.4 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.
Sources d'images Acquisition vidéo dans un environnement PC
Page 14 Copyright Euresys s.a. 2003
2.3.4.5 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.
Motion
Line-Scan Camera
Axial Direction
Transverse Direction
Observed Line
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
Dual tap linear CCD Sensor
Output CCD Register Output 1
Output 2
Output CCD Register
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.
Acquisition vidéo dans un environnement PC Ordinateur hôte
Copyright Euresys s.a. 2003 Page 15
3 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.
Ordinateur hôte Acquisition vidéo dans un environnement PC
Page 16 Copyright Euresys s.a. 2003
3.2 Structure simplifiée d'un PC
3.2.1 Diagramme
Figure simplifiée, typique d'un PC actuel.
3.2.2 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:
• North bridge
• South bridge
South bridge
CD/DVD
Disque dur
Modem
Ecran
Adaptateur graphique
Carte de capture
Carte de capture
Interface réseau
North bridge
Processeur
Mémoire système
Caméras
Bus graphique (AGP)
Bus du processeur
(FSB)
Bus de la mémoire
Bus périphérique rapide (PCI)
Bus périphérique lent (USB)
Bus de stockage (ATA)
Monde…
Lignes téléphoniques
Ethernet, réseaux
Slots PCI
Clavier
Souris
100 MB/s
500 MB/s 1 GB/s
1 GB/s
10 MB/s
1 MB/s
Acquisition vidéo dans un environnement PC Ordinateur hôte
Copyright Euresys s.a. 2003 Page 17
3.2.4 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:
• Le microprocesseur
• La mémoire centrale
• Le contrôleur graphique
• Le bus PCI
3.2.5 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:
• Le bus PCI
• Le disque dur
• Le bus ISA
3.2.6 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.
Ordinateur hôte Acquisition vidéo dans un environnement PC
Page 18 Copyright Euresys s.a. 2003
3.3 Bus PCI
3.3.1 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.
• http://www.pcisig.com/ (PCI special interest group)
• http://www.picmg.org/ (PCI Industrial Computer Manufacturers Group)
3.3.2 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:
• Write: de l'initiateur vers la cible
• Read: de la cible vers l'initiateur
Acquisition vidéo dans un environnement PC Ordinateur hôte
Copyright Euresys s.a. 2003 Page 19
3.3.5 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".
Ordinateur hôte Acquisition vidéo dans un environnement PC
Page 20 Copyright Euresys s.a. 2003
3.3.6 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
Acquisition vidéo dans un environnement PC Acquisition
Copyright Euresys s.a. 2003 Page 21
4 Acquisition
4.1 Préliminaires
4.1.1 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.
Acquisition Acquisition vidéo dans un environnement PC
Page 22 Copyright Euresys s.a. 2003
4.1.2 Exemple analogique
Digitizing
Unit ADigitizing
Unit BDigitizing
Unit CDigitizing
Unit D
Ctl
& C
lk
Dig
ital
Con
ditio
ning
6-way
to 4-way Analog Router
Vide
o
Com
mon
-Mod
e N
oise
R
emov
al
3-way to 4-way Control Router
TimingUnit X
TimingUnit Y
TimingUnit Z
Cam
era
Con
nect
ors
X
Y
Z
Elec
trom
agne
tic C
ompa
tibilit
y N
etw
ork
Fram
e Bu
ffer
Writ
e C
ontro
l
DMA Unit X
DMA Unit Y
DMAUnit Z
Frame Buffer
16 Mbytes
Memory Bus32 bit, 80 MHz
EasyCam Program Memory
EasyCam Sequencer
PCI Connector
PCI Controller
Para
llel
Inte
rface
Seria
l In
terfa
ceSyst
em C
onne
ctor
s
TR-ST
PIO
SIO
Elec
trom
agne
tic C
ompa
tibilit
y N
etw
ork
Clock Synthesizer 1
Clock Synthesizer 2
Control Bus32 bit, 80 MHz
To all internalEasyCam Devices
Gamma Block DiagramGeneric Analog Multi-Mode Acquisition
Acquisition vidéo dans un environnement PC Acquisition
Copyright Euresys s.a. 2003 Page 23
4.1.3 Exemple digital
DMA Unit A
DMAUnit B
DigitalConditioning
Unit A
TimingUnit BRate
Converter B
Rate Converter A
TimingUnit A
DownstreamController B
DownstreamController A
DigitalConditioning
Unit B
Control Bus32 bit, 50 MHz To all internal
EasyCam Devices
Ctl
LVD
S A
Vide
o
Cha
nnel
Lin
k de
seria
lizer
A
PCI Connector
PCI Controller
I/O
Inte
rface
GrabLink Expert Block Diagram
Ser
Seria
l In
terfa
ceA
EasyCam Program Memory
EasyCam Sequencer
Syst
emC
onne
ctor
s
SYSTEM
I/O
Elec
trom
agne
tic C
ompa
tibilit
y
Ctl
LVD
S B
Vide
o
Cha
nnel
Lin
k de
seria
lizer
B
Ser
Ser
ial
Inte
rface
B
Cam
era
Con
nect
ors
Camera Link A
Camera Link B
Ele
ctro
mag
netic
Com
patib
ility
Net
wor
k
2-way to 2-way Control Router
Port Router
Fram
e Bu
ffer
Writ
e C
ontro
l
Frame Buffer
16 Mbytes
Memory Bus64 bit, 100 MHz
Acquisition Acquisition vidéo dans un environnement PC
Page 24 Copyright Euresys s.a. 2003
4.1.4 Structure
Un frame grabber typique sera constitué des éléments suivants:
• 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
4.2 Aspects hardware
4.2.1 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 Conditionnement analogique
4.2.2.1 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).
Acquisition vidéo dans un environnement PC Acquisition
Copyright Euresys s.a. 2003 Page 25
4.2.2.4 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 Base de temps
4.2.3.1 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:
• 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).
Acquisition Acquisition vidéo dans un environnement PC
Page 26 Copyright Euresys s.a. 2003
4.2.4 Conditionnement digital
4.2.4.1 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 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
4.2.4.3 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.
Acquisition vidéo dans un environnement PC Acquisition
Copyright Euresys s.a. 2003 Page 27
4.2.5 Mémoire
4.2.5.1 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
Video Data
Camera Control
Frame Buffer
Grabber
Host Memory
Host Surface Full frame (Area-scan)Full page (Line-scan)
Board Surface Full frame (Area-scan) Full page (Line-scan)
DMA controller
Host Computer Peripheral Bus
Acquisition Acquisition vidéo dans un environnement PC
Page 28 Copyright Euresys s.a. 2003
4.2.6 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.
Acquisition vidéo dans un environnement PC Acquisition
Copyright Euresys s.a. 2003 Page 29
4.3 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 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)
4.3.4 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:
• Séquentiel
• Evénementiel
Acquisition Acquisition vidéo dans un environnement PC
Page 30 Copyright Euresys s.a. 2003
4.3.5.1 Style séquentiel
Flux des opérations:
• L'application prépare la caméra et le frame grabber
• L'application attend que les conditions d'acquisition soient rassemblées
• L'application appelle une fonction bloquante qui démarre 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
4.3.5.2 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
Acquisition Phase
Destination surfaceState FILLING PROCESSING FREE
Image transported from camera to destination surface
User Process Callback Thread Image Processing Task
Main ApplicationThread Main Application Program
Image in destination surfacebeing processed
by user-written code
Optional synchronisation
SurfaceProcessing
Acquisition vidéo dans un environnement PC Acquisition
Copyright Euresys s.a. 2003 Page 31
4.3.6 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
• Linux
4.3.6.2 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.
• Visual C++ de Microsoft
• C++ Builder de Borland
4.3.6.3 Style d'API
Plusieurs choix d'architecture:
• API fonctionnelle classique
• Classe C++
• Objet COM (Component Object Model)
4.3.6.4 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.
Acquisition Acquisition vidéo dans un environnement PC
Page 32 Copyright Euresys s.a. 2003
4.4 Considérations particulières
4.4.1 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:
• Frame grabber à commutation séquentielle
• Frame grabber à acquisition concurrente
4.4.2 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 Missions non liées à la vidéo
4.4.3.1 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.
Acquisition vidéo dans un environnement PC Acquisition
Copyright Euresys s.a. 2003 Page 33
4.5 "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.
Acquisition vidéo dans un environnement PC Conclusions
Copyright Euresys s.a. 2003 Page 35
5 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.
Conclusions Acquisition vidéo dans un environnement PC
Page 36 Copyright Euresys s.a. 2003
5.3 Gamme
5.3.1 Frame grabber analogiques
Picolo Picolo Pro 2
Picolo Pro 3 Picolo Tetra
Domino Alpha Domino Gamma
Acquisition vidéo dans un environnement PC Conclusions
Copyright Euresys s.a. 2003 Page 37
5.3.2 Frame grabber digitaux
GrabLink Value GrabLink Expert
5.3.3 Software
Conclusions Acquisition vidéo dans un environnement PC
Page 38 Copyright Euresys s.a. 2003
5.4 Opportunités L'acquisition et le traitement des images est un "sport complet". Les spécialisations impliquées sont nombreuses.
• 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
Last edition 27-03-03
Copyright Euresys s.a.
2003