КГ_1глава (1024098), страница 6
Текст из файла (страница 6)
C = (C1+C2)/2,
где C1 и C2— цвета, которые графическое устройство способно непосредственно воспроизвести для каждого пиксела. Числовые значения С, C1 и C2 можно рассчитать в полутоновых градациях или в модели RGB — отдельно для каждой компоненты.
Пример растра с использованием ячеек из двух пикселов приведен на рис. 1.37. Как видим, для создания промежуточного оттенка С ячейки образовывают вертикальные линии, которые очень заметны. Для того чтобы человек воспринял это как сплошной оттенок, необходимо, чтобы угловой размер ячеек был меньше одной угловой минуты. Можно изменять положения таких ячеек в растре, располагая их, например, по диагонали. Это несколько лучше, но не намного.
Чаще используют квадратные ячейки больших размеров. Дадим пример ячеек размером 2 х2 (рис. 1.38).
Такие ячейки дают 5 градаций, из них три комбинации (1, 2, 3) образуют новые оттенки.
Расчет цвета, соответствующего одной из комбинаций пикселов в ячейке, можно выполнить таким образом. Если пикселы ячейки могут быть только двух цветов (C1 и C2), то необходимо подсчитать часть площади ячейки для пикселов каждого цвета. Цвет ячейки (С) можно оценить соотношением
где S— общая площадь ячейки; S1 и S2 — части площади, занятых пикселами цветов C1 и С2 соответственно, причем S1 + S2 = S. Проще всего, когда пикселы квадратные, а их размер равен шагу размещения пикселов. Примем площадь одного пиксела за единицу. В этом случае площадь, занимаемая пикселами в ячейке, равна их количеству (рис. 1.41).
Для ячейки 5x5, изображенной на рис. 1.41, дадим расчет цвета С для некоторых цветов C1 и С2. Пусть C1— белый цвет (R1G1B1) = (255, 255, 255), а С2 — черный (R2G2B2) = (0, 0, 0), тогда
то есть мы получили светло-серый цвет.
Еще пример. Если C1 — желтый (R1G1B1) = (255, 255, 0), а С2— красный (R2G2B2) = (255, 0, 0) , то .С = (255, 204, 0). Это оттенок оранжевого цвета. Следовательно, если в ячейке размерами п*п использованы два цвета, то с помощью этой ячейки можно получить n2+1 различных цветовых градаций. Две комбинации пикселов — когда все пикселы ячейки имеют цвет C1 или С2 — дают цвет ячейки соответственно C1 или С2. Все иные комбинации дают оттенки, промежуточные между C1 и С2.
Можно считать, что ячейки размером п х n образовывают растр с разрешающей способностью в п раз меньшей, чем у исходного растра, а глубина цвета возрастает пропорционально n2. Для характеристики изображений, которые создаются методом дизеринга, используют термин литштура растра. Линиатура вычисляется как количество линий (ячеек) на единицу длины — сантиметр, миллиметр, дюйм. В последнем случае единицей измерения для линиатуры является Ipi (по аналогии с dpi).
Как реализовать метод дизеринга в графической системе? Рассмотрим примеры преобразования растрового изображения размером p*q с определенной глубиной цвета в другой растр, предназначенный для отображения с помощью графического устройства, в котором используется ограниченное количество основных цветов. В таком случае нужно выбрать размеры ячейки mxп, которые обеспечивают достаточное количество цветовых градаций. Затем каждый пиксел растра превращается в пиксел растра отображения. Это можно осуществить двумя способами.
Первый способ. Каждый пиксел заменяется ячейкой из тxп пикселов. Это самое точное преобразование по цветам, но размер растра увеличивается и равен mpxnq пикселов.
Второй способ. Размер растра в пикселах не изменяется, если пиксел растра отображения образовывается следующим образом:
1. Определяем координаты пиксела (х, у) для преобразуемого растра.
2. Находим цвет пиксела (х, у).
3. По цвету пиксела находим номер (к) ячейки, наиболее адекватно представляющей этот цвет.
4. По координатам (х,у) вычисляем координаты пиксела внутри ячейки:
хк = х mod т;ук = у mod n.
5. Находим цвет (С) пиксела ячейки с координатами {хь
6. Записываем в растр отображения пиксел (х,у) с цветом С.
Такой способ можно использовать не для любых вариантов расположения пикселов в ячейках. Конфигурации пикселов должны быть специально разработаны для таких преобразований. Одно из требований можно сформулировать так. Если ячейки разработаны на основе двух цветов, например, белого и черного, а градации изменяются пропорционально номеру ячейки, то необходимо, чтобы ячейка с номером (i) для более темной градации серого содержала бы все черные пикселы ячейки номер (i - 1).
Рассмотрим пример изображения, созданного на основе ячеек 5x5.
Для создания такого изображения специально была выбрана небольшая разрешающая способность, чтобы подчеркнуть структуру изображения. Ячейки образовывают достаточно заметный квадратный растр (рис. 1.42).
Для улучшения восприятия изображения можно использовать иное расположение ячеек, например, диагональное (рис 1.43).
Диагональное расположение можно получить, если сдвигать четные строки ячеек (рис. ] .44).
Координаты пикселов ячеек можно вычислять следующим образом:
Для того чтобы получить диагональную структуру растра подобную той, что используется для печати газет, можно использовать квадратное расположение ячеек другого типа (рис. 1.45).
Вы, наверное, уже заметили, что для всех приведенных выше примеров дизеринга ячейки образовывают точки переменного размера с постоянным шагом. Однако часто используется иной подход— переменная густота расположения точек постоянного размера. Такой способ получил название частотной модуляции (ЧМ) (рис. 1.46).
Положительная черта способа ЧМ — меньшая заметность структуры растра. Однако его использование затруднено в случае, когда размер пикселов больше, чем их шаг. Начиная с определенной густоты, пикселы смыкаются. Кроме того, на дискретном растре невозможно обеспечить плавное изменение густоты (частоты), в особенности для ячеек небольшого размера. Рассмотрим пример ячеек 5 х5, реализующих ЧМ-дизеринг (рис. 1.47).
Дня изображений, созданных методом ЧМ-дизеринга, наблюдается меньшая заметность растровой структуры (рис. 1.48).
Однако при регулярном расположении одинаковых ячеек всегда образовывается текстура, муар, лишние контуры. Одна из важных задач — разработка таких вариантов ячеек, которые предопределяют наименее заметную растровую структуру (кроме тех случаев, когда, наоборот, такую структуру нужно подчеркнуть для создания изображения в стиле гравюры). Это довольно сложная задача.
Один из способов создания достаточно качественных изображений — это диффузный дизеринг (diffused dithering). Суть его в том, что ячейки создаются случайно (или псевдослучайно). Если для каждой градации создавать случайные ячейки, то даже для фрагмента растра пикселов с постоянным цветом не будут образовываться регулярные структуры. Это соответствует диффузному отражению света от матовой поверхности.
1.5. Эволюция компьютерных видеосистем
Компьютерные видеосистемы рассмотрим на примере персональных компьютеров класса IBM PC. Первый персональный компьютер фирмы IBM появился в 1981 году. Сейчас уже можно сказать, что появление как раз этого компьютера привело к значительному распространению персональных компьютеров. Некоторые особенности архитектуры IBM PC сохранены и по сей день (рис. 1.49).
Одной из таких особенностей, которые выгодно отличали его от других персональных компьютеров, является открытость архитектуры. Это означает гибкие возможности подключения разнообразных устройств, простоту модернизации компьютера. Важным фактором была цена — для IBM PC она была меньшей, чем, например, для компьютеров Apple, которые были лучше по другим показателям (в первую очередь, по графическим возможностям). Кроме того, с самого начала пользователям компьютеров семейства IBM PC были доступны разнообразные средства программирования — миллионы пользователей получили возможность сами разрабатывать программное обеспечение. Все это привело к массовому распространению таких компьютеров, использованию в разнообразных областях.
Важная черта архитектуры персонального компьютера с позиций графики — то, что контроллер видеосистемы (видеоадаптер) расположен рядом с процессором и оперативной памятью, так как подключен к системной шине через скоростную локальную шину. Это дает возможность быстро вести обмен данными между оперативной памятью и видеопамятью. Для вывода графических изображений, в особенности в режиме анимации, нужна самая высокая скорость передачи данных. «В отличие от этого в больших компьютерах (мэйнфреймах) данные к дисплеям передавались через интерфейс канала ввода-вывода, который работает намного медленнее, чем системная шина. Большие компьютеры, как правило, работают со многими дисплеями, расположенными на значительном расстоянии.