Проблемы цветопередачи
Цветовую гамму изображения можно расширить только при увеличении количества разрядов, приходящихся на один цвет. Например, стандартный VGA-режим 12h (16 цветов, 640 на 480 точек) использует 4 бита на пиксел (работает метод bit-mapped, 4 битовые плоскости), а режим 13h — 8 бит на пиксел. Количество одновременно воспроизводимых цветов подсчитывается достаточно просто: цифра 2 возводится в степень, равную количеству бит на один пиксел. Теоретически, конечно, объем памяти видеоадаптера можно увеличить до нужных размеров, чтобы использовать требуемое количество разрядов для кодирования цвета, однако в этом случае организация видеопамяти должна соответствовать определенным стандартам. Для персональных компьютеров таких стандартов создано уже несколько. Например, видеоадаптеры поддерживают одновременное воспроизведение 32 768 или 65 536 цветов. Видеорежимы, в которых используются 15 или 16 разрядов для кодирования цвета, называют HighColor. В видеоадаптерах с точной цветопередачей (достаточной даже для обработки профессиональных высококачественных фотографий) применяют 24 -разрядное кодирование цвета, по 8 разрядов на каждую составляющую. В этом случае возможно воспроизведение. 16,8 миллиона цветов одновременно (а точнее, 16 777 216). Такой видеорежим называется TrueColor.
Хотя общий объем памяти и ограничивает количество цветов, которые может создавать видеоадаптер, сам спектр оттенков, получаемых на экране монитора, зависит от используемого RAMDAС. До сих пор мы в основном уделяли внимание разрешающей способности и количеству воспроизводимых цветов, совершенно "забывая" о скорости работы видеоадаптера.
Разр. Спос. | Кол. бит на пиксел | Кол. цветов | Мин. объем видеопамяти, Мб | ||||
640x480 | 4 | 16 | 0,25 | ||||
640x480 | 8 | 256 | 0,50 | ||||
640x480 | 16 | 65 536 | 1,00 | ||||
640x480 | 24 | 16777216 | 1,00 | ||||
800x600 | 4 | 16 | 0,25 | ||||
800x600 | 8 | 256 | 0,50 | ||||
800x600 | 16 | 65536 | 1,00 | ||||
800x600 | 24 | 16777216 | 1,50 | ||||
1024x768 | 4 | 16 | 0,50 | ||||
1024x768 | 8 | 256 | 1,00 | ||||
1024x768 | 16 | 65 536 | 1,50 | ||||
1024x768 | 24 | 16 777216 | 2,50 | ||||
1280x1024 | 4 | 16 | 1,00 | ||||
1280x1024 | 8 | 256 | 1,50 | ||||
1280x1024 | 16 | 65536 | 2,50 | ||||
1280x1024 | 24 | 16 777 216 | 4,00 | ||||
1600x1200 | 4 | 16 | 1,00 | ||||
1600x1200 | 8 | 256 | 2,00 | ||||
1600x1200 | 16 | 65 536 | 4,00 | ||||
1600x1200 | 24 | 16777216 | 6,00 |
Понятно, что чем большее количество, памяти занимает изображение, тем большее число байт необходимо обрабатывать и пересылать на монитор, причем за время, ограниченное прямым ходом кадровой развертки. Следует также
Таблица 6. Объем видеопамяти в зависимости от разрешения и количества цветов
помнить о том, что сама видеопамять — это ресурс, который разделяют между собой микропроцессор системы и видеоконтроллер.
Стоит обратить внимание, что обычная микросхема фрейм-контроллера является, вообще говоря, достаточно пассивным устройством. Все операции по записи и модификации данных в видеопамяти выполняет сам процессор системы. Следовательно, чем быстрее используемый микропроцессор, тем быстрее начинает работать и видеоподсистема компьютера. Однако и здесь существует определенный предел, который связан с конечным быстродействием системной шины, через которую и происходит обмен между процессором и видеоадаптером. Так как, например, системная шина ISA работает на тактовой частоте 8 МГц, использование локальной шины VL-bus с тактовой частотой 50 МГц позволило ускорить работу примерно в 6 раз.
Однако более логичным выходом из сложившейся ситуации было бы использование более "интеллектуального" видеоконтроллера, который смог бы разгрузить основной процессор от некоторых рутинных операций. Стоит отметить, что в настоящее время видеоадаптеры с фрейм-контроллером производятся. Подавляющее большинство видеоадаптеров базируются на так называемых ускорителях; (акселераторах) или, но реже, на графических сопроцессорах.
Акселераторы и графические сопроцессоры повышают быстродействие видеоподсистемы отчасти благодаря сокращению количества информации, передаваемой по системной шине компьютера. Часть изображения может создаваться этими устройствами уже без загрузки основного процессора. Для этого им посылаются специальные команды или даже небольшие подпрограммы (для сопроцессоров). Собственно акселератор представляет из себя специализированный графический сопроцессор, ориентированный на выполнение строго определенного перечня графических операций с ориентацией на конкретные программы и приложения.Соответственно графический сопроцессор — устройство более универсальное, которое можно запрограммировать на выполнение практически любых графических функций. Таким, образом, основная разница между сопроцессором и акселератором состоит в степени их программируемости. Поскольку эти устройства оптимизированы именно для выполнения графических операций, то и все такие операции они выполняют быстрее, чем универсальный микропроцессор, кроме того, работают они с ним параллельно.
Широкое применение Windows подтолкнуло развитие видеоадаптеров с акселераторами, в первую очередь ориентированными именно на эту программную среду. Большинство микросхем акселераторов берет на себя выполнение операций перемещения фрагментов растрового изображения (битовых блоков) BitBlt, рисования линий и многоугольников, закрашивания определенным цветом указанных многоугольников, а также поддержку аппаратного курсора.