что значит формат tiff

Формат TIF и TIFF – файл изображения с тегами – как открыть и конвертировать

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Файл с расширение TIF или TIFF является файлом размеченного изображения. Этот тип файла используется для высококачественной графики растрового типа. Формат поддерживает сжатие без потерь, при котором данные изображения не теряются в процессе сжатия. Это позволяет графическим художникам и фотографам архивировать свои высококачественные фотографии в управляемом объеме памяти без ущерба для качества.

TIFF и TIF могут использоваться взаимозаменяемо. TIFF – это аббревиатура для тегового формата файла изображения.

Файлы изображений GeoTIFF также используют расширение файла TIF. Это файлы изображений, которые хранят GPS-координаты в виде метаданных вместе с файлом, используя расширяемые функции формата TIFF.

Некоторые приложения для сканирования, отправки факсов и оптического распознавания символов (OCR) также используют файлы TIF.

Открытие TIFF-файла

Для просмотра файла TIFF можно использовать приложение «Просмотр фотографий» Windows или «Фотографии», входящие в состав системы Windows. Однако, эти приложения не предоставляют средства для редактирования этих файлов. На Mac открыть файлы TIFF может приложение Preview.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Доступны также сторонние приложения для просмотра и редактирования файлов TIFF, особенно в случае многостраничных файлов TIFF. Популярные приложения включают GraphicConverter, ACDSee, ColorStrokes и XnView.

Редактирование файлов TIFF

Один из вариантов редактирования файла TIFF – использовать один из приведенных ниже инструментов преобразования. Для этого не требуется устанавливать полноценную программу для редактирования фотографий, которая специально поддерживает формат TIFF, но она меняет формат файла с TIFF.

Если вы хотите сохранить формат TIFF и отредактировать его, вы можете использовать бесплатную программу для редактирования фотографий GIMP. Некоторые другие популярные фото и графические инструменты также могут работать с файлами TIFF, такие как Adobe Photoshop, но они не доступны бесплатно.

Если вы работаете с файлом изображения GeoTIFF, вы можете открыть файл с помощью такой программы, как Geosoft Oasis montaj, ESRI ArcGIS Desktop или GDAL.

Как конвертировать файл TIFF

Если на вашем компьютере есть редактор изображений или программа просмотра, которая поддерживает файлы TIFF, вы можете открыть файл в этой программе, а затем сохранить файл TIFF в другом формате изображения, например, JPG. Обычно это можно сделать через меню «Файл» программы, например «Файл» → «Сохранить как», и выбрать другой формат изображения.

Существуют онлайн-конвертеры файлов, а также бесплатные программы для конвертации изображений, которые вы можете использовать. В некоторых случаях бесплатные конвертеры документов в Интернете также могут преобразовывать файл TIFF.

Например, CoolUtils.com и Zamzar – это два бесплатных онлайн-конвертера TIFF, которые могут сохранять файлы TIFF в формате JPG, GIF, PNG, ICO, TGA и даже PDF. Файлы изображений GeoTIFF обычно можно конвертировать так же, как и обычный файл TIF / TIFF.

При преобразовании файла изображения GeoTIFF метаданные GPS могут быть потеряны.

Дополнительная информация о формате TIF / TIFF

Формат TIFF был разработан компанией Aldus Corporation для настольных издательских целей. Версия 1 стандарта была выпущена в 1986 году. TIFF стал международным стандартом в 1993 году. Теперь Adobe владеет авторскими правами на формат TIF.

Источник

Что такое формат tiff. Где он используется и как с ним работать

Что такое формат tiff? В статье будет дано определение этого термина. Также рассмотрим программы, которые открывают файлы формата Tiff и их редактируют.

Что такое формат tiff, где его применяют

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiffЗдравствуйте, друзья! При работе с изображениями, возникает необходимость в выборе формата. Одним из лучших форматов для их редактирования и создания является Tiff.

Что это за формат такой? С его помощью можно хранить графические изображения без потери качества. В данный момент он популярен в Интернете, его может использовать любой пользователь. Дата создания данного формата 1986 год.

Где можно применять формат Tифф? В основном при сканировании документов, в полиграфии, если нужно распознать текст, а так же в графических программах, которые с ним работают. Данный формат доступен для работы в OC Windows и Mac OS X.

Далее поработаем с программами, которые открывают файлы формата tiff и его редактируют.

Программы для открытия Tiff файлов

Для открытия файлов в формате Tiff, требуются специальные программы. С их помощью вы сможете посмотреть картинки, которые хранятся в этом формате:

Более подробный список о программах вы можете взять здесь «filesreview.com/ru/open/tiff».

Далее откроем формат Tiff в стандартной программе Виндовс.

Итак, нажимаем по картинке правой кнопкой мыши, выбираем из меню кнопку «Открыть с помощью» (скрин 1).

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Затем кликаем в меню программы – «Просмотр фотографий Windows». После чего картинка будет открыта для просмотра (скрин 2).

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

В следующем разделе статьи, отредактируем изображение.

Редактирование формата Тифф, какие используем программы

