Читать книгу "Код. Тайный язык информатики - Чарльз Петцольд"
Шрифт:
Интервал:
Закладка:
С помощью заполненных цветом фигур, прямых и кривых линий можно изобразить проект моста, однако если вам нужен рисунок готового моста, возможностей векторной графики будет недостаточно. Потребуется реалистичная картинка, которую невозможно создать из векторных объектов.
Для этой цели лучше использовать растровые, или точечные, изображения. При применении растровой графики изображение кодируется как прямоугольный массив битов, соответствующих пикселам устройства вывода. Как и видеодисплей, растровое изображение имеет такие параметры, как разрешение (ширина и высота в пикселах) и глубина цвета (количество битов на пиксел). Каждому пикселу соответствует одинаковое количество битов.
Несмотря на то что растровое изображение двумерно, сам битовый массив — это единый поток байтов, в котором последовательно закодированы все строки пикселов.
Одни растровые изображения создаются «вручную» в специальном графическом редакторе, другие — алгоритмически с помощью компьютерного кода. Однако в наши дни растровая графика чаще всего необходима при работе со снимками реальных объектов (например, с фотографиями). Для перенесения таких изображений из реального мира в компьютер существуют специальные аппаратные средства. Как правило, они используют полупроводниковый прибор с зарядовой связью (ПЗС), который вырабатывает электрический ток при облучении светом. Для создания одного пиксела требуется одна ячейка ПЗС.
Старейшее из подобных устройств — сканер. Принцип его работы аналогичен принципу работы копировального аппарата и заключается в перемещении линейного массива элементов ПЗС вдоль поверхности сканируемого изображения, например фотографии. Элементы ПЗС генерируют электрические заряды в зависимости от интенсивности света, отраженного от поверхности изображения. Сопровождающее сканер программное обеспечение преобразует полученные сигналы в битовый массив и сохраняет его в файле.
В видеокамерах для захвата изображений используется двумерный массив ячеек ПЗС. Как правило, они записываются на видеопленку[36]. Однако выходной видеосигнал может подаваться непосредственно в устройство для захвата кадра — на плату, преобразующую аналоговый видеосигнал в массив битов. Эти устройства можно использовать с любым обычным источником видеосигнала, например с видеомагнитофоном, проигрывателем лазерных дисков или даже с телевизором.
Цифровые камеры похожи на обычные, только вместо пленки в них используется массив элементов ПЗС для захвата изображения, которое сохраняется непосредственно в памяти камеры, а затем передается в компьютер.
Графическая операционная система часто предусматривает специальный формат для хранения растровых изображений. В Mac OS используется формат Paint — от программы MacPaint, в которой он был применен впервые. (Однако предпочтителен формат Macintosh PICT, допускающий хранение и растровых, и векторных изображений.) В Windows для хранения растровых изображений используется формат BMP.
Растровые изображения могут занимать довольно много места, в связи с чем возникает необходимость в разработке способа уменьшения их объема. Этой задаче посвящена целая область информатики под названием сжатие данных.
Вернемся к примеру с изображением, где на пиксел приходится по три бита. Это фотография неба и дома с газоном с большими областями синего и зеленого цветов. Возможно, верхняя строка растрового изображения содержит 72 синих пиксела, идущих подряд. Чтобы уменьшить объем растрового изображения, нужно закодировать в файле данные о том, что синий пиксел повторяется 72 раза. Такой способ сжатия называется кодированием серий последовательностей (Run-Length Encoding, RLE).
Алгоритм RLE используется в обычном офисном факсимильном аппарате для уменьшения размера изображения перед его отправкой по телефонной линии. Поскольку факс распознаёт только черный и белый цвета без оттенков серого, факсимильное изображение часто содержит длинные последовательности белых пикселов.
Уже довольно давно популярен формат растровых изображений GIF (Graphics Interchange Format, «формат для обмена изображениями»), разработанный компанией CompuServe в 1987 году. Этот формат использует алгоритм сжатия данных LZW, названный так по именам создателей (Lempel, Ziv, Welch, алгоритм Лемпеля — Зива — Велча). Алгоритм LZW является более мощным, чем RLE, поскольку помимо последовательностей одинаковых пикселов он способен распознавать закономерности, состоящие из различных пикселов.
Алгоритмы RLE и LZW называются методами сжатия данных без потерь, поскольку исходный файл может быть полностью восстановлен. Другими словами, сжатие обратимо. Однако метод обратимого сжатия данных подходит не для всех типов файлов. В некоторых случаях объем сжатого файла превышает объем исходного!
В последние годы широкое распространение получили методы сжатия данных с потерями. Алгоритм сжатия с потерями не является обратимым, поскольку при его использовании некоторые исходные данные безвозвратно теряются. Вы вряд ли примените этот алгоритм к электронным таблицам или текстовым документам, так как в них каждое число и слово имеют значение. Однако вы, вероятно, не станете возражать против его применения к изображениям при условии, что потеря данных не окажет существенного влияния на результат. Именно поэтому методы сжатия данных с потерями основаны на психологических исследованиях, задача которых выявить, что важно для человеческого визуального восприятия, а что нет. Самые распространенные методы сжатия данных с потерями, применяемые для растровых изображений, известны под общим названием JPEG (Joint Photography Experts Group, «объединенная группа экспертов по фотографии»). Формат JPEG фактически объединяет несколько алгоритмов сжатия как с потерями, так и без.
Преобразовать метафайл в растровое изображение довольно просто. Поскольку видеопамять и битовый массив концептуально идентичны, программа, способная записать метафайл в видеопамять, также может сохранить его в битовый массив.
Преобразовать растровое изображение в метафайл не так просто, а в случае сложного изображения вообще невозможно. Один из способов решения этой задачи — оптическое распознавание символов (Optical Character Recognition, OCR). Оно используется, когда нужно преобразовать в ASCII-коды растровое изображение некоторого текста (например, полученную по факсу или отсканированную печатную страницу). Программное обеспечение OCR анализирует точечные последовательности и определяет, каким символам они соответствуют. Из-за алгоритмической сложности этой задачи OCR-программы обычно не дают абсолютно точного результата. Еще менее точным является программное обеспечение, предназначенное для преобразования в ASCII-коды рукописного текста.
Растровые изображения и метафайлы используются для цифрового представления визуальной информации. Звуковую информацию тоже можно преобразовать в биты и байты.
Цифровой звук произвел настоящий фурор в 1983 году благодаря появлению компакт-диска (compact-disk, CD), который стал самым успешным продуктом в истории потребительской электроники. Компакт-диск был разработан компаниями Philips и Sony и позволял хранить на одной стороне диска диаметром 12 сантиметров цифровые аудиофайлы общей длительностью 74 минуты. Такая длительность была выбрана для того, чтобы на компакт-диске могла уместиться Девятая симфония Бетховена.
Внимание!
Сайт сохраняет куки вашего браузера. Вы сможете в любой момент сделать закладку и продолжить прочтение книги «Код. Тайный язык информатики - Чарльз Петцольд», после закрытия браузера.