Технические и програмные средства машинной графики.

2.1 Аппаратные средства машинной графики

      2.1.1 Аппаратура графических терминалов и графических рабочих станций

      2.1.2 Реализация аппаратно-программных модулей графической системы

2.2 Программные средства машинной графики

      2.2.1 Базовая графика

      2.2.2 Пространственная графика

      2.2.3 Геометрические сплайны

2.3 Стандарты компьютерной графики

      2.3.1 Стандарты обмена данными. Метафайлы

      2.3.2 Форматы графических файлов


2.1 Аппаратные средства машинной графики

2.1.1 Аппаратура графических терминалов и графических рабочих станций

Говоря "Графическая станция" обычно представляем IBM-совместимый компьютер с мощным процессором, большим объемом оперативной памяти и быстрым жестким диском. Это верно до тех пор, пока речь не заходит о профессиональных графических станциях, которые применяются для создания мультфильмов, компьютерной графики в фильмах и рекламы. Для этих целей обычного IBM-совместимого компьютера недостаточно.
Какие же требования предъявляются к графическим станциям и почему для решения многих задач обычного PC недостаточно?
При работе с графикой возникает необходимость передавать большие объемы информации (с этим у PC все в порядке), осуществлять огромное количество целочисленных вычислений или вычислении с переменными одинарной точности. Эти вычисления являются специфическими для работы с графикой, особенно трехмерной. У PC в этой области все обстоит значительно хуже, что привело к созданию сначала ММХ-технологии (целочисленная арифметика с длинными словами DWORD), а затем и SSE-технологии у процессоров Pentium III компании Intel. На решение этих же задач направлена технология 3DNow! компании AMD. Все технологии направлены на увеличение производительности обработки целочисленной информации или чисел одинарной точности. Их суть заключается во введении новых команд, повышающих производительность - так называемых SIMD (Single Instruction Multiple Data).
Для графических станций максимальная вычислительная мощность важнее, чем максимальное быстродействие процессора. В последнее время все чаще поднимается вопрос: "Для чего увеличивать быстродействие процессора, не повышая пропускной способности основных магистралей ЭВМ?". Дело в том, что повышение пропускной способности магистралей процессор - память и память - периферийные устройства практически невозможно (или же крайне дорого) при сохранении приемлемой IBM-совместимости. Эта причина (в числе других, не менее важных) и привела к созданию целых семейств профессиональных компьютеров. Они могут быть узкоспециализированными (например, серверы баз данных) или универсальными, но их объединяет то, что совместимость в них обеспечивается на программном, а не на аппаратном уровне, как в PC.
Быстродействие и производительность... Многие могут сказать, что это две стороны одной медали. В какой-то мере это так, ведь, повышая быстродействие центрального процессора, получаем более производительный компьютер. Но это далеко не самый эффективный путь. Это практически все равно, что установить сверхмощный двигатель на обычный автомобиль, не переделав его коренным образом. Место сверхмощного двигателя - на специально разработанном гоночном автомобиле. Разница по скорости между самыми современными персональными компьютерами определяется в основном уже не наличием более быстрого процессора, а сбалансированной и быстродействующей периферией, быстрой памятью, мощным 3D-акселератором. Это тот самый эффект реактивного двигателя.
Основные "узкие места" IBM PC, которые устраняются в графических станциях:


Перейдем же к собственно графическим станциям. Их "сердцем", как правило, являются RISC-процессоры. В них жестко "зашит" минимально необходимый набор команд, которые выполняются очень быстро, обычно за один такт процессора; иногда выполняются и несколько команд в один такт. Необходимое для работы ЭВМ количество команд обеспечивается микропрограммно, т. е. часть команд на процессорном уровне подразделяется на микропрограммные, состоящие в свою очередь из некоторого количества элементарных команд. Для программиста эти команды практически неразличимы. RISC-архитектура процессора обеспечивает большую производительность и гибкость.
Например в рабочих станциях Silicon Graphics Inc (SGI) в основном используется семейство процессоров MIPS R (MIPS - Million Instructions Per Second). Имеются также компьютеры с процессорами Intel Pentium III Xeon, а также рабочие станции на основе суперкомпьютеров Cray. В большинстве графических станций SGI используются процессоры MIPS R4400, R4600, R5000, R8000, R10000 и R12000 с тактовыми частотами от 90 до 275 МГц. Необходимо отметить, что ситуация с линейкой процессоров MIPS значительно отличается от линейки процессоров Intel. У каждого следующего процессора Intel тактовая частота становилась все выше для обеспечения большего быстродействия, в то время как подход SGI иной. Все рабочие станции, кроме самых простых (на-пример, SGI Indy), построены по мультипроцессорной архитектуре, причем, в отличие от PC, она не всегда симметричная. Процессоры серии MIPS R являются 64-битными, построенными по суперскалярной архитектуре.
Некоторые характеристики процессоров:


MIPS R4400

MIPS R10000


В настоящее время на базе процессоров MIPS выпускаются различные модели графических станций.
Так как все компьютеры Silicon Graphics тем или иным образом относятся к оборудованию для обработки изображений, то необходимо подробнее рассмотреть их графические возможности. Компьютеры SGI снабжены графическими картами, которые можно сравнить с наиболее мощными графическими ускорителями для IBM PC. В машинах SGI видеокарта представляет собой, как правило, не одну карту, а целый набор специализированных, сопрягаемых между собой карт.
И наконец, программное обеспечение графических станций от Silicon Graphics. Все компьютеры SGI, построенные на основе RISC-процессоров MIPS, работают под разновидностью ОС UNIX, называемой IRIX.
Графические станций SGI широко применяются при создании фильмов в основном для анимации и создания спецэффектов, а также при проектировании в системах CAD.

2.1.2 Реализация аппаратно-программных модулей графической системы

Видеосистема современного компьютера состоит из обязательной графической (формирующей изображение программно) и дополнительной подсистемы обработки видеоизображений. Обе эти составляющие части обычно используют общий монитор, а соответствующие аппаратные средства системного блока могут располагаться на раздельных картах или объединяться на одном комбинированном адаптере, который можно назвать адаптером дисплея (Display Adapter).
Графический адаптер служит для программного формирования графических и текстовых изображений и является промежуточным элементом между монитором и шиной компьютера. Изображение строится по программе, исполняемой центральным процессором, в чем ему могут помогать графические акселераторы и сопроцессоры. В монитор адаптер посылает сигналы управления яркостью лучей RGB (Red, Green, Blue - красный, зеленый и синий - базисные цвета) и синхросигналы строчной и кадровой разверток.
Все компоненты дисплейного адаптера могут размещаться на одной карте расширения, а зачастую они устанавливаются прямо на системной плате, используя преимущества локального подключения к системной шине.

Принципы вывода изображений

