
                          XFree86 Video Timings HOWTO

Eric S. Raymond
Traduction franaise de Philippe Andersson reprise par Guillaume Allgre

   Version 4.4, 13 mars 2000
     _________________________________________________________________

   _Comment dfinir une ligne de mode pour votre couple carte
   graphique/moniteur sous XFree86. La distribution XFree86 comprend
   maintenant les lments requis pour configurer la plupart des
   combinaisons standard. Le but principal de ce document est de vous
   apprendre  mettre au point une ligne de mode personnalise pour un
   moniteur  haute performance ou du matriel trs inhabituel. Il vous
   aidera aussi  utiliser kvideogen pour gnrer les modelines, et
   xvidtune pour effectuer le rglage fin d'un mode standard qui n'est
   pas encore optimal pour votre moniteur._
     _________________________________________________________________

1. Mise en garde

   L'utilisation des informations reprises ci-dessous se fait
   EXCLUSIVEMENT A VOS RISQUES ET PERILS. Piloter votre moniteur en
   dehors des limites fixes par les spcifications du fabricant peut
   prsenter un danger pour votre matriel et pour vous-mmes. Lisez la
   section Usage du moniteur en surcapacit pour un avertissement
   dtaill. Tout dommage inflig  votre personne ou  votre moniteur d
    un usage en surcapacit est votre problme.

   La plus rcente version de ce HOWTO est disponible  la page du Linux
   Documentation Project.

   Prire de transmettre vos commentaires, critiques, et suggestions (en
   anglais)  esr@snark.thyrsus.com, ou en franais au traducteur. S'il
   vous plat, _n'envoyez pas_ de courrier lectronique implorant une
   solution miracle  vos problmes de moniteur personnels, dans la
   mesure o agir de la sorte ne servira qu' perdre mon temps et  vous
   frustrer -- tout ce que je sais  ce sujet est contenu ici.

