1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716
|
XFree86 Video Timings HOWTO
Eric S. Raymond <esr@thyrsus.com>
v3.4, 18 gennaio 1999
Come comporre una "mode line" per la vostra combinazione scheda
video/monitor su XFree86. La distribuzione XFree86 ora ha reso pi
agevole la configurazione della maggior parte delle combinazioni stan
dard; questo documento particolarmente utile se state ottimizzando
una vostra "mode line" personale per un monitor ad alte prestazioni o
per dell'hardware poco comune. Vi dar anche una mano sull'uso di
xvidtune per adattare una modalit standard che non proprio quella
adatta per il vostro monitor. Traduzione di Angelo Nardoni <anar
doni@mclink.it>
1. Avvertenze
L'uso del presente materiale UNICAMENTE A VOSTRO RISCHIO.
possibile danneggiare sia il monitor che voi stessi quando si
sperimenta oltre le specifiche del produttore. Leggete
``Sovraccaricare il Vostro Monitor'' per precauzioni pi dettagliate.
Qualsiasi danno a voi o al vostro monitor dovuto al suo sovraccarico
un problema vostro.
La pi recente versione di questo HOWTO pu essere trovata alla pagina
web Linux Documentation Project <http://metalab.unc.edu/LDP>.
Siete pregati di indirizzare commenti, critiche e suggerimenti per
migliorie a esr@snark.thyrsus.com. Siete pregati di non inviare email
chiedendo una soluzione magica al problema speciale con il vostro
monitor, perch cos facendo consumate solo il mio tempo e frustrer
voi -- tutto quello che so sull'argomento gi qui dentro.
2. Introduzione
Il server XFree86 permette agli utenti di configurare i loro
sottosistemi video e quindi incoraggia ad un miglior uso dell'hardware
esistente. Questo tutorial intende aiutarvi ad imparare a generare i
vostri propri valori di temporizzazione per sfruttare al meglio la
vostra scheda video e il vostro monitor.
Presenteremo un metodo per ottenere qualcosa che funziona, quindi vi
mostreremo come sperimentare partendo da una base comune per
sviluppare delle specifiche ottimizzate alle vostre esigenze.
Se gi avete una modalit che funziona discretamente (in particolare,
se una delle modalit VESA predefinite vi d uno schermo stabile ma
spostato troppo a sinistra o a destra, o troppo piccolo, o troppo
largo) potete andare direttamente alla sezione ``Risolvere i Problemi
con l'Immagine''. Questa vi sveler le possibilit di manipolare i
valori di temporizzazione per ottenere effetti particolari.
3. Strumenti per il Calcolo Automatico
Da XFree86 3.2 in poi, XFree86 fornisce un programma XF86Setup(1) che
rende facile generare interattivamente una modalit funzionante per il
monitor, senza avere a che fare direttamente con i valori delle
temporizzazioni video. Cos il pi delle volte non dovete calcolare
una modalit base per il monitor. Sfortunatamente, XF86Setup(1) ha
alcune limitazioni; riconosce solo modalit video standard fino a
1280x1024. Se avete un monitor ad alte prestazioni capace di 1600x1200
o pi dovrete sempre calcolare la modalit base da soli.
Mi stato detto di un'applicazione KDE chiamata KVideoGen
<http://without.netpedia.net/kvideogen/> che genera le "mode line"
dalle caratteristiche del monitor e della scheda video. Non l'ho
provata.
Versioni recenti di XFree86 offrono uno strumento chiamato xvidtune(1)
che troverete probabilmente abbastanza utile per testare e
perfezionare le modalit video. Parte con uno spaventoso avviso sulle
possibili conseguenze se si fanno errori usandolo. Se prestate
un'accurata attenzione a questo documento e imparate cosa c' dietro
quei simpatici numeri nei riquadri di xvidtune, saprete usare
effettivamente e con confidenza xvidtune.
Se avete xvidtune(1), potrete provare nuove modalit al volo, senza
modificare i vostri file di configurazione per X o resettare il server
X. Altrimenti, XFree86 vi permette di spostarvi con la tastiera fra
differenti modalit definite in Xconfig (vedi XFree86.man per
dettagli). Usate questa capacit per risparmiarvi problemi! Quando
volete provare una nuova modalit, chiamatela in modo univoco e
aggiungetela alla fine della vostra lista di combinazioni di tasti.
Lasciate una modalit che sapete che funziona bene come default per
poter tornare l se la modalit che state provando non funziona.
4. Come Funziona lo Schermo
Sapere come funziona lo schermo video fondamentale per capire quali
valori mettere nei vari campi del file Xconfig. Questi valori sono
usati al pi basso livello di controllo dello schermo dal server
XFree86.
Lo schermo genera un quadro con una serie di punti. I punti sono
disposti da sinistra a destra per formare delle linee. Le linee sono
disposte dall'alto in basso per formare il quadro. I punti emettono
luce quando sono colpiti dal fascio elettronico dentro lo schermo. Per
far s che il fascio colpisca ciascun punto per un uguale periodo di
tempo, il fascio diretto sullo schermo con un percorso costante.
Il percorso parte in alto a sinistra sullo schermo, attraversa lo
schermo verso destra con una linea diritta, e si ferma temporaneamente
sul lato destro dello schermo. Poi il fascio riportato indietro sul
lato sinistro, ma sotto di una linea. La nuova linea va da sinistra a
destra proprio come la prima. Questo percorso ripetuto fino a che
l'ultima linea in fondo allo schermo stata passata. Allora il
fascio viene portato dall'angolo in basso a destra all'angolo in alto
a sinistra, e il percorso viene ripetuto.
C' una variante di questo schema conosciuto come interlacciamento:
qui solamente ogni linea pari passata ogni mezzo quadro e quelle
dispari sono tracciate durante il secondo mezzo quadro.
Quando il fascio parte dall'angolo superiore sinistro dello schermo
detto inizio di quadro. Il quadro termina quando il fascio raggiunge
l'angolo superiore sinistro di nuovo venendo dall'angolo inferiore
destro dello schermo. Un quadro composto da tutte le linee tracciate
dal fascio dall'alto in basso dello schermo.
Se il fascio degli elettroni funzionasse per tutto il tempo che
attraversa il quadro, tutti i punti dello schermo sarebbero accesi.
Non ci sarebbero bordi neri ai lati dello schermo. Ai lati dello
schermo il quadro sarebbe distorto perch difficile controllare il
fascio in quei punti. Per ridurre la distorsione, i punti vicino ai
lati dello schermo non sono illuminati dal fascio anche se questo sta
puntandoli. L'area visibile dello schermo in questo modo ridotta.
Un'altra cosa importante da capire cosa succede del fascio quando
nessuna cosa disegnata nell'area visibile. Il tempo che il fascio
avrebbe dovuto usare per illuminare i lati sinistro e destro dello
schermo invece usato per portare il fascio indietro da destra a
sinistra e per muoverlo gi alla linea successiva. Il tempo che il
fascio avrebbe dovuto usare per illuminare i lati superiore ed
inferiore dello schermo usato per muovere il fascio dall'angolo in
basso a destra all'angolo in alto a sinistra.
La scheda video genera i segnali che permettono allo schermo di
accendere il fascio ad ogni punto per generare un quadro. La scheda
controlla anche quando lo schermo muove il fascio da destra a sinistra
e gi di una riga generando un segnale chiamato sync (per sincronismo)
orizzontale. C' un impulso di sincronismo orizzontale alla fine di
ogni linea. La scheda genera anche un impulso di sincronismo verticale
che segnala allo schermo quando muovere il fascio dall'angolo sinistro
in alto dello schermo. Un impulso di sincronismo verticale generato
quasi alla fine di ogni quadro.
Lo schermo richiede che ci sia un breve lasso di tempo sia prima che
dopo gli impulsi di sincronismo orizzontale e verticale cos che si
possa stabilizzare la posizione del fascio di elettroni. Se il fascio
non pu stabilizzarsi, il quadro non sar nitido.
In una sezione pi avanti, torneremo su queste nozioni basilari con
definizioni, formule ed esempi per aiutarvi ad usarle.
5. Cose Basilari da Sapere sul Vostro Schermo e la Scheda Video
Ci sono delle cose fondamentali da sapere prima di sperimentare con i
valori di Xconfig. Sono:
le opzioni di frequenza di sincronismo orizzontale e verticale del
vostro monitor
la larghezza di banda del vostro monitor
la frequenza della vostra scheda video, o "dot clock".
5.1. Le frequenze di sincronismo del monitor
La frequenza di sincronismo orizzontale semplicemente il numero di
volte al secondo che il monitor pu scrivere una linea di scansione
orizzontale; la pi importante informazione sul vostro monitor. La
frequenza di sincronismo verticale il numero di volte al secondo
alla quale il monitor pu far attraversare il fascio verticalmente
sullo schermo.
Le frequenze di sincronismo di solito sono elencate nelle specifiche
del manuale del monitor. Il valore della frequenza di sincronismo
verticale tipicamente calibrato in Hz (cicli per secondo), quello
orizzontale in KHz (kilocicli per secondo). Le comuni gamme di valori
sono fra 50 e 150Hz verticali, e fra 31 e 135KHz orizzontali.
Se avete un monitor multifrequenza, queste frequenze saranno date come
gamma di valori. Alcuni monitor, specialmente quelli pi scadenti,
hanno svariate frequenze fisse. Anche queste possono essere
configurate, ma le vostre possibilit saranno molto limitate dalle
caratteristiche proprie del monitor. Scegliete il paio di frequenze
pi alte per la migliore risoluzione. E state attenti --- provare a
mandare un monitor a frequenza fissa ad una velocit di clock pi alta
di quella per la quale stato costruito lo pu facilmente
danneggiare.
Le prime versioni di questa guida erano piuttosto permissive
sull'overclocking di monitor multifrequenza, spingendoli oltre la loro
pi alta frequenza verticale di sincronismo per ottenere migliori
risultati. Da allora abbiamo pi ragioni per essere cauti
sull'argomento; le vedremo nel paragrafo ``Sovraccaricare il Monitor''
pi avanti.
5.2. La larghezza di banda video del monitor
La larghezza di banda video del vostro monitor dovrebbe essere inclusa
nelle pagine delle specifiche del manuale. Se non ci fosse, guardate
la pi alta risoluzione del monitor. Indicativamente, ecco come
tradurla in larghezza di banda approssimativa (e quindi nei limiti
superiori approssimati per il dot clock che potete usare):
640x480 25
800x600 36
1024x768 65
1024x768 interlaced 45
1280x1024 110
1600x1200 185
Per inciso, non c' nulla di magico in questa tabella; questi numeri
sono solo i pi bassi dot clock per una data risoluzione nel database
standard delle Modalit XFree86 (a parte l'ultimo, che ho interpolato
io). La larghezza di banda del vostro monitor potrebbe essere pi alta
del minimo richiesto per la sua massima risoluzione, cos non abbiate
paura a provare un dot clock di pochi MHz pi alto.
Notate anche che la larghezza di banda raramente un limite per i dot
clock sotto i 65 MHz o gi di l. Con una scheda SVGA e la maggior
parte dei monitor ad alta risoluzione, non potete andare troppo vicino
ai limiti della larghezza di banda video del vostro monitor. Ecco
alcuni esempi:
Marca Larghezza di Banda Video
---------- ---------------
NEC 4D 75Mhz
Nano 907a 50Mhz
Nano 9080i 60Mhz
Mitsubishi HL6615 110Mhz
Mitsubishi Diamond Scan 100Mhz
IDEK MF-5117 65Mhz
IOCOMM Thinksync-17 CM-7126 136Mhz
HP D1188A 100Mhz
Philips SC-17AS 110Mhz
Swan SW617 85Mhz
Viewsonic 21PS 185Mhz
PanaSync/Pro P21 220Mhz
Anche i monitor di fascia bassa di solito non sono terribilmente
legati alle loro date risoluzioni. Il NEC Multisync II un buon
esempio --- non pu neanche raggiungere 800x600 per le sue specifiche.
Pu raggiungere solo 800x560. Per tali basse risoluzioni non vi
servono alti dot clock o molta larghezza di banda; probabilmente il
meglio che potete fare 32Mhz o 36Mhz, entrambi non sono troppo
lontani dalla larghezza di banda video del monitor di 30Mhz.
A queste due frequenze video, l'immagine sul vostro schermo potrebbe
non essere cos chiara come dovrebbe, ma certamente di qualit
tollerabile. Naturalmente sarebbe stato meglio se il NEC Multisync II
avesse avuto una larghezza di banda video pi alta, tipo 36Mhz. Ma
questo non critico per impieghi comuni come editare testi, in quanto
le differenze non sono cos grandi da causare forti distorsioni
dell'immagine (i vostri occhi ve lo direbbero subito se cos fosse).
5.3. La frequenza di clock della scheda video
La pagina delle specifiche del manuale della vostra scheda video di
solito vi dar il valore massimo del dot clock della scheda (che
sarebbe il numero totale dei pixel al secondo che pu scrivere sullo
schermo).
Se non avete questa informazione, ve la dar il server X. Le versioni
recenti dei server X supportano tutte l'opzione --probeonly che rileva
questa informazione ed esce senza neanche far partire X o senza
cambiare la modalit video.
Se non avete -probeonly, non disperate. Anche se il vostro X vi blocca
il monitor, scriver una riga di valori di clock ed altre informazioni
sul log di errori standard. Se voi ridirigete queste ad un file,
saranno salvate anche se dovete resettare per tornare alla console.
(Recenti versioni del server X supportano una opzione -probeonly che
stampa a schermo questi risultati ed esce senza neanche far partire X
o cambiare il modo video).
Il risultato del tentativo o il vostro messaggio di partenza di X
dovrebbe essere qualcosa di simile ad uno dei seguenti esempi:
Se usate 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 - questo l'esatto tipo di chip; una maschera precedente del 86C911
(--) S3: chipset driver: s3_generic
(--) S3: videoram: 1024k
-----
Quantit di RAM della scheda
(**) 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
------------------------------------------------------
Possibili frequenze in MHz
(--) S3: Maximum allowed dot-clock: 110MHz
------
Larghezza di banda
(**) 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
Se usate SGCS o X/Inside X:
WGA: 86C911 (mem: 1024k clocks: 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71)
--- ------ ----- --------------------------------------------
| | | Possibili frequenze in MHz
| | +-- Quantit di RAM della scheda
| +-- Tipo di chip
+-- Tipo di Server
Nota: fate questo senza processi in background sulla vostra macchina
(del tutto se possibile). Poich X un'applicazione, le sue
temporizzazioni possono collidere con l'attivit del disco, rendendo i
valori di cui sopra inaccurati. Fatelo svariate volte e osservate i
valori che si stabilizzano; se non dovessero farlo, cominciate a
fermare i processi finch non lo fanno. Il programma che gestisce il
mouse, se ne avete uno, pu in particolare rendere fasulla la lettura
dei valori (cio gpm per gli utenti Linux, mousemgr per gli utenti
SVr4).
Per evitare la inaccuratezza delle prove sui clock, dovreste
appuntarvi le temporizzazioni del clock e metterle nel vostro Xconfig
come valore delle propiet dei Clocks --- questo evita il loop delle
temporizzazioni e d ad X una lista esatta dei valori di clock che pu
provare. Usando i dati dell'esempio precedente:
wga
Clocks 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71
Su sistemi con un carico molto variabile, questo vi potrebbe evitare
misteriosi fallimenti di partenza di X. possibile per X partire,
ottenere le temporizzazioni sbagliate a causa del carico del sistema,
e quindi non essere capace di trovare un clock uguale nel suo database
di configurazione --- o trovare quello sbagliato!
5.4. Cosa controllano questi dati basilari
La gamma di frequenze di sincronismo del vostro monitor, insieme con
il dot clock della scheda video, determinano la risoluzione definitiva
che potete usare. Ma compito del driver intercettare il potenziale
del vostro hardware. Avere una combinazione hardware di qualit senza
un device driver egualmente valido come buttare i soldi. D'altra
parte, con un device driver versatile insieme ad un hardware meno
capace potete spingere un pochino le caratteristiche dell'hardware.
Questa la filosofia progettuale di XFree86.
Dovreste far combaciare il dot clock che usate con la larghezza di
banda video del monitor. Ci sono molte possibilit, comunque ---
alcuni monitor possono funzionare tanto quanto il 30% oltre la loro
larghezza di banda nominale. Il rischio qui eccedere la frequenza di
sincronizzazione verticale massima del monitor; ne discuteremo in
dettaglio pi avanti.
Sapere la larghezza di banda vi permetter di fare scelte pi
intelligenti fra le possibili configurazioni. Ci pu cambiare la
qualit visiva dello schermo (specialmente la nitidezza nei dettagli).
6. Interpretare le Specifiche di Base
Questa sezione spiega cosa significano le specifiche precedenti, e
alcune altre cose che dovete sapere. Prima, alcune definizioni.
Accanto a ciascuna definizione la sigla che useremo per fare calcoli,
fra parentesi:
frequenza di sincronismo orizzontale (HSF)
Scansioni orizzontali al secondo (vedi sopra).
frequenza di sincronismo verticale (VSF)
Scansioni verticali al secondo (vedi sopra). Principalmente
importante come limite superiore della vostra frequenza di
refresh.
dot clock (DCF)
Pi formalmente, 'frequenza di clock'; la frequenza del quarzo o
VCO della vostra scheda video --- il numero massimo dei punti-
al-secondo che pu emettere.
larghezza di banda video (VB)
La pi alta frequenza che potete immettere nell'input del
monitor e ancora aspettarvi di vedere qualcosa. Se la vostra
scheda produce una trama di accensioni-spegnimenti alternati, la
sua frequenza pi bassa sar met del DCF, cos in teoria la
larghezza di banda comincia ad avere senso a DCF/2. Per una
videata sufficientemente nitida di piccoli dettagli
nell'immagine video, comunque, non la vorrete molto pi bassa
del vostro pi alto DCF, e preferibilmente pi alta.
larghezza e lunghezza di quadro (HFL, VFL)
La larghezza orizzontale del quadro (HFL) il numero di impulsi
del dot clock necessari al pennello elettronico del vostro
monitor per scandire una linea orizzontale, inclusi i bordi
inattivi sinistro e destro. La lunghezza di quadro verticale
(VFL) il numero di linee scandite nell'intera immagine inclusi
i bordi inattivi superiore ed inferiore.
frequenza di refresh dello schermo (RR)
Il numero di volte al secondo che il vostro schermo viene
ridisegnato (ci anche detta "frequenza di quadro"). Pi sono
alte le frequenze, meglio , perch riducono lo sfarfallio.
60Hz va bene, lo standard VESA di 72Hz meglio. Calcolatelo
come
RR = DCF / (HFL * VFL)
Notate che il prodotto nel denominatore non lo stesso della
risoluzione visibile del monitor, ma tipicamente un po' pi grande.
Andremo nel dettaglio pi avanti.
Le frequenze che sono usualmente specificate per le modalit
interlacciate (come 87Hz interlacciati) sono frequenze di met
quadro: un intero schermo sembra avere all'incirca quella frequenza
per gli schermi standard, ma ogni singola linea ridisegnata solo
met delle volte.
Per scopi di calcolo noi riconosciamo uno schermo interlacciato
dalla sua frequenza a schermo intero (refresh), per esempio 43.5Hz.
La qualit di una modalit interlacciata migliore di quella di
una modalit non-interlacciata alla stessa frequenza per il quadro
intero, ma sicuramente peggio di quella non-interlacciata
corrispondente alla frequenza di met quadro.
6.1. Sulla larghezza di banda
Ai costruttori di monitor piace dichiarare ampie larghezze di banda
perch questo aumenta la nitidezza dell'intensit e del cambio dei
colori sullo schermo. Un'ampia larghezza di banda significa vedere
dettagli pi piccoli.
Il vostro monitor usa segnali elettronici per presentare un'immagine
ai vostri occhi. Tali segnali arrivano sempre in forma d'onda una
volta che sono convertiti in forma analogica da digitale. Possono
essere considerati come combinazioni di molte forma d'onda pi
semplici ognuna delle quali ha una frequenza fissa, molte di esse sono
nella gamma dei Mhz, per esempio, 20Mhz, 40Mhz, o anche 70Mhz. La
larghezza di banda del vostro monitor , effettivamente, la pi alta
frequenza di segnale analogico che pu sopportare senza distorsioni.
Per i nostri scopi, la larghezza di banda video principalmente
importante come un approssimativo punto di partenza per il pi alto
dot clock che potete usare.
6.2. Frequenze di sincronismo e la frequenza di refresh
Ogni linea di scansione orizzontale sul display solo la porzione
visibile della scansione del quadro. Ad ogni istante c' un solo punto
acceso sullo schermo, ma con una frequenza di refresh abbastanza alta
la persistenza della vista dei vostri occhi vi permette di "vedere"
l'intera immagine.
Ecco alcuni disegni che possono aiutare:
_______________________
| | La frequenza di sincronismo orizzontale
|->->->->->->->->->->-> | il numero di volte al secondo
| )| al quale il pennello elettronico
|<-----<-----<-----<--- | del monitor pu tracciare
| | un disegno tipo questo
| |
| |
| |
|_______________________|
_______________________
| ^ | La frequenza di sincronismo verticale
| ^ | | il numero di volte al secondo
| | v | al quale il pennello elettronico
| ^ | | del monitor pu tracciare
| | | | un disegno tipo questo
| ^ | |
| | v |
| ^ | |
|_______|_v_____________|
Ricordate che la scansione un disegno a zigzag molto stretto; cio,
il pennello va da sinistra a destra e contemporaneamente su e gi.
Ora possiamo vedere come il dot clock e la grandezza dello schermo si
mettono in relazione con la frequenza di refresh. Per definizione, un
hertz (Hz) un ciclo al secondo. Cos, se la vostra larghezza di
quadro orizzontale HFL e la vostra lunghezza di quadro verticale
VFL, allora per coprire l'intero schermo servono (HFL * VFL) impulsi.
Dal momento che la vostra scheda emette DCF impulsi al secondo per
definizione, allora ovviamente il pennello elettronico del vostro
monitor pu andare sullo schermo da sinistra a destra e dall'alto in
basso e indietro DCF / (HFL * VFL) volte al secondo. Questa la
frequenza di refresh del vostro schermo, perch quante volte il
vostro schermo pu essere aggiornato (ovvero "rinfrescato") ogni
secondo!
Dovete capire questo concetto per ottenere una configurazione che medi
la risoluzione con lo sfarfallio in un modo qualsiasi che rispetti i
vostri bisogni.
Per coloro che capiscono meglio i disegni del testo, eccone uno:
RR VB
| min HSF max HSF |
| | R1 R2 | |
max VSF -+----|------------/----------/---|------+----- max VSF
| |:::::::::::/::::::::::/:::::\ |
| \::::::::::/::::::::::/:::::::\ |
| |::::::::/::::::::::/:::::::::| |
| |:::::::/::::::::::/::::::::::\ |
| \::::::/::::::::::/::::::::::::\ |
| \::::/::::::::::/::::::::::::::| |
| |::/::::::::::/:::::::::::::::| |
| \/::::::::::/:::::::::::::::::\|
| /\:::::::::/:::::::::::::::::::|
| / \:::::::/::::::::::::::::::::|\
| / |:::::/:::::::::::::::::::::| |
| / \::::/::::::::::::::::::::::| \
min VSF -+----/-------\--/-----------------------|--\--- min VSF
| / \/ | \
+--/----------/\------------------------+----\- DCF
R1 R2 \ | \
min HSF | max HSF
VB
Questo un diagramma di modalit di un monitor generico. L'asse x del
diagramma mostra la frequenza del clock (DCF), l'asse y rappresenta la
frequenza di refresh (RR). La regione riempita del diagramma descrive
le capacit del monitor: ogni punto entro questa regione una
possibile modalit video.
Le linee etichettate 'R1' e 'R2' rappresentano una risoluzione fissa
(tipo 640x480); vogliono mostrare come una risoluzione pu essere
realizzata da svariate differenti combinazioni di dot clock e
frequenza di refresh. La linea R2 rappresenterebbe una risoluzione pi
alta di R1.
Gli spazi in alto e in basso della regione valida sono semplici linee
orizzontali che rappresentano i valori limite per la frequenza di
sincronismo verticale. La larghezza di banda video un limite
superiore della frequenza di clock e quindi rappresentato da una
linea verticale che affianca la regione delle possibilit a destra.
In ``Tracciare le Capacit del Monitor'' troverete un programma che vi
aiuter a disegnare un diagramma tipo questo (ma molto pi carino, con
grafica X) per il vostro monitor. Quella sezione tratter anche la
parte interessante; la derivazione degli spazi attorno all'immagine
risultante dai limiti sulla frequenza di sincronismo orizzontale.
7. Compromessi nel Configurare il Sistema
Un altro modo di guardare alla formula che abbiamo derivato prima
DCF = RR * HFL * VFL
Cio, il vostro dot clock fisso. Potete usare questi punti al sec
ondo per guadagnare sia frequenza di refresh, sia risoluzione orizzon
tale, sia risoluzione verticale. Se uno di questi aumenta, uno o
entrambi gli altri deve diminuire.
Notate, comunque, che la vostra frequenza di refresh non pu essere
pi grande della massima frequenza verticale di sincronismo del
monitor. Cos, per ogni monitor ad un dato dot clock, c' un prodotto
minimo di lunghezze di quadro sotto il quale non potete andare.
Nello scegliere i vostri parametri, ricordate: se mettete RR troppo
basso, farete una smorfia per lo sfarfallio dello schermo.
Probabilmente non vorrete spingere la frequenza di refresh sotto i
60Hz. Questa la frequenza di sfarfallio delle luci al neon; se
siete sensibili a queste, dovrete orientarvi verso i 72Hz, lo standard
ergonomico VESA.
Lo sfarfallio molto affaticante per gli occhi, anche se gli occhi
umani sono adattabili e la tolleranza della gente ad esso assai
varia. Se siete di fronte al vostro monitor ad un angolo di 90, su
sfondo scuro e un buon colore di contrasto, e un'intensit da bassa a
media, voi *potete* stare bene anche a 45Hz.
Il test questo: aprite un xterminal con puro sfondo bianco e testo
nero usando xterm -bg white -fg black e allargatelo cos da coprire
tutta l'area visibile. Ora regolate la luminosit del monitor a 3/4
del suo massimo, e girate la faccia lontano dal monitor. Provate a
sbirciare il monitor (usando le pi sensibili cellule della visione
periferica). Se non avvertite alcuno sfarfallio o pensate che quello
che c' tollerabile, allora la frequenza di refresh va bene per voi.
Altrimenti meglio che configuriate una pi alta frequenza di
refresh, perch quel semi-invisibile sfarfallio vi affaticher gli
occhi da morire e vi far venire il mal di testa, anche se lo schermo
sembra OK a prima vista.
Per le modalit interlacciate, l'ammontare dello sfarfallio dipende su
pi fattori tipo la attuale risoluzione verticale e il contenuto della
videata. Cos sperimentate. Anche se non dovreste andare molto sotto
agli 85Hz per met quadro, comunque.
Cos diciamo che avete scelto una frequenza di refresh minimamente
accettabile. Nello scegliere il vostro HFL e VFL, avrete un po' di
spazio di manovra.
8. Requisiti di Memoria
La RAM disponibile per il buffer di quadro pu limitare la risoluzione
che potete ottenere su schermi a colori o in scala di grigi.
Probabilmente non cos importante su schermi che hanno solo due
colori, bianco e nero senza gradazioni di grigio.
Per gli schermi a 256 colori, un byte di memoria video richiesto per
ogni punto visibile. Questo byte contiene l'informazione che determina
quale mistura di rosso, verde e blu deve essere generata per quel
punto. Per ottenere la quantit di memoria richiesta, moltiplicate il
numero di punti visibili per linea per il numero di linee visibili.
Per uno schermo con una risoluzione di 1024x768, questa sarebbe 1024 x
768 = 786432, che il numero di punti visibili sullo schermo. Questo
anche, a un byte per punto, il numero di byte di memoria video che
sono necessari sulla vostra scheda video.
Cos, la memoria video richiesta sar tipicamente (HR * VR)/1024
Kbytes di VRAM, arrotondati (sarebbero esattamente 768K nell'esempio
precedente). Se avete pi memoria di quella strettamente richiesta, ne
avrete extra per il panning di schermo virtuale.
Comunque, se avete solo 512K sulla vostra scheda video, allora non
potete usare questa risoluzione. Anche se avete un buon monitor, ma
non abbastanza video RAM, non potete avvantaggiarvi della potenzialit
del vostro monitor. D'altra parte, se la vostra SVGA ha un mega, ma il
vostro monitor pu visualizzare al massimo 800x600, allora l'alta
risoluzione per voi irraggiungibile (vedi ``Usare le Modalit
Interlacciate'' per un possibile rimedio).
Non vi preoccupate se avete pi memoria di quella richiesta; XFree86
la user per permettervi di scrollare l'area visibile (vedi il file di
documentazione di Xconfig sul parametro dell'ampiezza dello schermo
virtuale). Ricordate anche che una scheda con 512K byte di memoria non
ha realmente 512,000 byte installati, ne ha 512 x 1024 = 524,288 byte.
Se usate X/Inside con una scheda video S3, e volete campare con 16
colori (4 bit per pixel), potete settare la profondit a 4 in Xconfig
ed effettivamente raddoppiare la risoluzione che pu gestire la scheda
video. Le schede S3, ad esempio, normalmente fanno 1024x768x256.
Potete farle fare 1280x1024x16 con profondit 4.
9. Calcolare le Ampiezze di Quadro
Attenzione: questo metodo stato sviluppato per monitor multisync.
Probabilmente funzioner lo stesso con monitor a frequenza fissa, ma
non ci sono garanzie!
Iniziate dividendo DCF per il vostro massimo HSF per ottenere la
larghezza di quadro orizzontale.
Per esempio: supponiamo che avete un Sigma Legend SVGA con un dot
clock a 65MHz, ed il vostro monitor ha una frequenza di scansione
orizzontale di 55KHz. La quantit (DCF / HSF) allora 1181 (65MHz =
65000KHz; 65000/55 = 1181).
Ecco il nostro primo assaggio di magia. Dovete arrotondare al pi
vicino multiplo di 8. Questo ha a che fare con il controller hardware
VGA usato dalla SVGA e dalle schede S3; usa un registro a 8-bit,
spostato a sinistra di 3 bit, per cui in realt una quantit di
11-bit. Altri tipi di schede tipo la ATI 8514/A pu non aver bisogno
di questo, ma non lo sappiamo e correggere non far male. Cos
arrotondiamo la configurazione della larghezza orizzontale di quadro a
1176.
Questa configurazione (DCF / HSF arrotondato ad un multiplo di 8) il
minimo HFL che potete usare. Potete ottenere HFL pi lunghi (e cos,
possibilmente, pi punti orizzontali sullo schermo) settando l'impulso
di sincronismo in modo da produrre un HSF pi basso. Ma lo pagherete
con una frequenza pi bassa e sfarfallio pi visibile.
In genere, disponibile l'80% della larghezza orizzontale di quadro
per la risoluzione orizzontale, la parte visibile della linea scandita
orizzontale (questo permette, all'incirca, di avere i bordi e il tempo
per il pennello di tornare indietro -- cio, il tempo necessario al
pennello di muoversi dal lato destro dello schermo al lato sinistro
della prossima linea). In questo esempio, sarebbero 944 impulsi.
Ora, per ottenere il normale rapporto della visualizzazione dello
schermo di 4:3, settate la risoluzione verticale a 3/4 della
risoluzione orizzontale che avete appena calcolato. Per il nostro
esempio, sarebbero 708 impulsi. Per ottenere il vostro attuale VFL,
moltiplicatelo per 1.05 per ottenere 743 impulsi.
Il 4:3 non una meraviglia della tecnica; nulla vi vieta di usare un
rapporto a Sezione Aurea se questo vi permette di usare al meglio il
vostro monitor. Questo rende conveniente calcolare l'altezza e la
larghezza del quadro dalla diagonale, dovete solo moltiplicare la
diagonale per 0.8 per ottenere la larghezza e per 0.6 per avere
l'altezza.
Cos, HFL=1176 e VFL=743. Dividendo 65MHz per il prodotto dei due ci
d una bella e piena di salute frequenza di refresh di 74.4Hz.
Eccellente! Meglio dello standard VESA! E avrete 944x708
all'accensione, pi dell'800 per 600 che probabilmente vi aspettavate.
Proprio mica male!
Potreste anche aumentare la frequenza di refresh fino a circa 76 Hz,
sfruttando il fatto che i monitor spesso possono sincronizzarsi
orizzontalmente a circa 2khz pi delle specifiche, e in qualche modo
abbassando lo VFL (che sarebbe, prendere meno del 75% di 944
nell'esempio precedente). Ma prima di provare questa manovra di
"sovraccarico", se lo fate, siate sicuri che i pennelli elettronici
del vostro monitor possano sincronizzarsi verticalmente fino a 76 Hz.
(Il popolare NEC 4D, ad esempio, non pu. Arriva solo fino a 75 Hz
VSF). (Vedi ``Sovraccaricare il Monitor'' per una discussione pi
generale su quest'argomento.)
Fino a qui, il pi semplice aritmetica e fatti basilari sugli
schermi raster. Proprio poca magia nera!
10. Magia Nera e Impulsi di Sincronismo
OK, ora avete calcolato i valori di HFL/VFL per il dot clock scelto,
trovato la frequenza di refresh accettabile, e controllato di avere
abbastanza VRAM. Adesso facciamo la vera magia nera -- vi serve di
sapere quando e dove piazzare gli impulsi di sincronismo.
Gli impulsi di sincronismo effettivamente controllano le frequenze di
scansione orizzontale e verticale del monitor. Gli HSF e VSF che avete
tirato fuori dalla pagina delle specifiche del manuale sono nominali e
approssimative frequenze massime di sincronismo. L'impulso di
sincronismo nel segnale della scheda video dice al monitor quanto
veloce deve andare.
Ricordate le due figure precedenti? Solamente parte del tempo
richiesto per tracciare (raster-scanning) un quadro usata per
mostrare l'immagine visibile (per esempio la vostra risoluzione).
10.1. Sincronismo orizzontale
Secondo la precedente definizione, ci vogliono HFL impulsi per
tracciare una linea di scansione orizzontale. Chiamiamo il numero di
impulsi visibili (la risoluzione orizzontale dello schermo) HR.
Quindi, ovviamente, HR < HFL per definizione. Per praticit,
assumiamo che entrambi partano allo stesso istante come mostrato qui
sotto:
|___ __ __ __ __ __ __ __ __ __ __ __ __
|_ _ _ _ _ _ _ _ _ _ _ _ |
|_______________________|_______________|_____
0 ^ ^ unit: impulsi
| ^ ^ |
HR | | HFL
| |<----->| |
|<->| HSP |<->|
HGT1 HGT2
Ora, noi vorremmo piazzare un impulso di sincronismo di lunghezza HSP
come mostrato sopra, ad esempio, fra la fine degli impulsi di clock
per mostrare dati e la fine degli impulsi di clock per l'intero
quadro. Perch cos? Perch se possiamo ottenere ci, allora
l'immagine sullo schermo non si sposter a destra o a sinistra.
L'immagine sar dove dovrebbe essere sullo schermo, coprendo
all'incirca tutta l'area visibile del monitor.
In pi, vogliamo circa 30 impulsi di "tempo di guardia" ad entrambi i
lati dell'impulso di sincronismo. Questo rappresentato da HGT1 e
HGT2. In una configurazione tipica HGT1 != HGT2, ma se state facendo
una configurazione da zero, vorrete far partire le vostre
sperimentazioni con loro uguali (cio, con l'impulso di sincronismo
centrato).
Il sintomo di un impulso di sincronismo non centrato che l'immagine
appare a schermo con un bordo troppo largo e l'altro lato
dell'immagine che si ripiega su se stessa, producendo un spesso bordo
bianco e una striscia di "immagine fantasma" da quella parte. Un
impulso verticale fuori misura pu far girare il quadro come sui
televisori quando non regolato bene il sincronismo verticale
(infatti, lo stesso fenomeno in azione).
Se siete fortunati, le larghezze degli impulsi di sincronismo del
vostro monitor saranno documentate sulle pagine delle specifiche del
manuale. Altrimenti, ecco dove inizia la vera magia nera...
Dovete un po' provare, sbagliare e riprovare in questa parte. Ma il
pi delle volte, possiamo sicuramente supporre che un impulso di
sincronismo lungo dai 3.5 ai 4.0 microsecondi.
Ancora per praticit, diciamo che HSP 3.8 microsecondi (che poi,
detto fra noi, non un cattivo valore di partenza quando si
sperimenta).
Ora, usando la temporizzazione di 65Mhz come in precedenza, sappiamo
che HSP equivalente a 247 impulsi di clock (= 65 * 10**6 * 3.8 *
10^-6) [ricordate che M=10^6, micro=10^-6]
Ad alcuni costruttori piace specificare i loro parametri di quadro
orizzontale come tempi piuttosto che come larghezza di punti. Potreste
vedere i seguenti valori:
tempo attivo (HAT)
Corrisponde a HR, ma in millisecondi. HAT * DCF = HR.
tempo di oscuramento (HBT)
Corrisponde a (HFL - HR), ma in millisecondi. HBT * DCF = (HFL
- HR).
piedistallo frontale (HFP)
Questo proprio HGT1.
tempo di sincronismo
Questo proprio HSP.
piedistallo secondario (HBP)
Questo proprio HGT2.
10.2. Sincronismo verticale
Tornando alla figura precedente, come mettiamo i 247 impulsi di clock
secondo quanto mostrato nel disegno?
Usando il nostro esempio, HR 944 e HFL 1176. La differenza fra i
due 1176 - 944=232 < 247! Ovviamente dobbiamo mettere un po' le cose
a posto qui. Cosa possiamo fare?
La prima cosa aumentare 1176 a 1184, e diminuire 944 a 936. Adesso
la differenza = 1184-936= 248. Hmm, pi vicino.
Poi, invece di usare 3.8, usiamo 3.5 per calcolare HSP; quindi,
abbiamo 65*3.5=227. Sembra meglio. Ma 248 non molto pi grande di
227. Normalmente servono 30 impulsi o gi di l fra HR e l'inizio di
SP, e lo stesso fra la fine di SP e HFL. E DEVONO essere multipli di
otto! Siamo bloccati?
No. Facciamo cos, 936 % 8 = 0, (936 + 32) % 8 = 0 anche. Ma 936 + 32
= 968, 968 + 227 = 1195, 1195 + 32 = 1227. Hmm... questo non male.
Ma non un multiplo di 8, cos lo arrotondiamo a 1232.
Ma ora abbiamo un problema potenziale, l'impulso di sincronismo non
pi messo in mezzo fra h e H. Tranquillamente, usando la nostra
calcolatrice troviamo che 1232 - 32 = 1200 anche lui un multiplo di
8 e (1232 - 32) - 968 = 232 che corrisponde ad usare un impulso di
sincronismo di 3.57 microsecondi, ancora ragionevole.
In pi, 936/1232 0.76 o 76%, che non lontano dall'80%, cos
dovrebbe essere tutto a posto.
Inoltre, usando l'attuale lunghezza di quadro orizzontale, noi in
pratica chiediamo al nostro monitor di sincronizzarsi a 52.7khz (=
65Mhz/1232) che nelle sue capacit. Nessun problema.
Usando le regole che abbiamo summenzionato, 936*75%=702, questa la
nostra nuova risoluzione verticale. 702 * 1.05 = 737, la nostra nuova
altezza di quadro.
La frequenza di refresh dello schermo = 65Mhz/(737*1232)=71.6 Hz.
Questo ancora eccellente.
Disegnare il layout dell'impulso di sincronismo verticale simile:
|___ __ __ __ __ __ __ __ __ __ __ __ __
|_ _ _ _ _ _ _ _ _ _ _ _ |
|_______________________|_______________|_____
0 VR VFL unit: impulsi
^ ^ ^
| | |
|<->|<----->|
VGT VSP
Facciamo partire l'impulso di sincronismo appena passata la fine degli
impulsi di dati video verticali. VGT il tempo di guardia verticale
richiesto per l'impulso. La maggior parte dei monitor funzionano bene
con un VGT di 0 (nessun tempo di guardia) e noi useremo questo valore
nel nostro esempio. Pochi monitor abbisognano di due o tre impulsi di
tempo di guardia, e di solito non fa male aggiungerli.
Tornando all'esempio: dal momento che per definizione della lunghezza
di quadro, un impulso verticale il tempo per tracciare un intera
riga ORIZZONTALE, nel nostro esempio, questa sar 1232/65Mhz=18.95us.
L'esperienza insegna che un impulso di sincronismo verticale dovrebbe
rientrare nella gamma fra 50us e 300us. Come esempio usiamo 150us, che
si traduce in 8 impulsi di clock verticale (150us/18.95us 8).
Alcuni fabbricanti preferiscono dare i loro parametri di quadro
verticale come temporizzazioni piuttosto che ampiezza di punti.
Potrete vedere i seguenti valori:
tempo attivo (VAT)
Corrisponde a VR, ma in millisecondi. VAT * VSF = VR.
tempo di oscuramento (VBT)
Corrisponde a (VFL - VR), ma in millisecondi. VBT * VSF = (VFL
- VR).
piedistallo frontale (VFP)
Questo proprio VGT.
sincronismo
Questo proprio VSP.
piedistallo secondario (VBP)
Questo come un secondo tempo di guardia dopo l'impulso di
sincronismo verticale. Spesso zero.
11. Riassumendo
Il file Xconfig "Table of Video Modes" contiene righe di numeri,
essendo ogni riga una completa specificazione di una modalit di
operazione X-server. I campi sono raggruppati in quattro sezioni, la
sezione del nome, la sezione della frequenza di clock, la sezione
orizzontale, e la sezione verticale.
La sezione del nome contiene un campo, il nome della modalit video
specificata nel resto della riga. Questo nome riferito nella riga
"Modes" della sezione Graphics Driver Setup nel file Xconfig. Il campo
nome pu essere omesso se il nome di una riga precedente lo stesso.
La sezione della frequenza di clock contiene solo il campo della
frequenza (che noi abbiamo chiamato DCF) della riga modalit video. Il
valore di questo campo specifica quale dot clock stato usato per
generare i numeri delle sezioni seguenti.
La sezione orizzontale consiste di quattro campi che specificano come
ciascuna linea orizzontale deve essere generata. Il primo campo della
sezione contiene il numero di punti per linea che saranno accesi per
formare l'immagine (da noi chiamati HR). Il secondo campo (SH1) indica
in quale punto partir l'impulso di sincronismo orizzontale. Il terzo
campo (SH2) indica a quale punto finir l'impulso di sincronismo
orizzontale. Il quarto campo specifica la larghezza totale del quadro
(HFL).
Anche la sezione verticale contiene quattro campi. Il primo campo
contiene il numero di linee visibili che appariranno sullo schermo
(VR). Il secondo campo (SV1) indica a quale linea partir l'impulso di
sincronismo verticale. Il terzo campo (SV2) specifica a quale linea
finir l'impulso verticale di sincronismo. Il quarto campo contiene
il totale dell'altezza del quadro (VFL).
Esempio:
#Nome Mod. clock temporiz. oriz. temporiz. vert.
"752x564" 40 752 784 944 1088 564 567 569 611
44.5 752 792 976 1240 564 567 570 600
(Nota: X11R5 non supporta i dot clocks frazionari.)
Per Xconfig, tutti i numeri che abbiamo appena menzionato - il numero
dei punti accesi sulla riga, il numero dei punti che separano i punti
accesi dall'inizio dell'impulso di sincronismo, il numero dei punti
che rappresentano la durata dell'impulso, e il numero di punti dopo la
fine dell'impulso di sincronismo - sono sommati per produrre il numero
di punti per riga. Il numero di punti orizzontali deve sempre essere
divisibile per otto.
Esempio di numeri orizzontali: 800 864 1024 1088
Questa linea d'esempio ha il numero di punti accesi (800) seguito dal
numero del punto da dove parte l'impulso di sincronismo (864), seguito
dal numero del punto quando lo stesso impulso termina (1024), seguito
dal numero dell'ultimo punto sulla riga (1088).
Notate di nuovo che tutti i valori dei numeri orizzontali (800, 864,
1024, e 1088) sono divisibili per otto! Ci non richiesto per i
valori verticali.
Il numero di righe dall'alto in basso formano il quadro. Il segnale di
temporizzazione base per un quadro la riga. Un certo numero di righe
formeranno l'immagine. Dopo che l'ultima riga accesa stata
disegnata, ci sar un ritardo di un certo numero di righe prima che
sia generato l'impulso di sincronismo verticale. Quindi l'impulso di
sincronismo durer per un po' di righe, e finalmente saranno generate
le ultime righe del quadro, cio il ritardo necessario dopo l'impulso.
I valori che specificano questa modalit d'operazione sono immessi in
una maniera simile al seguente esempio.
Esempio di valori verticali: 600 603 609 630
Questo esempio mostra che ci sono 600 righe visibili sullo schermo,
che l'impulso di sincronismo verticale parte alla 603esima riga e
termina alla 609esima, e che sono usate un totale di 630 righe.
Notate che i valori verticali non devono essere divisibili per otto!
Torniamo all'esempio dove stavamo lavorando. Secondo quanto detto
prima, tutto quello che dobbiamo fare da adesso in poi di scrivere i
nostri risultati in Xconfig in questo modo:
<nome> DCF HR SH1 SH2 HFL VR SV1 SV2 VFL
dove SH1 il punto di partenza dell'impulso di sincronismo orizzon
tale e SH2 l'ultimo; similmente, SV1 il punto di partenza
dell'impulso di sincronismo verticale e SV2 l'ultimo.
Per inserire questi, ricordate il discorso sulla magia nera e gli
impulsi di sincronismo che stato fatto precedentemente. SH1 il
punto dove inizia l'impulso di sincronismo orizzontale; quindi, SH1 =
HR + HGT1. SH2 l'estremo opposto; quindi, SH2 = SH1 + HSP.
Similarmente, SV1 = VR + VGT (ma VGT di solito zero) e SV2 = SV1 +
VSP.
#nome clock temporiz. oriz. temporiz. vert. flag
936x702 65 936 968 1200 1232 702 702 710 737
Non necessario alcun flag; questa non una modalit interlacciata.
Ora siamo proprio a posto.
12. Sovraccaricare il Vostro Monitor
Non dovreste assolutamente superare le specifiche di scansione del
monitor se questo un tipo a frequenza fissa. Potreste far fumare il
vostro hardware! Superare le specifiche di un monitor multisincrono
crea dei subdoli problemi potenziali che dovreste evitare.
Al contrario, avere un pixel-clock pi alto della massima larghezza di
banda del monitor abbastanza innocuo. (Nota: il limite teorico delle
capacit raggiunto quando il pixel-clock raggiunge il doppio della
larghezza di banda del monitor. Questa una applicazione diretta del
Teorema di Nyquist: immaginate i pixel come una serie di prove dei
segnali guida distribuita nello spazio e capirete perch.)
problematico eccedere la frequenza massima di sincronismo. Alcuni
monitor moderni possono avere dei circuiti di protezione che spengono
il monitor a frequenze di scansione pericolose, ma non fateci
affidamento. In particolare ci sono monitor multisinc pi vecchi (come
il Multisync II) che usano solo un trasformatore orizzontale. Questi
monitor non hanno molta protezione contro il sovraccarico. Mentre
avrete sicuramente un circuito di regolazione dell'alto voltaggio (che
pu essere assente nei monitor a frequenza fissa), questo non
necessariamente coprir ogni gamma di frequenza possibile, specie nei
modelli pi economici. Questo non solo implica un maggior carico sul
circuito, ma causa anche un invecchiamento precoce dei fosfori dello
schermo, ed ulteriori emissioni di radiazioni dallo schermo (inclusi i
raggi X).
Un altro punto da considerare sulla larghezza di banda che
l'impedenza in entrata del monitor specificata solo per quella data
gamma di frequenze, e usarne di pi alte pu probabilmente causare
minori interferenze sullo schermo, e disturbi radio.
Comunque, la problematica fondamentale in questione lo slew rate (la
pendenza dei segnali video) dei driver per l'output del video, e
questo di solito indipendente dalla frequenza dei pixel, ma (se il
costruttore della vostra scheda video ci tiene a questi problemi) in
relazione alla massima frequenza dei pixel della scheda.
Quindi state attenti l fuori...
13. Usare le Modalit Interlacciate
(Questa sezione in gran parte merito di David Kastrup
<dak@pool.informatik.rwth-aachen.de>)
Ad un dato clock fisso, uno schermo interlacciato avr molto meno
sfarfallio di uno non-interlacciato, se il circuito verticale del
vostro monitor lo supporta stabilmente. principalmente a causa di
ci che furono inventate le modalit interlacciate.
Le modalit interlacciate hanno una cattiva reputazione perch sono
inferiori alle loro compagne non-interlacciate alla stessa frequenza
di scansione verticale, VSF (quello che di solito viene specificato
nelle pubblicit). Ma sono assolutamente superiori alla stessa
frequenza di scansione orizzontale, ed qui che di solito le
caratteristiche decisive del vostro monitor/scheda video dicono le
bugie.
Ad una frequenza di refresh fissa (o mezzo quadro, o VSF) il display
interlacciato sfarfaller di pi: un display interlacciato a 90Hz sar
inferiore ad un display non-interlacciato a 90Hz. Per avr bisogno di
met larghezza di banda video e met frequenza di scansione
orizzontale. Se lo comparate ad una modalit non-interlacciata con lo
stesso dot clock e le stesse frequenze di scansione, sar enormemente
superiore: 45Hz non-interlacciati sono intollerabili. Con 90Hz
interlacciati, io ho lavorato per anni con il mio Multisync 3D (a
1024x768) ed in modo molto soddisfacente. Penso che vi servir al
massimo uno schermo a 70Hz non-interlacciati per lo stesso comfort.
Dovete stare attenti ad alcuni punti, comunque: usate modalit
interlacciate solo ad alte risoluzioni, cos che le righe accese
alternate siano pi vicine. Vorrete provare varie larghezze e
posizioni dell'impulso di sincronismo per ottenere le posizioni di
riga pi stabili. Se le linee alternate sono chiare e scure,
l'interlacciamento vi salter agli occhi. Ho una applicazione che
sceglie tali valori per uno sfondo (XCept, nessun'altra applicazione
lo fa che io sappia, fortunatamente). Io passo a 800x600 usando XCept
perch altrimenti mi fanno proprio male gli occhi.
Per lo stesso motivo, usate i font di minimo 100dpi, o altri font che
abbiano le stanghette orizzontali spesse minimo due righe (per le alte
risoluzioni, nient'altro avrebbe comunque senso).
E naturalmente, non usate mai la modalit interlacciata quando il
vostro hardware ne supporterebbe una non-interlacciata con la stessa
frequenza di refresh.
Se, comunque, pensate che per qualche risoluzione state spingendo o il
monitor o la scheda video al massimo delle loro capacit, e ottenete
sfarfallio o perdita di nitidezza (eccesso di larghezza di banda),
potete provare la stessa risoluzione usando una modalit
interlacciata. Chiaramente ci non serve a nulla se il VSF del monitor
gi vicino ai suoi limiti.
Scrivere modalit interlacciate facile: fatelo come se fossero non-
interlacciate. Sono necessarie solo due considerazioni in pi: vi
servono un numero totale pari di righe verticali (l'ultima cifra nel
mode line), e quando specificate il flag "Interlace", la frequenza
verticale di quadro raddoppia. Il vostro monitor deve supportare una
frequenza di 90Hz se la modalit che avete specificato risulta di 45Hz
senza il flag "Interlace".
Come esempio, ecco la mia modeline per 1024x768 interlacciati: il mio
Multisync 3D supporta fino a 90Hz verticali e 38kHz orizzontali.
ModeLine "1024x768" 45 1024 1048 1208 1248 768 768 776 807 Interlace
Entrambi i limiti sono abbastanza sfruttati con questa modalit.
Specificando la stessa modalit, ma senza il flag "Interlace", si
ancora quasi al limite della capacit orizzontale del monitor (e per
dirla tutta, un po' sotto al minimo della frequenza di scansione
verticale), ma ci produce uno schermo intollerabilmente sfarfallante.
Regole basilari di programmazione: se avete scritto una modalit a
meno della met della capacit verticale del monitor, rendete pari il
numero totale delle linee ed aggiungete il flag "Interlace". La
qualit dell'immagine dovrebbe aumentare di molto nella maggioranza
dei casi.
Se avete una modalit non-interlacciata che in qualche modo sfrutta al
limite le specifiche del monitor dove la frequenza di scansione
verticale giace a circa il 30% o pi sotto al massimo del monitor,
scrivere a mano una modalit interlacciata (probabilmente con una pi
alta risoluzione) potrebbe portare a risultati superiori, ma non ci
giurerei.
14. Domande e Risposte
D. L'esempio che avete fatto per un formato non standard dello
schermo, lo posso usare?
R. Perch no? NON ci sono ragioni di usare 640x480, 800x600, o anche
1024x768. I server XFree86 vi lasciano configurare il vostro hardware
molto liberamente. Di solito ci vogliono due o tre prove prima di
arrivare alla scelta giusta. La cosa importante da raggiungere un
alta frequenza di refresh con un'area visibile ragionevole. Non alta
risoluzione al prezzo di sfarfallio scassa-occhi!
D. la sola risoluzione possibile quella data di 65Mhz dot clock e
55Khz HSF?
R. Assolutamente no! Siete incoraggiati a seguire la procedura
generica e fare un po' di prova-e-sbaglia fino ad arrivare ad una
configurazione che vi soddisfi. Sperimentare cos pu essere molto
divertente. Molte configurazioni vi possono dare solo schermi
sgangherati, ma in pratica i moderni monitor multi-sync non sono
facilmente danneggiabili. Assicuratevi comunque che il vostro monitor
possa supportare le frequenze di quadro che avete scelto prima di
usarlo per periodi pi lunghi.
State attenti ai monitor a frequenza fissa! Questo genere di
sperimentazioni li pu velocemente danneggiare. Assicuratevi di usare
frequenze di refresh valide per qualsiasi esperimento su di essi.
D. Tu hai appena nominato due risoluzioni standard. In Xconfig, sono
disponibili molte risoluzioni standard, mi puoi dire a che serve
sperimentare con le temporizzazioni?
R. Certamente! Prendi, ad esempio, lo "standard" 640x480 presente
nell'attuale Xconfig. Usa 25Mhz di frequenza pilota, lunghezze di
quadro di 800 e 525 => frequenza di refresh 59.5Hz. Non male. Ma
28Mhz una frequenza pilota comune a molte schede SVGA. Se noi la
usiamo per pilotare 640x480, seguendo le procedure prima discusse,
otterremmo lunghezze di quadro tipo 812 e 505. Ora la frequenza di
refresh aumentata a 68Hz, un miglioramento abbastanza significativo
rispetto allo standard.
D. Puoi riassumere quello che si detto fino ad ora?
R. In breve:
1. per ogni frequenza pilota fissa, aumentare la risoluzione massima
ci penalizza nell'abbassare la frequenza di refresh e producendo
cos pi sfarfallio.
2. se serve un'alta risoluzione e il tuo monitor la supporta, cerca di
procurarti una scheda SVGA che abbia un uguale dot clock o DCF. Pi
sono elevati, meglio !
15. Risolvere Problemi con l'Immagine
OK, cos avete i vostri valori di configurazione X. Li mettete in
Xconfig con una etichetta di modalit test. Fate partire X, con la
combinazione di tasti andate nella nuova modalit, ... e l'immagine
non va bene. Che fate? Ecco una lista di comuni distorsioni
dell'immagine e come risolverle.
(Eliminare questi difetti minori la specialit di xvidtune(1).)
Spostate l'immagine cambiando la temporizzazione dell'impulso di
sincronismo. La scalate cambiando la lunghezza del quadro (dovete
cambiare l'impulso di sincronismo per mantenere la stessa posizione
relativa, altrimenti cambiarne la grandezza sposter l'immagine). Ecco
alcune ricette pi specifiche:
Le posizioni orizzontali e verticali sono indipendenti. Cio, spostare
l'immagine orizzontalmente non incide sulla sua posizione verticale, o
viceversa. Per lo stesso non vale sempre per l'ingrandimento o
rimpicciolimento. Mentre cambiare la larghezza non ha nulla a che
vedere con l'altezza o viceversa, cambiare entrambe pu avere dei
limiti. In particolare, se l'immagine troppo larga in entrambe le
dimensioni voi probabilmente dovete andare a pi alti dot clock per
aggiustare le cose. Dal momento che questo alza la risoluzione,
spesso un problema!
15.1. L'immagine troppo a destra o troppo a sinistra
Per aggiustare questo, cambiate l'impulso di sincronismo orizzontale.
Ovvero, aumentate o diminuite (a multipli di 8) i due numeri in mezzo
nella sezione della temporizzazione orizzontale che definiscono i
limiti di partenza e fine dell'impulso di sincronismo orizzontale.
Se l'immagine spostata a sinistra (bordo destro troppo largo, voi
volete muovere l'immagine a destra) diminuite i valori. Se l'immagine
spostata a destra (bordo sinistro troppo largo, volete spostare
l'immagine a sinistra) incrementate l'impulso di sincronismo.
15.2. L'immagine troppo su o troppo gi
Per aggiustare questo, cambiate l'impulso di sincronismo verticale.
Cio, incrementate o diminuite i due valori mediani della sezione di
temporizzazione verticale che definiscono i limiti di partenza e fine
dell'impulso di sincronismo verticale.
Se l'immagine spostata su (bordo in basso troppo largo, volete
spostare l'immagine in gi) diminuite i valori. Se l'immagine
spostata in gi (bordo in alto troppo largo, volete spostare
l'immagine in su) incrementate i valori.
15.3. L'immagine troppo larga sia orizzontalmente che verticalmente
Passate ad una pi alta velocit di clock della scheda. Se avete pi
modalit nel file di clock, forse stata attivata per errore una
modalit a velocit inferiore.
15.4. L'immagine troppo larga (troppo stretta) orizzontalmente
Per rimediare a questo, aumentate (diminuite) la lunghezza di quadro
orizzontale. Ovvero, cambiate il quarto valore nella prima sezione di
temporizzazione. Per evitare di muovere l'immagine, cambiate anche
l'impulso di sincronismo (secondo e terzo numero) della met, per
mantenerla nella stessa posizione relativa.
15.5. L'immagine troppo alta (troppo bassa) verticalmente
Per rimediare, aumentate (diminuite) la lunghezza del quadro. Cio
cambiate il quarto numero nella seconda sezione di temporizzazione.
Per evitare di spostare l'immagine, cambiate anche l'impulso di
sincronismo (il secondo e terzo numero) della met, per mantenerla
nella stessa posizione relativa.
Qualsiasi altra distorsione che non pu essere risolta dalla
combinazione di queste tecniche probabilmente sintomo di qualcosa di
profondamente sbagliato, tipo un errore di calcolo o un dot clock pi
veloce di quello che pu reggere il monitor.
In ultimo, ricordate che aumentare la lunghezza del quadro diminuir
la frequenza di refresh, e viceversa.
16. Tracciare le Capacit del Monitor
Per tracciare un diagramma della modalit del monitor, vi serve il
pacchetto gnuplot (un linguaggio di disegno freeware per sistemi
operativi UNIX-compatibili) e il tool modeplot, uno script di
shell/gnuplot per tracciare il diagramma delle caratteristiche del
vostro monitor, digitate come opzioni a linea di comando.
Ecco una copia di modeplot:
#!/bin/sh
#
# modeplot -- genera un grafico X mode delle modalit disponibili con il
# proprio monitor
#
# Dare `modeplot -?' per vedere le opzioni di controllo.
#
# ($Id: video-modes.sgml,v 1.7 1999/01/18 13:24:58 esr Exp $)
# Descrizione del monitor. Larghezza di banda in MHz, frequenze orizzontali
# in kHz e frequenze verticali in Hz.
TITLE="Viewsonic 21PS"
BANDWIDTH=185
MINHSF=31
MAXHSF=85
MINVSF=50
MAXVSF=160
ASPECT="4/3"
vesa=72.5 # minima frequenza di refresh raccomandata da 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
modeplot control switches:
-t "<description>" nome del monitor default: "Viewsonic21PS"
-b <nn> largh.di banda in MHz default: 185
-h <min> <max> min & max HSF (kHz) default: 31 85
-v <min> <max> min & max VSF (Hz) default: 50 160
-a <aspect ratio> aspect ratio default: 4/3
-g "<options>" opzioni passate a gnuplot
Le opzioni -b, -h e -v sono obbligatorie, -a, -t, -g opzionali. Potete usare
-g per passare un tipo di device a gnuplot cos che (per esempio) l'output di
modeplot pu essere rediretto ad una stampante. Vedi gnuplot(1) per dettagli.
Il tool modeplot stato creato da Eric S. Raymond <esr@thyrsus.com> basato
su analisi e codice di Martin Lottermoser <Martin.Lottermoser@mch.sni.de>
Questo modeplot $Revision: 1.7 $
EOF
exit;;
esac
shift
done
gnuplot $GNUOPTS <<EOF
set title "$TITLE Mode Plot"
# Numeri magici. Sfortunatamente, il grafico abbastanza sensibile a
# modifiche, e potrebbe fallire nel rappresentare la realt di alcuni
# monitor. Dobbiamo correggere questi valori per ottenere una
# approssimazione del diagramma dei modi. Questi sono ricavati analizzando
# molti valori nel database ModeDB.
F1 = 1.30 # moltiplicatore per convertire la risoluzione orizzontale
# in larghezza di quadro
F2 = 1.05 # moltiplicatore per convertire la risoluzione verticale
# in altezza di quadro
# Definizione delle funzioni (moltiplicando per 1.0 si forza
# l'aritmetica a numeri reali)
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)
# Mette delle etichette sugli assi
set xlabel 'DCF (MHz)'
set ylabel 'RR (Hz)' 6 # La mette proprio sopra l'asse y
# Genera il diagramma
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
Una volta che avete a posto modeplot e il package gnuplot, vi servono
le seguenti caratteristiche del monitor:
larghezza di banda video (VB)
gamma delle frequenze di sincronismo orizzontale (HSF)
gamma delle frequenze di sincronismo verticale (VSF)
Il programma plot deve fare delle semplificazioni che non sono
tecnicamente corrette. Questo il motivo per cui il diagramma che ne
risulta ne solo una rozza descrizione. Queste semplificazioni sono:
1. Tutte le risoluzioni hanno una singola frequenza fissa di aspetto
AR = HR/VR. Risoluzioni standard hanno AR = 4/3 o AR = 5/4. I
programmi modeplot assumono 4/3 di default, ma si pu non tenerne
conto.
2. Per le modalit considerate, lunghezze e larghezze di quadro sono
multipli fissi di risoluzioni orizzontali e verticali,
rispettivamente:
HFL = F1 * HR
VFL = F2 * VR
Come linea guida, prendete F1 = 1.30 and F2 = 1.05 (vedi ``''
"Calcolare le grandezze di quadro").
Ora prendete una particolare frequenza di sincronismo, HSF. Dato
l'assunto prima presentato, ogni valore di clock DCF gi determina la
frequenza di refresh RR, per esempio per ogni valore di HSF c' una
funzione RR (DCF). Questo pu essere derivato come segue.
La frequenza di refresh uguale al clock diviso per il prodotto della
grandezza del quadro:
RR = DCF / (HFL * VFL) (*)
D'altra parte, la larghezza di quadro uguale al clock diviso per la
frequenza di sincronismo orizzontale:
HFL = DCF / HSF (**)
VFL pu essere ridotto a HFL secondo i due assunti precedenti:
VFL = F2 * VR
= F2 * (HR / AR)
= (F2/F1) * HFL / AR (***)
Inserendo (**) e (***) in (*) otteniamo:
RR = DCF / ((F2/F1) * HFL**2 / AR)
= (F1/F2) * AR * DCF * (HSF/DCF)**2
= (F1/F2) * AR * HSF**2 / DCF
Per un HSF fisso, F1, F2 e AR, questo un iperbole nel nostro
diagramma. Disegnando due tali curve per le frequenze di sincronismo
orizzontale minime e massime noi otteniamo i bordi rimanenti dell'area
permessa.
Le righe dritte che attraversano l'area possibile rappresentano
risoluzioni particolari. Questo basato su (*) e il secondo assunto:
RR = DCF / (HFL * VFL) = DCF / (F1 * HR * F2 * VR)
Disegnando tali linee per tutte le risoluzioni che ci interessano, si
possono immediatamente leggere le possibili relazioni fra risoluzione,
frequenza di clock e frequenza di refresh delle quali il monitor
capace. Notate che queste linee non dipendono dalle propriet del
monitor, ma dipendono dal secondo assunto.
Il tool modeplot vi offre un modo facile per farlo. Date modeplot -?
per vedere le sue opzioni di controllo. Una chiamata tipica questa:
modeplot -t "Swan SW617" -b 85 -v 50 90 -h 31 58
L'opzione -b specifica la larghezza di banda video; -v e -h settano le
gamme di frequenza di sincronismo orizzontale e verticale.
Quando leggete l'output di modeplot, tenete sempre a mente che vi d
solo una descrizione approssimativa. Per esempio, non tiene conto dei
limiti di un HFL risultante da una minima ampiezza richiesta
dell'impulso di sincronismo, e pu essere solo accurato quanto lo sono
gli assunti. Non c' niente di meglio quindi di un calcolo dettagliato
(compresa un po' di magia nera) come viene presentato in ``Mettere
Tutto Assieme''. Comunque, vi dovrebbe dare un miglior feeling per
quanto possibile e per quanti compromessi si debbano fare.
17. Ringraziamenti
Il padre originale di questo documento stato Chin Fang
<fangchin@leland.stanford.edu>.
Eric S. Raymond <esr@snark.thyrsus.com> ha rielaborato, riorganizzato,
e massicciamente riscritto l'originale di Chin Fang col proposito di
capirlo. In questo processo, ha immesso la maggior parte di un altro
how-to di Bob Crosson <crosson@cam.nist.gov>.
Il materiale sulle modalit interlacciate largamente di David
Kastrup <dak@pool.informatik.rwth-aachen.de>
Martin Lottermoser <Martin.Lottermoser@mch.sni.de> ha contribuito
all'idea di usare gnuplot per fare diagrammi di modalit e ha fatto
l'analisi matematica che c' dietro modeplot. Il modeplot in
distribuzione fu ridisegnato e generalizzato da ESR dal codice
originale di Martin per un caso.
|