Видеосистема PC ориентирована на растровый метод вывода изображения. Растровый метод подразумевает, что некий рисующий инструмент, способный оставлять видимый след, сканирует всю поверхность, на которую выводится изображение. Траектория движения инструмента постоянна и не зависит от выводимого изображения, но инструмент может рисовать, а может и не рисовать отдельные точки траектории. Видимым изображением являются оставленные им точки. В случае видеомонитора инструментом является модулированный луч (или три луча базисных цветов), построчно сканирующий экран и вызывающий свечение люминофора, нанесенного на внутреннюю поверхность экрана. Каждая строка растра разбивается на некоторое количество точек - пикселов, засветкой каждой из которых по отдельности может управлять устройство, формирующее изображение (например, графическая карта). Видеомонитор является растровым устройством вывода динамически изменяемых изображений. Его луч сканирует экран с частотой, которая не должна позволять глазу видеть мерцание изображения.
Альтернатива растровым устройствам - векторные устройства вывода изображения. В этих устройствах инструмент прорисовывает только изображаемые фигуры и его траектория движения определяется выводимым изображением. Изображение состоит из графических примитивов, которыми могут быть отрезки прямых - векторы (откуда и название метода вывода), дуги, окружности.
К векторным устройствам вывода статических изображений относятся перьевые плоттеры. Существовали и векторные мониторы, однако ввиду сложности построения системы управления лучом, обеспечивающей быстрое и точное движение луча по сложной траектории, они не получили развития.
Рассмотрим растровую систему вывода изображений, подразумевая в качестве оконечного устройства монитор с электронно-лучевой трубкой - CRT (Catode Ray Terminal, дословно - монитор на катодно-лучевой трубке). Сканирование экрана модулированным лучом обеспечивается генераторами горизонтальной и вертикальной разверток монитора. Луч может оставлять след только во время прямого хода по строке (слева направо). Строка разбивается на некоторое количество точек разложения, каждая из которых может иметь состояние (яркость и цвет), не зависимое от других (для монитора это разбиение условно). На обратном ходе по строке луч принудительно гасится. Следующая строка прорисовывается параллельно предыдущей, но с некоторым вертикальным смещением (вниз), и так происходит сканирование до окончания кадра - достижения правого нижнего угла экрана. Во время обратного хода луча по вертикали, за время которого генератор горизонтальной развертки успеет сделать несколько строчных циклов, луч также принудительно гасится. В следующем кадре сканирование может производиться поразному. В системах с прогрессивной (Progressive), или нечередующейся (NI - Non-Interlaced), разверткой луч идет по тем же самым строкам (рис. 1, а). В системах с чересстрочной разверткой (IL - Interlaced) луч пойдет по строкам, смещенным по вертикали) на половину шага строки (рис. 1, 6).

Рис. 1. Сканирование экрана: а - прогрессивная развертка, б-чересстрочная

Таким образом, всю поверхность экрана луч проходит за два цикла кадровой развертки, называемых полукадрами Чересстрочная развертка позволяет почти вдвое снизить частоту горизонтальной (строчной) развертки, а, следовательно, и темп вывода точек изображения.
Вполне очевидно, что для качественного изображения экран должен иметь как можно больше точек матрицы разложения - то есть строк в кадре и точек на строке. Возьмем популярный режим 800х600 (600 строк по 800 точек). За один период прогрессивной кадровой развертки луч должен успеть прочертить 600 видимых строк, да еще некоторое количество невидимых строк (примерно 50) он прочертит на обратном ходе по кадру. Получается, что частота строк должна составить 50 Гц х (600+50)=32,5 кГц (вроде и не так уж много). Этой частоте соответствует период около 30 мкс (1/32,5), из которого на прямой ход по строке остается около 25 мкс. За это время необходимо вывести 800 точек строки, так что на каждую точку отводится 25/800=0,03 мкс, что соответствует частоте вывода точек в 30 МГц, а это для электронных схем уже высокая частота. Поскольку соседние точки выводимого изображения в принципе друг с другом не связаны, то полоса частот сигнала, модулирующего интенсивность луча, должна быть несколько выше этого значения (примерно на 25%). Такую широкую полосу пропускания должен обеспечивать весь видеотракт: видеоусилители модуляторов лучей, сигнальные линии интерфейсного кабеля, и, наконец (вернее, сначала), такой широкополосный сигнал должен сформировать графический адаптер. На всех этих стадиях высокие частоты порождают технические проблемы. Если реальная полоса пропускания в этом тракте будет уже, четкого изображения получить не удастся - переходы будут размыты. Если же частотная характеристика тракта в требуемом диапазоне будет неравномерной, появятся специфические искажения цветов или яркости около границ отображаемых объектов (справа от граничной линии). При чересстрочной развертке за каждый полукадр сканируется только половина строк разложения (четные в одном полукадре и нечетные в другом), следовательно, строчная частота уменьшается, а длительность прохода видимой части строки увеличивается примерно вдвое. Таким образом, при заданных условиях (разрешении экрана и ограничении минимальной кадровой частоты) чересстрочная развертка позволяет снизить требуемую полосу пропускания вдвое.
Как видно из вышеприведенных выкладок, частотные параметры видеосистемы определяются исходя из желаемой частоты кадров, разрешения экрана и режима развертки. Заботясь о зрении пользователя, частоту кадров стремятся повышать. При низкой частоте экран начинает мерцать, что особо заметно на больших белых полях изображения. Разрешение экрана стремятся увеличить - чем оно выше, тем больше информации можно уместить на экране. Поскольку размер экрана постоянно увеличивается - 17" монитор является уже нормой для многих видов деятельности, - потребность в разрешении, скажем, 1600х1200 вполне реальна. Но для этого уже требуется полоса 120 МГц! (Кадровая частота 50 Гц - это отнюдь не идеал.) Применение чересстрочной развертки годится лишь как вынужденная мера, поскольку имеет свои специфические неприятные "видеоэфекты": если выводится тонкая (в одну строку точек) горизонтальная линия, она будет заметно мерцать. Это и понятно, ведь прорисовывается она только в одном из полукадров, следовательно, с половинной кадровой частотой. Если изображение потолще (один и тот же элемент имеет точки в соседних строках), его мерцание будет почти незаметным. Заметим, что чем выше частота развертки, тем ниже производительность графической системы при построении изображений.
Рассмотрев работу оконечного устройства (монитора), обсудим способы формирования изображения в графическом адаптере. Существуют два основных режима вывода информации - графический и символьный (текстовый). Хотя исторически первые видеосистемы работали в символьном режиме, начать объяснение работы удобнее с графического.

Графический режим

В графическом режиме имеется возможность индивидуального управления свечением каждой точки экрана монитора независимо от состояния остальных. В графическом режиме каждой точке экрана - пикселу - соответствует ячейка специальной памяти, которая сканируется схемами адаптера синхронно с движением луча монитора. Эта постоянно циклически сканируемая (с кадровой частотой) память называется видеопамятью (Video Memory), или VRAM (Video RAM). Процесс постоянного сканирования видеопамяти называется регенерацией изображения, и, к счастью, этого же сканирования оказывается достаточно для регенерации информации микросхемам динамической памяти, применяемой в этом узле. Для программно-управляемого построения изображений к видеопамяти также должен обеспечиваться доступ и со стороны системной магистрали компьютера, причем как по записи, так и по чтению. Количество бит видеопамяти, отводимое на каждый пиксел, определяет возможное число состояний пиксела - цветов, градаций яркости или иных атрибутов (на-пример, мерцание). Так, при одном бите на пиксел возможны лить два состояния - светится или не светится. Два бита на пиксел- можно иметь одновременно четыре цвета на экране. Четыре бита на пиксел (16 цветов), обеспечиваемые адаптером EGA, были достаточны для многих графических приложений (например, графики в САПРах). Пределом мечтаний в свое время было 256 цветов (8 бит на пиксел) адаптера VGA. Сейчас остановились на режимах High Color (15 бит - 32768 цветов или 16 бит - 65536 цветов), а для профессионалов - True Color - "истинный цвет" (24 бит - 16,7 миллиона цветов), реализуемых современными адаптерами и мониторами SVGA. 15 и 24 бита распределяются между базисными цветами R:G:B поровну (5:5:5 и 8:8:8), 16 бит - с учетом особенностей цветовосприятия неравномерно (5:6:5 или 6:6:4).
Логически видеопамять может быть организована по-разному, в зависимости от количества бит на пиксел.
В случае одного или двух бит на пиксел вполне логично, что каждая ячейка (байт) соответствует восьми или четырем соседним пикселам строки (рис. 2). При сканировании ячейка считывается в регистр сдвига, из которого информация о соседних точках последовательно поступает на выходные цепи адаптера. Такой способ отображения называется линейным - линейной последовательности пикселов соответствует линейная последовательность бит (или групп бит) видеопамяти.

