50 Часть I. Основы компьютерной графики Глава 1. Основные

advertisement
50 ____________________________________Часть I. Основы компьютерной графики
Глава 1. Основные понятия
одинаковом расстоянии, или штрихами одинаковой толщины с переменной
густотою расположения. Такие способы используют особенности человеческого зрения и в первую очередь — пространственную интеграцию. Если
достаточно близко расположить маленькие точки различных цветов, то они
будут восприниматься как одна точка с некоторым усредненным цветом.
Если на плоскости густо расположить много маленьких разноцветных точек,
то будет создана визуальная иллюзия закрашивания плоскости некоторым
усредненным цветом. Однако если увеличивать размеры точек и (или) расстояние между ними, то иллюзия сплошного закрашивания исчезает —
включается другая система человеческого зрения, обеспечивающая нашу
способность различать отдельные объекты, подчеркивать контуры.
В компьютерных графических системах часто используют эти методы. Они
позволяют увеличить количество оттенков цветов за счет снижения пространственного разрешения растрового изображения. Иначе говоря— это
обмен разрешающей способности на количество цветов. В литературе по
компьютерной графике такие методы растрирования получили название
dithering (дрожание, разрежение).
ловек воспринял это как сплошной оттенок, необходимо, чтобы угловой размер ячеек был меньше одной угловой минуты. Можно изменять положения
таких ячеек в растре, располагая их, например, по диагонали. Это несколько
лучше, но не намного.
Простейшим вариантом дизеринга можно считать создание оттенка цвета
парами соседних пикселов.
Если рассмотреть ячейки из двух пикселов (рис. 1.36), то ячейка номер 1 дает
оттенок цвета
С = (С,+С2)/2,
где С\ и С2 ■— цвета, которые графическое устройство способно непосредственно воспроизвести для каждого пиксела. Числовые значения С, С\ и С2
можно рассчитать в полутоновых градациях или в модели RGB — отдельно
для каждой компоненты.
0
О
С2
1
2
Рис. 1.36. Ячейки из двух пикселов
С,
С
С2
Рис. 1.37. Простейший дизеринг
12
4
Чаще используют квадратные ячейки больших размеров. Дадим пример ячеек
размером 2><2 (рис. 1.38).
Такие ячейки дают 5 градаций, из них три комбинации (1, 2, 3) образуют новые оттенки.
0
2
i
::::3 ::::" 0
2
3
Ш" ■■■■
1
1
lliii"
21
13
! Рис. 1.40. Ячейки 5><5 дают
7 25
Рис. 1.39. Ячейки 3><3 представляют 10 градаций
26 градаций
Расчет цвета, соответствующего одной из
комбинаций пикселов в ячейке, можно выполнить таким образом. Если
пикселы ячейки могут быть только двух цветов (С, и С2), то необходимо
подсчитать часть площади ячейки для пикселов каждого цвета. Цвет ячейки
(С) можно оценить соотношением
S^+iS-S^C,
5jCj + S2C2
S'
где S— общая площадь ячейки; S\ и S2 — части площади, занятых пикселами
цветов С\ и С2 соответственно, причем S] + S2 = 5". Проще всего, когда пикселы квадратные, а их размер равен шагу размещения пикселов. Примем
площадь одного пиксела за единицу. В этом случае площадь, занимаемая
пикселами в ячейке, равна их количеству (рис. 1.41).
с
Пример растра с использованием ячеек из двух пикселов приведен на рис.
1.37. Как видим, для создания промежуточного оттенка С ячейки образовывают вертикальные линии, которые очень заметны. Для того чтобы че-
3
Рис.1.38. Ячейки 2x2
С=
С,
51
'
5 = 25, S] =20, S2=S,
С = (20 С, + 5С2)/25.
Рис. 1.41. Здесь площадь определяется количеством пикселов
Часть I. Основы компьютерной графики
52
Для ячейки 5x5, изображенной на рис. 1.41, дадим расчет цвета С для некоторых цветов С] и С2. Пусть С\— белый цвет (R|G|B,) = (255, 255, 255), а С2
— черный (R2G2B2) = (0, 0, 0), тогда
Л
(SlRl+S2R2)/S
R
СG
В
=
(SiGl+S2G2)/S
(5,5, +S2B2)/S
204
=
204
1 204
J
то есть мы получили светло-серый цвет.
Еще пример. Если С\— желтый (R,G]Bi) = (255, 255, 0), а С2— красный
(R2G2B2) = (255, 0, 0), то С = (255, 204, 0). Это оттенок оранжевого цвета.
Следовательно, если в ячейке размерами пхп использованы два цвета, то с
помощью этой ячейки можно получить и +1 различных цветовых градаций.
Две комбинации пикселов — когда все пикселы ячейки имеют цвет С] или С2
■— дают цвет ячейки соответственно С\ или С2. Все иные комбинации дают
оттенки, промежуточные между С\ и С2.
Можно считать, что ячейки размером п *п образовывают растр с разрешающей способностью в п раз меньшей, чем у исходного растра, а глубина цвета
возрастает пропорционально я2. Для характеристики изображений, которые
создаются методом дизеринга, используют термин лшшатура растра. Линиатура вычисляется как количество линий (ячеек) на единицу длины — сантиметр, миллиметр, дюйм. В последнем случае единицей измерения для линиатуры является Ipi (по аналогии с dpi).
Как реализовать метод дизеринга в графической системе? Рассмотрим примеры преобразования растрового изображения размером pxq с определенной
глубиной цвета в другой растр, предназначенный для отображения с помощью графического устройства, в котором используется ограниченное количество основных цветов. В таком случае нужно выбрать размеры ячейки
»7><и, которые обеспечивают достаточное количество цветовых градаций.
Затем каждый пиксел растра превращается в пиксел растра отображения. Это
можно осуществить двумя способами.
Глава 1. Основные понятия
3. По цвету пиксела находим номер (к) ячейки, наиболее адекватно представляющей этот цвет.
4. По координатам (х,у) вычисляем координаты пиксела внутри ячейки:
Хк - х mod m; yk=y mod п.
5. Находим цвет (С) пиксела ячейки с координатами (хк1ук).
6. Записываем в растр отображения пиксел (х,у) с цветом С.
Такой способ можно использовать не для любых вариантов расположения
пикселов в ячейках. Конфигурации пикселов должны быть специально разработаны для таких преобразований. Одно из требований можно сформулировать так. Если ячейки разработаны на основе двух цветов, например, белого и черного, а градации изменяются пропорционально номеру ячейки, то
необходимо, чтобы ячейка с номером (/) для более темной градации серого
содержала бы все черные пикселы ячейки номер (/ - 1).
Рассмотрим пример изображения, созданного на основе ячеек 5 х5.
Для создания такого изображения специально была выбрана небольшая разрешающая способность, чтобы подчеркнуть структуру изображения. Ячейки
образовывают достаточно заметный квадратный растр (рис. 1.42).
Рис. 1.42. Пример квадратного растра с ячейками 5*5
Для улучшения восприятия изображения можно использовать иное расположение ячеек, например, диагональное (рис 1.43).
Первый способ. Каждый пиксел заменяется ячейкой из т><п пикселов. Это
самое точное преобразование по цветам, но размер растра увеличивается и
равен mp*nq пикселов.
Второй способ. Размер растра в пикселах не изменяется, если пиксел растра
отображения образовывается следующим образом:
1. Определяем координаты пиксела (х, у) для преобразуемого растра.
2. Находим цвет пиксела (х, у).
53
Рис. 1.43. Диагональное расположение ячеек 5Х5
54
Часть I. Основы компьютерной графики
Глава 1. Основные понятия
55
Диагональное расположение можно получить, если сдвигать четные строки
ячеек (рис. 1.44).
Координаты пикселов ячеек можно вычислять следующим образом:
s=
~\ mod 2
Рис. 1.47. Набор ЧМ-ячеек 5*5
т
2
Для изображений, созданных методом ЧМ-дизеринга, наблюдается меньшая
заметность растровой структуры (рис. 1.48).
х/с- (х-s) mod m,
У к у mod п.
=
Для того чтобы получить диагональную структуру растра подобную той, что
используется для печати газет, можно использовать квадратное расположение ячеек другого типа (рис. 1.45).
l::::::l
111 ■!-! 11
Ui'Ji I i111 111 11-
-4)'[Г'Т"'|-414
Рис. 1.48. Диагональное расположение ЧМ-ячеек 5*5
::::::::
Рис. 1.44. Пример диагонального
размещения ячеек
Рис. 1.45. Еще один пример
диагональной структуры
Вы, наверное, уже заметили, что для всех приведенных выше примеров дизеринга ячейки образовывают точки переменного размера с постоянным шагом.
Однако часто используется иной подход — переменная густота расположения точек постоянного размера. Такой способ получил название частотной модуляции (ЧМ) (рис. 1.46).
Рис. 1.46. ЧМ-ячейки 6><6
Положительная черта способа ЧМ — меньшая заметность структуры растра.
Однако его использование затруднено в случае, когда размер пикселов больше, чем их шаг. Начиная с определенной густоты, пикселы смыкаются. Кроме того, на дискретном растре невозможно обеспечить плавное изменение
густоты (частоты), в особенности для ячеек небольшого размера. Рассмотрим
пример ячеек 5 *5, реализующих ЧМ-дизеринг (рис. 1.47).
Однако при регулярном расположении одинаковых ячеек всегда образовывается текстура, муар, лишние контуры. Одна из важных задач — разработка
таких вариантов ячеек, которые предопределяют наименее заметную растровую структуру (кроме тех случаев, когда, наоборот, такую структуру нужно
подчеркнуть для создания изображения в стиле гравюры). Это довольно
сложная задача.
Один из способов создания достаточно качественных изображений — это
диффузный дизеринг (diffused dithering). Суть его в том, что ячейки создаются случайно (или псевдослучайно). Если для каждой градации создавать случайные ячейки, то даже для фрагмента растра пикселов с постоянным цветом
не будут образовываться регулярные структуры. Это соответствует диффузному отражению света от матовой поверхности.
1.5. Эволюция
компьютерных видеосистем
Компьютерные видеосистемы рассмотрим на примере персональных компьютеров класса IBM PC. Первый персональный компьютер фирмы IBM появился в 1981 году. Сейчас уже можно сказать, что появление как раз этого
компьютера привело к значительному распространению персональных компьютеров. Некоторые особенности архитектуры IBM PC сохранены и по сей
День (рис. 1.49).
Часть I. Основы компьютерной графики
56
Процессор Оперативная память
(RAM)
Системная шина
I
Локальная шипа Локальные шипы, интерфейсы
Видеоадаптер
Видеопамять
Другие блоки
Другие устройства компьютера
Монитор
Рис. 1.49. Общая упрощенная структура
персонального компьютера
Одной из таких особенностей, которые выгодно отличали его от других персональных компьютеров, является открытость архитектуры. Это означает
гибкие возможности подключения разнообразных устройств, простоту модернизации компьютера. Важным фактором была цена— для IBM PC она
была меньшей, чем, например, для компьютеров Apple, которые были лучше
по другим показателям (в первую очередь, по графическим возможностям).
Кроме того, с самого начала пользователям компьютеров семейства IBM PC
были доступны разнообразные средства программирования — миллионы
пользователей получили возможность сами разрабатывать программное
обеспечение. Все это привело к массовому распространению таких компьютеров, использованию в разнообразных областях.
Важная черта архитектуры персонального компьютера с позиций графики —
то, что контроллер видеосистемы (видеоадаптер) расположен рядом с процессором и оперативной памятью, так как подключен к системной шине через
скоростную локальную шину. Это дает возможность быстро вести обмен
данными между оперативной памятью и видеопамятью. Для вывода графических изображений, в особенности в режиме анимации, нужна самая высокая
скорость передачи данных. В отличие от этого в больших компьютерах
(мэйнфреймах) данные к дисплеям передавались через интерфейс канала
ввода-вывода, который работает намного медленнее, чем системная шина.
Большие компьютеры, как правило, работают со многими дисплеями, расположенными на значительном расстоянии.
Первый компьютер IBM PC был оснащен видеоадаптером MDA (Monochrome
Display Adapter). Видеосистема была предназначена для работы в текстовом
режиме — отображалось 25 строк по 80 символов в каждой строке.
Глава 1. Основные понятия
57
Год спустя небольшая фирма Hercules выпустила видеоадаптер Hercules
Graphic Card. Он поддерживал также и графический черно-белый режим
720x348.
Следующим шагом был видеоадаптер CGA (Color Graphic Adapter). Это первая цветная модель для IBM PC. Адаптер CGA позволял работать в цветном
текстовом или графическом режимах. Далее мы будем рассматривать только
графические режимы видеоадаптеров. Графических режимов для CGA было
два: черно-белый 640x200 и цветной 320x200. В цветном режиме можно было
отображать только четыре цвета одновременно (2 бита на пиксел).
В 1984 году появился адаптер EGA (Enhanced Graphic Adapter). Это было
значительное достижение для персональных компьютеров этого типа. Появился графический 16-цветный видеорежим 640x350 пикселов. Цвета можно
выбирать из палитры 64 цветов. В это время уже получили распространение
компьютерные игры с более или менее качественной графикой и графические
программы для работы. Однако шестнадцати цветов явно мало для показа
изображений типа фотографий, а разрешающая способность недостаточна для
графических пакетов типа САПР. Кроме того, видеорежим 640х350 имеет еще
один недостаток— различная разрешающая способность по горизонтали и
вертикали — "не квадратные пикселы".
В 1987 году появились видеоадаптеры MCGA (Multi-Color Graphic Array) и
VGA (Video Graphic Array). Они обеспечивали уже 256-цветные видеорежимы.
Более совершенным был адаптер VGA — он стал наиболее популярным.
Адаптер VGA имел 256-цветный графический видеорежим с размерами растра 320 х200. Цвета можно выбирать из палитры в 256 тысяч цветов. Это дало
возможность полностью удовлетворить потребности отображения полутоновых черно-белых фотографий. Цветные фотографии отображались достаточно
качественно, однако 256 цветов мало, поэтому в компьютерных играх и
графических пакетах активно использовался дизеринг. Кроме того, режим
320x200 тоже имеет различную разрешающую способность по горизонтали и
вертикали. Для мониторов, которые используются в персональных компьютерах типа IBM PC, необходимо, чтобы количество пикселов по горизонтали
и вертикали была в пропорции 4:3. То есть, не 320x200, а 320x240. Такого
документированного видеорежима для VGA нет, однако в литературе [39]
приведен пример, как создать 256-цветный видеорежим 320x240 на видеосистеме VGA. Можно запрограммировать видеоадаптер, записав в его регистры соответствующие значения, и получить видеорежим "X" (не путать с
XGA). Несколько лет тому назад автор этой книги проверял сведения, приведенные в статье [39], и может подтвердить, что действительно, "X — видео-
Download