Что такое адаптер и графический акселератор. Графические акселераторы. Что такое клавиатура

Графические акселераторы (ускорители) -- специализированные графические сопроцессоры, увеличивающие эффективность видеосистемы. Их применение освобождает центральный процессор от большого объёма операций с видеоданными, так как акселераторы самостоятельно вычисляют, какие пиксели отображать на экране и каковы их цвета.

Видеоакселераторы

Изображение, которое мы видим на экране монитора, представляет собой выводимое специальным цифроаналоговым преобразователем RAMDAC (Random Access Memory Digital to Analog Converter) и устройством развертки содержимое видеопамяти. Это содержимое может изменяться как центральным процессором, так и графическим процессором видеокарты -- ускорителем двухмерной графики (синонимы: 2D-ускоритель, 2D-акселератор, Windows-акселератор или GDI-акселератор). Современные оконные интерфейсы требуют быстрой (за десятые доли секунды) перерисовки содержимого экрана при открытии/закрытии окон, их перемещении и т. п., иначе пользователь будет чувствовать недостаточно быструю реакцию системы на его действия. Для этого процессор должен был бы обрабатывать данные и передавать их по шине со скоростью, всего в 2-3 раза меньшей, чем скорость работы RAMDAC, а это десятки и даже сотни мегабайт в секунду, что практически нереально даже по современным меркам. В свое время, для повышения быстродействия системы были разработаны локальные шины, а позднее -- 2D-ускорители.

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-вход, модуль для работы с телетекстом и другие функции.

видеопамять пиксель процессор акселератор

История

Одним из первых графических адаптеров для IBM PC стал MDA (Monochrome Display Adapter) в году. Он работал только в текстовом режиме с разрешением 80×25 символов (физически 720×350 точек) и поддерживал пять атрибутов текста: обычный, яркий, инверсный, подчёркнутый и мигающий. Никакой цветовой или графической информации он передавать не мог, и то, какого цвета будут буквы, определялось моделью использовавшегося монитора. Обычно они были чёрно-белыми, янтарными или изумрудными. Фирма Hercules в году выпустила дальнейшее развитие адаптера MDA, видеоадаптер графическое разрешение 720×348 точек и поддерживал две графические страницы. Но он всё ещё не позволял работать с цветом.

Первой цветной видеокартой стала IBM и ставшая основой для последующих стандартов видеокарт. Она могла работать либо в текстовом режиме с разрешениями 40×25 и 80×25 (матрица символа - 8×8), либо в графическом с разрешениями 320×200 или 640×200. В текстовых режимах доступно 256 атрибутов символа - 16 цветов символа и 16 цветов фона (либо 8 цветов фона и атрибут мигания), в графическом режиме 320×200 было доступно четыре палитры по четыре цвета каждая, режим высокого разрешения 640×200 был монохромным. В развитие этой карты появился

Стоит заметить, что интерфейсы с монитором всех этих типов видеоадаптеров были цифровые, MDA и HGC передавали только светится или не светится точка и дополнительный сигнал яркости для атрибута текста «яркий», аналогично CGA по трём каналам (красный, зелёный, синий) передавал основной видеосигнал, и мог дополнительно передавать сигнал яркости (всего получалось 16 цветов), EGA имел по две линии передачи на каждый из основных цветов, то есть каждый основной цвет мог отображаться с полной яркостью, 2/3, или 1/3 от полной яркости, что и давало в сумме максимум 64 цвета.

В ранних моделях компьютеров от IBM PS/2 , появляется новый графический адаптер (приобретена AMD в 2006 г.)

Специализированные

Другие производители

  • PNY Technologies (партнер NVIDIA)
  • 3dfx (приобретена NVidia)
  • XGI Technology Inc. (приобретена ATI в 2006 г.)
  • Литература

    • Скотт Мюллер Модернизация и ремонт ПК = Upgrading and Repairing PCs. - 17 изд. - М.: «Вильямс» , 2007. - С. 889-970 . - ISBN 0-7897-3404-4
    Стандарты видеоадаптеров и мониторов
    Видеоадаптеры
    MDA | CGA | PGC | MCGA | |
    VGA | XGA | XGA+ | SXGA+ |
    Широкоэкранные варианты
    WXGA | WSXGA/WXGA+ |

