- •I. ОСНОВНЫЕ ПОНЯТИЯ СОВРЕМЕННОЙ КОМПЬЮТЕРНОЙ ГРАФИКИ
- •1.1. Философия развития средств визуализации
- •1.2. Понятия компьютерной графики
- •1.3. Основные направления современной компьютерной графики
- •Контроль знаний.
- •2.1. Устройства видеовывода
- •2.1.1. Видеоадаптеры
- •2.1.1.1. История видеосистем персональных компьютеров
- •2.1.1.2. Устройство видеоадаптера VGA
- •2.1.1.3. Видеоадаптеры SVGA
- •2.1.1.4. Современные тенденции конструирования видеоадаптеров
- •2.1.2. Мониторы
- •2.1.3.Принтеры
- •2.1.4. Плоттеры
- •2.2. Устройства ввода графической информации
- •2.2.1. Мышь в графических режимах
- •2.2.2. Тачпад и Трекпойнт
- •2.2.3. Дигитайзеры
- •2.2.4. Сканеры
- •Контроль знаний.
- •3.1. Основные определения
- •3.2. Особенности цветового зрения человека
- •3.3. Цветовые модели компьютерной графики
- •3.3.1. Аддитивные цветовые модели
- •3.3.2 Субтрактивные цветовые модели
- •3.3.3. Перцепционные цветовые модели. Модели CIE
- •Контроль знаний.
- •IV. РАСТРОВАЯ ГРАФИКА
- •4.1. Геометрические характеристики растра
- •4.2. Методы улучшения растровых изображений
- •4.2.1. Устранение ступенчатого эффекта – антиалиасинг (antialiasing)
- •4.2.2. Эмуляция оттенков цвета – дизеринг (dithering)
- •4.3. Алгоритмические основы растровой графики
- •4.3.1. Поиск оптимального алгоритма рисования прямой
- •4.3.2. Инкрементный алгоритм Брезенхема (Bresenham) для прямой
- •4.3.3. Алгоритмы рисования окружности
- •4.3.4. Заполнение многоугольников
- •4.3.4.1. Построчное заполнение
- •4.3.4.2. Сортировка методом распределяющего подсчета
- •4.3.5. Отсечение отрезков
- •4.3.5.1. Двумерный алгоритм Коэна-Сазерленда
- •4.3.6. Отсечение многоугольника
- •4.3.6.1. Алгоритм Сазерленда-Ходгмана
- •4.3.6.2. Алгоритм отсечения многоугольника Вейлера-Азертона
- •Контроль знаний.
- •5.1. Введение в векторную графику
- •5.2. Элементы (объекты) векторной графики. Объекты и их атрибуты
- •5.3. Цвет в векторной графике
- •5.4. Структура векторной иллюстрации
- •5.5. Применение векторной графики
- •5.6. Графические пакеты для работы с растровой графикой
- •Контроль знаний.
- •VI. ТРЁХМЕРНАЯ ГРАФИКА
- •6.1. Основные понятия трехмерной графики
- •6.3. Геометрическое моделирование
- •6.3.1. Элементы моделей
- •6.3.2. Методы построения моделей
- •6.4. Построение проекций пространственных образов
- •6.5. Алгоритмические основы трёхмерной графики
- •6.5.1. Преобразования координат
- •6.5.2. Параметрическое задание кривых на плоскости и в пространстве. Кривые Безье
- •6.5.3. Удаление невидимых частей изображения. Закрашивание граней
- •6.5.3.1 2D алгоритм Сазерленда-Кохена
- •6.5.3.2 3D алгоритм Робертса, алгоритм Варнока
- •6.6. Фракталы
- •Контроль знаний.
- •VII. ФОРМАТЫ ГРАФИЧЕСКИХ ФАЙЛОВ
- •7.1. Основные понятия
- •7.2. Растровые форматы файлов и алгоритмы сжатия
- •7.2.1. Формат PCX и групповое кодирование
- •7.2.2. Формат BMP
- •7.2.3.Формат TGA (Targa)
- •7.2.4. Формат GIF
- •7.2.5. Aлгоритм сжатия LZW для GIF
- •7.2.6. Формат JPEG и алгоритм сжатия с потерями
- •7.2.7. Формат RAW для профессионального использования
- •7.2.8. Формат FIF и фрактальное сжатие
- •Контроль знаний.
тов в палитре изображения. Коэффициенты сжатия для RLE в случае формата PCX: лучший 32, средний 2, худший 0.5.
7.2.2. Формат BMP
Рисунок 66 – Формат хранения растрового (bitmap) изображения Формат хранения растрового (bitmap) изображения разработан и поддер-
живается компанией Microsoft и используется в операционной системе Windows и создаваемых под неё приложениях.
Файл формата "BMP" имеет следующую достаточно простую структуру, содержащую в своей основе используемый Windowsв формат DIB (DeviceIndepended Bitmap) с разделенной информацией о цвете и изображении:
141
Расшифровка числа битов на пиксель:
1 – монохромное изображение, два элемента палитры, каждый бит графических данных - индекс в палитре.
4 – 16 цветов, до 16 элементов палитры, каждый пиксель кодируется 4 битами в массиве графических данных
8 – 256 цветов, до 256 элементов палитры, каждый байт графических данных имеет значение индекса в палитре цветов
24 – True Color формат (16 млн. цветов), массив палитры отсутствует, каждые 3 байта графических данных представляют RGB-код.
RGBQUAD – палитра
Данные растрового изображения
Последовательность байтов графических данных, возможно подвергнутых сжатию. Строки изображения восстанавливаются снизу вверх слева направо. Строки дополняются битами до 32-битной границы.
Рисунок 67 – RGBQUAD – палитра
Преимущества формата проявляются только при работеMicrosoftс Windows и ее приложениями. Алгоритмы обработки данного формата наиболее просты и понятны. Недостаток – чаще всего огромный размер получаемых файлов (так как даже простейшее сжатие обычно не используется).
Особенности RLE для формата BMP.
BMP-файлы могут хранить сжатое изображение (тогда они обычно имеют расширение RLE), используя метод группового кодирования, где группы из последовательности одинаковых пикселей записаны в виде числа повторенийn и значения повторяемого цветаv. Таким образом, для распаковки сжатого изображения следует отобразить n пикселей v цвета, а затем переходить к другой кодовой группе. Максимальный размер группы n = 255 пикселей, при этом, чем длиннее группа, тем эффективнее сжатие. Сжатие может осуществляться на
142
уровне байтов (256 цветов) или полубайтов (16 и менее цветов). 24-битные данные не сжимаются. Для BMP коэффициенты сжатия RLE: лучший 64, средний
3, худший 128/129.
1) Кодирование BI_RLE8. В данном формате обработка ведется на уровне байтов. Пиксели хранятся в виде многобайтовых блоков, как минимум, по два байта каждый. Если первый байт блока не равен нулю, он представляет собой байт-повторитель, за которым идет 8-разрядный индекс цвета (рис. V.2).
Пример: код "07 0А" распакуется в последовательность "0А 0А 0А 0А 0А 0А 0А" и процедура перейдет к чтению нового блока.
Если первый байт блока равен нулю, то это специальная командная последовательность, которая имеет следующий ряд значений:
00 00 – закончить текущую строку развертки и начать новую. 00 00 – закончить текущую строку развертки и начать новую. 00 01 – конец данных, закончить распаковку изображения.
00 02 XX YY – отобразить следующий пиксель сXX-горизонтальным и YY-вертикальным смещением относительно текущей позиции. Цвета пропущенных пикселей не определяются.
00 NN k1 k2 k3 ...kn – отобразить NN несжатых пикселей с цветами, опре-
деляемыми индексами k1 , k2 ...kn . Поскольку все команды должны иметь четное число байтов, блок этого типа заканчивается дополнительным нулевым байтом, если NN нечетное. Очевидно, что 3<=NN<=255.
Пример: код "00 05 03 0А 02 01 07 00" распакуется в последовательность
"03 0А 02 01 07".
Рисунок 68 – Кодирование BI_RLE8 для BMP формата
2) Кодирование BI_RLE4. Особенность этого формата в том, что операции проводятся с четверками битов (полубайтами), схема кодирования остается такой же.
Если первый байт не равен нулю, то он определяет количество пикселей для вывода. В старших четырех битах второго байта хранится индекс цвета1, а в младшей – индекс цвета 2. При распаковке эти цвета чередуются.
143
Если первый байт равен нулю, то это специальная команда, которая отрабатывается так же, как и в случае BI_RLE8, за исключением последней – режима абсолютного вывода. В этом случае второй байт содержит количество следующих за ним полубайтов. Общее число байтов в такой группе дополняется нулями до границы 16-разрядного слова.
Пример: группа "00 05 12 34 50 00" превратится в "1 2 3 4 5". Три конечных нулевых полубайта – только дополнение, которое игнорируется.
7.2.3.Формат TGA (Targa)
Был разработан вTruevision Inc. и AT&T для аппаратной реализации в платах оцифровки видеоизображений (Targa), широко используется в профессиональных системах компьютерной графики и видеомонтажа.
Общая структура файла:
Заголовок (блок переменной длины, структуру см. в табл. V.5)
Палитра (блок переменной длины, длина указана в заголовке, может отсутствовать)
Видеоданные (блок переменной длины, может отсутствовать)
Завершитель (может отсутствовать)
Каталог разработчика (может отсутствовать)
Область расширения (может отсутствовать) Структура байта описателя изображения:
– биты 0, 1, 2, 3 отвечают за организацию альфа-канала, если его нет - ну-
ли.
– биты 4, 5 ответственны за порядок сохранения / восстановления пиксе-
лей.
– биты 6, 7 всегда нули.
Если палитра отсутствует, то цвет кодируется байтами видеоданных, при этом действуют те же соглашения, что и в случае описания палитры, при этом информация берется из байта со смещением16. Например, если байт 1 равен нулю (палитры нет), а число бит на пиксель равно 24, то идущие за заголовком видеоданные представляют собой набор трехбайтовыхBGRпоследовательностей, соответствующих каждому пикселю изображения.
Завершителем является строкаTRUEVISION-TARGA22 и нулевой символ на конце неё.
22
Однако, Adobe Photoshop ставит в качестве завершителя строку TRUEVISION-XFILE
144
Рисунок 69 – Кодирование RLE для TGA формата
Рисунок 70 – Структура заголовка файла формата TGA
145