Полевые испытания графических форматов
Перед каждым шароварщиком рано или поздно встает вопрос - какой формат файлов использовать для подготовки графических материалов к программе. Есть ли “правильный” ответ на этот вопрос?
Озадачившись, я решил провести небольшое исследование трех наиболее популярных форматов на пригодность для использования в shareware-индустрии.
Наибольшее распространение и поддержку получили следующие форматы: gif, jpeg и png. Ниже приводится их краткое описание для того, чтобы в дальнейшем было проще понять, как особенности конкретного формата тем или иным образом отразились на качестве и размере файлов.
Формат gif
Формат gif - один из старейших в web. До недавнего времени практически вся web-графика использовала его возможности. Основные преимущества - возможность создания “прозрачных” участков изображения и анимация. Для сжатия используется алгоритм LZW, который используется в архиваторе zip и базируется на нахождении повторяющихся цепочек символов. Минусы - поддержка не более 256 цветов.
Формат jpeg
Второй по популярности формат в области web и первый - в сфере цифровой фотографии. Алгоритм сжатия использует довольно сложные математические модели и преобразования (в частности, дискретно косинусное), учитывает особенности работы человеческого глаза. Замечательной возможностью является манипулирование степенью сжатия - можно получать маленькие файлы, жертвуя качеством и наоборот.
Формат png
Формат png сравнительно молод, поэтому не успел снискать всеобщее признание. Основное отличие от предыдущих - сохраняет оригинальное качество изображения, то есть сжимает без потерь. Это преимущество является и недостатком, так как вы не сможете получить файл маленького размера, пожертвовав качеством. Среди множества других вкусностей поддержка прозрачности и настоящего полноцвета (вплоть до 48 бит на пиксел).
Для того, чтобы как можно сильнее подчеркнуть плюсы и минусы различных форматов, я использовал два тестовых изображения - скриншот своей программы, и фотографию миловидной девушки.
Оценка качества скриншотов
Запускаем программу, нажимаем волшебную комбинацию Ctrl + PrntScrn (сделать скриншот рабочего окна) и последовательно переводим оригинальный файл в различные форматы. Сразу привожу таблицу сравнения, отсортированную по размеру:
screen-gif-128.gif - 21,677 - версия в формате gif, 128 цветов
screen-gif-256.gif - 23,708 - версия в формате gif, 256 цветов
screen-jpeg-low.jpg - 29,258 - jpeg, 10% качество
screen-png.png - 36,577 - формат png
screen-jpeg-medium.jpg - 40,728 - jpeg, 30% качество
screen-jpeg-high.jpg - 63,755 - jpeg 60% качество
Вы можете просмотреть их в отдельном окне и задать себе тот же вопрос, что и я - какие выводы можно сделать просмотра данных изображений?
Прежде всего, jpeg с низким качеством просто безобразен! Его нельзя показать даже родной маме, не то, что потенциальным или состоявшимся покупателям. Jpeg среднего качества смотрится уже лучше, но артефакты все-таки заметны даже невооруженным взглядом, поэтому применять его я бы все-таки поостерегся. Jpeg высокого качества вполне на уровне - атефактов не заметно, цвета естественны.
Как ни странно, примитивный gif даже в варианте с передачей 128 цветов легко бьет jpeg по качеству восприятия! Отсутствие артефактов и меньшее количество цветов приводят к тому, что картинка кажется более резкой. Увеличение количества цветов в два раза, до 256, практически не меняет общей картины, хотя можно заметить, что отдельные детали в этом варианте лучше проработаны. На иконке дискеты, например, появилась тень.
Лидером обзора по качеству стал формат png, что и неудивительно. Никакого сравнения с jpeg! Однако даже в полтора раза меньший скриншот в gif выглядит несильно хуже, чем png.
Полноцветные фотографии
Переходим ко второй части наших испытаний. Для того, чтобы оценить, как поведут себя разные алгоритмы сжатия на полноцветной картинке фотографического качества, я взял фото девушки (довольно миловидной внешности), которое содержало как можно больше различных цветов, а главное - различные плавные переходы, которые наиболее трудно передаются.
Количество пикселов в данной фотографии практически равно количеству пикселов скриншота из прошлого теста, что позволяет сделать достаточно эквивалентное сравнение.
Привожу таблицу картинок, отсортированных в порядке увеличения размера файла - вы можете посмотреть и сравнить их в отдельном окне, кликнув на соотв. ссылке.
photo-jpeg-low.jpg - 14,144 - jpeg, 10% качество
photo-jpeg-medium.jpg - 21,736 - jpeg, 30% качество
photo-jpeg-high.jpg - 44,498 - jpeg 60% качество
photo-gif-128.gif - 73,787 - версия в формате gif, 128 цветов
photo-gif-256.gif - 94,084 - версия в формате gif, 256 цветов
photo-png.png - 323,082 - формат png
Что ж, картина полностью противоположна предыдущей. Первые места хит-парада занимают различные вариации jpeg, затем с большим отрывом следует gif, ну а png оторвался настолько, что и говорить не хочется.
Теперь сравним качество. Говорить о качестве png не приходится - оно на высоте, что и неудивительно при таком размере файла. А вот gif откровенно подкачал - большие площади с плавными переходами цвета залил несколькими близкими цветами из палитры, что сразу бросается в глаза. На фотографию никак не похоже.
Аутсайдер прошлого забега, формат jpeg, вырвался вперед! Удивительно, но даже в самом низком качестве, и при мизерном размере выходного файла ему удалось сохранить фотографию, хотя артефакты и бросаются в глаза. Среднее качество их заметно сглаживает, ну а в высоком их практически не видно, если не приглядываться.
Похоже, что сохранить компромисс качества и размера файла в этом тесте удалось только формату jpeg, причем глядя на результаты его соперников, можно сказать, что удалось это ему просто блестяще!
Выводы
Не претендуя на провозглашение истины в последней инстанции, все же позволю себе сделать достаточно категоричные выводы.
Для обычных скриншотов лучше всего подходит формат gif, который хотя и отображает достаточно небольшое количество цветов, выдает файлы самого маленького размера, которые психологически воспринимаются как весьма качественные.
Для передачи фотографий альтернативы на данный момент нет - jpeg и еще раз jpeg, желательно как можно более высокого качества.
Формат png использовать не стоит - идеальное качество не дает в наших условиях никаких особых преимуществ, а вот размеры файлов способны весьма разочаровать. Да и поддержка пока не на высоте.
P.S: Напоследок - пара слов об оборудовании, которое использовал. Это достаточно неплохой 17″ монитор Philips 107P4 на базе электронно-лучевой трубки с апертурной маской (лучший CRT из всех мной виденных) и видеокарта Matrox G200 - несколько лет назад эта карточка была рабочей лошадкой для многих профессионалов в сфере графики.
P.P.S: Так как возможности воспользоваться LCD-панелью сейчас нет, было бы интересно услышать комментарии людей, работающих с ЖК-мониторами.
August 26, 2005 - 14:13 -
На ЖК почти все так же как и на CRT. Почти все картинки нормально выглядят, за исключением photo-gif-*** - на них девочка выглядит трупяком…
August 27, 2005 - 2:53 -
PNG сохрани “в палитре”, не 24-бита, а с ограничением. “Сделает” gif по многим статьям
September 9, 2005 - 14:01 -
http://www.vitolab.com/zavada/pngvsgif.html
что 23,1KB у Gif не куда не щемится против 13,8KB у Png. Ура товарищи png одержал сокрушительную победу в битве над предоставленным скриншотом, так как смог продемонстрировать меньший на 32% размер.
Поддерживая e-Angel и будучи убежденным приверженцем png над gif по крайней мере для обычных скриншотов….привел пример, в частности сохранил предоставленный скриншот окна в png при этом использовал палитру 256 цветов. В результате можно однозначно сказать (ктоб сомневался
ps. Дальнейшее уменьшение цветов в палитре png (128, 64) не принесло сколь значительного уменьшения размера.
September 20, 2005 - 2:27 -
Да PNG лучше по размеру и качеству чем GIF. Но PNG коряво поддерживается Internet Explorer! Именно: неполная поддержка формата (например, не поддерживается прозрачность) + заметные искажения в цветовой палитре при отображении (для 8 битных изображений).
Для скриншотов PNG пойдет, но если требуется стыковка нескольких изображений, он не применим.
August 17, 2006 - 15:59 -
Пользуюсь GIF, доволен