Каждый пользователь может заметить, что при 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 и другие компании.

Для решения многих задач с использованием компьютера необходима высокока­чественная графика. Изображение такого качества требует вывода на экран боль­шого количества пикселов. Но сначала цвет каждого пиксела нужно вычислить и записать его в видеобуфер. Оттуда информация пересылается в дисплей с такой скоростью, чтобы экран обновлялся по меньшей мере 30 раз в секунду.

Вычисление интенсивности и цвета пикселов может выполняться программ­ным обеспечением. Результирующее изображение следует записать в видеобу­фер, а оттуда переслать на дисплей через шину компьютера. Однако объемы обра­батываемых таким образом данных будут настолько велики, что, если возложить всю их обработку на процессор, у него не останется времени для выполнения дру­гих задач. Кроме того, использование шины компьютера для пересылки содержи­мого видеобуфера на дисплей приведет к тому, что шина также почти полностью будет занята этими данными. Если один пиксел занимает 32 бита, для изображе­ния размером 1024 х 1024 пикселов понадобится 4 Мбайт, и для его пересылки потребуется шина со скоростью передачи не менее 120 Мбайт/с.

В большинстве графических приложений на экран выводятся трехмерные (3D) объекты. В частности, в компьютерных играх создается искусственный трехмер­ный мир с видеоизображениями, формируемыми программным путем. Для их по­лучения требуются очень сложные вычисления, которые лучше всего выполнять на отдельном специализированном процессоре. Такой процессор, называемый GPU (Graphics-Processing Unit - устройство обработки графики), является осно­вой популярных графических плат, установленных в большинстве персональных компьютеров. Кроме процессора графическая плата содержит высокоскоростную память объемом от 8 до 64 Мбайт. Эта память используется графическим процес­сором для выполнения вычислений и хранения результирующего изображения, предназначенного для вывода на экран. Дисплей подключается прямо к графиче­ской плате, так что она может обмениваться с ним информацией без помощи ши­ны компьютера. Высококачественные графические платы могут обновлять экран со скоростью от 75 до 200 раз в секунду.

Графический порт

Графическая плата может соединяться с компьютером посредством шины (напри­мер, PCI). Однако чаще на материнской плате компьютера имеется соединитель­ный слот, называемый AGP (Accelerated Graphics Port - ускоренный графический порт), специально предназначенный для графической платы. Это 32-разрядный порт, поддерживающий более высокую скорость пересылки данных, чем шина PCI. Он известен как AGP 1х, 2х, 4х или 8х, где AGP 1х - это исходный стандарт, определяющий передачу данных со скоростью 264 Мбайт/с. Последние версии стандарта AGP поддерживают в несколько раз большие скорости передачи дан­ных, в частности стандартом AGP 8х устанавливается скорость передача данных, равная 2 Гбайт/с.

Графическая обработка

В компьютерной графике трехмерный объект представляется в виде поверхно­сти, состоящей из большого количества маленьких многоугольников (как прави­ло, треугольников). Основной задачей графической обработки является преобра­зование трехмерного изображения в двухмерное, максимально близкое к тому, каким оно видится человеческим глазом. Для определения проекции и перспекти­ вы объектов требуется вычислять местоположения вершин треугольников, пред­ставляющих разные фрагменты изображения. Далее с помощью сложных алго­ритмов создания реалистичного изображения вычисляются цвета и тени каждого треугольника. При этих вычислениях учитывается расположение источника све­та, его отражение от различных поверхностей, тени и т. п. Важной частью данного процесса является формирование определенной текстуры поверхности, напри­мер древесных волокон или кирпичной кладки. Текстура обычно задается с помо­щью элементов, именуемых текселами (texel). Отдельные треугольники заполня­ются текселами, в результате чего создается впечатление текстурной поверхности объекта. Скрытые части изображения удаляются путем отсечения (clipping). По­следний этап обработки изображения, когда определяется цвет и яркость каждого пиксела, называется самплингом (sampling), а весь вычислительный процесс, в ре­зультате которого трехмерное изображение превращается в набор отправляемых на дисплей пикселов, - визуализацией (rendering).

