Рабочие (супер)станции с использованием универсального вычислителя

Многие вычисления при формировании изображений близки к обработке, требуемой в научных вычислениях (геометрические преобразования, расчеты освещенностей и т.д.).

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

Такой подход был реализован в системе GS2000 фирмы Stardent.


Рис. 7.9. Структура рабочей станции с использованием универсального вычислителя

 

Процессор VFP выполняет координатные преобразования (600 K 3D преобразований в сек), отсечение и вычисление освещенности.

Процессор RP ведет обработку изображений со скоростью 80 Мегапикселов/с. (600 K 3D клиппируемых векторов/с, длиной 10 пикселов и 160 K 100 пиксельных треугольников Гуро c Z-буферизацией).

 

 

Лекция 9. Технические средства КГ

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

9.1 Видеоадаптеры

Важной чертой архитектуры персонального компьютера с позиций графики является то, что контроллер видеосистемы (видеоадаптер) расположен рядом с процессором и опера­тивной памятью и подключен к системной шине через быструю локальную шину. Это дает возможность быстро вести обмен данными между оперативной памятью и видеопамятью (для вывода графических изображений, в особенности в режиме анимации, нужна высо­чайшая скорость передачи данных). В отличие от этого, в больших компьютерах (мейн-фреймах) данные к дисплеям передавались через интерфейс канала ввода-вывода, который работает намного медленнее системной шины. Большие компьютеры, как правило, работа­ли со многими дисплеями, расположенными на значительном расстоянии.

Первый компьютер IBM PC был оснащен видеоадаптером MDA {Monochrome Display Adapter). Видеосистема была предназначена для работы в текстовом режиме — отобража­лись 25 строк по 80 символов в каждой строке.

Через год небольшая фирма Hercules выпустила видеоадаптер Hercules Graphic Card. Он поддерживал также и графический черно-белый режим 720x350.

Следующим шагом был видеоадаптер CGA {Color Graphic Adapter). Это первая цветная модель для IBM PC. Адаптер CGA позволял работать в цветных текстовом или в графиче­ском режимах. Далее мы будем рассматривать только графические режимы видеоадаптеров. Графических режимов для CGA было два: черно-белый 640x200 и цветной 320x200. В цвет­ном режиме можно было отображать одновременно только четыре цвета (2 бита на пиксел).

В 1984 году появился адаптер EGA {Enhanced Graphic Adapter). Это было значительное достижение для персональных компьютеров рассматриваемого типа. Появился графический 16-цветный видеорежим 640x350 пикселов. Цвета можно было выбирать из палитры 64 цветов. В это время начали распространяться компьютерные игры с более или менее каче­ственной графикой и графические программы для работы. Однако шестнадцати цветов явно мало для отображения фотографий, а разрешающая способность недостаточна для графиче­ских пакетов типа САПР. Кроме того, видеорежим 640x350 имеет еще один недостаток — разная разрешающая способность по горизонтали и вертикали — "неквадратные пикселы".

В 1987 году появились видеоадаптеры MCGA {Multi-Color Graphic Array) и VGA {Video Graphic Array). Они обеспечивали уже 256-цветные видеорежимы.

Более популярным стал видеоадаптер VGA. Адаптер VGA имел 256-цветный графиче­ский видеорежим с размерами растра 320x200. Цвета можно было выбирать из палитры в 256 тысяч цветов. Это дало возможность полностью удовлетворить потребности отображе­ния черно-белых (в 256 градациях серого) фотографий. Цветные фотографии отображались достаточно качественно, однако 256 цветов мало, поэтому в компьютерных играх и графи­ческих пакетах активно использовался дизеринг. Кроме того, режим 320x200 тоже имеет разную разрешающую способность по горизонтали и вертикали. Для мониторов, которые использовались в персональных компьютерах типа IBM PC, необходимо, чтобы количество пикселов по горизонтали и вертикали было в пропорции 4:3. То есть, не 320x200, а 320x240. Такого документированного видеорежима для VGA нет, однако в литературе приведен пример, как создать 256-цветный видеорежим 320x240 на видеосистеме VGA. Можно за­программировать видеоадаптер, записав в его регистры соответствующие значения, и полу­чить видеорежим "X" (не путать с XGA).

Видеоадаптер VGA также имеет 16-цветовой видеорежим 640x480. Это соответствует "квадратным пикселам". Увеличение разрешающей способности в сравнении с EGA не очень большое, но ощутимое, что дало новый толчок для развития графических программ на персональных компьютерах.

Дальнейшее развитие видеоадаптеров для компьютеров типа IBM PC связано с увели­чением разрешающей способности и количества цветов. Можно отметить видеосистему IBM 8514, которая была предназначена для работы с пакетами САПР. Начали появляться видеоадаптеры разных фирм, которые обеспечивали сначала видеорежимы 800x600, а по­том и 1024x768 при 16-ти цветах, а также видеорежимы 640x480, 800x600 и более — для 256 цветов. Эти видеоадаптеры стали называть SuperVGA, Чуть позже появился видеоадап­тер IBM XGA.

