Кодирование графической информации

Кодирование данных в ЭВМ

ВЫНОСИТСЯ НА САМОСТОЯТЕЛЬНОЕ РАССМОТРЕНИЕ

Виды информации

Информация может существовать в виде:

текстов, рисунков, чертежей, фотографий;

- световых или звуковых сигналов;

- радиоволн;

- электрических и нервных импульсов;

- магнитных записей;

- жестов и мимики;

- запахов и вкусовых ощущений;

- хромосом, посредством которых передаются по наследству признаки и свойства организмов и т.д.

Данные в компьютере представляются в виде кода, который состоит из единиц и нулей в разной последовательности.

Код – набор условных обозначений для представления информации. Кодирование – процесс представления информации в виде кода.

Кодирование текстовой информации.

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

Кодовая таблица – это внутреннее представление символов в компьютере.

Во всем мире в качестве стандарта принята таблица ASCII (American Standard Code for Information Interchange – Американский стандартный код для обмена информацией). Для хранения двоичного кода одного символа выделен 1 байт = 8 бит. Учитывая, что каждый бит принимает значение 0 или 1, количество их возможных сочетаний в байте равно 28 = 256. Значит, с помощью 1 байта можно получить 256 разных двоичных кодовых комбинаций и отобразить с их помощью 256 различных символов. Эти комбинации и составляют таблицу ASCII. Эта таблица состоит из 16 строк и 16 столбцов, пронумерованных от 0 до F в 16-ричной системе счисления. Например, в столбце 4 и строке D таблицы расположена заглавная буква М латинского алфавита. Таким образом, при записи текста с такой буквой, она будет храниться в памяти в виде кода 4D(16) или 77(10). Другие коды: "," – 2C; "j" – 6A; "2" – 32. Такая форма кодирования позволяет представлять буквы в более компактном виде по сравнению с двоичным кодом.

Первые 8 столбцов таблицы кодов или первые 128 символов от 0 (двоичный код 00000000) до 127 (01111111) – цифры, буквы латинского алфавита, управляющие символы. Первые 32 символа являются управляющими и предназначены в основном для передачи команд управления. А последние 8 столбцов таблицы кодов, т.е. коды от 128 (двоичный код 10000000) до 255 (11111111) обычно содержат буквы национальных алфавитов, графические знаки. В большом количестве разновидностей таблицы кодов ASCII первая половина таблицы является неизменной, а вторая - переменной.

Однако 8-битовая кодировка (28) является недостаточной для кодировки всех символов расширенных алфавитов. Все препятствия могут быть сняты при переходе на 16-битовую (216) кодировку Unicode, допускающую 65536 кодовых комбинаций.

Необходимо помнить, что в настоящее время для кодировки русских букв используют пять различных кодовых таблиц (КОИ - 8, СР1251, СР866, Мас, ISO), причем тексты, закодированные при помощи одной таблицы, не будут правильно отображаться в другой кодировке. Наглядно это можно представить в виде фрагмента объединенной таблицы кодировки символов.

Одному и тому же двоичному коду ставится в соответствие различные символы.

Пример:

Двоичный код Десятичный код КОИ8 СР1251 СР866 Мас ISO
б В - - Т

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

Начиная с 1997 г. последние версии Microsoft Windows&Office поддерживают новую кодировку Unicode. Чтобы определить числовой код символа можно или воспользоваться кодовой таблицей, или, работая в текстовом редакторе MS Word. Для этого в меню нужно выбрать пункт «Вставка» – «Символ», после чего на экране появляется диалоговая панель «Символ». В диалоговом окне появляется таблица символов для выбранного шрифта. Символы в этой таблице располагаются построчно, последовательно слева направо, начиная с символа Пробел (левый верхний угол) и, кончая, буквой «я» (правый нижний угол).

Для определения числового кода символа в кодировке Windows (СР1251) нужно при помощи мыши или клавиш управления курсором выбрать нужный символ, затем щелкнуть по кнопке Клавиша. После этого на экране появляется диалоговая панель Настройка, в которой в нижнем левом углу содержится десятичный числовой код выбранного символа.