В случае движущихся изображений все эти вычисления повторяются по многу раз в секунду. Чтобы движение на экране было плавным, пикселы изображения должны пересчитываться как минимум 20 раз в секунду, а лучше 30 или 40. Это значение называется частотой кадров. Скорость выполнения графической платой описанных вычислений характеризуется ее коэффициентом T&L (Transformations and Lighting - преобразование и освещение), равным количеству треугольников, для которых видеокарта может выполнить проецирование, отсечение, освещение и самплинг за одну секунду. Как правило, это значение изменяется в пределах от 10 до 30 млн. треугольников в секунду.

В табл. 10.1 приведены характеристики графической платы RADEON VE про­изводства ATI Corp. Похожими возможностями обладает графический процессор GeForce 2 MX производства «Vidia Corp. Это примеры популярных плат для пер­сональных компьютеров. В профессиональных системах используются более мощные платы с расширенными возможностями. А в ближайшем будущем в этой быстро развивающейся области компьютерной индустрии ожидается появление еще более мощных процессоров.

Таблица 10,1. Графическая плата RADEON VE
Компонент Описание

Микросхема GPU RADEON VE

Шина AGP 4х

Память До 64 Мбайт, DDR SDRAM

Цвет 32 бита, включая 8 бит, зарезервированных для будущего

использования

Число пикселов 2048 х 1536

Коэффициент T&L 30 млн треугольников в секунду

Частота обновления От 75 до 200 раз в секунду в зависимости от установленного

экрана разрешения

Дополнительные Поддержка TV, VCR, DVD, HDTV и MPEG 2

возможности

Программное обеспечение графических плат

Графические платы предназначены для реализации множества сложных функций. Чтобы их использовать, нужно иметь специальное программное обеспечение, раз­работанное для конкретной платы. В этой области очень мало стандартов, и рынок открыт для конкуренции. Таким образом, для улучшения качества изображения недостаточно просто установить в компьютер лучшую графическую плату. Требу­ется специальное программное обеспечение. Очевидно, что назрела необходимость в разработке стандартов программных интерфейсов приложений (Application Programming Interface, API), позволяющих создавать аппаратно-независимое про­граммное обеспечение. И такие стандарты уже начинают появляться. Когда они получат достаточное распространение, программное обеспечение, интенсивно ис­пользующее возможности графики (например, компьютерные игры), сможет кор­ректно работать с графическими платами разных производителей. Примером такого стандарта является OpenGL (Open Graphics Language - открытая графи­ческая библиотека). Ему и подобным стандартам, связанным с различными ас­пектами обработки графики, соответствует все больше графических плат.

Видеоадаптеры VGA (и первые SVGA ) имели ограниченную палитру и низкое разрешение экрана и очень сильно загружали центральный процессор. Причин тому было несколько:

· пассивность графического контроллера при формировании кадрового буфера

· низкое быстродействие видеопамяти

· низкая пропускная способность внутренних шин и интерфейса ввода/вывода

· недостаточное быстродействие и возможности RAMDAC

· выполнение большинства операций в CPU , отсутствие аппаратной поддержки дополнительных функций

Эти недостатки и определили основные направления развития видеоадаптеров, приведших к появлению видеоакселераторов, которых мы сейчас называем видеокартами.

Как мы уже отмечали, RAMDAC аппаратно ограничивает количество цветов до 256, т.к. содержит только 256 регистров цвета. Каждый из них кодируется 8-разрядным числом, что определяет максимальное и минимально необходимый объем видеопамяти в 256 Кбайт (2 8 =256). Большее количество видеопамяти может быть полезно только при большем разрешении. Тут то у производителей и появилась мысль использовать большее разрешение. Одновременно с увеличением объема видеопамяти пришлось использовать новые методы ее адресации, поскольку количество пикселей на экране превысило размер адресного пространства (128 Кбайт). Увеличение объема видеопамяти позволило повысить разрешение, но не привело к улучшению цветности изображения – размер палитры по-прежнему оставался равным 256 цветам.

