О размножении сущностей....
Вот возьмем, к примеру, какой-то софт, который хочет работать с RAW.
Базовая функциональность: целочисленный байер из камеры (черный вычтен камерой/не вычтен).
Размножаем сущности раз: просто байер, X-Trans, Super-CCD, полноцветный (3 цвета /sRAW/), BW.
На этом сущности, которые вылезают из камер кончаются, всего - 10 вариантов (даже 9, полноцветные из камеры - вроде везде вычтен черный).
Идем дальше, потому что есть всякие спец-случаи, вылезающие из полуобработанных RAW (HDR и так далее):
- Floating point вообще (независимо от цвета: байер, X-Trans, BW, полноцветный, любой из них может быть в плавучке):
- Три формата (16,24,32 бита), хотя это место теоретически обрабатывается на распаковке и выходит fp32
- Нормализовано в 0..1 или исходные значения
- Черный вычтен/не вычтен (для нормализованных - отдельный секс).
- Жатый/нежатый (нежатый FP - это, оказывается, отдельное приключение и куча софта обрабатывает неверно)
- Linear DNG: 3 канала или 4
- Байер:
- 3 цвета или 4
- Стандартные 4 паттерна или что-то нестандартное (там тоже бывают варианты).
- Квадратные пиксели или нестандартный pixel aspect ratio.
- Super-CCD: два вида перекоса aspect ratio.
- X-Trans пока бывает вроде только один (отличается сеткой, но смысл не меняется).
А дальше мы все вариации перемножаем, потому что теоретически же может быть X-Trans, сохраненный в нежатой плавучке fp16 с нормализацией 0..1, но без вычитания уровня черного, верно ведь?
Так и живем.
UPD: подчеркну особо: без Fujifilm жизнь была бы проще в разы. Доля рынка у них - ну сами понимаете и ради этой доли рынка - две (а на самом деле - три даже) отдельные совершенно обработки, отличные от прочих.