- •Структура и состав средств компьютерной графики
- •Технические средства компьютерной графики
- •Принципы формирования графического изображения на экране дисплея
- •Интерфейсные шины
- •Разновидности видеоадаптеров
- •Цвет в компьютерной графике
- •Растровые форматы
- •Векторные и метафайловые форматы
- •Сжатие графических данных
- •Современные графические API-интерфейсы
- •API Microsoft DirectX
- •API OpenGL
- •API Fahrenheit
логического устройства (АЛУ), которое позволяет выполнять некоторые операции с изображением прямо в памяти, не требуя считывания данных процессором. Для этого используются четыре регистровых блока (ROP), поддерживающие шестнадцать регистровых логических операций записи данных; четыре устройства смешивания цветов, позволяющих в заданных пропорциях смешивать цвета новых пикселей с их старыми значениями; аппаратное ускорение ряда режимов в корпусе микросхемы; 32-битный компаратор цвета и интенсивности пикселей и др. DRAM и АЛУ соединены между собой 256-разрядной внутренней шиной. Операции в DRAM, буфере пикселей, АЛУ и видеобуфере могут выполняться параллельно, не задерживая друг друга. Все это позволяет достичь очень высоких результатовприработевЗD-акселераторах.
Разрядность платы видеоадаптера (а точнее, разрядность собственно видеоконтроллера и разрядность шины между контроллером и видеопамятью) имеет большое значение для повышения быстродействия видеоадаптера. В настоящее время применяются 32-, 64- и128-разрядные контроллеры. Существуют различные типы 128-разрядных видеоадаптеров: у одних только сам контроллер 128разрядный; у других - и контроллер, и интерфейс с видеопамятью; у третьих – только интерфейсная шина. Естественно, максимальное быстродействие обеспе- чиваютполностью128-разрядныевидеоадаптеры.
Интерфейсные шины
Несмотря на быстродействие контроллера видеоадаптера, большая часть его возможностей останется неиспользованной, если не будут обеспечены соответствующие каналы обмена информацией между ним, центральным процессором, оперативной памятью компьютера и дополнительными видеоустройствами. Основным каналом передачи данных является интерфейсная шина системной платы, через которую обеспечивается обмен данными с центральным процессором и
18
оперативной памятью. До недавнего времени видеоадаптеры поддерживали, в основном, шины VLB (VESA Local Bus -локальная шина стандарта VESA) либо РСI (Peripheral Component Interconnect - объединение внешних компонентов),
реже они могут настраиваться на одну из них. Однако с появлением процессоров Pentium II и при работе с мультимедиа-приложениями, активно использующими сложную 3D графику, просмотре видеоизображений, Web-навигации по VRML-страницам и т.д. пропускной способности шины PCI стало не хватать на удовлетворение запросоввидеосистемы.
Выходом из создавшегося положения стала разработка фирмой Intel технологии и шины AGP (Accelerated Graphics Port), направленной на увеличение производительности видеосистемы компьютера за счет непосредственного высокоскоростного соединения (минуя шину PCI) графического видеоадаптера и системной памяти. Таким образом, адаптер получил возможность производить обработку данных не в локальной видеопамяти, размещенной на нем самом, а в системной памяти компьютера. Структура AGP-системы на примере платформы Intel Pentium II приведена нарисунке 1.2.
При такой архитектуре, графические приложения, использующие сложную 3D графику, могут избегать частой пересылки данных между видеопамятью и ОЗУ. Вместо этого видеоадаптер может использовать системную память для постоянного хранения данных и обращения к ним по мере необходимости. Скорость передачи данных по шине AGP 2.0 может достигать 1 GBps, что в несколько раз выше теоретической пропускной способности шины PCI. Полная реализация AGP предусматривает конвейеризацию команд ввода/вывода: последующие команды и адреса могут выдаваться до того, как будут возвращены данные, запрошенные предыдущей командой. Кроме того, наличие дополнительных адресных каналов в шине позволяет физически разделить передачу данных и команд, выполняя оба процесса параллельно. Все это дает дополнительное увеличение производительностиграфическойсистемы компьютера.
19
Intel Pentium II |
|
|||
|
|
|
|
|
|
|
Кэш 2-го |
|
Ядро |
|
|
уровня |
|
|
|
|
|
|
|
|
|
|
|
|
Графический |
AGP |
AGPSET |
Системная |
акселератор |
|
память |
Шина PCI
Графический |
I/O |
I/O |
|
акселератор |
|||
|
|
Рисунок 1.2 – СтруктураAGP
Поддержка AGP должна осуществляться параллельно на трех уровнях: ап-
паратном (графические контроллеры и системные платы), программно-системном
(драйверы и операционные системы) и прикладном (программные приложения),
т.е. для получения реального преимущества от применения AGP необходима поддержка со стороны программных средств. Таким образом, AGP представляет значительный шаг вперед в решении проблемы повышения производительности системобработкиизображений.
20
Разновидности видеоадаптеров
Все применяемые в настоящее время видеоадаптеры (часто употребляются названиявидеокарты, видеоплаты) можноразделитьнаследующиегруппы:
-адаптерыскадровымбуфером(фрейм-контроллером);
-графическиеакселераторы(2В-акселераторы) определенныхфункций;
-графическиесопроцессоры;
-ЗD-акселераторы.
Видеоадаптеры с кадровым буфером относятся к самым первым, разра-
ботанным системам формирования графического изображения. В таких адаптерах почти всю работу по формированию и выводу изображения выполняет центральный процессор компьютера, а простейший видеоконтроллер выполняет вспомогательные функции. Подобные адаптеры в настоящее время используются в компьютерахустаревшихобразцов.
В графических 2D-акселераторах ускорение и вывод графического изображения на экран (по сравнению с предыдущим типом) происходит за счет того, что контроллер адаптера может самостоятельно производить некоторые, постоянно повторяющиеся в графических средах, действия, например, прорисовку линий, прямоугольников, перенос части изображения в другое место на экране и др. Обычно для эффективной работы таких адаптеров необходимы специальные программы-драйверы, отличающиеся для разных графических сред и конкретных типов акселераторов. Для полноценной акселерации вывода графики драйвер должен быть способен определять вызовы прорисовки графических примитивов и передавать их непосредственно видеоадаптеру. Использование ненадлежащего драйвера снижает эффективность работы акселератора, так как в этом случае основная работа возлагается снова на центральный процессор. Такие акселераторы иногда называют Windows-акселераторами, хотя в поставку многихизнихвходят драйверыдляподдержкидругихоперационныхсистем.
21
В большинстве подобных акселераторов автоматизированы следующие основныефункции:
-BitBlt (Bit Block transfer) - пересылка битовых блоков. Некоторые области изображения на экране интерпретируются как битовые блоки, которые видеоконтроллер может быстро перемещать между оперативной и видеопамятью либо из одной области экрана в другую. Например, перемещение по экрану пиктограмм Windows илиигральныхкартв«Пасьянсе»;
-прорисовка прямоугольников (например, окна, кнопки, меню в
Windows). Этооднаизнаиболеечастовызываемыхфункцийакселератора;
-прорисовка линий. Драйвер передает видеоконтроллеру только координаты начальнойиконечнойточек, всеостальноеделаетакселератор;
-прорисовка кривых. Некоторые акселераторы позволяют осуществлять прорисовкудуг, окружностей, эллипсов;
-заливка фигур - закраска фигуры определенным цветом или по заданному образцу. Частоиспользуетсяпривыводешрифтовбольшихразмеров;
-расширение цвета. Используется при выводе на экран объектов одного цвета, например, шрифтов. Видеоконтроллеру передаются координаты объекта без задания цвета, т.е. вместо байта при 256-цветном режиме, например, передается бит. Затем отдельно передается значение цвета, которым нужно отобразить объектнаэкране. Этопозволяетсократитьобъемпередаваемых данных;
-поддержка аппаратного курсора. Акселератору передаются только координаты курсора, который при этом становится самостоятельным элементом изображения. Поэтому, при его перемещении, изображение на экране перерисовывать ненужно;
-кэширование шрифтов и вывод текста. Акселератор берет на себя функции по выводу растровых изображений шрифтов. При этом наиболее часто используемые шрифты могут храниться в свободной области видеопамяти (кэшироваться).
22
- графические сопроцессоры и ЗD-акселераторы. На плате таких видео-
адаптеров установлен полноценный процессор, как указывалось ранее. Путем программирования, помимо простой прорисовки графических примитивов, такой процессор позволяет рассчитывать сложные трехмерные изображения и аппаратно реализовывать различные 3D функции, что особенно важно при решении задач САПР, моделировании сложных физических и физиологических процессов, разработке игровых программ. При этом центральный процессор практически не занимается работой по обработке и выводу изображения на дисплей. В настоящее время этот тип видеокарт наиболее широко распространен и быстро развивается. Структурная схема типичного ЗD-акселератора приведена на рисунке1.3.
Наиболее часто ЗD-акселераторы предназначаются для осуществления рендеринга - процесса создания тонированного или текстурированного изображения трехмерной каркасной или твердотельной модели (обычно при заданных условиях освещения и с учетом различных оптических и физических эффектов). С целью ускорения этой процедуры общая область памяти может делиться на ряд блоков: кадровый буфер, z-буфер - для ускорения процесса пересчета координат глубины (координата z), буфер текстур – для обслуживания алгоритмов затенения и нанесения текстуры. В профессиональных устройствах каждый из указанных буферов имеет свой участок памяти (обычно не менее 2 MB). В простых акселераторах все эти буферы могут быть совмещены, тогда контроллер памяти выполняет все необходимые функции работы с видеопамятью, динамически распределяя общую область памяти. Часто используется так называемый механизм двойной буферизации - в то время как одно изображение выводится на экран, второе подвергается рендерингу. Ниже, в качестве примера, приведены характерные параметры современных видеоадаптеров (к началу 2000 года). Максималь-
ное разрешение - от 1600x1200 до 2048x1536:
-частота работы основного чипа (Core CLK) 125 - 200 МГц;
-частота работы памяти (Memory CLK) 125 - 183 МГц;
23
|
|
Аппарат рендеринга |
|
|
Аппарат |
Процессорпикселей |
|
|
Геометрических |
|
|
|
преобразований |
|
|
- |
размеры |
Z-буфер |
Буфер |
|
текстур |
||
- |
перспективы |
|
|
|
|
||
- |
подсветка |
|
|
24
Дисплей
|
|
Контроллер |
|
Контроллер |
|
|
дисплея и |
|
|
Контроллер |
|
|
цифрового |
|
|
кадровый |
|
||
памяти |
|
|
видео |
|
|
буфер |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шинный интерфейс
Рисунок 1.3 – Структурная схема типичного 3D-акселератора
24