Больших успехов в улучшении цветности производители добились, после выпуска RAMDAC нового типа:

· новый RAMDAC позволял загружать данные из видеопамяти в выходной регистр ЦАП, минуя 8-разрядные регистры ЦАП – это позволило увеличить количество оттенков до 65536 (режим High Color ), кодируя при этом каждый пиксель 16 битами

· вместо 18-разрядного ЦАП стал использоваться 24-разрядный, что позволило отображать 2 24 =16777216 (True Color )

На базе такого RAMDAC стали выпускаться видеокарты с объемом видеопамяти 1 Мбайт и более. Вместе с объемом видеопамяти возросла и разрядность ее ячеек (16 бит и более), а также разрядность и пропускная способность внутренней шины. Вместо разбиения видеопамяти на банки стала применяться линейная адресация всей видеопамяти. В этой схеме осуществляется переадресация видеопамяти в непрерывную область адресов, расположенную в расширенной (extended ) области памяти. Для интерфейса ISA этот диапазон располагался ниже 16 Мбайт, а для PCI – в любой области расширенной памяти. Поэтому то в CMOS Setup и присутствует опция Memory hole at 15-16 M , для того чтобы никакие программы не могли записывать данные в область видеопамяти.

Но и это коренным образом не решило проблему, т.к. по-прежнему все операции по изменению кадрового буфера выполнял CPU . Для разгрузки CPU и ускорения обработки графики было решено использовать графический сопроцессор, выполняющий аппаратное ускорение графических функций, т.е. выполнение операций без участия CPU . Началась эра графических акселераторов.

Вместе с тем были использованы новые типы динамической памяти и новые шины интерфейса. Ассоциация VESA приняла стандарт SVGA , который определил единый механизм использования аппаратных ресурсов.

Аппаратное ускорение

Графический акселератор, пришедший на смену стандартному видеоадаптеру, является активным устройством и значительно повышает быстродействие всей системы в целом. Это достигается путем использования серьезных преимуществ гр афического процессора (сопроцессора). В такой системе большое количество функций выполняется на аппаратном уровне всего за несколько тактов работы акселератора. Акселератор использует команды высокого уровня для «общения» с остальными подсистемами, что разгружает шину ввода/вывода, т.к. значительно уменьшается поток команд. Кроме того, CPU освобождается от необходимости выполнения и передачи множества элементарных операций с содержимым кадрового буфера.

Акселерация возможна только в графическом режиме. Суть работы акселератора состоит в изменении цифрового образа изображения в видеопамяти по командам из CPU и ряду самостоятельных операций по преобразованию данных. Графический акселератор, в отличие от адаптера VGA , оперирует не пикселями, а так называемыми графическими примитивами, которые состоят из множества пикселов. Используя такие примитивы как треугольник, отрезок, окружность, можно конструировать достаточно сложные изображения значительно проще и быстрее, чем при модификации отдельных пикселов.

Акселератор способен аппаратно ускорять большой ряд операций, среди которых есть и построение трехмерных изображений, основа современной графики:

1. Прорисовка графических примитивов (drawing ). На операциях прорисовки основаны все современные GUI интерфейсы программ и ОС. Параметры примитивов задаются в виде координат в векторном виде. В отличие от растрового представления цифрового изображения они гораздо компактнее и не зависят от используемого разрешения. По координатам легко построить все изображение. К командам прорисовки также относится и простейшая заливка контура (fill ) и заполнение его узором.

2. Перенос блоков изображения на экрану(BitBlt ) . Выполняется при перетаскивании GUI -объектов мышкой, скроллингеи т.п. операций. Данная функция сводится к перемещению блока бит из одной области видеопамяти в другую.