Для редактирования файлов формата Tiff подойдут вышеперечисленные программы, кроме сервиса. Также есть другие утилиты:

Итак, чтобы отредактировать изображение в формате Tiff, давайте запустим на компьютере программу Artweaver. Сначала ее нужно установить. Далее нажимаем кнопку «File» и «Open», чтобы добавить картинку с компьютера в программу (скрин 3).

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Откроется панель управления с картинкой. С ее помощью вы сможете нарисовать что-то на изображении, изменить размер, добавить цветовую гамму. После редактирования нажмите «File» далее «Save as» и сохраните картинку на компьютере.

Программы для создания Tiff файлов

Любой пользователь может создать картинку tiff в таких программах:

Теперь, создадим формат tiff на примере программы Adobe Photoshop. Запустите эту утилиту на компьютере с любой картинкой.

Далее нажмите кнопку «Файл» затем «Сохранить как» и выберите при сохранении картинки формат tiff из списка. После чего она будет сохранена на компьютере в Tiff формате. Также вы можете объединить несколько картинок в формат tiff. Для этого используйте программу «TIFFCombine».

Конвертация Tiff в Jpg, как это сделать онлайн и в программах

В Интернете есть онлайн-конвертеры, которые умеют преобразовывать формат tiff в jpg. Вот самые лучшие:

Добавляйте картинку tiff на сервис конвертера, через кнопку «Выбрать изображения» (скрин 4).

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Далее нажимаете кнопку «Преобразовать в Jpg» или конвертировать. После чего кликните «Загрузить преобразованные изображения», чтобы они скачались на компьютер.

Что касается конвертации изображений в программах, это делается так же, как и на сервисах. Только в программе мы выбираем форматы, во время сохранения картинок. Выше говорили о том, как это сделать.

Список программ для конвертации файлов:

Конвертация Tiff в PDF

Формат tiff вы можете конвертировать в PDF, если работаете с документами. Он пригодится в том случае, когда нужна картинка для ПДФ книги или статьи.

Есть несколько способов конвертации: с помощью онлайн-конвертеров и этой программы «tiff-to-pdf-converter.com/#product».

В качестве примера рассмотрим первый способ преобразования файлов. Заходите на этот онлайн-конвертер «tiff2pdf.com/ru/» и нажимаете кнопку «Загрузить» (скрин 5).

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Загружаете с компьютера изображение, которое нужно конвертировать. Ожидайте завершения конвертации (скрин 7).

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

После нее нажмите кнопку «Общий файл», чтобы загрузить формат файла в ПДФ.

Преимущества формата Тифф и недостатки

Итак, ранее мы рассматривали теорию о формате Тифф. Мы поработали с этим форматом в программах. А теперь, рассмотрим его преимущества и недостатки.

Начнем пожалуй с плюсов данного формата:

Несмотря на минусы, он используется многими профессионалами для создания и редактирования фото.

Можно ли работать с форматом на Андроиде

Есть ли возможность работать с данным форматом на Андроиде? Да, только через приложения, которые можно скачать из Плей Маркета или в Гугл Плей. Небольшой список этих приложений:

Как работать в программах? Сначала их находите в Плей Маркете и устанавливаете на телефон.

Запускаете приложение и выбираете с телефона картинку. После чего, ее просматриваете.

Заключение

В данной статье рассмотрели, как работать с форматом Тифф. Открыли его в программах, редактировали и конвертировали. Теперь, вы знаете, как с ним работать. С его помощью вы сделаете качественное фото и не будете его постоянно обрабатывать.

Источник

Что такое Формат файла TIFF? В чем разница между TIFF и другими форматами фотографий? Чтобы воспользоваться преимуществами файлов TIFF, вам следует заранее узнать больше о формате файла. Вот подробное сравнение TIFF, JPEG, PNG, GIF и RAW.

Как только вы получите информацию о TIFF, вы должны найти лучшую программу просмотра и управления TIFF для легкого просмотра, преобразования и управления файлами. Просто прочтите статью и получите желаемую информацию соответственно.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Часть 1. Определение формата файла TIFF

Формат TIFF используется для сохранения фотографических изображений с высоким разрешением. Вы обнаружите, что изображения TIFF будут такими, как показано на исходных веб-сайтах, что не имеет уменьшения Качество изображения. В результате размер изображения также будет больше, чем у JPEG или других форматов изображений. Кроме того, файлы TIFF имеют глубину 16 бит и канал 8 бит, а многочисленные многоуровневые файлы могут быть сохранены в едином формате TIFF. Однако вам необходимо установить Программа просмотра TIFF сначала перед открытием файлов TIFF. TIFF сохраняет высокое качество изображения для печати изображений. Многие фотографы предпочтут TIFF, а не популярный JPEG для редактирования фотографий. Поэтому в первом раунде печати TIFF VS JPEG TIFF относительно лучше, чем JPEG. Профессионалы всегда используют TIFF для публикации или записи объектов в деталях.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Часть 2: Сравнение TIFF, JPEG, PNG, GIF и RAW

