Как преобразовать проприетарный формат необработанных изображений в Adobe DNG?

У меня есть проприетарный необработанный формат изображения камеры, полученный с камеры Aptina.

Его необработанный формат файла составляет 16 бит на цветовой канал, режим «GRBG» с расширением файла .raw. Никаких заголовков, ничего, просто план необработанных байеровских сэмплов. Я хочу преобразовать этот формат в DNG, так как ни один из декодеров необработанных изображений (dcraw, gimp, …) его не поддерживает.

  1. Есть ли какой-либо инструмент/конвертер, который может обрабатывать необработанный байеровский формат датчика камеры Aptina и позволяет мне конвертировать его в формат DNG?

  2. Если нет, я хочу написать небольшой код C, чтобы преобразовать его самостоятельно. Где я могу найти подробную информацию о формате DNG, его структуре и т. д.? Любой документ, объясняющий весь этот формат DNG?

кросспостинг? stackoverflow.com/questions/4618099/…
Другой альтернативой, если вы пишете код на C, было бы расширение dcraw для поддержки простого необработанного формата Aptina. Это избавит вас от промежуточного шага, а если вы вернете патч обратно в исходный код, то через некоторое время каждая программа, исходный код которой основан на dcraw, тоже будет волшебным образом работать.

Ответы (4)

Файлы DNG основаны на стандарте TIFF/EP, ISO 12234-2 (по сути, это растровые изображения с дополнительными метаданными), поэтому, если вы начнете с соответствующей библиотекой ввода-вывода TIFF, это поможет вам частично, но вы необходимо заполнить дополнительные данные, требуемые DNG, что может быть сложно.

Преобразователи RAW должны знать больше, чем просто интенсивность пикселей. Другая важная информация включает в себя форму и ориентацию пикселя или свойства красителей (просто знать, что они идут GRBG, недостаточно, вам может потребоваться знать точный оттенок (или, точнее, частотную характеристику) каждого красителя, чтобы создать цветовое представление как это зависит от производителя). Я думаю, что DNG справляются с этим с помощью встроенного «профиля камеры».

редактировать:

Существует приложение для управления фотографиями с открытым исходным кодом под названием digiKam, которое может записывать файлы DNG, поэтому вам, вероятно, лучше всего будет просмотреть их источник и попытаться вырвать функции кодирования DNG.

Но дигикам не поддерживает открытие именно этого необработанного файла. Пробовал это.
Я имел в виду изменить код digiKam и вставить свои собственные необработанные данные перед записью DNG, а не пытаться загрузить свои Raw напрямую. Во всяком случае, это было до того, как я узнал, что есть SDK от Adobe, это будет ваш лучший выбор.

Документация DNG находится в свободном доступе от Adobe, и они включают SDK, хотя я не проверял SDK на предмет языковых параметров, скорее всего, что-то вроде C или C++, но в наши дни вы никогда не знаете... :)

В любом случае, спецификация является открытой и свободно используемой.

Adobe DNG SDK, безусловно, лучший способ!
Да, я несколько раз читал спецификацию, потому что вокруг формата много дезинформации, но я не заглядывал в SDK, чтобы быть уверенным в этом. Мне тоже нравится эта идея, к счастью, моя камера — одна из тех, которые делают это изначально, поэтому прочитать ее ради интереса — это все, что мне нужно было сделать. :)
Просто интересно, какая у вас камера, которая поддерживает формат DNG?
@goldenmean - я снимаю Pentax, у них есть поддержка DNG в камере, начиная с K10D.

Если вы согласны, Aptina предоставляет документацию по многим аспектам продуктов, предназначенных (я думаю) для производителей надстроек. Но если вы подписываете NDA, вы можете получить доступ к библиотеке документации, где, предположительно, вы сможете узнать, что вам нужно для самостоятельного написания кода. См. их FAQ .

У Adobe есть бесплатная утилита, которая конвертирует примерно 350 различных форматов файлов RAW в DNG.

Ссылка на версию для Windows

Ссылка на версию для Mac

Может стоит попробовать?