True-Color GIF

в 22:17, , рубрики: gif, lzw, truecolor, обработка изображений

Случайно наткнулся, был сильно удивлен:

True Color GIF image
(32697 colors, 184565 bytes)
image


Quantized GIF image
(256 colors, 54197 bytes)
True Color GIF

Dithered GIF image
(101 colors, 48069 bytes)
True Color GIF

Три изображения демонстрируют разницу между спектром в 32697 цветов и его квантизацией до 256 и дизерингом до 101. Все три рисунка в формате GIF. Все три отвечают спецификации формата GIF89A, в опубликованном Compuserve виде (и все три без компрессии).
Разница в том, что первое изображения было создано с помощью библиотеки ANGIF, непосредственно из буфера данных программы, создавшей true color спектр в 217x217px изображении.

Ошибочное мнение, что GIF имеет лимит в 256 цветов, вероятно восходит своими корнями к 80'м, когда видео карты, в своем большинстве, не поддерживали больше 256 цветов.
Обмен картинками становился все более популярным среди BBS и интернет пользователей, так что разнообразные viewer'ы были быстро написаны.

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

Все конвертеры в GIF использовали различные способу урезать количество цветов до 256. И все GIF состояли лишь из одного блока изображения, несмотря на то, что стандарт GIF некоим образом не ограничивает количество блоков.
Но так как не было смысла использовать больше 256 цветов, не было смыслв и использовать больше одного блока.

Сия практика укоренилась в IT культуреи в конце-концов все 'знали' что GIF не поддерживает больше 256 цветов.

На самом деле, программы, использовавшиеся для генерации GIF не поддерживали больше 1 блока, а следовательно и не могли справиться с более чем 256 цветами. Первое изображение показывает что GIF таки может быть более чем 256 цветным.

Но, чем больше цветов тем больше размер файла. Каждый блок изображения имеет свой хедер и таблицу цветов, в добавок к плохой компрессии. А в случае с ANGIF, компрессии нет совсем (из-за патентных ограничений LZW прикрутить нельзя).
Таким образом, >256 цветная гифка начинает очень быстро набирать вес. Если нет какой-то особой нужды (например, необходимо показать truecolor изображение в браузере непонимающим PNG), truecolor GIF не должна использоваться.

Использование более 256 цветов в GIF, является плохой идеей, в большинстве случаев, и должно быть ограничено определенными случаями, где не страшен огромный 'вес'.
Утверждение что формат изображений GIF ограничен 256 цветами ошибочно.

Автор: banderlog

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js