Принципы уменьшения объема графических файлов
Сколько бит требуется, чтобы закодировать информацию о 130 оттенках?
Нетрудно подсчитать, что 8 (то есть 1 байт), поскольку при помощи 7 бит можно сохранить номер оттенка о 0 до 127, а 8 бит хранят от 0 до 255. Легко видеть, что такой способ кодирования не является оптимальным: 130 заметно меньше 255.
Подумайте, как уплотнить информацию о рисунке при его записи в файл, если известно, что: а) в рисунке одновременно содержится только 16 цветовых оттенков из 130 возможных; б) в рисунке присутствуют все 130 оттенков одновременно, но количество точек, закрашенных разными оттенками, сильно различаются.
Решение а) Очевидно, что для хранения информации о 16 оттенках достаточно log2(16)=4 бита. Однако так как эти 16 оттенков выбраны из 130, то они могут иметь номера, двоичные коды которых не умещаются в 4 битах. Поэтому воспользуемся методом палитр. Назначим 16 используемым в нашем рисунке оттенкам свои “локальные” номера от 0 до 15 и закодируем весь рисунок из расчета 4 бита на пиксель. Допишем к этой информации (в конец содержащего ее файла) таблицу соответствия, состоящую из 16 пар байтов с номерами оттенков: 1 байт - наш “локальный” номер в данном рисунке, второй - реальный номер данного оттенка. Если рисунок достаточно велик, выигрыш в объеме полученного файла будет значительным
Решение б) Попытаемся реализовать простейший алгоритм архивации графической информации. Назначим трем оттенкам, которыми закрашено минимальное количество точек, коды 128 – 130 (восьмибитные), а остальным оттенкам - коды 1 -127 (семибитные). Будем записывать в файл (который в этом случае представляет собой не последовательность байтов, а сплошной битовый поток) семибитные коды для оттенков с номерами от 1 до 127. Для оставшихся же трех оттенков в битовом потоке будем записывать число-признак - семибитный 0 - и сразу за ним двухбитный “локальный” номер, а в конце файла добавим таблицу соответствия “локальных” и реальных номеров. Так как оттенки с кодами 128 - 130 встречаются редко, то семибитных нулей будет немного.
Есть и другие варианты решения, без привязки к цветовому составу изображения - архивацию: на основе выделения последовательности точек, закрашенных одинаковыми оттенками и замены каждой из этих последовательностей на пару чисел (цвет, количество) (этот принцип лежит в основе графического формата РСХ); путем сравнения пиксельных строк (запись номеров оттенков точек первой строки целиком, а для последующих строк запись номеров оттенков только тех точек, оттенки которых отличаются от оттенков точек, стоящих в той же позиции в предыдущей строке, - это основа формата GIF); с помощью фрактального алгоритма упаковки изображений (формат YPEG).
Для того чтобы успешно справиться с обработкой графической информации на компьютере создано множество специальных программ. Они делятся на несколько групп. Графические редакторы незаменимы, когда требуется нарисовать или подправить картинку. Программы корректировки и преобразования фотографий. С их помощью можно добавить фотографии яркость или контрастность, отретушировать ее, создать те или иные эффекты (например, добиться иллюзии, что изображение находится на шаре или отчеканено на металле и т.п.) Программы создания графиков и диаграмм по имеющимся числовым данным. Программы, с помощью которых текст и иллюстрации объединяются в книгу, журнал, брошюру или газету. Их еще называют программами компьютерной вёрстки. Программы создания слайд-фильмов и мультфильмов. Программы презентационной графики. По названию ясно, где эти программы используются. Графическое изображение и звуковое сопровождение объединяются с помощью этих программ и просто незаменимы, если надо быстро проиллюстрировать какое-нибудь выступление, будь то лекция, деловое совещание или реклама продукции.
Графический редактор - это прикладная программа, которая позволяет перейти от работы с изображением на бумаге с помощью карандаша и кисти к более удобным, быстрым и экономичным действиям, а также добавляет другие способы рисования, живописи и графики. Это позволяет использовать его в различных областях нашей жизни, делая работу менее трудоемкой.