Москва 2001 г тайный язык информатики Чарльз Петцольд ббк 32. 973. 26–018



Pdf көрінісі
бет24/26
Дата07.04.2020
өлшемі3,29 Mb.
#61783
1   ...   18   19   20   21   22   23   24   25   26
Байланысты:
Petcold Kod-Taynyy-yazyk-informatiki.535358


469

Графическая революция

терфейса, например, кнопок и меню. Обычно считают, что

стандартизированный графический интерфейс облегчает

жизнь пользователю, но на самом деле он не менее удобен и

для программиста. При создании нового приложения автору

не приходится изобретать велосипед.

Еще до появления «Macintosh» некоторые компании пыта-

лись создать графическую ОС для IBM-совместимых компь-

ютеров. В каком-то смысле перед разработчиками «Apple» сто-

яла более легкая задача, поскольку они проектировали обору-

дование и программы одновременно. Системной программе

«Macintosh» достаточно было поддерживать один тип диско-

вода для гибких дисков, один дисплей и два принтера. При

создании графической ОС для PC приходилось учитывать куда

более широкое аппаратное разнообразие.

И это не единственная проблема. За несколько лет суще-

ствования IBM PC многие люди привыкли к приложениям MS-

DOS и не собирались от них отказываться. К графической ОС

для PC предъявлялось непременное требование: под ней дол-

жны были работать программы для MS-DOS (на «Macintosh»

программы для «Apple II» не работали главным образом из-за

различий в микропроцессорах).

В 1985 г. появились сразу три графических оболочки для

PC: GEM компании Digital Research (в свое время создавшей

CP/M), VisiOn компании VisiCorp (она распространяла про-

грамму VisiCalc) и Windows 1.0 компании Microsoft. Скоро ста-

ло ясно, что победителем в «войне окон» станет последняя.

Однако массовое внимание пользователей Windows привлек-

ла лишь в мае 1990 г., после выхода версии 3.0. С тех пор попу-

лярность Windows возросла неимоверно, и в наши дни под

управлением этой ОС работает 90% персональных компьюте-

ров. Внешне системы Windows и Mac OS довольно похожи, но

интерфейсы API у них совершенно разные.

Теоретически графическая ОС по сравнению с текстовой

требует установки на компьютере лишь одного дополнитель-

ного устройства — дисплея с графическими возможностями.

Даже жесткий диск необязателен: у первого «Macintosh» его

вовсе не было, для работы Windows 1.0 он тоже был не нужен.

Не требовалась в Windows 1.0 и мышь, хотя по общему мне-

нию она существенно облегчала работу с системой.



470

Глава двадцать пятая

И все же именно развитие компьютерного оборудования

— повышение быстродействия процессоров, увеличение объе-

ма оперативной памяти и емкости жестких дисков — обусло-

вило растущую популярность графических ОС. По мере того

как ОС становится удобнее, растут и ее потребности. Совре-

менной графической ОС нужны пара сотен мегабайт на жест-

ком диске и оперативная память не менее 32 Мб.

Приложения для графических ОС практически никогда не

писались на ассемблере. В прежние годы программы для

«Macintosh» разрабатывались на Паскале, а для Windows — на

С. В 1972 г. сотрудники центра PARC приступили к разработке

языка SmallTalk, опирающегося на концепцию объектно-ори-

ентированного программирования  (object-oriented program-

ming), на которой основан новый подход к созданию графи-

ческих программ.

В традиционных языках программирования имеется чет-

кое различие между программой (т. е. операторами, начинаю-

щимися с какого-либо ключевого слова — Set, For, If и т. д.) и

данными (т. е. константами и переменными). Корни этого раз-

личия, несомненно, лежат в архитектуре неймановского ком-

пьютера, в котором нет ничего, кроме машинного кода и дан-

ных, на которые этот код воздействует.

В объектно-ориентированном программировании код и

данные сосуществуют в составе единого объекта (object). Кон-

кретный способ хранения данных в объекте понятен лишь

коду, связанному с этим объектом. Друг с другом объекты вза-

имодействуют, отправляя и принимая сообщения (messages), в

которых содержатся команды или запросы на информацию.

Объектно-ориентированные языки особенно удобны при

создании приложений для графических ОС. Благодаря им про-

граммист, работая с экранными объектами (окнами, кнопка-

ми), воспринимает их практически так же, как и пользователь.

Возьмите в качестве примера объекта кнопку. Она характери-

зуется следующими данными: размерами, положением на эк-

ране, текстом. А связанный с кнопкой код отслеживает, была

