Мы можем даже объявить конкурс на лучшее высказывание в стиле "хорошо — плохо", но главное что бы вы его придумали. Потому что все, что мы здесь пишем – это то, что знаем мы и это лишь некий толчок, основа, фундамент для ваших личных размышлений и опыта. Невозможно рассказать всё, невозможно всему научить. Попробуйте понять, почему мы пишем то или иное утверждение, какие выводы, какие мысли, какой опыт за всем этим стоит? Если вы не сможете понять всего, изложенного нами, то и смысла в вашем обучении нет. Мастерство и знания – это не стих, их не зазубривают наизусть, они приходят со временем. Все наши лекции можно было запустить за один день, но вы бы прочли и не усвоили ничего. Информация как пища – сначала требует аппетита, потом усвоения.
Вся, выше изложенная, глава – сплошная теория. Постепенно с каждой главой вы перейдёте к практике. Но помните, мы писали теорию не для того, что бы засветиться, а для того, что бы вы каждый раз делая тему, помимо практических советов использовали наши рассуждения и мысли.
Глава 3. Качество и вес. § 3.1 GIF и как устроены анимации. Вот мы и подошли к форматам изображений. Graphics Interchage Format, он же сокращенно GIF - это гость из далекого 87го года, пожалуй, самый старый из используемых сегодня графических форматов. Что самое удивительное, он по сей день в ходу, и так случлиось лишь благодаря тому, что авторы (а именно компания CompuServe) уделили внимание анимациям, в то время как многие конкурирующие форматы ее не поддерживают. Анимация - это ведь фактически несколько изображений в одном файле и возможность регулировать их просмотр, именно это и позволило GIF заполонить весь интернет и быть акутальным даже сейчас. Существует две версии GIF: GIF87a и GIF89a, 1987го и 1989го года соответственно. Сейчас первая версия практически не встречается, поэтому речь пойдет о второй.
Что же может GIF? На самом деле, не так уж много: единственный цветовой режим, который он поддерживает - это индексированный цвет, это означает, что есть палитра, содержащая максимум 256 цветов в формате RGB, а сами изображения содержат индексы каждого цвета в палитре. Чаще всего она единая для всего файла, но отдельные кадры могут иметь и свои собственные палитры. Также в GIF имеется поддержка прозрачности, но самая базовая: пиксель может быть только либо прозрачным, либо непрозрачным вообще. У каждого кадра можно указать (но не обязательно), какое время он должен показываться на экране, которое указывается в сотых (0,01) секунды.
У GIF есть и некоторые возможности, о которых многие не знают. Например, в стандарте предусмотрено ожидание ввода пользователя при показе некоторых кадров, как в слайд-шоу. Другой малоизвестной возможностью является вывод кадра с текстом (не изображения). Наконец, в GIF поддерживаются комментарии. И самое главное: формат расширяемый, именно так и появилась возможность задавать количество просмотров анимации, чем мы обязаны компании Netscape. Как и многие графические форматы, GIF обладает сжатием. В данном случае используется непопулярный в наши дни алгоритм LZW. Отчасти это связано с тем, что создатели алгоритма его запатентовали, и в середине 90-х были трения с его использованием в уже тогда популярных по всему интернету файлах GIF. Кстати, именно это привело в итоге к созданию формата PNG, но это уже тема для другой лекции.
Алгоритм (вернее, его версия, которая стандартизирована в GIF) не очень гибок, в нем нельзя увеличить сжатие за счет более хитрого алгоритма. Как же тогда оптимизируют изображения? Есть два пути: либо уменьшать количество цветов в палитре, что чревато ухудшением качества, либо химичить с наложением кадров. Дело в том, что каждый кадр имеет одну из четырех настроек относительно того, что делать с предыдущим кадром: просто заменить его текущим, наложить новый прямо поверх него, закрасить фоном или вернуться к кадру перед ним. Многие программы выбирают для большинства кадров второй вариант, а все те пиксели, которые не изменились, становятся прозрачными. Таким образом в кадре содержится меньше информации.
И напоследок немного о форматах-конкурентах. На сегодняшний день более менее известны два: MNG и APNG. MNG придуман создателями PNG как разновидность PNG с поддержкой анимации, однако из-за своей сложности формат так и не получил распространения. Теоретически в темах SE он поддерживается в паре элементов, но неизвестно, чтобы кто-то создавал с ним темы. APNG оказался удачнее, видимо, за счет простоты и обратной совместимости с PNG, он уже поддерживается в таких браузерах, как Opera и Firefox. Но на мобильниках и, в частности, в темах SE он не поддерживается. Поэтому хоть GIF и староват, когда в теме нужна анимация, он незаменим.
§ 3.2 JPEG и его особенности. Сегодняшняя тема - самый популярный формат хранения фотографий и не только, имя которому JPEG. Аббревиатура означает Joint Photographic Experts Group, это название комитета, который разработал и принял в уже далеком 1994 году этот стандарт. Формат изначально задумывался для хранения фотографических данных, гибко подстраивающийся под нужды, для которых он используется. Что же именно позволило этому формату стать одним из самых распространенных форматов цифровой фотографии и интернета?
Разумеется, самый главный фактор - это сжатие, причем довольно хитрое и многоступенчатое. В отличие от большинства распространенных графических форматов, сжатие происходит с потерями. Самая главная идея заключается в том, чтобы отбросить часть информации таким образом, чтобы глазу это было не очень заметно, но вес уменьшился. Первым кандидатом является цветовая информация: в JPEG три канала, как и во многих форматах, но не RGB, а мудреные YCbCr, среди которых один канал содержит освещенность, ощущаемую глазом лучше всего, а остальные два - цветность. Она и урезается в 2 или в 4 раза. Затем изображение делится на блоки по 8х8 пикселей, они обрабатываются особой математической функцией и дальше начинается процесс отсечения лишней информации, называемый квантизацией.
Вот тут как раз и кроется прелесть JPEG: этот процесс проходит по определенным таблицам, которые можно настраивать под себя. Можно оставить все блоки, как они есть, а можно отсечь практически всю информацию, и тогда блоки станут почти одноцветные. У каждой фотокамеры, у каждой программы, которая сохраняет в JPEG, есть свои таблицы, от которых зависит, сколько деталей будет сохранено в изображении. Затем то, что осталось, сжимается с помощью кодов Хаффмана (популярный метод сжатия, используемый, например, в zip-архивах) и записывается в файл. Также есть возможность использовать арифметическое сжатие, которое дает несколько лучшие результаты, но всвязи с тем, что до недавнего времени на него были патенты (в основном, IBM), JPEG с таким типом сжатия сейчас довольно редки.
Очень важная характеристика JPEG - расширяемость. Благодаря ей получилось создать "оболочки" для JPEG, из которых наиболее известны две: JFIF и Exif. Зачем они нужны? JFIF содержит некоторые самые базовые данные об изображении и, что самое главное, миниатюру для быстрого просмотра, например, в файловом менеджере. Exif ориентирован на использование фотокамерами и помимо миниатюры может содержать исчерпывающую информацию о снимке: когда снято, какой камерой, с какими настройками или даже в каком месте по данным, полученным через GPS. Еще одна очень интересная, но малоизвестная возможность Exif заключается в том, что он может содержать даже аудиозапись.
Кратко упомяну о других разновидностях JPEG. Как я уже сказал, формат достаточно гибкий, поэтому кроме простых JPEG существует специальный вид для просмотра изображения за несколько проходов при загрузке по интернету (прогрессивные JPEG). Есть также хитрый иерархический режим работы, при этом в JPEG умещается одно и то же изображение, но в разных разрешениях. Наконец, еще одной разновидностью являются JPEG со сжатием без потерь. Однако все эти виды очень редки (за исключением, пожалуй, прогрессивных JPEG), как и формат-конкурент JPEG 2000 с более совершенной математической обработкой.
ts 9 дек 2008 в 16:01