В чем должны отличаться TIFF от других форматов фотографий? Хотя форматы изображений похожи друг на друга, вам лучше понять их разницу. Вы можете не задумываться о том, в каком формате изображения сохранять, а после редактирования изображения. Одни и те же изображения в разных форматах изображений могут быть размытыми или нет. Более того, вы когда-нибудь замечали причину одного и того же изображения в разных расширениях формата изображения? У каждого формата фотографии есть свои репрезентативные преимущества, которые вы должны осознавать, чтобы подать заявку.

TIFF VS JPEG

1. Практически все цифровые фотоаппараты могут сохранять снимки в формате JPEG. Однако форматы изображений TIFF не так популярны, как JPEG, из-за того, что их поддерживает такое большое количество оборудования для цифровой съемки.

2. TIFF может сохранять данные изображения со сжатием без потерь, в то время как алгоритм сжатия JPEG ухудшает качество изображения. Следовательно, можно определить лучшее качество TIFF или JPEG.

3. Файлы JPEG не позволяют открывать и сохранять одни и те же изображения JPEG несколько раз. Из-за сжатия с потерями каждое редактирование снижает качество изображения. Как следствие, TIFF больше подходит для редактирования изображений, чем TIFF и JPEG.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

TIFF VS PNG

TIFF VS RAW

RAW файлы имеют более высокое качество изображения, чем изображения TIFF, не говоря уже о JPEG. Вы можете получить больше оттенков цветов и лучшее представление функций изображения, таких как Баланс белого, выдержка и так далее. Вы не можете сжимать файлы RAW, RAW без потерь, как и TIFF, поэтому файлы RAW имеют самые большие размеры изображения среди TIFF VS JPEG VS RAW. Некоторые фотографы также выбирают изображения RAW в качестве цифрового негатива для хранения исходных изображений. Один из недостатков RAW аналогичен файлам TIFF. RAW и TIFF недостаточно распространены, поэтому не все редакторы изображений могут открывать RAW напрямую. Кроме того, благодаря фантастическому качеству пленки формата RAW, RAW быстро заполнит карту памяти цифровой камеры.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Часть 3: Как с легкостью просматривать и конвертировать файлы TIFF

Когда вы получите всю информацию о TIFF и других форматах фотографий, какой должен быть лучший просмотрщик фотографий для файлов TIFF? Даже конвертировать другие форматы фотографий в TIFF? WidsMob Viewer Pro должен быть лучшей программой просмотра и конвертера TIFF, на которую вы должны обратить внимание. Это универсальная программа для просмотра мультимедиа, с помощью которой вы можете легко просматривать, конвертировать и управлять фотографиями и видео.

1. Импортируйте один файл в программу для просмотра всех медиафайлов в одной папке.

2. Просматривайте JPEG, PNG, TIFF, RAW, GIF и другие фото / видео форматы.

3. Конвертируйте JPEG, RAW и другие файлы фотографий в формат TIFF или наоборот.

4. Применять Photo Effectsредактировать фотографии и даже управлять фотографиями.

Шаг 1. Загрузите и установите WidsMob Viewer Pro, вы можете запустить программу и нажать кнопку «Импорт», чтобы добавить фотографии и видео в программу просмотра фотографий, включая фотографии в формате TIFF. Он поддерживает большинство форматов фото и видео.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Шаг 2: После этого вы можете настроить различные параметры или применить некоторые предустановки для фотографий TIFF. Кроме того, вы также можете воспользоваться режимом эскизов, чтобы удалить некоторые ненужные файлы или создать слайд-шоу с помощью программы.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Шаг 3: Если вы хотите преобразовать RAW или JPEG в TIFF, вы можете просто щелкнуть «Файл»> «Сохранить как…», чтобы сохранить фотографии в TIFF. Более того, вы также можете конвертировать все фотографии в формат TIFF с высоким качеством в пакетном процессе, выбрав «Редактировать»> «Пакетный»> «Пакетное преобразование…».

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Заключение

Эта статья представляет собой полное руководство по TIFF, вы можете узнать больше о формате файла TIFF, различиях между TIFF и другими форматами файлов, лучшем средстве просмотра TIFF, менеджере и Конвертер TIFF в JPG. Если у вас есть какие-либо вопросы о TIFF, вы можете поделиться более подробной информацией в комментарии.

Источник

Изображения: форматы и сжатие (2/3)

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

И снова здравствуйте! После перерыва в месяц продолжаем экскурсию по форматам изображений и алгоритмам сжатия. Где мы остановились? Ах, да, восьмидесятые годы.

TIFF: Собери сам

На дворе 1986 год. Форматы PCX и TGA начинают обеспечивать зрелищами счастливых обладателей обычных десктопов. Но ведь домашними компьютерами дело не ограничивается, есть ещё предприятия и университеты. А у них уж мощные машины и сканеры, а в среде сканеров… бардак и безобразие. Задача сканера — перевести изображение на бумаги в цифровой формат, а этот формат был у каждого производителя свой.

