FastRawViewer 1.5: поддержка TIFF и PNG (technology preview)
Настоящим хочется известить общественность, что поддержка файлов TIFF/PNG в FastRawViewer – готова для показа изумленной публике.
Ссылки для скачивания
Пока вы читаете тот текст, который ниже, вы можете потихоньку и скачивать
Ссылки устарели, берите тут: https://blog.lexa.ru/2019/03/17/fastrawviewer_15_grid_overlay_zoom_in_limit.html
История изменений:
- 1.5.0-1438: исправлена ошибки с показом Lab-файлов если настройка Raw processing space была установлена не в sRGB
- 1.5.0-1441:
- Исправлена ошибка (с возможным падением) при показе превьюшек файлов в том случае, когда размер файла (или встроенного в него превью) в точности равен размеру показываемой на экране превьюшке.
- Исправлена ошибка с показом PNG-файлов, в которых объявлен альфа-канал, но libpng его не находит (не спрашивайте как это, сам пока не вполне понял).
- Добавлены скрытые настройки (см. ниже раздел Дополнительные настройки) для поддержки странных TIFF-файлов от пленочных сканеров.
- Добавлена поддержка для RGB/TIFF сжатых Adobe Deflate с Predictor=2 (так сохраняли какие-то старые версии фотошопа)
- 1.5.0-1442: Детектор "TIFF/RAW" ошибочно напускался на все файлы, не только на *.TIF
- 1.5.0-1443:
- Улучшена обработка tiled TIFF: в этом формате поддерживаются RGB/Grayscale, 8/16 bit, integer, будем улучшать до полной поддержки.
- Обнаружена и исправлена (очень давняя) недоделка: тег tiff:Orientation теперь читается из XMP-блоков, встроенных в JPEG-файлы (и пишется туда же, если это включить)
- Исправлена ошибка при групповой установке XMP-параметров (поворот, рейтинг, метка): в некоторых случаях это действие было (ошибочно) запрещено.
- Исправлена ошибка: на совсем некорректных TIFF-файлах программа могла падать.
Поддержка форматов файлов
- PNG: 8/16bit, Grayscale, RGB, Palette.
Корректной/полноценной поддержки прозрачности и/или альфа-канала нет, FRV - инструмент фотографа, а не дизайнера. - TIFF/BigTIFF:
- RGB/RGBA: 8/16 bit integer, 16/32 floating point (нормализованные 0-1, впрочем никаких других FP увидеть пока не удалось)
- Grayscale: 8/16 bit int. 16/32 floating point
- LAB (CIELAB TIFF): 8/16 bit integer
- И некоторые другие форматы (особо не тестировались): palette, инвертированные grayscale.
- TIFF-файлы Photoshop с встроенными слоями: показывается сгенерированное фотошопом композитное превью (полноразмерное), информация о слоях игнорируется.
- Поддержки CMYK нет и не планируется: для показа CMYK нужен полноценный color management, а это невозможно для нужной скорости показа.
- Методы сжатия: стандартные TIFF (Uncompressed,RLE, LZW), Adobe Deflate, Deflate.
- Цветовые данные: читаются и применяются как встроенные ICC/ICM-профили, так и теги Primaries/WhitePoint/Gamma (при отсутствии тега Gamma, считается что gamma = 2.2 для целочисленных файлов и 1.0 для floating point)
- Метаданные EXIF
- TIFF: извлекаются и показываются
- BigTIFF/PNG: не извлекаются и не показываются, но планируем сделать до релиза.
- Метаданные XMP
Поскольку FastRawViewer пишет XMP-данные в sidecar-XMP файлы, а ни одна другая протестированная программа их не читает для TIFF/PNG (а писать в сами файлы мы не хотим из соображений безопасности), то было принято тяжелое, но неизбежное решение: поддержки XMP для TIFF/PNG нет, а именно:- У TIFF/PNG файлов нет рейтингов-меток (они не читаются, их нельзя назначить)
- Повороты средствами FRV для TIFF/PNG файлов не поддерживаются, для TIFF читается тег Orientation, а у PNG и такого нет.
- Соответствующие пункты меню/действия (XMP rating, XMP label, rotate) – недоступны для TIFF/PNG-файлов.
Настройки FastRawViewer, связанные с TIFF/PNG
Для новых пользователей: настройки доступны через
- Mac: Menu – FastRawViewer – Preferences, или Command-,
- Windows: Menu – File – Customize – Preferences, или Ctrl-P
Включение поддержки, режимы декодирования
Вкладка Preferences – RAW+JPEG переименована в Preferences – File formats, ее новый вид показан на картинке справа.
Добавились:
- Галочки PNG files support, TIFF files support. Их включение автоматически добавляет *.PNG и *.TIF/*.TIFF в список воспринимаемых расширений.
- В группе Non-RAW file decode priorities добавились строчки для Lone PNGs, Lone TIFFs с вариантами:
- On file open – файл декодируется при попытке открытия
- On prefetch – файл декодируется заранее.
Поддержка TIFF и PNG по умолчанию включена, режим On prefetch для этих файлов включен по умолчанию, если на компьютере больше 14GB памяти.
Для файлов с расширением TIF производится автоматическое определение TIFF или RAW (.TIF-файлы писали кэноновские «единички» первой версии).
Файлы TIF/PNG не объединяются в пару с JPG (даже если это RAW-файлы Canon 1D, но эти камеры и не умели снимать RAW+JPEG).
Производительность и лимиты
Поскольку TIFF/PNG файлы могут быть любого размера (и в байтах, и в пикселях), пришлось ввести ограничения.
На вкладке Preferences – Performance (справа) появился отдельный раздел File size limits в котором задаются предельные размеры (в мегапикселях)
- Показываемых файлов (PNG files size limit, TIFF files size limit).
Если у файла размер больше, то FRV откажется его показывать, увеличивайте лимит, если нужно. - Файлов, для которых генерируются превьюшки (PNG/TIFF thumbnail generation limit).
Если размер файла больше, то вместо превьюшки будет иконка «Dimensions too large»).
Кроме того, в группе Other performance settings появилась новая настройка Generate high-quality thumbnails. Если ее отключить, качество превьюшек будет хуже, но генерируются они заметно быстрее.
Thumbnail cache
Про долгоживущий кэш превьюшек я уже писал, но повторю еще раз.
Настройки кэша превьюшек показаны на картинке справа.
- Группа Thumbnail/Metadata fetched – настраивается
- Thumbnail prefetch depth: сколько превьюшек кроме тех, что уже показаны на экране будет строится заранее.
- Thumbnail decoder thread count: в сколько потоков они будут строиться (на HDD-дисках советуем стандартную настройку уменьшать до 2-3, для SSD – ставить от количества ядер CPU до удвоенного количества ядер).
- In-memory thumbnail/metadata cache
- Thumbnail cache size – сколько превьюшек держать в памяти
- Metadata cache size – метаданные (EXIF, XMP, итп) какого количества файлов держать в памяти.
- Disk thumbnail cache – кэш превьюшек на диске (рекомендуем располагать его ТОЛЬКО на SSD-дисках)
- Thumbnail database path – путь к папке, где будет файл кэша
- Database size limit – лимит размера кэша превьюшек
- Stored thumbnail size: либо текущий размер (тогда при изменении размера показываемых превьюшек кэш «устареет»), либо максимально возможный размер превьюшек (тогда кэш на диске будет больше).
- Image compression: как именно сжимать сохраняемые превьюшки.
- Save cached thumbnails if…: самое важное место: в дисковый кэш кладутся только такие превьюшки, на построение которых было потрачено много времени (соответственно, перестраивать их каждый раз – долго). Если вы хотите класть в дисковый кэш ВСЕ, уменьшите эту настройку до нуля.
- Mark cached thumbnails with red dot: если включить эту настройку, вы увидите, что взято из кэша, а что – перестроено на лету.
Дополнительные (скрытые) настройки
Для поддержки всяких сканерных (от пленочных сканеров) TIFF-файлов были добавлены нижеописанные скрытые (т.е. они не ставятся через диалог Preferences) настройки.
На всякий случай напомню, что эти настройки ставятся через registry/defaults (Windows/Mac) (лучше - при закрытом FastRawViewer) и начинают действовать при перезапуске FRV.
AdditionalTIFFExts - дополнительный список расширений (кроме *.tif *.tiff), воспринимаемых как TIFF-файлы
Изменение настройки:
- Windows: Скопируйте файл C:\Program Files\LibRaw\FastRawViewer\scripts\AdditionalTIFFextenstionSample.reg куда-нибудь в укромное место, отредактируйте по вкусу: список расширений можно задавать как *.EXT1 *.EXT2, можно как .EXT1 .EXT2, можно просто EXT1 EXT2, разделитель пробел.
Далее жмякните по этому (отредактированному) файлу дабл-кликом, запустится RegistryEditor, импортирует вашу настройку. - Mac: выполните в терминале команду:
defaults write com.libraw-llc.FastRawViewer Prefs.AdditionalTIFFExts "*.fff *.yyy"
Где *.fff .*yyy - те расширения, которые вы хотите считать TIFF-файлами
Если файлы *.fff указано считать TIFF-файлами, то
- Они не будут склеиваться в пару RAW+JPEG
- Они будут тестироваться "а не RAW ли это" при показе и/или генерации превьюшки, т.е. спокойно можно смешивать *.fff от Имаконовского сканера и *.fff от камеры Hasselblad H3D (или любой другой).
NonBayerTiffIsNotRaw
Суть проблемы: некоторые TIFF-файлы (например, монохромные со сканеров) одновременно являются и RAW-файлами в том смысле, что библиотека LibRaw считает их вполне подходящими и корректными RAW-файлами (и такие файлы делались, например, камерой Kodak DCS 760M - это обычные линейные TIFF-файлы)
Если включить настройку NonBayerTIFFIsNotRAW, то FastRawViewer перестанет считать RAW-файлами такие TIFF-файлы, в которых находятся "не байеровские" данные, а будет считать их TIFF-файлами.
Включение этой настройки не сломает поддержку Canon 1D/1Ds, но скорее всего сломает Kodak 760M и подобные монохромные камеры, порождавшие файлы *.tif
Установка/выключение: Скриптами NonBayerTIFFIsNotRAW/NonBayerTIFFIsMaybeRAW соответственно (см. руководство, раздел "Дополнительные настройки", там написано как пользоваться скриптами дополнительных настроек)
Полезные мелочи
Если вы хотите перестроить превьюшки для всей текущей папки, используйте Menu – File – Reload – Fetch thumbnails for current folder (Ctrl-Shift-F на Windows, Command-Shift-F на Mac).
Если у вас включен Disk thumbnail cache, то «Fetch thumbnails…» построит превьюшки для всех файлов в папке (и сохранит те из них, время генерации которых было больше чем «Save cached thumbnails if…»).
Если дисковый кэш выключен, то будет построено не больше превьюшек, чем 80% кэша в памяти (т.е. 400 из 500 для настроек по умолчанию).
Если вы хотите очистить дисковый кэш, используйте Menu – File – Reload – clear thumbnails cache.
Мы не рекомендуем использовать большие значения в Thumbnail prefetch depth для автоматического фонового построения всех превьюшек в папке за исключением случая «очень мощный компьютер с очень быстрым SSD-диском». Лучше вызовите явную команду построения превьюшек (Fetch thumbnails for current folder) и дождитесь ее завершения.
При сохранении TIFF-файлов из Photoshop мы рекомендуем включать опцию Save Image Pyramid: для таких файлов превьюшки строятся многократно быстрее (т.к. не нужно читать полноразмер, в файле есть варианты в ¼, 1/16, 1/64… по разрешению).
Color Management
На Windows-системах, Color Management у FastRawViewer по умолчанию выключен: у очень большой части Windows-пользователей установлены совершенно негодные профили дисплея, если их использовать, то будет хуже. Чтобы Color Management включить, просто включите галочку Enable Color Management
На маках ситуация с профилями гораздо лучше – и там Color Management по умолчанию включен.
Выключенный Color Management эквивалентен настройкам «все в sRGB» (RAW processing space, Ccolor space for thumbnails, Color space for untagged files).
Настройки Color Management (см. справа) не изменились, ничего нового не добавилось, на TIFF/PNG файлы существующие настройки действуют следующим образом:
- RGB и Grayscale:
- при полноэкранном показе применяется встроенный профиль
- превьюшки: показываются без индивидуального Color Management (иначе было бы слишком медленно), считается что все файлы – в одном цветовом пространстве, задаваемом настройкой Color space for thumbnails (и из него – конвертируется в экранное цветовое пространство одинаковым способом для всех файлов).
- Превьюшки для floating point файлов – конвертируются из гаммы 1 в гамму 2.2
- Если у файла нет профиля, используется ‘Color space for untagged files’
- LAB:
- При полноэкранном показе производится конверсия в RAW processing color space (и из него – в дисплейный профиль)
- Для превьюшек – производится конверсия в Color space for thumbnails (и из него – в дисплейный профиль).
Внимание: превьюшки LAB-tiff пишутся в кэш превьюшек уже в RGB-формате. Если вы меняете color space for thumbnails, то старые превьюшки будут показываться неверно, мы рекомендуем использовать Menu - File - Reload - Clear thumbnails cache (увы, но убрать из кэша только превью Lab-файлов сейчас нельзя). - Конверсия LAB – RGB производится с absolute colormetric intent т.е. сжатия охвата нет, загамутные цвета – оказываются на краю рабочего цветового пространства (в реальности применяется конверсия Lab – xyz и затем конверсия xyz – RGB матричным профилем с обрезкой результатов, выходящих за диапазон 0-1).
Прочие (мелкие) изменения
- Добавлена поддержка ICC-профилей для монохромных JPEG файлов (для PNG и TIFF – тоже, конечно).
- JPEG-кэш теперь не так агрессивно пре-фетчит файлы
- Уменьшен объем памяти, используемой JPEG cache
- Shortcuts: добавлена вкладка ‘Folders handling’ и на нее перенесены операции с папками.
Планы
Хочется заранее предупредить: мы делаем вьюер для фотографов, поэтому поддерживаем те форматы, которые встречаются в практике фотографов. Нельзя исключить, что мы добавим поддержку PSD/PSB-файлов, есть некоторое желание добавить HEIC.
Но вот что мы точно не будем делать, так это поддержку GIF, BMP (Targa, SVG, WebP, JP2 и прочих 700+ графических форматов): есть программы которые умеют именно миллион форматов (не вдаваясь в их особенности и детали), пользуйтесь ими.
Comments
С Lab есть какая-то хрень,
С Lab есть какая-то хрень, Color Management непоследовательно работает. Попытаюсь найти логику и вышлю на мыло.
Да, было бы хорошо.
Да, было бы хорошо.
Потому что с LAB, по идее, все вообще прозрачно абсолютно
- конвертируем в наш внутренний RGB (в тот же что и RAW)
- ну и показываем "так же как RAW"
Ага, вижу, если raw
Ага, вижу, если raw processing space ставить prophoto, то слишком насыщенное все. Пошел разбираться я.
UPD: и возвращается в норму после перестарта FRV. То есть что: при смене настроек это не доходит до Lab engine, получается такЪ
Да, где-то так, но я всё же
Да, где-то так, но я всё же напишу, что я вижу, возможно, там что-то ещё.
Да, история там оказалась
Да, история там оказалась сложнее
1) в читалку TIFF "не prefetch" - параметры lab-конверсии не доставлялись (и там всегда был sRGB на выходе, а дальше он мог восприниматься как что-то еще). И при старте не доставлялись, и при смене настроек.
2) Если вы меняете настройку на ходу, то в эту читалку опять ничего не доставлялось, а в префетчилку - все ок.
3) Но если файл который вы смотрите следуюшим - уже prefetched и настройка "Flush decoded caches on folder refresh" выключена - то в префетченом виде они то лежат уже в RGB декодированные.
Ща все докуем.
Залечено в 1.5.0-1438:
Залечено в 1.5.0-1438:
- полноэкранный режим полностью поправлен
- превьюшки поправить дешево нельзя т.е. при смене color space for thumbnails - рекомендуется вручную почистить базу превьюшек.
Есть, подтверждаю.
Есть, подтверждаю.
(уважытельно) вы всё-таки
(уважытельно) вы всё-таки монстры, ды.
much kudos.
Мы просто делаем для себя.
Мы просто делаем для себя.
Я LAB TIFF не хотел делать - а потом выяснил, что у меня в архиве тысячи таких файлов
да и вроде ж RPP может
да и вроде ж RPP может выдавать наружу такие tiff'ы
Z / V
Вот оттуда они и были.
Вот оттуда они и были.