Как определить тип файла/сжатие в файле TIFF?

Насколько я понимаю, TIFF похож на контейнер .mkv для фотографий — он поддерживает множество сжатых и несжатых форматов.

Но как бы вы проверили, действительно ли данные в файле TIFF не сжаты? Я беспокоюсь, что это может быть просто фотография с потерями.

Даже если ваш tiff в настоящее время не сжат, это не означает, что данные никогда не сжимались :(
Да - собирался спросить об этом. Есть ли способ определить базовое сжатие?
Если данные только когда-либо сжимались без потерь (LZW, Deflate), невозможно узнать историю их сжатия. Если данные были сжаты методами с потерями, такими как JPEG, вы можете искать артефакты сжатия . Для JPEG они будут соответствовать границам блоков 8x8 или 16x16. Также могут быть признаки потери информации о цвете.

Ответы (4)

TIFF — это контейнерный формат. Некоторые другие форматы, такие как DNG, основаны на контейнерах TIFF.

Вы можете использовать exiftool, чтобы определить, содержит ли файл TIF сжатые данные.

usr@hst:/tmp$ exiftool -compression test1.tif 
Compression                     : Uncompressed
usr@hst:/tmp$ exiftool -compression test2.tif 
Compression                     : JPEG

Используется ли это для указания текущего сжатия файла .tif или сжатия данных в файле .tif? - Эли

TIFF — это контейнеры. Если их не поместить в другой контейнер (zip), сами они не сжимаются. Содержащиеся в них данные (изображения) сжимаются. В просторечии, когда люди говорят, что тип файла сжат (jpg), они имеют в виду, что данные в файле сжаты.

Даже если ваш TIFF в настоящее время несжатый, это не означает, что данные никогда не были сжаты :( — Питер Грин

Есть ли способ определить базовое сжатие? - Эли

Если данные только когда-либо сжимались без потерь (LZW, Deflate), невозможно узнать историю их сжатия. Если данные были сжаты методами с потерями, такими как JPEG, вы можете искать артефакты сжатия . Для JPEG они будут соответствовать границам блоков 8x8 или 16x16. Также могут быть признаки потери информации о цвете. Утилита jpegjudge может использоваться для оценки качества изображений, сохраненных в формате JPEG.

Используется ли это для указания текущего сжатия файла .tif или сжатия данных в файле .tif?
TIFF — это контейнеры. Если их не поместить в другой контейнер (zip), сами они не сжимаются. Содержащиеся в них данные (изображения) сжимаются. В просторечии, когда люди говорят, что тип файла сжат (jpg), они имеют в виду, что данные в файле сжаты.

Если вы используете Linux или Unix-подобную систему (включая MacOS), вы можете использовать fileкоманду, встроенную в большинство дистрибутивов Linux/Unix. В терминале:

scottbb@mbp ~/Downloads $ file CCITT_1.TIF
CCITT_1.TIF: TIFF image data, little-endian, direntries=17, height=2376, bps=1,
compression=bi-level group 4, PhotometricIntepretation=WhiteIsZero,
name=Standard Input, description=converted PBM file, orientation=upper-left, width=1728

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

Если у вас есть Photoshop, легко определить тип сжатия файла, если таковой имеется. Только сжатие JPEG, которое доступно только для 8-битных файлов tif, приводит к ухудшению качества изображения.

Откройте файл tif в Photoshop, затем выберите «Сохранить как» (хотя на самом деле вы его не сохраните). Вы увидите этот диалог.

Начальный диалог

Теперь выберите сохранить. Это не сохранит, а откроет другое диалоговое окно.

Второй диалог

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

Единственное, что беспокоит, это то, что изображение в формате jpeg. Это также означает, что изображение является 8-битным. Любое другое сжатие не приводит к потерям и не может привести к ухудшению качества изображения.

Вот что будет показано для файлов tif, сжатых в формате jpeg:

8-битное сжатие JPEG

Теперь отменить. Вы не хотите случайно сохранить его, просто изучите его атрибуты.

Но как бы вы проверили, действительно ли файл TIFF не сжат?

Быстрый тест.

Откройте фотографию и повторно сохраните ее в формате TIF с другим именем без сжатия. Сравните вес файла.

Размер файла несжатого изображения будет примерно таким же.

Я беспокоюсь, что это может быть просто контейнер без потерь для фотографии с потерями.

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

Сделайте несколько дополнительных тестов с различными методами сжатия. LZW или ZIP (оба без потерь)

Если размер файла намного меньше указанного, он, вероятно, был сохранен с использованием сжатия JPG, поэтому с потерями.

Но единственный точный тест, который вы можете сделать, это взять исходную фотографию, наложить ее, используя «разницу» в качестве режима наложения, сгладить ее и посмотреть гистограмму. https://otake.com.mx/Apuntes/Imagen/PruebasDeCompresion/1-CompresionJpgProceso.phtm

Но учтите, что есть большая вероятность, что исходное фото было сохранено в формате JPG с самого начала.


И да, формат TIF очень специфичен. Я бы не рекомендовал его для обычных фотографов. Я бы рекомендовал его только для конкретных случаев:

  1. Когда вам нужно изображение 16 бит на канал и вы не можете отправить файл PSD.

  2. Когда вы сохраняете изображение CMYK, вы не хотите использовать JPG и не можете отправлять файл PSD.

  3. Какой-то странный файл, например, многоканальный файл, CMYK и прозрачность и т. д., и вы не можете отправить файл PSD.

И это, наверное, все.

Как Zip, так и LZW сжатие выполняется без потерь, и это наиболее распространенное сжатие, используемое в файлах tiff. Photoshop предлагает эти типы сжатия без потерь только при сохранении файлов tiff. Те приложения для файлов tiff, которые предлагают сжатие jpeg, имеют потери.
@xiota, сжатие Jpeg можно использовать в tiff-файлах Photoshop, но только для 8-битных файлов, но также вызывает предупреждение о совместимости для старых Photoshop. Он недоступен для файлов с более высоким битом. Если вы откроете TIFF-файл, а затем нажмете «Сохранить как», он покажет те же настройки сжатия, что и исходный файл, так что это один из способов узнать, использует ли TIFF-файл сжатие с потерями. Почти вся моя работа с tiff-файлами 16-битная, и я не думаю, что когда-либо видел 8-битный tiff-файл, закодированный в jpeg. По-видимому, теперь он поддерживается, но не был в старых Photoshop, поэтому я сделал это наоборот.