Универсальный (нецензурно) архивный (нецензурно) формат

О сколько нам открытий чудных....

DNG мы уже пинали с примерами, но пинали мягко, оставаясь в рамках Adobe workflow. Там проблемы, которые создает DNG заметны, только в довольно экстремальных ситуациях.

Но вот если мы живем не Адобом единым, то жизнь становится куда веселее. Вот к примеру LighZone. Отличная по своим идеям программа, все такое, но вот распаковку RAW там делают запуском внешней dcraw.exe.

А вот если посмотреть в эту самую dcraw.exe (dcraw.c), то пытливый глаз заметит, что вычисление уровня черного там делается на уровне распаковки. То бишь для .CR2 - одним способом, а для .DNG - другим (если быть точным - то никаким). В результате, если взять одни и те же данные в виде .DNG и .CR2, офигачить их dcraw, а потом просто сделать difference в фотошопе, то результат получается интересным. Если усилить difference (реально там всего несколько бит разницы), то каким-то таким:

cr2-dng-diff-dcraw.jpg
(977x650)

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

Контрольный вопрос: что говорит описание формата DNG относительно вычитания черной рамки? Можно ли ее вычесть более-менее одинаково (одним коротким куском кода) для всех камер?

Comments

Оба на! Спасибо, показательный пример.

Самое интересное тут - это ответ на контрольный вопрос.... (и через него - о практической пользе DNG)

Лёша, а как дела обстоят в Capture One?
я щас ей фотки проявляю...
вроде результат нравится субъективно, но хотелось бы веского слова эксперта услышать ;)

Да хрен их знает - нету под рукой. Вроде бы в 3-й версии в пузе была dcraw, но сейчас уже точно не вспомню.

Но если нравится - так и радуйся. Самое главное - это не делать глупостей вроде хранения raw-файлов в DNG-формате.

ссылочку в почту отправил 4.5.1

про DNG понял - с этими граблями дружить не буду :)

А не было желания придумать правильный универсальный архивный формат?

Если сходить по первой ссылке (статья для Компьютерры: http://www.libraw.su/articles/2-ways-to-nowhere.html ) то там написано наше с Ильей Боргом отношение к происходящему: все плохо и быстро ухудшается.

Проблема же не в самом "универсальном формате", сколько вообще в разнообразии форм жизни: Байер, Фовеон, SuperCCD с двумя планами с разными ISO (а так же разным балансом белого для двух планов), Sinar 4-shot (в пределе - 4 компонентное RGBG в каждой точке), Никоновские полноцветные дихроичные зеркала, RGBG и CMYG (и RGBW/RGBE). Это только глобальные формы жизни, которые очевидно что на уровне сигнала с матрицы нужно отдельно обрабатывать.

Далее начинается бардак с метаданными. Никто не документирует. Кто-то шифрует. Разнообразие форм жизни там еще более удивительно.

Само сведение этих форм жизни к какому-то разумному формату - уже подвиг, который конечно надо делать. Но я категорически сомневаюсь, что можно написать программу процессинга RAW в которой не будет нескольких тысяч условных переходов, зависящих от модели камеры (а во многих случаях еще и версии firmware). Хотя, конечно, хотелось бы.

Статью, конечно, читал, а вот комменты осилил только сейчас. Тяжко

Но, в общем, там прозвучала довольно правильная мысль: надо определиться, что мы всё-таки считаем за ценность:

а) Плюшкин храним по-максимуму всё что у нас есть, т. е. данные с сенсора камеры в максимально неискажённом виде, потому что а вдруг мы завтра научимся их обрабатывать лучше . В этом случае единственный, по сути, вариант это родной raw-файл из камеры плюс референс-библиотека обработки на все десять тысяч разновидностей камер и форматов.

б) Физик храним параметры сцены, которая была перед фотоаппаратом, сохранённые в чём-то типа HDRi. Восстановленные, разумеется, из данных сенсора. При этом мы теряем возможность в будущем восстановить их ещё лучше, зато приобретаем единообразное описание картинки, дающее, тем не менее, возможность варьировать экспозицию/бб/что-то ещё в широких пределах.

в) Галерист храним финишное плоское изображение в каком-нибудь малобитном (8/16) цветовом пространстве. Его можно печатать, его можно показывать на экране, но всерьёз обрабатывать уже нельзя. Это мы, очевидно, сейчас не рассматриваем.

Лично мне всё-таки больше нравится хорошо проработанный вариант Физик . В модели Плюшкина мы всё равно будем хранить не точные данные, а с определённой степенью огрубления. Во-первых, никакой сенсор точную форму спектра не передаст. Во-вторых, качество преобразования из raw-формата какой-нибудь камеры не будет бесконечно улучшаться через пять лет после прекращения производства этой камеры, никто уже про неё не вспомнит и не будет улучшать эту часть референс-библиотеки. Тогда зачем стараться охватить необъятное, не лучше ли сразу свести данные в физический формат? Да, с потерями и искажениями. Но вряд ли принципиально большими чем при обработке сырых данных. По большому счёту, что сильнее портит картинку неправильно посчитанный бит в уровне чёрного или принципиальная ограниченность цветопередачи за счёт триадной модели _матрицы_?

Давид, ну так на сегодняшний день (про будущее сложно предсказывать) данные "Физику" дает "Плюшкин".

При этом, опять же на сегодняшний день, качество преобразование в "Физика" в большой степени определяется качеством цветовых профилей (а где их хороший выбор - в реальной то жизни?) и в еще довольно серьезной степени - развитием алгоритмов интерполяции и подобных.
А профили - с учетом обязательного метамеризма камеры - во многих случаях надо бы делать под задачу, а не "вообще".

А что касается "баланса белого у Физика" - есть очень существенное обстоятельство, заключающееся в том, что для перехода к физическим координатам (XYZ, например) придется таки сделать баланс белого. Более того, интерполяцию нормально нельзя сделать не перейдя к яркостной координате, что можно сделать только наложив баланс белого.

По цветопередаче/битам в черном: картинка это в любом случае результат редактирования. В этом смысле "бит в черном", приводящий к разбалансу цвета в тенях (и вообще к нарушению линейности в тенях) куда более неприятное явление, чем, скажем, одинаковый сдвиг по всей картинке целиком. А если общий сдвиг не касается памятных цветов - так и вообще плевать на него.

Алексей, здравствуйте!

Ваша статья о DNG и RAW пока не устрарела?

Коллега попробовал повторить Ваш эксперимент: http://akry.livejournal.com/609298.html почему-то получил противоположные результаты. Прокомментируйте пожалуйста?

Я не очень понял суть вашего эксперимента.

Если вы с одной и той же версией ACR/DNG_converter пробовали два пути, прямой и через DNG, то с относительно свежими форматами DNG (1.2+) разницы может вовсе не быть. Особенно если используется камерный профиль.