Как работает видеосистема компьютера
Вы должны понимать, что этот раздел не является руководством для специалистов по созданию видеосистем. Изложение работы видеосистемы здесь дается очень поверхностное, только с той целью, чтобы читатель понимал значение параметров, которые ему придется как-то изменять при настройке графического режима. В основу этого раздела положена статья И. Николаева "FAQ по настройке монитора в Xfree" (http://knot.pu.ru/faq/xfaq.html).
Видеосистема компьютера состоит из видеоадаптера и монитора (когда мы будем говорить о мониторах, будут иметься в виду мониторы, построенные на электронно-лучевых трубках).
Как вы знаете, изображение на экране монитора состоит из отдельных точек. Точки формируются электронным лучом и располагаются в виде строк. Монитор делает две независимых вещи: развертку луча и высвечивание отдельных точек, из которых строится изображение на экране. Управление монитором заключается в том, чтобы задать число точек в строке (разрешение по горизонтали), число строк на экране (разрешение по вертикали) и интенсивность каждого из трех основных цветов в каждой точке.
Функцию управления монитором осуществляет видеоадаптер. Видеоадаптер передает в монитор три сигнала: видео сигнал (RGB), строчную синхронизацию (HS), и кадровую синхронизацию (VS). По сигналу горизонтальной (строчной) синхронизации происходит возврат луча с конца каждой строки к началу следующей, а сигнал вертикальной (кадровой) синхронизации определяет момент возврата луча из правого нижнего угла экрана в верхний левый. Частоты генерации этих двух сигналов (измеряемые числом импульсов в секунду) необходимо знать для правильной установки и настройки X сервера. Значения частот горизонтальной и вертикальной синхронизации должны быть указаны в документации к вашему монитору. Частота вертикальной синхронизации (обозначим ее VSF) обычно указывается в герцах (Hz) и находится в пределах 50-180 Гц. Частота горизонтальной синхронизации (HSF) задается в килогерцах (KHz) и принимает значения в диапазоне от 31 до 135 КГц.
Современные мониторы обычно являются многочастотными, т. е. допускают выбор частот вертикальной и горизонтальной синхронизации из определенного диапазона допустимых значений. Некоторые мониторы (особенно дешевые) могут иметь несколько фиксированных значений допустимых частот. Целесообразно выбирать максимально возможные значения частот синхронизации из числа допустимых для получения наилучшего разрешения. Однако будьте осторожны: установка значений, превышающих допустимые, может повредить монитор!
Есть еще одна важная частота - число точек, которые могут быть отображены на экране за одну секунду. Электронный луч перемещается по экрану с конечной скоростью (которая ограничена не скоростью перемещения самого луча, а параметрами микросхем видеоадаптера). В английской документации эта частота называется "the card's dot clock". Будем называть эту частоту тактовой частотой развертки, и обозначать как DCF (dot clock frequency).
Следующий существенный параметр - это частота обновления экрана (которую будем обозначать как SRR - screen refresh rate). Чем выше эта частота, тем меньше устают глаза при работе с компьютером, потому что уменьшается мерцание экрана. Не рекомендуется выбирать частоту обновления экрана меньше 60 Гц - частоты мерцания флуоресцентных ламп. Стандарт VESA рекомендует выбирать для нее значение не менее 72 Гц.
Но задать очень большое значение частоты обновления экрана невозможно, потому что она не может быть больше, чем тактовая частота развертки (DCF), поделенная на произведение числа точек в строке и числа строк на экране. На самом деле частота обновления экрана еще меньше, потому что на перемещение электронного луча от конца строки в начало следующей и из левого нижнего угла экрана в правый верхний требуется некоторое время, т. е. дополнительные такты работы тактового генератора видеоадаптера. Кроме того, для создания четких границ изображения на экране, электронный луч обычно перемещается на несколько точек левее и правее видимой части изображения, а также пробегает одну-две строки выше и ниже изображения (это темные полосы, окружающие изображение на экране). Поэтому фактически число необходимых для вывода изображения точек в строке (обозначим его HFL - Horizontal Frame Length - размер фрейма по горизонтали) и число необходимых строк на экране (Vertical Frame Length - VFL) больше, чем размеры видимого изображения. Точнее
HFL = (число невидимых точек слева) + (число видимых точек в строке) + (число невидимых точек справа) + (число тактов, необходимых для перевода луча к началу новой строки)
Аналогичное соотношение действует для размера фрейма по вертикали - VFL и поэтому имеет место формула:
SRR = DCF / (HFL * VFL)
Именно эта частота и является частотой обновления экрана (SRR = VSF) и должна лежать в границах, заданных для частоты вертикальной синхронизации вашего монитора. Таким образом, частота вертикальной синхронизации монитора и тактовая частота видеоадаптера накладывают ограничения на предельное разрешение изображения на экране.
Еще одно ограничение накладывается обьемом памяти на плате видеоадаптера. В цветном мониторе каждая точка высвечивается тремя электронными лучами, которые одновременно направлены в данную точку. Цвет каждой отдельной точки на экране формируется путем смешивания трех основных цветов: красного (R), зеленого(G) и голубого(B). Интенсивность каждого из этих трех цветов определяется уровнем сигнала в соответствующем луче. Изображение для вывода на экран формируется в видеопамяти, которая физически расположена на плате видеоадаптера, но входит в общее адресное пространство оперативной памяти компьютера. Изображение хранится в памяти в цифровом виде, и преобразование его в аналоговый сигнал RGB является одной из основных задач видеоадаптера, для чего на плате видеоадаптера обычно ставится цифро-аналоговый преобразователь - ЦАП.
Количество возможных цветов для каждой точки, очевидно, ограничено тем, сколько различных уровней сигнала для каждого луча может сформировать видеоадаптер, а также обьемом видеопамяти. Но обычно выходные сигналы видеоадаптера обеспечивают число уровней, достаточное для отображения картинки, записанной в видеопамять, так что определяющим параметром становится именно ее обьем.
Формула, определяющая ограничения на разрешение экрана и количество воспроизводимых цветов, очень проста: (объем видеопамяти в байтах) должен быть не меньше, чем (число видимых точек в строке) * (число видимых строк на экране) * (число байт на точку).
Например, если вы хотите выбрать разрешение экрана 1024 * 768 и иметь 16 миллионов цветов для каждой точки (4 байта на точку), то вам надо иметь 1024 * 768 * 4 = 3145728 байт памяти. Если же у вас всего 2 Мбайт памяти, то придется либо выбрать меньшее разрешение, либо меньшее количество цветов. Вы легко можете сами составить таблицу соответствий между различными комбинациями значений видеопараметров и объемом необходимой памяти.
О том, как вся эта теория применяется при настройке графического режима, будет рассказано в следующих разделах.