GIF (англ. Graphics Interchange Format — «формат для обмена изображениями») — растровый формат графических изображений. Способен хранить сжатые данные без потери качества в формате не более 256 цветов. Не зависящий от аппаратного обеспечения формат GIF был разработан в 1987 году (GIF87a) в фирме CompuServe[англ.] для передачи растровых изображений по сетям. В 1989-м формат был модифицирован (GIF89a): были добавлены поддержка прозрачности и анимации. GIF использует LZW-компрессию, что позволяет сжимать файлы, в которых много однородных заливок (логотипы, надписи, схемы). Долгое время GIF был одним из наиболее распространённых форматов в интернете.
Graphics Interchange Format | |
---|---|
![]() Вращающаяся Земля в формате GIF В местах с синим градиентом заметен эффект постеризации, возникающий из-за недостаточной глубины палитры | |
Расширение |
.gif |
MIME-тип | image/gif |
Сигнатура |
GIF87a и GIF89a |
Разработчик | CompuServe[англ.] |
Тип формата | растровая графика |
Расширен из | алгоритм Лемпеля — Зива — Велча |
![]() |
Произношение названия
правитьСоздатели формата произносили его название как «джиф» /dʒɪf/[1]. Тем не менее, в англоязычном мире широко используется и произношение «гиф» /gɪf/, основанное на том, что GIF — сокращение от Graphics Interchange Format[1]. Оба варианта произношения указаны как правильные словарями Oxford English Dictionary[2] и American Heritage Dictionary[3].
В русском языке файлы в формате GIF обычно называют «ги́фками».
Область применения
правитьИзображение в формате GIF хранится построчно, поддерживается только формат с индексированной палитрой цветов. Стандарт разрабатывался только для поддержки 256-цветовой палитры.
Один из цветов в палитре может быть объявлен «прозрачным». В этом случае в программах, которые поддерживают прозрачность GIF (например, большинство современных браузеров) сквозь пиксели, окрашенные «прозрачным» цветом, будет виден фон. «Полупрозрачность» пикселей (технология альфа-канала) не поддерживается.
Анимированные изображения
правитьФормат GIF поддерживает анимационные изображения. Они представляют собой последовательность из нескольких статичных кадров, а также информацию о том, сколько времени каждый кадр должен быть показан на экране. Анимацию можно сделать цикличной (англ. loop), тогда вслед за последним кадром начнётся воспроизведение первого кадра и т. д.
GIF-анимация может использовать прозрачность для того, чтобы не сохранять очередной кадр целиком, а только изменения относительно предыдущего.
Недокументированной, но поддерживаемой возможностью является сохранение большего количества цветов с помощью анимированного GIF с нулевой задержкой между кадрами. При этом преодолевается ограничение в 256 цветов: каждый кадр содержит свою палитру[уточнить][4].
Сжатие
правитьGIF использует формат сжатия LZW. Таким образом хорошо сжимаются изображения, строки которых имеют повторяющиеся участки. В особенности изображения, в которых много пикселей одного цвета по горизонтали[5].
Алгоритм сжатия LZW относится к форматам сжатия без потерь. Это означает, что восстановленные из GIF данные будут в точности соответствовать упакованным. Это верно только для 8-битных изображений с палитрой, для цветной фотографии потери будут обусловлены переводом её к 256 цветам.
Метод сжатия LZW разработан в 1978 году израильтянами Абрахамом Лемпелем и Якобом Зивом, а позднее доработан в США Терри Велчем. LZW сжимает данные путём поиска одинаковых последовательностей (они называются «фразы») во всём файле. Выявленные последовательности сохраняются в таблице, им присваиваются более короткие маркеры (ключи).
Метод LZW, так же, как и RLE, лучше действует на участках однородных, свободных от шума цветов, он действует гораздо лучше, чем RLE, при сжатии произвольных графических данных, но процесс кодирования и распаковки происходит медленнее.
Чересстрочный GIF
правитьФормат GIF допускает чересстрочное хранение данных. При этом строки разбиваются на группы, и меняется порядок хранения строк в файле. При загрузке изображение проявляется постепенно, в несколько проходов. Благодаря этому, имея только часть файла, можно увидеть изображение целиком, но с меньшим разрешением.
В чересстрочном GIF’е сначала записываются строки 1, 9, 17 и т. д. Таким образом, загрузив 1/8 данных, пользователь будет иметь представление о целом изображении. Вторым проходом следуют строки 5, 13, 21, разрешение изображения в браузере ещё вдвое увеличивается. Наконец, третий и четвёртый проход передают (3, 7, 11, 15, 19…) и (2, 4, 6, 8, …). Таким образом, задолго до окончания загрузки файла пользователь может понять, что внутри, и решить, стоит ли ждать полной загрузки изображения. Чересстрочная запись незначительно увеличивает размер файла, но это, как правило, оправдывается приобретаемым свойством.
Маска, используемая в GIF:
1 4 3 4 2 4 3 4 |
История
правитьСуществует две спецификации формата GIF — GIF 87a и GIF 89a.
Первая спецификация была создана в 1987 году компанией CompuServe для замены устаревшего формата RLE. GIF стал популярен в ходе развития интернета, так как позволял использовать более компактные (по размеру файла) по сравнению с другими форматами картинки на веб-страницах. Хотя к настоящему времени формат во многом устарел и для его замены создан формат PNG, он по-прежнему широко используется. GIF-формат востребован при создании так называемых синемаграфов.
Патенты
правитьЭтот раздел слишком короткий. |
GIF первоначально использовал проприетарные алгоритмы, однако срок действия патентов на них истёк. В США патент на алгоритм сжатия LZW, использующийся в GIF (патент № 4 558 302), истёк 20 июня 2003 года. Срок действия канадского патента завершился 7 июля 2004 года. Действие патента для Великобритании, Франции, Германии и Италии завершилось 18 июня 2004 года, а для Японии — 20 июня 2004 года.
Срок действия последнего патента на GIF истёк 11 августа 2006 года[6].
Альтернатива
правитьСуществует формат APNG, созданный в 2004 году, использующий 24-битные цвета и 8-битную полупрозрачность, работающий в браузере Mozilla Firefox начиная с 2007 года. Некоторые программы и расширения также поддерживают APNG.
См. также
правитьПримечания
править- ↑ 1 2 "Формат «ГИФ» оказался форматом «ДЖИФ»". Архивировано 7 июня 2013. Дата обращения: 22 мая 2013.
- ↑ Oxford English Dictionary . Oxford University Press. Дата обращения: 15 апреля 2007. Архивировано из оригинала 22 августа 2011 года.
- ↑ American Heritage Dictionary . Houghton-Mifflin. Дата обращения: 15 апреля 2007. Архивировано из оригинала 22 августа 2011 года.
- ↑ True-Color GIF / Хабрахабр . Дата обращения: 27 июня 2014. Архивировано 2 августа 2014 года.
- ↑ § 8. Простой секрет ГИФа . Дата обращения: 13 ноября 2010. Архивировано 13 декабря 2010 года.
- ↑ Информация из статьи «Почему на страницах сайта GNU нет файлов GIF» . Дата обращения: 17 июля 2013. Архивировано 20 июля 2006 года.