2. Introduction

   Le serveur XFree86 permet aux utilisateurs de configurer leur
   sous-systme vido, ce qui favorise une utilisation optimale du
   matriel existant. Le but de ce guide est de vous apprendre  crer
   vos propre valeurs d'horloge pour faire le meilleur usage de votre
   carte vido et moniteur.

   Nous prsenterons une mthode pour obtenir une configuration de base
   utilisable, ensuite nous vous montrerons comment, au dpart de
   celle-ci, vous pouvez vous livrer  des expriences pour dterminer un
   ensemble de valeurs qui l'adapte  vos prfrences.

   Si vous disposez dj d'un mode qui fonctionne presque (en
   particulier, si l'un des modes VESA pr-dfinis vous donne une image
   stable mais dcentre vers la gauche ou la droite, trop petite, ou
   trop grande) vous pouvez passer immdiatement  la section intitule
   Rsoudre les problmes affectant l'image. Celle-ci vous apprendra
   diverses manires de manipuler les valeurs d'horloge en vue d'obtenir
   certains rsultats prcis.

   Ne partez pas du principe que vous allez avoir de fastidieux
   ajustements de modes  faire, juste parce qu' votre premier lancement
   de X aprs installation, vous obtenez un cran brouill. Il se peut
   que presque toutes les lignes de modes soient bonnes, mais que le
   serveur utilise par dfaut justement celle qui ne convient pas  votre
   matriel. Au lieu de dsesprer, essayez de basculer de mode en mode
   avec CTRL-ALT-KP+. Si certains donnent de bons rsultats, essayez de
   les commenter tous sauf un 640x480, et vrifiez que ce mode
   fonctionne. Si c'est le cas, dcommentez aussi une paire d'autres
   modes, par exemple un 800x600 et un 1024x768  une frquence que votre
   moniteur devrait aussi grer.

   Bientt la configuration sera trs facile. De nombreux modules pilotes
   de la toute rcente version 4.0 d'XFree86 supportent le systme DDC
   VESA (pour _Display Data Channel_ : canal de donnes d'affichage). Ce
   systme permet  l'cran de dclarer  XFree86 les lignes de mode
   qu'il est capable de supporter. Ainsi, avec XFree 4.0 et un moniteur
   rcent, vous avez de bonnes chances de n'avoir aucune configuration 
   faire.

3. Outils de calcul automatique

   Si vous avez un moniteur relativement rcent (1996 au moins) qui
   supporte les spcifications PnP, vous avez une chance de lire les
   caractristiques du moniteur et de calculer automatiquement les lignes
   de mode avec le programme read-edid.

   A partir de la version 3.2, XFree86 s'accompagne du programme
   _XF86Setup_(1) qui simplifie grandement la cration interactive d'un
   mode graphique valable, sans devoir manipuler directement les valeurs
   d'horloge vido. Ainsi, dans la plupart des cas, il ne devrait pas
   vous tre ncessaire de calculer un mode graphique de base.
   Malheureusement, _XF86Setup_(1) a ses limites ; il ne connat que les
   modes graphiques standards jusqu' 1280x1024. Si vous disposez d'un
   moniteur  trs haute performance capable d'afficher 1600x1200 ou
   plus, il vous faudra malgr tout encore calculer votre mode graphique
   de base vous-mmes.

   Il y a un utilitaire KDE appel KVideoGen qui calcule des lignes de
   mode  partir des caractristiques du moniteur et de la carte. J'ai
   bien gnr des lignes de modes avec, mais je ne les ai pas testes.
   Notez que ses paramtres "refresh rate" horizontal et vertical sont la
   mme chose que les frquences de synchronisation HSF et VSF que nous
   dcrivons plus loin. Le nombre "horizontal sync pulse" semble tre la
   largeur de l'impulsion de synchronisation en microsecondes, HSP. Si
   vous ne connaissez pas votre "horizontal sync pulse", il vaut mieux
   laisser la valeur par dfaut.

   Les versions rcentes de XFree86 comprennent un outil appel
   _xvidtune_(1) que vous trouverez sans doute trs utile pour tester et
   affiner les modes graphiques. Il commence par un avertissement
   effrayant relatif aux possibles consquences d'un usage abusif. Si
   vous accordez  ce document une attention scrupuleuse et apprenez ce
   qui se cache derrire les jolies valeurs dans les crans de xvidtune,
   vous serez capables d'utiliser ce programme efficacement et en toute
   confiance.

   Si _xvidtune_(1) est prsent, il vous sera possible d'essayer de
   nouveaux modes "au vol", sans modifier votre fichier de configuration
   X, sans mme redmarrer votre serveur X. Dans le cas contraire,
   XFree86 vous permet d'utiliser des raccourcis clavier pour
   slectionner parmi les diffrents modes dfinis dans Xconfig (voyez
   XFree86.man pour de plus amples dtails). Exploitez cette capacit
   pour vous viter des ennuis ! Lorsque vous souhaitez tester un nouveau
   mode, donnez-lui un nom unique et ajoutez-le  la _fin_ de votre liste
   de raccourcis. Gardez toujours un mode que vous savez bon comme
   dfaut, de faon  avoir une position de repli si le mode en cours de
   test ne marche pas.

   A la fin de ce document, vous trouverez un script modeplot que vous
   pourrez utiliser pour produire un graphe analogique des modes
   disponibles. Ce n'est pas directement utile pour gnrer des lignes de
   mode, mais a peut vous aider  comprendre les relations qui
   permettent de les dfinir.

4. Comment fonctionnent les crans vido

   Savoir comment fonctionne l'cran est essentiel pour comprendre
   quelles valeurs placer dans les diffrents champs du fichier Xconfig.
   Le serveur XFree86 utilise ces valeurs pour obtenir le contrle de
   plus bas niveau sur l'cran.

   L'cran cre une image  partir de ce qu'on peut considrer comme une
   srie de points. Ces points sont juxtaposs de gauche  droite pour
   crer des lignes. Ces lignes sont  leur tour juxtaposes de haut en
   bas pour crer l'image. Les points mettent de la lumire lorsqu'ils
   sont frapps par les faisceaux d'lectrons  l'intrieur du tube
   cathodique, un par couleur. Pour faire en sorte que le faisceau frappe
   tous les points pendant une dure gale, le faisceau balaye l'cran
   suivant un itinraire immuable, appele _trame_.

   Nous avons crit "ce qu'on peut considrer comme une srie de points"
   car les points de la trame ne correspondent pas aux points de
   phosphores physiques. Ils sont beaucoup plus gros, et regroupent
   beaucoup de points de phosphore. Ils doivent l'tre, car autrement
   l'affichage souffrirait d'un svre effet de moir. Les points de la
   trame correspondent rellement  l'chantillonnage du signal
   analogique du pilote vido, et sont affichs sous la forme d'une
   grille de points simplement parce que les pics et les valles du
   signal sont espacs suffisamment rgulirement et finement.

   Le trac de cet itinraire commence dans le coin suprieur gauche,
   traverse l'cran vers la droite en une ligne horizontale, et s'arrte
   momentanment au bord droit. Le faisceau est alors envoy du ct
   gauche de l'cran, mais une ligne plus bas. Cette nouvelle ligne est
   parcourue de gauche  droite juste comme la premire. Ce schma est
   rpt jusqu' ce que la dernire ligne de l'cran ait t parcourue.
   A ce moment, le faisceau est renvoy du coin infrieur droit au coin
   suprieur gauche, et la manoeuvre recommence.

   Il existe une variante de ce schma, que l'on appelle mode entrelac
   (_interlacing_) : dans ce cas, seule une ligne sur deux est parcourue
   pendant la premire demi-trame et les autres sont traites lors d'un
   deuxime parcours de demi-trame.

   Le dpart du faisceau dans le coin suprieur gauche de l'cran est
   appel le dbut de trame. La trame se termine lorsque le faisceau
   retrouve sa position de dpart venant du coin infrieur droit. Une
   trame se compose de toutes les lignes que le faisceau a parcourues
   entre le haut et le bas de l'cran.

   Si le faisceau d'lectrons tait allum en permanence pendant son
   parcours de la trame, tous les points de l'cran seraient illumins.
   Il n'y aurait pas de marges noires autour de la zone affichable. Aux
   bords de l'cran, l'image serait distordue car il est difficile de
   contrler le faisceau  cet endroit. De faon  rduire cette
   distorsion, les points en dehors de la zone affichable ne sont pas
   illumins par le faisceau, mme si celui-ci peut tre dirig dans leur
   direction. Ceci explique que la taille de la zone affichable soit
   infrieure  la surface totale de l'cran.

   Un autre concept important  comprendre est ce qu'il advient du
   faisceau lorsqu'aucun point n'est illumin  ce moment dans la zone
   affichable. Le temps pendant lequel le faisceau aurait pu illuminer
   les marges latrales de la zone affichable est utilis pour renvoyer
   le faisceau du ct droit au ct gauche en le faisant passer  la
   ligne suivante. De la mme faon, le temps pendant lequel le faisceau
   aurait pu illuminer les marges infrieure et suprieure de la zone
   affichable est utilis pour dplacer le faisceau du coin infrieur
   droit de l'cran au coin suprieur gauche.

   Le rle de la carte graphique est de gnrer les signaux qui
   commanderont  l'cran d'allumer ou d'teindre le faisceau d'lectrons
   pour chaque point, crant ainsi l'image. La carte contrle aussi le
   moment o l'cran dplace le faisceau du ct droit au dbut de la
   ligne suivante en mettant ce que l'on appelle le signal de
   synchronisation horizontale (_horizontal sync pulse_). Un signal de
   synchronisation horizontale est mis  la fin de de chaque ligne. La
   carte graphique met aussi un signal de synchronisation verticale
   (_vertical sync pulse_) qui commande  l'cran de renvoyer le faisceau
   dans le coin suprieur gauche. Un signal de synchronisation verticale
   est mis  la fin de chaque trame.

   De courts temps de pause sont ncessaires immdiatement avant et aprs
   l'mission des signaux de synchronisation horizontale et verticale de
   faon  ce que la position du faisceau puisse se stabiliser. Sinon,
   l'image ne sera pas stable.

   Pour plus d'informations, il y a une page (en anglais) TV and Monitor
   Deflection Systems.

   Dans une section ultrieure, nous reviendrons sur ces bases avec des
   dfinitions, des formules et des exemples pour vous aider  les
   utiliser.

5. Principes fondamentaux relatifs  votre cran et votre cartegraphique

   Il y a quelques principes fondamentaux qu'il vous faut comprendre
   avant de bricoler une entre dans le fichier XF86config. Ceux-ci
   sont :

     * les options relatives aux frquences de synchronisation
       horizontale et verticale de votre moniteur
     * la bande passante de votre moniteur
     * les frquences d'horloge pilotes de votre carte graphique, ou _dot
       clocks_

5.1 Les frquences de synchronisation du moniteur

   La frquence de synchronisation horizontale reprsente simplement le
   nombre de fois par seconde que l'cran peut parcourir une ligne
   horizontale ; c'est, de toutes, la valeur la plus importante
   concernant votre moniteur. La frquence de synchronisation verticale
   reprsente le nombre de fois par seconde que le moniteur peut dplacer
   le faisceau verticalement.

   Les frquences de synchronisation seront gnralement fournies  la
   page "spcifications techniques" du manuel de votre moniteur. La
   frquence de synchronisation verticale est typiquement exprime en Hz
   (cycles par seconde), la valeur horizontale en kHz (kilo-cycles par
   seconde). Les plages de valeurs se situent habituellement entre 50 et
   150 Hz verticalement, et entre 31 et 135 kHz horizontalement.

   Si vous avez un moniteur dit multi-frquences (_multisync_), ces
   frquences seront donnes sous forme de plages. Certains moniteurs,
   spcialement les modles bas de gamme, ne supportent qu'une srie de
   frquences fixes. Ceux-ci peuvent aussi tre configurs, mais votre
   marge de manoeuvre sera srieusement limite par les caractristiques
   physiques du moniteur. Choisissez la plus haute paire de frquences
   pour obtenir la meilleure rsolution. Et soyez prudents --- essayer de
   piloter un moniteur dont les frquences sont fixes  une frquence
   suprieure  celle pour laquelle il a t conu peut aisment
   l'endommager.

   Des versions prcdentes de ce guide traitaient de faon fort lgre
   l'utilisation de moniteurs multi-frquences en surcapacit, les
   poussant au-del du maximum nominal de leur frquence de
   synchronisation verticale dans le but d'obtenir de meilleures
   performances. D'autres arguments ont depuis lors t ports  notre
   connaissance, incitant  la prudence en ce domaine ; nous reviendrons
   sur ce sujet dans la section Usage du moniteur en surcapacit
   ci-dessous.

5.2 La bande passante vido du moniteur

   La page des spcifications techniques du votre manuel de votre
   moniteur devrait mentionner sa bande passante. Si ce n'est pas le cas,
   jetez un oeil  la rsolution maximale annonce pour le moniteur. En
   premire approximation, voici une table de conversion de rsolution en
   estimation de bande passante (il s'agit donc de limites suprieures
   approximatives pour la frquence pilote (_dot clock_) que vous pouvez
   utiliser) :

        640x480                 25
        800x600                 36
        1024x768                65
        1024x768 interlaced     45
        1280x1024               110
        1600x1200               185

   Au demeurant, cette table n'a rien de magique ; ces valeurs sont
   simplement les frquences pilotes les plus basses par rsolution dans
   la base de donnes des modes standard XFree86 (exception faite de la
   dernire, que j'ai extrapole). La bande passante de votre moniteur
   peut en ralit tre plus leve que le minimum requis pour sa
   rsolution maximale, aussi ne craignez pas d'essayer une frquence
   pilote de quelques MHz suprieure.

   Notez aussi que la bande passante doit rarement tre prise en ligne de
   compte aux frquences pilotes infrieures  65 MHz environ. Avec une
   carte SVGA et la plupart des moniteurs haute rsolution, vous ne
   pourrez mme pas approcher la limite de la bande passante de votre
   moniteur. En voici quelques exemples :

        Marque                          Bande passante vido
        ------                          --------------------
        NEC 4D                           75 Mhz
        Nano 907a                        50 Mhz
        Nano 9080i                       60 Mhz
        Mitsubishi HL6615               110 Mhz
        Mitsubishi Diamond Scan         100 Mhz
        IDEK MF-5117                     65 Mhz
        IOCOMM Thinksync-17 CM-7126     136 Mhz
        HP D1188A                       100 Mhz
        Philips SC-17AS                 110 Mhz
        Swan SW617                       85 Mhz
        Viewsonic 21PS                  185 Mhz

   Mme les moniteurs bas de gamme n'ont en gnral pas de contrainte
   terrible au niveau de leur bande passante aux rsolutions annonces.
   Le NEC Multisync II en est un exemple parfait --- si l'on en croit les
   spcifications du constructeur, il ne parvient mme pas  afficher en
   800x600. Il affichera au maximum en 800x560. Pour des rsolutions si
   basses, il n'est pas ncessaire de disposer de hautes frquences
   pilotes ou une large bande passante ; le mieux que vous puissiez faire
   sera probablement 32 Mhz ou 36 Mhz, l'un comme l'autre ne s'cartant
   pas trop de la bande passante annonce du moniteur : 30 Mhz.

   A ces deux frquences pilotes, il se peut que l'image affiche ne soit
   pas aussi nette qu'elle devrait l'tre, mais certainement d'une
   qualit tolrable. Il serait plus agrable, bien sr, que le NEC
   Multisync II dispose d'une bande passante vido suprieure  36 Mhz,
   par exemple. Mais ceci n'est pas indispensable pour des tches de base
   comme l'dition de texte, pour autant que l'cart ne soit pas  ce
   point important qu'il occasionne une forte distorsion de l'image (vos
   yeux vous le feraient sentir immdiatement si cela devait tre le
   cas).

5.3 La frquence pilote (_dot clock_) de la carte graphique

   La page "spcifications techniques" du manuel de votre carte graphique
   mentionne sans doute le _dot clock_ maximum de la carte (c'est  dire,
   le nombre total de pixels que la carte peut envoyer  l'cran par
   seconde).

   Si vous ne possdez pas cette information, le serveur X la trouvera
   pour vous. Les versions rcentes des serveurs X supportent tous une
   option --probeonly qui imprime cette information et termine sans
   rellement dmarrer X ni changer le mode vido.

   Si cette option n'est pas supporte dans votre cas, ne perdez pas
   espoir. Mme si X bloque votre moniteur, il mettra une ligne de
   valeurs d'horloge et d'autres informations vers la sortie erreur
   standard (_stderr_). Si vous re-dirigez cela vers un fichier, les
   informations devraient y tre conserves, mme s'il vous faut
   redmarrer la machine pour obtenir  nouveau l'accs  la console.

   Les rsultats de cette dtection du matriel ou les messages de
   dmarrage devraient ressembler  l'un des exemples suivants :

   Si vous utilisez XFree86 :

Xconfig: /usr/X11R6/lib/X11/Xconfig
(**) stands for supplied, (--) stands for probed/default values
(**) Mouse: type: MouseMan, device: /dev/ttyS1, baudrate: 9600
Warning: The directory "/usr/andrew/X11fonts" does not exist.
         Entry deleted from font path.
(**) FontPath set to "/usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/"
(--) S3: card type: 386/486 localbus
(--) S3: chipset:   924
                    ---
    Chipset -- le modle prcis du processeur (ici, un ancien masque du 86C911)

(--) S3: chipset driver: s3_generic
(--) S3: videoram:  1024k
                    -----
         Taille de la mmoire RAM tampon de trame embarque

(**) S3: clocks:  25.00  28.00  40.00   3.00  50.00  77.00  36.00  45.00
(**) S3: clocks:   0.00   0.00  79.00  31.00  94.00  65.00  75.00  71.00
                  ------------------------------------------------------
                            Frquences pilotes autorises en MHz

(--) S3: Maximum allowed dot-clock: 110MHz
                                    ------
                               Largeur de bande
(**) S3: Mode "1024x768": mode clock =  79.000, clock used =  79.000
(--) S3: Virtual resolution set to 1024x768
(--) S3: Using a banksize of 64k, line width of 1024
(--) S3: Pixmap cache:
(--) S3: Using 2 128-pixel 4 64-pixel and 8 32-pixel slots
(--) S3: Using 8 pages of 768x255 for font caching

   Si vous utilisez SGCS ou X/Inside X :

WGA: 86C911 (mem: 1024k clocks: 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71)
---  ------       -----         --------------------------------------------
 |     |            |              Frquences pilotes autorises en MHz
 |     |            +-- Taille de la mmoire RAM tampon de trame embarque
 |     +-- Modle du processeur
 +-- Nom du serveur

   Note : effectuez ce test sur votre machine lorsqu'elle n'est pas
   charge (si possible). Dans la mesure o X est une application, ses
   boucles de temporisation peuvent tre perturbes par de l'activit sur
   le disque, rendant les valeur mentionnes ci-dessus imprcises.
   Effectuez le test plusieurs fois et veillez  ce que ces valeurs se
   stabilisent ; si cela ne se produit pas, liminez autant de processus
   actifs que ncessaire. Le processus dmon qui pilote votre souris
   risque trs fort de vous causer des problmes (il s'agit de _gpm_ pour
   les utilisateurs Linux, de _mousemgr_ pour les utilisateurs de SVr4).

   De faon  viter toute imprcision lors de la dtection des
   frquences d'horloge, vous pouvez simplement copier la liste de
   frquences et la placer dans votre fichier XF86config comme valeur de
   la proprit "Clocks" --- ceci supprime la boucle de temporisation et
   fournit  X une liste prcise des valeurs d'horloge qu'il peut
   utiliser. En utilisant les donnes de l'exemple ci-dessus, cela
   donnerait :

wga
        Clocks  25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71

   Sur des systmes dont la charge de travail varie fortement, ceci peut
   vous aider  viter de mystrieux checs au dmarrage de X. Il peut
   arriver que X dmarre, obtienne une mauvaise temporisation  cause de
   la charge excessive du systme, et ne soit ds lors pas capable de
   trouver une frquence correspondante dans sa base de donnes de
   configuration --- ou choisisse la mauvaise !

5.4 Que contrlent ces donnes de base

   Les plages de frquences de synchronisation de votre moniteur, ainsi
   que la frquence pilote de votre carte graphique, dterminent la
   rsolution maximale qu'il vous sera loisible d'atteindre. Mais c'est
   le rle du pilote de priphrique d'exploiter le potentiel de votre
   quipement. Du matriel de qualit suprieure sans un pilote d'une
   comptence gale est un gaspillage d'argent. D'un autre ct, avec un
   pilote de priphrique flexible et du matriel moins puissant, vous
   pouvez gagner un peu de marge de manoeuvre par rapport aux contraintes
   physiques. Telle est la philosophie qui prsida  la conception de
   XFree86.

   Il vous faudra slectionner une frquence d'horloge adapte  la bande
   passante vido de votre moniteur. Vous bnficierez ici d'une large
   marge de manoeuvre, cependant --- certains moniteurs ont une capacit
   relle suprieure de 30% par rapport  leur bande passante nominale.
   Le risque ici est de dpasser la frquence de synchronisation
   verticale annonce du moniteur ; nous discuterons ceci en dtail plus
   loin.

   Cette connaissance de la bande passante vous permettra d'effectuer des
   choix plus avertis entre diverses configurations possibles. Elle peut
   en effet influencer les qualits visuelles de votre cran
   (spcialement la prcision dans les petits dtails).

6. Comprendre les spcifications de base

   Cette section explique la signification des spcifications mentionnes
   prcdemment, ainsi que certains autres lments qu'il vous sera utile
   de connatre. Tout d'abord, quelques dfinitions. A ct de chaque
   terme dfini est mentionn entre parenthses le nom de la variable que
   nous utiliserons pour le reprsenter dans nos formules.

   _frquence de synchronisation horizontale (HSF - horizontal sync
          freq.)_
          Nombre de parcours horizontaux par seconde (voir ci-dessus).

   _frquence de synchronisation verticale (VSF - vertical sync freq.) _
          Nombre de parcours verticaux par seconde (voir ci-dessus).
          Principalement important comme limite suprieure pour la
          frquence de rafrachissement.

   _frquence pilote (DCF - driving clock freq. = dot clock)_
          La frquence du cristal ou VCO de votre carte graphique --- le
          nombre maximum de points par seconde qu'elle peut mettre.

   _bande passante vido (VB - video bandwith)_
          La frquence la plus leve que vous puissiez appliquer 
          l'entre vido de votre moniteur en conservant une chance
          raisonnable d'obtenir une image intelligible. Si vous vous
          reprsentez le signal mis par votre carte graphique comme une
          succession rapide d'tats allums/teints, sa frquence la plus
          basse est gale  la moiti de DCF, de sorte qu'en thorie, la
          bande passante n'a de sens qu' partir de DCF/2. Pour obtenir 
          l'cran un affichage suffisamment net des petits dtails,
          cependant, vous ne souhaiterez pas qu'elle soit de loin
          infrieure  votre DCF maximale ; il vaudrait mme mieux
          qu'elle lui soit suprieure.

   _longueur de trame (HFL, VFL)_
          La longueur de trame horizontale (HFL - _horizontal frame
          length_) est le nombre de tics  l'horloge de votre carte
          graphique dont le canon  lectrons de votre moniteur a besoin
          pour parcourir une ligne horizontale, _en ce compris les marges
          gauche et droite inactives_. La longueur de trame verticale
          (VFL - _vertical frame length_) est le nombre de lignes
          parcourues dans l'image _entire_, en ce compris les marges
          infrieure et suprieure inactives.

   _frquence de rafrachissement de l'cran (RR - refresh rate)_
          Le nombre de fois par seconde que votre image est redessine
          (ceci est aussi appel la "frquence de trame" - _frame rate_).
          Plus cette frquence est leve, meilleur est l'cran, dans la
          mesure o cela diminue l'effet de clignotement. 60 Hz est bon,
          mais le standard VESA (72 Hz) est meilleur. Calculez-la sur
          base de la formule suivante :

        RR = DCF / (HFL * VFL)

          Notez que le produit au dnominateur n'est _pas_ gal  la
          rsolution visible du moniteur, mais typiquement lgrement
          plus grand. Nous entrerons dans les dtails de ceci plus loin.

          Les frquences pour lesquelles sont gnralement mentionns les
          modes dits entrelacs (comme "87Hz Interlaced") sont en fait
          des frquences de demi-trame : un cran de ce type semble avoir
          une frquence de rafrachissement suprieure aux autres modles
          de sa catgorie, mais chaque ligne individuelle n'est
          rafrachie qu'une fois sur deux.

          Dans le cadre de nos calculs, nous prendrons en compte la
          frquence de rafrachissement d'un moniteur entrelac par trame
          complte, c'est--dire 43.5 Hz dans l'exemple cit plus haut.
          La qualit d'un mode entrelac est meilleure que celle d'un
          mode non-entrelac  frquence de rafrachissement par trame
          complte gale, mais dfinitivement plus mdiocre que le mode
          non-entrelac correspondant  la frquence de rafrachissement
          par demi-trame.

6.1 A propos de la bande passante

   Les fabricants de moniteurs aiment vanter la large bande passante
   offerte par leur matriel car elle dtermine la nettet des
   transitions d'intensit et de couleur  l'cran. Une large bande
   passante signifie que de plus petits dtails seront visibles.

   Votre moniteur utilise des signaux lectroniques pour offrir  vos
   yeux l'image qu'ils contemplent. Des signaux de ce type se prsentent
   toujours sous la forme d'une onde une fois que l'information digitale
   a t convertie en un signal analogique. Ils peuvent tre perus comme
   une combinaison de nombreuses ondes plus simples, chacune ayant une
   frquence fixe, pour la plupart dans la bande des Mhz, par exemple,
   20 Mhz, 40 Mhz, voire mme 70 Mhz. La bande passante de votre moniteur
   n'est autre, en fait, que le signal analogique de plus haute frquence
   qu'il peut grer sans distorsion.

   Dans le cas qui nous occupe, la bande passante vido est
   essentiellement importante comme limite suprieure approximative au
   niveau des frquences pilotes qu'il vous est possible d'utiliser.

6.2 Frquences de synchronisation et frquence de rafrachissement

   Chaque ligne parcourue horizontalement  l'cran n'est que la partie
   visible d'un parcours de toute la longueur de la trame. A tout moment,
   il n'y a en fait qu'un seul point actif  l'cran, mais avec une
   frquence de rafrachissement suffisamment leve, la persistance
   rtinienne de vos yeux vous permet de percevoir l'image complte.

   Voici quelques schmas qui vous aideront :

     _______________________
    |                       |     La frquence de synchronisation horizontale
    |->->->->->->->->->->-> |     reprsente le nombre de fois
    |                      )|     par seconde que le faisceau d'lectrons
    |<-----<-----<-----<--- |     du moniteur peut parcourir
    |                       |     un chemin semblable  celui-ci
    |                       |
    |                       |
    |                       |
    |_______________________|
     _______________________
    |        ^              |     La frquence de synchronisation verticale
    |       ^ |             |     reprsente le nombre de fois par
    |       | v             |     seconde que le faisceau d'lectrons du
    |       ^ |             |     moniteur peut parcourir un chemin
    |       | |             |     semblable  celui-ci
    |       ^ |             |
    |       | v             |
    |       ^ |             |
    |_______|_v_____________|

   Souvenez-vous que le balayage de la zone affichable (_raster scan_)
   adopte en ralit la forme d'un zigzag trs serr ; cela signifie que
   le faisceau se dplace de gauche  droite et en mme temps de haut en
   bas.

   Nous comprenons maintenant comment frquence pilote (_dot clock_) et
   taille de trame sont lies  la frquence de rafrachissement. Par
   dfinition, un hertz (Hz) quivaut  un cycle par seconde. Ainsi, si
   votre longueur de trame horizontale est reprsente par HFL et votre
   longueur de trame verticale par VFL, il vous faut alors (HFL * VFL)
   tics pour couvrir l'entiret de l'cran. Puisque votre carte met DCF
   tics par seconde par dfinition, il s'ensuit bien entendu que le (les)
   canon(s)  lectrons de votre moniteur peuvent parcourir l'cran de
   gauche  droite et retour et de haut en bas et retour DCF / (HFL *
   VFL) fois par seconde. Ceci reprsente la frquence de
   rafrachissement de votre cran, car c'est le nombre de fois que le
   contenu de votre cran peut tre mis  jour (donc _rafrachi_) par
   seconde !

   Il vous est ncessaire d'intgrer ce concept si vous voulez pouvoir
   mettre sur pied une configuration qui sacrifie de la rsolution pour
   gagner de la stabilit (rduction de l'effet de clignotement) de la
   manire qui vous convienne le mieux.

   Pour ceux d'entre vous qui comprennent mieux un petit dessin qu'un
   long discours, en voici un :

        RR                                      VB
         |   min HSF                     max HSF |
         |    |             R1        R2  |      |
max VSF -+----|------------/----------/---|------+----- max VSF
         |    |:::::::::::/::::::::::/:::::\     |
         |    \::::::::::/::::::::::/:::::::\    |
         |     |::::::::/::::::::::/:::::::::|   |
         |     |:::::::/::::::::::/::::::::::\   |
         |     \::::::/::::::::::/::::::::::::\  |
         |      \::::/::::::::::/::::::::::::::| |
         |       |::/::::::::::/:::::::::::::::| |
         |        \/::::::::::/:::::::::::::::::\|
         |        /\:::::::::/:::::::::::::::::::|
         |       /  \:::::::/::::::::::::::::::::|\
         |      /    |:::::/:::::::::::::::::::::| |
         |     /     \::::/::::::::::::::::::::::| \
min VSF -+----/-------\--/-----------------------|--\--- min VSF
         |   /         \/                        |   \
         +--/----------/\------------------------+----\- DCF
           R1        R2  \                       |     \
                          min HSF                |    max HSF
                                                 VB

   Ce graphique traduit les capacits d'un moniteur classique. Sur l'axe
   des x sont places les frquences pilotes (DCF), sur l'axe des y les
   frquences de rafrachissement (RR). La rgion noircie du diagramme
   reprsente les capacits du moniteur : chaque point  l'intrieur de
   cette rgion est un mode graphique possible.

   Les lignes marques `R1' et `R2' symbolisent une rsolution fixe
   (telle 640x480) ; le but de leur prsence est de montrer comment une
   rsolution donne peut tre obtenue par l'utilisation de nombreuses
   combinaisons diffrentes de frquences pilotes et de frquences de
   rafrachissement. La ligne R2 reprsentera donc une plus haute
   rsolution que R1.

   Les frontires haute et basse de la rgion noircie sont de simples
   lignes horizontales qui reprsentent les valeurs limites de la
   frquence de synchronisation verticale (min VSF et max VSF). La bande
   passante vido (VB) est une limite suprieure  la frquence pilote et
   apparat donc comme une ligne verticale limitant la rgion noircie sur
   la droite.

   Au chapitre Reprsentation graphique des capacits du moniteur, vous
   trouverez un programme qui vous aidera  tablir un diagramme
   semblable  celui-ci (mais beaucoup plus joli, enrichi du style
   graphique X) pour votre moniteur personnel. Ce chapitre couvrira aussi
   ce sujet fascinant : comment dduire les limites rsultant des
   frquences de synchronisation horizontale minimum et maximum.

7. Concessions lors de la configuration du systme

   Il existe une autre faon de formuler l'quation dveloppe plus haut

        DCF = RR * HFL * VFL

   C'est--dire que vous considrez votre frquence pilote comme fixe.
   Vous pouvez ensuite convertir ces points par seconde que vous venez
   d'conomiser en frquence de rafrachissement, rsolution horizontale,
   ou rsolution verticale. Si l'un de ces paramtres augmente, l'un ou
   les deux autres doivent diminuer.

   Notez, cependant, que votre frquence de rafrachissement ne peut
   excder la frquence de synchronisation verticale maximum de votre
   moniteur. Ainsi, pour tout moniteur  une frquence pilote donne, il
   existe un produit de longueurs de trame minimum (HFL * VFL) en dessous
   duquel vous ne pourrez le faire descendre.

   Lorsque vous choisirez vos paramtres, souvenez-vous de ceci : si vous
   prenez une valeur de RR trop basse, vous serez gns par un effet de
   clignotement.

   Il n'est pas recommand de faire descendre votre frquence de
   rafrachissement en dessous des 60 Hz. Ceci reprsente la frquence
   d'oscillation des tubes fluorescents ; si vous tes sensibles 
   ceux-ci, il vous faudra de prfrence conserver les 72 Hz, le standard
   ergonomique VESA.

   L'effet de clignotement est trs prouvant pour les yeux, bien que
   l'oeil humain soit adaptable et que la tolrance individuelle au
   phnomne varie fortement. Si vous faites face  votre moniteur  un
   angle de 90%, que vous utilisez une couleur de fond sombre et une
   couleur en fort contraste pour l'avant-plan, et que vous vous
   contentez d'une intensit basse  moyenne, il se *peut* qu'une
   frquence de rafrachissement aussi basse que 45 Hz vous semble
   confortable.

   Et maintenant le test qui tue : ouvrez un xterm ayant un fond de
   couleur blanche et un avant-plan noir avec la commande xterm -bg white
   -fg black et modifiez sa taille de faon  ce qu'il recouvre
   l'entiret de la zone affichable. Rglez ensuite votre moniteur aux
   3/4 de son intensit maximum, et dtournez votre regard du moniteur.
   Essayez de le regarder en biais (de faon  forcer l'utilisation des
   cellules rtiniennes priphriques, plus sensibles). Si vous ne
   percevez aucun effet de clignotement, ou si vous considrez celui-ci
   tolrable, cela signifie que la frquence de rafrachissement vous
   convient. Dans le cas contraire il serait prfrable que vous
   configuriez une frquence de rafrachissement plus leve, car ce
   clignotement  la limite du perceptible fatiguera terriblement vos
   yeux et causera des maux de tte, mme si l'image semble parfaite en
   vision normale.

   Dans le cas des modes entrelacs, l'importance du clignotement dpend
   de plus de facteurs diffrents tels la rsolution verticale choisie et
   le type d'image affich. Il ne vous reste qu' procder  vos propres
   expriences. Quoi qu'il en soit, je ne vous conseille pas de descendre
   beaucoup sous la limite des 85 Hz (frquence par demi-trame).

   Partons du principe que vous avez choisi une frquence de
   rafrachissement reprsentant un minimum acceptable. Vous aurez alors
   quelqu'espace de manoeuvre dans le choix de vos HFL et VFL.

8. Exigences en terme de mmoire

   La mmoire tampon de trame (_frame-buffer RAM_) disponible peut
   limiter la rsolution qu'il vous sera possible d'obtenir sur des
   crans couleur ou  niveaux de gris. Cela ne joue sans doute pas de
   rle par contre sur des crans qui ne peuvent afficher que deux
   couleurs, noir et blanc sans dgrad de gris.

   Pour des images en 256 couleurs, un octet de mmoire vido est
   ncessaire pour chaque point visible  afficher. Ce byte contient
   l'information qui dfinit quel mlange de rouge, vert et bleu est
   utilis pour son point. Pour calculer la quantit de mmoire requise,
   multipliez le nombre de points visibles par ligne par le nombre de
   lignes visibles. Pour un cran d'une rsolution de 1024x768, cela
   ferait 1024 x 768 = 786432, ce qui correspond au nombre de points
   visibles sur l'cran. Cela reprsente aussi,  raison d'un byte par
   point, le nombre de bytes de mmoire vido requise sur votre carte
   graphique.

   Ainsi, vos exigences en terme de mmoire seront typiquement de (HR *
   VR)/1024 Ko de VRAM, arrondis  l'unit suprieure (nous arriverions 
   768K exactement dans l'exemple prcdent). Si vous disposez de plus de
   mmoire qu'il n'est strictement ncessaire, il vous sera possible
   d'utiliser l'excdant par la cration d'un cran virtuel d'une
   superficie suprieure  celle de votre cran physique.

   Cependant, si votre carte graphique n'est quipe que de 512K, il ne
   vous sera pas possible d'atteindre cette rsolution. Mme si vous
   possdez un bon moniteur,  dfaut d'une quantit suffisante de
   mmoire vido, votre ne pourrez exploiter pleinement les capacits de
   votre cran. D'un autre ct, si votre carte SVGA est dote d'un Mga
   de RAM, mais que votre cran ne peut afficher plus de 800x600, les
   hautes rsolutions sont malgr tout hors de votre porte (voyez la
   section Utilisation des modes entrelacs pour une solution possible).

   Ne vous faites pas de soucis si vous disposez de plus de mmoire que
   ncessaire ; XFree86 en fera bon usage en vous permettant de faire
   drouler votre zone affichable (voyez la documentation du fichier
   Xconfig concernant la paramtrisation de la taille de l'cran
   virtuel). Souvenez-vous aussi qu'une carte quipe de 512 Ko de
   mmoire ne dispose pas en ralit de 512000 octets, mais bien de 512 x
   1024 = 524288 octets.

   Si vous utilisez X/Inside avec une carte S3, et que vous acceptez de
   vous contenter de 16 couleurs (4 bits par pixel), vous pouvez employer
   le paramtre _depth 4_ dans Xconfig et effectivement doubler la
   rsolution que votre carte pourra grer. Les cartes S3, par exemple,
   offrent normalement 1024x768x256. Vous pouvez les convaincre de vous
   donner 1280x1024x16 en forant la profondeur d'image  4 bits.

9. Calcul de la taille de trame

   Avertissement : cette mthode a t dveloppe pour les moniteurs
   multi-frquences (_multisync_). Elle s'appliquera sans doute aussi aux
   moniteurs  frquence fixe, mais c'est sans garantie !

   Commencez par diviser DCF par la plus haute valeur de HSF disponible
   pour obtenir une longueur de trame horizontale.

   Par exemple, supposons que vous possdiez une carte graphique SVGA de
   type Sigma Legend dont la frquence pilote est de 65 MHz, et que votre
   moniteur ait une frquence de synchronisation horizontale de 55 kHz.
   La valeur (DCF / HSF) est alors de 1181 (65 MHz = 65000 kHz; 65000/55
   = 1181).

   Et maintenant notre premire astuce de magie noire. Il vous faut
   arrondir le rsultat obtenu au plus proche multiple de 8. Cela
   s'explique par l'architecture du contrleur VGA en usage sur les
   cartes SVGA et S3 ; ce dernier utilise un registre sur 8 bits, aprs
   dcalage  gauche de 3 bits, pour reprsenter une valeur qui
   normalement occupe 11 bits. D'autre modles de carte comme l'ATI
   8514/A n'exigent sans doute pas cet arrondi, mais nous ne sommes pas
   sr et l'utiliser ne peut pas nuire. Aussi, arrondissez la longueur de
   trame horizontale utilisable vers le bas pour obtenir 1176.

   Ce rsultat (DCF / HSF arrondi  un multiple de 8) reprsente la
   valeur minimum de HFL utilisable. Il est possible d'obtenir de plus
   grandes valeurs de HFL (et donc, probablement, plus de points
   horizontaux sur l'cran) en jouant sur la frquence de synchronisation
   pour diminuer HSF. Mais le revers de la mdaille se manifestera par un
   effet de clignotement de plus basse frquence et donc plus
   perceptible.

   En rgle gnrale, 80% de la longueur de trame horizontale est
   disponible pour la rsolution horizontale, autrement dit la partie
   visible du parcours horizontal du faisceau (ceci tient compte,
   globalement, des marges et du temps de renvoi -- c'est--dire le temps
   requis par le faisceau pour se dplacer du ct droit de l'cran au
   ct gauche, sur la ligne affichable suivante). Dans cet exemple, cela
   reprsente 944 tics d'horloge.

   Ds lors, pour donner  votre image ses proportions normales de 4:3,
   fixez la rsolution verticale aux 3/4 de la valeur que vous venez
   juste de calculer pour la rsolution horizontale. Toujours dans notre
   exemple, cela reprsente 708 tics d'horloge. Pour obtenir votre VFL en
   tant que tel, multipliez ce chiffre par 1.05, ce qui vous donne 743
   tics.

   Ce rapport 4:3 n'est revtu d'aucun pouvoir magique ; rien ne vous
   empche de dfinir des proportions qui s'cartent de la Rgle d'Or si
   cela doit vous permettre d'exploiter au mieux votre espace affichable.
   Le seul avantage de ces proportions classiques est de faciliter le
   calcul de la hauteur et largeur de trame  partir de la taille
   diagonale : multipliez simplement la diagonale par 0.8 pour obtenir la
   largeur et par 0.6 pour obtenir la hauteur.

   Ainsi, nous avons HFL=1176 et VFL=743. Si nous divisons 65 MHz par le
   produit de ces deux valeurs, nous obtenons une frquence de
   rafrachissement -- parfaitement saine -- de 74.4 Hz. Excellent !
   Mieux que le standard VESA ! Et vous obtenez une surface affichable de
   944 x 708, soit plus que les 800 par 600 que vous attendiez
   probablement. Pas mal du tout !

   Il est mme possible d'augmenter encore la frquence de
   rafrachissement, la poussant presque jusqu' 76 Hz, en exploitant le
   fait que les moniteurs supportent souvent une frquence de
   synchronisation horizontale suprieure de 2 kHz environ  leur maximum
   annonc, et en diminuant quelque peu VFL (c'est--dire, en utilisant
   moins de 75% de 944 dans l'exemple ci-dessus). Mais avant de vous
   lancer dans cette tentative d'usage en surcapacit, si vous vous y
   dcidez, soyez _sr_ que le canon  lectrons de votre moniteur
   accepte des frquences allant jusqu' 76 Hz en mode vertical. (Le trs
   rpandu NEC 4D, par exemple, ne le supporte pas. Il ne va que jusqu'
   75 Hz VSF). (Reportez-vous  la section Usage du moniteur en
   surcapacit pour une discussion plus gnrale de ce sujet. )

   Jusqu'ici, la majeure partie de ce que nous avons expos n'est que
   simple arithmtique et connaissance de base des crans d'affichage.
   Pas besoin de la moindre magie noire !

10. Magie noire et impulsions de synchronisation

   OK, vous venez de calculer les valeurs de HFL/VFL pour la frquence
   pilote que vous avez choisie, vous avez trouv une frquence de
   rafrachissement acceptable, et vrifi que vous disposiez d'une
   quantit suffisante de mmoire VRAM. Passons maintenant  la vraie
   magie noire : il vous faut dterminer o et quand placer vos signaux
   de synchronisation.

   Les signaux de synchronisation contrlent en fait les frquences de
   balayage horizontale et verticale du moniteur. Les valeurs HSF et VSF
   que vous avez extraites des spcifications techniques sont des
   quantits nominales, approximatives pour les frquences de
   synchronisation maximum. L'impulsion de synchronisation prsente dans
   le signal de la carte graphique fournit au moniteur sa vitesse
   d'excution effective.

   Vous souvenez-vous des deux schmas prsents ci-dessus ? Seule une
   partie du temps requis pour que le faisceau balaye une trame complte
   est utilis pour construire l'image affiche (autrement dit, votre
   rsolution).

10.1 Synchronisation horizontale

   En fonction de notre dfinition prcdente, il faut HFL tics d'horloge
   pour effectuer le parcours d'une ligne horizontale. Appelons HR
   (_horizontal resolution_) le nombre de tics accomplis en mode visible
   (c'est--dire la rsolution horizontale de votre cran). Il s'ensuit,
   par dfinition, que HR < HFL. Pour rester pratique, supposons que les
   deux quantits dmarrent au mme instant comme illustr ci-aprs :

  |___ __ __ __ __ __ __ __ __ __ __ __ __
  |_ _ _ _ _ _ _ _ _ _ _ _                |
  |_______________________|_______________|_____
  0                       ^               ^     unit : tic
                          |   ^       ^   |
                          HR  |       |  HFL
                          |   |<----->|   |
                          |<->|  HSP  |<->|
                          HGT1         HGT2

   Maintenant, nous voudrions obtenir un signal de synchronisation de
   longueur HSP comme illustr ci-dessus, c'est--dire entre la fin des
   tics d'horloge utiliss  l'affichage de l'image et la limite des tics
   consacrs  la trame complte. Pourquoi cela ? Parce que si nous
   parvenons  ce rsultat, l'image affiche ne sera pas dplace 
   gauche ou  droite. Elle occupera sa place assigne sur l'cran,
   recouvrant le centre de la zone affichable.

   Qui plus est, il est prfrable de conserver environ 30 tics "de
   scurit" (_guard time_) de part et d'autre de l'impulsion de
   synchronisation. Ces valeurs sont reprsentes par HGT1 et HGT2. Dans
   une configuration typique HGT1 != HGT2, mais si vous tes en train de
   construire une configuration  partir de zro, il vaudra mieux que
   vous commenciez vos expriences avec des valeurs gales (c'est--dire,
   avec l'impulsion de synchronisation centre).

   Le symptme d'une impulsion de synchronisation mal place consiste en
   un dplacement de l'image sur l'cran, l'une des marges largie 
   l'extrme tandis que l'autre ct de l'image est rflchi sur la paroi
   latrale du tube, ce qui rsulte en une ligne blanche  la limite de
   la zone affichable et une bande d'image "fantme" du ct intrieur de
   cette ligne. Une impulsion de synchronisation verticale excessivement
   mal place peut aller jusqu' provoquer un saut cyclique de l'image
   similaire  ce qu'on observe sur un poste de tlvision dont on aurait
   drgl le bouton d'ajustement vertical (c'est en fait le mme
   phnomne qui est  l'oeuvre ici).

   Si vous avez de la chance, la largeur des signaux de synchronisation
   de votre moniteur sera documente  la page des spcifications
   techniques. Dans le cas contraire, c'est ici que l'on entre dans la
   vraie magie noire...

   Pour cette section-ci, il vous faudra en partie procder par essais et
   erreurs. Mais la plupart du temps, vous pouvez sans danger partir du
   principe qu'une impulsion de synchronisation a une dure d'environ 3.5
    4.0 microsecondes.

   Toujours pour rester concret, supposons qu'HSP vaille 3.8
   microsecondes (ce qui, soit dit en passant, n'est pas une mauvaise
   valeur de dpart lorsque l'on exprimente).

   Dans cette hypothse, sur base de la frquence pilote de 65 Mhz
   mentionne plus haut, nous obtenons que HSP est gal  247 tics
   d'horloge (= 65 * 10^6 * 3.8 * 10^-6) [souvenez-vous : Mga=10^6,
   micro=10^-6].

   Certains fabricants aiment mentionner leurs paramtres de tramage
   horizontal sous forme de dure plutt que de largeur exprime en
   pixels. Vous pourriez chez eux rencontrer les termes suivants :

   _dure utile (HAT - Horizontal Active Time)_
          Equivalent  HR, mais en millisecondes. HAT * DCF = HR.

   _dure de service (HBT - Horizontal Blanking Time)_
          Equivalent  (HFL - HR), mais en millisecondes. HBT * DCF =
          (HFL - HR).

   _fentre avant (HFP - Horizontal Front Porch)_
          Synonyme d'HGT1.

   _dure de synchronisation_
          Synonyme d'HSP.

   _fentre arrire (HBP - Horizontal Back Porch)_
          Synonyme d'HGT2.

10.2 Synchronisation verticale

   En nous rfrant  l'illustration prcdente, comment placerons-nous
   les 247 tics d'horloge comme indiqu dans le graphe ?

   Toujours sur base du mme exemple, nous avons HR gal  944 et HFL
   gal  1176. La diffrence entre les deux est 1176 - 944 = 232 < 247 !
   De toute vidence, il nous faudra ici procder  quelques ajustements.
   Que peut-on faire ?

   La premire tape est de porter 1176  1184, et de rduire 944  936
   (choix des arrondis aux multiples de 8 -- n.d.t.). Maintenant la
   diffrence = 1184 - 936 = 248. Hmm, on approche.

   Ensuite, au lieu d'utiliser 3.8, nous prendrons 3.5 pour calculer
   HSP ; ce qui nous donne 65 * 3.5 = 227. C'est dj beaucoup mieux.
   Mais 248 n'est pas beaucoup plus lev que 227. Il est normalement
   requis de laisser environ 30 tics d'horloge entre HR et le dbut de
   SP, et la mme remarque est valable entre la fin de SP et HFL. ET ces
   valeurs doivent tre multiples de huit ! Sommes-nous dans l'impasse ?

   Non. Procdons comme suit, 936 % 8 = 0, (936 + 32) % 8 = 0 galement.
   Mais 936 + 32 = 968, 968 + 227 = 1195, 1195 + 32 = 1227. Hmm... ceci
   n'a pas l'air trop mal. Mais ce n'est pas un multiple de huit, aussi
   arrondissons-le  1232.

   Des ennuis potentiels se profilent hlas  l'horizon car l'impulsion
   de synchronisation n'est plus situe juste au milieu de l'espace h -
   H. Heureusement, grce  l'aide de notre calculette nous trouvons que
   1232 - 32 = 1200 est aussi un multiple de 8 et que (1232 - 32) - 968 =
   232, ce qui correspondrait  utiliser une impulsion de synchronisation
   d'une dure de 3.57 microsecondes, une valeur qui est encore
   raisonnable.

   En plus, 936 / 1232 ~ 0.76 ou 76%, ce qui ne s'loigne pas trop des
   80%, il ne devrait donc pas y avoir de problme.

   Qui plus est, l'usage de la longueur de trame horizontale prsente
   requiert de notre moniteur qu'il effectue sa synchronisation 
   52.7 kHz (= 65 MHz / 1232) ce qui se situe dans les limites de ses
   capacits. Pas de problme.

   Sur base des rgles gnrales mentionnes plus haut, notre nouvelle
   rsolution verticale sera de 936 * 75% = 702. Notre nouvelle longueur
   de trame verticale vaudra 702 * 1.05 = 737.

   Frquence de rafrachissement de l'cran = 65 MHz / (737 * 1232) =
   71.6 Hz. Cette valeur est toujours excellente.

   La reprsentation de l'impulsion de synchronisation verticale est trs
   semblable :

   |___ __ __ __ __ __ __ __ __ __ __ __ __
   |_ _ _ _ _ _ _ _ _ _ _ _                |
   |_______________________|_______________|_____
   0                      VR              VFL     units : tics
                           ^   ^       ^
                           |   |       |
                           |<->|<----->|
                            VGT    VSP

   Nous commenons l'impulsion de synchronisation juste aprs la fin des
   cycles verticaux consacrs  l'affichage rel de donnes. VGT est
   l'intervalle de scurit (_vertical guard time_) requis pour
   l'impulsion de synchronisation. La plupart des moniteurs supportent
   sans broncher une valeur de VGT de 0 (pas d'intervalle de scurit) et
   nous tirerons parti de cette possibilit dans cet exemple. Un petit
   nombre, cependant, ncessitent l'emploi d'un intervalle de scurit de
   2 ou 3 tics, et cela ne cause gnralement pas grand tort de les
   ajouter.

   Revenons  notre exemple : puisque, suivant la dfinition du concept
   de longueur de trame, un tic (ou cycle) vertical reprsente le temps
   ncessaire pour dessiner une trame HORIZONTALE complte, il s'ensuit
   dans notre exemple qu'il vaut 1232 / 65 MHz = 18.95 s.

   L'exprience prouve qu'une impulsion de synchronisation verticale
   devrait se situer quelque part entre 50 s et 300 s. En guise
   d'illustration, prenons 150 s, ce qui correspond  8 tics d'horloge
   verticaux (150 s / 18.95 s ~ 8).

   Certains fabricants aiment mentionner leurs paramtres de tramage
   vertical sous forme de dure plutt que de largeur exprime en pixels.
   Vous pourriez chez eux rencontrer les termes suivants :

   _dure utile (VAT - Vertical Active Time)_
          Equivalent  VR, mais en millisecondes. VAT * VSF = VR.

   _dure de service (VBT - Vertical Blanking Time)_
          Equivalent  (VFL - VR), mais en millisecondes. VBT * VSF =
          (VFL - VR).

   _fentre avant (VFP - Vertical Front Porch)_
          Synonyme de VGT.

   _dure de synchronisation_
          Synonyme de VSP.

   _fentre arrire (VBP - Vertical Back Porch)_
          Une seconde temporisation de scurit aprs l'impulsion de
          synchronisation verticale. Souvent nulle.

11. Synthse

   La Table des Modes Vido du fichier Xconfig contient des squences de
   nombres, chaque ligne dfinissant de faon complte un mode opratoire
   du serveur X. Les champs sont groups en quatre sections,  savoir
   respectivement le nom, la frquence pilote, les paramtres horizontaux
   et les paramtres verticaux.

   La section consacre au nom ne contient qu'un champ, le nom du mode
   vido dfini par le reste de la ligne. Il sera fait rfrence  ce nom
   dans les lignes "Modes" de la section de configuration du pilote de
   carte graphique du fichier Xconfig. Le champ nom peut tre omis si la
   valeur nom d'une ligne prcdente s'applique  la ligne courante.

   La section de la ligne de mode consacre  la frquence pilote ne
   contient que ce champ-l (c'est la quantit que nous avions baptise
   DCF). La valeur place dans ce champ spcifie quelle frquence pilote
   a t utilise pour gnrer les valeurs des sections suivantes.

   La section des paramtres horizontaux se compose de quatre champs qui
   dfinissent comment chaque ligne horizontale de l'cran doit tre
   construite. Le premier champ de la section contient le nombre de
   points par ligne qui seront illumins pour crer l'image (la quantit
   que nous avons appele HR). Le second champ de la section (SH1) dcrit
   le point o commencera l'impulsion de synchronisation horizontale. Le
   troisime champ (SH2) dcrit le point o se terminera cette impulsion
   de synchronisation. Le quatrime champ dfinit la longueur de trame
   horizontale totale (HFL).

   La section des paramtres verticaux contient aussi quatre champs. Le
   premier champ contient le nombre de lignes visibles qui apparatront
   sur l'cran (VR). Le second champ (SV1) indique le numro de la ligne
   o commencera l'impulsion de synchronisation verticale. Le troisime
   champ (SV2) dfinit le numro de ligne o se terminera cette impulsion
   de synchronisation. Le quatrime champ contient la longueur de trame
   verticale totale (VFL).

   Exemple :

     #Nom de mode  horloge  valeurs horizontales  valeurs verticales

     "752x564"     40       752 784 944 1088      564 567 569 611
                   44.5     752 792 976 1240      564 567 570 600

   (Note : la version de base de X11R5 ne permet pas l'emploi de
   frquences pilotes fractionnaires.)

   Pour Xconfig, toutes les valeurs dont nous venons de parler - le
   nombre de points illumins sur une ligne, le nombre de points sparant
   ceux qui sont illumins du dbut de l'impulsion de synchronisation, le
   nombre de points reprsentant la dure de cette impulsion, et le
   nombre de points situs aprs la fin de l'impulsion de synchronisation
   - sont additionns pour fournir le nombre de points par ligne. Le
   nombre de points horizontaux doit tre divisible par huit.

   Exemple de valeurs horizontales : 800 864 1024 1088

   Cette ligne exemplative comporte le nombre de points illumins (800)
   suivi par la coordonne horizontale du point o commence l'impulsion
   de synchronisation (864), suivi par la coordonne horizontale du point
   o finit cette impulsion (1024), suivi par la coordonne horizontale
   du dernier point sur la ligne (1088).

   Remarquez en plus que chacune des valeurs horizontales (800, 864,
   1024, et 1088) sont divisibles par huit ! Les valeurs verticales ne
   sont pas frappes de la mme exigence.

   Le nombre de lignes comprises entre le sommet de la zone affichable et
   le bas de celle-ci compose la trame. Le signal d'horloge de base, en
   ce qui concerne la trame, est la ligne. Un certain nombre de lignes
   composeront l'image. Aprs que la dernire ligne illumine ait t
   affiche, un dlais correspondant  un nombre prcis de lignes sera
   respect avant que l'impulsion de synchronisation verticale soit
   mise. Cette impulsion durera alors pour quelques lignes, et
   finalement les dernires lignes de la trame, correspondant au dlais
   requis aprs l'impulsion, seront traces. Les valeurs qui dfinissent
   ce mode opratoire sont fournies d'une manire semblable  l'exemple
   suivant.

   Exemple de valeurs verticales : 600 603 609 630

   Cet exemple dfinit une image compose de 600 lignes visibles, o
   l'impulsion de synchronisation verticale dbute sur la 603me ligne et
   se termine sur la 609me, et compose d'un total global de 630 lignes.

   Remarquez que les valeurs verticales ne doivent pas ncessairement
   tre divisibles par huit !

   Revenons  l'exemple sur lequel nous travaillions. Suivant ce que nous
   venons d'exposer, tout ce qu'il nous reste  faire est de placer nos
   rsultats dans le fichier Xconfig selon le format suivant :

<nom>   DCF     HR  SH1 SH2   HFL   VR  SV1 SV2 VFL

   o SH1 reprsente le tic de dbut de l'impulsion de synchronisation
   horizontale et SH2 son tic final ; de la mme manire, SV1 reprsente
   le tic initial de l'impulsion de synchronisation verticale et SV2 son
   tic final.

   Pour dfinir ces valeurs, souvenez-vous de la discussion relative  la
   magie noire et aux impulsions de synchronisation que nous avons tenue
   plus haut. SH1 est le point qui marque le front avant de l'impulsion
   de synchronisation horizontale ; donc, SH1 = HR + HGT1. SH2 reprsente
   le front arrire ; donc, SH2 = SH1 + HSP. De la mme manire, SV1 = VR
   + VGT (mais VGT vaut la plupart du temps 0) et SV2 = SV1 + VSP.

#nom     frq.   valeurs horizontales   valeurs verticales   drapeau
936x702  65      936 968 1200 1232      702 702 710 737

   Aucun drapeau (_flag_) spcial n'est ncessaire ici ; il s'agit d'un
   mode non-entrelac. Maintenant nous avons rellement termin.

12. Usage du moniteur en surcapacit

   Il vous est _fermement dconseill_ de tenter d'imposer  votre
   moniteur l'usage d'une frquence de balayage suprieure s'il s'agit
   d'un moniteur  frquence fixe. Votre cran peut tout simplement finir
   grill ! Avec un moniteur multi-frquences en surcapacit, il peut
   survenir des problmes potentiellement plus subtils, dont il est bon
   que vous soyez conscients.

   Par contre, utiliser une frquence pilote suprieure  la bande
   passante maximum du moniteur est relativement inoffensif. C'est le
   dpassement des frquences maximales de synchronisation qui est
   problmatique. Les moniteurs modernes ont des circuits de protection
   qui teignent l'cran aux frquences dangereuses, mais ne comptez pas
   trop dessus. En particulier, il y a des vieux moniteurs
   multifrquences (comme le Multisync II) qui n'utilisent qu'un
   transformateur horizontal. Ces moniteurs n'offrent pas tellement de
   protection contre leur usage en surcapacit. Mme s'il y a forcment
   des circuits de rgulation haute tension (qui ne sont pas ncessaires
   dans un moniteur  frquences fixes), ils ne couvriront pas forcments
   tous les intervalles de frquences possibles, particulirement dans
   les modles bon march. Il n'y a pas seulement des risques pour les
   circuits, mais cela risque aussi d'acclrer le vieillissement de la
   couche de phosphore, et d'augmenter la dose de radiation (dont les
   rayons X) mise par le moniteur.

   Cependant, la valeur qui est la source principale des problmes est la
   frquence d'oscillation (_slew rate_) - la "pente" des signaux vido -
    la sortie de la carte graphique, et cela ne dpend normalement pas
   de la frquence pilote courante, mais (si le constructeur de votre
   carte se proccupe de ces questions) est li  la frquence pilote
   maximum supporte par la carte.

   Aussi, soyez prudents...

13. Utilisation des modes entrelacs

   (Cette section est de en majeure partie  David Kastrup)

   A une frquence pilote donne, un cran entrelac manifestera un effet
   de clignotement considrablement moins perceptible qu'un cran
   non-entrelac, si les circuits verticaux de votre moniteur sont
   capables de supporter cette frquence de faon stable. C'est la raison
   pour laquelle ces modes entrelacs furent invents au dpart.

   Les modes entrelacs doivent leur mauvaise rputation au fait que leur
   qualit est infrieure au mode non-entrelac quivalent  la mme
   frquence de balayage verticale, VSF (celle qui est gnralement
   mentionne dans les publicits). Mais ils sont certainement d'une
   qualit suprieure  la mme frquence de balayage horizontale, et
   c'est l que se situent les limites dcisives de votre couple
   moniteur/carte graphique.

   A une _frquence de rafrachissement_ donne (ou frquence de
   demi-trame, ou VSF) l'affichage entrelac manifestera un clignotement
   plus fort : un affichage entrelac  90 Hz sera d'une qualit
   infrieure  un affichage non-entrelac  90 Hz. Il ne ncessitera,
   cependant, que la moiti de la bande passante vido et la moiti de la
   frquence de balayage horizontale. Si vous le comparez  un mode
   non-entrelac  la mme frquence pilote et aux mmes frquences de
   balayage, vous le trouverez de loin suprieur : 45 Hz non-entrelac
   est intolrable. Avec 90 Hz entrelac, j'ai travaill des annes sur
   mon Multisync 3D ( 1024x768) et j'en suis tout  fait satisfait. J'ai
   l'impression qu'il vous faudrait au moins du 70 Hz non-entrelac pour
   atteindre un niveau de confort quivalent.

   Voici quelques lments auxquels il vous faudra prter attention,
   cependant : n'employez les modes entrelacs qu' des rsolutions
   leves, de sorte que les lignes illumines alternativement soient
   proches les unes des autres. Vous avez aussi la possibilit de jouer
   sur la largeur et la position de l'impulsion de synchronisation pour
   obtenir le positionnement des lignes le plus stable. Si des lignes
   successives sont claires et fonces, l'entrelacement va vous "sauter 
   la figure". J'utilise un programme qui emploie une configuration de
   points semblable pour l'arrire-plan d'un menu (il s'agit d'XCept --
   aucun autre programme  ma connaissance ne fait cela, heureusement).
   Je slectionne toujours un mode 800x600 avant d'utiliser XCept parce
   que cela fait rellement mal aux yeux autrement.

   Pour la mme raison, utilisez au moins des polices 100 dpi, ou toute
   autre police dont les barres horizontales font au moins deux lignes
   d'paisseur (dans le cas de hautes rsolutions, cela n'a pas de sens
   d'utiliser quoi que ce soit d'autre de toute faon).

   Et bien sr, n'utilisez jamais de mode entrelac si votre matriel est
   capable de supporter l'emploi d'un mode non-entrelac  la mme
   frquence de rafrachissement.

   Si, au contraire, vous remarquez qu' certaines rsolutions vous
   poussez soit le moniteur soit la carte graphique jusqu' ses limites,
   et que vous obtenez un clignotement dsagrable ou une image dlave
   (signe que vous saturez la bande passante disponible), peut-tre
   souhaiterez-vous essayer d'obtenir la mme rsolution par l'emploi
   d'un mode entrelac. Ceci bien sr n'a de sens que si le VSF de votre
   moniteur n'est pas encore proche de sa limite.

   La mise au point d'un mode entrelac est facile : procdez exactement
   comme pour un mode non-entrelac. Il suffit de prendre en compte deux
   lments supplmentaires : il vous faut un nombre total impair de
   lignes verticales (la dernire valeur de votre ligne de mode), et
   lorsque vous spcifiez le drapeau "Interlace", la frquence de trame
   verticale relle pour votre moniteur est double. Il faut que votre
   moniteur supporte une frquence de trame de 90 Hz si le mode que vous
   spcifiez semble tre du 45 Hz, le drapeau "Interlace" mis  part.

   En guise d'exemple, ceci est ma ligne de mode pour du 1024x768
   entrelac : mon Multisync 3D supporte jusqu' 90 Hz vertical et 38 kHz
   horizontal.

ModeLine "1024x768" 45 1024 1048 1208 1248 768 768 776 807 Interlace

   Les deux limites sont pour ainsi dire atteintes avec ce mode. Mais si
   vous spcifiez le mme mode, en omettant simplement le drapeau
   "Interlace", vous vous situez toujours  la limite de la capacit
   horizontale du moniteur (et,  strictement parler, un poil en dessous
   de la limite infrieure de la frquence de balayage verticale), tandis
   que vous souffrirez d'un insupportable effet de clignotement de
   l'image.

   Quelques rgles de base : si vous avez mis au point un mode qui
   n'exploite que la moiti de la capacit verticale de votre moniteur,
   changez le nombre total de lignes en une valeur impaire et ajoutez le
   drapeau "Interlace". La qualit de l'image devrait s'en trouver
   grandement amliore dans la majorit des cas.

   Si vous utilisez un mode non-entrelac qui par ailleurs dpasse les
   spcifications de votre moniteur tandis que la frquence de balayage
   verticale se situe  30% ou plus en dessous du maximum support par
   votre cran, mettre au point manuellement un mode entrelac (qui
   offrira sans doute une rsolution lgrement suprieure) peut fournir
   de meilleurs rsultats, mais je ne peux rien promettre.

14. Questions et rponses

   Q. L'exemple prsent plus haut met en scne une taille d'cran non
   standard. Puis-je l'utiliser ?

   R. Pourquoi pas ? Il n'y a absolument AUCUNE raison qui vous force 
   vous cantonner aux tailles habituelles 640x480, 800x600, ou mme
   1024x768. Les serveurs XFree86 vous offrent normment de libert lors
   de la configuration de votre matriel. Il faut gnralement deux ou
   trois essais pour obtenir la bonne. L'objectif  garder en ligne de
   mire est une frquence de rafrachissement leve tout en conservant
   une zone affichable de taille raisonnable. Ne visez pas une rsolution
   leve si c'est au prix d'un clignotement qui vous ruinera les yeux !

   Q. Est-ce l la seule rsolution utilisable compte tenu d'une
   frquence pilote de 65 MHz et d'un HSF de 55 kHz ?

   R. Pas du tout ! Nous vous exhortons au contraire  suivre la
   procdure gnrale dcrite plus haut et  vous livrer  quelques
   expriences afin d'obtenir une configuration qui vous plaise
   rellement. Vous livrer  ces expriences peut vous apporter
   normment de plaisir. La plupart des configurations risquent de ne
   produire qu'une horrible neige, mais en pratique un cran moderne
   multi-frquences n'est pas si facile  endommager. Soyez sr,
   cependant, que votre moniteur peut supporter la frquence de trame que
   vous voulez lui infliger avant de l'utiliser pour un temps
   considrable.

   Mais mfiez-vous des moniteurs  frquence fixe ! Ce type de
   manipulations hasardeuses peut les endommager trs rapidement. Soyez
   sr que vous utilisez une frquence de rafrachissement supporte lors
   de _chaque_ tentative.

   Q. Vous n'avez fait mention que de deux rsolutions standard. Dans le
   fichier Xconfig, de nombreuses rsolutions standard sont disponibles.
   Pouvez-vous me dire s'il y a une raison pour moi de chipoter avec les
   valeurs de synchronisation ?

   R. Tout  fait ! Prenez par exemple le "standard" 640x480 mentionn
   dans le fichier Xconfig actuel. Il exploite une frquence pilote de
   25 Mhz, les longueurs de trame sont de 800 et 525 ce qui nous donne
   une frquence de rafrachissement d'environ 59.5 Hz. Pas trop mal.
   Mais 28 MHz est une frquence pilote gnralement disponible sur
   nombre de cartes SVGA. Si vous utilisiez celle-ci pour gnrer du
   640x480, suivant la procdure illustre plus haut, vous obtiendriez
   des longueurs de trame de 812 (arrondi  808) et 505. La frquence de
   rafrachissement est maintenant porte  68 Hz, ce qui reprsente une
   amlioration significative par rapport  la configuration standard.

   Q. Pourriez-vous rsumer ce qui a t expos jusqu'ici ?

   R. En bref :
    1. pour toute frquence pilote donne, une augmentation de la
       rsolution maximum se paye par une diminution de la frquence de
       rafrachissement, ce qui induira un effet de clignotement accru.
    2. si l'obtention d'une rsolution leve s'avre ncessaire et si
       votre moniteur la supporte, essayez de vous procurer une carte
       SVGA qui fournisse une frquence pilote (ou DCF) compatible. Plus
       elle est leve, meilleur sera le rsultat !

15. Rsoudre les problmes affectant l'image

   OK, ainsi donc vous disposez maintenant des valeurs ncessaires  la
   configuration de X. Vous les avez places dans votre fichier Xconfig,
   en choisissant pour le mode un champ "nom" qui l'identifie comme un
   test. Vous dmarrez X, vous utilisez les touches d'accs rapide pour
   sauter au nouveau mode, ... et l'image ne semble pas correcte. Que
   faites-vous ? Ci-dessous se trouve une liste de distorsions d'image
   vido frquentes et la faon d'y remdier.

   (Rsoudre ces distorsions mineures est rellement la situation o
   _xvidtune_(1) brillera de tous ses feux.)

   Vous _dplacerez_ l'image en modifiant les coordonnes temporelles de
   l'impulsion de synchronisation. Vous _agirez sur sa taille_ en jouant
   sur la longueur de trame (n'oubliez pas de dplacer l'impulsion de
   synchronisation en consquence, de faon  la maintenir  la mme
   position relative, sinon altrer la taille de l'image dplacera aussi
   celle-ci). Voici quelques recettes plus spcifiques :

   Les positions horizontale et verticale sont indpendantes. Par cela,
   nous entendons que dplacer l'image horizontalement n'affecte pas sa
   position verticale, et rciproquement. Cependant, il n'en va pas tout
    fait de mme pour la taille. Alors que le fait de modifier la taille
   horizontale n'affecte en rien la dimension verticale et vice versa, la
   quantit globale de changement qui peut tre apport dans les deux
   directions peut tre limit. En particulier, si votre image est trop
   large dans les deux sens il vous faudra probablement adopter une
   frquence pilote plus leve pour la faire rtrcir. Dans la mesure o
   cela se traduira par une augmentation de la rsolution utilisable,
   c'est rarement un problme !

15.1 L'image est dcentre vers la gauche ou la droite

   Pour y remdier, dplacez l'impulsion de synchronisation horizontale.
   C'est--dire, incrmentez ou dcrmentez (par un multiple de 8) les
   deux valeurs mdianes de la section des donnes horizontales qui
   dterminent les limites antrieure et postrieure de l'impulsion de
   synchronisation horizontale.

   Si l'image est dcentre vers la gauche (la marge droite tant trop
   large, vous souhaitez faire glisser l'image vers la droite)
   dcrmentez les valeurs. Si l'image est dcentre vers la droite
   (marge gauche trop large, vous voulez faire glisser l'image vers la
   gauche) incrmentez les coordonnes de l'impulsion de synchronisation.

15.2 L'image est dcentre vers le haut ou le bas

   Pour rsoudre ce problme, dplacez l'impulsion de synchronisation
   verticale. A savoir, incrmentez ou dcrmentez les deux valeurs
   mdianes de la section des donnes verticales qui dterminent les
   limites antrieure et postrieure de l'impulsion de synchronisation
   verticale.

   Si l'image est dcentre vers le haut (marge infrieure trop large,
   vous souhaitez faire glisser l'image vers le bas) dcrmentez les
   valeurs. Si l'image est dcentre vers le bas (marge suprieure trop
   large, vous souhaitez faire glisser l'image vers le haut) incrmentez
   les valeurs.

15.3 L'image est trop grande dans les deux directions

   Passez  une frquence d'horloge suprieure sur la carte. Si vous
   disposez de nombreux modes diffrents dans votre fichier de
   configuration, il est possible que l'un de ceux qui exploitent une
   frquence infrieure ait t activ par erreur.

15.4 L'image est trop large (ou trop troite) horizontalement

   Pour remdier  cela, augmentez (ou diminuez) la longueur de trame
   horizontale. C'est--dire, modifiez la quatrime valeur de la premire
   section des coordonnes temporelles. Pour viter de dplacer l'image
   par la mme occasion, dplacez aussi l'impulsion de synchronisation
   (deuxime et troisime valeurs) de la moiti de la diffrence, de
   faon  la conserver  la mme position relative.

15.5 L'image est trop grande (ou trop petite) verticalement

   Pour rsoudre ce problme, augmentez (ou diminuez) la longueur de
   trame verticale. C'est--dire, modifiez la quatrime valeur dans la
   deuxime section des coordonnes temporelles. Pour viter de dplacer
   l'image, n'oubliez pas de dplacer aussi l'impulsion de
   synchronisation (deuxime et troisime valeurs) de la moiti de la
   diffrence, pour la garder  la mme position relative.

   Toute distorsion qui ne peut tre limine en combinant ces techniques
   est probablement la preuve d'un problme plus profond, comme une
   erreur dans les calculs ou une frquence pilote suprieure aux limites
   du moniteur.

   En dernier lieu, souvenez-vous que si vous augmentez l'une des
   longueurs de trame, vous diminuerez du mme coup votre frquence de
   rafrachissement, et rciproquement.

   Occasionnellement, vous pouvez corriger les petites distorsions
   d'image en jouant sur les rglages de votre moniteur. Le dfaut de
   cette mthode est que si vous vous loignez trop des rglages d'usine
   pour rgler les problmes du mode graphique, vous pouvez vous
   retrouver avec une image inutilisable en mode texte. Il vaut mieux
   rgler vos lignes de modes.

16. Reprsentation graphique des capacits du moniteur

   Pour tracer le diagramme d'un mode moniteur, il vous faudra le
   programme gnuplot (un langage libre de trac graphique pour
   plate-formes de type UNIX) et l'outil modeplot, un fichier de
   commandes shell/gnuplot qui tracera le diagramme sur base des
   caractristiques de votre moniteur, fournies comme options sur la
   ligne de commande.

   Ci-dessous se trouve une copie de modeplot :

#!/bin/sh
#
# modeplot -- cre un graphe X des modes moniteurs disponibles
#
# Invoquez `modeplot -?' pour afficher les options de contrle.
#

# Description du moniteur. Bande passante en MHz, frquences horizontales
# en kHz et frquences verticales en Hz.
TITLE="Viewsonic 21PS"
BANDWIDTH=185
MINHSF=31
MAXHSF=85
MINVSF=50
MAXVSF=160
ASPECT="4/3"
vesa=72.5       # frq. de rafrachissement min. recommande VESA

while [ "$1" != "" ]
do
        case $1 in
        -t) TITLE="$2"; shift;;
        -b) BANDWIDTH="$2"; shift;;
        -h) MINHSF="$2" MAXHSF="$3"; shift; shift;;
        -v) MINVSF="$2" MAXVSF="$3"; shift; shift;;
        -a) ASPECT="$2"; shift;;
        -g) GNUOPTS="$2"; shift;;
        -?) cat <<EOF