Рис. 2. Линейное отображение пикселов в видеопамяти: а - 1 бит на пиксел, б-2 бита на пиксел


В адаптере EGA количество бит на пиксел увеличили до четырех и видеопамять разбили на четыре области слоя, называемых также и цветовыми плоскостями (рис. 3). В каждом слое используется линейная организация, где каждый байт содержит по одному биту восьми соседних пикселов. Слои сканируются (считываются в сдвиговые регистры) одновременно, в результате чего параллельно формируются по четыре бита на каждый пиксел. Такое решение позволяет снизить частоту считывания ячеек памяти - одна операция чтения производится за время прохода лучом восьми пикселов. Забота о снижении частоты считывания понятна - быстродействие памяти ограничено, а ведь в эту память нужно информацию когда-то и записывать. Ячейки слоев, отвечающие за одни и те же пикселы, имеют совпадающий адрес. Это позволяет производить параллельную запись информации сразу в несколько цветовых плоскостей (запись для каждого слоя разрешается индивидуально), что экономит время. Считывание со стороны магистрали, конечно, возможно только послойное.

Рис. 3. Многослойное отображение пикселов в видеопамяти

В режимах 8, 16 и 24 бит на пиксел также используется линейная организация, но каждый байт (слово или три байта) отвечает уже за цвет одного пиксела. Многоплоскостная организация здесь уже была бы неэффективной.
Объем видеопамяти (в битах), требуемый для хранения образа экрана, определяется как произведение количества пикселов в строке на количество строк и на количество бит на пиксел. Так, для режима 800х600х256 цветов - 480 000 бит или около 469 Кбайт. Если физический объем видеопамяти превышает необходимый для отображения матрицы всего экрана, видеопамять можно разбить на страницы. Страница - это область видеопамяти, в которой умещается образ целого экрана. При многостраничной организации видеопамяти только одна из них может быть активной - отображаемой на экран. Этим страницы принципиально отличаются от слоев, которые отображаются одновременно.
Формирование битовой карты изображения в видеопамяти графического адаптера производится под управлением программы, исполняемой центральным процессором. Сама по себе задача формирования процессору вполне по силам, но при ее решении требуется пересылка большого объема информации в видеопамять, а для многих построений еще и чтение видеопамяти со стороны процессора. Видеопамять большую часть времени занята выдачей информации схемам регенерации изображения в довольно напряженном темпе. От этого процесса она свободна только во время обратного хода луча по строке и кадру, но это меньшая часть времени. Так что канал связи процессора с видеопамятью представляет собой узкое горлышко, через которое пытаются протолкнуть немалый поток данных, причем чем более высокое разрешение экрана и чем больше цветов (бит на пиксел), тем этот поток должен быть интенсивнее.
Конечно, при выводе статической картинки это вроде и не страшно, но "оживить" изображение оказывается проблематично. Выходов из этого затруднения имеется несколько. Во-первых, повышают быстродействие видеопамяти. Во-вторых, расширяют разрядность шин графического адаптера, причем как внутренней (шины видеопамяти), так и интерфейсной, и применяют высокопроизводительные шины (локальную VLB, РСI или AGP). Расширение разрядности позволяет за один цикл обращения передать большее количество бит данных - повысить производительность. Однако если у адаптера, к примеру VGA, разрядность интерфейсной шины 16 бит, а установлен минимальный объем памяти, при котором используется только 8 бит, то эффективная разрядность интерфейса окажется всего 8 бит. Этим объясняется не совсем очевидный факт, что производительность графического адаптера зависит от объема установленной видеопамяти. В-третьих, повысить скорость видеопостроений можно применением кэширования видеопамяти. В этом случае при записи в область видеопамяти данные будут записаны как в видеопамять, так и в ОЗУ (или даже в кэш), а при считывании из этой области обращение будет только к быстродействующему ОЗУ. И в-четвертых, можно принципиально сократить объем информации, передаваемой графическому адаптеру, но для этого графический адаптер должен быть наделен "интеллектом". В современных компьютерах используются все эти решения.
Под интеллектом графического адаптера подразумевается наличие на его плате собственного процессора, способного формировать растровое изображение в видеопамяти (bitmap) по командам, полученным от центрального процессора. Команды ориентируются на наиболее часто используемые методы описания изображений, которые строятся из отдельных графических элементов более высокого уровня, чем пикселы.
Команды рисования (Drawing Commands) обеспечивают построение графических примитивов - точки, отрезка прямой, прямоугольника, дуги, эллипса. Примитивы такого типа в командах описываются в векторном виде, что гораздо компактнее, чем их растровый образ. Таким образом, удается значительно сократить объем передаваемой графической информации за счет применения более эффективного способа описания изображений.
Современные графические адаптеры берут на себя и многие функции построения трехмерных изображений. Трехмерное изображение должно состоять из ряда поверхностей различной формы. Эти поверхности "собираются" из отдельных элементовполигонов, чаще треугольников, каждый из которых имеет трехмерные координаты вершин и описание поверхности (цвет, узор). Перемещение объектов (или наблюдателя) приводит к необходимости пересчета всех координат. Для создания реалистичных изображений учитывается перспектива - пространственная и атмосферная (дымка или туман), освещенность поверхностей и отражение света от них, прозрачность и многие факторы.
Ускорение построений в интеллектуальном адаптере обеспечивается несколькими факторами. Во-первых, это сокращение объема передачи по магистралей. Во-вторых, во время работы процессора адаптера центральный процессор свободен, что ускоряет работу программ даже в однозадачном режиме. В-третьих, процессор адаптера ориентирован на выполнение меньшего количества инструкций, а потому способен выполнять их гораздо быстрее центрального. И в-четвертых, скорость обмена данных внутри адаптера может повышаться за счет лучшего согласования обращений к видеопамяти для операций построения с процессом регенерации изображения, а также за счет расширения разрядности внутренней шины данных адаптера. В современных графических адаптерах широко применяется двухпортовая видеопамять, а разрядность внутренней шины 64 бит (при 32-битной внешней шины) считается нормой, появились и адаптеры со 128-разрядной внутренней шиной.
Для построения сложных трехмерных изображений графическому акселератору будет явно тесно в ограниченном объеме видеопамяти. Для обеспечения доступа к основной памяти компьютера он должен иметь возможность управления шиной (bus mastering). Специально для мощных графических адаптеров в 1996 году появился новый канал связи с памятью - AGP (Accelerated Graphic Port). Обеспечив высокую пропускную способность порта, разработчики AGP предложили новую технологию, по которой графический акселератор может пользоваться основной памятью компьютера для своих нужд при трехмерных построениях. В AGP сохраняется локальный видеобуфер на графическом адаптере и расширение доступной памяти не отзывается снижением производительности.

Текстовый режим