Представьте на минутку, Вы делаете скан какого-нибудь Важного Чертежа, несете его в типографию, а там говорят, что прочитать его не могут. Придется перегонять его в другой формат, а лучше вообще просто принести фотокопию для надежности. Обидно.

Решением этой проблемы и занялась компания Aldus, в итоге представив формат TIFF. Все сканы теперь были в одном формате, да ещё и «из коробки» могли в одном файле содержать несколько страниц документа. Плюс, вместе с растровыми данными стало возможно можно хранить метаинформацию: название документа, автора, дату сканирования, модель сканера — да почти все, что угодно.

Формат получился настолько расширяемым, что он живет и здравствует и по сей день. А все из-за того, что Aldus переосмыслили само понятие графического формата. Вместо фиксированного пласта информации используются относительно небольшие структуры, из которых можно собрать файл. Известен автор — вставялем структуру, неизвестен — просто удаляем. Использование таких «меток», собственно, и обыгрывалось в самом названии формата: «Tagged Image File Format».

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

Формат для обмена картинками

Новый формат TIFF, обладая шикарными преимуществами, годился только для печатного дела: первая ревизия предусматривала только черно-белые изображения без полутонов. А в 1987 году уже появились видеокарты VGA с палитрой до умопомрачительных 256 цветов. TGA и PCX (с допиливанием) позволяли хранить пресловутые 256 цветов, но размер файла увеличивался вдвое, а то и больше — простенький RLE на большой палитре работал значительно хуже.

Но как можно выйти из такого положения? Можно по-технарски, вырезать лишние поля, не ставить ненужные, и использовать мощный алгоритм сжатия. Можно использовать гуманитарную смекалку, и что-то похожее на картинку показывать ещё до полной загрузки, и тогда пользователю субъективно будет казаться, что всё грузится быстрее.

Оба эти подхода и объединились в формате GIF («Graphics Interchange Format»). А теперь подробнее.

GIF: Структура

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

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Заголовок

Первые шесть байт файла — заголовок. Он состоит из сигнатуры « GIF » и версии: « 87a » или « 89a », где 87 и 89 — года, в которых они были разработаны. Версия 89а расширяет 87а и полностью с ней обратно совместима. Спецификация предписывает по возможности использовать 87a, но лично я бы не советовал — браузеры кривовато работают с 87a. В качестве демонстрации немного забегу вперед и покажу фокус:

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Что изображено на картинке? Если один квадрат, то у Вас Firefox или Chrome. Если два, то IE. Если три, то Opera (которая ещё на Presto).

Блок описания логического экрана

Логический экран — это просто прямоугольная область, выделенная под отображение графики, по смыслу что-то вроде порта просмотра. GIF может содержать несколько изображений, и они могут быть меньше по размеру, чем логический экран. Более того, в GIF87a эти изображения не являются кадрами анимации, а скорее слоями.

Иными словами, если нужно нарисовать на весь экран 800×600 посередине котёнка, а в углу цветочек, то можно вместо одного огромного «сведённого» изображения, хранить котёнка и цветочек с их смещениями относительно логического экрана.

Небольшой дисклеймер. Несмотря на то, что на интуитивном уровне сама гифка (арргх… ладно, «джифка») — это картинка, которая показывается на экране, мы будем придерживаться терминологии, указанной в спецификации: «логический экран» — это размер всей GIF’ки целиком, а «изображение» — это слой/кадр.

Итак, блок описания логического экрана всегда занимает 7 байт. Первыми идут размеры — два байта на ширину и два байта на высоту (UInt16LE). Получается, максимальный размер — 65535×65535 пикселей. В спецификации не указано, что ширина или высота обязаны быть больше нуля, но осознание этого не дает нам ничего, кроме разве что курьезности.

Тут следет сделать важное замечание: если файл GIF версии 87a, Firefox и Chrome всегда игнорируют это поле, и используют в качестве размера логического экрана размер первого изображения. Opera и IE поступают так же только в случае, если координаты первого изображения нулевые.

Далее следует один байт, содержащий в себе несколько полей. Седьмой бит (старший) указывает, есть ли глобальная палитра, а биты с 0 по 2 определяют её размер (от 2 1 до 2 8 ). Оставшиеся 4 бита за давностью лет смысл потеряли.

Следующее поле — один байт, указывающий на цвет фона в глобальной палитре (если она используется). Этим цветом должны быть залиты все области логического экрана, не занятые ни одним из изображений. В теории. На практике же это требование выполняют только Photoshop и IrfanView. Распространенные браузеры незанятое место оставляют прозрачным. А у Оперы 12 есть интересный бажок: если GIF версии 87a, и в нем содержится более одного изображения, это пустое место заливается чёрным.

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

Глобальная палитра

Если флажок глобальной палитры выставлен в 0, её просто нет. А если есть, то размер всего блока в байтах равен количеству цветов в палитре помножить на три. Принцип заполнения: RGB RGB RGB…, точно так же, как в PCX.

