Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Лекция 1 Введение в инженерную и компьютерную графику





Лекция 1 Введение в инженерную и компьютерную графику

 

Определение и основные задачи компьютерной графики.

История развития компьютерной графики.

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

Тенденции построения современных графических систем

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

 

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

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

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

Векторный метод — это метод представления изображения в виде совокупности отрезков и дуг и т. д. В данном случае вектор — это набор данных, характеризующих какой—либо объект.

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

 

Сравнительная характеристика растровой и векторной графики

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

 

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

Фрактальная графика, как и векторная — вычисляемая, но отличается от неё тем, что никакие объекты в памяти компьютера не хранятся. Изображение строится по уравнению (или по системе уравнений), поэтому ничего, кроме формулы, хранить не надо.

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

 

Двумерная графика (2D)

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

 

Векторная графика

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

Изображение в векторном формате даёт простор для редактирования. Изображение может без потерь масштабироваться, поворачиваться, деформироваться, также имитация трёхмерности в векторной графике проще, чем в растровой. Дело в том, что каждое такое преобразование фактически выполняется так: старое изображение (или фрагмент) стирается, и вместо него строится новое. Математическое описание векторного рисунка остаётся прежним, изменяются только значения некоторых переменных, например, коэффициентов. При преобразовании растровой картинки исходными данными является только описание набора пикселей, поэтому возникает проблема замены меньшего числа пикселей на большее (при увеличении), или большего на меньшее (при уменьшении). Простейшим способом является замена одного пикселя несколькими того же цвета (метод копирования ближайшего пикселя: Nearest Neighbour). Более совершенные методы используют алгоритмы интерполяции, при которых новые пиксели получают некоторый цвет, код которого вычисляется на основе кодов цветов соседних пикселей. Подобным образом выполняется масштабирование в программе Adobe Photoshop (билинейная и бикубическая интерполяция).

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

 

Растровая графика

Растровая графика всегда оперирует двумерным массивом (матрицей) пикселей. Каждому пикселю сопоставляется значение — яркости, цвета, прозрачности — или комбинация этих значений. Растровый образ имеет некоторое число строк и столбцов.

Без особых потерь растровые изображения можно только лишь уменьшать, хотя некоторые детали изображения тогда исчезнут навсегда, что иначе в векторном представлении. Увеличение же растровых изображений оборачивается «красивым» видом на увеличенные квадраты того или иного цвета, которые раньше были пикселями.

В растровом виде представимо любое изображение, однако этот способ хранения имеет свои недостатки: больший объём памяти, необходимый для работы с изображениями, потери при редактировании.

 

Фрактальная графика

Фрактал — объект, отдельные элементы которого наследуют свойства родительских структур. Поскольку более детальное описание элементов меньшего масштаба происходит по простому алгоритму, описать такой объект можно всего лишь несколькими математическими уравнениями.

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

 

Трёхмерная графика (3D)

Трёхмерная графика оперирует с объектами в трёхмерном пространстве. Обычно результаты представляют собой плоскую картинку, проекцию. Трёхмерная компьютерная графика широко используется в кино, компьютерных играх.

В трёхмерной компьютерной графике все объекты обычно представляются как набор поверхностей или частиц. Минимальную поверхность называют полигоном. В качестве полигона обычно выбирают треугольники.

Всеми визуальными преобразованиями в 3D-графике управляют матрицы (см. также: аффинное преобразование в линейной алгебре). В компьютерной графике используется три вида матриц:

матрица поворота

матрица сдвига

матрица масштабирования

Любой полигон можно представить в виде набора из координат его вершин. Так, у треугольника будет 3 вершины. Координаты каждой вершины представляют собой вектор (x, y, z). Умножив вектор на соответствующую матрицу, мы получим новый вектор. Сделав такое преобразование со всеми вершинами полигона, получим новый полигон, а преобразовав все полигоны, получим новый объект, повёрнутый/сдвинутый/масштабированный относительно исходного.

Ежегодно проходят конкурсы трехмерной графики, такие как Magick next-gen или Dominance War.

 

 

Отображение информации

 

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

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

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

 

Проектирование

 

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

 

Моделирование

