Introduction à l`acquisition vidéo dans un environnement PC

publicité
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
Téléchargement