<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>17. Représentation graphique des capacités du moniteur</title><link href="style.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.68.1" name="generator"><link rel="start" href="index.html" title="XFree86 Video Timings HOWTO"><link rel="up" href="index.html" title="XFree86 Video Timings HOWTO"><link rel="prev" href="ar01s16.html" title="16. Résoudre les problèmes affectant l'image"><link rel="next" href="ar01s18.html" title="18. Crédits"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">17. Représentation graphique des capacités du moniteur</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ar01s16.html">Précédent</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ar01s18.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cplot"></a>17. Représentation graphique des capacités du moniteur</h2></div></div></div><p>Pour tracer le diagramme de mode d'un moniteur, il vous faudra le programme gnuplot (un logiciel libre de tracé graphique) et l'outil <span><strong class="command">modeplot</strong></span>, un script shell/gnuplot qui tracera le diagramme sur la base des caractéristiques de votre moniteur, fournies comme options sur la ligne de commande.</p><p>Voici le listing du script <span><strong class="command">modeplot</strong></span> :</p><pre class="programlisting"> #!/bin/sh # # modeplot -- crée un graphe X des modes moniteurs disponibles # # Invoquez `modeplot -?' pour afficher les options de contrôle. # # Description du moniteur. Bande passante en MHz, fréquences horizontales # en kHz et fréquences verticales en Hz. TITLE="Viewsonic 21PS" BANDWIDTH=185 MINHSF=31 MAXHSF=85 MINVSF=50 MAXVSF=160 ASPECT="4/3" vesa=72.5 # fréq. de rafraîchissement min. recommandée 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 contrôle de modeplot : -t "<description>" nom du moniteur défaut : "Viewsonic 21PS" -b <nn> bande passante en MHz défaut : 185 -h <min> <max> HSF min & max (kHz) défaut : 31 85 -v <min> <max> VSF min & max (Hz) défaut : 50 160 -a <aspect ratio> proportions de l'image défaut : 4/3 -g "<options>" options à transmettre à gnuplot La présence des paramètres -b, -h et -v est requise, -a, -t, -g sont optionnels. Vous pouvez utiliser -g pour transmettre un nom de périphérique à gnuplot de façon à ce que (par exemple) les sorties produites par modeplot puissent être redirigées vers une imprimante. Voyez gnuplot(1) pour de plus amples détails. L'outil modeplot a été conçu 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.20 $ EOF exit;; esac shift done gnuplot $GNUOPTS <<EOF set title "$TITLE Mode Plot" # Nombres magiques. Malheureusement, le graphe est très sensible à toute # modification de ceux-ci, et ils pourraient être loin de la vérité dans # le cas de certains moniteurs. Il nous faut déterminer des valeurs afin # d'obtenir même une approximation du diagramme de mode. Ces valeurs # proviennent d'une comparaison de nombreux exemples fournis dans la base # de données ModeDB. F1 = 1.30 # facteur de conversion résol. horiz. -> largeur de trame F2 = 1.05 # facteur de conversion résol. vertic. -> hauteur de trame # Définition de fonctions # (multiplier par 1.0 force l'arithmétique en nombres réels) 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 légendes le long des axes set xlabel 'DCF (MHz)' set ylabel 'RR (Hz)' 6 # Place la légende juste au-dessus de l'axe des Y # Génère 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 </pre><p>Une fois que vous êtes sûr d'avoir correctement installé <span><strong class="command">modeplot</strong></span> et le programme gnuplot, il vous faudra réunir les caractéristiques suivantes de votre moniteur :</p><div class="itemizedlist"><ul type="disc"><li><p>bande passante vidéo (VB)</p></li><li><p>gamme de fréquences de synchronisation horizontale (HSF)</p></li><li><p>gamme de fréquences de synchronisation verticale (VSF)</p></li></ul></div><p>Le programme de tracé doit faire quelques suppositions simplificatrices qui ne sont pas nécessairement correctes. C'est la raison pour laquelle le diagramme résultant n'est qu'une description relativement grossière. Ces suppositions sont les suivantes :</p><div class="itemizedlist"><ul type="disc"><li><p>Toutes les résolutions n'ont qu'un seul rapport de proportions prédéfini AR = HR/VR. Les résolutions standard ont AR = 4/3 ou AR = 5/4. Le programme modeplot suppose 4/3 par défaut, Mais il vous est possible de modifier cela.</p></li><li><p>Pour les modes pris en compte, les longueurs de trames horizontale et verticale sont des multiples fixés des résolutions horizontale et verticale, respectivement :</p><pre class="screen"> HFL = F1 * HR VFL = F2 * VR </pre></li></ul></div><p>En première approximation, prenez F1 = 1.30 et F2 = 1.05 (voyez la section <a href="ar01s10.html#frame">Calcul de la taille de trame</a>).</p><p>Maintenant considérez une fréquence de synchronisation particulière, HSF. Sur base des présupposés que nous venons de mentionner, la valeur que prendra la fréquence pilote DCF déterminera déjà la fréquence de rafraîchissement RR, c'est-à-dire que pour toute valeur de HSF il y a une fonction RR(DCF). Celle-ci peut s'obtenir comme suit.</p><p>La fréquence de rafraîchissement est égale à la fréquence pilote divisée par le produit des longueurs de trame :</p><pre class="screen"> RR = DCF / (HFL * VFL) (*) </pre><p>D'autre part, la longueur de trame horizontale est égale à la fréquence pilote divisée par la fréquence de synchronisation horizontale :</p><pre class="screen"> HFL = DCF / HSF (**) </pre><p>Il est possible de réduire VFL à HFL au moyen des deux suppositions mentionnées plus haut :</p><pre class="screen"> VFL = F2 * VR = F2 * (HR / AR) = (F2/F1) * HFL / AR (***) </pre><p>En insérant (**) et (***) dans (*) nous obtenons :</p><pre class="screen"> RR = DCF / ((F2/F1) * HFL**2 / AR) = (F1/F2) * AR * DCF * (HSF/DCF)**2 = (F1/F2) * AR * HSF**2 / DCF </pre><p>Pour des valeurs fixes de HSF, F1, F2 et AR, cette formule se traduit par une hyperbole dans notre diagramme. Si nous traçons deux courbes de ce type pour les fréquences de synchronisation horizontale minimum et maximum nous obtenons les deux limites restantes de la région des solutions permises.</p><p>Les lignes droites qui traversent la région des capacités représentent des résolutions particulières. Ceci est basé sur (*) et la deuxième supposition :</p><pre class="screen"> RR = DCF / (HFL * VFL) = DCF / (F1 * HR * F2 * VR) </pre><p>En traçant de telles droites pour chacune des résolutions qui vous intéressent, vous pourrez immédiatement extraire du graphe les relations possibles entre résolution, fréquence pilote et fréquence de rafraîchissement dont le moniteur est capable. Remarquez que ces lignes ne dépendent pas des caractéristiques réelles du moniteur, mais bien de notre seconde supposition.</p><p>L'outil <span><strong class="command">modeplot</strong></span> vous offre une manière très simple de faire cela. Tapez <span><strong class="command">modeplot -?</strong></span> pour afficher ses options de contrôle. Une invocation usuelle ressemble à ceci :</p><pre class="screen"> modeplot -t "Swan SW617" -b 85 -v 50 90 -h 31 58 </pre><p>Le paramètre -b spécifie la bande passante vidéo ; -v et -h définissent les gammes de fréquences de synchronisation horizontale et verticale.</p><p>Lorsque vous consulterez le graphique produit par <span><strong class="command">modeplot</strong></span>, conservez toujours présent à l'esprit le fait qu'il n'offre qu'une description approximative. Par exemple, il ignore les limitations imposées à HFL dues à ce qu'une largeur d'impulsion de synchronisation minimum est requise, et sa précision ne peut dépasser celle de nos suppositions. Il ne peut dès lors remplacer un calcul détaillé (incluant une certaine dose de magie noire) tel celui que nous avons présenté dans la section <a href="ar01s12.html" title="12. Synthèse">Synthèse</a>. Il devrait, cependant, vous offrir une meilleure perception de ce qui est possible et des concessions que cela implique. </p></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ar01s16.html">Précédent</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ar01s18.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">16. Résoudre les problèmes affectant l'image </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> 18. Crédits</td></tr></table></div></body></html>