Глобальная палитра применяется для каждого изображения в файле, если у него нет локальной палитры. А если нет ни той, ни другой? Спека по этому поводу говорит «эмм… ну не знаю, разберитесь как-нибудь», и предлагает использовать стандартную палитру устройства, но желательно, чтобы первый цвет в ней был черным, а второй белым. В 2013 году все уже забыли, что такое стандартная палитра устройства, и этот фокус чаще всего не проходит.

На этом месте заканчиваются обязательные, фиксированные поля формата, и начинаются опциональные.

Изображение

Тут хранятся сами растровые данные и их расположение относительно логического экрана. В файле может быть любое количество изображений — от нуля до бесконечности.

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

Далее следует четыре двухбайтовых целых: две координаты положения левого верхнего края изображения относительно логического экрана и ширина/высота самого изображения. По спецификации правый нижний край изображения не должен выходить за пределы логического экрана.

Далее байт с упакованными полями. Старший бит: есть ли у изображения локальная палитра, три младших: какого размера, примерно так же, как и в описании логического экрана. 6-й бит отвечает за порядок сканирования: построчное (прогрессивное) или чересстрочное (интерлейс). Описывать, как выглядит загрузка чересстрочного изображения, думаю, не надо, все тыщу раз это видели, но на всякий случай, вот шикарная статья с картинками.

После этого, как и в описании логического экрана, следует непосредственно локальная палитра, если она есть.

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

Следующий байт — размер кодов LZW. В потоке сжатых данных LZW длина изначального словаря не указывается, и её нужно указывать отдельно. Но к этому мы ещё вернемся.

Упаковка данных произвольной длины

Потом в изображении идут непосредственно сжатые LZW данные. Но хранятся они не простым шматком данных с указанной длиной, а упаковываются в блоки. (Видимо, чтобы избежать при кодировании произвольного IO и излишнего потребления памяти.) Принцип упаковки: один байт длины блока, n байтов данных, один байт длины блока, n байтов данных, и так далее, пока данные не кончатся. А на окончание данных указывает блок длиной 0.

Например, известную панграмму про шуструю лисицу можно упаковать вот так:

\x2B The quick brown fox jumps over the lazy dog \x00

А можно и по-другому, потратим на один байт больше, но ошибкой это считаться не будет:

\x20 The quick brown fox jumps over t \x0B he lazy dog \x00

Вообще, можно вообще хоть по одному байту на блок использовать, тогда упакованные данные будут вдвое больше, чем исходные. А из буханки белого (или черного) хлеба можно сделать троллейбус.

Расширения

Внимательный читатель уже, наверное, заметил что ни в описании изображения, ни в описании логического экрана, пока не было собственно «плюшек» GIF: прозрачности и анимации. Это потому что они были введены в версии 89a в виде блока расширения.

Всего типов блоков расширения четыре: расширение управления графикой, текстовое расширение, комментарий и расширение приложения. Все блоки опциональны, что делает формат GIF89a обратно совместимым с 87a.

Расширение управления графикой

Дальнейшие поля упакованы так же, как и сырые данные изображения — длина блока, n байт, длина блока, n байт. Иное дело, что по спецификации это всегда один блок длиной 4 байта. Зачем вообще надо было разбивать на блоки — даже разбираться не хочется, видимо, так было проще.

Так или иначе, первый из этих четырех байтов — набор битовых полей. Три старших бита зарезервированы. Далее три бита, образуя целое от 0 до 7, указывают на то, что следует сделать с кадром перед тем, как показать следующий. 0: ничего (не определено); 1: ничего (оставить все как есть); 2: очистить экран; 3: вернуть то, что было до этого кадра; значения 4-7 зарезервированы.

Бит 1 — самый интересный с исторической точки зрения. Ждать ли от пльзователя «any key» для того, чтобы показать кадр, следующий за этим. Да-да, на основе GIF можно было сделать не только слайдшоу, но и вполне себе презентацию. Сейчас эту фича фактически не поддерживается.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Младший бит указывает, считается ли какой-нибудь из цветов палитры прозрачным.

Два следующих байта образуют UInt16, указывающий, сколько сотых секунды нужно подождать перед показом следующего кадра. Таким образом, задержка может быть в интервале от 0 до 655,35 секунд.

Наконец, последний байт — индекс «прозрачного» цвета в палитре (если выше было указано, что он есть).

Расширение приложения

Одно такое расширение было придумано браузером Netscape Navigator. Дело в том, что сам формат GIF не предусматривает цикличности анимации, а при помощи проприетарного расширения « NETSCAPE2.0 » можно указать, сколько раз прокручивать анимацию: от 1 до 65535 раз, или бесконечно.

Сейчас эту конструкцию понимают все браузеры, а если её нет, считается, что анимация не зациклена.

Остальные расширения приложений в целях уменьшения размеров файла можно смело выкашивать.

Текстовое расширение

Это расширение нужно для того, чтобы рисовать на логическом экране произвольный текст. Указываем размеры глифов в пикселях, размер текстового поля, положение относительно логического экрана, и вуаля! Можно не просто слайдшоу или презентацию, а вообще визуальную новеллу сделать.

