© М.Е. Крекин, 1999, 2002
Глава 2 Компьютер рисует
В этой главе мы поговорим о том,
- что такое алгоритм и программа, и с чем связана универсальность компьютера;
- как получается картинка на экране монитора, и как рисует на бумаге принтер;
- как представлено изображение в памяти компьютера, и как определить, много ли памяти нужно для его хранения, и, естественно,
- какие существуют виды программ для работы с графикой.
Одним из фундаментальных понятий информатики является алгоритм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 оттенков. Изображение в этом случае состоит из 640480=307200 элементов. Чтобы можно было обозначить 256 цветов, код каждого из них должен содержать (посмотрите в таблицу) 8 бит. Значит, каждый пиксел займет в памяти 8 бит = 1 байт, а весь экран -- 307200 байт = 300 Кбайт. Современные компьютеры могут работать с гораздо большим разрешением и обрабатывать изображения, содержащие тысячи28 и даже миллионы29 оттенков цвета. Кроме того, в видеопамяти может хранится несколько кадров одновременно, а современные графические платы еще и "берут на себя" часть функций центрального процессора по построению изображения30, поэтому объем их памяти может достигать нескольких мегабайт.
Для работы с графической информацией существуют специальные программы, которые так и называются -- графические редакторы. Все они позволяют нарисовать нужное изображение, изменить его, сохранить рисунок во внешней памяти, а также напечатать его. Однако, закодировать картинку для обработки можно по-разному. Вы уже знаете о растровом представлении изображения. В этом случае наименьший элемент, который можно изменить, -- это отдельная точка растра (пиксел). Конечно, можно работать не только с отдельными точками, но и любыми произвольными фрагментами рисунка, имитировать рисование различными реальными инструментами художника. Редакторы, использующие такое представление информации, называются растровыми.
Но можно запоминать не саму картинку, а инструкции, как ее нарисовать. Современные компьютеры могут выполнять такие инструкции с очень большой скоростью -- рисунок появляется почти мгновенно. В результате оказывается, что изображение состоит как бы из большого количества фигурок, разложенных на листе. Их можно в любой момент подвинуть, переложить по-другому, убрать или заменить. Такие "фигурки" называют объектами, а графические редакторы, работающие с ними -- объектными 31.
Оба способа представления изображения имеют свои преимущества и недостатки, поэтому, в зависимости от конкретной задачи, выбирается тот или другой графический редактор.
Похожие способы представления существуют и для звука. Можно разбить все время звучания на очень маленькие промежутки и хранить величину сигнала в каждый из этих промежутков. А можно указать, какую ноту, в какой момент и на каком инструменте сыграть. |
Контрольные вопросы
- Что такое "программа"? Какие тебе известны виды программного обеспечения?
- Как получается изображение на экране монитора или при печати на принтере?
- От чего зависит, сколько памяти займет в компьютере картинка? Определи, какое максимальное количество оттенков можно увидеть на экране компьютера при разрешении 800х600 точек, если объем его видеопамяти -- 0,5 Мбайт.
- Назови два вида графических редакторов. Как по-твоему, в каких случаях лучше использовать один из них, в каких -- другой?
Примечания
- 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 (англ. -- истинный цвет) -- изображение фотографического качества.
- Такие устройства называют графическими ускорителями.
- Другое название -- векторные редакторы - связано с особенностями математического описания изображений в первых таких программах.
|