Расчет video-timing
Материал из Russian Amiga wikipedia.
Расчет и настройка разрешений видеокарты и таймингов.
Содержание |
[править] Утилита работы с video-timing
С видеокартами от Phase5/DCE (cybervision) поставляется утилита CGXMode. В ней можно создать новый режим, он появится снизу списка режимов, пока со старым именем.
Потом нажимаем его отреактировать. При этому вылезает табличка:
Type: 8bit Scanmode: Pixelclock: Horizontal timing Vertical timing Resolution: Resolution: Sync length: Sync length: Pulse offset: Pulse offset: Pulse length: Pulse length: Polarity: Polarity: и строчка c автоматически расчитываемыми частотами Freq: Freq:
[править] Поиск timing
Теперь лезем в поисковики смотреть modeline с Linux. Ищем "xorg modeline" или "xfree modeline". В сети множество примеров настройки.
Ищем ближайший похожий режим, что бы прицениться. например мне для настройки 320*256 подошел вот этот:
ModeLine "320x200" 15.8 320 360 392 396 200 204 206 222 -hsync +vsync doublescan
Нас тут интересуют следующие вещи: пиксельклок - 15.8, полярность hsync и vsync, а так же doublescan или обычный режим. еще можно посмотреть смещение между резолюшеном (320) и всякими синками (360 392 396), но как точно перевести их в аммижные я пока не копал. (хм. по идее разница между резулюшеном и синками как раз и должна подойти для амиги)
[править] Установка
Итак, создаю новый режим, в нем заполняем пиксельклок, полярности, и разрешения. (в графах sync могут стоять старые значения, который при данном пиксельклоке не дадут выставить нужное нам разрешение, тогда надо их предварительно скрутить к минимуму)
Теперь придется немного покрутить синки и пульсы (и возможно пиксельклок, но буквально в пределах +/-1), пока не получится нормальная картинка на экране. Можно ориентироваться по частотам, горизонтальная должна быть около 31kHz, а вертикальная 60 Hz. После некоторых подстроек у меня получилась хорошая картинка на следующих параметрах:
Type: 8bit Scanmode: doublescan Pixelclock: 14 Horizontal Resol.: 320, Sync: 88, Pulse offset: 16, Pulse length: 16, Polarity: negative. Freq: 34.3 kHz Vertical Resol.: 256, Sync: 14, Pulse offset: 1, Pulse length: 1, Polarity: positive. Freq: 63.5 Hz
точно так же можно настроить и другие разрешения..
[править] Описание modeline из внешних источников
- Зеленые точки - видимая часть изобржения.
- Черные точки - черный бордюр за полем изображения.
- Белые точки - сихро-импульсы.
A - Количество точек по горизонтали. Например 640, 800, 1024, 1280, хотя это может быть любое число.
B - начало горизонтального синхро-импульса. Оно постоянн, так что если вы увеличите его, изображение сдвинется влево, а если уменьшите - вправо.
C - окончание синхро-импульса. Практически не содержит полезной информации. Можно использоваться что-то вроде B+20 или B+100, это практически не повияет ни на что.
D - Конец линии. Это влияет на 2 вещи. Первое - отношение A/D влияет на ширину визуальной картинки. Второе - горизонтальная частота "J" (kHz) расчитывается по следующей формуле:
1000*I 1
J= -------- time= ----------
D frequency
Это значит, если вы уменьшаете pixelclock "I", то горизонтальная частота уменьшается. Таким образом, если вы увеличите "D", то горизонтальная частота то же уменьшится.
XFree/Xorg Исмользуют следующее описание Modeline:
Modeline "name" I A B C D E F G H
"name" обычно это разрешение, типа "640x480", хотя на самом деле это просто текстовое поле и может содержать что угодно.
Заполнение параметров:
H_DISP = horizonal display resolution (640,800,1024 etc.) H_FPORCH = B - A H_SYNC = C - B H_BPORCH = D - C V_DISP = vertical display resolution (480,600,768 etc.) V_FPORCH = F - E V_SYNC = G - F V_BPORCH = H - G