Под моделированием в данном случае понимается имитация различного рода ситуаций, возникающих, например, при полете самолета или космического аппарата, движении автомобиля и т.п. В английском языке это лучше всего передается термином simulation. Но моделирование используется не только при создании различного рода тренажеров. В телевизионной рекламе, в научно-популярных и других фильмах теперь синтезируются движущиеся объекты, визуально мало уступающие тем, которые могут быть получены с помощью кинокамеры. Кроме того, компьютерная графика предоставила киноиндустрии возможности создания спецэффектов, которые в прежние годы были попросту невозможны. В последние годы широко распространилась еще одна сфера применения компьютерной графики - создание виртуальной реальности.

 

Мышь

 

Наиболее распространенным устройством ввода графической информации в ПЭВМ является мышь. Она подключается к компьютеру через интерфейс RS-232. При перемещении мыши и/или нажатии/отпускании кнопок мышь передает в компьютер информацию о своих параметрах (величине перемещения и статусе кнопок). Существует много различных типов устройства мыши, отличающихся как по принципу работы (механический, оптомеханический, оптический), так и по протоколу общения с ЭВМ. "Взаимопонимание" между мышью и ЭВМ при этом достигается с помощью драйвера, поставляемого вместе с мышью. Драйвер отслеживает перемещение мыши и нажатие/отпускание кнопок и обеспечивает работу с курсором мыши на экране дисплея.

Конструктивно близок к мыши манипулятор джойстик. Он представляет собой свободно передвигаемый стержень (ручку) и две кнопки-переключателя. Стержень джойстика передвигается в двух измерениях (координаты X и Y). Нажатие кнопок-переключателей фиксируется и обрабатывается программно. Обычно джойстик подключается к специальному игровому порту и в настоящее время в машинной графике используется редко.

 

Сканеры

 

Сканеры являются устройствами ввода изображений. Обычно их действие основано на оптических принципах. Они осуществляют начальную оцифровку изображений (далее при необходимости производится чистка изображений специальными методами - см. тему "Математические основы компьютерной графики") и передачу их в ЭВМ. В настоящее время фактическим стандартом представления изображений сканерами является формат TWAIN. Этот формат поддерживает большинство драйверов различных сканеров. Конвертация из этого формата в формат какой-либо графической системы выполняется программно.

 

Световое перо

 

Световое перо представляет собой цилиндр, содержащий оптическую систему и фотоэлемент, вырабатывающий напряжение при попадании на него света. При прикосновении светового пера к поверхности экрана компьютера фотоэлемент генерирует электрический импульс каждый раз, когда электронный луч дисплея в процессе сканирования пробегает точку, на которую установлено световое перо. Таким образом считываются координаты точки экрана, на которой расположено световое перо и обеспечивается "рисование" на экране. Основное применение светового пера - автоматизированное проектирование.

Диджитайзер (дигитайзер, digitazer, оцифровыватель)

 

Устройство ввода точных двумерных координат объекта. Подключается к асинхронному порту COM1. Пример дигитайзера - изделие TRUE GRID фирмы Houston Instruments. Оно представляет собой панель размером от 130*130 мм до 280*430 мм и курсор в виде пера и напоминающей мышь коробочки с лупой, перекрестьем и одной или несколькими клавишами. Выпускает дигитайзеры также фирма Hewlett Packard и ряд др. фирм. Возможны бинарная передача данных, ASCII-строка, целочисленный ASCII-формат.

Съем координат может производиться в следующих режимах:

· точки (point) -передача абсолютных координат точки, в которой находится курсор, по нажатию клавиши;

· триггер (triggered) - передача абсолютных координат точки по запросу компьютера;

· обычный поток (stream) - непрерывная передача абсолютных координат;

· переключаемый поток (swich stream) - аналогично обычному потоку, но включается по нажатии клавиши;

· непрерывная передача относительных координат.

Более подробно работа с дигитайзером (программирование) описана в [ 4 ].

 

Графопостроители (плоттеры)

 

Это электромеханические устройства, основанные на преобразовании хранящихся в памяти компьютера координат изображения в сигналы перемещения механических пишущих узлов. Различные типы графопостроителей имеют различные системы команд, позволяющие управлять механическими узлами, обеспечивающие нанесение изображения как в одном, так и в нескольких цветах, с различными атрибутами (пунктир, штрих-пунктир и т.п.). Обычно плоттер подключается к компьютеру через асинхронный порт COM1. Для выполнения рисунка плоттеру передаются команды (рисование линии, рисование окружности и т.д.), цвет и координаты точек, образующих линию. Эти команды образуют графические языки плоттеров. Некоторые особенности программирования описаны в [ 4 ].

 

