Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Графический режим

В графическом режиме имеется возможность индивидуального управления свечением каждой точки экрана монитора независимо от состояния остальных. Этот режим обозначают как Gr (Graphics) или АРА (All Points Addressable — все точки адресуемы). В графическом режиме каждой точке экрана — пиксе­лу — соответствует ячейка специальной памяти, которая сканируется схемами адаптера синхронно с движением луча монитора. Точнее было бы сказать наоборот — физически движение луча вторично, так как монитор можно и не подключать, а графический адаптер все равно будет сканировать память, но логически вся конструкция строится именно исходя из поведения монитора. Эта постоянно циклически сканируемая (с кадровой частотой) память называется видеопамятью (Video Memory), или VRAM (Video RAM). Процесс постоянного сканирования видеопамяти называется регенерацией изображения. Для программно-управляемого построения изображений к видеопамяти также должен обеспечиваться доступ и со стороны системной магистрали компьютера, причем как по записи, так и по чтению. Количество бит видеопамяти, отводимое на каждый пиксел, определяет возможное число состояний пиксела — цветов, градаций яркости или иных атрибутов (например, мерцание). Так, при одном бите на пиксел возможны лишь два состояния — светится или не светится. Два бита на пиксел позволяют иметь одновременно четыре цвета на экране. Четыре бита на пиксел (16 цветов) были достаточны для многих графических приложений (например, графики в САПРах). Пределом мечтаний в свое время было 256 цветов (8 бит на пиксел) адаптера. Сейчас остановились на режимах High Color (15 бит — 32768 цветов или 16 бит — 65536 цветов), а для профессионалов — True Color — «истинный цвет» (24 бит — 16,7 миллиона цветов), реализуемых современными адаптерами и мониторами SVGA. 15 и 24 бита распределяются между базисными цветами R:G:B поровну (5:5:5 и 8:8:8), 16 бит — с учетом особенностей цветовосприятия неравномерно (5:6:5 или 6:6:4).

Логически видеопамять может быть организована по-разному, в зависимости от количества бит на пиксел.

В случае одного или двух бит на пиксел вполне логично, что каждая ячейка (байт) соответствует восьми или четырем соседним пикселам строки (рис. 4.2). При сканировании ячейка считывается в регистр сдвига, из которого информация о соседних точках последовательно поступает на выходные цепи адаптера. Такой способ отображения называется линейным — линейной последовательности пикселов соответствует линейная последовательность бит (или групп бит) видеопамяти.

При битах на пиксел видеопамять разбивается на четыре области-слоя, называемых также и цветовыми плоскостями (рис. 4.3). В каждом слое используется линейная организация, где каждый байт содержит по одному биту восьми соседних пикселов. Слои сканируются (считываются в сдвиговые регистры) одновременно, в результате чего параллельно формируются по четыре бита на каждый пиксел. Такое решение позволяет снизить частоту считывания ячеек памяти — одна операция чтения производится за время прохода лучом восьми пикселов. Забота о снижении частоты считывания понятна — быстродействие памяти ограничено, а ведь в эту память нужно информацию когда-то и записывать. Ячейки слоев, отвечающие за одни и те же пикселы, имеют совпадающий адрес. Это позволяет производить параллельную запись информации сразу в несколько цветовых плоскостей (запись для каждого слоя разрешается индивидуально), что также экономит время Считывание со стороны магистрали, конечно, возможно только послойное.

 

 

Рис. 4.2. Линейное отображение пикселов в видеопамяти

а — 1 бит на пиксел, б — 2 бита на пиксел

Рис. 4.3. Многослойное отображение пикселов в видеопамяти

В режимах 8, 16 и 24 бит на пиксел также используется линейная организация, но каждый байт (слово или три байта) отвечает уже за цвет одного пиксела. Многоплоскостная организация здесь уже была бы неэффективной.

Вышеописанные варианты организации видеопамяти — и линейный, и многоплоскостной — представляют собой отображение матрицы пикселов экрана на биты видеопамяти — Bit Mapping. Растровый формат хранения изображений, при котором биты так или иначе отображают пикселы, называется битовой картой (BitMap). С точки зрения плотности хранения графической информации этот формат не самый эффективный, но в видеопамяти растрового дисплея вследствие высокого темпа вывода информации при регенерации изображения иной формат неприемлем.

Объем видеопамяти (в битах), требуемый для хранения образа экрана, определяется как произведение количества пикселов в строке на количество строк и на количество бит на пиксел. Если физический объем видеопамяти превышает необходимый для отображения матрицы всего экрана, видеопамять можно разбить на страницы. Страница — это область видеопамяти, в которой умещается образ целого экрана. При многостраничной организации видеопамяти только одна из них может быть активной — отображаемой на экран. Этим страницы принципиально отличаются от слоев, которые отображаются одновременно.

