Наиболее распространенным в настоящее время форматом, предназначенным для хранения полноцветных фотоизображений с применением сжатия данных, является формат JPEG. Первые работы над его созданием были начаты в 1982 году, когда в рамках Международной организации по стандартизации (International Standardization Organization —ISO) была создана Группа экспертов по машинной обработке изображений (Photographic Experts Group —PEG). Эта организация занималась вопросами передачи видеоданных, изображений и текста по каналам цифровой связи. Целью исследований была разработка международных стандартов в области передачи данных этих типов в компьютерных сетях. В 1986 году Международный консультационный комитет по телеграфии и телефонии (Consultative Committee for International Telephone and Telegraphy — CCITT) начал разработки, направленные на создание алгоритмов передачи факсимильной информации (цветных и монохромных изображений). Алгоритмы, созданные специалистами этих организаций, оказались похожими, и в 1987 году они объединили свои усилия по разработке единого стандарта сжатия изображений. Результатом этого сотрудничества стал формат JPEG (Joint Photography Experts Group), позволяющий реализовать сжатие полноцветных или монохромных изображений до размеров, удобных для передачи по каналам связи. В отличие от формата GIF, JPEG позволяет хранить изображения, содержащие до 16 миллионов оттенков.
Так как фотографии и видеоизображения часто содержат протяженные области с плавными переходами цвета (градиентами), для их сжатия не подходят алгоритм LZW или подобные ему. Они не позволяют значительно уменьшить размер файла. Для качественной компрессии понадобились новые алгоритмы, основанные на других принципах.
В основе JPEG лежит так называемое сжатие с потерями. Это значит, что сжатие изображения происходит за счет отбрасывания мелких, незначительных деталей. Во многих случаях эти деталистоль малы и незаметны, что человек не в состоянии заметить разницу между сжатым изображением и оригиналом. Однако разница в размерах соответствующих файлов может быть значительной.
Основы алгоритма JPEG — преобразование информации о цвете, хранимой отдельно для всех цветовых составляющих одного пиксела, в область частот с последующей фильтрацией. Проще говоря, для хранения данных о цвете используются не цветовые составляющие каждого пиксела, а сведения о том, как изменяется вклад той или иной составляющей в результирующий цвет. Такие методы обработки основываются на принципах частотного анализа, широко применяемого в радиоэлектронике. В данном случае изменение яркости или цветовых составляющих от пиксела к пикселу описывается в виде набора колебаний (по аналогии с радиоэлектроникой эти колебания молено назвать составляющими сигналами) различных частоты и амплитуды. Такую операцию также называют определением спектра сигнала.
ПРИМЕЧАНИЕ.Преобразование сигналов в набор частотных составляющих осуществляется при помощи так называемого прямого преобразования Фурье. Обратное преобразованиеФурье позволяет синтезировать сигнал по его спектру.
Сохраняя или обрабатывая сигнал (в случае работы с фотографиями — данные, описывающие изображение), вы можете оставить только наиболее значимые составляющие, а остальными пренебречь. Разумеется, часть информации при этом будет потеряна, но данные будут воспроизведены с приемлемой точностью. Обратите внимание на то, что, уменьшая число рассматриваемых составляющих сигнала, мы тем самым уменьшаем объем информации, описывающей этот сигнал, то есть сжимаем данные.
В этом утверждении заложена сущность всех алгоритмов сжатия изображения с потерями. Частью информации можно пренебречь ради того, чтобы воспроизвести изображение с приемлемой точностью и при этом достичь уменьшения объема описывающих его данных. Конечно, при этом теряются некоторые детали изображения, качество снижается, но, разумно выбирая алгоритм и степень сжатия, можно добиться того, что файл с рисунком значительно уменьшится в объеме, а сам рисунок останется пригодным к использованию.
ПРИМЕЧАНИЕ.Даже если не отбрасывать часть информации, потери все равно возникнут. Дело в том, что компьютер производит все операции с определенной точностью. Из-за округления изображение исказится даже при отсутствии сжатия.
Для лучшего понимания основ работы алгоритма JPEG следует рассмотреть особенности восприятия человеком окружающей его реальности. Человеческий глаз более чувствителен к яркости, чем к цветовым составляющим изображения. Если вы переведете изображение в монохромный режим (яркий пример — черно-белый телевизор), то изображенные предметы останутся узнаваемыми — вы сможете сказать, что изображено, и даже определить некоторые свойства объекта, например материал, из которого он состоит. Изображение, содержащее цвета, но лишенное яркостной составляющей, практически невозможно распознать. Вы можете легко убедиться в этом при помощи Photoshop. Просто закрасьте какой-либо рисунок любым цветом (но не черным и не белым) при помощи инструмента Paintbrush (Кисть) в режиме Luminosity (Яркость). При этом все пикселы приобретут яркость цвета кисти.
Читать дальше