Компьютер рисует

Компьютер рисует

Одним из фундаментальных понятий информатики является алгоритм18. Под алгоритмом понимают описание некоторой точно заданной последовательности действий. Он может быть рассчитан на выполнение человеком или автоматическим устройством -- исполнителем. Алгоритм, предназначенный для компьютера (или другого автомата) и записанный на специальном языке, называют программой . Простая замена программы -- и машина начинает выполнять совершенно другие действия. Первое устройство с быстрой сменой программы было изобретено в 1801-1804 гг Жозеф Мари Жаккаром (Это был ткацкий станок, каждое движение челнока которого записывалось на отдельной перфокарте), идею же программного управления процессом вычислений выдвинул в середине прошлого века английский ученый Чарльз Беббидж19. В современных вычислительных машинах программа хранится в той же памяти, что и обрабатываемые данные20; это позволяет легко ее изменять или заменять другой. Ну, а в результате -- огромное количество "профессий" компьютера и чрезвычайно быстрая их смена.

Но, раз действиями компьютера управляет программа, не значит ли это, что для его использования человеку необходимо уметь программировать?

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

ПО обычно делят на три вида:

системное (оно непосредственно управляет взаимодействием всех устройств компьютера между собой, а также с другими программами и пользователем); 

прикладное (это программы, решающие конкретные задачи, например, редактирование текста или пересылку электронной почты); 

инструментальное (с его помощью создаются новые программы). 

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

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

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

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

Представление графической информации в памяти компьютера основано на том же принципе. Все изображение разбивается на маленькие "точки" -- пикселы, оттенок каждого из которых обозначают двоичным кодом. В простейшем случае картинка состоит только из черных и белых точек. Такую точку можно обозначить одним двоичным символом, допустим, ноль будет обозначать черный цвет, а единица -- белый. Значит, для хранения такого изображения нужно будет столько бит памяти, из скольких пикселов оно состоит. Например, первые компьютеры "Макинтош" имели разрешение экрана 512 х 342 пиксела. То есть, все изображение состояло из 512 • 342 = 175104 элементов. Для хранения каждого использовался 1 бит памяти. Следовательно все изображение занимало 175104 бит = 21888 байт -- (приблизительно 21 Кбайт).

А если изображение состоит не только из черных и белых точек? Увеличим количество разрядов в коде: пусть каждый пиксел обозначается двумя битами. Сколько разных кодов получится? "00", "01", "10" и "11" -- четыре. Мало? Добавим еще бит: "000", "001", "010", "011", "100", "101", "110", "111" -- можно закодировать 8 цветов. Как видите, увеличение длины кода на один символ удваивает количество различных оттенков, которые можно обозначить.

бит

1

2

3

4

5

6

7

8

9

10

цветов

2

4

8

16

32

64

128

256

512

1024

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

Попробуем рассчитать минимальный объем видеопамяти для компьютера, который при разрешении 640х480 пиксел отображает 256 оттенков. Изображение в этом случае состоит из 640•480=307200 элементов. Чтобы можно было обозначить 256 цветов, код каждого из них должен содержать (посмотрите в таблицу) 8 бит. Значит, каждый пиксел займет в памяти 8 бит = 1 байт, а весь экран -- 307200 байт = 300 Кбайт. Современные компьютеры могут работать с гораздо большим разрешением и обрабатывать изображения, содержащие тысячи28 и даже миллионы29 оттенков цвета. Кроме того, в видеопамяти может хранится несколько кадров одновременно, а современные графические платы еще и "берут на себя" часть функций центрального процессора по построению изображения30, поэтому объем их памяти может достигать нескольких мегабайт.

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

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

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

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

Примечания

Algorithmi -- написанное на латинский манер имя великого математика IX в. Аль-Хорезми, который сформулировал правила выполнения четырех арифметических действий. 

В 1833-1871 гг. Чарлз Беббидж предложил схему "аналитической машины", содержавшую набор устройств, аналогичный современным компьютерам. Эта машина должна была выполнять программы, записанные на перфокартах. К сожалению, уровень техники того времени не позволил построить работающий образец такого устройства. 

Принцип хранимой программы -- один из основных принципов построения компьютеров, выдвинутых в 1954 г. американским ученым Джоном фон Нейманом. 

Стоимость ПО современного компьютера зачастую многократно превосходит стоимость его аппаратуры. 

По первым буквам английских названий основных цветов (Red, Green, Blue) такая модель образования оттенков обозначается "RGB" 

Luminis (лат.) -- свет; phoros (греч.) -- несущий 

Соответствующая цветовая модель обозначается "CMYK" (Cyan, Magenta, Yellow, blacK) 

от лат. Rastrum -- грабли 

Pixel (от PICture ELement, англ.) -- элемент изображения. 

Большинство людей не замечает мерцания при частоте более 70 герц (т.е. 70 раз в секунду). 

32768 оттенков, так называемый Hi-Color (англ. High Color -- высококачественный цвет) -- изображение, по качеству близкое записи бытовых видеомагнитофонов. 

16777216 оттенков -- True Color (англ. -- истинный цвет) -- изображение фотографического качества. 

Такие устройства называют графическими ускорителями. 

Другое название -- векторные редакторы - связано с особенностями математического описания изображений в первых таких программах.