Шрифт:
Интервал:
Закладка:
В основе JPEG лежит так называемое сжатие с потерями. Это значит, что сжатие изображения происходит за счет отбрасывания мелких, незначительных деталей. Во многих случаях эти деталистоль малы и незаметны, что человек не в состоянии заметить разницу между сжатым изображением и оригиналом. Однако разница в размерах соответствующих файлов может быть значительной.
Основы алгоритма JPEG — преобразование информации о цвете, хранимой отдельно для всех цветовых составляющих одного пиксела, в область частот с последующей фильтрацией. Проще говоря, для хранения данных о цвете используются не цветовые составляющие каждого пиксела, а сведения о том, как изменяется вклад той или иной составляющей в результирующий цвет. Такие методы обработки основываются на принципах частотного анализа, широко применяемого в радиоэлектронике. В данном случае изменение яркости или цветовых составляющих от пиксела к пикселу описывается в виде набора колебаний (по аналогии с радиоэлектроникой эти колебания молено назвать составляющими сигналами) различных частоты и амплитуды. Такую операцию также называют определением спектра сигнала.
ПРИМЕЧАНИЕ. Преобразование сигналов в набор частотных составляющих осуществляется при помощи так называемого прямого преобразования Фурье. Обратное преобразованиеФурье позволяет синтезировать сигнал по его спектру.
Сохраняя или обрабатывая сигнал (в случае работы с фотографиями — данные, описывающие изображение), вы можете оставить только наиболее значимые составляющие, а остальными пренебречь. Разумеется, часть информации при этом будет потеряна, но данные будут воспроизведены с приемлемой точностью. Обратите внимание на то, что, уменьшая число рассматриваемых составляющих сигнала, мы тем самым уменьшаем объем информации, описывающей этот сигнал, то есть сжимаем данные.
В этом утверждении заложена сущность всех алгоритмов сжатия изображения с потерями. Частью информации можно пренебречь ради того, чтобы воспроизвести изображение с приемлемой точностью и при этом достичь уменьшения объема описывающих его данных. Конечно, при этом теряются некоторые детали изображения, качество снижается, но, разумно выбирая алгоритм и степень сжатия, можно добиться того, что файл с рисунком значительно уменьшится в объеме, а сам рисунок останется пригодным к использованию.
ПРИМЕЧАНИЕ. Даже если не отбрасывать часть информации, потери все равно возникнут. Дело в том, что компьютер производит все операции с определенной точностью. Из-за округления изображение исказится даже при отсутствии сжатия.
Для лучшего понимания основ работы алгоритма JPEG следует рассмотреть особенности восприятия человеком окружающей его реальности. Человеческий глаз более чувствителен к яркости, чем к цветовым составляющим изображения. Если вы переведете изображение в монохромный режим (яркий пример — черно-белый телевизор), то изображенные предметы останутся узнаваемыми — вы сможете сказать, что изображено, и даже определить некоторые свойства объекта, например материал, из которого он состоит. Изображение, содержащее цвета, но лишенное яркостной составляющей, практически невозможно распознать. Вы можете легко убедиться в этом при помощи Photoshop. Просто закрасьте какой-либо рисунок любым цветом (но не черным и не белым) при помощи инструмента Paintbrush (Кисть) в режиме Luminosity (Яркость). При этом все пикселы приобретут яркость цвета кисти.
Итак, у нас в руках два основных компонента алгоритма сжатия изображений JPEG. С одной стороны, разложив некоторый сигнал (в данном случае —это информация об изображении)на частотные составляющие и отбросив самые незначительные из них, мы можем достичь сжатия данных. С другой стороны, человеческий глаз устроен так, что он воспринимает в первую очередь яркость изображения и уже потом —его цветовые характеристики. Это определяет два способа уменьшения объема файла изображения, которые и используются в алгоритме JPEG:
• объем хранимых и передаваемых данных может быть уменьшен путем разложения информации о цвете на частотные составляющие с последующим отбрасыванием самых незначительных из них — лишних;
• так как глаз человека более чувствителен к яркости изображения (в данном случае оно состоит из пикселов), чем к его цвету, следует стремиться передать без искажений информацию о яркости пикселов, а информацией об их цвете можно до определенной степени пренебречь.
Применение этих методов позволяет достичь высокой степени сжатия и значительно уменьшить объем файлов, содержащих изображение. Грамотное использование алгоритма позволяет получить настолько высокое качество воспроизведения картинки, что различить сжатое изображение и оригинал практически невозможно.
При сохранении изображения в формате JPEG над ним производятся следующие операции:
1. Изображение преобразуется из исходной цветовой модели (например, RGB, где каждая точка описывается тремя цветовыми составляющими) в модель, содержащую яркостный компонент и два компонента, определяющих цвет точки. Это необходимо для раздельной обработки яркостной и цветовой составляющих изображения. Если изображение уже находится в подходящем цветовом режиме, преобразование не требуется. В дальнейшем все компоненты обрабатываются независимо друг от друга.
2. Цветовые компоненты усредняются между соседними пикселами, что позволяет уменьшить объем данных, требуемых для их передачи. Обычно усреднение производится так, что поле цветовых компонентов уменьшается в два раза по вертикали и по горизонтали. Например, для изображения 400 х 400 пикселов будут получены поля цветовых компонентов размером 200 х 200. Возможны и другие сочетания коэффициентов пропорциональности сторон, например 2:1, но они дают меньшую степень сжатия. Яркостный компонент на этом этапе не изменяется. Благодаря этому яркость изображения подвергается меньшим искажениям.
3. Применение дискретного преобразования Фурье. Изображение (точнее, каждый из его компонентов) разбивается на блоки 8x8 пикселов, к которым применяется дискретное преобразование Фурье. При этом информация о значении того или иного компонента представляется в виде соответствующих колебаний. По аналогии с радиотехническими сигналами можно выделить в преобразованных компонентах некоторое среднее значение (некоторый аналог постоянного тока), а также переменную составляющую (аналог переменного тока). Высокочастотные (быстрые) изменения параметров менее заметны, чем изменения низкочастотные (плавные). Поэтому верхние частоты могут быть отброшены.
4. Квантование значений параметров. Для отбрасывания ненужных компонентов значения, полученные в ходе преобразования Фурье, делятся на весовые коэффициенты и округляются. Для каждой точки внутри блока преобразования (8x8 пикселов) используется свой коэффициент, который выбирается из специальной таблицы. Для яркости и цветовых составляющих используются отдельные таблицы. Составлять такие таблицы довольно сложно, поэтому большинство кодировщиков JPEG используют стандартную таблицу ISO.
5. Именно на этом этапе производится регулировка качества изображения. Изменяя весовые коэффициенты, можно определить, какая часть информации будет отброшена. При этом качество изображения и размер файла изменяются обратно пропорционально друг другу.
6. Сжатие полученных значений без потерь. Для устранения повторов в полученных значениях параметров изображения данные дополнительно сжимаются по методу Хаффмана. Этот метод основывается на замене всех кодов, встречающихся в исходных данных, на новые, причем наиболее часто встречающиеся комбинации получают самые короткие обозначения. Этот метод позволяет достичь высокой степени сжатия без потери информации.
Для раскодирования данных необходимо выполнить эти операции в обратном порядке:
1. Данные разархивируются в соответствии с методом Хаффмана. В результате получаются отсчеты параметров изображения.
2. Из файла считывается таблица весовых коэффициентов. С ее помощью восстанавливаются результаты преобразования Фурье, выполненного при сжатии. В зависимости от степени сжатия, заданной кодировщиком, эти данные в той или иной степени соответствуют исходным.
3. Над отсчетами частотных составляющих производится обратное преобразование Фурье. Это позволяет восстановить значения компонентов изображения.
4. Полученные значения цветовых компонентов распределяются между соседними пикселами. Это необходимо из-за того, что при сжатии поле цветовых компонентов было уменьшено. Яркостный компонент сразу готов для последующей обработки.
5. Для удобства вывода на экран или выполнения обработки изображение преобразуется в одну из цветовых моделей (к примеру, в RGB для вывода на экран или в CMYK для печати).
- Photoshop. Мультимедийный курс - Олег Мединов - Программы
- Фотоприколы с помощью Photoshop - Юрий Гурский - Программы
- Delphi. Трюки и эффекты - Валерий Борисок - Программы
- Excel. Мультимедийный курс - Олег Мединов - Программы
- Adobe Fotoshop CS в примерах (I-II) - Сергей Топорков - Программы
- Microsoft Access 2007 - Александр Днепров - Программы
- 1С: Управление торговлей 8.2. Руководство пользователя - Алексей Гладкий - Программы
- Секреты сканирования на ПК - Б. Леонтьев - Программы
- Excel. Легкий старт - Дмитрий Донцов - Программы
- Приемы создания интерьеров различных стилей - С. Тимофеев - Программы