Задачи.

1. Два текста содержат одинаковое количество символов. Первый текст записан на русском языке, а второй на языке племени нагури, алфавит которого состоит из 16 символов. Чей текст несет большее количество информации?

Решение.

I = К * а (информационный объем текста равен произведению числа символов на информационный вес одного символа).
Т.к. оба текста имеют одинаковое число символов (К), то разница зависит от информативности одного символа алфавита (а).
2а1 = 32, т.е. а1 = 5 бит,
2а2 = 16, т.е. а2 = 4 бит.
I1 = К * 5 бит, I2 = К * 4 бит.
Значит, текст, записанный на русском языке в 5/4 раза несет больше информации.

2. Объем сообщения, содержащего 2048 символов, составил 1/512 часть Мбайта. Определить мощность алфавита.

Решение.

I = 1/512 * 1024 * 1024 * 8 = 16384 бит. - перевели в биты информационный объем сообщения.
а = I / К = 16384 /1024 =16 бит - приходится на один символ алфавита.
216 = 65536 символов - мощность использованного алфавита.
Именно такой алфавит используется в кодировке Unicode, который должен стать международным стандартом для представления символьной информации в компьютере.

Кодирование чисел.

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

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

Например, целое число, в зависимости от типа, может кодироваться одним, двумя или четырьмя байтами. Для получения кода положительного целого числа достаточно перевести его из десятичной в двоичную систему счисления, например, десятичное число 12 кодируется как двоичное 00001100 (при однобайтовом типе числа). Отрицательные целые числа часто кодируются в так называемом дополнительном коде, когда старший двоичный разряд используется как признак отрицательности числа, а остальные разряды должны быть такими, чтобы сумма отрицательного числа и его модуля равнялась нулю. Так, десятичное число –1 будет представлено как двоичное 1111111111111111 (при двухбайтовом типе числа). Минимально допустимое двухбайтовое число –32768 кодируется как 1000000000000000, а максимальное 32767 — как 0111111111111111.

Для вещественных (действительных, с плавающей точкой) чисел система кодирования является более сложной. Обычно для каждого числа часть байтов отводится для хранения мантиссы числа (M, причем 1<|М|<10), а часть — для порядка числа (b – целое число). Вещественное число представляется в виде: R=±М×10±b.

Чаще всего в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в таком представлении должна удовлетворять условию: 0,1p < M < 1p. Иначе говоря, мантисса меньше 1 и первая значащая цифра – не ноль (p – основание системы счисления).

В памяти компьютера мантисса представляется как целое число, содержащее только значащие цифры (0 целых и запятая не хранятся), так для числа 12,345 в ячейке памяти, отведенной для хранения мантиссы, будет сохранено число 0,12345. Для однозначного восстановления исходного числа остается сохранить только его порядок, в данном примере – это 2.

Кодирование графической информации.

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

Растровое изображение.

Форму представления на экране дисплея графического изображения, состоящего из отдельных точек (пикселей), называют растровой. Минимальным объектом в растровом графическом редакторе является точка (пиксель). Растровые изображения представляют собой однослойную сетку точек, называемых пикселами (pixel, от англ. picture element). Код пиксела содержит информацию о его цвете.

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

Пиксель на цветном дисплее может иметь различную окраску, поэтому одного бита на пиксель недостаточно. Для кодирования 4-цветного изображения требуются два бита на пиксель, поскольку два бита могут принимать 4 различных состояния. Может использоваться, например, такой вариант кодировки цветов: 00 – черный, 10 – зеленый, 01 – красный, 11 – коричневый.

Если говорить о кодировании цветных графических изображений, то нужно рассмотреть принцип декомпозиции произвольного цвета на основные составляющие. Применяют несколько систем кодирования: HSB, RGB и CMYK. Первая цветовая модель проста и интуитивно понятна, т. е. удобна для человека, вторая наиболее удобна для компьютера, а последняя модель CMYK – для типографий. Использование этих цветовых моделей связано с тем, что световой поток может формироваться излучениями, представляющими собой комбинацию «чистых» спектральных цветов: красного, зеленого, синего или их производных. Различают аддитивное цветовоспроизведение (характерно для излучающих объектов) и субтрактивное цветовоспроизведение (характерно для отражающих объектов). В качестве примера объекта первого типа можно привести электронно-лучевую трубку монитора, второго типа – полиграфический отпечаток.

Рассмотрим кратко основные цветовые модели:

1) Модель HSB характеризуется тремя компонентами: оттенок цвета (Hue), насыщенность цвета (Saturation) и яркость цвета (Brightness). Можно получить большое количество произвольных цветов, регулируя эти компоненты. Эту цветовую модель лучше применять в тех графических редакторах, в которых изображения создают сами, а не обрабатывают уже готовые. Значение цвета выбирается как вектор, выходящий из центра окружности. Направление вектора задается в угловых градусах и определяет цветовой оттенок. Насыщенность цвета определяется длиной вектора, а яркость цвета задается на отдельной оси, нулевая точка которой имеет черный цвет. Точка в центре соответствует белому (нейтральному) цвету, а точки по периметру - чистым цветам.

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

При 256 градациях тона (каждая точка кодируется 3 байтами) минимальные значения RGB (0,0,0) соответствуют черному цвету, а белому - максимальные с координатами (255, 255, 255). Чем больше значение байта цветовой составляющей, тем этот цвет ярче. Например, темно-синий кодируется тремя байтами (0, 0, 128), а ярко-синий (0, 0, 255).

3) Принцип метода CMYK. Эта цветовая модель используется при подготовке публикаций к печати. Каждому из основных цветов ставится в соответствие дополнительный цвет (дополняющий основной до белого). Получают дополнительный цвет за счет суммирования пары остальных основных цветов. Значит, дополнительными цветами для красного является голубой (Cyan,C) = зеленый + синий = белый – красный, для зеленого – пурпурный (Magenta, M) = красный + синий = белый – зеленый, для синего – желтый (Yellow, Y) = красный + зеленый = белый – синий. Причем принцип декомпозиции произвольного цвета на составляющие можно применять как для основных, так и для дополнительных, то есть любой цвет можно представить или в виде суммы красной, зеленой, синей составляющей или же в виде суммы голубой, пурпурной, желтой составляющей. В основном такой метод принят в полиграфии. Но там еще используют черный цвет (Black, так как буква В уже занята синим цветом, то обозначают буквой K). Это связано с тем, что наложение друг на друга дополнительных цветов не дает чистого черного цвета.

Различают несколько режимов представления цветной графики:

а) полноцветный (True Color);

б) High Color;

в) индексный.

При полноцветном режиме для кодирования яркости каждой из составляющих используют по 256 значений (восемь двоичных разрядов), то есть на кодирование цвета одного пикселя (в системе RGB) надо затратить 8×3=24 разряда. Это позволяет однозначно определять 16,5 млн цветов. Это довольно близко к чувствительности человеческого глаза. При кодировании с помощью системы CMYK для представления цветной графики надо иметь 8×4=32 двоичных разряда.

Режим High Color – это кодирование при помощи 16-разрядных двоичных чисел, то есть уменьшается количество двоичных разрядов при кодировании каждой точки. Но при этом значительно уменьшается диапазон кодируемых цветов.

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

Количество различных отображаемых цветов K и битовая глубина (число разрядов, используемых для кодировки цвета) I связаны формулой:

(1.5)

где, К – количество цветов,

I – битовая глубина.

Зависимость цветовой палитры монитора от информационной емкости одного пикселя: 4 бита – 16 цветов, 8 бит – 256 цветов.

Разрешающая способность монитора (количество точек по горизонтали и вертикали), а также число возможных цветов каждой точки определяются типом монитора. Например: 640×480 = 307 200 точек, 800×600 = 480 000 точек.

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

(1.6)

Например, при разрешении 640×480 и количестве цветов 16 (4 бита) объем памяти равен: 640×480×4=1 228 800 (бит) = 153 600 (байт) = 150 (Кбайт).

Векторное изображение.

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

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

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

К программным средствам создания и обработки векторной графики относятся следующие графические редакторы: CorelDraw, Adobe Illustrator, а также векторизаторы (трассировщики) – специализированные пакеты преобразования растровых изображений в векторные.

Задачи.

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

Объем видеопамяти рассчитывается по формуле:

V=I*X*Y,

где I – глубина цвета отдельной точки,

X, Y –размеры экрана по горизонтали и по вертикали (произведение х на у – разрешающая способность экрана).

Экран дисплея может работать в двух основных режимах: текстовом и графическом.

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

- разрешающая способность (количество точек, с помощью которых на экране воспроизводится изображение) - типичные в настоящее время уровни разрешения 800*600 точек или 1024*768 точек. Однако для мониторов с большой диагональю может использоваться разрешение 1152*864 точки.

- глубина цвета(количество бит, используемых для кодирования цвета точки), например, 8, 16, 24, 32 бита. Каждый цвет можно рассматривать как возможное состояние точки, Тогда количество цветов, отображаемых на экране монитора может быть вычислено по формуле

K=2I ,

где K – количество цветов,

I – глубина цвета или битовая глубина.

Кроме перечисленных выше знаний учащийся должен иметь представление о палитре:

- палитра (количество цветов, которые используются для воспроизведения изображения), например 4 цвета, 16 цветов, 256 цветов, 256 оттенков серого цвета, 216 цветов в режиме называемом High color или 224 , 232 цветов в режиме True color.

 

Задача 1

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

Режим экрана Глубина цвета (бит на точку)
640 на 480          
800 на 600          
1024 на 768          
1280 на 1024          

Решение:

1.Всего точек на экране (разрешающая способность): 640 * 480 = 307200

2. Необходимый объем видеопамяти V= 4 бит * 307200 = 1228800 бит = 153600 байт = 150 Кбайт.

3. Аналогично рассчитывается необходимый объем видеопамяти для других графических режимов. При расчетах учащийся пользуется калькулятором для экономии времени.

Ответ:

Режим экрана Глубина цвета (бит на точку)
640 на 480 150 Кб 300 Кб 600 Кб 900 Кб 1,2 Мб
800 на 600 234 Кб 469 Кб 938 Кб 1,4 Мб 1,8 Мб
1024 на 768 384 Кб 768 Кб 1,5 Мб 2,25 Мб 3 Мб
1280 на 1024 640 Кб 1,25 Мб 2,5 Мб 3,75 Мб 5 Мб

 

Задача 2

2. Черно-белое (без градаций серого) растровое графическое изображение имеет размер 10 ´10 точек. Какой объем памяти займет это изображение?

Решение:

Количество точек -100

Так как всего 2 цвета черный и белый, то глубина цвета равна 1 ( 21 =2)

Объем видеопамяти равен 100*1=100 бит

Задача 3

3. Для хранения растрового изображения размером 128 x 128 пикселей отвели 4 КБ памяти. Каково максимально возможное число цветов в палитре изображения.

Решение:

Определим количество точек изображения. 128*128=16384 точек или пикселей.

Объем памяти на изображение 4 Кб выразим в битах, так как V=I*X*Y вычисляется в битах. 4 Кб=4*1024=4 096 байт = 4096*8 бит =32768 бит

Найдем глубину цвета I =V/(X*Y)=32768:16384=2

N=2I , где N – число цветов в палитре. N=4

Ответ: 4

Задача 4

4. Сколько бит видеопамяти занимает информация об одном пикселе на ч/б экране (без полутонов)?

Решение:

Если изображение Ч/Б без полутонов, то используется всего два цвета –черный и белый, т.е. К=2, 2i =2, I= 1 бит на пиксель.

Ответ: 1 пиксель

Задача 5

5. Какой объем видеопамяти необходим для хранения четырех страниц изображения, если битовая глубина равна 24, а разрешающая способность дисплея- 800 х 600 пикселей?

Решение:

Найдем объем видеопамяти для одной страницы: 800*600*24=11520000 бит =1440000 байт =1406,25 Кб ≈1, 37 Мб

1,37*4 =5,48 Мб ≈5.5 Мб для хранения 4 страниц.

Ответ: 5.5 Мб