3. Аппаратная поддержка окон (hardware windowing ). Дело в том, что каждое активное приложение в операционной системе отслеживает «свое» открытое окно и его координаты в одном кадровом буфере оперативной памяти. При использовании hardware windowing каждое приложение использует свой «кадровый буфер», равный размеру открытого окна, так что «перенакрывания » окон к памяти не происходит. Выигрыш в скорости обработки координат окон тем больше, чем больше видеопамяти у видеоадаптера.

4. Масштабирование растровых изображений (scaling ). Различают два вида масштабирования: дублирование и интерполяция (сглаживание). Первое сводится просто к увеличению размера пикселя (точнее количества одинаковых пикселей в данной точке), что приводит к появлению таких дефектов изображения как пикселизация и алиасинг . Для устранения этих искажений используется интерполяция. Эти две операции весьма трудоемки и требуют достаточно высокого качества акселератора.

5. Аппаратный курсор. Эта технология обеспечивает аппаратную поддержку курсора мыши. Центральный процессор считывает из порта мыши текущие координаты указателя и посылает их акселератору, а тот в свою очередь, просто формирует изображение курсора в нужном месте экрана. Для формирования изображения курсора применяется технология спрайтов (sprites ) , которые временно заменяют участки растра изображением курсора, а затем при его перемещении в другое место их обратно восстанавливают.

6. Преобразование форматов и декомпрессия. При обработки видеоинформации цифровые RGB -данные заменяются сигналами яркости и цветности в формате YUV , который занимает значительно меньше места. При воспроизведении сжатых видеоданных сначала необходимо каждый кадр декомпрессировать, а затем уже записывать в кадровый буфер.

7. Построение 3 D -изображений. Эта категория операций наиболее обширна и сложна, и их описание займет целую книгу. Основы формирования 3D -изображений мы рассмотрим ниже.

Первые шесть функций реализуются при ускорении 2D . Существуют также видеоадаптеры с аппаратной поддержкой DVD , TV -out , адаптивного деинтерлейсинга , HyperZ , блоки аппаратного обратного преобразования Фурье (IDCT ). Все ускорители можно разделить на графические акселераторы и графические сопроцессоры. Последние , безусловно, являются более универсальными устройствами. Поскольку графический сопроцессор фактически превратился в самостоятельный компьютер, то чипсет, на базе которого сделан графический ускоритель, стали называть графическим процессором.

Видеоадаптер с графическим сопроцессором (GPU ) – это интеллектуальное устройство, основу которого составляет арифметико-логическое устройство (АЛУ).АЛУ фактически представляет собой микропроцессор, работающий по микроинструкциям из собственного ОЗУ. Главное отличие графического сопроцессора от графического акселератора состоит в том, что сопроцессор можно запрограммировать на выполнение различных задач, тогда как ускоритель работает по жесткому неизменному алгоритму. Акселератор состоит из нескольких узкоспециализированных блоков, обеспечивающих аппаратную поддержку только определенных функций. Кроме того, сопроцессор, в отличие от акселератора, является активным устройством, самостоятельно организующим обращения к памяти, управление шиной ввода/вывода. Наиболее ярко это проявляется при использовании шины AGP в режиме DiME , в котором преобразования выполняются не в кадровом буфере, а в системной памяти.

Память для видеоадаптеров

В видеоадаптерах используется динамическая память с произвольным доступом (DRAM ). Этот тип памяти является самым простым и дешевым по исполнению, так как он реализуется на конденсаторах и транзисторах, но требует регенерации (перезарядки).В связи с этим и скорость доступа к ней не очень высока (до 100 нс.). Современные видеоадаптеры оснащаются памятью SDRAM со скоростью доступа не более 10 нс. или более совершенной памятью DDR , время доступа к которой – от 3,5 нс.

