>Voici un circuit, directement géré par votre ordinateur PC, avec lequel vous pourrez superposer, en temps réel, des inscriptions et des titres sur une image vidéo provenant, entre autres, d’une caméra ou d’une cassette vidéo.
Il est idéal pour le titrage de films professionnels ou amateurs. Petits détails qui ne gâteront pas votre plaisir, il est de réalisation simple, est peu coûteux et est facile à mettre en oeuvre.
Dans le numéro 16 de votre mensuel préféré, nous vous proposions une titreuse vidéo qui permettait, après inscription en mémoire, d’afficher quelques mots sur un écran. Le succès de ce circuit nous a incités à aller plus loin et à vous offrir aujourd’hui un outil professionnel.
Si vous vous intéressez, même de loin, à la vidéo, vous vous êtes certainement demandé, en regardant un film ou une émission à la télévision, quel est l’outil qui permet d’afficher des textes ou des logos en surimpression sur les images.
Si cette question est restée en suspend, vous trouverez la réponse dans ces pages, car la réalisation que nous vous proposons maintenant est justement une titreuse vidéo en temps réel, plus connue sous le nom de Gen-Lock. Vous constaterez par vous-même que c’est beaucoup plus simple que vous ne le pensiez et qu’un tel outil est parfaitement à votre portée.
Depuis l’apparition de la télévision et des premiers ordinateurs, le titrage a connu une révolution : par l’intermédiaire d’appareils spécifiques, il est devenu possible de superposer un ou plusieurs caractères au signal vidéo composite puis d’envoyer l’ensemble “sur l’air” pour être reçu sur nos “étranges lucarnes”.
L’exemple le plus criant est sans aucun doute le “logo” des différents émetteurs, celui qui apparaît toujours dans un coin de l’écran pour nous rappeler sur quelle chaîne le téléviseur est réglé.
L’appareil que nous vous proposons ici est capable de capturer un signal vidéo, de lui insérer un second signal contenant un texte synchronisé avec les images, puis de produire en sortie un signal vidéo composite, résultat de la superposition des deux autres.
Ce dispositif a une certaine ressemblance avec celui que nous avons décrit dans le numéro 16 d’ELM, du moins en ce qui concerne ses dimensions, son raccordement à la “carte connecteurs” et les entrées/sorties de cette carte.
A la différence de son aînée, la titreuse proposée ici ne mémorise aucun caractère et donc, ne peut pas fonctionner de façon indépendante, c’est-à-dire déconnecté du PC.
Ce qui pourrait paraître être un inconvénient est tout au contraire un avantage.
En effet, cette titreuse sert à envoyer des inscriptions en surimpression en temps réel, pendant l’enregistrement d’un film, ou également pendant la reproduction d’une émission télévisée ou d’une prise de vue en circuit fermé.
L’étude du schéma
Le schéma synoptique de la figure 1 donne une idée assez précise des étages composant notre titreuse et a un petit goût de simplicité qui n’est pas sans déplaire !
En regardant le schéma électrique de la figure 2, on remarque que, cette fois, les circuits intégrés destinés à l’élaboration du signal vidéo sont au nombre de deux : le EL4583C d’Elantec et le STV9426 de SGS-Thomson.
Ce choix est essentiellement dû aux caractéristiques du composant destiné à produire les inscriptions, le STV9426.
Certains lecteurs pourront se demander pourquoi nous avons changé de circuit intégré, alors que pour le premier montage, nous avions réussi à tout faire avec le STV5730. La réponse tient simplement à une caractéristique particulière du STV9426. En effet, celuici permet de choisir les dimensions des caractères qu’il produit et de personnaliser le tableau des symboles en autorisant son utilisateur à en ajouter jusqu’à 26 de son choix.
Cela n’est pas sans conséquence car, si pour réaliser une simple titreuse capable d’identifier des caméras, des sources vidéo ou des films, un nombre limité de caractères et de formats suffisent, pour réaliser un véritable Gen-Lock, il est nécessaire de pouvoir travailler avec un maximum de liberté afin que l’utilisateur puisse personnaliser les textes en les adaptant à chaque situation et à chaque langue.
Donc, pour bénéficier de fonctions supplémentaires, nous avons adopté le STV9426. Comme tout n’est pas toujours parfait dans le meilleur des mondes, il y a une petite contrepartie.
Le STV9426 présente l’inconvénient de ne pas pouvoir extraire les synchronisations du signal vidéo auquel il doit mélanger les images qu’il produit.
C’est la raison de la présence du EL4583C qui est un circuit intégré spécialement conçu pour extraire d’un signal vidéo composite standard (1 Vpp), les signaux de synchronisation verticale (trame) et horizontale (ligne).
Dans notre montage, il travaille dans la configuration classique conseillée par le constructeur: la porteuse vidéo entre par la broche 4, par l’intermédiaire du condensateur de couplage C1, et il est possible de prélever respectivement les impulsions de synchronisation verticale (VSYNC) et horizontal (HSYNC) sur les broches 5 et 15.
En outre, le microcontrôleur rend la synchro composite (CSYNC) disponible sur la broche 3. C’est une tension contenant le signal de ligne et le signal de trame mélangés de façon opportune et au niveau standard.
En ce qui concerne le fonctionnement du EL4583C, il faut dire que le signal vidéo porté par la broche 4 passe par un filtre qui le nettoie des parasites éventuels, puis il est appliqué, par l’intermédiaire du condensateur C2, à l’entrée vidéo composite de l’étage qui sépare physiquement les impulsions de synchronisation. Ce dernier utilise des circuits à seuil (dont l’un est imposé par la résistance reliant la broche 2 et la masse) et des filtres spéciaux, pour distinguer les 50 Hz de la synchro verticale des 15 625 Hz de la synchro horizontale (nous parlons bien entendu des paramètres du standard PAL, pour le NTSC, les valeurs sont légèrement différentes, de 60 et 15750 Hz).
Les impulsions reconstruites sortent des lignes spéciales et se dirigent vers les entrées VSYNC et HSYNC du processeur vidéo U3 (les STV9426), ainsi que sur les contacts 7 et 6 du connecteur de la carte.
Le signal CSYNC qui n’est d’ailleurs pas utilisé par le STV9426, est également disponible sur le contact 5 du connecteur de la carte.
Il faut signaler que le EL4583C ne prélève qu’une partie du signal d’entrée sur la ligne allant du contact 2 du connecteur de la carte au contact 29.
Sur cette même ligne arrivent également les trois couleurs R, G, B, produites localement par le STV9426 et qui représentent les inscriptions ajoutées par le Gen-Lock.
Quant au microcontrôleur générateur de textes, on peut dire que c’est l’un des plus utilisés dans les systèmes d’affichage d’ordinateurs et dans certains appareils vidéo, pour réaliser le “On Screen Display”. Par rapport au STV5730, il a également la capacité de travailler avec des fréquences de synchronisation de ligne de 15 à 120 kHz (grâce à son propre PLL programmable).
Il s’adapte donc, non seulement à la vision d’une image PAL, mais également, lorsqu’il est utilisé à l’intérieur d’un écran d’ordinateur, aux différentes résolutions sélectionnées par les circuits graphiques, même les plus perfectionnés, pouvant déterminer des valeurs dépassant les 100 kHz !
Les caractères pouvant être générés sont au nombre de 128, tous formés d’une matrice de 12 x 18 points. 26 autres caractères peuvent être créés comme on le souhaite en pilotant convenablement le circuit intégré par l’intermédiaire du bus I2C. Dans notre cas, ce canal sert pour l’interface avec le microcontrôleur auquel est confiée la gestion du protocole de communication avec le PC.
Chaque caractère généré peut avoir une couleur définie, dans un format défini et peut apparaître plein, transparent, ou bien grisé.
Le choix se fait, comme d’habitude, parmi 8 couleurs et par l’intermédiaire de l’envoi de commandes spéciales le long du bus I2C. Ces commandes vont alors intervenir sur les registres de contrôle.
Mais voyons un peu plus précisément ce qui se passe dans le STV9426 lorsqu’il travaille en interface avec le microcontrôleur U4, un PIC12C672, programmé pour effectuer, entre autres, les taches suivantes :
- lire les fichiers qui arrivent du PC et qui contiennent les informations concernant le texte à visualiser,
- élaborer ces données de façon à produire les instructions sérielles nécessaires destinées au STV9426.
L’ordinateur s’occupe de l’envoi et de l’inscription dans la RAM du microcontrôleur STV des pages de texte, presque en temps réel, afin de permettre une visualisation immédiate des textes sur l’écran de l’ordinateur ou de la télévision relié à la ligne vidéo.
Ce que nous avons précédemment énoncé apparaît donc à présent évident : à la différence de la titreuse décrite dans le numéro 16 de la revue, le Gen-Lock ne mémorise aucune inscription, si ce n’est durant le temps nécessaire à son élaboration et à sa superposition sur les images.
Le Gen-Lock sert à transférer le texte, qui est généré par l’intermédiaire du clavier de l’ordinateur, sur l’écran d’un téléviseur. Par conséquent, le microcontrôleur n’utilise aucun espace d’EEPROM pour les données du texte et la longueur de ce texte n’a pour ainsi dire pas de limite, si ce n’est celle imposée par le STV9426.
En détail, dès l’allumage et tout de suite après la connexion au port série du PC, le PIC initialise immédiatement ses E/S, en définissant :
- GP0 comme sortie d’horloge (SCL, c’est-à-dire le signal nécessaire pour obtenir un rythme correct de communication le long du bus I2C),
- GP1 comme ligne bidirectionnelle d’entrée/sortie des données (canal SDA, Serial Data, du bus),
- GP2 comme sortie de réinitialisation, utile pour donner la RAZ initiale au STV9426,
- GP3 comme entrée des données qui arrivent de l’ordinateur.
Justement, au sujet de la broche 4 (GP3), il faut faire une observation : bien qu’elle soit normalement adaptée pour recevoir des niveaux logiques TTL (0/5 volts), dans notre cas elle est directement en interface avec la ligne TXD du port série du PC.
Nous avons choisi cette solution afin de simplifier le circuit, en nous passant du classique convertisseur RS232C/TTL (MAX232 ou SN75189, par exemple).
Pour cela, nous avons été aidés par les protections internes des broches du PIC12C672. En fait, la diode (intégrée) suffit à bloquer les niveaux négatifs (–12 V) du RS232-C et une résistance externe (R8) limite le courant, même sur le niveau haut (+12 V). L’oscillateur interne travaille avec un quartz externe, Q2, à 20 MHz, pour garantir la nécessaire rapidité d’exécution des différentes fonctions.
Une fois l’initialisation terminée, le PIC envoie une impulsion au niveau logique 0 sur la broche 5, en initialisant ainsi le STV9426 (par l’intermédiaire de l’entrée “/RESET”).
De là, il se prépare à l’arrivée des données de l’ordinateur, le long du canal série. Lorsqu’il reçoit l’impulsion de départ, il acquiert la trame de 2 bytes correspondante, il la contrôle, puis il extrait la commande en se basant sur le protocole prévu. Il convertit les données dans le format reconnaissable par le STV9426 et les envoie de la broche 6 (GP1), directement à la broche 10 de U3 (SDA), en rythmant la communication par l’intermédiaire du signal d’horloge produit par la broche 7 (GP0).
Le microcontrôleur vidéo permet d’effectuer les instructions et produit, par l’intermédiaire de ses broches 13 (R), 14 (G) et 15 (B), les impulsions RVB qui, par l’intermédiaire des diodes de protection D1, D2 et D3 et des résistances R4, R5 et R6, sont superposées au signal vidéo composite provenant du contact 2 du circuit.
Note : En français, on dit un signal RVB ce qui signifie Rouge, Vert, Bleu. En anglais, RVB se traduit par RGB, Red (rouge), Green (vert), Blue (bleu).
Remarquez que, pour obtenir une visualisation stable des inscriptions, les caractères concernés sont produits “accrochés” aux signaux de synchro horizontale et verticale obtenus par la vidéo composite déjà citée, par l’intermédiaire de U2.
Les sorties R, G et B (13, 14 et 15 de U3) sont également raccordées, mais cette fois en direct, sur les contacts 13, 14 et 15 du connecteur de la carte.
Les signaux FBLK (broche 1 de U3) et PXCK (broche 5 de U3) sont également raccordés au connecteur de la carte, respectivement aux contacts 16 et 17.
Le nouveau signal vidéo composite, c’est-à-dire le signal issu de la superposition du texte à celui qui entre par le contact 2 du connecteur de la carte, est donc disponible sur le contact 29. Remarquez que les diodes D1, D2 et D3 servent à éviter que lorsqu’une sortie de U3 se trouve au niveau haut, elle soit court-circuitée par une autre qui se trouve, au même moment, au niveau bas.
Nous terminons cette étude du schéma par le régulateur intégré U1, un 78L05 en boîtier “transistor”, utilisé pour obtenir les 5 volts qui servent au bon fonctionnement du microcontrôleur et des deux microcircuits vidéo. Ce régulateur prélève l’alimentation du contact 24 du connecteur de la carte pour ce qui concerne l’entrée, alors que la masse se trouve sur le contact 26. A sa sortie, on trouve les 5 volts parfaitement stabilisés qui iront alimenter les divers étages. Ces 5 volts stabilisés sont également disponibles sur le contact 25.
Le cavalier J1 permet d’ignorer le régulateur, lorsqu’on dispose déjà de 5 volts stabilisés. Dans ce cas, en fermant J1 la tension appliquée sur la broche 24 passe directement sur la ligne positive des trois circuits intégrés.
Figure 1 : Schéma synoptique de la titreuse vidéo programmable en temps réel.
Figure 2 : Schéma électrique de la titreuse vidéo programmable en temps réel.
Figure 3 : Schéma d’implantation des composants de la titreuse vidéo programmable en temps réel.
Figure 4a : Dessin à l’échelle 1 du circuit imprimé de la titreuse vidéo programmable en temps réel, côté soudures.
Figure 4b : Dessin à l’échelle 1 du circuit imprimé côté composants.
Figure 5 : Photo de la carte principale du prototype prêt à fonctionner.
Liste des composants de la carte Gen-Lock
R1 = 22 kΩ
R2 = 82 kΩ
R3 = 680 kΩ
R4 = 470 Ω
R5 = 910 Ω 1 %
R6 = 1,8 kΩ 1 %
R7 = 12 Ω
R8 = 100 kΩ
C1 = 100 nF pol. 63 V
C2 = 100 nF pol. 63 V
C3 = 100 nF pol. 63 V
C4 = 100 nF pol. 63 V
C5 = 100 μF 16 V électrolytique
C6 = 100 μF 16 V électrolytique
D1 = Diode 1N4148
D2 = Diode 1N4148
D3 = Diode 1N4148
U1 = Régulateur 78L05
U2 = Intégré EL4583
U3 = Intégré STV9426
U4 = μC PIC12C672-P préprogrammé (MF329)
Q1 = Quartz 4 MHz pour ci
Q2 = Quartz 20 MHz pour ci
Divers :
1 Support 2 x 4 broches
2 Support 2 x 8 broches
2 Picots en bande sécable
1 Cavalier
1 Circuit imprimé réf. S329
Figure 6 : Schéma d’implantation de la carte connecteurs.
Figure 7 : Dessin du circuit imprimé à l’échelle 1 de la carte connecteurs.
Figure 8: Photo du prototype de la carte connecteur prête à l’emploi.
Liste des composants de la carte connecteurs
D1 = Diode 1N4007
Divers :
2 Prises RCA pour ci
1 Prise alimentation pour ci
1 Connecteur DB9 femelle pour ci
1 Connecteur pour SIMM
1 Circuit imprimé réf. S330
Figure 9 : Si vous ne désirez pas utiliser la carte connecteurs, vous pouvez faire les différents raccordements en vous inspirant de ce schéma.
Figure 10: Notre module Gen-Lock permet de superposer des inscriptions ainsi que des titres à une image provenant de n’importe quelle source vidéo composite.
Ici, un exemple de titrage sur une image télévisée.
Le circuit intégré STV9426
C’est un microcircuit conçu pour la réalisation de On-Sceen-Display (OSD) dans les téléviseurs et les magnétoscopes multistandards, mais également, et surtout, dans les écrans modernes d’ordinateurs.
Il est en fait capable de générer jusqu’à 128 caractères en les superposant au signal vidéo composite ou RGB, même à des fréquences de synchro de ligne allant jusqu’à 120 kHz (ultra VGA, XGA). 26 caractères supplémentaires peuvent être personnalisés en les programmant de façon opportune par l’intermédiaire du bus sériel.
Le STV9426 peut être contrôlé par un microprocesseur ou par un microcontrôleur par l’intermédiaire des lignes spéciales SDA, SCL et RESET, qui composent un véritable bus I2C.
De là, l’unité de contrôle peut écrire directement dans les 16 registres qui définissent le fonctionnement du microcircuit.
Le STV9426 dispose d’une RAM de 1 KB, dans laquelle on peut charger, de l’extérieur, jusqu’à un maximum de 8 pages de texte : par l’intermédiaire d’une imposition particulière du registre de contrôle, le composant peut donc choisir laquelle visualiser.
L’écriture superposée aux images est composée d’un maximum de 34 caractères en horizontal et 14 en vertical : chaque caractère peut être agrandi ou diminué (en hauteur) par l’intermédiaire d’un interpolateur spécial.
Par ailleurs, le texte peut être déplacé dans l’écran, en effectuant, à l’aide des commandes correspondantes, une translation verticale et/ou horizontale, par rapport à l’origine.
Chaque caractère est formé d’une matrice de 12 x 18 points, et peut être choisi de couleur différente des autres.
Les couleurs disponibles sont au nombre de 8, obtenues par l’intermédiaire de la combinaison des trois couleurs fondamentales, Red, Green, Blue (rouge, vert et bleu).
Le texte peut être superposé à l’image, plein, transparent, grisé ou clignotant.
Le tableau des caractères que vous trouverez dans ces pages présente les 128 symboles avec les équivalences hexadécimales correspondantes: nous voyons par exemple que la lettre A majuscule vaut 41 hexadécimale, ou que le chiffre 1 correspond à 31.
Pour une interprétation correcte, souvenez-vous que le chiffre de gauche (poids supérieur) est en abscisse, tandis que celui de droite (poids inférieur) est en ordonnée.
A ce sujet, il est très intéressant d’observer que pour les symboles compris dans le tableau ASCII, le STV9426 identifie chacun avec sa propre valeur : en fait, si nous regardons le tableau standard des codes ASCII, nous remarquons que le A majuscule vaut 65 en décimal et 41 hexadécimale pour le microcircuit.
Mais 41 en hexadécimal correspond à (4 x 16) + 1 = 65.
Ceci explique pourquoi on peut écrire le texte à visualiser avec des caractères alphanumériques normaux, dans le programme de démonstration de la figure 13, et non pas avec les valeurs hexadécimales (ce qui était le cas de la titreuse publiée dans le numéro 16).
Brochage du STV9426.
Fonctions des broches du STV9426.
Le séparateur de synchronisations EL4583C
Le séparateur de synchronisations utilisé dans notre montage permet de recréer de façon précise toutes les synchros vidéo du signal en entrée.
Il dispose, en outre, d’une sortie (broche 13) qui nous indique si nous sommes en train d’analyser des demies trames paires ou impaires, ainsi que d’une autre sortie (broche 10) permettant d’indiquer l’absence de signal en entrée.
Brochage du EL4583C.
Aspect des signaux sur les différentes broches (pin) du EL4583C.
Un Gen-Lock complet…
Pour réaliser un appareil professionnel et faciliter son utilisation, il faut monter le circuit principal et le circuit connecteurs dans un boîtier plastique.
Cette matière se travaillant facilement, on pourra percer les différents trous pour le passage des prises sans rencontrer de réelles difficultés.
Si vous ne voulez pas réaliser le circuit connecteurs, vous pouvez tout de même faire fonctionner la carte principale en câblant les différents raccordements comme indiqué sur la figure 9. Vous pouvez, dans ce cas, percer le boîtier pour en faire sortir les différents câbles.
Sur le connecteur de la carte principale, on trouve également les contacts qui servent à extraire le texte en RGB (13, 14 et 15), en plus de la synchro composite (5) et des deux synchros séparées verticale (7) et horizontale (8) : c’est très utile si l’on souhaite envoyer des caractères à une prise péritel ayant activé les entrées RGB, ou bien d’autres appareils vidéo.
En tous les cas, souvenez-vous que le signal contenant le texte est synchronisé avec le signal vidéo composite appliqué à la broche 2, toujours présent.
En fait, le STV9426 n’est pas en mesure de produire lui-même les signaux de synchronisation.
Les signaux de fast-blanking (contact 16) et de Pixel-Clock (17), sont également disponibles. Le premier est très utile lorsque l’on doit effectuer la superposition de texte en l’envoyant aux lignes RGB d’un processeur de couleur qui peut effectuer la commutation entre RGB et vidéo composite (TDA3560, TDA3562, TDA3563) car il sert à bloquer rapidement les images provenant des étages précédents et à envoyer à l’écran ou à la vidéo-cassette, le texte présent sur les lignes RGB.
La titreuse montée dans le support SIMM sur la carte connecteurs.
Le protocole de communication
Passons maintenant au logiciel de l’ordinateur et analysons le protocole d’utilisation du Gen-Lock : nous voulons bien sûr parler du dialogue entre le PC et le PIC12C672, qui est l’élément auquel est confiée la gestion du circuit tout entier.
Il faut tout d’abord préciser que le module accepte des commandes sérielles et que la ligne de TDX n’est pas prévue, étant donné que le dispositif doit seulement recevoir des données et n’a pas à rendre de réponse.
Les paramètres de la communication sont 19200,n,8,1, ce qui signifie, 19 200 bits/seconde de vitesse, aucune parité, 8 bits de données et 1 bit de stop.
Toutes les commandes qui arrivent du PC commencent par un caractère que l’on appelle “en-tête” (header), suivi par un code qui identifie la fonction voulue.
Viennent ensuite les paramètres spécifiques, c’est-à-dire ceux qui définissent exactement la fonction même.
L’en-tête est une sorte de code qui confirme la validité du message qui arrive : si les trames de caractères ne commencent pas par l’entête **, le PIC les ignore.
Voici le format du message typique :
où ** est l’en-tête, F est la fonction (de 1 à 4), tandis que p peut être le paramètre correspondant ou les paramètres qui définissent la fonction voulue.
Les explications qui suivent vous éclaireront sur le fonctionnement du protocole.
Les fonctions
Il existe 4 fonctions différentes, dont nous vous exposons pour chacune, en détail, les paramètres.
La fonction 1 : C’est celle qui demande l’initialisation du microcircuit vidéo (le STV9426) et le nettoyage de l’écran (blanking).
La syntaxe est la suivante :
Comme on peut le constater, elle ne demande pas de paramètres supplémentaires.
La fonction 2 : Avec cette fonction, il est possible de configurer à volonté le microcircuit vidéo STV9426, en indiquant les paramètres pour chaque registre. La commande nécessite plusieurs paramètres, dont nous verrons plus loin, la signification et la syntaxe.
Signalons que la configuration ainsi obtenue vaut jusqu’à l’extinction du circuit.
En effet, le circuit intégré STV9426 ne conserve en mémoire aucun paramètre, pas plus que le microcontrôleur, lequel, dans cette application du Gen-Lock, ne mémorise aucune des données qui arrivent du PC dans l’EEPROM.
La syntaxe est la suivante :
Un exemple peut clarifier le sens de chaque paramètre:
Remarquez que les valeurs énoncées sont exactement celles utilisées par la fonction 01 (nettoyage de l’écran et blanking). Mais il s’agit bien sûr d’un exemple, parmi toutes les nombreuses possibilités. En suivant la documentation fournie par la SGS-Thomson, il est possible d’introduire chaque paramètre comme on le souhaite, pour obtenir ce qu’on désire.
LINE et COLUMN correspondent à la subdivision de l’écran par la représentation du texte qui suivra.
XOFFSET et YOFFSET sont les valeurs de translation, par rapport à l’origine (en bas à gauche de l’écran). Si ces deux paramètres ont une valeur zéro, le texte apparaîtra à partir du premier pixel disponible.
SCANLINE est le paramètre qui indique, en hexadécimal, une fréquence de synchro horizontale déterminée.
FREQMULT est la valeur par laquelle il faut multiplier la fréquence d’horloge de l’oscillateur à quartz pour générer le signal utilisé par le PLL afin d’obtenir le nombre de pixels: la valeur est exprimée en hexadécimal mais correspond à la somme, en décimal, des bits binaires FM0, FM1, FM2, FM3. Dans le cas de cet exemple, le paramètre est 0A, il correspond à 10 en décimal, c’est-à-dire à 1010 en binaire.
CONTROL est, au contraire, la valeur du registre de contrôle, fixé à 80 en hexadécimal, c’est-à-dire 128 en décimal : ce qui correspond à une ligne (word) de type 10000000, qui, si on se réfère à la note technique, équivaut à l’activation des sorties RGB, ainsi qu’à celle de fast-blanking (que nous n’utilisons d’ailleurs pas).
Remarquez bien que si la valeur de CONTROL était de 00, la superposition des caractères ne serait pas possible, car 00 équivaut à un byte de type 00000000: le zéro de gauche correspond au bit OSD, qui, lorsqu’il est à 0, désactive les sorties RGB et fast-blanking.
La fonction 3 : C’est la fonction qui est, si l’on peut dire, la plus intéressante : c’est en fait celle avec laquelle on ordonne au microcircuit vidéo de superposer des textes dont les caractères sont spécifiés, dans la commande même, au signal vidéo composite des inscriptions. Elle permet, en outre, de définir la position horizontale (X) et verticale (Y) de départ, ainsi que les attributs des caractères.
La trame qui suit (qui correspond au texte à visualiser) doit terminer par $FF, et ne doit pas dépasser la longueur maximale de 40 caractères.
La syntaxe est la suivante :
Voici un exemple :
Et voici le sens de chacun des éléments : **03 est le numéro de la fonction (qui commence toujours par l’en-tête).
00 est la coordonnée horizontale (les valeurs admises allant de 0 à 33) et le second 00, est la coordonnée verticale (valeurs admises de 0 à 13). Ces coordonnées sont les positions le long des axes X et Y d’où doit partir l’inscription.
00 00 signifie qu’elle commence dès le premier espace disponible.
Remarquez que, le circuit intégré STV9426 prévoyant une structure de 34 colonnes par 14 lignes, chaque valeur indique la ligne et la colonne de départ : l’écran est en fait divisé de façon idéale, en autant de petits carrés que de caractères.
Observez, en outre, que les valeurs admises par le décalage horizontal, sont comprises entre 0 et 33, parce qu’il est bien évident que le trente quatrième caractère doit être occupé par la lettre que l’on veut visualiser : en insérant 34, la lettre n’apparaît pas. Il en va de même pour le paramètre vertical : s’il y a 14 lignes, on ne peut pas commencer après la quatorzième.
Après l’identification de la commande et les coordonnées de positionnement, c’est au tour de l’attribut, c’est-à-dire la façon dont va apparaître le caractère : on peut retrouver ce paramètre dans un tableau contenu dans la note technique fournie par SGS-Thomson que nous vous invitons à consulter pour avoir de plus amples détails.
Dans le cas de notre exemple, nous avons choisi 07, qui correspond à la fonction permettant de voir les caractères en blanc et fixes.
Note : Vous pouvez télécharger les notes techniques (EL4583C.PDF et STV9425.PDF) des deux principaux composants de ce montage sur le site de la revue à l’adresse www.electronique-magazine.com.
Pour ceux qui utiliseront le tableau du constructeur, précisons que notre représentation utilise des caractères hexa-décimaux. Toutefois, en ce qui concerne l’attribut, on considère toujours la valeur réelle.
Mais ce que nous représentons en format hexadécimal, c’est l’équivalent en format décimal de la somme des quatre bits, compris entre le cinquième et le neuvième moins significatifs de la trame envoyée par le microcircuit pour représenter chacun des caractères : dans le cas de l’exemple, le 07 hexadécimal correspond au 7 décimal, qui, dans le format binaire à 4 bits, est exprimé par 0111.
Le bit 0 définit le caractère non clignotant (1 correspondant au clignotement), tandis que 111 indique la présence des trois couleurs fondamentales RVB.
Avec ces trois bits de couleur, les 8 combinaisons habituelles sont toujours possibles. Il faut toutefois observer qu’à la différence de ce que l’on peut obtenir du STV5730 utilisé dans la titreuse du numéro 16 de la revue, le STV9426 permet de définir une couleur différente pour chaque caractère envoyé à l’écran.
Après l’attribut on trouve les valeurs hexadécimales correspondantes aux caractères composant le texte à visualiser.
A ce sujet, il faut remarquer un détail qui différencie nettement le STV9426 du STV5730 : ce dernier identifie chaque caractère alphanumérique avec le numéro correspondant du tableau ASCII.
La fonction 4 : C’est celle qui permet d’envoyer une donnée à 8 bits (word) directement à un registre spécifique du contrôleur vidéo : cela permet de reprogrammer certains paramètres fondamentaux du contrôleur vidéo lui-même et donc d’altérer les formules par défaut générées par le microcontrôleur PIC12C672 présent dans le module Gen-Lock.
La syntaxe est la suivante :
En plus de l’en-tête, on trouve les deux paramètres HIBYTE et LOBYTE, qui représentent respectivement le byte supérieur et le byte inférieur définissant l’imposition du registre.
Voici un exemple typique de la fonction 4 :
Ce qui correspond à écrire la valeur $80 dans le registre de contrôle adressé par $3FF3. Evidemment, 04 est le numéro qui identifie la fonction, alors que les bytes de début et de fin sont 3F et F3 (nombres toujours exprimés en forme hexadécimale).
On peut clairement voir, grâce à la documentation du constructeur, que 3FF3 est la zone de mémoire (16 KB) réservé par le STV9426 au Display Control, c’est-à-dire, justement, au registre de contrôle.
Ceci dit, nous avons terminé l’analyse du protocole et des fonctions correspondantes.
Figure 11 : Table des caractères.
Un galop d’essai
Editez la routine en QBasic que vous trouverez dans ces pages, et à l’aide de cette routine, essayez tout de suite de donner des ordres au Gen-Lock : elle permet d’écrire le mot “BONJOUR” sur l’écran d’un téléviseur muni d’une prise péritel ou sur n’importe quel écran disposant d’une entrée vidéo composite.
On peut distinguer la première ligne, avec laquelle est ouvert le port de communication (c’est COM1 par défaut, toutefois, si vous l’avez déjà utilisée, vous pouvez la remplacer par COM2, COM3, etc.) en lui donnant un buffer et en imposant à la communication une vitesse de 19200 bauds, sans contrôle de parité, avec un byte de 8 bits de données plus 1 bit de stop.
Il est en outre imposé à l’ordinateur d’ignorer les signaux de RTS, CTS, DSR et CD, chose tout à fait évidente étant donné que le Gen-Lock dispose seulement d’un fil destiné à la réception des données et qu’il ne peut donc pas gérer de signal de contrôle.
C’est ensuite la ligne contenant la commande “PRINT” qui suit, puis celle avec la commande d’écriture de l’échantillon de texte. Dans cette dernière, on retrouve la syntaxe typique, c’est-à-dire : le premier chiffre (3) indique la fonction, les (0) et (0) suivants expriment le décalage vertical et horizontal, (07) est l’attribut (couleur blanche, fixe) “BONJOUR” est le texte, et (225) correspond à la terminaison FF (cette valeur, exprimée en hexadécimal, correspond, justement, à 225 en décimal).
Un mot sur la carte connecteurs
Cette carte, dont le schéma d’implantation est donné en figure 6, n’est pas indispensable. Son but est surtout de rassembler en ligne tous les connecteurs nécessaires à la carte principale, dans un souci de professionnalisme et afin de faciliter “la mise en boîte”.
Si vous voulez en faire l’économie, vous pouvez souder directement les cordons sur la carte principale en vous aidant du schéma de la figure 9.
Une bonne alternative, si vous ne savez pas comment vous procurer un connecteur SIMM à bon prix (en le démontant d’une vieille carte ordinateur par exemple) est de le remplacer par du connecteur en bande sécable. C’est un peu moins pratique mais il est vrai que l’on ne démonte pas les cartes toutes les 5 minutes.
La dernière solution, si vous voulez conserver la carte connecteur sans faire de frais et sans vous casser la tête, consiste à raccorder, purement et simplement, les trous de la carte principale aux trous prévus pour monter le connecteur SIMM. Des chutes de queues de résistances ou de condensateurs feront parfaitement l’affaire.
Ainsi, la carte principale peut être maintenue soit à 90° comme dans les illustrations de cet article, soit à l’horizontal, ce qui peut être pratique pour le montage dans certains boîtiers.
Figure 12 : Le circuit principal du module Gen-Lock a la forme d’une mémoire SIMM à 30 broches. Pour le relier à la carte connecteurs, on peut utiliser soit le support SIMM, soit du support en bande sécable au pas de 2,54 mm, soit en raccordant définitivement les deux cartes ensembles par des chutes de queues de résistances ou de condensateurs soudées dans les trous prévus à cet effet.
Avec cette dernière option, le circuit principal pourra être monté verticalement ou horizontalement.
OPEN “COM1:19200,N,8,1,rs,cd0,ds0,cs0”
FOR RANDOM AS #1‘INITIALISE L’AFFICHEURPRINT #1,
“**” + CHR$(1);DELAY (.2)‘ÉCRIS “BONJOUR AUX COORDONNÉES 0,0PRINT #1,
“**” + CHR$(3) + CHR$(0) + CHR$(0) + CHR$(&H07) +
“BONJOUR” + CHR$(255);DELAY (.1)ENDSUB DELAY (temp!)T!
= TIMER + temp!DO WHILE T! > TIMERLOOPEND SUBFigure 13: Programme de démonstration en QBasic.
Réalisation pratique
Vous devez d’abord réaliser ou vous procurer les circuits imprimés. Montez ensuite les composants en vous aidant des schémas d’implantation et des photos.
Commencez toujours par les composants le plus bas pour terminer par la mise en place des circuits intégrés sur leurs supports. A ce propos, utilisez des supports “tulipe” car ils permettent la soudure sur les deux faces.
Le circuit imprimé de la titreuse est un double face. N’oubliez pas de relier les pistes qui coïncident sur les deux faces, en utilisant des chutes de queues de résistances ou de condensateurs soudés des deux côtés du circuit imprimé.
Veillez soigneusement au sens des diodes, des circuits intégrés et des composants polarisés en général. Soignez vos soudures et vérifiez votre montage plutôt deux fois qu’une.
Fermez le cavalier J1 si vous pensez alimenter le module directement en 5 volts, ou laissez-le ouvert si vous devez faire fonctionner le module avec une alimentation allant de 8 à 20 volts en continu. Le support de cavalier est composé par deux picots sécables et le cavalier lui même provient des surplus informatiques. Comme on ne change pas d’alimentation tous les jours, le cavalier peut être purement et simplement omis ou remplacé par un strap !
Le courant nécessaire au module est d’environ 100 milliampères. Vous pouvez utiliser une petite alimentation du commerce réglée sur 9 ou 12 volts.
La dernière soudure terminée (et les vérifications faites) le montage est prêt à fonctionner, car il ne nécessite aucun réglage.
Pour utiliser la titreuse, il suffit de l’insérer dans le support à 30 broches single-in-line de la carte connecteurs, laquelle permet de réaliser toutes les connexions, y compris celle de l’alimentation, celle d’entrée et de sortie vidéo, ainsi que celle allant vers l’ordinateur.
Reliez ensuite la carte connecteurs par un câble série au PC et connectez, via un câble coaxial, la prise RCA d’entrée à la source vidéo de laquelle proviennent les images à “titrer”.
A l’aide d’un second câble coaxial, reliez l’autre prise (OUT VIDEO) à l’ordinateur ou au téléviseur équipé d’une prise péritel sur lequel vous voulez voir le résultat.
Vous pouvez faire l’économie de la carte connecteur en utilisant le schéma de la figure 9 pour faire vos raccordements.
C’est moins “technique” mais tout aussi efficace !
L’installation est prête.
Allumez l’ordinateur et, en utilisant l’éditeur de QBasic en MS-DOS, écrivez le programme de démonstration exactement comme il apparaît sur la figure 13. Sauvegardez-le, puis démarrez-le.
Le programme de démonstration écrit le mot “BONJOUR”, fixe, qui devra apparaître sur l’écran du téléviseur ou de l’ordinateur que vous utilisez, en surimpression par rapport aux images tournées par la caméra ou sortant du magnétoscope. Vous pouvez naturellement écrire ce que vous voulez : il vous suffit d’éditer une nouvelle fois le programme, puis de remplacer le mot “BONJOUR” par la phrase voulue, en veillant à ce qu’elle ne dépasse pas les 40 caractères.
Dans le prochain numéro de la revue, nous vous présenterons un programme complet pour PC capable de gérer toutes les fonctions du Gen-Lock.
Voici une petite description du programme en Visual Basic, servant à piloter en temps réel le gen-lock vidéo présenté dans la première partie.
L’utilisation de ce logiciel permet d’éditer, de manière très simple, les inscriptions et autres informations à superposer à l’image vidéo.
A été juger par les nombreux appels reçus par la rédaction durant ces dernières semaines, le montage de la titreuse vidéo en temps réel proposé en première partie a “frappé juste”. A l’évidence, les amateurs qui se penchent sur ce domaine et qui sont désireux de construire des dispositifs capables d’élaborer des signaux vidéo, sont nombreux.
Parmi les appareils de ce secteur, le gen-lock est certainement l’un des plus recherchés car il permet de superposer à n’importe quel signal composite une ou plusieurs inscriptions, fixes ou en mouvement. En effet, le texte en surimpression, que l’on a l’habitude de voir dans les émissions de télé, est généré par des circuits de ce type.
Les performances et le coût des gen-lock que l’on trouve dans le commerce varient considérablement selon leur modèle. De toute façon, même les appareils les moins performants coûtent cher. C’est peut-être pour cette raison que notre montage, d’un coût plutôt réduit, a eu tant de succès.
Il faut peut-être considérer, comme autre raison de cet intérêt, la simplicité du circuit.
Petit rappel
Le “coeur” du dispositif est le circuit intégré STV9426, généralement utilisé dans les téléviseurs ainsi que dans les magnétoscopes pour générer des inscriptions et des symboles graphiques.
Il appartient, en fait, à la famille des OSD, c’est-à-dire des “On Screen Display” (affichage à l’écran). Ce microprocesseur contient un tableau de caractères que l’on peut sélectionner par l’intermédiaire d’une ligne de contrôle sur bus I2C.
Grâce à cette même méthode, on peut également définir les paramètres du caractère, les configurations des différents registres, etc. Il faut préciser que, même si le composant est capable de reproduire un texte en 8 couleurs, notre gen-lock ne génère que des caractères blancs.
Pour synchroniser les inscriptions générées et le signal vidéo, il est nécessaire d’utiliser la synchro verticale et la synchro horizontale de ce dernier, pour les envoyer au circuit intégré STV9426. Cette opération est gérée par un séparateur de synchronisation de chez Elantec.
L’appareil contient également un microcontrôleur nécessaire pour convertir les informations sérielles en commandes sur bus I2C pouvant être réceptionnées par le STV9426 car, malheureusement, ce microprocesseur n’accepte des instructions que si elles sont dans son format spécifique, ce qui nécessite une interface.
Ceci est le seul vrai défaut de ce produit, car il oblige l’utilisateur à écrire de laborieuses commandes en QBasic, dont la frappe et l’envoi nécessitent du temps, ce qui n’en facilite pas l’utilisation.
Figure 1 : Le gen-lock permet de superposer une inscription, qui reste fixe ou qui défile, sur n’importe quel signal vidéo.
Le programme
C’est pour cette raison que nous avons décidé de développer un programme, fonctionnant sous Windows 95/98, avec lequel même un simple opérateur vidéo amateur pourra titrer des images sans la moindre difficulté.
Le logiciel permet d’écrire automatiquement la date et l’heure et, manuellement, jusqu’à 4 phrases en les spécifiant à l’aide d’une procédure très simple et en choisissant leur position sur un écran virtuel représentant ce que l’on verra superposé à la vidéo reproduite par la télé ou le moniteur.
Les textes peuvent rester fixes ou bien défiler à l’écran, du haut vers le bas et vice-versa, de gauche à droite et le contraire. Un mode “aléatoire” est également prévu, ainsi qu’un mode “à suivre”. Dans le premier cas, le texte se déplace de façon aléatoire, tandis que dans le second, il suit le curseur de la souris.
Une série de menus permet également la sélection du port série auquel est connecté le gen-lock, ainsi que le choix de la langue à utiliser, choix pouvant être effectué entre l’italien, l’anglais, le français, l’allemand et l’espagnol.
Etudions maintenant ce programme, en commençant par son interface vers l’utilisateur.
En cliquant sur son icône, on démarre la vidéo principale qui contient, en haut à gauche, un rectangle qui représente l’écran de l’image à titrer, à côté, les positions pour les coordonnées de départ des textes en horizontal et en vertical, le curseur pour la sélection de la vitesse dans les modes qui prévoient le déplacement des inscriptions, et celui pour le réglage de leur luminosité.
Au centre, on trouve les cases de sélection des 4 phrases possibles, à l’aide des boutons virtuels pour l’envoi et l’arrêt.
Il y a ensuite les commandes générales de stop et d’envoi, concernant les instructions données au gen-lock.
Des touches spéciales permettent aussi la modification de la date et de l’heure, ainsi que la possibilité de superposer ou de les éliminer de la vidéo.
Avant de passer à l’étude de chaque cas, voyons quelques remarques communes à tous les textes : les positions s’effectuent à partir du clavier et à l’aide de la souris, il faut donc sélectionner à chaque fois le domaine sur lequel on souhaite intervenir.
Quant aux textes, on bénéficie de 4 inscriptions en dehors de la date et de l’heure : pour choisir celui sur lequel opérer, il faut pointer puis cliquer sur la case correspondante, c’est-à-dire sur celle immédiatement en dessous de l’inscription qui l’identifie.
Par exemple, pour retoucher ou déplacer l’heure, il suffit de cliquer sur la case “Heure”, après quoi, toutes les opérations effectuées jusqu’à la prochaine sélection concerneront la visualisation de l’horloge.
En démarrant le programme, la configuration par défaut permet de visualiser la date et l’heure : pour le démontrer, l’écran virtuel montre les positions qu’occuperont les deux informations dans l’image (la première en haut à gauche et l’autre, en haut à droite).
En cliquant sur le bouton d’envoi, on permet l’insertion, tandis qu’avec le stop, on élimine l’information.
Commençons par la date : pour en empêcher la visualisation, on clique sur “Stop Date” et pour la faire réapparaître, on clique sur “Envoi Date”. Si on veut éditer une nouvelle date, il suffit de cliquer sur le cadre correspondant.
On peut alors écrire le jour, le mois et l’année souhaités dans la case blanche.
La modification deviendra opérationnelle seulement après avoir cliqué sur “Envoi Date”, qui aura, dans ce cas-là, la même fonction que “ENTER”.
En ce qui concerne l’heure, le processus est identique.
Quant au titrage, le logiciel permet jusqu’à 4 lignes de 34 caractères chacune. On édite ces textes en cliquant sur la case correspondante. Elle permet soit d’en introduire un nouveau, soit d’en modifier un déjà existant.
Une fois le texte tapé, pour le visualiser, il suffit de placer le curseur dessus puis de cliquer sur le bouton d’envoi.
Si on appuie sur “Stop”, la phrase disparaît de l’écran. Supposons, par exemple, que l’on souhaite écrire “Essai texte 1”. Pour ce faire, il faudra cliquer sur la case qui se trouve en dessous de “Texte 1”, puis de taper la phrase “Essai texte 1” à l’aide du clavier.
En plaçant le curseur sur “Envoi Texte 1” et en cliquant, ce que nous avons introduit apparaîtra en haut de l’écran, c’est-à-dire sur l’image à laquelle se réfère le signal.
Les positions par défaut se trouvent à 0, aussi bien à l’horizontale qu’à la verticale, ce qui implique que le texte viendrait se superposer à la date. Pour le déplacer dans la zone de l’écran que l’on veut, il suffit d’agir sur les valeurs X et Y, en cliquant sur les cases correspondantes et en écrivant les valeurs désirées à l’aide du clavier.
A ce sujet, rappelons que le déplacement maximal en vertical est de 13 (parce que le gen-lock peut introduire 13 lignes) et de 33 en horizontal (ce qui correspond au nombre de colonnes admissibles).
Des valeurs supérieures à celles-ci empêcheraient de voir le texte à l’écran.
Souvenez-vous également qu’à partir du moment où l’on clique sur la case d’une inscription, de la date ou de l’heure, jusqu’au moment où l’on clique sur une autre case, toutes les modifications effectuées à partir du panneau de commandes, ainsi que les choix opérés à partir du menu, sont dorénavant pris en compte pour cette inscription.
Les flèches qui se trouvent sur les échelles de luminosité et de temporisation permettent de modifier, la première, l’intensité lumineuse des inscriptions, et la seconde, la vitesse de déplacement si on a choisi l’une des options du menu “Mouvement”.
Figure 2: Cette capture d’écran met en évidence toutes les possibilités qui vous sont offertes par notre logiciel.
Par l’intermédiaire des menus déroulants, on peut choisir le port de communication, l’inscription sur laquelle on désire intervenir, ses caractéristiques, etc.
Figure 3 : Pour tester le gen-lock, mais également pour l’utiliser en pratique, nous avons réalisé un “circuit connecteurs”, muni, sur ce modèle, de connecteurs en bande sécable au pas de 2,54 mm, pour recevoir la carte principale.
Ce circuit dispose de connecteurs RCA pour l’entrée et la sortie du signal vidéo composite, du connecteur DB9, nécessaire pour l’interface série avec le PC, et de la prise alimentation.
Les menus
“Fichier” permet de sauvegarder un titrage dans un fichier “.txt” mais également d’en charger un, provenant d’un fichier similaire.
“Com” sert à choisir le port série : une fois effectuée la sélection, il faut cliquer sur “Ouvrir” afin d’activer la communication.
“Inscription” permet de choisir directement le texte à visualiser ou à placer.
“Mouvement” sert à faire déplacer le texte sélectionné en choisissant parmi les différentes options.
“Langue” permet de choisir la langue utilisée par le programme pour les affichages sur les fenêtres.
Fin
Aucun commentaire:
Enregistrer un commentaire