И про EXIF

Вот есть такая компания, Панасоник. Делает цифровые камеры, в числе прочего.

В этих цифровых камерах есть RAW. И есть, конечно же, JPEG.

В этих RAW тоже есть JPEG, внутри.

В этих JPEG, и в отдельных и в тех которые внутри RAW, есть EXIF. А внутри EXIF - MakerNotes, панасонико-специфичные.

Теперь следите за руками:

  • Порядок байт в EXIF (Intel/Motorola, II/MM) задан там внутри, стандартным образом.
  • В тех файлах, которые я держу вот в руках сейчас, он РАЗНЫЙ для EXIF внутри JPEG внутри RAW и для просто EXIF внутри (отдельно лежащего) JPEG. У EXIF-внутриJPEG-внутриRAW - II и для самого RAW и для этого EXIF - II. У EXIF-внутриОтдельногоJpeg - MM.
  • Порядок байт в MakerNotes (такая же TIFF-подобная структура внутри RAW) - нигде не задается.
  • Этот порядок в обоих случаях - II

Вот как элегантно с этим работает EXIFTool:

    my $num = Get16u(\$buff, $dirStart);            # get entry count
    ToggleByteOrder() if ($num>>8) > ($num&0xff);   # set byte order
 

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

Пошел программировать аналогичную херню.

P.S. Примерно так в этом месте устроено ВСЕ. Панасоник не исключение какое-то, просто под руку попал и возбудил на написание этого текста.

Comments

Если посадить 10 000 обезьян за компьютеры...

Разные группы, отвечающие за разные части ПО камеры?

Ну скорее всего, да. Сначала делали мыльницы, если я правильно помню. Потом стали делать RAW. Код для JPEG-ов взяли от мыльниц, а с RAW не прокатило, пришлось делать еще раз.

Пусть хоть такое опубликуют... Пора бы уже заметить, что за деньги их говнософт никому не нужен.

Я вот не понял контекста. Кто опубликует, что опубликует?

формат этого безобразия

Дело же не в формате как таковом. Ну вот для панасоника формат известен (с поправкой, как видим).

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