options de contrle de modeplot :

-t "<description>"   nom du moniteur            dfaut : "Viewsonic 21PS"
-b <nn>              bande passante en MHz      dfaut : 185
-h <min> <max>    HSF min & max (kHz)        dfaut : 31 85
-v <min> <max>    VSF min & max (Hz)         dfaut : 50 160
-a <aspect ratio>    proportions de l'image     dfaut : 4/3
-g "<options>"       options  transmettre  gnuplot

La prsence des paramtres -b, -h et -v est requise, -a, -t, -g sont
optionnels.  Vous pouvez utiliser -g pour transmettre un nom de
priphrique  gnuplot de faon  ce que (par exemple) les sorties
produites par modeplot puissent tre rediriges vers une imprimante.
Voyez gnuplot(1) pour de plus amples dtails.

L'outil modeplot a t conu par Eric S. Raymond <esr@thyrsus.com> sur
base d'une analyse et d'un code original par Martin Lottermoser
<Martin.Lottermoser@mch.sni.de>

Voici modeplot $Revision: 1.1.1.1 $
EOF
                exit;;
        esac
        shift
done

gnuplot $GNUOPTS <<EOF
set title "$TITLE Mode Plot"

# Nombres magiques.  Malheureusement, le graphe est trs sensible  toute
# modification de ceux-ci, et ils pourraient tre loin de la vrit dans
# le cas de certains moniteurs.  Il nous faut dterminer des valeurs afin
# d'obtenir mme une approximation du diagramme de mode. Ces valeurs
# proviennent d'une comparaison de nombreux exemples fournis dans la base
# de donnes ModeDB.
F1 = 1.30       # facteur de conversion rsol. horiz. -> largeur de trame
F2 = 1.05       # facteur de conversion rsol. vertic. -> hauteur de trame