Первой достигла глубины цвета в 24-6ит фирма Truevision с видеоадаптером Targa 24, что позволило получить на персональных компьютерах IBM PC видеорежим True Color. Такое достижение можно считать началом профессиональной графики на персональных компьюте­рах этого типа. Там, где раньше использовали графические рабочие станции или персональ­ные компьютеры Apple Macintosh, отныне постепенно переходили на более дешевые компью­теры IBM PC. Одной из таких областей было компьютерное "настольное" издательство.

Сейчас на персональных компьютерах используется много типов видеоадаптеров. Все видеосистемы — растрового типа. Они позволяют устанавливать глубину цвета до 32 битов на пиксел при размерах растра 1600x1200 и больше. Существуют стандарты на видеорежи­мы, регламентированные VESA {Video Electronic Standards Association).

Параметры отображения обуславливаются не только моделью видеоадаптера, но и объ­емом установленной видеопамяти. Видеопамять персонального компьютера {VRAM— Video RAM) сохраняет растровое изображение, которое демонстрируется на экране монитора. Изображение на мониторе полностью соответствует текущему содержимому видеопамяти. Видеопамять постоянно сканируется с частотой кадров монитора. Запись новых данных в видеопамять мгновенно изменяет изображение на мониторе. Необходимый объем видеопа­мяти рассчитывается как площадь растра экрана в пикселах, умноженная на количество би­тов (или байтов) на пиксел. Например, для 24-битного видеорежима 1024x768 нужно ви­деопамяти: 24x1024x768 = 18.874.368 битов = 2.25 Мбайт.

В видеоадаптерах первых образцов количество видеопамяти исчислялось килобайтами, например, адаптер CGA имел 16 Кбайт. В современных видеоадаптерах счет идет на мегабайты. Обычно объем видеопамяти кратен степени двойки — 1, 2, 4, 8 Мбайт (в настоя­щее время — от 32 Мбайт и больше). Наблюдается тенденция увеличения объемов видеопа­мяти. Основным фактором здесь уже не является глубина цвета. Видеопамять сейчас исполь­зуется не только как кадровый буфер — она может сохранять текстуры, Z-буфер и т. п.

Адреса, по которым процессор обращается к видеопамяти, находятся в общем адресном пространстве. Например, для многих видеорежимов VGA адрес первого байта видеопамяти равняется А0000. Для некоторых видеорежимов старых образцов используется другой ад­рес, например, В8000 для CGA 320x200. Современные видеоадаптеры обычно поддержи­вают видеорежимы, которые использовались ранее. Это делается для обеспечения возмож­ности функционирование старых программ. Каждый видеорежим имеет собственный номер (код) согласно со стандартом VESA.

Кроме физической организации памяти компьютера — в виде одномерного вектора бай­тов в общем адресном пространстве, необходимо учитывать логическую организацию

 

 

 
 

Рис.9.1. Один байт на пиксел для VGA 320x200

ви­деопамяти. Следует отметить, что названия "физическая" и "логическая" организация могут означать совсем разные вещи для разных уровней рассмотрения. Например, если говорить о физической организации памяти, то она в микросхемах выглядит совсем не как одномерный вектор байтов, а как матрица битов. Логическая организация видеопамяти зависит от видеорежима. В качестве примера на рис. 1.52 приведена логическая организация для видео­режима VGA 256 цветов 320x200 (его код 13h).

 
 

Намного сложнее логическая организация видеопамяти для видеорежима

 

Рис. 9.2. Четыре битовых плоскости для видеорежима 16 цветов 40x480

VGA 16 цве­тов 640x480 (код 12h), которая показана на рис. 9.2.

Каждая битовая плоскость имеет 80 байтов в одном строке. Плоскости имеют одинаковый адрес в памяти, для доступа к отдельной плоскости необходимо уста­навливать индекс плоскости в соответствующем регистре видеоадаптера. Подобный способ организации видеопамяти используется во многих других видеорежимах, он позволяет, на­пример, быстро копировать массивы пикселов.

В этом видеорежиме используются четыре массива байтов памяти. Каждый массив на­зван битовой плоскостью, для любого пиксела используются одинаковые биты данных раз­ных плоскостей. Для хранения нескольких кадров изображения в некоторых видеорежимах предусматри­ваются отдельные страницы видеопамяти с одинаковой логической организацией. Тогда можно изменять стартовый адрес видеопамяти — это приводит к сдвигу изображения на экране. Во всех графических видеорежимах стартовый адрес видеопамяти соответствует левому верхнему пикселу на экране. Поэтому координатная система с центром координат (0, 0) в левом верхнем углу растра часто используется в качестве основной (или устанавли­вается по умолчанию) во многих графических интерфейсах программирования, например, в GDI API Windows.