ли она «нажата» с помощью клавиатуры или мыши, и отправ-

ляет другим объектам сообщение об этом.

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

пулярные объектно-ориентированные языки для небольших

компьютеров являются расширенными вариантами традици-



471

Графическая революция

онных «алголоподобных» языков, например, С или Паскаля.

Объектно-ориентированный вариант языка С называется С++.

Он разработан в основном Бьерном Страуструпом (Bjarne

Stroustrup) (род. 1950) из Bell Telephone Laboratories. Поначалу

С++ был реализован как транслятор, который преобразовы-

вал программу на С++ в программу на С (весьма неуклюжую

и совершенно нечитабельную). Затем программа на С компи-

лировалась обычным способом.

Разумеется, возможностей у объектно-ориентированных язы-

ков ничуть не больше, чем у традиционных. Но решения про-

граммистских задач, подсказываемые объектно-ориентирован-

ными языками, зачастую технически более совершенны. При из-

вестном старании можно (хотя и не обязательно легко) написать

даже объектно-ориентированную программу, которая будет ком-

пилироваться как под Mac OS, так и под Windows. В такой про-

грамме прямого обращения к API-функциям быть не должно.

Программа обращается к объектам, а уже объекты вызывают API-

функции. При компиляции программы под Mac OS и под

Windows используются различные определения объектов.

В наши дни запускать компилятор из командной строки,

как правило, уже не приходится. Большинство программис-

тов перешли на интегрированные среды разработки — удоб-

ные программы, в которых объединены все инструменты на-

писания и отладки программ. Широкое распространение по-

лучил также метод  визуального программирования  (visual

programming), позволяющий разрабатывать окна приложения

в интерактивном режиме, размещая в них кнопки и другие

элементы с помощью мыши.

В главе 22 я рассказывал о текстовых файлах, которые со-

держат только коды ASCII и понятны человеку без использо-

вания дополнительных приспособлений. В текстовых ОС та-

кие файлы — идеальное средство для обмена информацией

между приложениями. У них есть одно большое преимуще-

ство: в текстовом файле легко найти нужную последователь-

ность символов. Но как только у вас возникает желание ото-

бражать текст во множестве шрифтов, размеров и начертаний,

вы понимаете, что возможностей текстового файла для этого

недостаточно. Большинство современных текстовых процес-

соров хранят свои документы в двоичном формате. И уже со-

всем не годится текстовый формат для хранения изображений.


472

Глава двадцать пятая

Точнее сказать, закодировать в текстовом файле такие ат-

рибуты текста, как параметры шрифта или абзаца, можно. В

формате RTF (Rich Text Format), разработанном фирмой

Microsoft, для этого применяются фигурные скобки и обрат-

ная косая черта, за которой следует команда, описывающая

форматирование текста.

В текстовом формате PostScript эта концепция доведена до

крайности. Его разработал один из основателей компании

Adobe Systems Джон Уорнок (John Warnock) (род. 1940). Он

представляет собой настоящий универсальный язык графи-

ческого программирования. Сейчас PostScript применяется в

основном для печати текста и изображений на высококаче-

ственных принтерах.

Изображения украсили экраны ПК благодаря совершен-

ствованию компьютерного оборудования и его удешевлению.

Микропроцессоры заработали быстрее, память подешевела,

экраны и листы бумаги, выползающие из принтеров, запест-

рели яркими красками, существенно возросло экранное и пе-

чатное разрешение. Все эти достижения сразу находили при-

менение в компьютерной графике.

Компьютерные изображения, как и мониторы, бывают ра-

стровыми и векторными.

Векторные изображения создаются алгоритмически, в виде

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

активно используют в системах автоматизированного проек-

тирования (computer-aided drawing) для создания технических

или архитектурных чертежей. Формат для хранения вектор-

ного изображения на диске компьютера называют метафай-

лом (metafile). Обычно в метафайл входят просто команды для

рисования компонентов векторного изображения, записанные

в двоичном виде.

Замкнутых и разомкнутых линий вполне достаточно для

создания проекта, скажем, моста, но они абсолютно непригод-

ны, если вам нужно показать, как этот мост выглядит «в жиз-

ни». Мост — объект из реального мира. Он слишком сложен,

чтобы его можно было представить в виде комбинации про-

стых геометрических фигур.

Вот здесь-то на помощь и приходят растровые, или точеч-



ные (bitmap) изображения. В точечном формате изображение

представлено в виде прямоугольного массива пикселов, соот-



473

Графическая революция

