Архивы: по дате | по разделам | по авторам

Art’e’facts

Архив
автор : Сергей Токарев (eSTet)   29.05.2001

Они питаются пикселями и пожирают электронные изображения. Словно пылевые клещи, они почти неощутимы и обитают повсеместно. Они вызывают аллергию у работников предпечатной подготовки и недоумение у заказчика. Если вы еще не знакомы с ними, представляем вам: JPEG-артефакты!

Они питаются пикселями и пожирают электронные изображения. Словно пылевые клещи, они почти неощутимы и обитают повсеместно. Они вызывают аллергию у работников предпечатной подготовки и недоумение у заказчика. Если вы еще не знакомы с ними, представляем вам: JPEG-артефакты!

Как они заводятся

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

JPEG-сжатие, названное так по имени своего создателя (Joint Photographic Experts Group), использует особенности человеческого восприятия, что позволяет максимально сжать фотоизображения. При разработке метода был обобщен более чем полувековой мировой опыт. По последним данным, наш глаз видит только размытые образы, которые потом обрабатываются мозгом с целью повышения качества. Но тогда подобные научные изыски еще не вышли за рамки гипотез, поэтому самым смелым шагом экспертной группы стало признание того, что наши глаза больше реагируют на изменение яркости, чем цвета. Решено было значительно проредить цветовую информацию и сосредоточиться на яркости. Для этого были разработаны рекомендации по сжатию фотографических изображений, известному сейчас как JPEG-сжатие с потерями. Добавлю, что попутно было изучено JPEG-сжатие без потерь, но результаты исследований, похоже, убрали в стол 1.

Как бы то ни было, на начальном этапе кодирования JPEG-метод переводит изображение в трехканальную систему с одним каналом яркости и двумя цветовыми каналами. И если яркостная составляющая кодируется полностью, для кодировки цветовых данных используется вдвое меньший диапазон. Это было сделано под влиянием сильного лобби дальтоников и Лиги защиты прав животных, которые, как известно, цвета не различают. Один этот шаг уже позволял уменьшить объем хранимой информации на треть. Он же приводил и к первой, «неощутимой для человеческого глаза» потере цветовых данных.

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

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

После того как информация была сто раз обработана, причесана и прорежена, наступает черед собственно сжатия, которое происходит без потерь. Мы уже привыкли, что JPEG-сжатие - это сжатие с потерями. Так вот, все потери относятся только к этапу подготовки данных, само сжатие их не вносит. Но поэтапное выкидывание информации при подготовке приводит к дрожанию линий, появлению «грязных» пятен около контуров предметов на однородном фоне, видимым квадратам 8х8 и прочим недостаткам, которые и называются JPEG-артефактами. Есть лишь одно утешение: при небольшом сжатии артефакты не воспринимаются глазом и качество практически сохраняется. Так что огромный плюс JPEG - это действительно сильное уменьшение объема с малыми потерями.

Источники заразы

Откуда же берутся все эти сильно загаженные jpeg’ом картинки?

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

Во-вторых, на шестой части суши продолжает оставаться популярным такой источник клипартов, как диски с пиратскими коллекциями. И если вы держите в руках диск с надписью «5000 фото высшего качества», то знайте, что скорее всего вы не найдете там ну абсолютно ничего хорошего - ни по размеру фото, ни по качеству. JPG-файлы размером менее 100 Кбайт в большинстве случаев пригодны максимум для визиток.

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

Еще один источник - графический редактор Corel Draw, печально известный своей маниакальной тягой к JPG-сжатию импортированных изображений. По умолчанию сжатие растровых изображений включено, и это вносит неизбежные искажения в импортированные иллюстрации. Поэтому при ориентации на полиграфию необходимо отключать компрессию растровых изображений в файле, что все и делают, но, как говорят знающие люди, Corel все равно что-то там втихую мутит с картинками, поэтому крохотные JPG-артефакты все равно появляются 2.

И наконец, их источником являются юзеры, ибо, открыв фотографию в формате JPG и отредактировав ее, обычный пользователь скорее всего сохранит результаты в том же файле и в том же формате, чего нельзя делать ни в коем случае! JPEG-сжатие кумулятивно: каждое новое сохранение, накапливая искажения, постепенно доводит качество картинки до никакого состояния.

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

Метод борьбы

Зарекомендовавший себя в боях с артефактами простой алгоритм приводится as is, как я использую его в Photoshop. Но в принципе он годится для любой программы, которая работает в режиме Lab и может выполнять операции, аналогичные Gaussian Blur и Median 3.

  1. Подозреваемое изображение переводится в цветовой режим Lab. На рисунке хорошо видно «дрожание» и квадраты вокруг кольца, которое держит мужчина в черных очках (рис. 1).

  2. Переключаемся в первый цветовой канал а (Ctrl+2). Смотрим на картинку. Да… все недостатки видны как на ладони. Запускаем Filter®Blur®Gaussian Blur. Поскольку результат работы фильтра можно увидеть сразу в окне с изображением, регулируем Radius так, чтобы найти минимальное значение, при котором исчезают JPEG-«квадраты». Как показывает опыт, для большинства JPG-картинок хорошо подходят значения 2 пикселя. Щелкаем по кнопке ОК (рис. 2, 3).

  3. Переключаемся во второй цветовой канал b (Ctrl+3). Повторяем операцию с Gaussian Blur. Поскольку это был последний использованный фильтр, достаточно нажать клавиши Ctrl+F.

  4. Переходим в канал яркости L. Этот канал меньше всего пострадал от сжатия, и в то же время он несет наибольшее количество информации. Запускайте Median через меню Filter®Noise®Median. Используйте значение Radius - 2 пикселя (рис. 4, 5).

     

  5. Median очень сильно сглаживает детали, поэтому сразу же применим ослабление фильтра Edit®Fade Median (Ctrl+Shift+F). Выставьте Opacity равным
    30-40%, чтобы одновременно и ослабить действие фильтра, и избежать воскрешения JPEG-артефактов.

  6. Изображение все равно очень сильно потеряло в мелких деталях. Если они важны, особенно если это изображения людей, используйте фильтр повышения резкости Unsharp Mask. Запустите Filter®Sharpen®Unsharp Mask. Значение Radius выставляем в соответствии с использованным радиусом фильтра Median. Значение Amount увеличивайте осторожно - примерно до 120-200%. В результате большинство мелких деталей восстановится.

  7. Переводим изображение обратно в RGB-режим (если надо).

Добавлю, что при тяжелом поражении JPEG-артефактами приходится применять более высокие значения для Radius в фильтре Gaussian Blur. На маленьких картинках это приводит к очень сильному сглаживанию и потере мелких деталей. Тут можно порекомендовать поработать кистью History в канале Lightness над особо важными участками, установив Opacity примерно 60%. Так я восстановил детали лица и кисти рук в приведенном примере. При умелой игре на клавиатуре (горячие клавиши) и наметанном глазе вся процедура занимает от силы пять минут.

Краткие пояснения к методу

Режим Lab соответствует методу внутренней кодировки JPEG-файла. Как уже говорилось, яркостный и цветовые компоненты подвергаются разным степеням огрубления. Поэтому их следует обрабатывать отдельно, ища компромисс между излишним сглаживанием и откровенной наглостью JPEG-артефактов. Самый важный канал - яркостный, он же несет наибольшее количество оригинальной информации. Фильтр Median создает контуры (резкие очертания), а Gaussian Blur, наоборот, разрушает. Нам нужно как можно больше деталей в канале яркости и как можно меньше квадратов в цветовых каналах (о деталях там и говорить не приходится). Не вдаваясь в технические подробности, скажу только, что Median усредняет цвета и частично помогает восстановить первоначальные контуры.

[i39738]


1 (обратно к тексту) - Возможно, потому, что на фотографиях неба, сжатых без потерь, неожиданно появились летающие тарелки и шаттлы земных президентов, подлетающих к ним время от времени? Ведь самое любимое дело у «официального» JPEG - нашинковать небо в окрошку.
2 (обратно к тексту) - Самым надежным способом получения высокого качества работы в Corel Draw является использование внешних линков на иллюстрации.
3 (обратно к тексту) - Горячие клавиши для Photoshop приводятся в скобках по месту описания.
© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.