Кодирование графической информации. Под графической информацией можно понимать рисунок, чертеж, фотографию, картинку в книге, изображения на экране телевизора или в кинозале и т
Под графической информацией можно понимать рисунок, чертеж, фотографию, картинку в книге, изображения на экране телевизора или в кинозале и т. д. Для обсуждения общих принципов кодирования графической информации в качестве конкретного, достаточно общего случая графического объекта выберем изображение на экране телевизора. Это изображение состоит из некоторого количества горизонтальных линий – строк. А каждая строка в свою очередь состоит из элементарных мельчайших единиц изображения – точек, которые принято называть пикселами (picsel – PICture'S ELement – элемент картинки). Весь массив элементарных единиц изображения называют растром (лат. rastrum – грабли). Степень четкости изображения зависит от количества строк на весь экран и количества точек в строке, которые представляют разрешающую способность экрана или просто разрешение. Чем больше строк и точек, тем четче и лучше изображение. Достаточно хорошим считается разрешение 640x480, то есть 640 точек на строку и 480 строчек на экран.
Строки, из которых состоит изображение, можно просматривать сверху вниз друг за другом, как бы составив из них одну сплошную линию. После полного просмотра первой строки просматривается вторая, за ней третья, потом четвертая и т. д. до последней строки экрана. Так как каждая из строк представляет собой последовательность пикселов, то все изображение, вытянутое в линию, также можно считать линейной последовательностью элементарных точек. В рассматриваемом случае эта последовательность состоит из 640x480=307200 пикселов. Вначале рассмотрим принципы кодирования монохромного изображения, то есть изображения, состоящего из любых двух контрастных цветов – черного и белого, зеленого и белого, коричневого и белого и т. д. Для простоты обсуждения будем считать, что один из цветов – черный, а второй – белый. Тогда каждый пиксел изображения может иметь либо черный, либо белый цвет. Поставив в соответствие черному цвету двоичный код “0”, а белому – код “1” (либо наоборот), мы сможем закодировать в одном бите состояние одного пикселя монохромного изображения. А так как байт состоит из 8 бит, то на строчку, состоящую из 640 точек, потребуется 80 байтов памяти, а на все изображение – 38 400 байтов.
Однако полученное таким образом изображение будет чрезмерно контрастным. Реальное черно-белое изображение состоит не только из белого и черного цветов. В него входят множество различных промежуточных оттенков – серый, светло-серый, темно-серый и т. д. Если кроме белого и черного цветов использовать только две дополнительные градации, скажем светло-серый и темно-серый, то для того чтобы закодировать цветовое состояние одного пикселя, потребуется уже два бита. При этом кодировка может быть, например, такой: черный цвет – 002, темно-серый – 012, светло-серый – 102, белый – 112.
Общепринятым на сегодняшний день, дающим достаточно реалистичные монохромные изображения, считается кодирование состояния одного пикселя с помощью одного байта, которое позволяет передавать 256 различных оттенков серого цвета от полностью белого до полностью черного. В этом случае для передачи всего растра из 640x480 пикселов потребуется уже не 38 400, а все 307 200 байтов.
Цветное изображение может формироваться различными способами. Один из них – метод RGB (от слов Red, Green, Blue – красный, зеленый, синий), который опирается на то, что глаз человека воспринимает все цвета как сумму трех основных цветов – красного, зеленого и синего. Например, сиреневый цвет – это сумма красного и синего, желтый цвет – сумма красного и зеленого и т. д. Для получения цветного пикселя в одно и то же место экрана направляется не один, а сразу три цветных луча. Опять упрощая ситуацию, будем считать, что для кодирования каждого из цветов достаточно одного бита. Нуль в бите будет означать, что в суммарном цвете данный основной отсутствует, а единица – присутствует. Следовательно, для кодирования одного цветного пиксела потребуется 3 бита – по одному на каждый цвет. Пусть первый бит соответствует красному цвету, второй – зеленому и третий – синему. Тогда код 101(2) обозначает сиреневый цвет – красный есть, зеленого нет, синий есть, а код 110(2) – желтый цвет – красный есть, зеленый есть, синего нет. При такой схеме кодирования каждый пиксел может иметь один из восьми возможных цветов. Если же каждый из цветов кодировать с помощью одного байта, как это принято для реалистического монохромного изображения, то появится возможность передавать по 256 оттенков каждого из основных цветов. А всего в этом случае обеспечивается передача 256x256x256=16 777 216 различных цветов, что достаточно близко к реальной чувствительности человеческого глаза. Таким образом, при данной схеме кодирования цвета на изображение одного пикселя требуется 3 байта, или 24 бита, памяти. Этот способ представления цветной графики принято называть режимом True Color (true color – истинный цвет) или полноцветным режимом.
Следует упомянуть еще один часто используемый метод представления цвета, в котором вместо основного цвета используется его дополнение до белого. Если три цвета: красный, зеленый и синий вместе дают белый, то дополнением для красного, очевидно, является сочетание зеленого и синего, то есть голубой цвет. Аналогичным образом дополнением для зеленого является сочетание красного и синего, то есть пурпурный, а для синего – сочетание красного и зеленого, то есть желтый цвет. Эти три цвета – голубой, пурпурный и желтый с добавлением черного образуют основные цвета в системе кодирования, которая называется CMYK (от Cyan – голубой, Magenta – пурпурный, Yellow – желтый и blacK – черный). Этот режим также относится к полноцветным, но для передачи состояния одного пикселя в этом случае требуется 32 бита, или четыре байта, памяти, и может быть передано 4 294 967 295 различных цветов.
Полноцветные режимы требуют очень много памяти. Так, для обсуждавшегося выше растра 640x480 при использовании метода RGB требуется 921 600, а для режима CMYK – 1 228 800 байтов памяти. В целях экономии памяти разрабатываются различные режимы и графические форматы, которые немного хуже передают цвет, но требуют гораздо меньше памяти. В частности, можно упомянуть режим High Color (high color – богатый цвет), в котором для передачи цвета одного пикселя используется 16 битов и, следовательно, можно передать 65 535 цветовых оттенков, а также индексный режим, который базируется на заранее созданной таблице цветовых оттенков. Нужный цвет выбирается из этой таблицы с помощью номера – индекса, который занимает всего один байт памяти.
При записи изображения в память компьютера кроме цвета отдельных точек необходимо фиксировать много дополнительной информации – размеры рисунка, яркость точек и т. д. Конкретный способ кодирования всей требуемой при записи изображения информации образует графический формат. Форматы кодирования графической информации, основанные на передаче цвета каждого отдельного пикселя, из которого состоит изображение, относят к группе растровых или BitMap форматов (bit map – битовая карта).
Дата добавления: 2016-03-22; просмотров: 821;