Расчет video-timing

Материал из 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 из внешних источников

Video timing.gif

  • Зеленые точки - видимая часть изобржения.
  • Черные точки - черный бордюр за полем изображения.
  • Белые точки - сихро-импульсы.

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