Качество JPEG

31.07.2018

JPEG — это не просто формат файлов для хранения изображений, а сложный метод кодирования и декодирования изображений, который имеет множество настроек.

Про JPEG
Про JPEG

Современные продвинутые цифровые камеры имеют несколько основных настроек JPEG:

  • Качество снимка JPEG
  • Размер снимка JPEG
  • Настройка параметров снимка

Под качеством снимка понимают количество полезных данных, которые может сохранить JPEG. Формат JPEG был разработан для компактного хранения изображений, в его основе лежат методы и алгоритмы сжатия и оптимизации изображений. Алгоритмы кодирования JPEG чертовски сложны и изощренны, но в основе лежит уровень сжатия, от которого зависит конечное качество снимка. В отличие от BMP, TIFF и подобных форматов, JPEG не хранит данные про каждый отдельный пиксель изображения, а только векторные смещения цветов. По большому счету, это гениальная математическая абстракция изображения, в которой единственным реально закодированным пикселем является верхний левый пиксель. Я не буду вникать в суть сжатия, остановлюсь лишь на том, что именно уровень сжатия в формате JPEG влияет на качество снимка JPEG.

В камерах в основном можно задать 3 уровня качества снимка JPEG

  • Высокое качество
  • Стандартное качество
  • Базовое качество

В общем случае, режим Высокое качество подразумевает сохранение снимка в формате JPEG со 100% сохранением деталей. Но из-за специфики работы алгоритма, 100% являются условными. Режим Стандартное качество имеет уровень сжатия в два раза больший, чем режим Высокое качество. А режим Базовое качество сжимает фотографии в 4 раза сильней, за режим Высокое качество. Таким образом мы получаем файлы изображений меньшим объемом и с меньшим количеством полезных данных.

Размер файла JPEG зависит именно от того, что имеется на изображении. Если говорить грубо, то снимок с равномерно синим небом алгоритм закодирует с минимальными затратами и в итоге получим вместо рассчитанного максимального 4МБ примерно 1МБ. А вот если снимать ночью на высоких значениях ISO, то можно получить файл размером около 3МБ. Это связано с тем, что на высоких значениях ISO будет много цифрового шума, то есть на фотографии будет много разнородных пикселей, для которых сложно подобрать интерполяцию (усреднение) и алгоритму JPEG нужно использовать больше памяти для сохранения всех деталей на снимке.

Вот пример падения качества фотографии при использовании программной обработки одного и того же снимка с разным уровнем сжатия.

В общем случае, то же самое происходит и при разных настройках качества. Очень часто разницу между различными настройками накамерного JPEG почувствовать очень сложно, ведь камера и маркетологи всегда стараются тешить нас хорошими фотографиями. А вот разница в объеме файлов часто очень сильно заметна.

Также, большинство современных цифровых камер имеют настройку размера изображения. Эта настройка показывает, сколько мегапикселей будет иметь снимок. Для примера, Nikon D40:

  • Большой, L (large) — 6.0MP, 3008X2000 точек
  • Средний, M (medium) — 3.3MP, 2256X1496 точек
  • Маленький, S (small) — 1.5MP, 1504X1000 точек

Такая настройка позволяет сохранять файлы не только оригинального размера, который является наибольшим, но и файлы с меньшим количеством точек (пикселей). Данная настройка важна для экономии места. Очень часто снимки могут нести избыточную информацию. Избыточная информация — это пиксели, которые не несут полезной информации. Например такие пиксели являются цифровым шумом, появляются из-за некачественной оптики. При использовании меньшего формата можно ничего не потерять.

Все то же самое касается не только Nikon D40, которую я использовал в качестве примера, но и остальных цифровых камер.

Важное замечание: когда мы используем большой (максимальный) размер изображения JPEG, то кодируется вся информация со всей матрицы фотоаппарата. Когда мы используем меньший размер снимка, то сама камера все равно делает снимок с помощью всей матрицы, то есть, с помощью всех доступных пикселей. Только после этого снимок уменьшается программно до указанного значения. Это связано со стандартным циклом работы АЦП камеры. Не стоит думать, что если снимать в маленьком размере снимка, то будут работать только отдельные пиксели на камере, и при этом можно будет получить увеличение дифракционного порога или экономии заряда батареи.

Важное замечание: практически всегда можно комбинировать качество снимка и его размер. Таким образом можно подбирать любые варианты качества конечного изображения. Также, всякие манипуляции с размером и качеством JPEG очень сильно влияют на возможности буфера кадров современных камер. Чем меньше размер и чем меньше качество — тем больше фотографий может поместить в буфер кадров при серийной съемке. Для примера, в формате JPEG L, Fine Nikon D40 может поместить только 7 снимков, а M, Norm целых 17. Собственно, ради манипуляций с буфером я и затевал данную статью.

Очень часто огромного размера изображения, например, 30-ти мегапиксельные снимки на мобильные телефоны, занимают огромный объем, а весь потенциал 30-ти мегапикселей попросту не используется. Потому можно смело ставить более маленький размер снимков. Для удобного просмотра фотографий даже на самых дорогих мониторах с матрицей 2560×1600 достаточно порядка 4-х мегапиксельного снимка, а для печати форматом 10Х15 вообще нужно всего около 1 мегапикселя. Вспомните, когда в последний раз печатали фотографии, или увеличивали снимок на компьютере?

Некоторые современные камеры имеют некоторые дополнительные настройки JPEG. Например, продвинутые камеры имеют настройку приоритета качества/размера JPEG. Эта настройка позволяет указать алгоритму на то, что важней при обработке изображения — величина файла или качество.

Важно: для наилучшего качества снимков я, все же, рекомендую использовать наибольший размер снимков с наилучшим качеством. А вот полностью весь потенциал и точность передачу изображения с матрицы на карту памяти может реализовать только формат RAW. Но даже RAW файлы в некоторых камерах проходят через специальную ‘обжимку’ для уменьшения их размеров, здесь нужно быть предельно осторожным.

Выводы:

Формат JPEG — очень интересная методология сохранения графических файлов. Советую поэксперементировать с разным качеством и размером изображения на своих камерах, очень часто можно серьезно экономить место получая хороший результат на фотографиях.