В символьном, или текстовом, режиме формирование изображения происходит несколько иначе. Если в графическом режиме (АРА) каждой точке экрана соответствует своя ячейка видеопамяти, то в текстовом режиме ячейка видеопамяти хранит информацию о символе, занимающем на экране знакоместо определенного формата. Знакоместо представляет собой матрицу точек, в которой может быть отображен один из символов из определенного набора. В ячейке видеопамяти хранится код символа, определяющий его индекс в таблице символов, и атрибуты символа, определяющие вид его отображения. К атрибутам относится цвет фона, цвет символа, инверсия, мигание и подчеркивание символа.
В текстовом режиме экран организуется в виде матрицы знакомест, образованной горизонтальными линиями и вертикальными колонками. Этой матрице соответствует аналогичным образом организованная видеопамять. Адаптер, работающий в текстовом режиме, имеет дополнительный блок - знакогенератор. Во время сканирования экрана выборка данных из очередной ячейки видеопамяти происходит при подходе к соответствующему знакоместу, причем одна и та же ячейка видеопамяти будет выбираться при проходе по всем строкам растра, образующим линию знакомест. Считанные данные попадают в знакогенератор, который вырабатывает построчную развертку соответствующего символа.
Данный режим при работе с графикой не используется.

Дисплей

Самым главным устройством вывода визуальной информации является дисплей (display - устройство отображения). Дисплей может быть основан на различных физических принципах: здесь применимы электронно-лучевые трубки, газоплазменные матрицы, жидкокристаллические индикаторы и другие приборы. Наибольшее распространение получили дисплеи на электронно-лучевых трубках, которым и уделим здесь основное внимание, об остальных лишь кратко упомянем.
Монитор содержит только ЭЛТ с видеоусилителями сигналов яркости лучей, генераторы разверток, блок питания и схемы управления этими узлами. Монитор компьютера должен обеспечивать существенно более широкую полосу пропускания видеосигнала, чем телевизионный, поэтому композитный вход для него неприемлем.

Параметры монитора

Мониторы подразделяются на монохромные (Monochrome или Mono) и цветные (Colour или Color).
Монохромные мониторы могут быть как черно-белыми, так и черно-зелеными или черно-желтыми. Черно-белые мониторы до сих пор используются с адаптерами классов VGA и SVGA. Эти мониторы сочетают высокую разрешающую способность (у них отсутствуют трехцветные зерна люминофора) с низкой ценой. Высокая четкость изображения при режимах высокого разрешения позволяет длительно работать с текстом, не утомляя глаза.
Цветные мониторы получили наибольшее распространение. Первые цветные мониторы, имеющие цифровой интерфейс, использовались с адаптерами CGA и EGA. Мониторы CGA работали на частотах, близких к телевизионным. Однако по качеству изображения телевизор обычно уступает монитору. Мониторы EGA имели возможность переключения частот развертки и обеспечивали довольно высокое качество изображения. В настоящее время распространены мониторы классов VGA и SVGA, имеющие аналоговый интерфейс. Мониторы VGA, допускающие работу в режиме 640х480, практически вытеснены мониторами класса SVGA, которые должны поддерживать по крайней мере режим 800х600.
Главным параметром монитора является размер диагонали экрана Screen Size, который принято измерять в дюймах. По умолчанию считается, что ширина экрана больше его высоты и соотношение этих размеров составляет 4:3.
Для цветных мониторов важным параметром является размер зерна экрана. Существуют мониторы с зернистостью 0,39, 0,31, 0,28, 0,26 мм и тоньше.
На реальную разрешающую способность влияет и полоса пропускания видеотракта (Video Bandwidth).

Дисплейные адаптеры

Дисплейным адаптером условимся называть блок компьютера, к которому подключается дисплей - чаще всего, монитор на электронно-лучевой трубке. Рассмотрим функциональную схему графического адаптера (рис. 4), которая с некоторыми добавлениями или исключениями применима практически ко всем адаптерам, применяемым в PC.
Поскольку адаптер предназначен для подключения монитора, его обязательным элементом будет контроллер ЭЛТ (CRT Controller). В задачу этого контроллера входит согласованное формирование сигналов сканирования видеопамяти (адрес и стробы чтения) и сигналов вертикальной и горизонтальной синхронизации монитора. Контроллер ЭЛТ должен обеспечивать требуемые частоты развертки и режимы сканирования видеопамяти, которые зависят от режима отображения (графический или текстовый) и организации видеопамяти, о чем говорилось ранее. Опорной частотой для работы контроллера является - частота вывода пикселов в графических режимах или точек разложения символов в текстовом режиме.

К шине компьютера

Рис. 2. Линейное отображение пикселов в видеопамяти: а - 1 бит на пиксел, б-2 бита на пиксел

Видеопамять является специальной областью памяти, из которой контроллер ЭЛТ организует циклическое чтение содержимого для регенерации изображения. Традиционно для видеопамяти в карте распределения памяти IBM PC была выделена область адресов A0000-BFFFFh, непосредственно доступная любому процессору х86. Первым адаптерам (MDA, CGA) этой области было более, чем достаточно. Адаптеры EGA эти 128 Кбайт использовали уже полностью, а для дальнейшего увеличения объема, потребовавшегося адаптерам VGA и SVGA, пришлось применять технику переключения банков. Эта вынужденная мера осложняет программное формирование изображения, которое в режимах высокого разрешения с большим количеством цветов уже не помещается в один банк. Типовой объем видеопамяти достиг 4 Мбайт у рядовых адаптеров. Современные графические адаптеры имеют возможность переадресации видеопамяти в область старших адресов (выше границы 16 Мбайт), что позволяет в защищенном режиме процессоров 386+ работать с цельными образами экранов.
Необходимый объем видеопамяти определяется желаемым графическим режимом.
Трактовка данных видеопамяти зависит от используемого видеорежима.

2.2 Программные средства машинной графики

2.2.1 Базовая графика


Вывод изображения на экран дисплея и разнообразные действия с ним, в том числе и визуальный анализ, требуют от пользователя известной геометрической грамотности. Геометрические понятия, формулы и факты, относящиеся прежде всего к плоскому и трехмерному случаям, играют в задачах компьютерной графики особую роль.
Геометрические фигуры представлены в памяти ЭВМ числовыми моделями, содержащими параметры формы и параметры положения фигуры, а также геометрические условия формирования фигуры.
В начертательной геометрии рассматриваются способы описания фигур с помощью параметров. Минимальное количество параметров, необходимых для описания фигуры, называется ее параметрическим числом.
Точка задается двумя параметрами на плоскости и тремя в пространстве. Прямая задается двумя параметрами на плоскости и четырьмя в пространстве. Плоскость тремя параметрами. Точки, прямые и плоскости описываются параметрами положения. Отрезок прямой на плоскости задается четырьмя и в пространстве шестью параметрами, из которых один (длина отрезка) является параметром формы. Окружность задается тремя параметрами, из которых один (радиус окружности) является параметром формы.
Числовые модели фигур могут быть заданы аналитически в виде неявного уравнения либо параметрически в виде параметрического уравнения. Например, в случае окружности параметрами положения являются координаты хс ус ее центра, параметром формы величина R радиус. С помощью этих параметров может быть написано неявное уравнение окружности:

Та же окружность может быть задана параметрическим уравнением, где добавлен еще один переменный параметр центральный угол а, определяющий положение точки на окружности:

С помощью последних уравнений можно воспроизвести процесс построения отдельных точек окружности, определяя ее как множество точек.
В начертательной геометрии есть понятие определителя фигуры, который состоит из частей: постоянной (в случае окружности это, например, xc, yc, R ) и переменной ( ). Первая геометрическая, вторая алгоритмическая части определителя. Легко видеть, что алгоритмическая часть определителя задает алгоритм воспроизводства всего множества точек, принадлежащих фигуре, которая имеет данную геометрическую часть определителя. Все эти понятия являются фундаментальными для компьютерной графики.

