Как видно из вышеприведенных выкладок, частотные параметры видеосистемы определяются, исходя из желаемой частоты кадров, разрешения экрана и режима развертки. Заботясь о зрении пользователя, частоту кадров стремятся повышать. При низкой частоте экран начинает мерцать, что особо заметно на больших белых полях изображения (в полном смысле слова яркий тому пример — белый фон в приложениях Windows). Разрешение экрана стремятся увеличить — чем оно выше, тем больше информации можно уместить на экране. Поскольку размер экрана постоянно увеличивается — монитор на 19" является уже нормой для многих видов деятельности, — потребность в разрешении, скажем, 1600 х 1200 вполне реальна. Но по нашим выкладкам для этого уже требуется полоса 120 МГц (а кадровая частота 50 Гц — это отнюдь не идеал). Применение чересстрочной развертки годится лишь как вынужденная мера, поскольку имеет свои специфические неприятные «видеоэфекты»: если выводится тонкая (в одну строку точек) горизонтальная линия, она будет заметно мерцать. Это и понятно, ведь прорисовывается она только в одном из полукадров, следовательно, с половинной кадровой частотой. Если изображение потолще (один и тот же элемент имеет точки в соседних строках), его мерцание будет почти незаметным. Итак, вожделенные цели ясны: частота кадров — выше, разрешение (по вертикали и горизонтали) — больше, развертка — не чересстрочная (Non Interlaced). Забегая немного вперед, заметим, что чем выше частота развертки, тем ниже производительность графической системы при построении изображений. С точки зрения пользователя, привлекательность чересстрочного режима развертки заключается в цене устройств — поскольку для прогрессивной развертки требуется более высокое качество компонентов всего видеотракта, построчная развертка с высокой частотой кадров при режимах высокого разрешения — дорогое удовольствие. Но для профессиональной работы с текстом, графического дизайна и других видов деятельности ухудшение зрения обойдется дороже. Чересстрочная развертка широко применяется в телевидении, где видеосигнал приходится «пропихивать» через радиоканал, с шириной полосы которого всегда имеются проблемы. Современные мониторы и графические адаптеры, применяемые в PC, используют оба режима развертки с различными значениями частоты кадров. Естественно, что работать они должны в согласованных режимах.
Рассмотрев работу конечного устройства (монитора), обсудим способы формирования изображения в графическом адаптере. Итак, у нас имеется матрица точек экрана, образованная горизонтальными строками растра (номер строки — вертикальная координата матрицы) и точками разложения строки (номер точки в строке — горизонтальная координата матрицы). Эта матрица сканируется построчным или чересстрочным образом, и во время прямого хода луча по видимым строкам графический адаптер должен формировать сигналы управления яркостью базисных цветов монитора (или одного сигнала яркости в монохромном варианте). За это время последовательно (и синхронно с ходом луча) должна выводиться информация о яркости и цвете всех точек данной строки. Синхронизация обеспечивается формированием горизонтальных и вертикальных синхроимпульсов. Таким образом, графический адаптер является задающим устройством, а монитор со своими генераторами разверток должен вписаться в заданные параметры синхронизации.
Существуют два основных режима вывода информации — графический и символьный (текстовый). Хотя исторически первые видеосистемы работали в символьном режиме, начать объяснение работы удобнее с графического.
2. Графический режим
В графическом режиме имеется возможность индивидуального управления свечением каждой точки экрана монитора независимо от состояния остальных. Этот режим обозначают как Gr (Graphics) или АРА (All Points Addressable — все точки адресуемы). В графическом режиме каждой точке экрана — пикселу — соответствует ячейка специальной памяти, которая сканируется схемами адаптера синхронно с движением луча монитора. Точнее было бы сказать наоборот — физически движение луча вторично, так как монитор можно и не подключать, а графический адаптер все равно будет сканировать память, но логически вся конструкция строится, исходя именно из поведения монитора. Эта постоянно циклически сканируемая (с кадровой частотой) память называется видеопамятью (Video Memory), или VRAM (Video RAM). Последнее сокращение можно спутать с названием специализированных микросхем динамической памяти, оптимизированной именно под данное применение. Процесс постоянного сканирования видеопамяти называется регенерацией изображения, и, к счастью, этого же сканирования оказывается достаточно для регенерации информации микросхемам динамической памяти, применяемой в этом узле. Для программно-управляемого построения изображений к видеопамяти также должен обеспечиваться доступ со стороны системной магистрали компьютера, причем как по записи, так и по чтению. Количество бит видеопамяти, отводимое на каждый пиксел, определяет возможное число состояний пиксела — цветов, градаций яркости или иных атрибутов (например, мерцание). Так, при одном бите на пиксел возможны лишь два состояния — светится или не светится. Два бита на пиксел доставляли немало удовольствия любителям цветных игрушек даже на адаптерах CGA — можно было иметь одновременно четыре цвета на экране. Четыре бита на пиксел (16 цветов), обеспечиваемые адаптером EGA, были достаточны для многих графических приложений (например, графики в САПРах). Пределом мечтаний в свое время было 256 цветов (8 бит на пиксел) адаптера VGA — цветная фотография розы из комплекта графического редактора Paintbrush на экране монитора казалась великолепной. Сейчас остановились на режимах High Color (16 бит; 65 536 цветов), и True Color — «истинный цвет» — (24 бит; 16,7 миллиона цветов), реализуемых современными адаптерами и мониторами SVGA. 24 бита распределяются между базисными цветами R:G:B поровну (5:5:5 и 8:8:8), 16 бит — с учетом особенностей цветовосприятия неравномерно (5:6:5 или 6:6:4). Логически видеопамять может быть организована по-разному, в зависимости от количества бит на пиксел.
В случае одного или двух бит на пиксел вполне логично, что каждая ячейка (байт) соответствует восьми или четырем соседним пикселам строки (рис. 2). При сканировании ячейка считывается в регистр сдвига, из которого информация о соседних точках последовательно поступает на выходные цепи адаптера. Такой способ отображения называется линейным — линейной последователь-ности пикселов соответствует линейная последовательность бит (или групп бит) видеопамяти.
В адаптере EGA количество бит на пиксел увеличили до четырех и видеопамять разбили на четыре области-слоя, называемых также и цветовыми плоскостями (рис. 8.3). В каждом слое используется линейная организация, где каждый байт содержит по одному биту восьми соседних пикселов. Слои сканируются (считываются в сдвиговые регистры) одновременно, в результате параллельно формируются по четыре бита на каждый пиксел. Такое решение позволяет снизить частоту считывания ячеек памяти — одна операция чтения производится за время прохода лучом восьми пикселов. Забота о снижении частоты считывания понятна — быстродействие памяти ограничено, а ведь в эту память нужно информацию когда-то и записывать. Ячейки слоев, отвечающие за одни и те же пикселы, имеют совпадающий адрес. Это позволяет производить параллельную запись информации сразу в несколько цветовых плоскостей (запись для каждого слоя разрешается индивидуально), что также экономит время. Считывание со стороны магистрали, конечно, возможно только послойное.