Различают однопортовую и двухпортовую память. Последняя позволяет осуществить одновременное выполнение операций чтения и записи данных, так как к ней по двум различным адресам могут одновременно обращаться графический процессор и RAMDAC . К однопортовой относятся FPM , EDO , SDRAM , DDR . В настоящее время в профессиональных видеокартах могут использоваться две разновидности двухпортовой памяти – VRAM и WRAM .

VRAM (Video RAM ) специально разработана для видеосистемы и позволяет одновременно выполнять операции чтения и записи. Естественно, она имеет и соответствующую «профессиональную» цену. Преимущества такой памяти особенно заметны при использовании высокого разрешения и режима True Color . WRAM (Window RAM ) очень похожа на VRAM , но работает на частоте 50 МГц, что увеличивает быстродействие на 50% по сравнению с VRAM . Также здесь реализована технология двойной буферизации, в этой памяти имеется режим быстрой буферизации. Для работы предусмотрены 2 кадровых буфера.

Существует также ряд перспективных типов памяти. Срединих RDRAM, DDR SDRAM, 3D RAM, CDRAM, ESDRAM. 3D RAM предназначена для обработки трехмерной графики. Память является двухпортовой и позволяет осуществлять конвейерную обработку данных. CDRAM представляет собой комбинацию из динамической памяти и скоростного буфера кэширования, выполненного на элементах статической памяти.

3D -акселераторы

Акселераторы трехмерной графики стали высшей степенью развития видеоадаптеров. Они предназначены для моделирования трехмерного изображения и его расчета. Первоначально 3D -акселераторы размещались на отдельных платах и соединялись с видеоадаптером кабелем типа Pass -Trough . Поэтому ускоритель 3D -графики воспринимался как самостоятельное устройство и получил такое название. Все современные видеоадаптеры содержат мощный графический процессор, в состав которого помимо традиционного аппаратного ускорителя 2D -графики, входит 3D -акселератор. Так как термин 3D -акселератор потерял свое первоначальное значение, то все вышеописанное устройство следует называть видеоадаптером с графическим процессором с 3D -акселератором, хотя его иногда называют просто 3D -акселератором.

Синтез 3D- изображений

Как уже было отмечено, описание технологии формирования 3D -изображений очень сложное и займет немало места, поэтому мы рассмотрим только лишь его основы. В общем случае синтез трехмерного изображения включает в себя следующие этапы:

· Конструирование (расчет) объекта на основе его математического описания

· Расчет движения и трансформации его формы

· Моделирование поверхности объекта с учетом различных внешних факторов (освещение, отражение, рельеф)

· Проецирование объекта на плоскость экрана с учетом всевозможных визуальных эффектов

При помощи таких особенностей человеческого зрения как разномасштабность объектов, наложения объектов, использования светотени и эффекта перспективы даже монокулярное изображении создает ощущение объемности.

Процесс расчета трехмерного изображения объекта называется 3 D -конвейером . В нем можно выделить следующие основные этапы:

1. построение геометрической модели поверхности объекта, путем задания опорных точек и уравнений линий (каркаса, wireframe )

2. разбиение поверхности полученного объекта на элементарные плоские элементы, чаще всего треугольники (тесселяция , tessellation ). На этом этапе объект представляет собой совокупность трехмерных координат вершин треугольников (вертексов, vertex )

3. трансформация (transformation ) сводится к преобразованию координат вертексов для моделирования перемещения объекта и изменения его формы

4. расчет освещенности (lighting ) и затенения (shading ) поверхности объекта состоит из расчета освещенности каждого треугольника, но при этом поверхность объекта становится угловатой, состоящей из маленьких плоских граней разной заливки. Для устранения этого дефекта используются различные методы интерполяции

5. проецирование на плоскость экрана использует две существующие координаты точек и запоминает расстояние от вершин до плоскости проецирования в z -буфере

6. обработка координат вершин (triangle setup ) элементарных треугольников представляет собой сортировку вершин и отбрасывание задних невидимых граней (culling )

7. удаление скрытых поверхностей (HSR) – удаление из проецирования невидимых поверхностейобъекта

