Опубликован: 12.12.2006 | Уровень: для всех | Доступ: платный
Лекция 16:

Хранение изображений

Сжатие изображений

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

Поэтому наша задача – максимальное использование наличных ресурсов и уменьшение перемещаемых файлов до разумных размеров.

Решить ее можно тремя способами: работать с меньшими изображениями (нет, серьезно!), архивировать неиспользуемые файлы и работать с форматами, допускающими уплотнение данных.

Сжатие с потерями и без потерь

Как вы знаете, растровые изображения состоят лишь из нулей и единиц. В 8-битовом изображении в градациях серого каждый пиксел определяется восемью нулями или единицами. Но если все уже сокращено до такой степени упрощения, можно ли сократить файл еще больше? Можно. Объединением групп битов в дискретные блоки.

Сжатие без потерь

Для примера возьмем 1-битовое (черно-белое) изображение высотой и шириной по 100 пикселов. Без режима сжатия программа сохраняет значение (ноль или единицу) каждого из 10000 пикселов изображения. Это все равно, что класть носки в комод, отмечая про себя: "Ага, здесь у меня один синий носок и один синий, один черный и один черный". Такое описание можно ужать наполовину: "Здесь пара синих носков и пара черных".

Метод RLE. Подобным же образом можно сгруппировать нули и единицы, сосчитав их количество в одном ряду (см. рис. 16.22). Представить это можно так: "В строке 34 нуля, затем 3 единицы, затем 55 нулей" и т. д. Этот метод называется Run Length Encoding (RLE), он автоматически используется на Маке при сохранении PICT-изображений (применяется он также и на факс-машинах). При сжатии и разжатии файла потерь данных здесь не происходит – на выходе мы получаем то же самое, что было на входе.


RLE – метод сжатия без потерь (Строка 23: 2 нуля, 5 единиц, 25 нулей, 43 единицы и т. д.)

увеличить изображение
Рис. 16.22. RLE – метод сжатия без потерь (Строка 23: 2 нуля, 5 единиц, 25 нулей, 43 единицы и т. д.)

Метод LZW и код Хаффмана. Существуют и другие формы сжатия без потерь. Простые картинки с большими областями сплошных цветов RLE уплотняет до полного минимума, но более сложные изображения (например, в градациях серого) сжимаются не очень сильно. Механизм LZW (Lempel-Ziv-Welch) и код Хаффмана сводят до минимума общие строки данных.

Иначе говоря, они отслеживают не строки одинаковых цветов, а тенденцию. Натыкаясь на значение "010101", RLE не может выполнить сжатие. А код Хаффмана и LZW – достаточно разумные алгоритмы, чтобы вычислить тенденцию изменения символов и уплотнить информацию.

Сжатие с потерями

Оглавление в начале или в конце книг – это ни что иное, как один из способов сжатия информации. Если вы вырвете оглавление из этой книги и перешлете своему приятелю (хотя делать этого мы вам не советуем), тот, "распаковав" его, получит полное представление о ее содержимом. Пусть он не увидит слов, которые вы сейчас читаете, но узнает "усредненное" содержание каждой лекции. Чем детальнее лекции, тем больше заголовков и тем больше информации для вашего приятеля.

Растровые изображения также можно представлять в виде заголовков (уплотнять), пересылать и распаковывать. И точно так же, глядя на распакованную версию, вы не увидите всех тех деталей, что были в оригинальном изображении. Так, если в квадрате 3х3 все девять пикселов примерно одинаковы, их можно заменить одним усредненным значением. Получится сжатие девять-к-одному. При этом данные оригинального изображения – оттенки в тех девяти пикселах – будут утеряны.

Такой вид уплотнения называется сжатием с потерями. Отбрасывая часть информации, можно существенно повысить уровень компрессии. Если TIFF-файл, сжатый по методу LZW, может уменьшиться до 40 процентов от исходного размера, то файл, сжатый методом с потерями, может сократиться до двух и менее процентов от исходного размера.

Уровни JPEG-сжатия. Обычно схемы сжатия с потерями дают вам возможность самим выбрать уровень уплотнения данных. (Основной метод – единственный, который предлагает Photoshop – это JPEG, или Photographic Experts Group). При малом сжатии файлы получаются большими и с лучшим качеством изображения. Большее сжатие дает меньшие файлы и более низкое качество. Насколько вы теряете в качестве? Это зависит от уровня сжатия, разрешения изображения и его содержимого.

В разных программах метод JPEG реализован по-разному и с разными результатами. Следует заметить, что JPEG – это и метод сжатия и самостоятельный формат файла (см. "Форматы файла" ранее в этой лекции), но то и другое основано на одинаковых алгоритмах.

