Реферат: Видеоадаптеры
Кстати, технология включения RAM для DAC в графический чипсет не имеет никакого отношения к так называемой Embedded RAM (Встраиваемая память). Последняя используется в качестве локальной памяти (Local Memory), так же называемой буфером кадра.
Во втором режиме RAMDAC оперирует цветовыми данными. В этом режиме (при 16, 24 или 32 бит представлении цвета) данными является RGB цвет. Например, при 16 битном представлении цвета, 5 бит определяют красный (Red), 6 бит зеленый (Green) и 5 бит синий (Blue) цвета. Для зеленого цвета используется больше бит, так как человечиский глаз более чувствителен к зеленому. При 24 или 32 бит представлении цвета, для каждого из цветов используется по 8 бит данных. В этом режиме данные, определяющие цвет, передаются непосредственно в DAC без использования RAM, т.е. не используются загружаемые палитры и данные передаются напрямую из видеопамяти. Так как RAM не задействована, то нет и ограничения в 205 MHz для частоты, на которой работает DAC. Единственным ограничением является максимально возможная скорость работы DAC.
Выбор режима работы RAMDAC происходит так: операционная система Windows95/98/NT или приложение сообщает о требуемом режиме драйверу видеоадаптера, который и переводит RAMDAC в один или другой режим работы. Утилита управления режимами монитора (Display Control Panel) в Windows предоставляет возможность выбора между 8, 16 или 24/32 бит представлением цвета. Это и есть способ, с помощью которого Windows выбирает режим работы RAMDAC. Приложение, которое запускается на полный экран может устанавливать любой, требуемый ему режим, главное, чтобы этот режим поддерживался видеоадаптером.
Операционная система или драйвер делают запрос, чтобы определить разрешение, глубину цвета и частоту обновления экрана. Драйвер может либо реализовать полученный ответ, либо вернуть сообщение, о том, что запрошенный режим не поддерживается или невозможен. В этом случае операционная система или приложение должны попробовать запросить установки другого видеорежима.
Выбор режима работы RAMDAC никак не связан с типом используемой видеопамяти.
Выбор режима, в которм работает RAMDAC, зависит от количества возможных цветов. DAC имеет разрядность 8*8*8 бит, т.е. по 8 бит на каждый RGB цвет, что соответствует способности отображать 16777216 (16М) цветов. При 8 битном представлении цвета, для палитры может использоваться 256 из 16 миллионов возможных цветов. При использовании данных цветовой гаммы (палитры), активными являются только 256 цветов, которые могут отображаться на экране в любой произвольно выбранный момент времени. Впрочем, палитра может быть изменена приложением в любой момент. При 8 битной глубине представления цвета, за загрузку палитры отвечает каждое приложение. При 16 битном цвете, имеется фиксированный набор цветов и для отображения могут использоваться любые цвета из 65536 (64К) доступных. При 24 или 32 битном цвете, DAC может отображать любой из 16 миллионов (16М) возможных цветов.
Каждый пользователь может заметить, что при 8 битном цвете любое графическое изображение смотрится не так хорошо, как при 16 битном представлении цвета. Однако, большинство пользователей не могут заметить разницы при просмотре хорошо сделаного графического изображения в режиме 16 битного и 32 битного представления цвета. Фраза "хорошо сделанное графическое изображение" означает растрирование (dithering - дизеринг) -- процесс смешивания двух соседних цветов, для получения третьего с одновременным обеспечением плавных переходов между элементами изображения. В результате использования технологии растрирования получаются изображения, которые смотрятся практически одинакова в режимах с разной глубиной представления цвета.
Для 16 битного представления цвета требуется в два раза больше памяти, чем для 8 битного, а для 32 битного представления цвета требуется в два раза больше памяти, чем для 16 битного. В связи с тем, что графические адаптеры имеют ограниченные объемы памяти, экономия этого ресурса становится одной из приоритетных задач. Ко всему прочему, отображение 32 битных данных зачастую происходит дольше, чем отображение 16 битных данных. А это уже относится к проблеме производительности, о чем тоже не стоит забывать. Именно поэтому обычному поьзователю стоит использовать 16 битное представление цвета в Windows95/98/NT.
Пользователь или приложение выбирают тот режим представления цвета, который для них наиболее удобен. Текстовый процессор, электронная таблица и 2D игры могут прекрасно работать в режиме 8 битного представления цвета. Видеофильмы, 3D игры и 3D приложения обычно используют 16 битный режим представления цвета, в качестве компромисса между качеством изображения и производительностью. При использовании программ для просмотра высококачественных фотографий, их редактирования, а так же приложений для создания графики лучше всего использовать 24/32 битное представление цвета.
Как же узнать, в каком режиме работает RAMDAC? Если Вы используете Windows, то у Вас есть возможность выбрать глубину представления цвета между режимами 8, 16 или 24/32 бит. В 8 битном режиме используется палитра, т.е. RAMDAC работает со скоростью 205 MHz, во всех других режимах, с другой глубиной представления цвета, палитра не используется и RAMDAC работает со скоростью 220 MHz. Если запускается на выполнение приложение, работающее в полноэкранном режиме (например, в таком режиме работают большинство игр), то тогда само приложение определяет, в каком режиме будет работать RAMDAC. Иногда приложение выбрав режим работы сообщает эту информацию пользователю. Но в большинстве случаев такого не происходит.
Пользователь может узнать, в каком режиме работает RAMDAC, проделав следующие действия: Найдите поверхность, в которой есть плавный переход от одного цвета к другому (как, например в небе у вас над головой). Если переход от одного цвета к другому выглядит так, будто состоит из перемежающихся точек, сильно отличающихся по цвету, значит ваше приложение работает в 8 битном режиме представления цвета. В противном случае, т.е. если переход от одного цвета к другому действительно плавный, ваше приложение работает с другой глубиной представления цвета. При этом, не лишне еще раз напомнить, что средний пользователь не может с уверенностью опредилить, с какой глубиной представления цвета он имеет дело, с 16 или 24/32 бит.
Удостовериться, что заявленные значения скорости работы RAMDAC правда - достаточно просто. Если известно, в каком разрешении вы работаете, например 1024х768, и с какой частотой происходит обновление изображения (refresh rate), например 75 Hz, значит можно узнать какова скорость работы DAC. Скорости в 220 MHz вполне достаточно для отображения в режимах 1280х1024 при 85 Hz и 1600х1200 при 75 Hz. Для режима 1600х1200 при 85 Hz требуется скорость в 250 MHz. Известно, что по Европейским стандартам во всех разрешениях должна поддерживаться частота обновления экрана в 85 Hz, однако лишь немногие модели современных мониторов могут работать в режиме 1600х1200 при 85 Hz.
Напомним известные факты: если частота обновления экрана слишком низкая, то пользователю будет заметно мерцание изображения, в следствии чего можно испортить зрение. Частота обновления экрана в 75 Hz уже достаточно быстрая, чтобы глаз человека мог заметить мерцание. Поэтому, гораздо более разумно сосредоточить внимание на значениях частоты обновления изображения, а не на скорости работы DAC, тем более, что эти значения взаимосвязаны.
Графические акселераторы (ускорители) — специализированные графические сопроцессоры, увеличивающие эффективность видеосистемы. Их применение освобождает центральный процессор от большого объёма операций с видеоданными, так как акселераторы самостоятельно вычисляют, какие пиксели отображать на экране и каковы их цвета. Видеоакселераторы
Изображение, которое мы видим на экране монитора, представляет собой выводимое специальным цифроаналоговым преобразователем RAMDAC (Random Access Memory Digital to Analog Converter) и устройством развертки содержимое видеопамяти. Это содержимое может изменяться как центральным процессором, так и графическим процессором видеокарты — ускорителем двухмерной графики (синонимы: 2D-ускоритель, 2D-акселератор, Windows-акселератор или GDI-акселератор). Современные оконные интерфейсы требуют быстрой (за десятые доли секунды) перерисовки содержимого экрана при открытии/закрытии окон, их перемещении и т. п., иначе пользователь будет чувствовать недостаточно быструю реакцию системы на его действия. Для этого процессор должен был бы обрабатывать данные и передавать их по шине со скоростью, всего в 2-3 раза меньшей, чем скорость работы RAMDAC, а это десятки и даже сотни мегабайт в секунду, что практически нереально даже по современным меркам. В свое время для повышения быстродействия системы были разработаны локальные шины, а позднее — 2D-ускорители, которые представляют собой специализированные графические процессоры, способные самостоятельно рисовать на экране курсор мыши, элементы окон и стандартные геометрические фигуры, предусмотренные GDI — графической библиотекой Windows. 2D-ускорители обмениваются данными с видеопамятью по своей собственной шине, не загружая системную шину процессора. По системной шине 2D-ускоритель получает только GDI-инструкции от центрального процессора, при этом объем передаваемых данных и загрузка процессора в сотни раз меньше.
Современные 2D-ускорители имеют 64- или 128-разрядную шину данных, причем для эффективного использования возможностей этой шины на видеокарте должно быть установлено 2 или 4 Мбайт видеопамяти соответственно, иначе данные будут передаваться по вдвое более узкой шине с соответствующей потерей в быстродействии.
Можно сказать, что к настоящему моменту 2D-ускорители достигли совершенства. Все они работают столь быстро, что несмотря на то, что их производительность на специальных тестах может отличаться от модели к модели на 10-15%, пользователь, скорее всего, не заметит этого различия. Поэтому при выборе 2D-ускорителя следует обратить внимание на другие факторы: качество изображения, наличие дополнительных функций, качество и функциональность драйверов, поддерживаемые частоты кадровой развертки, совместимость с VESA (для любителей DOS-игр) и т. п. Микросхемы 2D-ускорителей в настоящее время производят ATI, Cirrus Logic, Chips&Technologies, Matrox, Number Nine, S3, Trident, Tseng Labs и другие компании.
Под мультимедиа-акселераторами обычно понимают устройства, которые помимо ускорения обычных графических операций могут также выполнять ряд операций по обработке видеоданных от разных источников.
Прежде всего, это функции по ускорению вывода видео в форматах AVI, Indeo, MPEG-1 и других. Проблема в том, что видеофильм в формате NTSC идет со скоростью 30 кадров в секунду, PAL и SECAM — 25 кадр/с. Скорость смены кадров в цифровом видео перечисленных форматов также меньше или равна 30 кадр/с, однако разрешение изображения редко превышает 320 x 240 пикселов. При этих параметрах скорость поступления информации составляет порядка 6 Мбайт/с и процессор успевает выполнить ее декомпрессию и пересылку по шине в видеопамять. Однако такой размер изображения слишком мал для комфортного просмотра на экране, поэтому его обычно масштабируют на весь экран. В этом случае скорость потока данных возрастает до десятков и сотен мегабайт в секунду. Это обстоятельство привело к появлению видеоакселераторов, которые умеют самостоятельно масштабировать видео в форматах AVI и MPEG-1 на весь экран, а также выполнять сглаживание отмасштабированного изображения, чтобы оно не выглядело, как набор квадратиков. Подавляющее большинство современных 2D-ускорителей являются в то же время и видеоускорителями, а некоторые, например ATI Rage128, умеют воспроизводить и видео в формате MPEG-2 (т. е. с исходным разрешением 720 х 480).
К мультимедиа-функциям также относят аппаратную цифровую компрессию и декомпрессию видео (что почти не встречается на массовых видеокартах), наличие композитного видеовыхода, вывод TV-сигнала на монитор, низкочастотный видеовход и высокочастотный TV-вход, модуль для работы с телетекстом и другие функции.
Видеоакселераторы
3D-акселераторы
Когда в роли двигателя прогресса выступили компьютерные игры, 2D-ускорители (см. Видеоакселераторы) почти исчерпали свои возможности, и эволюция видеокарт пошла по пути наделения их все более мощными средствами ускорения трехмерной машинной графики. Видеоадаптеры, способные ускорять операции трехмерной графики, получили название 3D-ускорителей (синонимом является 3D-акселератор, а также часто встречаемое жаргонное «3Dfx» для обозначения всех 3D-ускорителей, а не только произведенных компанией 3Dfx Interactive). Вообще, 3D-ускорители существовали и раньше, но областью их применения было трехмерное моделирование и САПР, стоили они очень дорого (от 1 до 15 тыс. долларов) и были практически недоступны массовому пользователю.
Какие же действия ускоряет 3D-акселератор? В компьютере трехмерные объекты представляются с помощью геометрических моделей, состоящих из сотен и тысяч элементарных геометрических фигур, обычно треугольников. Задаются также пространственное положение источников света, отражательные свойства материала поверхности объекта, степень его прозрачности и т. п. При этом некоторые объекты могут частично загораживать друг друга, между ними может переотражаться свет; пространство может быть не абсолютно прозрачным, а затянутым туманом или дымкой. Для большего реализма необходимо учесть и эффект перспективы. Чтобы поверхность смоделированного объекта не выглядела искусственной, на нее наносится текстура — двухмерная картинка небольшого размера, передающая цвет и фактуру поверхности. Все перечисленные трехмерные объекты с учетом примененных к ним эффектов должны в конечном итоге быть преобразованы в плоское изображение. Эту операцию, называемую рендерингом, и выполняет 3D-ускоритель.
Перечислим наиболее распространенные операции, которые 3D-ускоритель выполняет на аппаратном уровне:
Удаление невидимых поверхностей. Обычно выполняется по методу Z-буфера, который заключается в том, что проекции всех точек трехмерной модели объекта на плоскость изображения сортируются в специальной памяти (Z-буфере) по расстоянию от плоскости изображения. В качестве цвета изображения в данной точке выбирается цвет той точки в Z-буфере, которая наиболее близка к плоскости изображения, а остальные точки считаются невидимыми (если не включен эффект прозрачности), так как они загорожены от нас самой первой точкой. Эта операция выполняется подавляющим большинством 3D-ускорителей. В большинстве современных ускорителей предусмотрены 16-разрядные Z-буферы, размещаемые в видеопамяти на плате.
Закрашивание (Shading) придает треугольникам, составляющим объект, определенный цвет, зависящий от освещенности. Бывает равномерным (Flat Shading), когда каждый треугольник закрашивается равномерно, что вызывает эффект не гладкой поверхности, а многогранника; по Гуро (Gouraud Shading), когда интерполируются значения цвета вдоль каждой грани, что придает криволинейным поверхностям более гладкий вид без видимых ребер; по Фонгу (Phong Shading), когда интерполируются векторы нормали к поверхности, что позволяет добиться максимальной реалистичности, однако требует больших вычислительных затрат и в массовых 3D-ускорителях пока не используется. Большинство 3D-ускорителей умеет выполнять закрашивание по Гуро.
Отсечение (Clipping) определяет часть объекта, видимую на экране, и обрезает все остальное, чтобы не выполнять лишних расчетов.
Расчет освещения. Для выполнения этой процедуры часто применяют метод трассировки лучей (Ray Tracing), позволяющий учесть переотражения света между объектами и их прозрачность. Эту операцию с разным качеством умеют выполнять все 3D-ускорители.