ветствующих пикселам устройства вывода. Подобно монито-

рам, точечные изображения характеризуются размерами по

горизонтали и вертикали в пикселах и цветовой глубиной, за-

висящей от того, сколько битов соответствует 1 пикселу.

Хотя точечное изображение двумерно, файл, в котором оно

записано, представляет собой всего лишь длинную последо-

вательность битов. В ней, как правило, сначала закодирована

первая строка пикселов, потом вторая и т. п.

Создавать точечные изображения можно как «вручную», с

помощью специального графического приложения, так и про-

граммно. В точечный формат можно перевести и изображе-

ние, созданное более традиционным способом: рисунок или

фотографию. Для переноса в компьютер образов из реально-

го мира придумано несколько устройств, основу которых, как

правило, составляет  прибор с зарядовой связью  (ПЗС, charge-

coupled device, CCD) — полупроводниковый прибор, выраба-

тывающий электрический ток при облучении светом.

Старейшее устройство подобного рода — сканер. В нем, как

и в копировальном аппарате, по сканируемому изображению

(например, по фотографии) проходит ПЗС-линейка, состав-

ленная из отдельных ПЗС-элементов. В зависимости от ин-

тенсивности света, отраженного от изображения, каждый ПЗС-

элемент вырабатывает определенный электрический заряд.

Программа, обслуживающая сканер, переводит сигналы от

отдельных элементов в пикселы точечного изображения и за-

писывает его в файл.

В видеокамерах для записи изображения используются дву-

мерные ПЗС-матрицы. Обычно запись осуществляется на маг-

нитную ленту, но сигнал с ПЗС-матрицы можно направить и

в устройство для захвата кадра (video frame grabber) — ком-

пьютерную плату, преобразующую аналоговый видеосигнал

в последовательность битов. Источником видеосигнала может

быть не только видеокамера, но и видеомагнитофон, проиг-

рыватель лазерных видеодисков и даже обычный телевизор.

В недавнее время в разряд бытовых приборов попали циф-

ровые видеокамеры. Выглядят они, как обычные видеокаме-

ры, но сигнал с ПЗС-матрицы записывается в них не на ленту,

а в электронную память, откуда его позже можно переписать

на диск компьютера.



474

Глава двадцать пятая

Зачастую в графической ОС для хранения точечных изоб-

ражений используется свой специфический формат. На

«Macintosh», например, применяется формат Paint. Это назва-

ние происходит от имени графического редактора MacPaint, в

котором формат был впервые применен (в настоящее время

предпочтительнее формат PICT, в котором могут храниться

как точечные, так и векторные изображения). Точечный фор-

мат для Windows называется BMP (такое расширение в этой

ОС имеют файлы с точечными изображениями).

Точечные изображения зачастую весьма объемны, поэто-

му желательно придумать какой-то способ делать их компак-

тнее. Изобретение подобных способов относится к компетен-

ции раздела информатики, известного как уплотнение данных.

Рассмотрим в качестве примера изображение, в котором каж-

дому пикселу соответствуют 3 бита. На нем запечатлено голу-

бое небо и дом с лужайкой, т. е. существенные части изображе-

ния окрашены в голубой и зеленый цвета. Допустим, верхняя

строка изображения содержит 72 пиксела голубого цвета, иду-

щих друг за другом. Чтобы сделать файл компактнее, нужно

записывать в него не все 72 пиксела, а лишь один, но с указа-

нием повторить его 72 раза. Такой способ уплотнения называ-

ется кодированием повторяющихся последовательностей

(Run-Length Encoding, RLE) и применяется в обычных факси-

мильных аппаратах для сжатия изображения перед его отправ-

кой по телефонной линии. Поскольку факс-аппарат различа-

ет только черный и белый цвета, в отправляемом изображе-

нии обычно не бывает недостатка в длинных последователь-

ностях одноцветных пикселов.

Для сжатия графических файлов уже больше десятилетия

используется метод LZW, названный так по именам его созда-

телей (Lempel, Ziv, Welch). Он, в частности, применяется в гра-

фическом формате GIF (Graphics Interchange Format, формат

для обмена изображениями), разработанном в 1987 г. компа-

нией CompuServe. Метод LZW в отличие от RLE способен рас-

познавать не только идущие подряд одинаковые пикселы, но

и более сложные закономерности в их расположении.

Методы RLE и LZW обеспечивают уплотнение без потерь.

Это значит, что при восстановлении уплотненного файла он

полностью возвращается в исходное состояние. Иными сло-

вами, уплотнение методом RLE или LZW обратимо. Легко до-


