Оптимизируем JPEG (Joint Photographic Experts Group), в чём лучше сохранить. Алгоритмы уменьшения изображений
в чём лучше сохранить
выравниваем по сетке
оптимизируем мелкую текстуру
удалим всё лишнее
Резюме
Распростран?нных программ для редактирования изображений немного, определ?нным стандартом, по всей видимости, стали две из них Adobe Photoshop и бесплатный редактор GIMP.
Любопытно сравнить это две программы, чтобы посмотреть, как они справляются с сохранением изображения в формат JPEG.
Для сравнения графических редакторов мы выбрали три фотографии 800×600, на первой в кадре много довольно крупных объектов: мотоциклы, деревья, люди, на второй всю фотографию занимает саркофаг с мелким орнаментом, на третьей почти ничего нет, кроме неба и океана.
Степень сжатия выставлялась в каждой программе из субъективных соображений: чтобы на глаз не были заметны искажения, вызванные сжатием.
Убедительную победу одержал GIMP: его многообразие настроек позволяет гибко управлять размером файла.
Рис.3.4. Диалог сохранения файла в формате JPEG в редакторе GIMP
Указание текста комментария, использование маркеров перезапуска, сохранение эскиза и EXIF увеличивают размер файла, опция «оптимизация» (включает оптимизацию метода Хаффмана), субвыборка «2×2, 1×1, 1×1» и вычисление DCT с плавающей точкой уменьшают его.
Смысл значений параметра «субвыборка» (или цветового прореживания) — уменьшение информации о цвете. Форматов записи этого параметра несколько, но наиболее распростран?нный — три цифры с разделителями. Читаются они очень просто, например: «4:2:2» означает «на каждые четыре пикселя сохраняется четыре значения яркости и по два значения на каждый компонент цвета». Из этого правила есть одно исключение: «4:2:0» расшифровывается как «на каждые четыре пикселя в квадрате 2×2 сохраняются четыре значения яркости и по одному значению цвета».
Значение «4:2:0» часто называют «2×2», а «4:4:4»— 1×1. Как видно, GIMP использует другие, более понятные значения субвыборки. К примеру, «2×2, 1×1, 1×1» означает: для квадрата 2×2 пикселя сохраняются все значения яркости, одно значение по вертикали и одно по горизонтали для первой компоненты цвета, а также одно по вертикали и горизонтали для второй компоненты.
Чем меньше информации о цвете сохраняется, тем меньше файл и тем более он дал?к от оригинала. Легко сделать оправданный вывод, что субвыборка «4:2:2» больше скажется на ч?тких вертикалях, а «4:2:0» сделает более расплывчатыми и вертикальные, и горизонтальные линии.
Параметр «метод DCT» не так важен для понимания оптимизации. Для полноты картины поясним, что он имеет отношение к точности вычисления дискретного косинусного преобразования (разновидность преобразования Фурье), при помощи которого производится уменьшение цветовой информации. Чем точнее вычисляется это преобразование, тем меньше размер файла с изображением.
Параметр «маркеры перезапуска» влияет на расстановку специальных маркеров, используемых для нейтрализации ошибок. В вебе они едва ли полезны, а их использование увеличивает размер файла.
Параметр «прогрессивная загрузка», с вероятностью 75% уменьшит размер изображения, если оно меньше 10Кб и с вероятностью 94% увеличит его, если оно больше этого размера. Если вам не важны соображения совместимости с Internet Explorer, изложенные выше, то вы можете попробовать включить этот параметр, чтобы посмотреть, не уменьшится ли размер.
На размер изображения также влияют резкие переходы (границы), чем их меньше, тем лучше оно сжимается. Поэтому GIMP на экране сохранения JPEG-изображения содержит инструмент для его сглаживания. Для некоторых типов изображений (например, мелкий лиственный рисунок) л?гкое увеличение сглаживание не вызовет ухудшения восприятия, но уменьшит размер.
Справедливости ради, надо заметить, что на размер влияют ещ? два параметра изображения: чем ниже его контрастность (contrast) и/или насыщенность (saturation), тем меньше будет его размер в JPEG.
Параметр «качество» влияет на изображение очевидным способом, хороший алгоритм — выбрать качество 75% и, если искажения слишком заметны, попробовать его увеличить. Если исходная картинка уже невысокого качества, можно попробовать снизить этот параметр до 50%. Никогда не сохраняйте изображения с качеством выше 95%, это не даст улучшения качества изображения, но серь?зно увеличит его размеры. Качество «100%» не означает «сохранить без потерь», это всего лишь математический предел алгоритма.
Куда более сложным, но и более мощным средством оптимизации изображений при сохранении является программа платная программа JPEG Optimizer фирмы Xat. Она даёт экономию больше, чем GIMP, но чтобы её добиться, придётся потратить куда больше времени.
Рис. 3.5. Интерфейс программы Xat JPEG Optimizer
Принцип обещаемой чудесной оптимизации заключается в том, что JPEG позволяет сохранять разные области изображения с разным качеством. Например, более тёмные или однородные области можно сохранить с качеством похуже, содержащие мелкие детали — с наилучшим.
Вообще-то, JPEG Optimizer имеет автоматический режим, но на наш взгляд, эффективнее всего работать с программой в режиме эксперта (Options → Expert Mode), результат получается лучше.
Для обработки изображения первым делом нужно выбрать минимально допустимое качество, для этой цели сверху есть специальный ползунок.
Далее нужно определить какие области изображения можно сохранить с наихудшим качеством. На фотографии выше это, например, песок слева снизу, т?мное пятно справа вверху и столб с левой стороны рисунка. Выбираем режим «Compress Much More» (F8) при помощи инструментов «Freehand Selection» (F9), «Rectangle Selection» (F10) или «Line Selection» (F11), в зависимости от того, чем удобнее, выделяем нужные области.
Для областей, где настолько сильное сжатие применять нельзя, можно выбрать режимы «Compress Even More» (F7) или ещ? более слабый «Compress More» (F6). Если какую-то область вы сжали слишком сильно, не беда, можно воспользоваться инструментом «Undo» (Ctrl-Z) или переключиться в режим «Remove Extra Compression» (F5) и выделить нужную область.
Потрудившись, можно уменьшить размер изображения на 3—20%, по сравнению с GIMP, в зависимости от изображения.