Аффинные преобразования на плоскости

Аффинное преобразование это такое преобразование, которое сохраняет параллельность линий, но не обязательно углы или длины.
В компьютерной графике все, что относится к двумерному случаю, принято обозначать символом 2D (2-dimension). Допустим, на плоскости введена прямолинейная координатная система. Тогда каждой точке М ставится в соответствие упорядоченная пара чисел (х, у) ее координат (рис. 1).

Вводя на плоскости еще одну прямолинейную систему координат, мы ставим в соответствие той же точке М другую пару чисел (х*, у*). Переход от одной прямолинейной координатной системы на плоскости к другой описывается следующими соотношениями:

Указанные выше формулы можно рассматривать двояко: либо сохраняется точка и изменяется координатная система в этом случае произвольная точка М остается той же, изменяются лишь ее координаты (х, у) (х*, у*) , либо изменяется точка и сохраняется координатная система в этом случае формулы задают отображение, переводящее произвольную точку М(х, у) в точку М*(х*, у*), координаты которой определены в той же координатной системе. В дальнейшем будем интерпретировать формулы, как правило, что в заданной системе прямолинейных координат преобразуются точки плоскости.
В аффинных преобразованиях плоскости особую роль играют несколько важных частных случаев, имеющих хорошо прослеживаемые геометрические характеристики. При исследовании геометрического смысла числовых коэффициентов в формулах для этих случаев удобно считать, что заданная система координат является прямоугольной декартовой.
Наиболее часто применяются следующие приемы компьютерной графики: перенос, масштабирование, поворот, отражение. Алгебраические выражения и рисунки, поясняющие данные преобразования сведем в табл.1.

Аффинные преобразования на плоскости

Под переносом понимается смещение примитивов вывода на один и тот же вектор.
Масштабирование это увеличение или уменьшение всего изображения либо его части. При масштабировании координаты точек изображения умножаются на некоторое число.
Под поворотом понимается вращение примитивов вывода вокруг заданной оси. ( В плоскости чертежа вращение происходит вокруг точки.)
Под отражением понимают получение зеркального отображения изображения относительно одной из осей (например X).
Выбор этих четырех частных случаев определяется двумя обстоятельствами:
1. Каждое из приведенных выше преобразований имеет простой и наглядный геометрический смысл (геометрическим смыслом наделены и постоянные числа, входящие в приведенные формулы).
2. Как доказывается в курсе аналитической геометрии, любое преобразование вида (*) всегда можно представить как последовательное исполнение (суперпозицию) простейших преобразований вида А, Б, В и Г (или части этих преобразований).
Таким образом, справедливо следующее важное свойство аффинных преобразований плоскости: любое отображение вида (*) можно описать при помощи отображений, задаваемых формулами А, Б, В и Г.
Для эффективного использования этих известных формул в задачах компьютерной графики более удобной является их матричная запись.
Для объединения этих преобразований вводят однородные координаты. Однородными координатами точки называется любая тройка одновременно не равных нулю чисел x1 , x2 , x3 , связанных с заданными числами x и y следующими соотношениями:

Тогда точка M(х, у) записывается как M(hX, hY, h), где h 0 является масштабным множителем. Двумерные декартовы координаты могут быть найдены как

В проективной геометрии эти координаты вводятся для устранения неопределенностей, возникающих при задании бесконечноудаленных (несобственных) элементов. Однородные координаты можно интерпретировать как вложение промасштабированной с коэффициентом h плоскости в плоскость Z= h в трехмерном пространстве.
Точки в однородных координатах записываются трехэлементными вектор-строками. Матрицы преобразования должны иметь размер 3х3.
При помощи троек однородных координат и матриц третьего порядка можно описать любое аффинное преобразование плоскости.
В самом деле, считая h = 1, сравним две записи: помеченную символом (*) и нижеследующую, матричную:

Теперь можно использовать композиции преобразований, применяя одно результирующее вместо ряда преобразований, следующих друг за другом. Можно, например, сложную задачу разбить на ряд простых. Поворот точки А около произвольной точки В можно разбить на три задачи:
перенос, при котором В= 0 (где 0-начало координат);
поворот;
обратный перенос, при котором точка В возвращается на место и т. д.
Композиция наиболее общего вида из операций Т, D, R, M имеет матрицу:

Верхняя часть размером 2х2 - объединенная матрица поворота и масштабирования, a tx и ty описывают суммарный перенос.
К изложенным фундаментальным преобразованиям сводятся следующие:
прокручивание перемещение окна на поверхности визуализации (если перемещение ограничено только направлениями вверх и вниз, то оно называется вертикальным прокручиванием);
трансфокация постепенное изменение масштаба изображения;
кувыркание динамическое изображение примитивов вывода, вращающихся вокруг некоторой оси, ориентация которой непрерывно изменяется в пространстве;
панорамирование постепенный перенос изображения с целью создания зрительного ощущения движения.

2.2.2 Пространственная графика

Обратимся теперь к трехмерное случаю (3D) (3-dimension) и начнем рассмотрение сразу с введения однородных координат.
Поступая аналогично тому, как это было сделано в размерности два, заменим координатную тройку (х, у, z), задающую точку в пространстве, на четверку чисел (х у z 1) или, в более общем виде, на четверку
(hx hy hz h), h 0.
Каждая точка пространства (кроме начальной точки О) может быть задана четверкой одновременно не равных нулю чисел; эта четверка чисел определена однозначно с точностью до общего множителя.
Предложенный переход к новому способу задания точек дает возможность воспользоваться матричной записью и в более сложных, трехмерных задачах.
Любое аффинное преобразование в трехмерном пространстве может быть представлено в виде суперпозиции вращений, растяжений, отражений и переносов. Поэтому имеет смысл подробно рассмотреть матрицы именно этих преобразований (очевидно, что в данном случае порядок матриц должен быть равен четырем).

В. Матрицы вращения в пространстве
Матрицы вращения вокруг оси абсцисс, ординат и аппликат соответственно будут иметь вид:

Полезно обратить внимание на место знака "-" в каждой из трех приведенных матриц.
Г. Матрицы отражения относительно плоскостей хy, уz, zx, соответственно:

Как и в двумерном случае, все описанные матрицы невырождены.
Таким образом результирующая матрица преобразований в пространстве будет иметь вид:

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

2.2.3 Геометрические сплайны

С момента своего возникновения сплайны рассматривались как удобный инструмент в теории и практике приближения функций, в численных методах. С появлением компьютерной графики они получили широкое распространение и в этой области.
Термин "сплайн" происходит от английского spline гибкая полоска стали для проведения плавных кривых через заданные точки. В компьютерной графике сплайны используются для задания поверхности обтекаемого тела. В основе этого подхода к описанию поверхностей лежит использование сравнительно несложных формул, позволяющих восстанавливать облик изделия с необходимой точностью.
Достаточно типичной является следующая задача: по заданному массиву точек на плоскости (2D) или в пространстве (3D) построить кривую либо проходящую через все эти точки (задача интерполяции), либо проходящую вблизи от этих точек (задача сглаживания). При этом ограничимся лишь сплайнами, в построении которых используются кубические (в случае одномерных сплайнов - сплайновых кривых) и бикубические (в случае двумерных сплайнов - сплайновых поверхностей) многочлены. В компьютерной графике подобные сплайны применяются наиболее часто.Рассмотрим прежде всего, что такое интерполяционный бикубический сплайн. Пусть на плоскости задан набор из (m+1)(n+1) точек (рис. 2)

Рис.2. Набор точек на плоскости