Обмен данными по системной шине для видеосистемы обеспечивают процессор, видео­адаптер и контроллер локальной шины. До недавнего времени для подключения видеоадапте­ров использовалась локальная шина PCI {Peripheral Component Interconnect local bus). Шина PCI предназначена не только для графики, она является стандартом присоединения разнооб­разнейших устройств, например, модемов, сетевых контроллеров, контроллеров интерфейсов. Эта шина — 32-битная, работает на частоте 33 Мгц, скорость обмена до 132 Мбайт/с.

В настоящее время видеоадаптеры подключаются через локальную шину AGP {Accelerated Graphics Port). Разрядность — 64 бит. На частоте 66 Мгц обеспечивала ско­рость обмена 528 Мбайт/с. Сейчас работает и на более высоких скоростях. Шина AGP была разработана для повышения скорости обмена данными между видеоадаптером и оператив­ной памятью по сравнению с возможностями шины PCI. Это позволяет достичь большей частоты кадров при работе ЗD-акселераторов. Наличие AGP-порта также приводит к росту быстродействия компьютера в целом благодаря уменьшению нагрузки на шину PCI, что да­ет возможность более эффективно использовать последнюю для работы с другими внешни­ми устройствами.

Современные видеоадаптеры представляют собой сложные графические устройства. На плате видеоадаптера (сейчас его часто называют видеокартой) располагается мощный спе­циализированный графический процессор (GPU — Graphic Processor Unit), который по сложности приближается к центральному процессору. Кроме визуализации кадрового бу­фера графический процессор видеоадаптера выполняет как относительно простые растро­вые операции (копирование массивов пикселов, манипуляции с цветами пикселов), так и более сложные. Там, где раньше использовался исключительно центральный процессор, те­перь все чаще применяется графический процессор видеоадаптера, например, для выполне­ния операций графического вывода линий, полигонов. Первые графические процессоры ви­деоадаптеров выполняли преимущественно операции рисования плоских элементов. Со­временные графические процессоры выполняют уже много базовых операций ЗD-графики, например, поддержку Z-буфера, наложение текстур и т. п. Видеоадаптер выполняет эти операции аппаратно, что позволяет намного ускорить их в сравнении с программной реали­зацией данных операций центральным процессором. Так появился термин графические ак­селераторы. Быстродействие таких видеоадаптеров часто измеряется количеством графи­ческих элементов, которые рисуются за одну секунду. Современные графические акселера­торы способны рисовать миллионы треугольников за секунду. Этим "интеллектуальность" видеоадаптеров не ограничивается. Недавно появились модели, которые, кроме относи­тельно простых неизменных базовых операций, способны сами выполнять небольшие про­граммы, которые могут составлять пользователи. Эти программы называются "шейдерами" (shaders). Такие возможности графических акселераторов сейчас активно используются ра­зработчиками компьютерных игр.

На рис.9.3 представим общую структуру современного видеоадаптера.

Рис. 9.3. Общая структура видеоадаптера

Номенклатура видеоадаптеров для персональных компьютеров широка. Несколько при­меров: видеоадаптеры Matrox (качественная двумерная графика), ATI Radeon, NVidia (про­фессиональные и игровые ЗD-акселераторы).

Использование программистами графических возможностей видеосистемы может осу­ществляться по-разному. Во-первых, простейшие операции, такие, как определение графи­ческого видеорежима, вывод пиксела на экран и некоторые другие, поддерживаются BIOS. Во-вторых, можно использовать функции операционной системы. Разные операционные системы могут предоставлять разные возможности. Например, в MS-DOS графических функций почти не было, однако программисту был разрешен свободный доступ ко всем ап­паратным ресурсам компьютера. В быстродействующих графических программах часто ис­пользовался непосредственный доступ к видеопамяти. В отличие от этого, операционная система Windows запрещает прикладным программам непосредственный доступ к аппарат­ным ресурсам, однако можно применять несколько сотен графических функций операцион­ной системы — интерфейс GDI API. В-третьих, можно использовать специализированные графические интерфейсы, которые поддерживают аппаратные возможности современных графических процессоров.

Один из известнейших графических интерфейсов — OpenGL. Этот интерфейс в виде библиотеки графических функций был разработан Silicon Graphics и поддерживается мно­гими операционными системами (в том числе Windows) и производителями графических акселераторов. Интерфейс OpenGL для графического отображения использует взаимодей­ствие типа клиент-сервер.

Другим известным графическим интерфейсом является DirectX. Этот интерфейс разра­ботан Microsoft и предназначен только для ОС Windows.

 








Дата добавления: 2015-01-29; просмотров: 1071;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.