August 19, 2008 Интересная информация о формате gif

С развитием Интернета появились новые требования к форматам изображений. Первым из форматов был формат который отвечал требованиям пользователей стал *.gif. Отличительной особенностью формата является сохранение четкости границ изображений при компрессии чего нет у jpg.
GIF — формат хранения графических изображений (Graphics Interchange Format). Формат GIF способен хранить сжатые без потерь изображения в формате до 256 цветов с палитрой, и предназначен, в основном, для чертежей, графиков и прочих четких изображений от которых требуется маленький размер.
История
В 1977 году два израильских специалиста по теории информации, Яков Зив и Авраам Лемпель, написали универсальный алгоритм сжатия данных, который получил название LZ (Lempel-Ziv). Позже, в 1984 году, Терри Уэлч, сотрудник фирмы Unisуs, изменил этот алгоритм, немного улучшив степень сжатия. Этот метод стал называться LZW (Lempel-Ziv-Welch).

Через семь лет, в 1987 году, фирма CompuServe использовала алгоритм LZW при создании нового формата изображений, предназначенного специально для обмена графикой между компьютерами - GIF. С развитием интернета, когда потребность в компактных, быстро передающихся по сети изображениях многократно возросла, формат GIF стал необычайно популярен, и соперничать с ним сейчас может лишь один формат - JPEG (Joint Photographic Expert Group), ориентированный на изображения фотографического качества, в то время как GIF обладает такими недоступными для JPEG свойствами, как прозрачный фон и анимация. В 1989 году CompuServe выпустила расширенную версию формата - GIF89a. В нее и были добавлены эти новые возможности.

В 1995 году фирма Unisуs, владеющая патентом на метод LZW, неожиданно решила, что на нем можно заработать, и запретила распространение программ, использующих сжатие LZW, без лицензии. Теперь, чтобы продавать или даже бесплатно распространять программы, создающие или показывающие изображения GIF, нужно было платить за лицензию по меньшей мере 5000 долларов. Дело доходило до того, что деньги требовали даже с владельцев сайтов, где изображения GIF создавались динамически. Программисты стали искать обходные пути. Появились альтернативные форматы, среди которых самым известным стал PNG (Portable Network Graphic). По некоторым параметрам он превосходит GIF, а с появлением анимированной версии (MNG) он стал буквально наступать формату GIF на пятки. И не удивительно, ведь в нем тоже применен один из вариантов метода сжатия Лемпеля-Зива - LZ77.

К счастью, 20 июня 2003 года срок действия основного патента Unisуs на метод LZW в США истек, а патенты в Европе и Канаде были действительны лишь до 7 июля 2004 года, что, возможно, даст формату GIF шанс не потерять завоеванные им за прошлые годы позиции.

Краткие сведения:
Размер картинки - от 1х1 до 65535х65535 пикселов.
Число цветов палитры - от 2 до 256.
Каждый цвет палитры имеет глубину 24 бита/пиксел (выбор из 16 миллионов цветов).
Карта прозрачности - 1-битная (полупрозрачных цветов нет).
Число повторов анимации - от 1 до 65535, а также бесконечное.
Время показа одного кадра анимации - от 1/100 секунды до 655 секунд.
Число кадров анимации - неограниченно.
Число невидимых текстовых комментариев и размер каждого комментария - неограниченны.
Один из цветов в палитре может быть объявлен “прозрачным”. В этом случае, в програмах которые поддерживают прозрачность GIF (например, большинство современных браузеров) сквозь пиксели, окрашеные “прозрачным” цветом будет виден фон. “Полупрозрачность” пикселей (технология альфа-канала) не поддерживается.

Сжатие
Одною из особенностей алгоритма сжатия LZW есть то что он максимально сжимает размер изображения если оно имеет большое количество повторяющихся пикселей.
Алгоритм сжатия LZW относится к форматам сжатия без потерь.
Кроме того, в программе Adobe Photoshop появилась дополнительная возможность сохранять в GIF формат с потерями, которые проявляются как стохастический шум на картинке, сокращая при этом объем файла.
Принцип обжима заключается в том что он сжимает данные путем поиска одинаковых последовательностей (они называются фразы) во всем файле.

Выявленные последовательности сохраняются в таблице, им присваиваются более короткие маркеры (ключи). Так, если в изображении имеются наборы из розового, оранжевого и зеленого пикселов, повторяющиеся 50 раз, LZW выявляет это, присваивает данному набору отдельное число (например, 7) и затем сохраняет эти данные 50 раз в виде числа 7. Метод LZW, так же, как и RLE, лучше действует на участках однородных, свободных от шума цветов, он действует гораздо лучше, чем RLE, при сжатии произвольных графических данных, но процесс кодирования и распаковки происходит медленнее.

Черезстрочный GIF
Формат GIF допускает черезстрочное хранение данных. При этом строки разбиваются на группы, и меняется порядок хранения строк в файле. При загрузке изображение проявляется постепенно, в несколько проходов.


GIF позволяет записывать изображение “через строчку” (Interlaced), благодаря чему, имея только часть файла, можно увидеть изображение целиком, но с меньшим разрешением. Это достигается за счет записи, а затем подгрузки, сначала 1, 5, 10 и т.д. строчек пикселов и растягивания данных между ними, вторым проходом следуют 2, 6, 11 строчки, разрешение изображения в интернетовском браузере увеличивается. Таким образом, задолго до окончания загрузки файла пользователь может понять, что внутри и решить, стоит ли ждать, когда файл поднимется весь. Черезстрочная запись незначительно увеличивает размер файла, но это, как правило, оправдывается приобретаемым свойством.


Анимированные изображения

Формат GIF поддерживает анимационные изображения. Фрагменты представляют собой последовательности нескольких статичных кадров, а также информацию о том, сколько времени каждый кадр будет показан на экране. Анимация может быть закольцована, тогда после последнего кадра будет вновь показан первый и так далее.



Комментариев нет

Оставить комментарий | comments rss [?]

Содержание комментария




Safari ненавидит меня :)