Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

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


Формирование битовой карты изображения (ликбез).

Формирование битовой карты изображения (ликбез).

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

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

Дожидаться обратного хода по строке или кадру накладно: строчный период коротких (несколько микросекунд) ин­тервалов обратного хода имеет порядок 25 мкс, а кадровый период длинного (миллисекунды) обратного хода имеет порядок 20 мс, в то время как цикл об­ращения процессора к обычной памяти не превышает сотен (у современных компьютеров — десятков) наносекунд. Так что канал связи процессора с видео­памятью представляет собой узкое горлышко, через которое пытаются протолк­нуть немалый поток данных, причем чем более высокое разрешение экрана и чем больше цветов (бит на пиксел), тем этот поток должен быть интенсивнее.

Можно принципиально сократить объем информации, передаваемой гра­фическому адаптеру, но для этого графический адаптер должен быть наделен «интеллектом».

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

Видеоадаптер.

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

QIP Shot - Image: 2016-11-29 15:03:37 Рис. 1.  Простейший видеоадаптер.

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

- с буферным запоминающим устройством (обычно на кадр) см. рис.1;

- и платы с процессором/ускорителем см. рис. 2.

QIP Shot - Image: 2016-11-29 16:35:18  

Рис. 2. Плата простейшего видеоакселератора.

QIP Shot - Image: 2016-11-29 16:44:38

 Рис. 3. Видеоконтроллер (с рис. 2).

Для сокращения объема информации, передаваемой от Центрального Процессора гра­фическому адаптеру, графический адаптер наделен «интеллектом».

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

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

Команды рисования.

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

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

Копирование блока.

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

Команды ра­боты со спрайтами.

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

Аппаратная поддержка окон.

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

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

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

Вышеописанные функции интеллектуального адаптера относятся к примерам по двумер­ной графике (2D).

Функции построения трехмерных изображений.

Современные графические 3D-адаптеры берут на себя и многие функции построения трехмерных изображений. Не вдаваясь в подробности (это может быть темой отдельной книги), можно сказать, что трехмерное изображе­ние должно состоять из ряда поверхностей различной формы.

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

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

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

Во-первых, это сокращение объема передачи по магистрали.

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

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

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


Лицензия