d9e5a92d

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

В 1964 г. были изобретены интегральные схемы (ИС - электронная схема, вытравленная на поверхности кремниевого кристалла, содержит несколько сотен транзисторов). В интегральных схемах элементы создаются по специальной технологии в самом веществе материала. Основой для таких сем служат полупроводниковые материалы, чаще всего кремний.) Интегральные схемы стали элементной базой для машин третьего поколения. Начало периода машин третьего поколения связано с разработкой серии IBM-360 (США) и ЕС ЭВМ (страны социалистического содружества).

Переход на ИС влиял на увеличение надежности работы ЭВМ, уменьшение габаритных размеров, уменьшение потребления энергии.

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

Начиная с третьего поколения компьютеры работают под управлением операционных систем.

Ученые постоянно работали над уменьшением размеров аппаратуры, что привело к появлению так называемых мини- и микроЭВМ.
В 1970 г. были разработаны большие интегральные схемы (БИС). На одном кристалле удалось разместить все основные электронные части процессора - появился микропроцессор.

Постоянное совершенствование технологии производства БИС повлекло за собой быструю смену поколений микропроцессоров, что приводит к стремительному совершенствованию электронной вычислительной техники - появлению четвертого поколения ЭВМ. Производительность машин четвертого поколения достигает нескольких миллионов операций в секунду.

Объем оперативной памяти достигает нескольких мегабайт.
С микропроцессорной революцией непосредственно связано одно из важнейших событий в истории ЭВМ - создание и широкое применение персональных компьютеров. ПК обладают такими привлекательными свойствами для пользователей, как малая энергопотребляемость, относительно малая стоимость, небольшие габаритные размеры, повышенная надежность в эксплуатации, большие возможности обработки информации различного типа.
Конечно, развитие ВТ идет не только по линии изменения элементно-технологической базы. Производительность традиционных вычислительных систем повышается двумя путями: развитием элементной базы и архитектуры ЭВМ.
Однопроцессорная архитектура имеет предел производительности, определяемый скоростью распространения электрического сигнала по физическим линиям связи между устройствами компьютера. Другой подход повышения производительности вычислительных систем основан на использовании принципа параллелизма, т.е. обработка информации разбивается на несколько одновременно выполняемых последовательных процессов, каждый из которых может обмениваться информацией с другими процессами.

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



Они могут быть соединены друг с другом различными способами, образуя разнообразные архитектуры параллельной обработки.
В настоящее время создаются микропроцессоры седьмого поколения (Intel IV, Athlon и др.). Их быстродействие оценивается в 1,5...2 ГГц или 1,5...2 миллиарда операций в секунду (109).

Оперативная память имеет емкость 256.512 Мб (108). Имеются средства речевого ввода команд.

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

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

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

И поиск, и упорядочивание сводятся к выполнению операции сравнения символов.

При сравнении символов наиболее важными аспектами являются уникальность кода для каждого символа и длина этого кода, а сам выбор принципа кодирования в настоящее время практически не имеет значения. Поэтому можно использовать различные таблицы кодировки, лишь бы при кодировании и декодировании символов использовалась одна и та же таблица.
В вычислительных машинах для представления информации используются цепочки байтов. Поэтому для перевода информации из машинного представления в человеческий необходимы таблицы кодировки символов - таблицы соответствия между символами определенного языка и кодами символов. Их еще называют таблицами кодировки, кодовыми страницами или применяют английский термин character set
(который иногда сокращают до charset).
Самой известной таблицей кодировки является код ASCII (Американский стандартный код для обмена информацией). Первоначально он был разработан для передачи текстов по телеграфу, причем в то время он был 7-битовым, т.е. для кодирования символов английского языка, служебных и управляющих символов использовались только 128 7-битовых комбинаций.

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

При разработке первых компьютеров фирмы IBM этот код был использован для представления символов в компьютере. Поскольку в исходном коде ASCII было всего 128 символов, для их кодирования хватило значений байта, у которых 8-ой бит равен 0. Значения байта с 8-ым битом, равным 1, стали использовать для представления символов псевдографики, математических знаков и некоторых символов из языков, отличных от английского (греческого, немецких умляутов, французских диакритических знаков и т.п.).
Когда стали приспосабливать компьютеры для других стран и языков, места для новых символов уже не стало хватать. Для того, чтобы полноценно поддерживать помимо английского и другие языки, фирма IBM ввела в употребление несколько кодовых таблиц, ориентированных на конкретные страны.

Так для скандинавских стран была предложена таблица 865 (Nordic), для арабских стран -таблица 864 (Arabic), для Израиля - таблица 862 (Israel) и так далее. В этих таблицах часть кодов из второй половины кодовой таблицы использовалась для представления символов национальных алфавитов (за счет исключения некоторых символов псевдографики).
С русским языком ситуация развивалась особым образом. Очевидно, что замену символов во второй половине кодовой таблицы можно произвести разными способами. Вот и появились для русского языка несколько разных таблиц кодировки символов кириллицы: KOI8-R, IBM-866,
CP-1251, ISO-8551-5. Все они одинаково изображают символы первой половины таблицы (от 0 до 127) и различаются представлением символов русского алфавита и псевдографики.
Что касается длины кода, то она по возможности должна быть минимальной и в то же время достаточной для кодирования всех символов, которые могут потребоваться при вводе текстов любой сложности.
ЭВМ первых поколений в силу ограниченности оперативной памяти и невысокого по современным меркам быстродействия процессоров использовали минимальный набор символов. Рост мощности компьютерных устройств привел к тому, что в настоящее время при работе с одним ПК можно использовать несколько разных таблиц перекодировки.

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

