Компьютерная графика: Методические указания к самостоятельной работе студентов на практических занятиях по информатике, страница 4

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

Размер файла – объем, занимаемый графическим файлом на диске.

Для вычисления физического размера служат следующие соотношения:

разрешение  – ширина в пикселях, деленная на ширину в дюймах;

ширина в пикселях – ширина в дюймах, умноженная на разрешение;

ширина в дюймах – ширина в пикселях, деленная на разрешение;

ширина в сантиметрах – ширина в дюймах, умноженная на 2,54;

ширина в дюймах – ширина в сантиметрах, деленная на 2,54.

Соотношения для высоты изображения аналогичны.

Для вычисления информационного объема изображения необходимо помнить следующие соотношения:

количество пикселей – ширина, умноженная на высоту в пикселях;

информационный объем в битах – количество пикселей, умноженное на глу­бину цвета;

информационный объем в байтах – информационный объем в битах, деленный на восемь.

Глубина цвета зависит от цветового режима изображения. Наиболее распространенные цветовые режимы:

монохромный – на каждый пиксель выделен только один бит. Бит может принимать два значения: 0 и 1, поэтому в данном режиме используются только два цвета;

16-цветный – используются четыре бита, которыми кодируется цвет, они делятся следующим образом: по одному биту на каждый составляющий цвет (красный, синий, зеленый) и один бит яркости;

полутоновый – для кодирования цвета используются восемь бит, это означает, что можно закодировать 256 градаций серого цвета. Кодом 0 обозначается черный цвет, а кодом 255 – белый. Такой режим называют Grayscale (шкала серого цвета);

индексированных цветов – каждому используемому цвету в изображении присваивается номер, или, иначе говоря, индекс цвета. Для каждого пикселя хранится не настоящее описание цвета, а лишь номер в таблице цветов. Таблицу принято называть палитрой. В силу технических ограничений в годы создания этого режима в палитру входило не больше 256 цветов, т. е. для хранения каждого пикселя достаточно одного байта;

High Color – позволяет отображать 65 536 цветов, т. е. для кодирования цвета одного пикселя используется 16 бит;

True Color – на каждый из основных цветов для кодирования цвета одного пикселя выделяется восемь бит (один байт). Всего для хранения цвета пикселя требуется три байта. Таким образом, глубина цвета в этом режиме составляет 24 бита, а максимальное количество цветов в этом режиме – 16 777 216.

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

N = 2К,                                                          (1)

где  К – глубина цвета (в битах).

2.3. Сжатие графической информации

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

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

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

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

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

2.3.1. Сжатиебезпотерь

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

Алгоритм RLE (Run-Length Encoding – кодирование длины серии) часто называют алгоритмом группового сжатия, так как одинаковые данные группируются в процессе сжатия. Когда говорят об однородных объектах, то обычно их группируют, называя общее количество, вместо того, чтобы называть каждый по отдельности. Например, проще сказать: «В нашей группе учится 30 студентов», чем: «В нашей группе учится студент, студент, студент, ...». Точно такой же принцип используется в алгоритме RLE: если в изображении подряд идут несколько одинаковых пикселей, то записывается не каждый из них отдельно, а лишь их общее количество и цвет.

Рассмотрим пример. Предположим, что исходное изображение хранится в режиме 16 цветов. Числом 8 кодируется ярко-красный цвет, 14 – желтый, а числом 10 – ярко-зеленый. Исходная цепочка пикселей будет следующей: 8, 8, 8, 8, 8, 14, 14, 14, 10, 10, 10, 10, 10, 10, 14, 14, 14, а сжатая – 5, 8, 3, 14, 6, 10, 3, 14, где первая цифра означает количество пикселей, а вторая – их цвет. В результате сжатия цепочка стала короче более чем в два раза.

Алгоритм Хаффмана. При хранении изображения в обычном виде на
каждый пиксель выделено одинаковое количество битов, зависящее от используемого режима. Например, для кодирования восьми цветов достаточно трех бит. Это означает, что для хранения восьмицветного изображения размером
100 × 200 пикселей потребуется 100 × 200 × 3 = 60 000 бит = 7 500 байт.

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

Возьмем то же самое восьмицветное изображение размером 100 × 200. Пример распределения частот появления цветов на этом изобра­жении приведен  в табл. 1.