Это один из вопросов, который был задан учениками на курсе
Adobe Photoshop. Базовый уровень При желании дополнительные вопросы можно задавать прямо в комментариях к этому посту. Ссылки на все вопросы собраны в
верхнем посте моего ЖЖ.
4. Как избавиться от жутких следов артефактов JPG?
Давайте сначала разберемся, как JPEG сжимает картинку, и чем «жуткие артефакты» отличаются от «не жутких». На иллюстрации приведена центральная часть кадра, который сделал
Александр Железняк. Фото входило в книгу «Россия глазами блогера». Это кроп с полноразмерного кадра, разрешение «родное». Соответственно, каждый пиксель честно несет информацию о деталях. В той степени, в которй ее восстановил конвертер.
А вот это та же самя картинка покрытая «жуткими артефактами» ровно наполовину. На верхнюю половину. Кадр срощен из двух частей: нижняя половина сохранена с обычным для интернета фактором качества 8. В команде Save for Web (Сохранить для Web) этому соответствует установка качества 60. Верхняя половинка предварительно была сохранена с фактором качества 0. Наметанный глаз может заметить неоднородности на частичках мусора в воде. При этом верхняя часть краба выглядит достаочно сносно.
Фанаты могут сдернуть вышеприведенное изображение, открыть его в фотошопе, увеличить и рассмотреть неприятности во всей красе. Для всех остальных представляю центральную часть кадра, увеличенную в пять раз. Справедливости ради нужно заметить, что сохраненная даже с таким драконовским сжатием картинка, в реальном размере не производит неизгладимо жуткого впечатления. И, следуя принципу разумной достаточности, можно было бы с ней смириться. Но, принцип не накопления погрешностей не дает это сделать.
Чтобы побороть проблему, нужно понимать, как она образуется. Достаточно подробный рассказ об алгоритмах сжаия JPG можно найти в статье
«Сжатие изображений: JPEG и JPEG2000», а простыми словами это можно описать так. Программа разбивает картинку на квадраты 8х8 пикселей (начиная с левого верхнего угла), после чего усредняет (размывает) картинку в каждом из квадратов. В результате внутри квадратов изображение теряет детали, а на стыках появляются явно заметные уступы. Чтобы побороться с ними, нужно размыть изображение. Но не все целиком, а только в области этих уступов.
Дя этого нужно сформировать выделение границ квадратов. Первым делом создаем файл File > New (Файл > Создать) размеров 8х8 пикселей. Как он будет называться не важно, сохрянять его не понадобится.
После этого отдаем команды Select > All (Выделение > Все), а потом Edit > Stroke (Редактирование > Выполнить обводку), с показанными ниже настрйками. В результате получается белый квадрат размером 8х8 пикселей с черной обводкой по границе шириной в 1 пиксель.
Выделение сохраняется, азначит можно привратить эту кртинку в патерн: Edit > Define Pattern (Редактирование > Определить узор). Вот в этом месте лучше ввести осмысленное название. А заодно закрыть временный файл.
Далее переключаемся на восстанавливаемое изображение, переходим в режим быстрой маски и отдаем команду Edit > Fiil (Редактирование > Выполнить заливку). В качестве образца заливки выбираем саготовленный патерн.
В результате на экране Вы увидите вот такое превью.
Поскольку у меня режим быстрой маски настроен на закрашивание выделенных участков, после выхода из режима быстрой маски муравьи будут маршировать вокруг стыков артефактов. ВНИМАНИЕ!!! Если у Вас быстрая маска настроена по-умолчанию (закрашиваются замаскированные области), в этом месте выделение нужно инвертировать. И, на всякий случай, проверьте, действительно ли стыки JPEG-артефактов лежат между тропинками муравьев.
А дальше даем простое гауссово размыие. поскольку размер артефактов не зависит от размера картинки, можно даже порекомендовать стандартные настройки. По моему опыту хорошо работает настройка 0,5-0,6 пикселей.
Ниже можно проверить результат. Увеличение в пять раз относительно нормального размера. Нижняя часть сохранена в JPEG с минимальной компрессией. Верхняя часть сохранена с максимальной компрессией (пример выше) и избавлена от явных артефактов по предложенному методу.
Конечно, чудес на свете не бывает. Разница видна, но, по сравнению с исходной «квадратичостью» все гораздо лучше.