Но увы, реальной поддержки этого расширения нет. В природе этот вид не встречается, из красной книги вычеркнут. А мы с Вами идем дальше.

Комментарий

Замыкающий блок

Замыкающий блок («trailer») состоит из одного-единственного байта 0x3B (« ; »). Он находится в конце файла и означает, что в этом месте, собственно, конец файла. Всё, что находится после него, считается мусором и игнорируется.

Эта конструкция по спецификации является обязательной, не забывайте про нее.

Фух! Кажется, по структуре всё. Честно сказать, я сам ожидал, что она будет проще. Если вдруг возникли какие-то недопонимания, из-за стиля изложения или перевода терминов, можно ознакомиться с официальной спецификацией GIF89a. Также очень советую программку GIF opener, ей сто лет в обед, но лучше для низкоуровневого редактирования gif я пока ничего не видел.

Алгоритм Лемпеля-Зива-Велча

Теперь, когда мы осмотрели окрестности, окнунемся в самое сердце GIF — алгоритм Лемпеля-Зива-Велча, он же LZW. Прежде всего стоит отметить, что этот алгоритм словарный. Давайте посмотрим, что это значит.

Сжатие со словарем, простой пример

Словарное сжатие — прямое развитие идеи RLE. В общем и целом принцип такой: ищем повторяющиеся значения и заносим их в словарь, а затем в нужном месте делаем указание на элемент словаря. Таким образом, сжимаются не только одинаковые значения подряд, но и группы разных значений, между которыми может быть определенное расстояние.

Для примера возьмем такую строку:

АБРАКАДАБРА С ХАБРАХАБРА

Видно, что она прямо-таки нашпигована повторяющимися « АБРА ». Выберем какой-нибудь неиспользуемый символ, например, « 1 » и скажем, что любой такой встреченный символ следует заменить на « АБРА ». В результате получим строку « 1КАД1 С Х1Х1 », вдвое меньшую. А чтобы кто-то кроме нас мог понять, что эта шифровка зачит, нужно не забыть записать сам словарь, т.е., на что именно нужно заменить « 1 ». Результатом станет что-то вроде:

1=АБРА; 1КАД1 С Х1Х1

Можно пойти чуть дальше, и заменить ещё и « Х1 » на « 2 »:

1=АБРА,2=Х1; 1КАД1 С 22

Хм… вроде бы мы и заменили больше повторяющихся значений, а строка получилась длиннее. Увы, словарь тоже нужно хранить, и чем он больше, тем больше накладные расходы.

Разумеется, с этим пытаются как-то бороться. Например, алгоритм LZ77 формально считается словарным, но в качестве словаря там выступают сами декодированные данные — декодеру дается команда вернуться на n байт назад и скопировать оттуда m байт. Подробнее о LZ77 можно почитать в этой статье за авторством уважаемого horror_x.

В LZW, «потомке» LZ77, записи словаря также появляются по мере декодирования, но это уже не просто копирование со смещением, а полноценный словарь.

LZW: общий принцип кодирования

Для примера возьмем ту же самую строку, « АБРАКАДАБРА С ХАБРАХАБРА ».

Теперь нужно выбрать кодировку этой строки. Использование многобайтовой кодировки сильно усложнит пример, так кто UTF-8 отложим напотом. Прах семибитных кодировок, таких как КОИ-7 Н1 (ГОСТ 13052-74), тревожить не будем. Выберем какую-нибудь восьмибитную, например всеми любимую CP866.

Таким образом, изначальный словарь будет идентичен CP866:

Этот словарь уже заполнен, и добавить в него ничего не получится. Но в LZW в словарь всегда должна быть возможность добавить новую запись. Как только предыдущей длины кодов начинает для этого не хватать, её нужно увеличить:

Теперь для указания индекса словаря используется семь бит (это и есть «длина кодов»). Кстати, когда говорят, что-то вроде «LZW с длиной кодов 8», имеется в виду длина кодов изначального словаря, начинаем кодирование же мы с длиной кодов на единицу большей. Немного запутанно, но так уж есть.

Следующая буква — «Б». Аналогично вписываем её, но теперь вместе с этим добавляем в словарь новую запись: предыдущая закодированная строка плюс первый символ этой. Прошлая строка была «А», эта — «Б», и её первый символ, соответственно «Б».

Дальше можно было бы точно так же записать «А», но у нас же уже есть в словаре «АБ»! Используем его. И не забываем, что в новую запись словаря идет только первая буква.

Теперь джекпот! У нас в словаре уже есть «АБР», и мы можем вставить всето одной буквы сразу три. Выбирать из словаря наиболее длинную подходящую строку кажется чертовски хорошей идеей.

Теперь все полученные биты (из второй колонки) выписываем в строчку, группируем по 8 байт и готово. Вместо 24×8 = 192 бит получили 18×9 = 162 бита. 15% экономии, при том, что RLE тут вообще ни одного бита не убрал бы.

Жадность — это скверно