Принтеры

 

Практически любой современный принтер позволяет получать изображение, т.к. выводит информацию по точкам. Каждый символ представляется матрицей точек. Для большинства матричных принтеров размер матрицы . Управляет принтером специальный набор команд, обычно называемый Esc-последовательностями. Эти команды позволяют задать режим работы принтера, прогон бумаги на заданное расстояние, собственно печать. Чтобы отличить управляющие коды от выводимой информации, они обычно начинаются с кода, меньшего, чем 32 (не ASCII-символ). Для большинства команд начальным является символ Esc (код 27). Совокупность подобных команд образует язык управления принтером. Каждый принтер имеет свой набор команд. Однако можно выделить набор команд, реализованный на достаточно широком классе принтеров.

Наиболее просты 9-игольчатые принтеры типа Epson, Star и совместимые с ними. Они имеют команды перевода строки (LF) возврата каретки к началу строки (CR), прогона бумаги до начала новой страницы (FF), установки интервала между строками, печати с нормальной или повышенной плотностью (80 или 120 точек на дюйм). 24-игольчатые принтеры (LQ-принтеры) имеют язык управления, являющийся надмножеством языка управления 9-игольчатыми принтерами. Этим достигается программная совместимость. Большинство струйных принтеров на уровне языка управления совместимо с LQ-принтерами. Одним из наиболее распространенных классов лазерных принтеров являются принтеры серии HP LaserJet фирмы Hewlett Packard. Все они управляются языком PCL, также основанным на Esc-последовательностях.

Большинство принтеров работают с параллельным портом ЭВМ, который называется нередко принтерным портом. В устройстве самого параллельного интерфейса имеется только один специальный сигнал, который компьютер может послать в принтер - сигнал инициализации. Остальные коды управления принтером передаются в потоке данных и должны формироваться программно. Принтер может послать компьютеру 3 сигнала:

· подтверждение получения данных;

· ожидания (задержки передачи данных до тех пор, пока принтер не сможет начать обработку данных снова);

· отсутствия бумаги.

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

Некоторые принтеры имеют две модификации - для параллельного и последовательного интерфейса. Лазерные принтеры фирмы Hewlett Packard работают только с последовательным интерфейсом со скоростью передачи данных 9600 бод (бит/сек).

 

Дисплеи

 

Это основное устройство вывода информации. Большинство дисплеев в качестве формирователя изображения использует электронно-лучевую трубку (ЭЛТ). Работа ЭЛТ основана на двух физических принципах:

· влияние электромагнитного поля на поток электронов, движущихся в разреженном пространстве;

· свечение люминофоров при их бомбардировке электронами.

В памяти ЭВМ хранятся координаты точек изображения и информация об их цвете, яркости и др. (например, атрибут мерцания). Эти данные под управлением дисплейного контроллера преобразуются в сигналы управления лучом ЭЛТ.

Существует 2 основных типа дисплеев, использующих ЭЛТ: векторные и растровые.

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

Растровые дисплеи являются доминирующими. Они позволяют формировать практически любые изображения. Используется тот же принцип движения луча, что и в телевизоре. Электронный луч циклически совершает движение, образующее на экране последовательность строк (растр). Движение луча начинается в левом верхнем углу, выполняется перемещение от точки A к точке B. Затем луч быстро отклоняется в точку C. Отрезок прямой AB называется прямым ходом луча по растру, отрезок BC – обратным. Суммарное время, затрачиваемое на это перемещение, – период строчной развертки. D - конечная точка растра. Движение луча от точки A до точки D называется прямым ходом луча по кадру.

Из точки D луч быстро перемещается в точку А, сканирование завершается. Время одного полного движения по растру - период кадра.

Дисплеи имеют от 300 до 2000 строк. Изображения, формируемые растровыми дисплеями, состоят из множества точек - ПИКСЕЛОВ. Термин "пиксел" происходит от английских слов PICTURE ELEMENT. Множество всех пикселов на экране образует матрицу. Размерность матрицы различна для различных устройств, она определяет разрешающую способность дисплея.