Соответствующие программные модули называют конверторами.
Сейчас, когда объем памяти компьютеров чрезвычайно вырос, уже нет нужды сильно экономить при кодировании текста. Можно позволить себе роскошь тратить для хранения текста вдвое больше памяти (выделяя для каждого символа не 1, а 2 байта). При этом появляется возможность
разместить в кодовой таблице - каждый на своем месте - не только буквы европейских алфавитов (латинского, кириллического, греческого), но и буквы арабского, грузинского и многих других языков и даже большую часть японских и китайских иероглифов. Ведь два байта могут хранить уже число от 0 до 65535.
Двухбайтная международная кодировка UNICODE, разработанная несколько лет назад, теперь начинает внедряться на практике. В стандарте UNICODE кроме определенного двоичного кода (эти коды принято обозначать буквой U, после которой следуют знак + и собственно код в шестнадцатиричном представлении) каждому символу присвоено определенное имя.

Полная спецификация стандарта Unicode представляет собой довольно толстую книгу и включает в себя все существующие, вымершие и искусственно созданные алфавиты мира, а также множество математических, музыкальных, химических и прочих символов.
Отметим, что и ASCII и UNICODE и другие стандарты кодировки символов не определяют изображения символов, а только состав набора символов и способ его представления в компьютере. Кроме того, очень важен порядок перечисления символов в наборе, так как он влияет самым существенным образом на алгоритмы сортировки.
Зачем вообще понадобилось создавать разные кодировки для одного и того же алфавита? Разве трудно было придерживаться какого-то одного для всех стандарта?

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

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

Этим и объясняется тот факт, что ни в одной из кодировок, кроме ISO 8859-5 и Unicode, русские буквы не идут сплошным блоком. В некоторых кодировках допускаются даже отклонения от алфавитного порядка - в особенности в ДКОИ-8, расположение русских букв в которой определяется, как это ни смешно, алфавитом тех латинских букв, которые на клавиатурах советского производства располагались на одних клавишах с соответствующими буквами кириллицы (например, буква Ю стояла на одной клавише с символом @, идущим в ASCII перед латинской A, и потому стала в КОИ8 первой буквой алфавита).
2.2 Представление графической информации
Человек воспринимает информацию с помощью всех органов чувств и самыми различными способами, но все же основными формами информации, с которыми нам наиболее привычно работать, являются вербальный и образный, причем последнему часто отдается предпочтение. Сегодня трудно представить себе экран монитора без графического оформления: пиктограммы стали неотъемлемыми компонентами пользовательского интерфейса многих программных средств, с помощью программ-аниматоров создать мультипликационный фильм может сейчас не только коллектив профессиональных художников, но и любой человек, которому интересно этим заниматься.
Правда, так было не всегда. Самые первые компьютеры могли работать только с числами - производить вычисления.

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

Но уже тогда хотелось создавать таблицы и графики, рисовать на компьютере. Но на алфавитно-цифровых дисплеях графика была возможна только как псевдографика (вообще, для компьютера псевдо - широко распространенное явление: графика - точечная, пространство - виртуальное, интеллект - искусственный и т.д.).
Графические дисплеи появились в начале восьмидесятых годов. К этому времени достигнутое быстродействие процессоров, объемы памяти, обширные библиотеки алгоритмов уже позволяли создавать, выводить на экран, преобразовывать даже очень сложные графическое образы в реальном времени, т.е. без заметных для человека задержек на их обработку компьютерными устройствами.
Компьютерная графика сейчас распространяется все шире. Даже программы, предназначенные для создания и работы с текстами - текстовые процессоры - имеют, как правило, встроенные возможности по созданию рисунков, чертежей, схем и встраиванию их в текст.
Работа с графикой на компьютере требует решения следующих проблем.
Как закодировать информацию графического вида в двоичном коде?
Как передать средствами компьютера цвет в изображении?
Какие средства позволяют передать объемность изображения на плоском экране?
Как обеспечить эффект движения при создании анимационных роликов?
Пожалуй, именно для представления в двоичном коде информации графического вида разработано наибольшее число различных способов. Косвенным свидетельством этого можно считать наличие большого числа форматов графических файлов: *.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 Белый
При печати на принтере используется несколько иная цветовая модель: если монитор испускал свет и оттенок получался в результате сложения цветов, то краски - поглощают свет, цвета вычитаются. Попробуйте покрасить бумагу смесью из красной, зеленой и синей краски - вряд ли вы когда-нибудь получите белый цвет.

Поэтому для цветной печати используют в качестве основных иные цвета - голубую (Суап), пурпурную (Magenta) и желтую (Yellow) краски. Теоретически наложение этих трех цветов должно давать черный цвет.

На практике из-за неидеальности красителей чаще получается серый или коричневый цвет.

Поэтому в качестве четвертого основного цвета к ним обычно добавляют черную (blacK) краску. Отсюда пошло название этого способа цветообразования - CMYK-модель.

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

Трехмерная компьютерная графика

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

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

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

Анимационные эффекты

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

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



Содержание раздела