О сжатии картинок, часть II (GIF) |
![]() |
Здесь пойдёт речь о другом формате картинок - GIF.
Как уже упоминалось, этот формат используется для рисованных изображений. В отличии от JPEG, этот формат не поддерживает ухудшения качества и на самом деле уже сжат. Уменьшить размер GIF-файла можно только за счёт уменьшения количества цветов. Строго говоря, уменьшить размер GIF картинки без ухудшения качества невозможно, однако, на практике это не так - я бы сказал, что подавляющее большинство GIF в интернете хорошо "сжимается" без ухудшения качества. Происходит это по простой причине - GIF-картинки выложены с избыточным количеством цветов. То есть, скажем, есть GIF-картинка, в ней используется 8 цветов, однако палитра сохранена на 256 цветов. Фактически, веб-дизайнеры, когда рисуют картинки, не задумываются о размере файла и сохраняют так, как "нарисовалось", не задумываясь о том, что в файле много избыточной информации. Конечно же, существуют "правильно" созданные GIF, в которых избыточной информации нет, но таких картинок исчезающе мало...
Пример работы toonel с GIF, реклама от Microsoft Live Meeting:
Original, 12920 байт, палитра 8 бит (256 цветов): ![]() Original, 12920 байт, палитра 8 бит (256 цветов)
Good, 7748 байт, палитра 6 бит (64 цвета), экономия 40%: ![]() Good, 7748 байт, палитра 6 бит (64 цвета)
Medium, 6154 байт, палитра 4 бита (16 цветов), экономия 53%: ![]() Medium, 6154 байт, палитра 4 бита (16 цветов)
Low, 4120 байт, палитра 2 бита (4 цвета), экономия 69%: ![]() Low, 4120 байт, палитра 2 бита (4 цвета)
Итак, как видно, оригинальная картинка была сохранена с избыточной информацией (256 цветов), поэтому при уменьшении цветов вплоть до 16 включительно, качество картинки не ухудшилось.
О чём полезно знать:
О чём также полезно знать - существуют компрессоры, которые заявляют, что сжимают GIF. При ближайшем рассмотрении оказывается, что эти компрессоры преобразуют GIF в JPEG и потом применяют стандартную функцию JPEG ухудшения качества. Обычно, это приводит к следующему результату:
75% сжатия, 13867 байт, палитра 8 бит (256 цветов), экономия отрицательная - результирующий файл больше оригинального: ![]() 75% сжатия, 13867 байт, палитра 8 бит (256 цветов)
50% сжатия, 13704 байт, палитра 8 бит (256 цветов), экономия отрицательная - результирующий файл больше оригинального: ![]() 50% сжатия, 13704 байт, палитра 8 бит (256 цветов)
25% сжатия, 13224 байт, палитра 7 бит (128 цветов), экономия отрицательная - результирующий файл больше оригинального: ![]() 25% сжатия, 13224 байт, палитра 7 бит (128 цветов)
максимальное сжатие, 10744 байт, палитра 7 бит (128 цветов), экономия 17%: ![]() максимальное сжатие, 10744 байт, палитра 7 бит (128 цветов) |