8. текстурирование , или закраска элементарных треугольников выполняется путем наложения текстур (texture mapping ) – квадратных растровых картинок, состоящихиз текселов на каркас. Это первый этап, выполняемый с растровой графикой, при котором каждый треугольник заменяется частью текстуры, а пиксели – текселами . На этом же этапе применяется MIP -mapping – коррекция перспективы, фильтрация

9. моделирование эффектов прозрачности – коррекция цвета пикселей.

10. антиалиасинг (anti -aliasing ) – устранение дефектов картинки из-за угловатых границ

11. дизеринг (dithering ) – интерполяция недостающих цветов

12. формирование кадра и пост-обработка в кадровом буфере в локальной памяти видеоадаптера

Стоит отметить, что для ускорения процесса создания растрового изображения используется механизм двойной буферизации, заключающийся в том, что в видеопамяти выделяется область для хранения одновременно двух кадров (по сути, два «кадровых буфера»). Построение одного начинается до того, как RAMDAC закончит отображение текущего.

Этапы 1-6 представляют геометрическую стадию 3D -конвейера. Во время этой стадии выполняются интенсивные тригонометрические вычисления, используются числа с плавающей точкой. Эти вычисления в старых видеоадаптерах выполняются в CPU , а в современных мощных – в GPU . Как известно, эра настоящих графических процессоров началась с nVidia GeForce 256 и ATI Radeon 256.

Этапы 7-12 называют рендерингом или прорисовкой. Здесь уже обрабатываются растровые изображения, состоящие из пикселей и текселей . Поэтому этот этап иногда называют растеризацией. Так как этот этап наиболее сложен, то здесь особенно необходимо аппаратное ускорение.

API

Еще одним очень важным фактором, отличающим видеоадаптеры различных фирм, является поддержка адаптером различных интерфейсов прикладного программирования (API ). Надо сразу сказать, что эти API не только унифицируют работу прикладных программ с видеочипсетом , но и увеличивают производительность данной работы. Дело в том, что каждая видеокарта использует свои команды низкого (аппаратного) уровня. Под эти команды и создаются уникальные для каждого производителя драйвера, которые транслируют обращения прикладных программ к устройству. Если создавать графическую программу, учитывая особенности архитектуры каждой возможной видеокарты, то такая программа будет очень громоздкой, её будет тяжело настраивать пользователю под конкретный видеоадаптер, да и программисты не захотят выполнять столько работы. Для этого и был придуман API , который занимает промежуточное положение между высокоуровневыми прикладными программами и низкоуровневыми – драйверами акселератора, унифицирую подход прикладных программ к любым видеоадаптерам. Это означает, что, например, программист, создающий Photoshop , не обязан знать, как обратиться к конкретной видеокарте, а должен лишь знать, как работать с универсальной API .

Существует несколько универсальных API , таких как DirectX и OpenGL . Но также иногда используются так называемые “native API ”, создаваемые производителями непосредственно для своих графических чипсетов. Среди таких можно привести Glide компании 3Dfx (для семейства Voodoo ), MeTAL компании S 3 (для Savage ), RenderGL и другие.

Геометрический процессор стал поддерживаться только в Direct 3D (часть DirectX ) версии 7.0, поэтому более ранние версии использовать не рекомендуется. Впрочем, версия 7.1 поставляется с Windows ME , так что вам следует лишь обновить её до 8.1. Недавно появился DirectX 9.0, но имейте в виду, что он может обеспечивать прирост производительности видеоакселераторов, поддерживающих её на аппаратном уровне (Radeon 9500, 9700, GeForce FX ), кроме того, она пока не очень стабильна, так что без особой нужды DirectX 9.0 ставить не следует.

Архитектура 3D -акселератора

Несмотря на то, что многие видеоадаптеры имеют значительные отличия, помимо описанных в предыдущей статье элементов для формирования изображения, они также имеют несколько базовых элементов, которые обеспечивают аппаратное ускорение этапов 3D -конвейера. Итак, каждый 3D -акселератор имеет на вооружении:

· геометрический процессор (GPU , Geometry Processor )