Управление работой дисплея осуществляет дисплейный контроллер (видеоконтроллер, видеоадаптер, дисплейный адаптер, видеокарта). Он представляет собой плату, вставляемую в соответствующий слот, и поэтому может заменяться. Видеоадаптер выполняет 3 главные функции:

· хранение информации об изображении;

· регенерацию изображения на экране ЭЛТ;

· связь с центральным процессором ЭВМ.

Компьютер имеет многочисленные видеорежимы или способы изображения данных на экране дисплея. Каждый видеоадаптер имеет свой набор видеорежимов. Изображение хранится в растровом виде в памяти видеокарты. Аппаратно обеспечивается регулярное (50-100 раз в сек.) чтение этой памяти и отображение ее на экране. Поэтому работа с изображениями сводится к операциям с видеопамятью.

Существует 6 общепринятых стандартов видеоконтроллеров. Имеется также множество нестандартных для решения специальных задач. К стандартным видеоконтроллерам относятся:

1. Монохромный дисплейный адаптер (Monochrome Display Adapter - MDA) - текстовый, высокое качество изображения, низкая цена;

2. Цветной графический адаптер (Color Graphics Adapter - CGA). Разрешающая способность в цветном графическом режиме 320*200, в режиме монохромной графики - 640*200. Палитра из 16 цветов, в графическом режиме можно задать любые 4 цвета. Устарел, практически не используется;

3. Монохромный графический адаптер (Monochrome Graphics Adapter - MGA или, по имени кампании-разработчика Hercules Computer Technology, Hercules Graphics Adapter - HGA). Имеет ту же разрешающую способность, что и MDA, но может работать в графическом режиме. Разрешающая способность 720*348. Изображение качественное, используется широко;

4. Улучшенный графический адаптер (Enhanced Graphics Adapter - EGA). Разрешение 640*350, 16 цветов. Благодаря более совершенной организации управления памятью и формированием изображения можно смешивать цвета в различных комбинациях из палитры в 64 оттенка для каждого из 16 цветов (оттенки тона, насыщенность). Как правило, обеспечивается совместимость с CGA, в ряде моделей - с MGA (Hercules). Имеются усовершенствованные модели, позволяющие при наличии специального программного обеспечения получать 43 строки на экране и разрешение 640*480. Устарел, используется редко;

5. Видеографическая матрица (Video Graphics Array - VGA). Была создана для PS/2. Развитие EGA. Базовое разрешение 640*480 точек, воспроизведение 16 цветов из палитры 4096 оттенков, 320*200 при воспроизведении одновременно 256 цветов;

6. Супервидеографическая матрица (Super Video Graphics Array - SVGA). Стандарта SVGA нет, он рассматривается как расширение VGA. Более высокая частота горизонтальной развертки - ряд частот: 60, 72, 85 и выше. Разрешение: 800*600, 1024*768, 1280*1024.

Видеокарты EGA, VGA и SVGA

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

Из рассмотрения BGI видно, что видеокарты EGA и VGA могут работать в разных режимах. Режим обозначается номером и определяется разрешением экрана и количеством цветов.

 

Номер режима Разрешение Кол-во цветов
0Dh 320*200  
0Eh 640*200  
0Fh 640*350  
10h 640*350  
11h (VGA) 640*480  
12h (VGA) 640*480  
13h (VGA) 320*200  

 

Каждая видеоплата содержит собственный BIOS для работы с ней и поддержки основных своих функций. Через BIOS можно определить тип адаптера - EGA или VGA, установить нужный режим, системный шрифт заданного размера (8,14 или 16 пикселов высоты), палитру (аналог setrgbpalette). Для 16-цветных режимов под каждый пиксел отводится 4 бита (2**4=16). Однако эти биты располагаются не последовательно в одном байте, а разнесены по 4 блокам (битовым или цветовым плоскостям) видеопамяти. Вся видеопамять (например, 256 К) делится на 4 равные части. Каждому пикселу соответствует по 1 биту каждой плоскости, причем эти биты расположены одинаково относительно начала плоскости (параллельно). Когда процессор выполняет операции чтения/записи видеобуфера по некоторому адресу, этот адрес относится не к одному, а к 4 байтам, каждый из которых размещается в своей битовой плоскости. При выполнении операции чтения из видеобуфера (например, командами MOV reg,mem; LODS; CMP reg,mem и др.) из него извлекается не 1, а 4 байта. Но данные пересылаются не в процессор, а в четыре 8-битовых регистра-защелки (latch - задвижка, щеколда). Каждый из этих регистров соответствует своей битовой