475

Графическая революция

казать, что сжать без потерь можно не всякий файл. Иногда

файл, «уплотненный» по обратимому методу, оказывается

больше исходного!

В последние годы выросла популярность  «затратных»

методов сжатия. Они обратимостью уже не обладают, посколь-

ку часть исходных данных в уплотненный файл не записыва-

ется. Разумеется, никто не посоветует вам таким способом сжи-

мать документ текстового процессора или файл электронной

таблицы, в которых важна каждая цифра или буква. Но к гра-

фическим файлам затратное сжатие вполне применимо, при

условии, конечно, что выброшенные данные не ухудшают су-

щественно качества изображения. Вот почему разработчикам

затратных методов приходится опираться на результаты пси-

хологических исследований, в которых определяется, что ка-

жется человеческому взгляду важным, а что — нет.

Самые популярные затратные методы сжатия точечных

изображений известны под общим обозначением JPEG (Joint

Photography Experts Group, Объединенная группа специалистов

по фотографии). Правда, формат JPEG включает в себя несколь-

ко методов сжатия, из которых затратными являются не все.

Преобразовать метафайл в точечное изображение доволь-

но просто. Концептуально видеопамять и точечное изображе-

ние организованы одинаково. Если программа «умеет» рисо-

вать изображение на экране компьютера, она с тем же успехом

может записать его в точечный файл.

Обратное преобразование выполнить гораздо сложнее, если

вообще возможно. Частный случай такого преобразования —



оптическое распознавание символов  (Optical Character

Recognition, OCR). Оно используется, когда нужно перевести

печатные символы, содержащиеся в точечном изображении, в

соответствующие коды ASCII. OCR-программа анализирует

последовательности пикселов и пытается определить, изобра-

жение какого символа ей встретилось. Алгоритмически эта

задача очень сложна, поэтому 100%-ую точность программы

OCR обеспечивают редко. Еще хуже дело обстоит с переводом

в коды ASCII рукописного текста.

Точечные и векторные изображения являют собой способ

цифрового представления визуальной информации. В биты и

байты можно преобразовать также и звуковую информацию.



476

Глава двадцать пятая

Цифровой звук произвел фурор в 1983 г., когда на рынке

появились первые компакт-диски (compact-disks, CD). Это со-

бытие положило начало самому успешному этапу развития

бытовой электроники. Компакт-диск разработан фирмами

Philips и Sony для записи 74 минут цифрового звука на одной

стороне диска диаметром 12 см. Такая продолжительность за-

писи выбрана для того, чтобы на одном диске можно было

целиком хранить Девятую симфонию Бетховена.

Звук на компакт-диске кодируется с помощью кодово-им-



пульсной модуляции  (pulse code modulation, PCM). Несмотря

на заковыристое название, концепция метода PCM проста.

Звук — это вибрация. Вибрируют голосовые связки чело-

века, труба в оркестре, падающее дерево. Вибрация заставляет

воздух двигаться. Он начинает периодически разрежаться и

сжиматься с частотой несколько сотен или тысяч раз в секун-

ду — по воздуху распространяется звуковая волна. Долетев до

уха, она колеблет барабанные перепонки, благодаря чему мы

слышим звук.

В фонографе Томаса Эдисона, изобретенном в 1877 г., зву-

ковые волны продавливалась на поверхности цилиндра, по-

крытого оловянной фольгой. Записанный на цилиндре звук

позже можно было воспроизвести. До появления компакт-дис-

ков этот принцип записи оставался практически неизменным,

хотя вместо цилиндров позже стали использовать диски, а

вместо фольги — сначала воск, а потом пластмассу. Первые

фонографы были полностью механическими, затем для уси-

ления звука в них начали применять электрические схемы.

Переменный резистор в микрофоне превращает звук в элект-

рический сигнал, а электромагнит в динамике преобразует

электричество обратно в звук.

Электрический ток, которым закодирован звук, не похож

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

жении всей книги. Давление в звуковой волне меняется непре-

рывно, и потому непрерывно меняется также и напряжение

тока. Этот электрический сигнал является аналоговым, и для

его преобразования в двоичную форму необходимо специаль-

ное устройство, обычно изготавливаемое в виде микросхемы,

—  аналого-цифровой преобразователь (АЦП; analog-to-digital

converter). Цифровые сигналы на выходе АЦП — обычно их

8, 12 или 16 — символизируют относительный уровень напря-


477

Графическая революция

жения. 12-битовый АЦП, например, преобразует звуковой