# Dfinition de fonctions
# (multiplier par 1.0 force l'arithmtique en nombres rels)
ac = (1.0*$ASPECT)*F1/F2
refresh(hsync, dcf) = ac * (hsync**2)/(1.0*dcf)
dotclock(hsync, rr) = ac * (hsync**2)/(1.0*rr)
resolution(hv, dcf) = dcf * (10**6)/(hv * F1 * F2)

# Place les lgendes le long des axes
set xlabel 'DCF (MHz)'
set ylabel 'RR (Hz)' 6  # Place la lgende juste au-dessus de l'axe des Y

# Gnre le diagramme
set grid
set label "VB" at $BANDWIDTH+1, ($MAXVSF + $MINVSF) / 2 left
set arrow from $BANDWIDTH, $MINVSF to $BANDWIDTH, $MAXVSF nohead
set label "max VSF" at 1, $MAXVSF-1.5
set arrow from 0, $MAXVSF to $BANDWIDTH, $MAXVSF nohead
set label "min VSF" at 1, $MINVSF-1.5
set arrow from 0, $MINVSF to $BANDWIDTH, $MINVSF nohead
set label "min HSF" at dotclock($MINHSF, $MAXVSF+17), $MAXVSF + 17 right
set label "max HSF" at dotclock($MAXHSF, $MAXVSF+17), $MAXVSF + 17 right
set label "VESA $vesa" at 1, $vesa-1.5
set arrow from 0, $vesa to $BANDWIDTH, $vesa nohead # style -1
plot [dcf=0:1.1*$BANDWIDTH] [$MINVSF-10:$MAXVSF+20] \
  refresh($MINHSF, dcf) notitle with lines 1, \
  refresh($MAXHSF, dcf) notitle with lines 1, \
  resolution(640*480,   dcf) title "640x480  " with points 2, \
  resolution(800*600,   dcf) title "800x600  " with points 3, \
  resolution(1024*768,  dcf) title "1024x768 " with points 4, \
  resolution(1280*1024, dcf) title "1280x1024" with points 5, \
  resolution(1600*1280, dcf) title "1600x1200" with points 6