Добавим к каждой паре (xi, yj) третью координату zij (xi, yi, zij), т.е. получаем массив (xi, yi, zij), i=0,1,2,…,m; j=0,1,2,…,n.Прежде чем стоить поверхность, проходящую через все точки заданного массива, определим функцию, графиком которой будет эта поверхность.
Интерполяционным бикубическим сплайном называется функция двух переменных S(x, у), обладающая следующими свойствами:
1) график этой функции проходит через каждую точку заданного массива,
S(xi,yj) = zjj, i=0,l,...,m; j= 0,1,..., n;

2) на каждом частичном прямоугольнике

[xi, xi+l ] [yj. yj+1], i = 0, l,…,m-l, j = 0, l,...,n-l,

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

3) на всем прямоугольнике задания [x0, xm] [y0, yn] функция S(x, у) имеет по каждой переменной непрерывную вторую производную.
Для того чтобы построить по заданному массиву {(xi, yi, zij)} интерполяционный бикубический сплайн, достаточно определить все 16mn коэффициентов. Отыскание коэффициентов сплайн-функции сводится к построению решения системы линейных уравнений, связывающих искомые коэффициенты .
Последняя возникает из первого и третьего условий после добавления к ним недостающих соотношений путем задания значений производной искомой функции в граничных узлах прямоугольника [x0, xm] [y0, yn] (или иных соображений).
Достоинства преложенного способа для решения линейных систем, возникающих в ходе построения сплайн-функций, существует много эффективных методов, к тому же эти системы достаточно просты; графики построенных сплайн-функций проходят через все заданные точки, полностью сохраняя первоначально заданную информацию.
Вместе с тем изменение лишь одной точки (случай на практике довольно типичный) при описанном подходе заставляет пересчитывать заново, как правило, все коэффициенты.
К тому же во многих задачах исходный набор точек задается приближенно и. значит, требование неукоснительного прохождения графика искомой функции через каждую точку этого набора оказывается излишним.
От этих недостатков свободны некоторые из методов сглаживания.
Определим некоторые понятия, которые будут использованы в дальнейших рассуждениях.
Регулярной поверхностью называется множество точек M(x, y, z) пространства, координаты x, y, z которых определяются из параметрических уравнений поверхности
x = x(u, v), y = y(u, v), z = z(u, v), (u, v) D,
где x(u, v), y(u, v), z(u, v) гладкие функции своих аргументов, причем выполнено соотношение

D некоторая область параметров на плоскости u и v.
Последнее равенство означает, что в каждой точке регулярной поверхности существует касательная плоскость и эта плоскость при непрерывном перемещении по поверхности текущей точки изменяется непрерывно.
Параметрические уравнения поверхности можно также записать в векторной форме:
r = r(u, v), (u, v) D,
где r(u, v) = (x(u, v), y(u, v), z(u, v)).
Для простоты будем считать, что область на плоскости параметров представляет собой стандартный единичный квадрат.
Ограничимся рассмотрением наборов точек вида Vij, i=0,l,...,m; j= 0,1,..., n. Соединяя соответствующие вершины прямолинейными отрезками, получаем контрольный (или опорный) граф заданного массива V (рис.2).

Сглаживающая поверхность строится относительно просто, в виде так называемого тензорного произведения.
Так принято называть поверхности, описываемые параметрическими уравнениями вида

Рис.2. Контрольный граф

Построение сглаживающих поверхностей удобно начать с описания уравнений элементарных фрагментов.
Ограничившись бикубическим случаем (наиболее часто используемым в компьютерной графике), когда функциональные коэффициенты ai(u) и bj(v) представляют собой многочлены третьей степени относительно соответствующих переменных (кубические многочлены), запишем для заданного набора из 16 точек Vij, i= 0, l, 2, 3; j = 0, 1, 2, 3 параметрические уравнения элементарных фрагментов некоторых поверхностей, считая для простоты, что область изменения параметров u и v представляет собой единичный квадрат.
В зависимости от типа имеющихся исходных данных, от геометрии проектирующей поверхности применяют представления в виде форм:


Первый способ предполагает построение бикубического участка в виде изогнутого четырехугольника, к углам которого могут пристыковываться такие же участки и по Эрмиту имеющие вид:

Здесь Mh матрица размерностью 4 4 имеет вид:

Матрицы Q размером 4 4 строятся на основе информации координат угловых точек по частным производным в этих точках:

Аналогично можно записать матрицы Qy и Qz.
При переходе с одного куска поверхности к другому обеспечивается совпадение координат всех точек граничащих кривых и совпадение первых производных в этих точках.
Недостаток метода заключается в сложности получения значений частных производных в угловых точках.
Параметрические уравнения фрагмента элементарной бикубической поверхности Безье имеет вид:

В матричной форме выражение примет вид:

базисная матрица Безье.
Элементарная бикубическая поверхность Безье обладает следующими свойствами:
лежит в выпуклой оболочке порождающих ее точек;
является гладкой поверхностью;
опираясь в точки v00, v03, v30, v33, касается исходящих из них отрезков контрольного графа (рис.3).

Рис.3. Пример поверхности Безье

Для гладкого перехода от одного элементарного бикубического элемента Безье к другому необходимо совпадение четырех смежных управляющих точек и отсутствие изломов в стыке соприкасающихся полей.
Существенным недостатком метода является то, что изменение местоположения хотя бы одной точки приводит к значительным изменениям вида всей кривой.
Матричное представление элементарного фрагмента бикубической В-сплайновой поверхности имеет вид:

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

2.3 Стандарты компьютерной графики