электрический сигнал в число от 000h до FFFh, различая 4096

уровней напряжения.

В случае кодово-импульсной модуляции аналоговый сиг-

нал преобразуется в цифровые значения с постоянной скоро-

стью. Эти значения записываются на компакт-диск в виде кро-

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

отражающимся от поверхности диска. При воспроизведении

двоичные значения преобразуются обратно в аналоговый сиг-

нал с помощью цифро-аналогового преобразователя (digital-to-

analog converter). Подобное устройство используется и в цвет-

ных видеоадаптерах для преобразования битового кода пик-

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

Частота, с которой аналоговый звуковой сигнал преобра-

зуется в цифровой, называется  частотой дискретизации

(sampling rate). В 1928 г. Гарри Найквист (Harry Nyquist) из Bell

Telephone Laboratories доказал, что она должна минимум вдвое

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

лагается записывать и воспроизводить. Обычно считается, что

человеческое ухо способно воспринимать звук в диапазоне

частот от 20 до 20 000 Гц. При записи компакт-дисков исполь-

зуется частота дискретизации 44 100 Гц, что несколько выше

требуемой.

Количество битов для кодирования элемента записи опре-

деляет динамический диапазон компакт-диска, т. е. различие

между самым тихим и самым громким звуком, который мож-

но на него записать. Для измерения ширины этого диапазона

введена единица бел, названная в честь Александра Белла. 1 бел

соответствует 10-кратному увеличению интенсивности звука.

Чаще применяется единица децибел, равная 0,1 бела. 1 деци-

бел приблизительно равен минимальному изменению интен-

сивности звука, которое человек в состоянии различить.

16-разрядное кодирование звука позволяет охватить дина-

мический диапазон 96 децибел, что приблизительно соответ-

ствует разнице между порогом слышимости и болевым поро-

гом. При записи компакт-дисков один дискретный звуковой

элемент кодируется 16 битами.

Итак, 1 секунда звуковой записи представлена на диске 44 100

элементами по 2 байта каждый. Поскольку мы уже привыкли

к стереозвучанию, удваиваем это число, получив в итоге 176


478

Глава двадцать пятая

400 байт на секунду или 10 584 000 байт на минуту записи (те-

перь вы, конечно, понимаете, почему цифровая запись не

пользовалась популярностью до 1980-х). Для записи на ком-

пакт-диске  74 минут звука требуется 783 216 000 байт.

У цифрового звука по сравнению с аналоговым много хо-

рошо известных преимуществ. В частности, при каждом ко-

пировании аналогового звука качество записи ухудшается.

Цифровой же звук состоит из чисел, которые можно много-

кратно копировать без потери информации. В прежних теле-

фонных сетях качество сигнала ухудшалось при увеличении

расстояния между абонентами. Теперь это не так. В телефон-

ных системах используется в основном цифровой звук, и по

качеству звонок на другой континент не отличается от звонка

в соседний дом.

На компакт-диске можно хранить не только звук, но и дан-

ные. Компакт-диск, используемый исключительно для данных,

называют иногда CD-ROM-диском. Емкость таких дисков обыч-

но не превышает 660 Мб. Дисководы для их чтения стали стан-

дартным компьютерным оборудованием, а сами диски — тра-

диционным средством для распространения приложений и игр.

Лет 10 назад возможность записи и воспроизведения звука

и видео с помощью компьютера назвали красивым словом

мультимедиа (multimedia), но теперь эти функции настолько

стандартны, что необходимость в специальном названии от-

пала. В комплект большинства компьютеров входит звуковая

плата со всеми необходимыми устройствами для воспроизве-

дения звука через колонки и записи с помощью микрофона.

На диске записанный звук сохраняется в WAV-файлах (от

«wave» — волна).

При воспроизведении звука, записанного с помощью ком-

пьютера, редко нужно качество компакт-диска, поэтому звуко-

записывающие программы и на «Macintosh», и на Windows-ком-

пьютерах используют 8-разрядное кодирование звука и неболь-

шие частоты дискретизации — 22 050, 11 025 и 8000 Гц. При

минимальных запросах (без стерео) объем 1 секунды записи

можно сократить до 8 000 байт, т. е. 480 000 байт на минуту.

Любители фантастических фильмов, бесспорно, знают, что

компьютеры будущего общаются с людьми исключительно на

человеческом языке. Что ж, если компьютер оборудован уст-

ройствами для записи и воспроизведения цифрового звука,




Достарыңызбен бөлісу:
1   ...   18   19   20   21   22   23   24   25   26




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет