- •Примерные ответы на профильные билеты е.А. Еремин, а.П. Шестаков
- •Билет № 1
- •Литература
- •2. С помощью электронной таблицы смоделировать 100 исходов бросания игрального кубика. Сравнить результаты опыта с теоретическими значениями.
- •3. Построить таблицу истинности для заданного логического выражения (логическое выражение должно содержать не менее четырех логических операций, в том числе импликацию).
- •Билет № 2
- •Литература
- •2. В векторном графическом редакторе построить чертеж, иллюстрирующий условие планиметрической задачи.
- •Билет № 3
- •3. Построить логическую схему для заданной таблицы истинности (таблица задана для трех переменных).
- •Вероятностный подход к измерению информации
- •Алфавитный (объемный) подход к измерению информации
- •Литература
- •2. С использованием электронной таблицы произвести обработку данных с помощью статистических функций
- •Варианты заданий
- •3. Решить текстовую логическую задачу (необходимо использовать не менее четырех переменных)
- •Варианты заданий
- •Билет № 4
- •2. Средствами почтовой программы обеспечить автоматическое уведомление отправителя о получении от него письма
- •Билет № 5
- •1. Язык программирования. Типы данных. Реализация основных алгоритмических структур на языке программирования. Основные этапы разработки программ
- •2. Сформировать и выполнить запрос к готовой базе данных для поиска группы записей по заданным критериям
- •3. Подсчитать размер текстового файла при заданной кодовой таблице, формате страницы и количестве страниц. Оценить размеры того же текста в других изученных форматах текстовых редакторов
- •Билет № 6
- •1. Технология программирования. Структурное и объектно-ориентированное программирование. Процедуры и функции. Локальные и глобальные переменные
- •2. Средствами почтовой программы создать фильтр для автоматического распределения входящих писем по почтовым папкам в зависимости от темы письма
- •Служба mail.Ru
- •3. Задание на подсчет полного набора символов (мощности алфавита), используемого при кодировании информации
- •Билет № 7
- •1. Типы данных. Структуры данных. Обработка массивов. Итеративные и рекурсивные алгоритмы обработки массивов. Многомерные массивы
- •3. Определить информационный объем переданного сообщения за определенный период времени при заданной пропускной способности канала.
- •Билет № 8
- •1. Основные понятия и операции формальной логики. Законы логики. Логические переменные. Логические выражения и их преобразования. Построение таблиц истинности логических выражений
- •2. С помощью электронной таблицы вычислить значение функции, заданной рекуррентным соотношением
- •.3. Представить на языке программирования вычислительный алгоритм, записанный в виде блок-схемы. (Получить результат в виде значения переменной.)
- •Билет № 9
- •1. Логические элементы и схемы. Типовые логические устройства компьютера: полусумматор, сумматор, триггеры, регистры. Описание архитектуры компьютера с опорой на составляющие ее логические устройства
- •2. С помощью электронной таблицы построить график функции
- •3. Записать на языке программирования алгоритм для вычисления значения функции при заданных значениях аргументов. Произвести вычисления
- •Билет № 10
- •2. Найти на компьютере все файлы, удовлетворяющие заданному критерию, и объединить их в архив, защищенный паролем. Распаковать архив в заданный каталог
- •1. Поиск файлов
- •2. Архивирование файлов с защитой паролем
- •3. Разархивирование файлов
- •3. Написать программу, вычисляющую значение n-го члена последовательности, заданной по алгоритму. Произвести ввод и отладку программы, проанализировать полученный результат
- •Билет № 11
- •2. Найти на указанном диске все файлы, удовлетворяющие заданному критерию, объединить в самораспаковывающийся архив и записать на компакт-диск.
- •3. Написать программу на поиск элементов массива по заданному условию. Произвести ввод и отладку программы. Проанализировать полученный результат
- •Билет № 12
- •Билет № 13
- •1. Компьютерные сети. Аппаратные средства компьютерных сетей. Топология локальных сетей. Характеристики каналов (линий) связи. Профессии, связанные с обеспечением эксплуатации сетей
- •2. С помощью электронной таблицы решить уравнение с заданной точностью и представить решение графически
- •3. Написать программу для вычисления количества сочетаний (формулируется как комбинаторная задача, решаемая в общем случае). Произвести ввод и отладку программы. Проанализировать полученный результат
- •Билет № 14
- •2. В готовом текстовом документе отформатировать заголовки различного уровня соответствующими стилями. Выполнить автоматическое формирование оглавления.
- •3. Вычислить информационный объем сообщения исходя из вероятностного подхода.
- •Билет № 15
- •Взаимосвязь аппаратного и программного обеспечения компьютера
- •Многообразие операционных систем
- •Понятие о системном администрировании
- •Программные и аппаратные средства для решения различных профессиональных задач
- •2. С помощью электронной таблицы решить задачу табулирования заданной функции. Результат представить в табличной и графической форме.
- •3. Построить модель заданного физического процесса и реализовать ее на компьютере. Проанализировать полученный результат.
- •Билет № 16
- •Специализированное программное обеспечение для защиты программ и данных
- •Технологии и средства защиты информации в глобальной и локальной компьютерных сетях от разрушения, несанкционированного доступа
- •2. Отсканировать страницу текста, выполнить его распознавание и (при необходимости) корректировку. Результат сохранить в текстовом документе.
- •3. Построить имитационную модель заданной системы и реализовать ее на компьютере. Проанализировать полученный результат.
- •Билет № 17
- •Файловый принцип организации данных
- •Понятие файла
- •Файлы прямого и последовательного доступа
- •Типы файлов
- •Операции с файлами
- •Аппаратное обеспечение хранения данных и функционирования файловой системы
- •2. С помощью системы проверки орфографии исправить ошибки в готовом текстовом документе.
- •3. Написать и отладить программу обработки массива (суммирование элементов, сортировка и пр.). Проанализировать полученный результат.
- •Варианты заданий
- •Билет № 18
- •2. Создать компьютерную презентацию из 3–5 слайдов на заданную тему, содержащую текст, графику и элементы анимации.
- •3. Определить скорость работы модема исходя из времени передачи сообщения и его информационного объема (желательно преобразование единиц измерения).
- •1. Могилев а.В., Пак н.И., Хеннер е.К. Информатика: Учебное пособие для педагогических вузов / Под ред. Е.К. Хеннера. М.: Академия, 2004, 848 с. Билет № 19
- •2. Создать две взаимосвязанные web-страницы на заданную тему, содержащие текст, графику, гиперссылки и простые элементы управления (кнопки, переключатели, списки).
- •3. Рассчитать, какое количество страниц текста можно сохранить на дискете в виде архива при заданных размерах страницы, кодовой таблице и коэффициенте сжатия.
- •Билет № 20
- •Билет № 21
- •2. С помощью электронной таблицы вычислить прибыль по вкладу при заданной доходности (сложные проценты).
- •3. Для заданного логического выражения определить множества значений переменных, при которых выражение истинно или ложно. (Выражение содержит не менее трех логических переменных.)
- •Билет № 22
- •2. Написать и отладить программу обработки целочисленных данных.
- •Варианты заданий
- •3. По заданной таблице истинности записать и упростить логическое выражение. (Таблица задается для трех логических переменных.)
- •Билет № 23
- •2. Написать и отладить программу обработки вещественных данных.
- •Задания
- •3. Построить таблицу истинности для заданной логической схемы (логическая схема должна содержать не менее трех входов).
- •Реляционная модель
- •Билет № 24
- •Иерархическая модель
- •Сетевая модель
- •Системы управления базами данных
- •3. Написать и отладить программу обработки символьных данных. Проанализировать полученный результат.
- •Варианты заданий
- •Билет № 25
- •2. По заданному документу создать реляционную базу данных из трех таблиц, исключив при этом дублирование информации.
- •3. Рассчитать объем звукового файла при заданной продолжительности звучания, частоте дискретизации и заданном формате файла.
3. Определить скорость работы модема исходя из времени передачи сообщения и его информационного объема (желательно преобразование единиц измерения).
Известны информационная емкость сообщения, например I = 1000 байт, и время отправки этого сообщения t = 2 секунды с помощью модема. Нужно определить скорость модема.
Скорость модема задается в битах в секунду, или бит/с. Поэтому информационную емкость сообщения переведем в биты
I = 1000 байт = 8000 бит.
Вычислим скорость модема
V = I / t = 8000 / 2 = 4000 (бит/с)
Примечание. Изначально скорость модемов измерялась в бодах. Бод относится к частоте осцилляции звуковой волны, переносящей биты данных по телефонной линии. Свое название эта единица получила от имени французского офицера-связиста Ж.Бодо. В начале 1980 годов скорость в бодах равнялась скорости в битах в секунду, т.е., например, 300 бод равнялось 300 бит/с. Затем были разработаны методы сжатия и кодирования данных, в результате каждая модуляция звука может переносить больше одного бита информации. Это означает, что скорость в битах в секунду может быть больше скорости в бодах. Современные модемы имеют стандартные скорости передачи данных, например, стандарт V42.bis устанавливает скорость передачи данных 57 600 бит/с. |
Литература
1. Могилев а.В., Пак н.И., Хеннер е.К. Информатика: Учебное пособие для педагогических вузов / Под ред. Е.К. Хеннера. М.: Академия, 2004, 848 с. Билет № 19
1. Кодирование графической информации. Растровая и векторная графика. Средства и технологии работы с графикой. Создание и редактирование графических информационных объектов средствами графических редакторов, систем презентационной и анимационной графики. Форматы графических файлов. Способы сжатия.
Современная компьютерная графика столь многогранна и разнообразна, что ее часто даже выделяют в качестве отдельного раздела информатики. С практической точки зрения это, возможно, и правильно, но с позиций описания автоматизированных процессов обработки информации графические данные не являются чем-то уникальным или принципиально отличающимся. Уместно, например, вспомнить, что, несмотря на все особенности графических файлов, не существует отдельного программного обеспечения для их передачи по сети или специализированных методов хранения таких файлов на диске.
Кодирование графической информации подчиняется наиболее общим принципам представления информации в компьютере (см. билет № 2): она должна быть дискретной и тем или иным способом сводиться к двоичному коду.
Дискретность графической информации непосредственно вытекает из способа представления изображения на экране дисплея: там оно формируется из отдельных точек, которые окрашены в те или иные цвета.
Точки, из которых состоит изображение, в литературе принято называть пикселями1. Важно подчеркнуть, что пиксель не всегда совпадает с “физической” точкой дисплея: например, в некоторых видеорежимах один пиксель может состоять из нескольких точек экрана. Для наглядности напомним читателям о том, что один и тот же современный монитор (имеющий, разумеется, фиксированное число точек на светящейся поверхности) способен отображать картинку в нескольких стандартных форматах: 600 x 800, 1024 x 768, 1280 x 1024 и даже больше.
Что касается сведения графических данных к двоичному коду, то это несколько более сложный вопрос. Остановимся на нем поподробнее.
В случае черно-белого изображения каждая точка может иметь всего два цвета; естественно кодировать их нулем (точка не светится, т.е. черная) или единицей (белая). Для того чтобы наглядно представить себе, как хранится в памяти ЭВМ простейшее изображение, рассмотрим для примера нарисованный на черном фоне белый квадратик размером 4 x 4. В черно-белом режиме это будет выглядеть весьма компактно (сначала для наглядности приведен двоичный, а затем шестнадцатеричный вид):
1111 F
1001 9
1001 9
1111 F
Теперь увеличим число цветов — пусть их будет 16. Если принять, что все имеющиеся цвета пронумерованы от нуля, то для хранения информации о цвете одной точки потребуется 4 бита: 24 = 16 (см. билет № 3). Следовательно, в режиме 16-цветной графики тот же самый квадратик займет памяти в 4 раза больше, т.к. каждая точка уже будет кодироваться четырьмя битами:
1111 1111 1111 1111 F F F F
1111 0000 0000 1111 F 0 0 F
1111 0000 0000 1111 F 0 0 F
1111 1111 1111 1111 F F F F
Аналогичным образом при увеличении количества цветов до 256 на каждый пиксель требуется уже по байту, и наш квадратик разрастется еще вдвое:
11111111 11111111 11111111 11111111 FF FF FF FF
11111111 00000000 00000000 11111111 FF 00 00 FF
11111111 00000000 00000000 11111111 FF 00 00 FF
11111111 11111111 11111111 11111111 FF FF FF FF
Обратите внимание на то, что белый цвет, как самый яркий, обычно имеет максимально возможный номер. Поэтому для черно-белого режима он равен 1, для 16-цветного — 15, а для 256 цветов — 255. Промежуточные значения позволяют закодировать все остальные цвета.
Остается сказать, что для наиболее точной цветопередачи в современных компьютерах используется обычно 2-байтовый или 3-байтовый (это опять же количество информации на одну точку) цвет.
Итак, каждый пиксель характеризуется цветом, а цвет, как и вся остальная информация, кодируется (двоичным) числом.
Примечание. Если быть несколько более точным, код цвета обычно составлен из трех частей, каждая из которых характеризует интенсивность красной, зеленой и синей цветовых составляющих (так называемая “модель RGB”). Тем не менее части кода хранятся вместе и формально могут считаться единым числом. Интересно заметить, что при 2-байтовом кодировании цвета общее число битов на три равные части не делится; “лишний” шестнадцатый бит либо не используется, либо присоединяется к зеленой компоненте, поскольку именно к ней человеческий глаз наиболее чувствителен.
Рассмотренный нами способ кодирования графических изображений, заключающийся в сохранении информации о цвете каждой точки, принято называть растровым. Термин растр возник довольно давно (в конце XIX века) и означает разложение изображения на отдельные точки с помощью специальной сетки. Метод создания изображения из отдельных точек появился задолго до изобретения компьютеров. Вспомним, например, мозаику или вышивание; формирование растра на экране лежит также в основе работы используемого нами каждодневно телевизора.
Рассмотренный метод кодирования изображений прост и нагляден, но обладает недостатком — требует запоминания слишком большого количества информации. В качестве альтернативного метода существует векторная графика, в которой запоминается не готовая итоговая картинка, а последовательность ее рисования. Поскольку в учебниках, как правило, суть этого вида графики объясняется весьма туманно, обсудим вопрос подробнее (может быть, даже чуть подробнее, чем требует экзаменационный ответ).
Примечание. Общим принципам реализации машинной графики в среде Windows в литературе вообще уделяется мало внимания; в школьных учебниках подобная информация в принципе отсутствует. По нашему мнению, это связано не столько с сознательным исключением данного материала как второстепенного, сколько с тем, что авторы им просто не владеют. Тем не менее названные принципы графики имеют гораздо большие шансы сохраниться в ближайшие годы, нежели детально описываемые меню конкретной версии MS Office. Читателям, интересующимся фундаментальными основами машинной графики, порекомендуем почитать весьма глубокую, но понятно написанную книгу [1]2.
Итак, рассмотрим процесс создания произвольных, но не слишком сложных изображений из так называемых графических примитивов: точка, линия, прямоугольник, эллипс и т.д. Последовательность подобных графических команд и хранится в файлах векторной графики; стандартным векторным форматом в Windows является .WMF — Windows MetaFile. Как образно сказано в книге [2], метафайл “очень похож на музыкальную запись, где вместо музыки записаны команды интерфейса графических устройств (GDI). Для того чтобы отобразить метафайл, программа передает эти команды функции PlayMetaFile(), которая, подобно магнитофону, воспроизводит визуальную «мелодию»”. Очень хорошее представление о составе метафайла дает понимание графических операторов языка Basic, например, PSET, LINE, CIRCLE и других.
Важно знать, что метафайл не связан с каким-либо конкретным графическим устройством, имеющим фиксированное число точек. Поэтому в момент создания рисунка компьютер способен учесть все особенности используемого устройства и выполнить изображение максимально хорошо. Именно по этой причине метафайлы прекрасно масштабируются; не случайно библиотеки рисунков (clipart), как правило, создаются именно в векторном формате. Подавляющее большинство шрифтов, используемых в системе Windows, базируется на векторном представлении символов. Не менее успешно векторная графика применяется и в САПР.
Каждая графическая команда состоит из кода (например, команда рисования дуги Arc имеет код 817h [2]) и минимального количества параметров3 (например, координат или углов). Для того чтобы читатели получили некоторое представление о возможностях векторной графики, выпишем названия наиболее распространенных графических команд-примитивов [2]: Arc (дуга), Chord (хорда), DrawText (нарисовать текст), Ellipse (эллипс, в частном случае — окружность), LineTo (провести линию), MoveTo (перенести перо, не оставляя следа), Polygon (полигон), PolyLine (ломаная линия), Rectangle (прямоугольник), RoundRectangle (прямоугольник со скругленными краями) и многие другие. Очевидно, что графические команды не только проще масштабируются (путем пересчета их числовых параметров), но и необычайно компактны; в частности, линия абсолютно любой длины будет нарисована на основе всего трех чисел — кода соответствующей команды и координат конца линии (координаты начальной точки будут взяты из памяти).
Каждый из описанных видов графики имеет свои достоинства и недостатки, вытекающие непосредственно из рассмотренных выше принципов построения изображений. Особенности обоих видов графики подытожены в следующей таблице, которая построена с использованием данных из книг [3] и [4].
Приведенная таблица позволяет выбрать наиболее подходящий для конкретной задачи пользователя способ рисования.
Никто не станет возражать, что компьютер предоставляет пользователям большие возможности в обработке графических изображений. Используя компьютерные технологии, мы можем с помощью сканера ввести в компьютер любой рисунок с обычного листа бумаги или из книги. Кроме того, развитое программное обеспечение предоставляет нам возможность создавать изображения непосредственно на компьютере, используя бумагу исключительно на завершающем этапе для представления результатов нашей работы. Независимо от способа создания рисунка, компьютер позволяет его редактировать. Возможности здесь необычайно разнообразны: от мелкой корректировки погрешностей сканирования и нанесения подписей до изменения композиции рисунка и совмещения нескольких изображений. Важно подчеркнуть, что компьютер предоставляет пользователю целый ряд технологий, аналоги которым трудно найти в традиционном рисовании. Упомянем в качестве примеров настройку цветового баланса рисунка или его частей, сглаживание или обострение контуров, применение всевозможных спецэффектов и методов типа компенсации “эффекта красных глаз”. Наверное, не каждый пользователь осознает, что в основе всех этих технологий лежит математическая обработка числовых данных порой по весьма сложным алгоритмам. Тем не менее это так, и именно благодаря вычислительной мощности компьютера возможности современных электронных “художников” существенно расширяются.
Помимо плоских статических изображений, компьютер также способен работать с объемной и динамической графикой. Кроме того, все большую популярность среди пользователей завоевывают “комбинированные” мультимедийные ресурсы, например, презентации или фотоальбомы с подписями и декоративным оформлением, позволяющие легко осуществлять поиск и навигацию по большому числу фотографий.
Очевидно, что для реализации на компьютере любых графических технологий необходимо соответствующее программное обеспечение. Рассмотрим некоторые наиболее распространенные его виды.
Примечание для учеников. Эту часть ответа необходимо обязательно дополнить собственным опытом работы с тем программным обеспечением, которое изучалось на уроках по компьютерной графике. Учитель, оценивая ваши знания, хочет увидеть, что вы не просто способны воспроизвести общетеоретические формулировки, но и видите, где именно и как они применяются на практике. К сожалению, автор этих строк, по сравнению с конкретным учеником, находится в существенно более трудном положении: изучаемое в школах графическое ПО необычайно разнообразно, и поэтому одинаково сложно как рассказать о его общих чертах, так и дать исчерпывающее описание всех применяемых программных продуктов.
Самым известным и чаще всего применяемым ПО является графический редактор. В соответствии с основными способами создания графических изображений имеется два типа редакторов. Для векторной графики наиболее известны Corel Draw и Adobe Illustrator, а ассортимент более простых в обращении редакторов растровых изображений значительно шире — от простейшего входящего в состав Windows редактора Paint до профессионального Adobe Photoshop.
Графические редакторы предназначены для создания и редактирования графических изображений, а также их сохранения в виде файлов различных форматов и выводе на бумагу. В целом управление графическим редактором во многом осуществляется теми же способами, что и с остальным программным обеспечением (данное свойство обусловлено стандартизацией интерфейса приложений Windows). Если взглянуть с указанных позиций на любой графический редактор (на рис. 1 в качестве примера изображен Paint), то он работает в стандартном окне и, как остальные программы, имеет меню, панель инструментов и прочие стандартные органы управления.
Рис. 1
Главными особенностями графического редактора по сравнению с остальным ПО, видимо, являются большее количество приемов использования мыши и специфические графические инструменты. По уже упоминавшимся выше причинам мы не можем в рамках данной публикации рассмотреть конкретные инструменты редактора. Ограничимся лишь указанием на то, что, помимо “электронных аналогов” реальных орудий труда художника (карандаш, кисть, резинка, палитра красок и т.п.), программа предоставляет нам совершенно специфические виртуальные инструменты, такие, как, например, цветной ластик. Особый класс инструментов графических редакторов образуют средства рисования графических примитивов, которые фактически являются одной из основ компьютерной графики.
Помимо графических редакторов, в школах активно изучают системы презентационной графики и реже — анимационные системы. Кратко остановимся здесь на системе создания и редактирования презентаций PowerPoint.
Данная программа позволяет разрабатывать презентации по некоторой выбранной теме, что может быть использовано как при изложении учебного материала на уроке, так и при выступлении “на более представительном уровне”, например, на конференции.
Каждая презентация состоит из отдельных кадров — слайдов. Программа PowerPoint предоставляет пользователю средства по подготовке слайдов, а также машину для их демонстрации, способную показывать слайды в ручном и автоматическом режимах. Имеется большой ассортимент способов смены слайдов на экране, прилагается богатый набор готовых шаблонов для оформления презентации.
Характерной особенностью презентационной системы по сравнению с графическим редактором является ее мультимедийный характер. Если графический редактор работает только с рисунками, то презентационная система имеет встроенные средства для работы с текстами, графикой, аудио- и видеофрагментами. Столь широкие возможности делают тщательно подготовленную презентацию весьма выразительным средством. В то же время, презентационная система не претендует на редактирование графики, аудио- и видеоматериалов: она лишь способна включать в себя то, что разработано средствами другого, более специализированного, программного обеспечения.
Подчеркнем, что при подготовке слайда каждый элемент кадра (тексты, картинки, стрелки и т.д.) является самостоятельным объектом. Мы можем независимым образом менять размер каждого объекта и перемещать его, причем данный объект может частично заслонять другие объекты или, наоборот, закрываться ими (PowerPoint, как и многие другие программы, поддерживает идеологию графических плоскостей: каждый предмет находится в собственной плоскости, причем порядок расположения плоскостей относительно зрителя можно менять). Таким образом, по принципам работы система PowerPoint определенно ближе к векторному редактированию, чем к растровому.
Разработка хорошей презентации — это не чисто технологический процесс. Имеется множество примеров, когда при подготовке презентации человек, увлеченный подбором эффектного механизма смены кадров, забывает о содержании материала и его логике. В результате вместо восхищения продукт такого, с позволения сказать, творчества вызывает в лучшем случае равнодушие, а то и вовсе раздражение.
Нам остается рассмотреть последнюю часть вопроса, связанную с форматами графических файлов.
Как и любые другие результаты нашей работы на компьютере, графические изображения также могут сохраняться на внешних носителях в виде файлов. Количество графических форматов весьма разнообразно, поэтому выбор наиболее подходящего из них есть важная практическая задача.
Как уже отмечалось раньше, типичным векторным форматом графических файлов в среде Windows является WMF. Каждый мощный векторный редактор использует свой собственный формат хранения рисунков (например, CDR у Corel Draw); к счастью, такие редакторы поддерживают большое количество форматов, что позволяет легко преобразовывать их один в другой.
Растровые форматы обладают еще большим разнообразием. Стандартным графическим форматом в операционной системе Windows является BMP. Это очень простой формат, который может использовать любое программное обеспечение. Тем не менее он имеет существенный недостаток — файлы .BMP очень велики. Для смягчения этого недостатка многие графические форматы используют внутреннее сжатие (подробности см. ниже). В сети Интернет очень распространен один из таких форматов — GIF. Если сохранить один и тот же рисунок в форматах .BMP и .GIF, то последний окажется существенно меньше при абсолютно таком же качестве изображения. К сожалению, рисунок в формате .GIF не может иметь более 256 цветов, что несколько ограничивает его применение5. Наконец, для хранения многоцветных художественных иллюстраций и фотографий существует формат со специальным сжатием — JPEG (обычно расширение файлов уменьшают до стандартной длины и пишут JPG). Традиционные методы сжатия на многоцветные изображения практически не действуют, т.к. в них почти нет соседних точек с одинаковым цветом: например, все точки листа зеленые, но их оттенки различны. Поэтому большая группа экспертов по цветопередаче JPEG (Joint Photographic Experts Group), обобщив полувековой опыт исследований в области компьютеров, телевидения, полиграфии и других родственных областях, а также по особенностям человеческого зрения, представила детальные рекомендации по сжатию графической информации. Результат получился впечатляющим: объем графических файлов сократился более чем на порядок. Не следует только забывать, что преобразование в формат .JPEG является необратимым — восстанавливаемый после сжатия рисунок не абсолютно идентичен исходному, хотя на глаз это практически незаметно. Файлы .JPG являются вторым базовым стандартом изображений в сети Интернет.
Вопросы, связанные с графическими форматами файлов, представляют большой самостоятельный интерес. Наиболее любознательные читатели могут обратиться за интересными подробностями к указанной в списке литературе [3–8].
Обсуждая наиболее распространенные форматы графических файлов, мы не могли не упоминать об использующихся в них методах сжатия информации. (Возможно, с точки зрения повышения логичности ответа авторам билета стоило поменять местами в тексте вопроса сжатие и форматы файлов.) Итак, рассмотрим методы сжатия графической информации.
Сжатие — это один из процессов обработки информации. Прежде всего различают обратимое и необратимое сжатие (упаковка с потерей информации или без нее). В первом случае то, что получается в результате восстановления сжатой информации, полностью совпадает с оригиналом, а во втором распакованные данные хоть и не сильно, но отличаются от исходных. В частности, обратимого сжатия обязательно требует текстовая и числовая информация, зато графика и звук допускают некоторые незаметные для органов чувств искажения. Еще большие искажения можно позволить при упаковке отдельных кадров фильма, поскольку они сменяются настолько быстро, что человек не в состоянии рассмотреть отдельные детали изображения.
Наиболее распространенной идеей, лежащей в основе обратимого сжатия графических изображений, является учет числа повторений точек с одинаковым цветом. Основанный на ней метод называется методом группового кодирования; в англоязычной литературе он носит название RLE (Run Length Encoding — кодирование длин серий).
Метод наиболее хорошо подходит к упаковке простых контурных графических изображений с небольшим числом цветов. Рассмотрим ее на примере простейшего рисунка, на котором на синем небе находится желтое солнышко. Его фрагмент в увеличенном виде приведен на рис. 2.
Рис. 2
На рис. 2 одно из горизонтальных сечений рисунка отмечено черной прямой. Как отчетливо видно, в нем после достаточно большого количества синих точек имеется одна желтая, а затем снова следует группа синих. Очевидно, что вместо хранения информации о каждой точке можно просто закодировать, что 22 точки имеют синий цвет, 1 — желтый6 и т.п. В результате в нашем случае вместо 38 чисел, характеризующих цвет каждого пикселя, оказывается достаточно всего трех пар, указывающих количество точек и их цвет.
Еще более мощным групповой метод становится для черно-белых (двухуровневых) изображений. В этом случае даже нет необходимости специально указывать цвета, поскольку они обязательно чередуются, — можно просто сохранять число точек в черных и белых группах. Подобные стандарты упаковки данных активно используются в факс-машинах [5].
Метод RLE, будучи необязательной возможностью файлов формата BMP, используется на практике не очень часто. Помимо него, в некоторых других форматах графических файлов также может применяться сжатие: метод LZ (назван так в честь его авторов: A.Lempel и J.Ziv) и его модификации в форматах GIF и PNG, а также метод Хаффмана (PNG и JPG — о последнем речь пойдет ниже).
В последнее время все большее распространение получают системы сжатия, специально вносящие некоторые незаметные для человека искажения данных с целью повышения возможности их сжатия. Потребность в подобных технологиях обусловлена тем, что традиционные способы не могут обеспечить существенной степени сжатия. В частности, обратимым методам удается достаточно хорошо упаковать контурные рисунки с небольшим количеством цветов, но попытки проделать то же самое с многоцветными фотографическими изображениями приводят к результатам, которые намного хуже; но именно такие картинки в первую очередь и нуждаются в сжатии из-за большого объема!
Наиболее известные стандарты необратимого сжатия базируются на рекомендациях группы профессиональных экспертов по качеству графических изображений и цветопередаче JPEG. Данные рекомендации существенным образом учитывают особенности человеческого зрения.
Примечание. Строго говоря, несмотря на укоренившуюся терминологию, JPEG — это не сам формат файлов, а техника сжатия изображений.
Методы, применяемые в JPEG, опираются на достаточно сложную математику (см., например, [4]) и выходят за рамки нашего обсуждения. Их суть заключается в том, что в каждом небольшом квадратном участке изображения (обычно 8 x 8 пикселей) производится разложение на гармонические составляющие7. Затем гармоники с наиболее высокими частотами, ответственные за резкие переходы в изображении, округляются. Фотографические и полутоновые изображения, в которых отсутствуют резкие границы и происходит плавное перетекание цветов, от такой обработки практически не пострадают, зато цвета точек, получившиеся в результате усреднения, поддаются сжатию во много раз лучше, чем в исходном изображении. В то же время, фрагменты, содержащие резкие цветовые переходы (рамки, тексты и т.п.), в процессе описанной процедуры искажаются: скорее всего вы замечали, что вокруг надписей на фотографиях формата JPG часто имеется специфический “узор” из разноцветных точек.
Существенно, что при сохранении данных в JPEG-файл пользователь может по своему усмотрению задавать степень уплотнения, подбирая баланс между потерей качества и уменьшением объема. Полезно отметить, что в случае чрезмерной степени сжатия границы между отдельными квадратиками, по которым производилось усреднение, становятся различимыми.
Закончить хочется цитатой из книги [4], которая может служить хорошим практическим советом: “Как бы ни был хорош формат JPEG, для некоторых приложений он непригоден. Все методы сжатия, обычно используемые в JPEG, относятся к технологиям сжатия с потерями, что делает этот формат непригодным в качестве формата промежуточного хранения, когда требуется многократно повторно редактировать файл изображения. Кроме того, при сжатии текста и рисунков формат JPEG не так хорош, как при сжатии фотографий”.
Примечание для учителей. С размером файлов BMP связаны задачи, включенные в качестве третьего вопроса: см. билеты № 4 и № 20 базового и профильного уровней. Как следует из примеров задач, подразумевается, что при их решении ученики должны полагать этот размер равным количеству информации обо всех пикселях изображения. На самом деле это не совсем так, поскольку любой файл формата .BMP имеет еще некоторую служебную часть. Как видно из приведенной ниже таблицы, численное различие совсем невелико и, казалось бы, на него можно не обращать внимания (все данные таблицы относятся к рисунку из 640 ґ 480 = 307 200 пикселей). Тем не менее постоянное практическое использование идеи о том, что графический файл состоит исключительно из данных о пикселях, мне кажется методически некорректной.
В частности, интуитивно понятно, что в файле где-то должны быть указаны размеры рисунка, иначе пиксели разбиваются на строки неоднозначно. Менее очевидно, но известно из литературы [2], что в начале файла .BMP хранится опознавательная сигнатура “BM”, а также размер файла в байтах, число битов на пиксель, наличие или отсутствие сжатия и прочие весьма полезные вещи. Размер минимальной постоянной части заголовка файла равен 54 байтам (как в последней строке таблицы), но к этому объему может добавляться некоторая переменная часть, зависящая от цветовых свойств рисунка.
В качестве компромиссных вариантов могу предложить для большей корректности добавить в формулировки всех упомянутых выше задач фразу “размером служебной области файла пренебречь” либо по крайней мере слово определить заменить на оценить. Кстати говоря, уточненная формулировка дает хороший повод при необходимости задать ученику дополнительные вопросы.
Литература
1. Петцольд Ч. Программирование для Windows 95; в двух томах. Т. I. СПб.: BHV-Петербург, 1997, 752 с.
2. Сван Т. Форматы файлов Windows. М.: БИНОМ, 1994, 288 с.
3. Залогова Л.А. Практикум по компьютерной графике. М.: Лаборатория Базовых Знаний, 2001, 320 с.
4. Миано Дж. Форматы и алгоритмы сжатия изображений в действии. М.: Триумф, 2003, 336 с.
5. Кенцл Т. Форматы файлов Internet. СПб.: Питер, 1997, 320 с.
6. Залогова Л.А. Форматы графических изображений. Информатика и образование, 1999, № 6, с. 76–81.
7. Залогова Л.А. Цвет в компьютерной графике. Информатика и образование, 1999, № 7, с. 85–90.
8. Залогова Л.А. Форматы графических файлов. Информатика и образование, 1999, № 8, с. 85–94.