Предостережения относительно JPEG. Работая с JPEG, следует обратить внимание на ряд моментов. Прежде всего, при сжатии методом JPEG изображения с четкими цветовыми границами, высококонтрастными и угловатыми областями подвержены артефактам в большей степени, чем другие. Так, желтый квадрат на зеленом фоне в файле низкого разрешения после уплотнения с потерями будет выглядеть довольно непривлекательно, так же как и растеризованный текст. Тогда как сканированные изображения с естественными цветовыми переходами, особенно те, в которых уже присутствует зерно или некий эффект импрессионизма, могут совершенно не пострадать от JPEG-сжатия.

Сжимать методом JPEG следует только окончательный вариант изображения, по завершении редактирования и коррекции. Тоновая или цветовая коррекция сжатых изображений подчеркивает артефакты компрессии. Повышение резкости сжатых изображений производит эффект достойный набора фильтров Kai’s Power Tools, но вряд ли может найти применение в допечатной подготовке.

Многократное уплотнения и разжатие изображений приводят к ухудшению качества. Но поскольку только что мы рекомендовали сжимать лишь законченные файлы, это предостережение теряет актуальность – такие изображения достаточно открыть, посмотреть на них и закрыть снова.

Подсказка. Отличное превью, небольшой файл. Некоторые пользователи все еще используют Photoshop в основном для создания промежуточных изображений, занимающих определенное место, чтобы позже заменить их подходящим изображением, имеющим высокое разрешение. В этом случае вас больше заботит вид изображения на экране (и, возможно, при печати на дешевом настольном струйном принтере), чем в цветоделениях. Попробуйте сохранить такое изображение как EPS-файл одновременно с JPEG-превью и JPEG-кодированием. JPEG-превью с 24-битовым цветом превосходно выглядит на экране, JPEG-кодирование (вы можете даже выбрать из списка Quality вариант Low, поскольку эти данные не будут использоваться, если вы не собираетесь печатать на PostScript-принтере) делает файл действительно небольшим.

Этот файл несколько больше, чем простой JPEG-файл, но изображение выглядит на экране намного лучше, особенно если вы используете QuarkXPress или PageMaker.

Две других формы сжатия с потерями – фрактальное сжатие и "wavelet"-сжатие – многообещающие технологии сжатия для будущего, но Photoshop поддерживает их только через дополнительные модули сторонних фирм. Тем не менее, о них стоит рассказать.

Genuine Fractals. Genuine Fractals – семейство дополнительных модулей для Photoshop фирмы Altamira (http://www.altamira-group.com), использующих фрактальное сжатие, получило поддержку в среде крупноформатной печати в связи с возможностью апсэмплинга, дающего менее заметное ухудшение качества, чем при использовании других методов. Хотя в Genuine Fractals более активное сжатие происходит с потерями, возникающие при этом артефакты визуально менее заметны, чем при использовании JPEG, и то же самое относится к использованию апсэмплинга. Предлагается также метод сжатия без потерь. Однако эта технология имеет некоторые ограничения.

  • Для получения хороших результатов нужно начинать с достаточно большого файла (не менее 20 Мб).
  • Получаются умеренные коэффициенты сжатия. При сжатии без потерь коэффициент сжатия составляет примерно 2:1, а при сжатии "почти без потерь" – 5:1.
  • Сжатие обычно занимает много времени.

Брюс использовал Genuine Fractals для апсэмлинга сканированных изображений размером 75 Мб до 300 Мб, который требуется для печати изображений 75 на 100 см с разрешением 300 ppi, и он убедился, что результат выглядит намного естественнее, чем при использовании встроенной в Photoshop бикубической интерполяции. И хотя этот метод может быть чрезвычайно полезен для апсэмплинга такого рода, ограничения пакета Genuine Fractals делают его менее привлекательным, чем обычные утилиты сжатия.

Mr. SID. В пакете Mr. SID фирмы lizardtech (http://www.lizardtech.com) используется wavelet-сжатие, позволяющее получать "визуально неощутимое" сжатие в соотношении до 30:1, хотя более характерно 20:1. Судя по нашему опыту, изображения получаются намного "чище", чем при использовании JPEG, хотя уступают по качеству намного более крупным файлам, создаваемым с помощью Genuine Fractals. Но эта технология намного улучшилась с момента ее первого появления в пакете lizardtech, и мы надеемся, что этот процесс продолжится. Бесплатные дополнительные модули для Web-браузеров и бесплатные средства просмотра – как автономные, так и в виде дополнительных модулей Photoshop, – делают этот метод возможной альтернативой для тех, кто считает JPEG слишком грубым средством для Web-изображений при больших коэффициентах сжатия.

Юля Косарева
Юля Косарева
Россия, Тверь
Кристина Малашта
Кристина Малашта
Россия, Санкт-Петербург