плоскости. При выполнении операций записи в видеопамять производится параллельная модификация всех 4 битовых плоскостей. Таким образом, за один раз обрабатывается информация о 8 пикселах. Если к видеобуферу обратиться при помощи команд, оперирующих словами, а не байтами, результаты могут быть ошибочными, т.к. алгоритм выполнения операций процессора и видеокарты разный, и результат одной части операции перезаписывается другой ее частью.

Регистры видеокарты делятся на группы. Каждой группе соответствует пара последовательных портов (порт адреса и порт значения). Для записи в регистр значения надо записать сначала номер регистра в порт адреса, затем значение в следующий порт. Добраться до регистров видеокарты можно с помощью ассемблера или функций языка С inportb (чтение байта из аппаратного порта), outportb (запись в аппаратный порт). Прототипы функций - в <dos.h>.

Передачей данных между процессором, регистрами-защелками и видеобуфером управляет графический контроллер. В адаптере EGA это 2 микросхемы или отдельная СБИС, в адаптере VGA он входит в СБИС видеографической матрицы.

Графический контроллер имеет 9 регистров, адресуемых через порт 3CE. Значения регистров задаются через порт 3CF. Содержимое регистров графического контроллера управляет обработкой данных регистров-защелок при чтении/записи. Часть операций в качестве операндов используют байт, т.е. воздействуют отдельно на каждый регистр. Операндом других операций является пиксел, т.е. содержимое регистров-защелок рассматривается как набор из 8 пикселов. Такие операции воздействуют на каждый пиксел в отдельности.

Т.к. разрядность процессора не более 32, требуется специальное формирование значения для пересылки в процессор. Оно осуществляется с помощью масок и зависит от режима чтения/записи. Режим задается в специальном регистре графического контроллера. Этот регистр имеет номер 5. Имеется 2 режима чтения и 3 режима записи для EGA. Для VGA имеется еще один режим записи. Бит 3 регистра определяет режим чтения (0 или 1), биты 1 и 0 - режим записи. Остальные биты этого регистра обычно нулевые.

В режиме чтения 0 в процессор передается значение одного из 4 регистров-защелок. Указателем номера регистра-защелки служит специальный регистр считываемого банка (еще одно название битовой плоскости). Этот регистр имеет номер 4. Такое последовательное чтение битовых плоскостей применяется, например, при записи изображения на диск.

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

Режим записи 0 является наиболее сложным, но дает большие возможности. Операция записи процессора инициирует комбинацию байтных и пиксельных операций. Байт данных от процессора можно использовать для модификации содержимого любых или всех битовых плоскостей и одновременно некоторое заданное значение пиксела можно использовать для модификации всех или любых пикселов. Значение пиксела - его цвет. В операции задействованы 4 служебных регистра графического адаптера, вместе с байтом данных от процессора воздействующих на регистры-защелки. Например, регистр битовой маски (номер 8) позволяет выделить нужный пиксел, чтобы сопоставить ему определенный цвет. Регистр маски плоскости (относится к группе регистров, адресуемых через порт 3С4, порт данных - 3С5) защищает от изменения определенные плоскости. Для формирования значений используются также сдвиговые операции.

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

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

Режим записи 3 поддерживается только адаптером VGA. В [ 3,4 ] излагается способ формирования данных для записи в битовые плоскости.

Работа VGA в 256-цветном режиме с разрешением 320*200 имеет особенности. Для одновременного отображения такого количества цветов под каждый пиксел отводится 8 бит. Эти биты идут последовательно, образуя 1 байт. Плоскости не используются, видеопамять начинается с адреса 0хА000:0. Точке с координатами (x,y) соответствует байт памяти по адресу 320*y+x. Это стандартный режим с номером (mode)13.

Существуют также нестандартные режимы адаптера VGA при работе с 256 цветами. Они программируются на ассемблере и позволяют установить повышенное разрешение (320*240 или 360*480). Здесь используются битовые плоскости, в которых в определенном порядке хранятся пикселы. В одной битовой плоскости хранятся пикселы 0,4,8 и т.д., в другой - 1,5,9 и т.д. Здесь также задействованы все служебные регистры, но меняется интерпретация находящихся в видеопамяти значений.