В описании алгоритма указывается, что при кодировании нужно выбирать из словаря строку наибольшей длины. Но как учит песенка про мальчика Билли из «Острова Сокровищ», жадность не самый оптимальный вариант. Возьмем предыдущий пример и откатимся чуть-чуть назад:

В этом месте мы молжем пойти против жадности и выбрать из словаря не « ХА » более короткую строку, « Х »:

Теперь длина закодированного сообщения 17×9 = 153 бита, разница около 5%. Но это мы вручную файл собирали, а как алгоритмически определить, не идти на поводу у жадности? В лоб не получится: сложность прямого перебора экспоненциальная. Так что, как говорится во всяких умных книжках, я оставлю это на рассмотрение читателю. Может, ещё премию Тьюринга получите.

Сжатие одинаковых значений

Попробуем теперь сжать примитивную строку, состоящую только из букв «А».

Как-то не очень эффективно, словарь забивается дубликатами. Но на этот случай в LZW предусмотрен хитрый приём. Во второй строке мы добавляем в словарь « АА », хотя эта запись пригодилась бы нам прямо на месте. Собственно, так мы и можем сделать:

Для определения новой записи имеет значение только первый кодируемый символ. Его мы точно знаем, это « А ». Поэтому мы сначала добавляем новую запись в словарь, а потом ищем в нем строку с наибольшей длиной.

Этот подход работает не только с одинаковыми буквами, но и с более длинными последовательностями:

Вы можете удивиться, а как же декодер поведет себя, если ему скажут: «теперь вставь седьмую запись», а у него их в словаре всего шесть. Ничего страшного, он таким штукам обучен и поймет без проблем.

LZW в GIF

Ну что же, на кошках потренировались, теперь переходим к реальным действиями. Создадим GIF с вот таким нехитрым изображением.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Для удобства увеличено в 8 раз, настоящие размеры: 11×6 пикселей, высота каждой полосы 2 пикселя.

А чей это флаг? Ничей. Просто три горизонтальные полосы. Но если удобнее, можно считать это флагом Суверенной Цветовой Модели RGB.

Размер палитры выбираем точно так же, как в PCX,— как можно меньше. В изображении всего три цвета, так что будем использовать палитру из 4 цветов. Напомню, что для LZW порядок цветов в палитре значения не имеет, только длина кодов. Изображение в файле будет одно, так что нам без разницы, локальная это будет палитра, или глобальная. Пусть будет глобальной.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Интерлейс использовать не будем, пиксели будем выбирать просто слева направо, сверху вниз. Размер логического экрана 11×6, размер изображения такой же, размер кодов 2 бита, поехали!

На самом деле, конечно, LZW понятия не имеет о конкретном цвете, и кодирует только его номер в палитре. Но дальше будет столько цифр в листинге, что мы рискуем в них запутаться, поэтому отмечу их как «R», «G» и «B».

Это еще не все. В словарь добавляем специальное значение «Clear Code». Оно не кодирует ничего, только инструктирует декодер сбросить словарь до начального состояния.

Итого, изначальный словарь у нас выглядит так:

Зачем этот код нужен в начале потока, неизвестно. То ли это обход какого-то бага в первой имплементации смотрелки, которую уже успели раздать клиентам. То ли в прототипе спецификации так определялась исходная длина кодов (количество битов-нулей как раз ей равна). То ли просто паранойя.

Далее код первого пикселя. Если в PCX мы четыре пикселя с возможным значением от 0 до 3 склеивали в один байт, то в GIF этого делать не нужно.

Далее описанный выше приём: используем запись словаря одновременно с её добавлением.

Словарь заполнился, и его нужно увеличить на один бит. Следующая запись будет занимать уже 4 бита.

Закодировано 10 пикселей, а в одном сканлайне 11. Но в GIF нет ограничений, связанных со сканлайнами — все пиксели «вытягиваются в строчку», и кодируются как одна большая последовательность. Если бы мы использовали интерлейс, то следующей взяли бы синюю полосу, что, разумеется, на сжатии положительно бы не сказалось.

21 красный пиксель закодирован, остался один. На этот раз пиксель кодируется четырьмя битами. Несмотря на то, что запись « RR » в словаре уже есть, добавляем её еще раз.

Продолжаем так же, с зелёными пикселями.

Снова увеличиваем длину кодов.

Наконец, указываем маркер конца данных.

Теперь полученные биты пакуем по восемь штук в байт, от младшего к старшему. Из последовательности (100) (000) (110) (111) (1000) … получим:

А к полученным 13 байтам не забываем дописать в начале длину блока ( 0x0D = 13) и 0x00 в конце, чтобы показать, что изображение закончено.

И вот, наконец, что получилось: что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff. Кажется, работает.

Сброс словаря

Если присмотреться, то окажется, что из трех одинаковых по размеру полос на красную пришлось 25 бит, на зеленую — 31, а на синюю уже 35. А как же, пришлось увеличивать размер кодов, чтобы работать с разрастающимся словарем.

Но к моменту, когда мы начинаем кодировать синюю полосу, записи с «красными» значениями становятся бесполезными — они больше не встретятся. В этом случае нам поможет тот самый код очистки словаря, который теперь будет использоваться по назначению, а не просто в ритуальных целях.

