Правда о JPEG (про качество)

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

Сразу хочу сказать, что JPEG — это в общем-то хорошо. Ну правда, посудите сами — не будь этого формата, сколько времени приходилось бы ждать загрузки страницы в интернете? И это при нынешних-то скоростях. Я уже не говорю про несчастных фотолюбителей, которым приходилось бы (о ужас!) самостоятельно делать RAW-конвертацию всякий раз, когда нужно выложить в инстаграм фото котика.


Как мы знаем, основная идея JPEG — это любой ценой уменьшить размер файла. В числе прочего это уменьшение достигается за счет процедуры квантования. Пожалуй, последствия этой процедуры наиболее заметны. По сути — программа ищет похожие участки изображения и заменяет их некоторым «эталоном», что в обязательном порядке повреждает изображение. Однако там, где программа не смогла найти ничего похожего, сжатие происходит с меньшими, практически незаметными потерями. Другими словами — чем изображение сложнее, чем больше в нем деталей, тем меньше будет сжатие.
В качестве эксперимента я разрезал следующую фотографию на три части и сохранил их в виде отдельных файлов:
106921_original

Как вы можете заметить, файл с небом, где практически никаких деталей нет, оказался в три раза меньше, чем нижний фрагмент, где JPEGу не удалось сэкономить на повторяющихся участках.
Отсюда можно сделать вывод, что наиболее уязвимая зона изображения — это границы обширных малодетализованных участков, например — неба. Именно там возникают самые заметные JPEG-артефакты. На днях я выкладывал в Facebook одну из фотографий из тура в Словакию. Как я ни упрашивал загрузчик не калечить фото — идея была обречена на провал. Черные силуэты на фоне синего неба в обязательном порядке обрастали джипеговой грязью. Тут мне стало жутко интересно, а с каким же качеством сжатия пересохраняет мои картинки Facebook? Ведь при слабом сжатии (Quality 12) проблемы не очень заметны. Пришлось немного поэкспериментировать:

107422_original

Судя по всему, качество пересохранения в Facebook никак не выше шести. А это значит, что когда вы готовите фотографии для публикации в этой сети, то ничего, кроме максимального качества, ставить ни в коем случае нельзя. Во всяком случае, если у вас есть в фотографии небо :))

Еще один момент — это повторное сохранение JPEG. Даже если вы ничего не делали с файлом (а только добавили свой копирайт), то картинка станет хуже. Чтобы показать это, я двадцать раз пересохранил файл в качестве 12

107587_original

…и еще раз сделал то же самое в качестве 10:

108018_original

Так вот. JPEG это прекрасно. Но один раз.