О размножении сущностей....

Вот возьмем, к примеру, какой-то софт, который хочет работать с RAW.

Базовая функциональность: целочисленный байер из камеры (черный вычтен камерой/не вычтен).

Размножаем сущности раз: просто байер, X-Trans, Super-CCD, полноцветный (3 цвета /sRAW/), BW.

На этом сущности, которые вылезают из камер кончаются, всего - 10 вариантов (даже 9, полноцветные из камеры - вроде везде вычтен черный).

Идем дальше, потому что есть всякие спец-случаи, вылезающие из полуобработанных RAW (HDR и так далее):

  1. Floating point вообще (независимо от цвета: байер, X-Trans, BW, полноцветный, любой из них может быть в плавучке):
    • Три формата (16,24,32 бита), хотя это место теоретически обрабатывается на распаковке и выходит fp32
    • Нормализовано в 0..1 или исходные значения
    • Черный вычтен/не вычтен (для нормализованных - отдельный секс).
    • Жатый/нежатый (нежатый FP - это, оказывается, отдельное приключение и куча софта обрабатывает неверно)
  2. Linear DNG: 3 канала или 4
  3. Байер:
    • 3 цвета или 4
    • Стандартные 4 паттерна или что-то нестандартное (там тоже бывают варианты).
    • Квадратные пиксели или нестандартный pixel aspect ratio.
  4. Super-CCD: два вида перекоса aspect ratio.
  5. X-Trans пока бывает вроде только один (отличается сеткой, но смысл не меняется).

А дальше мы все вариации перемножаем, потому что теоретически же может быть X-Trans, сохраненный в нежатой плавучке fp16 с нормализацией 0..1, но без вычитания уровня черного, верно ведь?

Так и живем.

UPD: подчеркну особо: без Fujifilm жизнь была бы проще в разы. Доля рынка у них - ну сами понимаете и ради этой доли рынка - две (а на самом деле - три даже) отдельные совершенно обработки, отличные от прочих.