· механизмпрорисовки (Rendering Engine)

· быструю память

· цифро-аналоговый преобразователь (RAMDAC )

· дополнительные опциональные блоки

Геометрический процессор предназначен для ускорения геометрической стадии 3D -конвейера, которая требует сложных математических расчетов при обсчете вертексов. До чипсетов GeForce и Radeon в дешевых видеокартах использовались геометрические сопроцессоры, которые помогали CPU в расчетах, а иногда и они отсутствовали.

Механизм рендеринга (прорисовки), или как его еще часто называют, конвейер рендеринга является основной частью современного 3D -акселератора и включает в себя, как минимум, два элемента: механизм обработки участков текстур (Texel Engine ) и механизм обработки итогового кадра (Pixel Engine ). Каждый из этих блоков использует свой участок видеопамяти, называемый буфером текстур и кадровым буфером соответственно. Кадровый буфер нам уже знаком, так как он перешел сюда из стандартной архитектуры VGA /SVGA . Появился лишь отдельный буфер для хранения обрабатываемых текстур. Кроме этого, в локальной памяти акселератора обычно выделяется область еще для нескольких буферов. Z -буфер необходим для корректного удаления скрытых поверхностей, a -буфер необходим для выполнения альфа-смещения , а второй кадровый буфер используется при двойной буферизации. Блок рендеринга у некоторых производителей называется TMU (Texture Mapping Unit ) – блок наложения текстур.

Размер кадрового буфера, по аналогии с видеоадаптером VGA , определяет максимально возможное разрешение изображения и размер палитры. В большинстве акселераторов используется метод двойной буферизации, в соответствии с которым кадровый буфер разбивается на две части передний (front buffer ) и задний (back buffer ) буферы. В то время как происходит считывание и построение RAMDAC ’ом изображения из переднего буфера, GPU строит следующий кадр в заднем . Такая «подкачка» обеспечивает плавность смены кадров, ведь после отображения на экране буфер очищается.

Интерфейс 3D- акселераторов

Для лучшей прорисовки кадров необходимо использовать текстуры больших размеров, а для этого требуется не менее 8 Мбайт видеопамяти. Чтобы иметь возможность передавать такой поток данных через свой интерфейс, она должна иметь высокоскоростную шину графического порта. Такойшинойстала AGP (Accelerated Graphics Port). Эта 32-разрядная шина имеет базовую частоту 66 МГц, но может работать в режиме 4x (266 МГц) и передавать 1Гб/с. При этом используется пониженное в 2 раза питание видеокарт 1,5 В , соответственно и видеокарта должна удовлетворять этому критерию. Новый, недавно введенный и пока еще мало используемый, режим 8x (Revision 3.0) реализован в новейших видеоадаптерах. Реально пока ни одна графическая программа не способна использовать его в полной мере.

Стандарт AGP имеет ряд важных особенностей, которые значительно увеличивают эффективную пропускную способность шины. Pipelining – пакетная (конвейерная) передача данных , когда следующий код адреса выставляется на шине сразу, не ожидая появления данных предыдущего адреса, т.е. коды адреса как бы выстраиваются в очередь. Данные последовательность адресов, которых была передана, также пересылаются по шине в виде пакета. В результате, задержка выдачи данных после выставления адреса на шине отсутствует.

Кроме того, в AGP , в отличие от PCI , используется режим SBA (Side Band Addressing ), в котором для передачи адреса используются 8 дополнительных линий, т.е. адрес и данные передаются по разным линиям.

И, наконец, помимо режима DMA в стандарте AGP используется DME (Direct Memory Execution ) – режим, в котором локальная память видеокарты и системная память равноценны и являются одним адресным пространством, так что операции с текстурами могут выполняться как локальной, так и в системной памяти. В этом режиме обмен идет короткими пакетами, так что достигается значительное ускорение операций с текстурами.

Теперь, на основе этой информации можно грамотно выбрать акселератор, о чем речь пойдет в следующем номере, где мы рассмотрим характеристики современных 3D -акселераторов.