Формирование битовой карты изображения в видеопамяти графического адаптера производится под управлением программы, исполняемой центральным процессором. Сама по себе задача формирования процессору вполне по силам, но при ее решении требуется пересылка большого объема информации в видеопамять, а для многих построений еще и чтение видеопамяти со стороны процессора. Видеопамять большую часть времени занята выдачей информации схемам регенерации изображения в довольно напряженном темпе. От этого процесса она свободна только во время обратного хода луча по строке и кадру, но это меньшая часть времени. Если обращение к активной странице видеопамяти со стороны процессора происходит во время прямого хода и быстродействия схем адаптера недостаточно для того, чтобы это обращение вписалось между соседними выборками процесса регенерации, на экране появится штрих от несчитанной информации пикселов. Если такое обращение происходит часто, на экране появляется «снег», что неприятно. Дожидаться обратного хода по строке или кадру накладно: строчный период коротких (несколько микросекунд) интервалов обратного хода имеет порядок 25 мкс, а кадровый период длинного (миллисекунды) обратного хода имеет порядок 20 мс, в то время как цикл обращения процессора к обычной памяти не превышает сотен (у современных компьютеров — десятков) наносекунд. Так что канал связи процессора с видеопамятью представляет собой узкое горлышко, через которое пытаются протолкнуть немалый поток данных, причем чем более высокое разрешение экрана и чем больше цветов (бит на пиксел), тем этот поток должен быть интенсивнее. Конечно, при выводе статической картинки это вроде и не страшно, но «оживить» изображение оказывается проблематично. Выходов из этого затруднения имеется несколько. Во-первых, повышают быстродействие видеопамяти. Во-вторых, расширяют разрядность шин графического адаптера, причем как внутренней (шины видеопамяти), так и интерфейсной, и применяют высокопроизводительные шины. Расширение разрядности позволяет за один цикл обращения передать большее количество бит данных — повысить производительность. Однако если у адаптера разрядность интерфейсной шины 16 бит, а установлен минимальный объем памяти, при котором используется только 8 бит, то эффективная разрядность интерфейса окажется всего 8 бит. Этим объясняется не совсем очевидный факт, что производительность графического адаптера зависит от объема установленной видеопамяти. В-третьих, повысить скорость видеопостроений можно применением кэширования видеопамяти или теневой видеопамяти, что, по сути, почти одно и то же. В этом случае при записи в область видеопамяти данные будут записаны как в видеопамять, так и в ОЗУ (или даже в кэш), а при считывании из этой области обращение будет только к быстродействующему ОЗУ. И в-четвертых, можно принципиально сократить объем информации, передаваемой графическому адаптеру, но для этого графический адаптер должен быть наделен «интеллектом». В современных компьютерах используются все эти решения.

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

Команды рисования (Drawing Commands) обеспечивают построение графических примитивов — точки, отрезка прямой, прямоугольника, дуги, эллипса. Примитивы такого типа в командах описываются в векторном виде, что гораздо компактнее, чем их растровый образ. Таким образом, удается значительно сократить объем передаваемой графической информации за счет применения более эффективного способа описания изображений. К командам рисования относится и заливка замкнутого контура, заданного в растровом виде, некоторым цветом или узором (pattern). Она ускоряется особенно эффективно: при программной реализации процессор должен просмотреть содержимое видеопамяти вокруг заданной точки, двигаясь по всем направлениям до обнаружения границы контура и изменяя цвет пикселов на своем пути. При этом требуется чтение большого объема данных видеопамяти, их анализ и запись модифицированных данных обратно в видеопамять. Процессор интеллектуального адаптера способен выполнить эту операцию быстро и не выходя с этим потоком данных на внешнюю магистраль.

Копирование блока с одного места экрана на другое применяется для «прокрутки» изображения экрана в разных направлениях. Эта команда сводится к пересылке блока бит — BitBlT (Bit Block Transferring), и эта операция интеллектуальным адаптером может быть сильно ускорена.

Для формирования курсора на графическом экране применяют команды работы со спрайтами. Спрайт (Sprite) — небольшой прямоугольный фрагмент изображения, который может перемещаться по экрану как единое целое. Перед использованием его программируют — определяют размер и его растровое изображение, после этого он может перемещаться по экрану, для чего достаточно только указывать его координаты.

