Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otv1.doc
Скачиваний:
43
Добавлен:
22.09.2019
Размер:
1.29 Mб
Скачать

14.Кодирование графических данных.

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

Правда, так было не всегда. Самые первые компьютеры могли работать только с числами – производить вычисления. Затем с увеличением быстродействия процессоров, появлением дисплеев и внешней памяти на магнитных носителях появилась возможность обрабатывать текстовую информацию. Но уже тогда хотелось создавать таблицы и графики, рисовать на компьютере. Но на алфавитно-цифровых дисплеях графика была возможна только как "псевдографика" (вообще, для компьютера "псевдо" – широко распространенное явление: графика – точечная, пространство – виртуальное, интеллект – искусственный и т.д.).

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

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

Пожалуй, именно для представления в двоичном коде информации графического вида разработано наибольшее число различных способов. Косвенным свидетельством этого можно считать наличие большого числа форматов графических файлов: *.bmp, *.jpg, *.tif, *.pcx, *.aca, *.cdr и т.д. Отчасти это связано с тем, что для хранения рисунков в двоичном коде требуется много места в памяти ком- пьютера, и программисты всегда пытались изобрести "экономный" способ кодирования графических изображений.

Важным этапом кодирования графического изображения является разбиение его на дискретные элементы (дискретизация).

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

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

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

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

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

Правила могут быть самыми разнообразными, рассмотрим наиболее простое из них.

Если рисунок черно-белый, то достаточно ставить в соответствие клеточке, у которой "закрашено" больше половины площади, единицу, иначе – ноль. Если рисунок цветной, то для каждой точки нужно сохранять код ее цвета.

Точки-клетки, на которые разбивается изображение, называются пикселями.

Pixel (picture element – элемент рисунка) – минимальная единица изображения, цвет и яркость ко- торой можно задать независимо от остального изображения.

В соответствии с матричным принципом строятся изображения, выводимые на принтер, ото- бражаемые на экране дисплея, получаемые с помощью сканера.

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

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

Глубина цвета – длина кода, используемого при кодировании цвета одного пикселя. При глубине кода, равной 1, можно передать 21 = 2 цвета (например, черный и белый). При глубине кода, равной 4, можно передать 24 = 16 цветов.

При глубине кода, равной 8 (1 байт), можно передать 28 = 256 цветов.

При глубине кода, равной 16 (2 байта), можно передать 216 = 65536 цветов (режим High Color).

При глубине кода, равной 24 (3 байта), можно передать 224 = = 16777216 оттенков цвета (режим True Color).

Каким образом кодируется цвет пикселя или графического примитива?

Если Вы посмотрите на экран дисплея через сильную лупу или увеличительное стекло, то увидите либо множество разноцветных прямоугольников, либо множество разноцветных кружочков (в зависимости от марки и модели техники). Каждый экранный пиксель состоит из трех таких элементов, один из которых красного (Red), другой зеленого (Green), третий синего (Blue) цвета (RGB-модель цветообразования).

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

Рассмотрим самый простой случай – каждый из трех составляющих пикселя может либо гореть (1), либо не гореть (0). Тогда мы получаем следующий набор цветов:

Красный

Зеленый

Синий

Цвет

0

0

0

Черный

0

1

0

Зеленый

0

0

1

Синий

1

0

0

Красный

0

1

1

Бирюзовый

1

1

0

Желтый

1

0

1

Малиновый

1

1

1

Белый

При печати на принтере используется несколько иная цветовая модель: если монитор испускал свет и оттенок получался в результате "сложения" цветов, то краски – поглощают свет, цвета "вычитаются". Попробуйте покрасить бумагу смесью из красной, зеленой и синей краски – вряд ли вы когда-нибудь получите белый цвет. Поэтому для цветной печати используют в качестве основных иные цвета – голубую (Суаn), пурпурную (Magenta) и желтую (Yellow) краски. Теоретически наложение этих трех цветов должно давать черный цвет. На практике из-за неидеальности красителей чаще получается серый или коричневый цвет. Поэтому в качестве четвертого основного цвета к ним обычно добавляют черную (blacK) краску. Отсюда пошло название этого способа цветообразования – CMYK- модель. Для хранения информации о доле каждой краски и в этом случае чаще всего используется 1 байт.

Для кодирования цветных графических изображений применяется принцип декомпозиции произвольного цвета на основные составляющие. В качестве таких составляющих используют три основные цвета: красный (Red, R), зеленый (Green, G) и синий (Blue, В). На практике считается (хотя теоретически это не совсем так), что любой цвет, видимый человеческим глазом, можно получить путем механического смешения этих трех основных цветов. Такая система кодирования называется системой RGB по первым буквам названий основных цветов.

Если для кодирования яркости каждой из основных составляющих использовать по 256 значений (восемь двоичных разрядов), как это принято для полутоновых черно-белых изображений, то на кодирование цвета одной точки надо затратить 24 разряда. При этом система кодирования обеспечивает однозначное определение 16,5 млн различных цветов, что на самом деле близко к чувствительности человеческого глаза. Режим представления цветной графики с использованием 24 двоичных разрядов называется полноцветным (Тrue Со1оr).

Каждому из основных цветов можно поставить в соответствие дополнительным цвет, то есть цвет, дополняющий основной цвет до белого. Нетрудно заметить, что для любого из основных цветов дополнительным будет цвет, образованный суммой пары остальных основных цветов. Соответственно, дополнительными цветами являются: голубой (Cyan, С), пурпурный (Маgenta, М) и желтый (Yellow, У). Принцип декомпозиции произвольного цвета на составляющие компоненты можно применить не только для основных цветов, но и для дополнительных, то есть любой цвет можно представить в виде суммы голубой, пурпурной и желтой составляющей. Такой метод кодирования цвета принят в полиграфии, но в полиграфии используется (еще и четвертая краска — черная (В1аск, К). Поэтому данная система кодирования обозначается четырьмя буквами СМYК (черный цвет обозначается буквой К, потому, что буква В уже занята синим цветом), и для представления цветной графики и этой системе надо иметь 32 двоичных разряда. Такой режим тоже называется полно-цветным (Тгие Со1ог).

Если уменьшить количество двоичных разрядов, используемых для кодирования цвета каждой точки, то можно сократить объем данных, но при этом диапазон кодируемых цветов заметно сокращается. Кодирование цветной графики 16-разрядными двоичными числами называется режимом Нigh Со1оr.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]