Стандартизация в компьютерной графике направлена на обеспечение мобильности и переносимости прикладных программ, унификацию взаимодействия с графическими устройствами и обеспечение возможности обмена графической информацией между различными подсистемами. Использование стандартов позволяет сократить сроки разработки графических систем и увеличить их жизненный цикл. Сегодня в практике использования средств компьютерной графики применяется большое количество стандартов, различающихся по назначению и функциональным возможностям. Они имеют разную степень официальности - от фактических до международных стандартов.
Эволюция графических стандартов естественно отражает процесс развития средств компьютерной графики - от векторной графики до систем виртуальной реальности. Наиболее заметный след в двадцатипятилетней истории графических стандартов оставили:
Соге - Core Graphics System;
GKS - Graphical Kernel System;
MGKS - Minimal GKS;
GKS-N - New Graphical Kernel System;
CKS-3D - 3D Graphical Kernel System;
PHIGS P - programmer's Hierarchical Interactive Graphics System;
VDI - Virtual Device Interface;
CGI - Computer Graphics Interface;
PS - Adobe Systems PostScript Language;
DPS - Adobe Systems Display Postscript System;
NeWS - SUN Microsystems Network Extensible Window System;
Х Window - MIT Х Window System;
Windows - Microsoft Windows System;
XGKS - Х+ GKS;
РЕХ - PHIGS+ Х;
OpenGL - SGI Graphical Language;
VRML Virtual Realily Modeling Language;
PREMO PResentation Environment for Multimedia 0bjects.
В основе разработки графических стандартов лежит принцип виртуальных ресурсов, позволяющий разделить графическую систему на несколько слоев - прикладной, базисный и аппаратно зависимый. При этом каждый слой является виртуальным ресурсом для верхних слоев и может использовать возможности нижних слоев с помощью стандартизованных программных интерфейсов. Кроме того, графические системы могут обмениваться информацией с другими системами или подсистемами с помощью стандартизованных файлов или протоколов. В соответствий с этими соображениями первоначально были выделены три основных направления стандартизации - базисные графические системы, интерфейсы виртуального устройства, форматы обмена графическими данными.
Стандартизация базисных графических систем направлена на обеспечение мобильности прикладных программ и основана на концепции ядра, содержащего универсальный набор графических функций, общих для большинства применений.
Наиболее известными проектами по стандартизации базисных систем являются Core System, GKS, GKS-3D, PHIGS, PHIGS+. Основное направление развития этих проектов заключалось в усилении изобразительных возможностей для визуализации геометрических объектов (2D, 3D, удаление скрытых линий и граней, полутоновая закраска и пр.). Стандарт на базисную графическую систему включает в себя функциональное описание и спецификации графических функций для различных языков программирования.
Концепция виртуального устройства начала разрабатываться с момента появления аппаратно-независимых графических систем. Интерфейс виртуального устройства разделяет аппаратно-зависимую и аппаратно-независимую части графической системы. Он обеспечивает заменяемость графических устройств (терминальную независимость), а также возможность работы с несколькими устройствами одновременно. Интерфейс виртуального устройства может существовать в форме программного интерфейса и/или протокола взаимодействия двух частей графической системы. Развитие этой концепции совпало с активным перемещением графических средств на персональные компьютеры и графические станции. При этом основными интерактивными устройствами стали растровые дисплеи, а устройствами для получения твердых копий - растровые принтеры. Это привело к необходимости выделения отдельного набора растровых функций, позволяющих использовать функциональные возможности растровых устройств. Эта концепция нашла применение в проектах CGI, Х Window и MS Windows (а также NeWS и Display Postscript), обеспечивших удобные средства для манипулирования растровыми изображениями. Эти средства явились основой для развития систем обработки изображений и для организации эффективного многооконного пользовательского интерфейса с использованием меню, диалоговых панелей, полос просмотра и пр. Отметим, что традиционные средства вывода геометрических примитивов (линий, дуг, многоугольников) и текстов также имеются в этих системах.
Сегодня, наиболее развитые проекты РЕХ и OpenGL неплохо совмещают основные достижения как геометрического, так и растрового направления. OpenGL предлагает интерфейс между программным обеспечением и аппаратурой. Данный интерфейс состоит из нескольких сотен процедур и функций, позволяющих программисту описывать трехмерные графические объекты и операции над ними. Так же, как и РЕХ, OpenGL интегрирует графические объекты в Х Window, но с таким же успехом может работать и с любой другой оконной системой или вовсе без нее. Предусмотрены следующие графические примитивы: точки, отрезки прямых линий, многоугольники, пиксельные прямоугольники или битовые карты. Каждый примитив задается множеством координат своих вершин, с которыми ассоциируются следующие атрибуты: цвет, нормаль ориентации и координаты текстуры. Все вершины обрабатываются независимо и на основе текущих установок и режимов. В OpenGL предусмотрено множество операций над плоскими и трехмерными объектами: матрицы преобразований, коэффициенты уравнения вычисления освещенности и т.п. Следует отметить, что стандарт отвечает только за визуализацию, осуществляемую через полностью независимый от производителя прикладной интерфейс пользователя, поэтому в нем нет средств описания структур сложных объектов. Главная цель OpenGL - задание механизма описания процесса визуализации сложных объектов, а не способов их построения.
VRML предлагается в качестве средства для описания процесса интерактивного взаимодействия множества субъектов, находящихся в виртуальном пространстве, распределенном, благодаря возможностям Internet, по всему миру.
PREMO в сферу влияния стандарта входит спецификация среды программирования для систем презентации, позволяющих конструировать и взаимодействовать с различными компьютерными средами. Объектами таких сред может быть компьютерная графика, анимация, аудио, видео и любые другие "медиа", несущие в себе презентационную нагрузку.

2.3.1 Стандарты обмена данными. Метафайлы

Стандарты обмена графическими данными можно условно разделить на следующие группы:
- графические метафайлы,
- проблемно-ориентированные протоколы,
- растровые графические файлы.
Графический метафайл представляет собой описание изображения в функциях виртуального графического устройства (в терминах примитивов и атрибутов). Он обеспечивает возможность запоминать графическую информацию единым образом, передавать ее между различными системами и интерпретировать для вывода на различные устройства. Таким образом, метафайл структура данных, которая содержит различные информационные записи: информацию об изображении, об устройстве, создавшем изображение, и об устройстве, на котором изображение должно быть восстановлено. Характеристики метафайла определяются его функциональными возможностями и способом кодирования информации.
Метафайл обычно разрабатывается как составная часть какой либо графической системы. При этом его функциональные возможности однозначно соответствуют возможностям этой системы. Метафайл Windows представляет собой набор команд Windows GDI (интерфейс графических устройств graphics device interface набор функций, которые управляют выводом на монитор компьютера и другие устройства), которые участвуют в создании изображения. Эти команды описания векторов, информация о цвете, растровые и текстовые данные записываются в виде инструкций, используемых для создания рисунка в Windows. В зависимости от того каким редактором будет прочитан файл, команды будут интерпретироваться по разному: в векторном редакторе получим векторный рисунок, в растровом редакторе растровый рисунок.
Способ кодирования выбирается в по с одному из следующих критериев:
- минимальность объема кодированной информации,
- минимальность времени для кодирования и декодирования,
- наглядность (возможность чтения и редактирования).
В зависимости от выбранного способа кодирования метафайл может использоваться в качестве средства хранения и передачи изображений, протокола взаимодействия отдельных подсистем, языка описания изображений.
GKSM - GKS Metafile;
CGM - Computer Graphics Metafile;
NAPLPS - North American Presentation Level Protocol Syntax;
HPG - Hewlett Packard Graphics Language;
PostScript - Adobe Systems Language;
WMF - Microsoft Windows MetaFile;
GEM - GEM Draw File Format;
PIC - Lotus Graphics File Format;
SLD - AutoCad Slide File Format.
Как видно, наименование большинства из них происходит от соответствующих графических стандартов.
Например, CGM - стандарт ISO на графический метафайл. Функционально CGM соответствует стандарту CGI. В CGM предусмотрены три способа кодирования - символьное, двоичное и текстовое. Символьное кодирование наиболее компактно и предназначено для хранения и транспортировки информации. Двоичное кодирование требует минимальных усилий по кодированию/декодированию и предназначено для внутрисистемного использования. Текстовое кодирование наиболее наглядно и обеспечивает возможность визуального просмотра и редактирования графических файлов.
PostScript - является языком описания страниц для электронных печатающих устройств, в первую очередь лазерных принтеров. Он обеспечивает возможность получения высококачественных документов на устройствах разного разрешения. PostScript обладает широкими возможностям для описания сложных изображений. Естественно, что вследствие наглядности PostScript, как и другие языки программирования, не оптимален в смысле минимальности кодирования информации. Поэтому его использование в качестве графического метафайла представляется нецелесообразным. Однако он становится незаменим при передаче тексто-графических документов, предназначенных для воспроизведения на печатающих устройствах с высоким разрешением.
WMF, GEM, PIC, SLD и др. - это локальные стандарты на метафайл в рамках соответствующих программных систем. Прикладные или проблемно-ориентированные графические протоколы обеспечивают наиболее эффективный способ хранения и передачи графических данных в прикладных системах. Кодирование информации в этих протоколах производится без потери семантики и в наиболее сжатой форме, что обеспечивает минимальность объема хранящейся или передаваемой информации и допускает свободу в выборе различных способов графического представления данных.
Сегодня в части стандартизации прикладных графических протоколов наиболее проработанной является область машиностроительных и электронных САПР. Здесь уже имеется ряд отраслевых и международных стандартов:
IGES - Initial Graphics Exchange Specification;
SET - Standard d'Exchange et de Transfert;
PDDI - Product Data Definition Interface;
МАР - Manufacturing Automation Protocol;
VDAFS - Verband der Deutschen Automobilindustrie-Flachen-Schnittstelle;
PDES - Product Data Exchange Standard;
STEP - Standard for Exchange Product Model Data;
EDIF - Electronic Design Interchange Format;
DXF - Autocad Data eXchange Format;
В других отраслях существуют пока только локальные стандарты, используемые в рамках одной или нескольких организаций.