Аппаратная поддержка окон (Hardware Windowing) упрощает и ускоряет работу с экраном в многозадачных (многооконных) системах. На традиционном графическом адаптере при наличии нескольких, возможно перекрывающих друг друга окон программе приходится отслеживать координаты обрабатываемых точек с тем, чтобы не выйти за пределы своего окна. Аппаратная поддержка окон упрощает вывод изображений: каждой задаче выделяется свое окно — область видеопамяти требуемого размера, в котором она работает монопольно. Взаимное расположение окон сообщается интеллектуальному адаптеру, и он для регенерации изображения синхронно с движением луча по растру сканирует видеопамять не линейно, а перескакивая с области памяти одного окна на другое.

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

Вышеописанные функции интеллектуального адаптера относятся к двумерной графике (2D). Современные графические адаптеры берут на себя и многие функции построения трехмерных изображений. Не вдаваясь в подробности (это может быть темой отдельной книги), можно сказать, что трехмерное изображение должно состоять из ряда поверхностей различной формы. Эти поверхности «собираются» из отдельных элементов-полигонов, чаще треугольников, каждый из которых имеет трехмерные координаты вершин и описание поверхности (цвет, узор). Перемещение объектов (или наблюдателя) приводит к необходимости пересчета всех координат. Для создания реалистичных изображений учитывается перспектива — пространственная и атмосферная (дымка или туман), освещенность поверхностей и отражение света от них, прозрачность и многие факторы.

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

По отношению к центральному процессору и оперативной памяти компьютера различают графические сопроцессоры и акселераторы. Графический сопроцессор представляет собой специализированный процессор с соответствующим аппаратным окружением, который подключается к шине компьютера и имеет доступ к его оперативной памяти. В процессе своей работы сопроцессор пользуется оперативной памятью, конкурируя с центральным по доступу и к памяти и к шине. Графический акселератор работает автономно и при решении своей задачи со своим огромным объемом данных может и не выходить на системную шину. Акселераторы являются уже традиционной составляющей частью практически всех современных графических адаптеров. Акселераторы двумерных операций (2D-accelerators), необходимых для реализации графического интерфейса пользователя GUI (Graphic User Interface), часто называют Windows-акселераторами, поскольку их команды обычно ориентированы на функции этой популярной оболочки и операционной системы. Более сложные акселераторы выполняют и трехмерные построения, их называют ЗВ-акселераторами.

Для построения сложных трехмерных изображений графическому акселератору будет явно тесно в ограниченном объеме видеопамяти. Для обеспечения доступа к основной памяти компьютера он должен иметь возможность управления шиной (bus mastering). Специально для мощных графических адаптеров в 1996 году появился новый канал связи с памятью — AGP (Accelerated Graphic Port. Обеспечив высокую пропускную способность порта, разработчики AGP предложили технологию DIME (Direct Memory «Executes»). По этой технологии графический акселератор является мастером шины AGP и может пользоваться основной памятью компьютера для своих нужд при трехмерных построениях. Например, в основной памяти могут храниться текстуры, которые акселератор накладывает на трехмерные поверхности. При этом снимается ограничение на размер описания текстур, которые без AGP приходилось держать в ограниченном объеме видеопамяти.

Итак, мы рассмотрели варианты организации видеопамяти и кратко обсудили способы формирования в ней битовой карты изображения. При регенерации на выходе видеопамяти (или сдвиговых регистров) имеется некоторое количество бит, отвечающих за раскраску текущего выводимого пиксела. Количеством этих бит N определяется максимальное число цветов, присутствующих на экране C=2N. Однако трактовать эти биты можно по-разному. При одном бите на пиксел и монохромном мониторе трактовка в принципе однозначна (светится — не светится), хотя были мониторы, допускающие реверс изображения. При двух битах на точку возможности цветного монитора, у которого можно управлять тремя цветами, используются ограниченно: монитор обеспечивает по крайней мере 8 цветов, а адаптер может выдать только 4. Для смягчения этого дисбаланса применили так называемую технику палитр (Palette). Ее суть заключается в том, что биты одного пиксела, поступающие с видеопамяти, перед выходом в интерфейс монитора проходят через некоторый управляемый преобразователь. Выход этого преобразователя имеет разрядность, поддерживаемую интерфейсом монитора, и биты видеопамяти задают номер цвета в выбранной палитре цветов. Переключив палитру (или перепрограммировав ее набор цветов), можно получить другую гамму цветов на экране, но одновременно будет присутствовать не более 2N цветов.

 

<== предыдущая лекция | следующая лекция ==>
Принципы вывода изображений | Текстовый режим
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 2278; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.