• Часть программных решений поддерживает весьма ограниченное количество форматов данных, что
сильно упрощает задачу.
• Если автор программы заявляет поддержку большинства распространенных форматов, то
скорее всего он использует исходные тексты dcraw либо как готовое решение, либо как документацию. В числе прочих это
делает и такая крупная компания, как Adobe. Приходится констатировать, что огромная индустрия зависит от одного человека
и 8 тысяч строк написанного им кода.
Нетрудно видеть, что оба способа бесперспективны, особенно в стратегическом
плане.
Adobe DNG
Формат DNG предложен компанией Adobe в сентябре 2004 года в качестве
универсального формата "цифрового негатива", предназначенного для вечного архивного хранения данных.
Спецификация DNG 1.0 была очень плохо продумана [В DNG 1.0 не было места для хранения части данных: значений
маскированных (закрытых от света) пикселов, которые используются для расчета уровня шума и некоторых видов
шумопонижения], и через полгода Adobe предложила спецификацию DNG 1.1. Помимо описания формата, был выпущен и DNG SDK,
который иначе как "отпиской" не назовешь: удобочитаемая документация, полезные примеры, а также программные
заготовки практически отсутствуют.
Прежде чем двигаться дальше, проверим оба утверждения Adobe: об архивности и об
универсальности.
Архивный?
Эксперимент очень прост: сымитируем ситуацию, которая могла бы
иметь место года три назад, для чего возьмем исходный RAW-файл от достаточно старой камеры (Canon Powershot G6) и
преобразуем его в DNG старой версией конвертора Adobe [Adobe DNG Convertor, поставлявшийся совместно Adobe Camera Raw
2.3]. Для проверки архивности преобразуем с одинаковыми настройками оба файла - исходный RAW и производный от него
DNG - в растровый RGB-формат, воспользовавшись текущей версией Adobe Camera Raw [Adobe Camera Raw 4.5], и
посмотрим на разницу в результатах (рис. 1). Визуальное различие между двумя вариантами конверсии невелико и скорее
всего на журнальной печати видно не будет, но механическое вычитание показывает, что разница есть.
Довольно трудно считать "архивным" формат, который не обеспечивает идентичность с
исходным материалом, даже когда архив и исходный материал обрабатывались одинаково.
Универсальный?
Для проверки "универсальности" выполним обратную операцию: возьмем кадр,
сделанный с помощью относительно новой камеры (Canon 1D Mark III), преобразуем его в DNG современной версией
DNG-конвертора и попробуем "подсунуть" старой версии конвертора Adobe Camera Raw, которая эту камеру не
знает.
Этот эксперимент весьма актуален потому, что поддержка новых камер в Adobe Photoshop CS2 прекращена, однако
далеко не все готовы платить за апгрейд до Adobe Photoshop CS3 или CS4, не предоставляющих никаких дополнительных
преимуществ в применении к их задачам.
Выяснилось, что версия Camera Raw 2.4
полученный DNG-файл просто не открывает, а версии 3.x - открывают, но результаты конверсии RAW и DNG в RGB (рис. 2)
отличаются еще больше, чем в предыдущем эксперименте.
Недостатки и эволюция DNG
Причина
двух рассмотренных выше неудач заключается в том, что в спецификациях DNG описано недостаточное количество метаданных.
На каждом этапе развития DNG Adobe распаковывает и "стандартизирует" лишь те метаданные, которые необходимы
для работы их сегодняшних конверторов. Все остальные метаданные если и хранятся, то в исходном (недокументированном)
виде. "Стандартизованных" данных очевидно не хватает для заявленной цели (универсальный архивный формат).
Adobe постепенно дополняет спецификацию, находя смысл в тех метаданных, которые в предыдущих версиях конверторов
игнорировались. Но если файл уже сконвертирован более старой версией конвертора, часть этих данных может быть, как
показано выше, безвозвратно утеряна.
В вышедшей несколько месяцев назад спецификации DNG 1.2 появились
дополнительные поля метаданных - цветовые данные, но предназначены они в первую очередь опять же для поддержки
собственных продуктов Adobe и потому добавлены ровно в том виде, в каком их используют конверторы Camera Raw и
Lightroom. Эти данные не имеют никакого отношения к исходным форматам RAW и являются привнесенными. Таким образом, DNG
все больше становится внутренним форматом разработавшей его компании.
Формат DNG никак не помогает разработчикам
поддерживать нестандартные сенсоры (полноцветный Foveon, Fuji SuperCCD SR с двумя разными изображениями в одном кадре и
т. п.). Конечно, придумать способ хранения нестандартных данных внутри DNG нетрудно, но нестандартные данные требуют и
нестандартных алгоритмов, а вот их-то стандарт DNG не предусматривает [О чем представители Adobe пишут открытым текстом
(см., например, forums.dpreview.com/forums/read.asp?forum=1027&message=22605268)].
В то же время некоторые
производители (Panasonic, Leica, Samsung) стали использовать формат DNG в качестве выходного формата своих камер, что,
впрочем, не мешает им продолжать записывать недокументированные метаданные, благо в спецификациях DNG для них
предусмотрено специальное место.
Можно рассматривать DNG как еще один RAW-формат, в этом смысле он чуть лучше всех
остальных, ибо часть полей все же как-то документирована. В качестве "универсального архивного формата"
использовать DNG нельзя, и это видно даже из описанных выше простых экспериментов. Кроме того, принятие DNG в его
сегодняшнем виде в качестве стандарта ведет еще и к тому, что следом неявно навязывается и способ конвертации, который
использует Adobe.
OpenRAW
В 2005 году возникла инициатива OpenRAW. Фактически она
сводилась к призыву производителям камер опубликовать спецификации их RAW-форматов. Призыв сей был дружно
проигнорирован, несмотря на то что очень уважаемые люди вели вежливые и неспешные переговоры по всем правилам японского
этикета с весьма влиятельными сотрудниками ведущих производителей цифровой фотоаппаратуры.
Впрочем, допустим, что
производители оказались бы отзывчивыми и всю свою внутреннюю кухню опубликовали, пусть даже лишь в том объеме, который и
так уже известен. Помогло бы это разработчикам программ? На взгляд авторов, если и помогло бы, то не очень, и причин
тому (традиционно) две:
• Запрограммировать обработку всех форматов данных - огромный труд. Дэйв Коффин занимается
этим уже больше десяти лет, Фил Харви - около пяти. Конечно, имея описания, не придется "хакать", что сократит
объем работы, но и этот сократившийся объем все равно останется непомерно большим.
• На самом деле, нужно не
описание всех битов в формате данных, а только описание важных полей плюс инструкции, что со всем этим делать. Но
инициаторы OpenRAW об инструкциях даже и не думали просить.
Про OpenRAW вовсе не имело бы смысла упоминать, если
б не PR-кампания, развернутая три года назад. Кампания оказалась успешной, многие теперь думают (к сожалению, ошибочно),
что есть такой формат данных - OpenRAW.
Кто виноват и что делать?
Вышеописанные проблемы
фотографической индустрии связаны, в числе прочего, с тем, что список требований к RAW-данным никогда всерьез не
обсуждался. В результате набор интерпретируемых конвертором метаданных в каждом конкретном случае отражает мнение
разработчиков формата о правильном способе обработки этих данных. За примерами далеко ходить не надо - один из авторов
статьи сам грешен тем, что хоть и знает, как расшифровываются записанные в метаданных камер Nikon тональные кривые, но
считает их плохими и посему со спокойной совестью в своем конверторе оные игнорирует. Формат DNG тоже укладывается в
указанную тенденцию: данные, добавленные в версии 1.2, в первую очередь предназначены для использования программами
Adobe.