Les formules données dans cette annexe donnent les relations entre les différentes valeurs utilisées dans les lignes de mode de XFree86. Elles peuvent vous aider à comprendre les relations entre les principaux paramètres de ces lignes.
Ces formules utilisent des variables qui représentent les valeurs des lignes de mode et les caractéristiques techniques de votre écran. Le tableau donné ci-dessous liste les variables utilisées :
Variable | Signification |
---|---|
DC | « Dot Clock », fréquence de base du balayage. Représente le nombre de pixels balayés par seconde et sert de base de temps pour tous les calculs. |
BW | « Bandwidth », bande passante de fonctionnement du moniteur. Représente la limite supérieure de la fréquence de base du balayage que le moniteur peut accepter. Cette valeur fait partie des caractéristiques techniques du moniteur. Elle peut être extrapolée à partir de la résolution maximale que le moniteur peut afficher. |
GCMF | « Graphic Card Maximum Frequency », la plus grande valeur de fréquence de balayage que la carte graphique peut générer. Cette valeur fait partie des caractéristiques techniques de la carte graphique. |
MHF | « Max Horizontal Frequency », fréquence maximale du balayage horizontal. C'est la plus forte valeur de la plage de fréquences horizontales pour les moniteurs multisynchrones. Cette donnée fait partie des caractéristiques techniques du moniteur. |
MVF | « Max Vertical Frequency », fréquence maximale du balayage vertical. C'est la plus forte valeur de la plage de fréquences verticales pour les moniteurs multisynchrones. Cette donnée fait partie des caractéristiques techniques du moniteur. |
RR | « Refresh Rate », taux de rafraîchissement des images du mode graphique. C'est le nombre d'images générées par seconde pour ce mode graphique. |
HR | « Horizontal Resolution », résolution horizontale du mode graphique. C'est le nombre de pixels visibles dans ce mode graphique. |
HFL | « Horizontal Frame Length », longueur totale d'une ligne dans ce mode. C'est le nombre de pixels total du mode graphique, visibles ou non. Les pixels non visibles sont les pixels de la zone de blanking horizontal. |
HST | « Horizontal Sync Time », durée minimale des signaux de synchronisation du balayage horizontal. Cette donnée fait partie des caractéristiques techniques du moniteur. |
HSL | « Horizontal Sync Length », longueur des signaux de synchronisation du balayage horizontal, exprimée en pixels. Cette donnée peut être déduite directement de la durée des signaux et de la fréquence de base du balayage. |
HBT | « Horizontal Blanking Time », durée minimale du blanking horizontal dans ce mode graphique. C'est la durée pendant laquelle le faisceau électronique doit être éteint. Cette donnée fait partie des caractéristiques techniques du moniteur. |
HBL | « Horizontal Blanking Length », longueur totale du blanking en pixels. Cette donnée peut être déduite directement de la durée du blanking et de la fréquence de base du balayage. |
VR | « Vertical Resolution », résolution verticale du mode graphique. C'est le nombre de lignes visibles dans ce mode graphique. |
VFH | « Vertical Frame Height », hauteur totale d'une image dans ce mode. C'est le nombre de lignes total du mode graphique, lignes non visibles comprises. Les lignes non visibles sont les lignes de la zone de blanking vertical. |
VST | « Vertical Sync Time », durée minimale des signaux de synchronisation du balayage vertical. Cette donnée fait partie des caractéristiques techniques du moniteur. |
VSH | « Vertical Sync Height », nombre de lignes balayées pendant le signal de synchronisation du balayage vertical. Cette donnée peut être déduite de la durée des signaux de synchronisation du balayage vertical, de la longueur totale d'une ligne et de la fréquence de base du balayage. |
VBT | « Vertical Blanking Time », durée minimale du blanking vertical dans ce mode graphique. C'est la durée pendant laquelle le faisceau électronique doit être éteint avant et après un retour de balayage vertical. Cette donnée fait partie des caractéristiques techniques du moniteur. |
VBH | « Vertical Blanking Height », nombre totale de lignes du blanking vertical. Cette donnée peut être déduite de la durée du blanking vertical, de la longueur totale d'une ligne et de la fréquence de base du balayage. |
Certaines des variables mentionnées dans ce tableau peuvent être directement déduites des autres. C'est en particulier le cas de RR, HSL, HVL, VSH et VBH.
Le taux de rafraîchissement dépend bien entendu de la fréquence de base du balayage et du nombre total de pixels à balayer. Il peut donc être calculé directement avec la formule suivante :
RR = DC ÷ (HFL × VFH)
La longueur des signaux de synchronisation horizontale et la longueur du blanking dépendent de la fréquence de base du balayage et de leurs durées respectives. Elles peuvent donc être calculées avec les formules suivantes :
HSL = HST × DC HBL = HBT × DC
Le même raisonnement peut être fait pour le nombre de lignes parcourues pendant le signal de synchronisation du balayage vertical et le blanking. Cependant, il ne faut pas utiliser la fréquence de base directement quand on calcule sur les lignes, car cette fréquence est exprimée en pixels par seconde et les lignes contiennent HFL pixels. Il faut donc diviser cette fréquence par HFL pour obtenir la fréquence en nombres de lignes par seconde. Les formules à utiliser seront donc les suivantes :
VSH = VST × (DC ÷ HFL) VBH = VBT × (DC ÷ HFL)
Par ailleurs, la longueur totale des lignes doit bien entendue être supérieure à la résolution plus la taille de la zone de blanking horizontal. Le même raisonnement peut être appliqué au nombres de lignes total, à la résolution verticale et au nombre de lignes utilisées pour le blanking. On disposera donc des relations suivantes :
HFL ≥ HR + HBL VFH ≥ VR + VBH
Le choix des valeurs des lignes de mode est soumis à un certain nombre de contraintes, qui expriment les limitations techniques du moniteur et de la carte graphique. Ces contraintes sont exprimées ci-dessous.
Il va de soi que les signaux de synchronisation de balayage doivent être compris dans le blanking. Les deux premières contraintes sont donc les suivantes :
HSL ≤ HBL VSH ≤ VBH
Par ailleurs, la fréquence de balayage de base doit bien entendu être tolérée à la fois par le moniteur et par la carte graphique. Elle doit donc vérifier les deux inégalités suivantes :
DC ≤ BP DC ≤ GCMF
Enfin, il faut que les fréquences de balayage horizontales et verticales utilisées soient inférieures aux fréquences de balayage maximales que le moniteur peut gérer. Cette règle n'est valide que pour les moniteurs multisynchrones. Pour les moniteurs à fréquences fixes, il faut que les fréquences de balayage horizontale et verticale soient strictement égales à celles du moniteur.
La contrainte horizontale donne une troisième condition sur DC :
(DC ÷ HFL) ≤ MHF
Or :
(DC ÷ HFL) ≤ (DC ÷ (HR + HBL))donc l'inégalité précédente est forcément vérifiée si on s'assure que :
DC ÷ (HR + HBL) ≤ MHFsoit :
DC ≤ MHF × (HR + HBL) DC ≤ MHF × (HR + DC × HBT)d'où la condition suivante :
DC ≤ (MHF × HR) ÷ (1 - MHF × HBT)(le dénominateur étant positif en pratique).
La contrainte verticale porte sur le taux de rafraîchissement, qui doit être inférieur à la fréquence verticale maximale. Elle permet d'obtenir une troisième condition sur DC :
RR = DC / (HFL x VFH) ≤ MVFsoit :
DC ≤ MVF × HFL × VFH = MVF × (HR + HBL) × (VR + VBH) = MVF × (HR + DC × HBT) × (VR + DC × VBT)ce qui donne l'inéquation suivante :
MVF × HBT × VBT × DC² + (MVF × HR × VBT + MVF × VR × HBT - 1) × DC + MVF × HR × VR ≥ 0
Cette inéquation impose une limite inférieure en dessous de laquelle DC peut se trouver, ou une limite supérieure au delà de laquelle il peut se trouver. En pratique, la limite supérieure ne peut jamais être atteinte. Il faut donc que la fréquence de base soit inférieure à la première racine de l'équation associée à l'inéquation donnée ci-dessous. Cette équation est du second degré et sa résolution ne pose pas de problème particulier. Certains moniteurs ont un temps nul pour les signaux de synchronisation verticaux. Comme le second membre de cette équation est négatif en pratique, la limite à respecter pour la fréquence de balayage de base est exprimée dans ce cas par l'inéquation suivante :
DC ≤ (MVF × HR × VR) ÷ (1 - MVF × (HR × VBT + VR × HBT))