Как выполнить пакетное преобразование старых фотографий NEF в JPEG/HEIF с обработкой в ​​камере?

У меня есть ~9 тысяч фотографий в формате NEF с Nikon D5000, которые в настоящее время занимают около 100 ГБ. Я не прикасался к ним более 8 лет, поэтому не вижу причин предполагать, что когда-нибудь буду их обрабатывать и редактировать.

Я хотел бы преобразовать их в растровый формат, чтобы сэкономить место, и я хочу, чтобы они выглядели как можно ближе к тому, как изображение выглядело бы на экране моей камеры в то время (поскольку я, вероятно, оптимизировал для этого) . Я думал, что лучшим вариантом будет пакетное преобразование с помощью Capture NX-D, но кажется, что цвета искажаются по сравнению со стандартным предварительным просмотром NEF в MacOS (некоторые проблемы, которые я заметил, — менее яркие цвета, потеря деталей, более светлый тени и перепады температур).

Мои вопросы:

  • Просто я привык с годами видеть рендеринг изображений в MacOS, но рендеринг NX-D более точен по сравнению с тем, что должно было быть на экране камеры?
  • Логически говоря, не хотел бы я конвертировать в 16-битный JPEG или даже HEIF/HEIC, чтобы получить лучшее качество при меньших размерах? (NX-D поддерживает только стандартный JPEG.)

Бонусные вопросы:

  • Должен ли я просто оптимизировать изображения для получения наилучших изображений, а не для рендеринга, максимально приближенного к камере? Как я могу это сделать, не проверяя изображение за изображением, что мне нравится результат?
  • Есть ли у меня причина хранить изображения в NEF вместо их преобразования?

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

Цена за 100 ГБ места на жестком диске в настоящее время составляет менее 3 долларов США.

Ответы (2)

Это очень широкое понятие, и в конечном итоге вам придется звонить самому…

Некоторые моменты для рассмотрения.

  • JPG не может использовать 16-бит. Технически он поддерживает 12-битный режим, но большинство приложений этого не делают, так что, скорее всего, его уже нет. Для практических целей считайте JPG 8-битным.

  • предварительный просмотр Mac «неправильный» [для данного значения неправильного]. CaptureNX-D точно знает, на что была настроена камера в данный момент, и может точно воспроизвести это [ни одно другое приложение не может этого сделать, все остальные должны провести обратный инжиниринг] — при условии, что ваш экран правильно откалиброван, в противном случае все ставки сняты.

  • Если вы хотите что-то конвертировать в формат, отличный от JPG или TIFF [файлы даже большего размера, чем NEF, поэтому не учитываются], такие как JPEG2000 или HEIF/HEIC, вам придется использовать приложение, отличное от Nikon, и пожертвовать знаниями Capture о том, что картина «должна» быть.

  • Лучше всего сделать какое-либо суждение без обширного редактирования / исследования — это взять полуслучайную выборку из пары десятков фотографий разных типов объектов при разном освещении и бросить каждую из них как пакет через ваши потенциальные альтернативы преобразования. . Посмотрите, что вы предпочитаете.

  • Стоит ли хранить оригиналы - ну, HD-хранилище в наши дни дешево как грязь. Они могут десятилетиями лежать в накопителе на полке [или пока либо ExFAT, либо USB не выйдут из моды, или пиксели не отвалятся от диска] на случай, если вы когда-нибудь передумаете.

Я согласен с заявлением @Tetsujin по широкому вопросу.

Для тех, кто считает, что HEIF — лучший способ и действительно нуждается в экономии места на диске, вот сценарий, протестированный в Linux (Mint 21).

#!/bin/bash

for file in *.NEF
do
    rawtherapee-cli -b16 -d -n -o /tmp/$file.png -c $file
    heif-enc -q 50 -b 12 /tmp/$file.png -o $file.heif
    rm /tmp/$file.png
    exiftool -overwrite_original -TagsFromFile $file $file.heif
done

Сценарий применяется ко всем файлам *.NEF в текущей папке.

Интерфейс командной строки RawTherapee rawtherapee-cliпреобразует файл NEF во временный файл PNG -nс глубиной цвета 16 бит на канал -b16(что хорошо для будущего извлечения деталей из теней и т. д.).
(Вместо этого можно использовать другие преобразователи командной строки.)

Команда heif-encиз libheif-examplesпакета преобразует временный файл PNG в окончательный файл HEIF. Обратите внимание на -q 50параметр (качество = 50%). Вы можете поиграть с числом или использовать -Lвместо него (сжатие без потерь).
Параметр -b 12представляет собой битовую глубину HEIF (в настоящее время поддерживаются только 10 и 12 бит на канал по умолчанию).

После кодирования в формат HEIF временный файл PNG можно безопасно удалить.

Последняя строка копирует информацию EXIF ​​из исходного файла NEF в окончательный файл HEIF.

Если бы я был педантичен, я бы сказал создать временный файл с помощью mktemp
Хороший вопрос, спасибо.