|
Неизвестный JPEG
I. Вот уже многие годы JPEG и GIF являются двумя наиболее распространенными форматами для представления графической информации в Internet. Казалось бы, что может быть в них загадочного? Уж и так их описывали, и эдак… Все так… Но, к сожалению, многие авторы, подвизающиеся на ниве ликбеза, сеют не только разумное, но и заблуждения. Здесь мы не будем защищать JPEG и убеждать читателя в необходимости его использования. Не станем мы также навешивать на этот формат какие-либо ярлыки и ругать его недостатки. Про неоднократно описанные в разных источниках артефакты JPEG также вести речь не будем. Целью этой публикации является рассказ о тех свойствах JPEG, которые недостаточно описаны в популярных статьях и книгах. Прежде всего, рассмотрим тезис о том что JPEG теряет качество при открытии и повторном сохранении файла. Чаще всего эту мысль понимают буквально и, в силу этого, совершенно неправильно. Откройте какой-либо файл в программе Photoshop и сохраните его в формате JPEG с некоторым уровнем качества. Откройте только что созданный файл и сохраните его ещё раз с тем же самым уровнем качества. Повторите эту процедуру несколько раз. Уже начиная со второй копии качество никак не ухудшается: последовательно сохраненные файлы никак не будут отличаться друг от друга. В других программах обработки графики последовательное применение пары команд Open/Save
Так что же имеют в виду, когда говорят, что качество падает при многократном выполнении операций Open/Save? Формат JPEG является форматом с потерями. Это значит, что при сохранении файла алгоритм принимает решение о том, чтобы подвергнуть некоторые цвета оригинального изображения трансформации. Если просто последовательно выполнять несколько операций Open/Save (при одном и том же уровне качества), то преобразование цветов пикселей произойдет лишь на первом этапе, а при последующих сохранениях цветовая палитра будет оставаться без изменений. Однако гораздо хуже ситуация будут складываться, если в промежутке между операциями Open и Save мы будем как-то редактировать (изменять файл). Теперь на каждом этапе процедура пересчета цветов может отфильтровывать все больше и больше исходных оттенков. Часто это смещение цветовой гаммы является гораздо большим недостатком, чем пресловутые артефакты JPEG. Однако, лучше один раз увидеть, чем сто раз услышать. Рассмотрим небольшой пример (см. рис. 1). Рис. 1 Фрагмент натюрморта Франса Снейдерса Рис. 2 Результат 10-кратного сохранения в JPEG На рис. 2 показано, что происходит с изображением при многократном сохранении в формате JPEG с промежуточным редактированием. В данном случае это редактирование было минимально: после каждого открытия к изображению были добавлены слева и сверху две белые полоски шириной в 1 пиксель. Почему простое добавление этих полосок привело к смещению цветовой гаммы? Дело в том, что в процессе JPEG-сжатия изображение разбивается на квадраты 8 х 8, и решение о трансформации цветов происходит в пределах этих блоков. После добавления однопиксельных полосок разбиение будет произведено уже по-новому. В результате, при каждой операции сохранения, цвета на изображении немного меняются. Именно это явление и можно наблюдать на рис. 2. Иными словами, прямоугольные артефакты JPEG — это лишь полбеды, причем часто не самая критическая ее половина. Так что же? Отказаться от редактирования JPEG совсем? Излишняя категоричность тут, наверно, ни к чему. Ведь часто редактировать JPEG приходится потому, что оригинала в другом формате просто нет в наличии. В таких случаях разумно придерживаться следующей рекомендации: сохраненный после редактирования JPEG-файл должен быть по объему не меньше (а лучше — больше) оригинала. Само по себе это правило не гарантирует хорошего результата, но на безрыбье… II. Уж коли речь зашла про JPEG, обсудим еще одно его свойство. Количество цветов в JPEG-изображении может быть примерно 16 млн. Много это или мало? Среди ученых нет единого мнения насчет того, сколько же цветов различает человеческий глаз. Некоторые оценки можно, например, найти тут: Вот небольшой пример. Как-то участница Livejournal
Умудренные многими знаниями собеседники Тамары Николаевны долго гадать не стали. Не мудрствуя лукаво, они просто загрузили изображение в Photoshop и выполнили команду Auto Levels. И тайное стало явным: на фотографии изображен кот, сидящий на оконной раме (рис. 4). III. Итак, артефакты, присущие формату JPEG, — это лишь один из его недостатков. Не самый страшный. Если не злоупотреблять сжатием, то практически всегда можно добиться незаметности этих самых артефактов. Но, как было показано в ходе «маленького ненаучного эксперимента», этому формату свойственна еще одна существенная проблема: потеря оттенков и смещение цветовой гаммы. При этом такие потери не всегда рациональны с точки зрения зрителя: с одной стороны, алгоритм искажает цвета, которые для восприятия играют важную роль (только взгляните на унылый виноград на рис. 2!); с другой стороны, он сохраняет то, чем вроде бы безболезненно можно было пожертвовать (например, детали в тенях на рис.3). Значит ли это, что формат безнадежно плох? Нет, конечно. Как любой другой инструмент, он обладает своими плюсами и минусами. Важно знать их и по мере необходимости учитывать. Благодарность Автор считает необходимым выразить благодарность Т.Н. Зибуновой, любезно позволившей использовать свой снимок в качестве иллюстрации к данной статье. * * *
|
|
|
© Игорь Ефремов, 2007, все права сохранены
Для использования материалов этого сайта в коммерческих или некоммерческих
целях необходимо получить от меня письменное разрешение, если обратное
не оговорено в явной форме. |