Вернемся к концу красной полосы:

Сбросим словарь, и продолжим кодирование.

Получилось 90 бит, а суммарный размер файла уменьшился с 52 до 51 байта, при том, что остался читаемым: что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff. А вот, кстати, gifsicle, тулза номер один для сжатия GIF, так сжать уже не может.

Кстати, можно заметить, что все три полосы закодировались почти одинаково. Для LZW нет разницы между « 0x00 22 раза» и « 0x02 22 раза», и расположение цветов в палитре можно выбрать любое.

Нестандарт

Немного маньячества. Код сброса словаря («CC») в самом начале потока ни на что не влияет. А код конца потока («EoI»), в общем-то, и не нужен — если в хвосте байта и останутся какие-то данные, то они уже будут за пределами изображения. Вырезав их, мы можем ужать картинку ещё больше, до 50 байт, и она будет нормально отображаться в браузерах: что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff.

Если Вы счастливый обладатель браузера, в котором она не показывается, отпишитесь, пожалуйста, в комментах.

Но есть одно но, и это «но» принципиальное: это нарушение спецификации. Стоит ли этого экономия в один байт — решайте сами.

Анимированный GIF

На сегодняшний день, пожалуй, это единственное применение GIF. Для неанимированных иконок и иллюстраций PNG гораздо круче. Но, к сожалению, форматы анимированных изображений на основе PNG «не взлетели»: APNG не является стандартом W3C, и поддерживается только половиной браузеров; а стандартный W3C’шный MNG вообще мертворожденный. Это дает возможность старичку GIF еще немного пожить.

Композиция

Тут следует начать с главного: если на логическом экране 800×600 с новым кадром поменялся только квадратик 2×2, то имеет смысл сделать кадр размером 2×2, а не 800×600. Думаю, это логично. Но, увы, не все программы обработки изображений заморачиваются таким анализом, и львиная доля оптимизации GIF приходится именно на исправление этой тривиальной ошибки.

А теперь к деталям, а именно к полю Disposal Method расширения изображения, которое указывает, что делать с кадром перед тем, как показывать новый. Немного повторюсь:

Значения 0 и 1 разными формулировками указывают рендереру ничего не делать. Т.е., пиксели следующего кадра рисовать прямо поверху (кроме прозрачных, само собой).

Значение 2 — перед показом нового кадра удалить с логического экрана всё. По спецификации логический экран должен быть заполнен фоновым цветом, на практике он становится полностью прозрачным.

Значение 3 самое интересное — перед показом следующего кадра вернуть всё, как было до показа текущего кадра. Так что, при кодировании, скажем, пятого кадра стоит определить разницу не только со четвертым, но и с третьим — вдруг так сожмется лучше.

Прозрачный цвет

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Сколько тут цветов? Красный, зеленый, синий, желтый и прозрачный — пять. Именно так думают GIMP и Photoshop. Но они ошибаются — тут только четыре цвета. Все четыре изображения-кадра абсолютно одинаковы, и используют глобальную палитру. Разница только в расширениях изображения, которые стоят перед ними, каждый цвет поочередно объявляется прозрачным.

Палитра и размер кодов

Хотя размер кодов LZW обычно и равен размеру (в количестве битов) палитры, такого требования в спеках нет. Нужно только чтобы сами кодируемые значения ссылались на существующие индексы палитры, а так можно хоть 24-битные коды использовать, если места не жалко.

Соответственно, можно использовать размеры кодов меньше, так что не все индексы палитры будут доступны. На первый взгляд, это как-то бессмысленно, однако и этот приемчик может пригодиться.

Картинкой для примера будет… хм… а давайте опять НЛО! Анимация пусть будет несложной, всего два кадра.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Глобальная палитра в 8 цветов:

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

В первом кадре используем все восемь, при этом указываем, что цвет по смещению 0 (светло-синий) считается прозрачным.

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Во втором же кадре нам понадобится только два первых цвета глобальной палитры: светло-синий и серый. И прозрачным на этот раз будет серый цвет (по смещению 1). И вот тут-то мы можем уменьшить размер кодов LZW до двух битов. При этом получится, что из восьми цветов мы сможем закодировать только цвета от 0 до 3, но ведь больше-то нам и не надо. Можно было бы и до одного, но по спецификации минимальный размер кодов — 2.

Проверяем, работает ли?

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Работает. Ну, тогда склеиваем GIF’ки в одну и вуаля!

что значит формат tiff. Смотреть фото что значит формат tiff. Смотреть картинку что значит формат tiff. Картинка про что значит формат tiff. Фото что значит формат tiff

Картинка «весит» 437 байт. Если бы мы использовали локальную палитру, то файл занимал бы на 6 байт больше, 443 байта. А если бы увеличили глобальную палитру, как предлагает Photoshop, то уже 469 байт, а это уже около 7% разницы.

Итого

Резюмируем. Техники оптимизации GIF:

Работает, но не поощряется:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *