Обработка данных - Web-4-U

advertisement
10. Представление данных в компьютере
Типы данных, с которыми работает пользователь:
 числа;
 текст;
 графика (рисунки);
 звук.
10.1. Представление чисел в компьютере
Первые компьютеры были сделаны для обработки только чисел. Это решение
определили 2 причины:
- само по себе число не несёт никакого смысла, оно является наиболее
абстрактным объектом;
- обработка чисел является часто выполняемым и очень трудоёмким процессом,
который необходимо автоматизировать.
Абстрактность чисел означает, что устройства обработки данных, представленных
в числовой форме, могут применяться в большом количестве предметных областей. В то
же время, в большом количестве предметных областей люди столкнулись с
необходимостью обработки большого количества числовых данных. Задачи, где требуется
обработка больших объёмов числовых данных, существуют в генетике, молекулярной
биологии,
управлении различными техническими средствами, ядерной физике,
управлении организационными объектами и т.д.
Как представить с помощью технического средства числа привычной для человека
десятичной системы счисления? 10-ичная система счисления, по сути, является языком с
алфавитом, состоящим из 10 знаков – цифр. 10-ичная система счисления является
позиционной. С точки зрения технической реализации, это значит, что необходимо иметь
какое-то «элементарное» техническое устройство, которое может находиться в 10
состояниях. Каждое состояние интерпретируется человеком, как конкретная цифра.
Человек должен различать эти состояния. Один из вариантов «сообщения» человеку о
состоянии технического устройства: у устройства имеется индикатор, который
высвечивает номер состояния устройства. Если техническая система должна по условию
задачи хранить числа в интервале от 0 до 999, то для хранения каждого слова (числа)
необходимо иметь составное устройство, состоящее из 3-х «элементарных» устройств.
Это известно из привычной для человека 10-ичной системы счисления. Этот же результат
может быть получен из формулы Хартли:
Inf = H(1000) = log101000 = 3.
Основанием логарифма является число 10, т.к. элементарное устройство, по
нашему условию, может хранить 10 цифр.
На рисунке 10.1.1. представлены 2 устройства, хранящие 2 числа: 872 и 4.
Рис. 10.1.1.
«Элементарное» устройство не может находиться в каком-то ином, кроме 10
установленных состояний. По этой причине при хранении второго числа два устройства
находятся в состоянии «0».
1
При обсуждении языков рассматривалась таблица соответствия между словами
естественных языков. В данной ситуации должна быть аналогичная таблица (Рис. 10.1.2.).
Таблица соответствия между состояниями «элементарного» устройства и цифрами
Понятия, введённые
человеком
цифра 0
цифра 1
цифра 2
цифра 3
…
Интерпретация
человеком состояния
устройства
0
1
2
3
…
Состояния
технического
устройства
состояние А
состояние В
состояние С
состояние D
…
Рис. 10.1.2.
Для десятичной системы счисления необходимо было найти устройство, которое
имело бы минимум 10 устойчивых состояний. В процессе проработки этой идеи учёные
пришли к выводу: с точки зрения технической реализации наиболее целесообразно
применить в компьютере устройства с двумя устойчивыми состояниями.
«Целесообразность» состоит в том, что устройство с двумя устойчивыми состояниями
гораздо проще устройства с 10 устойчивыми состояниями. Кроме того, мы видим, такое
решение полностью согласуется с алфавитным подходом к измерению количества
информации.
По этой причине в компьютерах используется язык с двоичным алфавитом или
двоичный язык. Каждому элементу двоичного языка можно поставить в соответствие
одно из 2-х различных состояний технического устройства.
Пример. Электрический выключатель. Он имеет 2 устойчивых состояния. Человек
их интерпретирует, исходя из назначения этого устройства, как «включено» и
«выключено» (on и off).
При создании искусственного языка человек должен выбрать один из 2-х
вариантов:
1. создавать для нового языка правила формирования слов;
2. использовать такой язык, в котором уже созданы эти правила.
Первые компьютеры создавались только для обработки чисел. По этой причине
каждому состоянию «элементарного» устройства были поставлены в соответствие 2
цифры 2-ичной системы счисления: 0 и 1. И правила формирования слов определились
тем, что этот искусственный язык разработчики первого компьютера стали рассматривать
как двоичную систему счисления.
Сравнивая электрический выключатель и «элементарное» устройство компьютера,
можно видеть, что смысл каждого состояния устройства (в данном случае устройств с
двумя устойчивыми состояниями) определяется, прежде всего, человеком, исходя из
условий использования устройства.
Коды чисел в двоичной системе счисления состоят из разрядов. В двоичной
системе счисления содержимым каждого разряда может либо 0, либо 1, т.е. двоичная
цифра (binary digit). Сокращая эти два слова, разработчики первых компьютеров стали
вместо слова «разряд» употреблять слово «бит».
Бит: разряд двоичного кода числа.
При обработке на компьютере числовых данных необходимо хранить какое-то
количество чисел: начальные значения данных, значения констант (например, значение
числа π=3,1415926) , промежуточные значения, возникающие в процессе решения задачи,
и результаты. Отсюда следует, что в компьютере должно быть устройство памяти, которое
2
хранит эти числа. Можно представить себе устройство памяти в виде групп
«элементарных» устройств. Для упрощения конструкции компьютера каждая группа,
которая хранит код одного числа, состоит из одного и того же количества «элементарных»
устройств.
Триггер («элементарное» устройство): устройство, имеющее 2 состояния и
предназначенное для хранения в памяти компьютера 1 бита информации (содержимого
одного разряда двоичного кода числа или одной цифры двоичного кода).
Ячейка памяти компьютера: группа триггеров для хранения кода одного числа.
Устройство памяти компьютера для хранения чисел: совокупность ячеек
памяти, каждая из которых предназначена для хранения кода одного числа.
Рис. 10.1.3.
На рисунке 10.1.3. Вы видите условную схему устройства памяти компьютера для
хранения 41-разрядных чисел. Первые компьютеры имели устройства памяти для
хранения чисел размером 39, 41, 45, 63 разряда.
Когда пользователь выбирает компьютер для решения своей задачи, он должен
знать диапазон представимых в компьютере чисел – максимальное и минимальное. При
этом ему удобнее оперировать не количеством триггеров в ячейке памяти, а длиной слова
компьютера, которая измеряется количеством разрядов кода числа. Например, говорят,
длина слова компьютера равна 41 разряду.
На этом примере можно видеть, что применительно к компьютерам, в частности, и,
вообще, к техническим устройствам существуют 2 понятия: уровень логический и уровень
физический.
Уровень логический: как какая-то проблема (понятие, процесс) представляется
для человека.
Уровень физический: как эта же проблема (понятие, процесс) реализована в
техническом устройстве.
Мы уже знаем, что в компьютере данные представляются на простом языке с
двоичным алфавитом. Мы уже рассматривали общее определение понятия «слово» для
простого языка: определённым образом отобранная группа элементов алфавита,
обозначающая имя объекта. В данной ситуации можно сказать короче.
Слово компьютера: определённым образом отобранная группа элементов
алфавита для представления чисел.
В простом языке слова имеют одинаковую длину. Т.е., если говорить о хранении
данных на логическом уровне, то можно сказать, что данные хранятся в виде слов, причём
длина каждого слова составляет n бит. Если говорить о физическом уровне, то каждое
слово хранится в ячейке памяти компьютера, состоящей из n триггеров.
3
Для пользователя компьютер представляется на логическом уровне, для
программиста – на физическом уровне.
Решение задач по обработке чисел на первых компьютерах выглядело следующим
образом:
Рис. 10.1.4.
Из рисунка 10.1.4. видно, что преобразование и восстановление чисел выполнял
сам человек. Причина состояла в том, что преобразование в компьютере кодов чисел из
одной системы в другую оказалось гораздо более сложной задачей по сравнению с
выполнением арифметических операций.
Только спустя несколько лет задачи
преобразования и восстановления были реализованы программными средствами.
Первые компьютеры применялись для численных расчётов при решении ряда
научных задач. В этих задачах значения чисел были либо достаточно большими
(космические полёты, ядерная физика), либо достаточно малыми (ядерная физика) . Кроме
того, очевидно, что при решении реальных задач человек сталкивается со всеми
разновидностями вещественных чисел (Рис. 10.1.5).
Очевидно, что в компьютерах можно представлять числа только ограниченной
разрядности. Это ограничение определяется объёмом аппаратуры, которая должна
реализовывать устройство памяти и устройства, на которых проводятся операции над
содержимым ячеек. По этой причине в компьютерах для слишком больших, слишком
маленьких чисел и для чисел с бесконечными дробями используется их приближённое
представление.
10.4. Представление текста в компьютере
По мере развития науки и техники, миниатюризации компьютеров, возникла задача
автоматизировать обработку той части данных, с которой имеет дело большинство
населения. Основным типом данных в документах, с которыми работает пользователь,
является текст на естественном языке.
4
Поскольку к моменту возникновения этой задачи уже существовали компьютеры
для обработки чисел, использующие простой язык с алфавитом, состоящим всего из 2-х
символов, то необходимо было провести кодирование элементов алфавита естественного
языка с помощью элементов двоичного языка. На бытовом уровне применительно к
сложному языку в понятие «алфавит» вкладывается узкий смысл: в его состав входят
только буквы. В соответствии с общим определением алфавита, в его состав
применительно к сложному языку входят: буквы, цифры, знаки препинания и другие
графические символы, которые используются для передачи данных.
Мы уже говорили о таблице соответствия между словами двух естественных
языков, о таблице соответствия между именем объекта в простом языке и объектом
окружающего мира. В данном случае простой язык - это двоичный язык компьютера, а
окружающий компьютер мир – это алфавит естественного языка.
Слово в языке с цифровым алфавитом – последовательность цифр, из которых
состоит алфавит.
Применительно к компьютерам таблица соответствия называется
таблица кодировки (кодовая таблица): таблица, в которой каждому элементу
выбранного для обработки текста алфавита присвоен номер, представленный в двоичном
алфавите.
В множество объектов, которым необходимо присвоить «имена» с помощью
двоичного языка, входят:






все прописные (заглавные) буквы (A, B, C, D, E, F, G и т.д.) английского алфавита;
все строчные (маленькие) буквы (a, b, c, d, e, f, g и т.д.) английского алфавита;
все прописные (заглавные) буквы (А, Б, В, Г, Д и т.д.) русского алфавита;
все строчные (маленькие) буквы (а, б, в, г, д и т.д.) русского алфавита;
знаки препинания;
цифры (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), которые являются частью текста.
Общее количество объектов этого множества – порядка 200.
Необходимо составить 200 слов одинаковой длины двоичного языка для
кодирования элементов алфавита естественного языка. Это можно сделать с помощью
выбора грамматики – правил (метода), в соответствии с которыми образуются слова.
Для присвоения каждому из 200 элементов множества персонального имени
(номера) необходимо использовать числа в двоичной системе счисления, имеющие 8
разрядов. Вспомним формулу Хартли: Inf (200) = log2 200 =7,64 ~ 8.
Примеры слов двоичного алфавита:
00110101, 11110001, 10110010.
Бит – «буква» двоичного алфавита. Букв всего 2: 0 и 1.
Байт - слово двоичного алфавита длиной 8 «букв».
Бит и байт - единицы измерения длины массивов данных, хранящихся в
компьютерах. Для исчисления длины больших объёмов данных ведены более крупные
единицы измерения (Рис. 10.4.1.)
Единицы измерения длины данных и
объема запоминающих устройств
Байт (б) = 8 бит
Килобайт (кб) = 1024 (210) байта
Мегабайт (мб) = 1024 (210) килобайта
Гигабайт (гб) = 1024 (210)мегабайта
Терабайт (тб) = 1024 (210)гигабайта
Рис. 10.4.1.
5
Пример. Определить объем данных, размещенных на листе формата А4.
Стандартный размер знаков алфавита естественного языка – 12 пунктов.
Стандартный интервал между строками – полуторный.
При этих условиях на листе формата А4 размещается 35 строк, а в одной строке
размещается 70 символов.
Объём данных на листе – 2,4 кб
Объём данных на 1024 листах – 2,4 мб
Объём данных на 1024*512 =524288 листах – 1,2 гб.
Представьте, что можно записать на таком количестве листов, их физический
объём и сравните с размерами DVD – диска.
Как может выглядеть таблица кодировки? Ответ на этот вопрос рассмотрим на
примере алфавита естественного языка, состоящего, скажем, из 8 букв (Рис. 10.4.2.).
Элемент
Таблица кодировки (вторичный код)
первичного
Вариант_1 Вариант_2 Вариант_3
алфавита
А
000
111
100
Б
001
110
101
В
010
101
110
Г
011
100
111
Д
100
011
000
Е
101
010
001
Ё
110
001
010
Ж
111
000
011
Рис. 10.4.2.
Из таблицы видно, что существует неоднозначность при выборе вторичного кода.
Американцы первыми предложили стандарт таблицы кодировки в персональных
компьютерах, выпускаемых фирмой IBM. Этим стандартом стала таблица кодировки
ASCII (American Standard Code for Information Interchange – американский стандартный
код для информационного обмена).
Таблица ASCII (Рис. 10.4.3.) состоит из базовой (неизменяемой) части и
дополнительной части. Базовая часть является международной. С помощью кодов базовой
части кодируются наиболее широко используемые в странах мира элементы:
управляющие символы, арабские цифры, знаки препинания, буквы латинского алфавита.
Дополнительную часть формирует каждая страна. Дополнительная часть для каждого
национального алфавита имеет собственное имя. Дополнительных частей, исходя из их
назначения, существует достаточно большое количество. В частности, когда фирма IBM
стала поставлять компьютеры в Россию, компания Microsoft создала дополнительную
часть с именем «таблица Windows 1251». Первичное устройство, в котором используется
кодировка, является клавиатура. В связи с этим дополнительная часть имеет и другое
название: раскладка клавиатуры Windows 1251.
6
Рис. 10.4.3.
При распространении компьютеров по всему земному шару ряд стран столкнулись
с проблемой кодировки элементов их национальных алфавитов, поскольку количество
элементов в алфавитах достаточно большого количества стран превышает даже 256. Для
решения этой проблемы был создан новый стандарт кодирования UNICODE, в котором
каждый элемент алфавита кодируется двумя байтами. При такой длине кода элемента
таблица кодирования имеет мощность 216 = 65536 кодов вместо 256.
11. Аналоговое и дискретное представление физических величин
Представим себе развитие молодого человека от момента рождения до достижения
возраста, например, 16 лет. Вес этого человека изменяется, можно сказать, непрерывно,
начиная со стартового веса в момент рождения и до веса, который зафиксирован в день
16-летия. Мы знаем, что в организме человека происходят постоянно биохимические
процессы, за счёт которых и происходит, в частности, изменения веса тела.
Биохимические процессы не могут происходить скачками, поэтому и такой параметр, как
вес тела не может изменяться скачками, он изменяется непрерывно.
Параметр имеет непрерывный характер изменения, если каждое последующее
значение параметра отличается от предыдущего на бесконечно малую величину.
Ключевое слово «непрерывный» определяет, прежде всего, бесконечно малое изменение
значения параметра.
Учёные дали определение этому характеру развития процесса (непрерывно) в
общем виде, рассматривая либо функции, либо случайные величины.
Непрерывная величина: величина, которая за бесконечно малый отрезок
времени изменяется на бесконечно малое значение.
Из этого определения следует, что непрерывная величина в бесконечном или
конечном диапазоне принимает бесконечное множество значений, причём её значения
изменяются непрерывно.
Человек, чтобы оценить текущее значение величины, должен произвести
измерение каким-то инструментом. Ни один из созданных человеком инструментов не
может выявить бесконечно малое изменение значения измеряемого параметра. Говорят,
что инструмент обладает какой-то точностью. Мы знаем, что вес можно измерить в
тоннах, килограммах, граммах, но не существует инструмента, который бы измерил вес,
например, в 1/1010 грамма. Скажем, есть инструмент, который измеряет вес в 0,001
грамма. В этом случае, при проведении наблюдений за весом растущего организма
взвешивать тело ребёнка можно только через определённые интервалы времени,
например, через 1сутки, потому что при измерении в течение 1 дня весы будут показывать
одно и то же значение веса. Хотя мы знаем, что в течение этих суток вес изменяется.
Дискретная величина: величина, которая принимает конечное множество
значений, фиксируемых измерительным инструментом (Рис.11.1).
7
Рис. 11.1
Как видно из рисунка, аргументом является время (t). Измерения проводятся в
моменты времени 1, 2, 3, и т.д.
Реальные процессы являются непрерывными. Человек представляет процесс в
дискретном виде: в виде последовательности значений какого-то параметра. Эти значения
могут быть просто числами. При компьютерном представлении этого параметра числа
представляются кодами.
Дискретизация: результат преобразования значений непрерывной величины в
последовательность дискретных значений.
Применительно к техническим средствам, в которых реализуются эти процессы,
говорят об аналоговом (непрерывном) и дискретном (цифровом) представлении
физических величин.
При применении аппаратуры значения
реального параметра измеряются
прибором, называемым датчиком. Датчик преобразует значение измеряемого параметра,
как правило, в напряжение различной величины. Значения напряжения преобразуются в
двоичный код другим устройством, называемым «аналого- цифровой преобразователь»
(АЦП).
Рис. 11.2.
На рис. 11.2. видно, что на интервале от начала отсчета до момента времени t2
напряжение на выходе устройства равно 0 вольт, на интервале t2-t3 напряжение на
выходе устройства v1 вольт и т.д.
8
Рис. 11.3.
На рис. 11.3. представлен путь, по которому изменения физического параметра
попадают в компьютер. На выходе АЦП имеются триггеры, на которых формируется
двоичный код напряжения. Этот код и записывается в память компьютера.
12. Представление в компьютере графических объектов
12.1. Общая схема представления графической информации на экране дисплея
Графические изображения различных объектов могут создаваться человеком с
помощью специальных программ обработки графики (графическими редакторами и
процессорами), естественно, с использованием дисплея. Полученные изображения могут
выводиться принтером или плоттером на бумагу. Изображения реально существующих
объектов могут вводиться в компьютер с помощью специальных технических и
программных средств, обрабатываться графическими редакторами и процессорами с
использованием дисплея и выводиться на бумагу.
При этом возникают следующие проблемы:
1. как представлять изображение для хранения в памяти компьютера?
2. как представлять изображение с целью удобства обработки?
3. как представлять изображение для вывода на дисплей и принтер?
4. как задавать цвета объектов?
Способ представления изображения для вывода на дисплей и принтер определяется
конструкцией этих устройств. Очевидно, что способ представления изображения с целью
удобства обработки либо совпадает, либо отличается от способа представления
изображения для вывода на дисплей.
Для работы пользователя с графическими объектами существуют 2 вида программ.
Графический редактор является простейшей программой для работы с графикой. Для
создания рисунков человеку предоставляются простые графические элементы: линия,
эллипс, прямоугольник. Графические процессоры являются более сложными
программными системами, они имеют большее количество функций по сравнению с
графическими редакторами.
Развитие технологии обработки графики состоит из двух этапов. Первоначально
(Рис. 12.1.1.) дискретное представление графического объекта и программы управления
дисплеем хранились в оперативной памяти, и эти программы исполнял процессор
компьютера.
9
Рис. 12.1.1.
Реализация технологии первого поколения показала, что для хранения графических
объектов требуется память большого объёма, и управление дисплеем требует больших
затрат времени со стороны процессора. По этой причине для повышения
производительности компьютеров в технологии второго поколения стали применять
специальное устройство – видеоадаптер (видеоконтроллер), в котором имеются 2
устройства (Рис. 12.1.2.). Видеопроцессор проводит обработку кодов рисунков и
управляет дисплеем, освобождая основной процессор для
обработки основной
программы. В видеопамяти хранятся коды рисунка во время работы пользователя с
программой «графический процессор».
Для производителей дисплеев, также существует проблема согласования их
интерфейсов с интерфейсами различных системных магистралей. Однако она решается
несколько иначе по сравнению с другими функциональными устройствами компьютеров.
Видеоконтроллер (видеоадаптер – сложное устройство). Появились фирмы,
специализирующиеся именно на производстве этих устройств. Для внешнего интерфейса
дисплея с видеоадаптером был установлен стандарт (Рис. 12.1.3.).
Графическая информация удобна для сжатия.
Сжатие информации: преобразование первичного информационного объекта так,
что вторичный объект имеет меньшую длину (в байтах) по сравнению с первичным
информационным объектом.
Рисунок, выполненный художником, является примером аналогового
представления графической информации. Компьютер использует только дискретные
величины, либо элементарные – 0 и 1 (2 значения, которые составляют содержимое 1
бита), либо сложные в виде кодов, состоящих из нескольких бит. Отсюда следует, что
необходимо создать способ дискретизации видимого нашими глазами окружающего нас
мира и преобразования его (Рис. 12.1.4.) в
изображения, созданные на основе
элементарных графических элементов.
12.2. Растровые изображения
Исторически ещё до появления компьютеров был создан способ получения на
бумаге чёрно-белых, а затем и цветных изображений. Фотография – это технология
создания аналоговых изображений. При печатании газет и журналов был создан
растровый способ создания изображений. При этом способе изображение образуется из
множества дискретных элементарных объектов – точек.
Растр – совокупность точек, различное состояние которых формирует
изображение.
10
Рис. 12.1.2.
Рис. 12.1.3.
11
Рис. 12.1.4.
При появлении компьютеров этот элементарный графический объект стали
называть «пиксел» (picture element).
Состояние точки определяется её цветовым фоном в интервале «чёрный-белый».
Внутри этого интервала состояние точки характеризуется как «степень серого цвета».
Таким образом, контур объекта образуют точки, имеющие одинаковое состояние (одну
степень серого цвета), а цвет объекта образуется множеством точек растра, имеющих
различную степень серого цвета. Очевидно, чем больше точек в растре, тем выше
качество изображения (тем ближе восприятие изображения к восприятию самого
реального объекта).
В дисплеях, в зависимости от конструкции и размера экрана используются растры
различных размеров: 800*600, 1024*768, 1280*1024. Соответственно графический
редактор создаёт виртуальный растр, в границах которого человек может создавать
графические объекты.
Разрешающая способность монитора: размер растра монитора.
Самый простой способ получения изображения только в виде контуров объектов
состоит в том, что состояние пиксела представляется кодом длиной 1 бит (пиксел имеет
только 2 состояния: 0 – чёрный цвет, 1 – белый цвет). В этом случае для создания
изображений
при
растре
1280*1024
необходимо
иметь
память
[1280*1024(пикселов)*1(длина_кода)]/8= 163840 байт ~ 160 кбайт.
Представим, что состояние каждого пиксела кодируется 4 битами. Это значит, что
пиксел может иметь 24=16 степеней серого цвета (градация серого). В этом случае уже
можно получить и контур объекта, и его составляющие внутри контура. А для создания
изображений
при
растре
1280*1024
необходимо
иметь
память
[1280*1024(пикселов)*4(длина_кода)]/8/1024/1024 ~ 0,625 мбайт.
Чтобы иметь цветной дисплей, необходимо кодировать цветовые оттенки.
Вспомним радугу, которая образуется при разложении белого цвета. Радуга – сочетание
цветов: красного, оранжевого, жёлтого, зелёного, голубого, синего, фиолетового (7
12
цветов). При создании изображений с кодировкой 7 цветов потребуется память очень
большого объёма. Было установлено, что любой цвет можно получить комбинацией
(смешением) всего 3-х цветов: красного (red), зелёного (green) и синего (blue). По первым
буквам названий цветов была названа модель представления цветных изображений
(модель цветопередачи) - RGB.
12.3. Модель цветопередачи RGB
Модель цветопередачи RGB создана для кодирования цветов при выводе
изображений на экран дисплея. Все пикселы на экране дисплея являются излучателями
(Рис. 12.3.1.).
Рис. 12.3.1.
Представим модель цветопередачи RGB, когда в смеси цвет либо присутствует
(код -1), либо отсутствует (код -0). Составим таблицу кодирования состояний одного
пиксела (Рис. 12.3.2.).
Код цвета (наличие или отсутствие)
Красный
Зелёный
Синий
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
Цвет в
результате
смешения
(зрительное
восприятие)
Чёрный
Зелёный
Синий
Красный
Бирюзовый
Жёлтый
Малиновый
Белый
Рис. 12 3.2.
При такой кодировке состояний каждого пиксела можно получить 23=8 различных
цветов (различных состояний 1 пиксела). В этом случае для создания изображений при
растре 1280*1024 необходимо иметь память
[1280*1024(пикселов)*3(длина_кода)]/8 /1024 ~ 480 кбайт.
В модели RGB различные цвета получаются за счёт смешения (суммирования)
базовых цветов. По этой причине эта модель называется аддитивной (суммирующей).
В данном случае цвет либо присутствует в смеси, либо отсутствует. Можно
кодировать интенсивность в смеси каждого цвета, т.е. долю каждого цвета в смеси.
Градация яркости цвета (уровень яркости цвета, глубина цвета) в смеси цветов:
доля каждого цвета в смеси цветов.
13
При задании глубины цвета можно не рассматривать, как в вышеприведённом
примере, разделение кода на 3 части (на 3 цвета), а рассматривать просто код.
Будем считать, что состояние каждого пиксела представляется 16-разрядным
кодом. В этом случае количество отображаемых цветов - 216 = 65536. Такое кодирование
называется High Colour. В компьютерных издательских системах
существует
кодирование True Colour, при котором применяется 24-битовый код, и количество
отображаемых цветов – 16777216. Этого количества цветов достаточно для
воспроизведения цветных фотографий.
Оценим объём памяти (Рис. 12.3.3.) для хранения кодов состояния всех пикселов
растра размером 1280*1024 (объём видеопамяти).
Тип
кодирования
High Colour
True Colour
Длина кода для
1 пиксела
16
24
Объём
видеопамяти
мбайт
20
30
Рис. 12.3.3.
Вернёмся к двум рисункам (Рис. 12.3.1. и 12.3.2.), на которых представлены
элементы компьютера и программные средства, обеспечивающие работу пользователя с
графическими объектами. Ранее данные о состоянии каждого элемента растра хранились в
оперативной памяти. В современных компьютерах, учитывая огромный объём этих
данных и время, которое затрачивается оперативной памятью в ущерб взаимодействия с
процессором, используется специальная память – видеопамять и специальный процессор –
видеопроцессор, которые объединены в отдельное устройство – видеоадаптер для
управления дисплеем.
12.4. Модель цветопередачи CMYK
Пиксел на экране дисплея является активным – излучающим элементом. При
печати графических объектов на бумаге ситуация иная. Изображение формируется на
основе отражённого от окрашенной поверхности бумаги луча (Рис. 12.4.1.). На бумагу
падают лучи белого цвета (сумма всех цветов). При отражении всех лучей лист бумаги
воспринимается глазами, как белый.
Рис. 12.4.1.
Если на белую бумагу нанесена краска, которая из 3-х лучей поглощает 2 луча –
зелёный и синий и пропускает только красный луч, который отражается от белой бумаги,
то такая краска воспринимается глазами, как красная (Рис. 12.4.2.).
14
Рис. 12.4.2.
Применяемая в принтерах краска представляет собой фильтр, который задерживает
лучи одних цветов и пропускает лучи других цветов. В свою очередь, те лучи, которые
пропустила краска, отражаются от белой поверхности бумаги и воспринимаются глазами
человека.
В таблице кодов цветов модели RGB видно, что глаза воспринимают чёрный цвет,
когда в них не попадает ни один луч. Это значит, что если нанести на чёрный лист бумаги
любую фильтрующую краску, то он будет продолжать восприниматься, как чёрный.
Краска, как фильтр, пропустила лучи какого-то цвета, но чёрная поверхность бумаги не
отразила их.
В модели цветопередачи для излучающих элементов были выбраны 3 базовых
цвета: красный, зелёный и синий. В данной модели в качестве базовых необходимо
выбрать иные цвета, как бы дополняющие базовые цвета модели RGB, поскольку глазом
воспринимаются пропущенные фильтром-краской цвета из белого спектра. В таблице ан
Рис. 12.4.3. представлены базовые цвета модели цветопередачи CMY.
Модель цветопередачи
RGB для экранов
дисплеев
Базовые цвета
Red (красный)
Green (зелёный)
Blue (синий)
Модель цветопередачи CMY для принтеров и печатающих
машин
Базовые цвета, являющиеся дополнением для базовых
цветов модели RGB
Cyan (голубой или бирюзовый) поглощает Red
Magenta (пурпурный или малиновый) поглощает Green
Yellow (жёлтый) поглощает Blue
Рис. 12.4.3.
В модели цветопередачи CMY результирующие цвета получаются не смешиванием
(суммированием) базовых цветов, а их вычитанием из полного спектра. По этой причине
модель CMY называется вычитательной (субтрактивной).
Чёрный цвет в модели CMY должен получаться смешением 3-х базовых цветов
этой модели. Однако технологически очень трудно в производстве получить идеально
чистые краски базовых цветов: голубого, пурпурного, жёлтого. По этой причине чёрный
цвет получается тёмно-коричневым. Кроме того, можно заметить: для получения часто
используемого при печати чёрного цвета необходимо расходовать в 3 раза больше краски
для смешивания красок базовых цветов. Чёрную краску легче получить в производстве,
нежели цветную. По этим причинам к краскам 3-х базовых цветов добавляется краска
чёрного цвета (Black). Полностью модель цветопередачи для печати называется CMYK. В
аббревиатуру добавляется последняя буква названия цвета «black».
Существует и второй тип красок – отражающие. Они настолько плотные, что
падающие на них лучи эти краски не фильтруют, а сами отражают.
15
Основное достоинство растровой графики – при высокой разрешающей способности
дисплея можно получать изображения фотографического качества. Растровые изображения очень
чувствительны к масштабированию (увеличению или уменьшению). При уменьшении растрового
изображения несколько соседних точек преобразуются в одну, поэтому теряется разборчивость
мелких деталей изображения. При увеличении - увеличивается размер каждой точки и появляется
ступенчатый эффект, который можно увидеть невооруженным глазом.
12.5. Векторные изображения
Векторные изображения формируются из базовых элементов (точка, прямая линия, дуга,
окружность, эллипс, прямоугольник и т . д . ) , которые называются примитивами. Каждый
примитив, имеющийся на рисунке, задаётся координатами и математическими формулами.
Например, графический объект «точка» задается своими координатами ( X , Y), «линия» координатами начала (X1, Y1) и конца (Х2, Y 2 ) , «окружность» - координатами центра ( X , Y) и
радиусом ( R ) , «прямоугольник» - величиной сторон и координатами левого верхнего угла ( X1, Y1) и
правого нижнего угла (Х2, Y2) и т . д . Для каждого объекта задается также цвет с использованием
рассмотренных моделей цветопередачи.
Координаты задаются в системе координат, связанной с растром дисплея. По сути
система координат задаёт адрес каждого пиксела экрана дисплея.
Векторные графические изображения являются оптимальным средством для хранения
высокоточных графических объектов (чертежи, схемы и т. д . ) , для которых имеет значение сохранение четких и ясных контуров. Векторная графика применяется в системах компьютерного черчения,
автоматизированного проектирования, в программах обработки трехмерной графики.
Достоинством векторной графики является то, что файлы, хранящие векторные графические
изображения, имеют сравнительно небольшой объем.
Важно также, что векторные графические изображения могут быть увеличены или
уменьшены без потери качества. Это возможно, так как масштабирование изображений
производится с помощью простых математических операций (умножения параметров графических
объектов на коэффициенты масштабирования).
Основным недостатком векторной графики является невозможность получения изображений
фоторафического качества.
Невозможно однозначно сказать, какой способ представления графической информации
(растровый или векторный) лучше, а какой хуже. Преимущества в каждом конкретном случае
определяются многими параметрами: допустимым объемом файла, областью использования
изображения, средствами вывода изображения и т . д .
Форматы графических файлов определяют способ хранения информации в файле
(растровый или векторный), а также форму хранения информации (используемый алгоритм сжатия).
Сжатие применяется для растровых графических файлов, так как они имеют обычно
достаточно большой объем.
Существуют различные алгоритмы сжатия, причем для различных типов изображения
целесообразно применять подходящие типы алгоритмов сжатия.
Для сжатия рисунков типа аппликации, содержащих большие области однотонной закраски,
наиболее эффективно применение алгоритма сжатия, который заменяет последовательность
повторяющихся величин (пикселей одинакового цвета) на две величины (пиксель и количество его
повторений). Такой алгоритм сжатия используется в графических файлах форматов BMP и PCX.
Для рисунков типа диаграммы целесообразно применение другого метода сжатия, который
использует поиск повторяющихся в рисунке «узоров». Такой алгоритм используется в графических
файлах форматов TIF и GIF и позволяет сжать файл в несколько раз.
Для сжатия отсканированных фотографий и иллюстраций используется алгоритм сжатия
JPEG. Этот алгоритм использует тот факт, что человеческий глаз очень чувствителен к изменению
яркости отдельных точек изображения, но гораздо хуже замечает изменение цвета. Действительно,
при глубине цвета 4 бита компьютер обеспечивает воспроизведение более 16 млн. различных
16
цветов, тогда как человек вряд ли способен различить и тем более назвать более сотни цветов и
оттенков.
Применение метода JPEG позволяет сжимать файлы в десятки раз, однако может приводить
к необратимой потере информации (файлы не могут быть восстановлены в первоначальном ви д е).
Используется в файлах формата JPG.
Некоторые форматы графических файлов являются универсальными, так как могут быть
обработаны большинством графических редакторов. Некоторые программы обработки
изображений используют оригинальные форматы, которые распознаются только самой создающей
программой. Преимущество оригинальных форматов файлов состоит в том, что они позволяют
сохранять изображения при меньшем размере файла.
Рассмотрим некоторые форматы графических файлов более подробно:
Bit MaP image (BMP) - универсальный формат растровых графических файлов, используется
в операционной системе Windows. Этот формат поддерживается многими графическими
редакторами и, в том числе, редактором Pant. Может содержать изображения с глубиной цвета 10,
1 6 , 24 и 36 бит. Рекомендуется для хранения и обмена данными с другими программами.
Tagged Image File Format (TIFF) - формат растровых графических файлов, поддерживается
всеми основными графическими редакторами и компьютерными платформами. Включает в себя
алгоритм сжатия без потери информации. Используется для обмена документами между
различными программами. Рекомендуется для использования при работе с издательскими
системами.
Graphics Interchange Format (GIF) - формат растровых графических файлов, поддерживается
программами для различных операционных систем. Включает алгоритм сжатия без потери
информации, позволяющий уменьшить объем файла в несколько раз. Рекомендуется для хранения
изображений, создаваемых программным путем (диаграмм, графиков и т . д . ) и рисунков (типа
аппликации) с ограниченным количеством цветов (до 2 5 6 ) . Используется для размещения
графических изображений на Web-страницах в Internet.
Joint Photographic Expert Group (JPEG) - формат растровых графических файлов, который
реализует эффективный алгоритм сжатия (метод JPEG) для отсканированных фотографий и
иллюстраций. Алгоритм сжатия позволяет уменьшать объем файла в десятки раз, однако приводит к
необратимой потере части информации. Поддерживается программами для различных операционных систем. Используется для размещения графических изображений на Web-страницах в Internet.
CoreiDRaw files (COR) - оригинальный формат векторных графических файлов,
используемый в системе обработки векторной графики CorelDraw.
Если вы собираетесь работать с графическим файлом только в одном данном приложении,
целесообразно выбрать оригинальный формат. Если же предстоит передавать данные в другое
приложение, другую среду или иному пользователю, стоит использовать универсальный формат.
13. Представление в компьютере звука
Звук представляет собой волну энергии (звуковую волну), у которой амплитуда и
частота являются непрерывными величинами, т.е. они с течением времени непрерывно
изменяются. Ещё в 19 веке появились микрофоны - устройства, преобразующие звуковые
волны в электрические сигналы, и динамики – устройства, преобразующие электрические
сигналы в звуковые волны. У электрических сигналов, по аналогии со звуковыми
сигналами, непрерывно изменяется напряжение и частота.
Компьютеры обрабатывают дискретные сигналы, поэтому возникла задача
провести дискретизацию непрерывных электрических сигналов и восстановление
аналоговых сигналов для передачи их в динамики. Для преобразования непрерывного
сигнала (не обязательно звукового) в цифровой создали устройство «аналого-цифровой
преобразователь» (АЦП). Для обратного преобразования цифрового сигнала в
непрерывный – «цифро-аналоговый преобразователь» (ЦАП).
17
На рисунке 13.1. представлена схема обработки звука
компьютера.
при использовании
Рис. 13.1.
Аналоговые сигналы с целью кодирования подвергаются дискретизации и по
времени, и по напряжению (Рис. 13.2.). Дискретизация по времени называется частотной
(или временной) дискретизацией; дискретизация по напряжению называется
квантованием.
Рис. 13.2.
Смысл частотной дискретизации состоит в том, что в АЦП с определённой
частотой (тактовой частотой) происходит измерение напряжения аналогового сигнала. На
рисунке видно, что измерение напряжения аналогового сигнала происходит в моменты
времени ti.
18
Смысл квантования состоит в том, что диапазон напряжения, в котором изменяется
аналоговый сигнал [Xmin, Xmax], разбивается на n равных интервалов – квантов ∆x. Вместо
термина «квант» может использоваться другой термин – «шаг квантования». Из
вышеприведённого рисунка видно, что при замене непрерывного сигнала дискретными
значениями эти значения будут представлять непрерывный сигнал тем лучше, чем выше
будет частота дискретизации (чем чаще будут проводиться измерения напряжения
аналогового сигнала) и чем меньше будет шаг квантования.
В пределах диапазона изменения напряжения существует n=(Vmax-Vmin)/∆V
значений напряжения, которые АЦП может кодировать и передавать в канал связи или
непосредственно в компьютер. В момент выдачи генератором тактовой частоты
очередного сигнала (Рис. 13.3.) АЦП сравнивает реальное значение напряжения V с
граничными значениями кванта [Vi, Vi+1]. В результате сравнения АЦП выдаёт код того
квантованного значения, к которому находится ближе реальное значение напряжения. На
рисунке видно, что в качестве результата АЦП выдаст код квантованного значения Vi+1.
Рис. 13.3.
Из предыдущего материала мы уже знаем, что длина кодового слова, которым
представляется квантованное значение напряжения, определяется формулой Хартли:
lк.с.=log2n. В современных АЦП длина кодового слова составляет 1байт или 2 байта.
В персональных компьютерах АЦП находится в звуковой карте. Для
высококачественного воспроизведения музыки в персональных компьютерах
применяются звуковые карты с длиной кодового слова 16 бит. В этом случае получается
216=65536 значений напряжения, которые должен различать установленный в звуковой
карте АЦП. В современных звуковых картах используется частота дискретизации 44,1 кгц
(килогерц).
В таблице (Рис. 13.4.) представлены значения объёмов памяти для хранения 1
минуты звучания музыкального произведения для различных типов сигналов.
Объём памяти для хранения кодов мелодии,
звучащей в течение 1 минуты
Частота дискретизации – 44,1 кц
Длина
кодового Длина множества
Тип сигнала
слова
кодов мелодии
Моно
16 бит
10,1 мб
Стерео
16 бит
5,05 мб
Моно
8 бит
2,52 мб
Рис. 13.4.
Определим длину кодов звучащей в течение 1 секунды мелодии для стереосигнала.
Частота дискретизации определяет, что в течение 1 сек напряжение сигнала измеряется
44100 раз. Для записи 1 значения напряжения используется код длиной 2 байта. В
стереосигнале используются 2 канала.
Отсюда объём памяти: 44100*2 байта*2 канала/1024кб/1024мб = 10,1 мб.
19
Такой объём памяти требуется для хранения 10 томов текста объёмом по 500
страниц каждый том.
Дома можно промоделировать частотную дискретизацию звуковых сигналов.
Подключите свой домашний радиоприёмник к электрической сети через кнопку дверного
звонка.
При трансляции какой-либо мелодии быстро нажимайте и отпускайте кнопку.
Послушайте, как меняется Ваше восприятие мелодии при изменении частоты нажатий на
кнопку.
20
Download