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
caractéristiques de votre moniteur, fournies comme options sur la
ligne de commande.
Ci-dessous se trouve une copie de modeplot
:
#!/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.13 $ 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
Une fois que vous êtes sûr d'avoir correctement installé
modeplot
et le programme gnuplot, il vous faudra réunir les
caractéristiques suivantes de votre moniteur :
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 :
modeplot
suppose 4/3 par défaut, Mais il
vous est possible de modifier cela.
HFL = F1 * HR
VFL = F2 * VR
En première approximation, prenez F1 = 1.30 et F2 = 1.05 (voyez la section Calcul de la taille de trame).
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.
La fréquence de rafraîchissement est égale à la fréquence pilote divisée par le produit des longueurs de trame :
RR = DCF / (HFL * VFL) (*)
D'autre part, la longueur de trame horizontale est égale à la fréquence pilote divisée par la fréquence de synchronisation horizontale :
HFL = DCF / HSF (**)
Il est possible de réduire VFL à HFL au moyen des deux suppositions mentionnées plus haut :
VFL = F2 * VR
= F2 * (HR / AR)
= (F2/F1) * HFL / AR (***)
En insérant (**) 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 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.
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 :
RR = DCF / (HFL * VFL) = DCF / (F1 * HR * F2 * VR)
En traçant ainsi des 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.
L'outil modeplot
vous offre une manière très simple de faire
cela. Tapez modeplot -?
pour afficher ses options de
contrôle. Une invocation usuelle ressemble à ceci :
modeplot -t "Swan SW617" -b 85 -v 50 90 -h 31 58
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.
Lorsque vous consulterez le graphique produit par modeplot
,
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
Synthèse. Il devrait,
cependant, vous offrir une meilleure perception de ce qui est possible
et des concessions que cela implique.