Видеокарты SVGA совместимы с VGA, но имеют большой набор дополнительных режимов. VGA является стандартом, SVGA - его расширение.

В 256-цветном режиме в адаптерах SVGA под каждый пиксел отводится 1 байт, вся видеопамять разбивается на банки одинакового размера (обычно по 64 К). Область адресного пространства 0хА000:0 - 0хА000:0хFFF соответствует выбранному банку. Ряд карт позволяет работать сразу с двумя банками.

Практически все различия между картами заключаются в установке режима с заданным разрешением и установке банка с заданным номером. Можно построить библиотеку, распознающую наличие основных SVGA карт и обеспечивающую работу с ними. Связь - через порты 0х3С4 и 0х3СЕ, работать можно на Си с привлечением ассемблера.

Ассоциацией стандартов в области видеоэлектроники VESA (Video Electronic Standarts Association) сделана попытка стандартизации работы с различными SVGA-платами путем добавления в BIOS платы (у видеоадаптеров - свой BIOS) некоторого стандартного набора функций, обеспечивающего получение необходимой информации о карте, установку заданного режима и банка памяти. При этом вводится стандартный набор расширенных режимов. Номер режима - 16-битовое число, биты с 9 по 15 зарезервированы и должны быть равны 0, бит 8 для VESA-режимов = 1, для «родных» режимов карты = 0.

Таблица основных VESA-режимов:

 

Номер Разрешение Бит на пиксел К-во цветов Номер Разрешение Бит на пиксел К-во цветов
100h 640 * 400     111h 640 * 480   64 К
101h 640 * 400     112h 640 * 480   16 М
102h 800 * 600     113h 800 * 600   32 К
103h 800 * 600     114h 800 * 600   64 К
104h 1024 * 768     115h 800 * 600   16 М
105h 1024 * 768     116h 1024 * 768   32 К
106h 1280 * 1024     117h 1024 * 768   64 К
107h 1280 * 1024     118h 1024 * 768   16 М
10Dh 320 * 200   32 К 119h 1280 * 1024   32 К
10Eh 320 * 200   64 К 11Ah 1280 * 1024   64 К
10Fh 320 * 200   16 М 11Bh 1280 * 1024   16 М
110h 640 * 480   32 К        

 

В [ 1 ] приведены файлы, содержащие структуры и функции для работы с VESA-совместимыми адаптерами. Здесь же приведена программа, выдающая информацию по всем доступным VESA-режимам.

Современные SVGA-карты поддерживают т.н. непалитровые режимы. Здесь для каждого пиксела вместо индекса в палитре непосредственно задается его RGB-значение. Обычно такими режимами являются HiColor (15 или 16 бит на пиксел) и TrueColor (24 бита на пиксел). Видеопамять этих режимов устроена аналогично 256-цветным SVGA: под каждый пиксел отводится 2 байта для HiColor и 3 байта для TrueColor, байты расположены подряд и сгруппированы в банки. Наиболее проста организация TrueColor (16 млн. цветов) - 1 байт под каждую из компонент цвета. Для HiColor под каждый пиксел отводится 2 байта. Здесь возможны варианты:

· каждая компонента занимает по 5 бит, последний бит не используется. Это дает всего 32 000 цветов;

· красная и синяя компоненты занимают по 5 бит, зеленая - 6 бит. Это дает всего 64 000 цветов.

 

Арифметическое сжатие

 

Подобно алгоритму Хаффмана при арифметическом сжатии используются короткие коды для часто повторяющихся участков, более длинные коды - для редко повторяющихся. Подобно LZW сжимаются последовательности. Идея: состоит в том, что каждая последовательность пикселов отображается в диапазон чисел между 0 и 1. Эта область затем представляется как двоичная дробь переменной точности. Учитываются вероятностные характеристики изображения. Существует несколько алгоритмов арифметического сжатия. В зависимости от характеристик исходного файла и точности используемой статистической модели можно достичь сжатия 100:1.

 

Сжатие с потерями

 

Сжатие с потерями используется в телевизионной рекламе, компьютерных играх, анимации. Здесь некоторый аспект исходных данных теряется (отбрасывается). Отбрасывается то, что, например, по телевидению не воспринимается глазом. В основном отбрасывается информация о цветовых оттенках. В критичных приложениях, например, в медицине, метод не используется. Наиболее распространен алгори







Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.