pause 9999
EOF

   Une fois que vous tes sr d'avoir correctement install modeplot et
   le programme gnuplot, il vous faudra runir les caractristiques
   suivantes de votre moniteur :

     * bande passante vido (VB)
     * gamme de frquences de synchronisation horizontale (HSF)
     * gamme de frquences de synchronisation verticale (VSF)

   Le programme de trac doit faire quelques suppositions
   simplificatrices qui ne sont pas ncessairement correctes. C'est la
   raison pour laquelle le diagramme rsultant n'est qu'une description
   relativement grossire. Ces suppositions sont les suivantes :

    1. Toutes les rsolutions n'ont qu'un seul rapport de proportions
       prdfini AR = HR/VR. Les rsolutions standard ont AR = 4/3 ou AR
       = 5/4. Le programme modeplot suppose 4/3 par dfaut, Mais il vous
       est possible de modifier cela.
    2. Pour les modes pris en compte, les longueurs de trames horizontale
       et verticale sont des multiples fixs des rsolutions horizontale
       et verticale, respectivement :

        HFL = F1 * HR
        VFL = F2 * VR

   En premire approximation, prenez F1 = 1.30 et F2 = 1.05 (voyez la
   section Calcul de la taille de trame).

   Maintenant considrez une frquence de synchronisation particulire,
   HSF. Sur base des prsupposs que nous venons de mentionner, la valeur
   que prendra la frquence pilote DCF dterminera dj la frquence de
   rafrachissement RR, c'est--dire que pour toute valeur de HSF il y a
   une fonction RR(DCF). Celle-ci peut s'obtenir comme suit.

   La frquence de rafrachissement est gale  la frquence pilote
   divise par le produit des longueurs de trame :

        RR = DCF / (HFL * VFL)          (*)

   D'autre part, la longueur de trame horizontale est gale  la
   frquence pilote divise par la frquence de synchronisation
   horizontale :

        HFL = DCF / HSF                 (**)

   Il est possible de rduire VFL  HFL au moyen des deux suppositions
   mentionnes plus haut :

        VFL = F2 * VR
            = F2 * (HR / AR)
            = (F2/F1) * HFL / AR        (***)

   En insrant (**) et (***) dans (*) nous obtenons :

        RR = DCF / ((F2/F1) * HFL**2 / AR)
           = (F1/F2) * AR * DCF * (HSF/DCF)**2
           = (F1/F2) * AR * HSF**2 / DCF

   Pour des valeurs fixes de HSF, F1, F2 et AR, cette formule se traduit
   par une hyperbole dans notre diagramme. Si nous traons deux courbes
   de ce type pour les frquences de synchronisation horizontale minimum
   et maximum nous obtenons les deux limites restantes de la rgion des
   solutions permises.

   Les lignes droites qui traversent la rgion des capacits reprsentent
   des rsolutions particulires. Ceci est bas sur (*) et la deuxime
   supposition :

        RR = DCF / (HFL * VFL) = DCF / (F1 * HR * F2 * VR)

   En traant ainsi des droites pour chacune des rsolutions qui vous
   intressent, vous pourrez immdiatement extraire du graphe les
   relations possibles entre rsolution, frquence pilote et frquence de
   rafrachissement dont le moniteur est capable. Remarquez que ces
   lignes ne dpendent pas des caractristiques relles du moniteur, mais
   bien de notre seconde supposition.

   L'outil modeplot vous offre une manire trs simple de faire cela.
   Tapez modeplot -? pour afficher ses options de contrle. Une
   invocation usuelle ressemble  ceci :

        modeplot -t "Swan SW617" -b 85 -v 50 90 -h 31 58

   Le paramtre -b spcifie la bande passante vido ; -v et -h
   dfinissent les gammes de frquences de synchronisation horizontale et
   verticale.

   Lorsque vous consulterez le graphique produit par modeplot, conservez
   toujours prsent  l'esprit le fait qu'il n'offre qu'une description
   approximative. Par exemple, il ignore les limitations imposes  HFL
   dues  ce qu'une largeur d'impulsion de synchronisation minimum est
   requise, et sa prcision ne peut dpasser celle de nos suppositions.
   Il ne peut ds lors remplacer un calcul dtaill (incluant une
   certaine dose de magie noire) tel celui que nous avons prsent dans
   la section Synthse. Il devrait, cependant, vous offrir une meilleure
   perception de ce qui est possible et des concessions que cela
   implique.

17. Crdits

   L'anctre primordial de ce document est d  Chin Fang

   Eric S. Raymond a retravaill, rorganis, et largement r-crit
   l'original de Chin Fang dans le but de le comprendre. Au cours de
   cette opration, il y a inclus la plus grande part d'un autre Howto
   crit par Bob Crosson.

   Les informations consacres aux modes entrelacs sont en grande partie
   des  David Kastrup

   Nicholas Bodley a corrig et clarifi la section sur le fonctionnement
   des crans.

   Payne Freret a corrig quelques erreurs mineures sur la conception des
   moniteurs.

   Martin Lottermoser a apport l'ide d'utiliser gnuplot pour gnrer
   des diagrammes de mode et a ralis l'analyse mathmatique qui soutend
   modeplot. La version de modeplot telle qu'elle est actuellement
   distribue a t repense et gnralise par ESR  partir du code
   gnuplot original de Martin pour un cas prcis.
