Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Общие сведения о компьютерной графике.docx
Скачиваний:
8
Добавлен:
20.08.2019
Размер:
1.34 Mб
Скачать

1.6. Получение изображения на растровом дисплее

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

Простой буфер регенерации содержит по 1 биту на пиксели, таким образом, определяет двухцветное (черно-белое) изображение. Задача системы вывода изображения состоит в циклическом просмотре буфера регенерации по строкам, обычно от 30 до 100 раз в секунду. Адреса памяти генерируются синхронно с ко­ординатами растра, и содержимое выбранных элементов памяти используется для управления интенсивностью электронного луча (рис. 1.10).

Генератор растровой развертки формирует сигналы отклонения и управляет адресными X- и Г-регистрами, определяющими следующий элемент буфера регенерации.

В начале цикла регенерации в Х-регистр записывается 0, а в У-регистр — N - 1 (верхняя строка растра). Пока регенерируется первая строка растра, Х-адрес точки увеличивается до М - 1, при этом значение каждого пиксела извлекается из памяти и используется для управления интенсивностью электронного луча. После генерации первой строки растра в Х-адрес опять записывается 0, а Y-адрес уменьшается на 1. Этот процесс продолжается до генерации последней стро­ки растра * 0). По окончании сканирования растра система вырабатывает сигнал прерывания. Компьютер может произвести изменения в хранящемся в памяти изображении. Для этого у него есть время обратного хода (около 1 мс), в течение которого электронный луч перемещается из правого нижнего угла в левый верхний.

Каждый полный проход сканирующего луча по экрану дает неподвижную картинку, или кадр. За одну секунду генерируется от 30 до 100 таких кадров. Вследствие генерации зрительного восприятия последовательность постепенно меняющихся кадров может передавать движение плавно, без скачков. Однако даже при такой частоте картинка кадра на экране немного мерцает. Этот нежелательный эффект обычно устраняют чередованием строк каждой пары последовательных кадров.

При реализации метода чередования строк на экран выводится, например, не 30, а 60 кадров за одну секунду, то есть в два раза больше. Электронный луч проходит по нечетным строкам, формируя первый кадр, второй же кадр после возвращения луча в левый верхний угол экрана создается сканированием по четным строкам.

Для получения двухцветного, например черно-белого, изображения достаточно одного бита на пиксел. Он принимает значение 0 (пиксел выключен) или 1 (пиксел включен). Двухцветных изображений обычно недостаточно, и возникает необхо­димость использовать яркость (в случае двухцветного полутонового изображения) или цвет. Дополнительные возможности можно получить, храня для каждого пик­села несколько бит (два бита — четыре яркости и т. д.). Эти биты могут использо­ваться для управления не только яркостью, но и цветом.

Сколько бит должен содержать пиксел, чтобы изображение воспринималось наблюдателем как имеющее непрерывные уровни тона? Часто бывает достаточно 5 или 6, но может потребоваться и 8. Таким образом, можно будет получить соответственно 25, 2е или 2е тонов яркости. Для цветных дисплеев требуется в три раза больше бит — по 8 на каждый из основных цветов (красный, зеленый и синий).

Второй путь — включение в состав системы регенерации растровых дисплеев таблицы цветов. Значение пиксела не направляется сразу на ЦАП схемы управления яркостью, как в предыдущем случае, а используется как индекс в таблице цветов. Для управления яркостью или цветом применяется значение, извлеченное из таблицы по этому индексу (рис. 1.11).

Например, значение пиксела 67 привело бы к извлечению из таблицы элемента с номером 67 и использованию его для управления электронным лучом. Эта операция поиска в таблице выполнялась бы для каждого пиксела в каждом цикле регенерации. Поэтому доступ к таблице должен быть очень быстрым. На рис. 1.11 каждый пиксел содержит бит (N = 8), а элемент таблицы цветов — К бит (К = 12). Тем самым для двухцветных дисплеев в первом случае определены 21 уровней яркости, а во втором — 2К. В случае цветной картинкиК бит разбиваются на три равные группы, управляющие красным, зеленым и синим цветами.

В качестве примера можно рассмотреть процесс получения 256 цветов режима VGA (рис. 1.12).

При получении 256 цветов VGA берет четырех- или восьмибитные значения из видеопамяти и переводит их в трех- или шестибитные числа (R, G, В), которые переводятся в аналоговый сигнал, подающийся на монитор. ОЗУ палитры и регистры цифро-аналогового устройства (ЦАП) можно устанавливать либо напрямую, либо через BIOS. Но при одновременной перезагрузке большого блока регистров ЦАП происходит мигание. Эта проблема решается, если один раз переустановить цвета в начале программы. Но при быстром изменении цветов для создания спецэффектов это становится проблемой. Решить ее можно, если менять регистры напрямую Правильно чередуя цвета, можно легко имитировать эффект плавного движения, не тронув при этом ни один байт дисплейной программыНапример, легко изобразить закат, последовательно чередуя цвета от самых ярких внизу к самым темным вверху. Аналогично просто изобразить течение реки. Это удобно при создании реалистичных эффектов трехмерной анимации. ЦАП желательно перезагружать только между кадрами, иначе на экране будет появляться снег. И хотя при однократной установке снежинки можно и не заметить, но при постоянной перезагрузке регистров снег превращается в сильную метель.

1