2.3.2 Форматы графических файлов

Растровые графические файлы стали активно применяться для хранения и транспортировки графической информации, в системах обработки данных и подготовки научно-технической документации, использующих персональные компьютеры, а также лазерные и струйные печатающие устройства. Основными характеристиками растровых файлов являются метод упаковки (сжатия) информации и тип поддерживаемой цветовой модели.
Первоначально растровые файлы содержали только статические изображения. В последнее время появились проекты по стандартизации форматов динамических (анимационных) изображений. Сегодня используется уже большое количество разнообразных форматов растровых файлов. Некоторые из них (например GIF, TIFF, РСХ) получили широкое распространение и поддержку, другие ждут общественного признания, третьи поддерживаются только их разработчиками.
GIF - Compuserve Graphics Interchange Format;
TIFF - Aldus & Microsoft Tag Image File Format;
РСХ - ZSoft РС Paintbrush format;
RLE - Compuserve & Teletext Run Length Encoded;
ВМР - Microsoft Windows BitMaP;
LBM - Deluxe Paint format;
PIC - Pictor/PC Paint format;
МАС - MacPaint format;
IMG - Gem Paint format;
CUT - Dr. Halo Cut files;
TGA - Targa format;
JPEG - Joint Photographic Experts Group;
MEPG - Moving Pictures Experts Group;
FLC - AutodeskAnimator;
AVI - Microsoft Animation Video.

Каждый из этих форматов по-разному хранит графическую информацию, и каждый из них разрабатывался под конкретные цели. Формат GIF, например, был разработан для того, чтобы уместить как можно больше информации в ограниченном пространстве с целью уменьшить время получения файлов для пользователей сети CompuServe. Поддерживаемая цветовая модель - индексированные цветные изображения. Использует метод кодирования LZW (Lempel, Ziv & Welch), дающий высокий коэффициент сжатия. Позволяет содержать в одном файле несколько изображений, не связанных между собой. Поддерживается многими разработчиками графических систем.
TIFF разработан фирмами Aldus и Microsoft главным образом для настольных издательских систем. Распространенность этого формата обусловлена его гибкостью в части поддерживаемых способов кодирования и цветовых моделей изображения. TIFF поддерживает двухуровневые (bi-level), монохромные (gray-scale), индексированные цветные (paletted color) и полные цветные (full RGB) изображения. Для кодирования различных изображений или его частей могут применяться различные методы, в частности LZW. Кроме того TIFF содержит метрические характеристики изображения - размер, плотность и пр. Предусмотрена возможность записи в один файл нескольких изображений и/или копий одного изображения с различными метрическими характеристиками.
Формат PCX изначально разрабатывался для хранения черно-белых графических файлов, создаваемых ранней версией программы Paintbrush для компьютеров IBM PC. Формат PCX совершенствовался с годами, и сейчас, как, в некотором роде, общественный стандарт, применим для цветных графических файлов и широко используется различными графическими программами. РСХ формат распространен на ПК и поддерживается множеством графических редакторов и настольных издательских систем. В РСХ используется попутное или потоковое сжатие на основе учета повторяющихся серий. Этот метод, по сравнению с LZW, дает более низкий коэффициент сжатия, однако время, требуемое для чтения/записи упакованного таким способом файла, практически равно времени чтения/записи исходного файла. Это дает преимущества при использовании РСХ формата в интерактивных системах с быстрой сменой изображений.
JPEG - стандарт, ориентированный на цифровое описание (сжатие и кодирование) фотоизображений. Он предусматривает возможность частичной потери информации без визуального ухудшения качества изображения.
MPEG - стандарт, предназначенный для кодирования динамических изображений и связанной с ними звуковой информации.
ВМР, LBM, PIC, IMG, CUT, FLC и множество других форматов являются локальными стандартами на представление растровых изображений в рамках соответствующих программных систем.
Что содержит растровый графический файл? Такой файл обычно содержит информацию двух видов: графическую и неграфическую. В графических данных указываются цвета пикселов, неграфические данные содержат другую информацию, необходимую для восстановления изображения, например его высоту и ширину. (Если изображение содержит 1 миллион пикселов, то, как графической программе узнать размеры: рисовать ли ей изображение 500 на 2000 или 1000 на 1000 пикселов?) неграфическая часть файла может также включать другую информацию, такую как номер версии или сведения об авторских правах. Все зависит от формата и от того кто (или какой программный пакет) создал этот файл.
В растровых файлах используется обычно один из двух методов хранения данных о пикселах. В полноцветных изображениях пиксел может принимать любое из более чем 16 миллионов значений, поэтому и цвет пиксела хранится обычно как 24-разрядное значение - по 8 битов на красную, зеленую и синюю компоненты цвета. Если изображение содержит 1 миллион пикселов, то размер файла будет равен 3 миллионам байтов плюс длина неграфических данных. Если же изображение ограничено 256 или менее цветами, то цветовая информация обычно кодируется с использованием палитры. Вместо того чтобы хранить значение цвета пиксела, информация о пикселе указывает на строку в палитре, а она, в свою очередь, содержит цвет. С уменьшением количества битов, требуемых для представления цвета пиксела, уменьшается размер файла (а это во все времена ценное приобретение, поскольку пространство памяти не бывает бесплатным).
В качестве примера возьмем изображение из миллиона пикселов, содержащее 256 различных цветов. Кодирование цвета каждого пиксела 24-битным значением приводит к расточительной избыточности, потому что некоторые (а возможно и все) из 256-ти цветов повторяются неоднократно. Для хранения используемых цветов лучше выделить в файле 768 байтов под цветовую палитру: 256 полей по 24 бита, каждое поле содержит один из цветов, встречающихся в изображении. Тогда под значение цвета пиксела можно отвести 8 битов, то есть целое число в диапазоне от 0 до 255, указывающее номер цвета в палитре. Теперь для графической части файла достаточно 1.000.768 байтов, против прежних 3.000.000 байтов, которые требуются для хранения этого изображения без использования палитры. И даже с учетом дополнительных байтов из неграфической части файла, мы все-таки получаем уменьшение размера файла почти на две трети.
В большинстве форматов графических файлов пикселы располагаются построчно. Если размеры изображения 1000 на 1000 пикселов, и каждый пиксел представляется 8-ю битами, то первые 1000 байтов графической части файла содержат цвета пикселов из верхней строки изображения (слева направо), следующие 1000 байтов содержат цвета пикселов второй строки и так далее. Однако, в некоторых форматах используется иной порядок строк. Например, BMP-файлы начинаются с нижней строки и заканчиваются верхней строкой изображения.
В каждом формате графические и неграфические данные структурируются по-своему.
Рассмотренные графические стандарты отражают процесс развития машинной графики от векторных систем к системам генерации реалистичных изображений. Следующее поколение стандартов будет связано уже с развитием систем мультимедиа, гипермедиа и виртуальной реальности, в которых графическая информация объединяется с любой другой.


К началу

Назад

Хостинг от uCoz