Why this file exists. Every recipe in this bank is a set of instructions to a processing pipeline running on a specific sensor. The bank documents film chemistry in depth and Fujifilm's colour philosophy in depth, but until now had ~50 lines on the sensor itself, all of it recipe-conversion rules, none of it architecture. This file covers the hardware layer: what X-Trans is, how the generations differ, what GFX really uses, and which of those differences actually change a recipe.
Companion files: x-trans-v-and-conversion.md (porting rules), color-science-why-film-cannot-be-faked.md (why the simulation happens at the raw-signal stage), post-grain-settings.md (the 48 µm geometry this file extends).
1. The colour filter array
A sensor photosite is colour-blind. It counts photons. Colour comes from a colour filter array (CFA) bonded over the sensor, giving each photosite one colour, with the missing two thirds reconstructed by demosaicing.
| Bayer | X-Trans | |
|---|---|---|
| Repeating unit | 2 × 2 | 6 × 6 |
| Green | 50 % (2 of 4) | 55.6 % (20 of 36) |
| Red | 25 % (1 of 4) | 22.2 % (8 of 36) |
| Blue | 25 % (1 of 4) | 22.2 % (8 of 36) |
| Every row/column contains R, G and B? | ❌ No — rows alternate RG / GB | ✅ Yes |
| Optical low-pass filter (OLPF) | Usually fitted (historically) | Omitted |
Fujifilm's stated rationale: enhancing aperiodicity in the array arrangement minimises the generation of both moiré and false colours, removing the need for an optical low-pass filter.
Fujifilm's own term is "low periodicity", from the 2019 National Invention Award citation (§7b), and it is more precise than the "aperiodicity" of the marketing copy. It does not mean random. The X-Trans CFA is a fixed, deterministic 6 × 6 tile, repeated exactly across the sensor. It is aperiodic only in the sense that it does not repeat at the 2 × 2 spacing that makes Bayer alias so predictably against fine detail. Marketing copy that describes it as "random" is wrong, and this bank should not repeat that. What is true is that the longer, more complex period pushes the CFA's own resonances away from the spatial frequencies where subject detail typically lives.
The OLPF omission is the consequential half. An optical low-pass filter is a physical blur applied before the sensor. It trades resolution for alias safety. Removing it means the X-T5 resolves closer to its Nyquist limit than an OLPF-equipped camera at the same pixel count.
2. The generations, with the numbers that matter
Pixel pitch computed from the manufacturer's stated sensor dimensions and raster. Pitch is the number that governs per-pixel noise and diffraction behaviour. Megapixels alone tell you almost nothing.
| Bodies | Sensor | MP | Raster | Pitch | Sensor area |
|---|---|---|---|---|---|
| X-Pro2, X-T2 | X-Trans CMOS III | 24.3 | 6000 × 4000 | 3.93 µm | 368 mm² |
| X-T3, X-T4, X-S10, X-E4, X-T30 II | X-Trans CMOS 4 (BSI) | 26.1 | 6240 × 4160 | 3.77 µm | 367 mm² |
| X-T5, X-H2, X100VI, X-T50 | X-Trans CMOS 5 HR | 40.2 | 7728 × 5152 | 3.04 µm | 368.95 mm² |
| X-H2S | X-Trans CMOS 5 HS (stacked) | 26.1 | 6240 × 4160 | 3.77 µm | 367 mm² |
| GFX 100, 100S, 100 II | BAYER BSI | 102 | 11648 × 8736 | 3.76 µm | 1441 mm² |
| GFX 50S, 50R | BAYER | 51.4 | 8256 × 6192 | 5.31 µm | 1441 mm² |
On the precision of that last column. Only the X-T5 row is computed from dimensions this project has verified against a primary document, the Owner's Manual archived in this repo states 23.5 × 15.7 mm, giving 368.95 mm² (§7). Every other row is from published specifications quoted to lower precision, so those areas are ~3 s.f. approximations and should not be differenced against each other. The 367 vs 368.95 gap between rows is a rounding artefact, not a real difference in sensor size, all the APS-C bodies listed share essentially the same imaging area.
3. Finding 1: "X-Trans V" is two different sensors, and this bank has been conflating them
Every recipe here is labelled X-Trans V. That label covers two genuinely different sensors:
- X-Trans CMOS 5 HR: 40.2 MP, not stacked, 3.04 µm pitch. X-T5, X-H2, X100VI, X-T50.
- X-Trans CMOS 5 HS: 26.1 MP, stacked, 3.77 µm pitch. X-H2S only.
HR = high resolution, HS = high speed. The stacked HS architecture buys readout speed (40 fps electronic, minimal rolling shutter) at the cost of resolution.
Why this is a recipe-validity issue, not trivia: the X-T5's photosite is 19.3 % smaller in pitch than the X-H2S's, roughly 35 % less collecting area per pixel. At a matched ISO the X-H2S is therefore the cleaner sensor per pixel.
Concrete consequence. This bank sets High ISO NR —on essentially every recipe, deliberately, to preserve texture. Recipes that also run high ISO ceilings, Delta 3200 and Tri-X 400 at 12800, T-Max P3200 at 12800. Are relying on real sensor noise as part of the texture. That noise floor is not the same on both X-Trans V bodies. A recipe tuned on an X-T5 will read cleaner on an X-H2S at the same ISO, which matters most for exactly the recipes that use noise as a feature.
What this bank should say, and now does: recipes here are validated on X-Trans CMOS 5 HR (X-T5). They will transfer to the X-H2S. Same colour pipeline, same film simulations, same CFA geometry, but high-ISO texture will differ, and any recipe leaning on sensor noise should be re-judged there rather than assumed identical. This is a different axis from the well-documented IV→V blue-rendering rule, which is about colour and applies to both V sensors equally.
4. Finding 2: GFX is Bayer, not X-Trans
This bank previously carried one vague line: "the medium-format GFX bodies share film sims but render tonality differently; expect a slightly different result." That is true but misses the actual reason.
Every GFX body uses a conventional Bayer colour filter array. Fujifilm's X-Trans CFA is an APS-C X-series technology only. So a film simulation on a GFX runs through:
- a different CFA (2 × 2 Bayer, 50 % green), not the 6 × 6, 55.6 %-green X-Trans array;
- a different demosaic. Bayer reconstruction, not X-Trans reconstruction;
- a sensor of 3.93 × the area (1441 mm² vs 367 mm²), linear factor 1.86 ×.
Given this bank's founding argument, that a film simulation is "a work of converting the raw signal while understanding the difference of the spectral sensitivity" (color-science), a different CFA means a genuinely different input to that conversion. GFX recipes are not simply X-series recipes on a bigger sensor.
Practical guidance: treat recipe values as a starting point on GFX, not a transfer. The film simulation names and the parameter ranges are shared; the rendering is not guaranteed to be. The bank has no GFX body to test on, so nothing stronger than that is claimed.
The pixel-pitch coincidence, which is genuinely surprising
| Sensor | Pitch |
|---|---|
| GFX 102 MP (Bayer) | 3.76 µm |
| X-Trans CMOS 4 / 5 HS (26 MP) | 3.77 µm |
Within 0.2 % of each other. Two sensors, one medium format and one APS-C, four times apart in area and four times apart in pixel count, with effectively identical photosites.
This independently corroborates a claim circulating about GFX's origins: that the 102 MP medium-format sensor is essentially a larger cut of the same silicon design as the 26 MP APS-C sensor, taken from a bigger portion of the wafer. (That attribution is enthusiast-forum sourcing, not a manufacturer statement, but the geometry here is independent arithmetic from published specifications, and it agrees.)
Why it matters practically: GFX's advantage over a 26 MP X-series body is area, not per-pixel performance. Same photosite size means broadly similar per-pixel noise; the medium-format benefit comes from having ~4 × more of them and ~4 × the total light collected for a given scene and equivalent framing. That is a useful correction to the assumption that medium format is "cleaner per pixel."
5. What this actually changes for recipes
Five consequences, ordered by how much they matter here.
-
The no-OLPF design justifies this bank's restraint on Sharpness. With no optical low-pass filter the sensor already resolves near Nyquist, so a given Sharpness value does more work than the same number on an OLPF-equipped camera. Fujifilm's own guidance for Classic Chrome points the same way, the base "needs less Clarity and Sharpness than you'd expect" because it has already done print-contrast work. The bank's highest Sharpness values (—, on Pan F Plus 50 and Kodachrome 64) are earned from explicit datasheet language, and the general default sits at 0 or +1. That discipline is matched to the hardware rather than to taste alone.
-
The green-heavy CFA slightly favours luminance detail. Rec. 709 luminance is roughly 71 % green, so a CFA sampling 55.6 % green instead of 50 % samples luminance a little more densely, and chroma correspondingly less. It is a modest difference, +11 % relative on the green share (worked out in §7), and should not be overclaimed. But the direction supports two things this bank already does: sharpening is luminance-driven and therefore effective, and B&W work. Pure luminance. Is where X-Trans is at its strongest. Which may be part of why Fujifilm's ACROS grain model is as convincing as it is.
-
High ISO NR —is doing more work than it looks. X-Trans demosaicing is harder than Bayer demosaicing, a longer CFA period means more neighbours to reason about, and Fujifilm's noise reduction is tuned for it. Pinning NR to −4 across the bank preserves texture, which is the intent; it also means the recipes are exposing more of the raw demosaic character than a default setting would. Worth knowing when judging a frame at 100 %.
-
The 48 µm grain projection is body-specific. Extending post-grain-settings.md to native rasters:
| Body | 48 µm at native raster |
|---|---|
| X-T5 (40 MP) | 15.8 px |
| X-H2S / X-T4 (26 MP) | 12.8 px |
| GFX 100 (102 MP) | 12.8 px |
| GFX 50S (51 MP) | 9.1 px |
Same logic as before: this is the scale a matched film grain should occupy, and it moves with the raster. Note again that X-H2S and GFX 100 land in the same place, the pitch coincidence propagating through.
-
The DR modes' cost scales with pixel pitch, and the X-T5 is on the wrong side of it. — and — work by underexposing the sensor by exactly 1 and 2 stops (base ISO 125; the manual's ISO floors of 250 and 500 are the underexposure) and lifting in processing. That spends shadow signal-to-noise to buy highlight headroom. The X-T5's 3.04 µm photosite has ~35 % less collecting area than the 3.77 µm pixels of the 26 MP bodies, so the same 2-stop lift costs more here, and most published recipes, including much of this bank's reference tier, were authored on those 26 MP bodies. Worked through, with a 22-recipe audit, in dynamic-range-and-tone.md.
-
The X-T5 sits within 5.6 % of Super 35 in width (23.5 mm vs 24.89 mm), which is why the cinema recipes' grain geometry transfers so cleanly to video. Established in post-grain-settings.md; repeated here because it is a sensor fact, not a grain fact.
§7: The X-T5 sensor: every published figure, and what is derivable from them (added 2026-07-26)
Sourcing rule for this section: every figure is either quoted from the X-T5 Owner's Manual, the primary Fujifilm document archived in this repo at X-T5/x-t5_manual_en_s_f.pdf, 432 pp, or is arithmetic performed on those quoted figures. Nothing is estimated, and nothing is taken second-hand. Derived values are marked .
Quoted verbatim from the manual's Specifications block (p.395)
"Model FUJIFILM X-T5 · Product Number FF220001 · Eff ective pixels Approx. 40.2 million · Image sensor 23.5 mm × 15.7 mm (APS-C), X-Trans CMOS 5 HR sensor with primary color fi lter"
| Property | Manual figure |
|---|---|
| Product number | FF220001 |
| Effective pixels | ~40.2 million |
| Sensor dimensions | 23.5 mm × 15.7 mm |
| Sensor type | X-Trans CMOS 5 HR |
| CFA type | primary colour filter (RGB, not complementary CMY) |
| Output raster, 3:2 | 7728 × 5152 (p.118) |
| Other rasters | 16:9 7728 × 4344 · 1:1 5152 × 5152 · 4:3 6864 × 5152 · 5:4 6432 × 5152 |
| Standard ISO | 125 – 12800, ⅓ EV steps; AUTO 1–3 |
| Extended ISO | 64, 80, 100, 25600, 51200 |
| Movie ISO | 125 – 12800 standard; 25600 extended |
| Metering | 256-segment TTL |
| HEIF | 4:2:2, 10-bit |
| RAW | RAF — uncompressed, lossless, or lossy |
(Note: 23.5 × 15.7 mm, this bank previously used 15.6 mm for the height. Corrected. Width was already right, so the 48 µm grain projections and pixel-pitch figures elsewhere are unaffected; only sensor area changes, from 366.6 to 368.95 mm².)
Derived: pixel geometry
| Quantity | Derivation |
|---|---|
| Pixel pitch (horizontal) | 23.5 mm ÷ 7728 |
| Pixel pitch (vertical) | 15.7 mm ÷ 5152 |
| Quoted pitch | the two differ by 0.21 %, so the manual's mm figures are rounded to 0.1 mm — quoting pitch beyond 3 s.f. would be false precision |
| Sensor area | 23.5 × 15.7 |
| Photosites in the 3:2 raster | 7728 × 5152 |
| Effective − raster | 40.2 M − 39.81 M — photosites that are effective but fall outside the 3:2 crop |
Derived: the Nyquist limit, and why it matters here
Nyquist limit = 1 / (2 × pitch) = 1 / (2 × 3.0409 µm) = 164.4 line pairs/mm
This is the highest spatial frequency the sensor can record without aliasing, and the X-T5 has no optical low-pass filter to keep detail below it (§1). That is the whole reason the no-OLPF design has consequences: the sensor is being deliberately run right up to this limit.
Set against the only film in this bank with published resolving power:
| Resolving power | vs sensor Nyquist | |
|---|---|---|
| X-T5 sensor | 164.4 lp/mm | — |
| Eastman Double-X 5222, TOC 1000:1 (high contrast) | 100 lp/mm | sensor out-resolves by 1.6 × |
| Eastman Double-X 5222, TOC 1.6:1 (low contrast) | 32 lp/mm | sensor out-resolves by 5.1 × |
(Double-X figures from its archived Kodak datasheet, the only cine stock in this collection publishing resolving power.)
The sensor comfortably out-resolves the film it is emulating, by 1.6× on high-contrast detail and 5× on the low-contrast detail that dominates real subjects. Two consequences worth holding onto:
- Resolution is not the limiting factor in any film emulation here. Whatever separates a recipe from the real stock, it is not that the sensor cannot resolve enough.
- It reinforces the Sharpness restraint documented in §5. The sensor is already resolving several times finer than the emulsion being modelled; adding sharpening pushes further from the target, not closer.
Derived: CFA photosite split
Applying the X-Trans 6×6 ratio (55.6 % G / 22.2 % R / 22.2 % B, §1) to 40.2 M effective:
| Green | Red | Blue | |
|---|---|---|---|
| X-Trans (X-T5) | 22.3 MP | 8.9 MP | 8.9 MP |
| Bayer, same total | 20.1 MP | 10.1 MP | 10.1 MP |
| Difference | +11 % green | −11 % red | −11 % blue |
So the green oversampling is 11 % relative, not the ~55 % the raw percentage might suggest at a glance, the honest magnitude for the luminance argument in §5.
The DR ISO windows have an upper bound too: undocumented in this bank until now
The manual specifies both ends (movie section, and p.130 for stills):
"200 % is available at sensitivities of from ISO 250 to ISO 12800, 400 % at sensitivities of from ISO 500 to 12800."
| Mode | ISO window | Underexposure vs base ISO 125 |
|---|---|---|
| — | any ISO | 0 |
| — | 250 – 12800 | 250/125 = 2× = 1 stop |
| — | 500 – 12800 | 500/125 = 4× = 2 stops |
The consequence nobody writes down: — and — are unavailable at every extended ISO. At 64, 80 or 100 you are locked to —, and at 25600 or 51200 likewise. So:
- Shooting a — recipe at extended-low ISO silently drops it to —, removing the two stops of highlight headroom the recipe is built on.
- Any recipe with an ISO ceiling above 12800 would lose its DR mode at the top of the range. (Checked: no recipe in this bank exceeds 12800, so none is currently affected, but it constrains future ones.)
The manual confirms the mechanism independently elsewhere: dynamic-range bracketing "will be restricted to a minimum of ISO 500", the same floor, for the same reason.
What could NOT be obtained, and why
Stated so the boundary of this section is visible rather than implied:
- ~~Photons to Photos measured dynamic-range curves, the site returned HTTP 000.~~ ✅ RESOLVED 2026-07-27, the network policy was opened and the data was retrieved. See §7c below, which answers the dual-conversion-gain question that this list previously called the highest-value open item.
- Teardown / die analysis: the one located X-T5 teardown (IRreCams) returned 000; TechInsights-class die analysis is paywalled and was not reached.
- Sensor fabricator and part number. Fujifilm does not operate a CMOS fab and the sensor is widely assumed to be Sony Semiconductor silicon, but no part number was verified from any accessible source, so none is stated. The "GFX 102 MP is the same silicon scaled up" claim in §4 remains supported only by the pixel-pitch coincidence (3.76 vs 3.77 µm), which is this project's own arithmetic, not a sourced attribution.
- ~~Dual conversion gain / a second base ISO. Unknown, and the highest-value open question.~~ ✅ ANSWERED 2026-07-27, see §7c. The switch is at ISO 500, which is exactly the — floor rather than a step below it.
- Fujifilm's own X-T5 cheat-sheet PDF: returned 403.
- Measured film-simulation tone curves. Fujifilm publishes qualitative design statements (which this bank uses, and labels as such) but no numeric curves. Every tone-curve claim in this bank sourced to Fujifilm is therefore prose, not measurement: that distinction is now explicit.
- The manual's shutter-speed table could not be read: the PDF encodes fractions with a glyph that text extraction drops, so speeds render as
⁄with digits lost. Not guessed at.
§7c: The X-T5 has a conversion-gain step, and it is at ISO 500
This answers what §7 called the bank's highest-value open sensor question, and the answer is better than the hypothesis that was recorded: the step is not near the — floor, it is the — floor.
Source: Photons to Photos (Bill Claff), Photographic Dynamic Range and Read Noise in ADU charts, retrieved 2026-07-27. Series FujiFilm X-T5_14 and FujiFilm X-T5(ES)_14 (14-bit, mechanical and electronic shutter). The ISO axis is not inferred, the site's own label formatter is ISO = round(3.125 × 2^x), which reproduces every anchor exactly (x=5.00→100, x=5.33→126 ≈ base 125, x=12.00→12800, x=14.00→51200).
What is measured. Read noise climbs monotonically with ISO, as gain demands, then drops discontinuously at one ISO, and one only, within the native range:
| Shutter | ISO 400 | ISO 503 | ISO 636 |
|---|---|---|---|
| Mechanical — read noise (ADU) | 2.24 | 1.79 ↓ | 2.15 |
| Electronic — read noise (ADU) | 2.64 | 2.14 ↓ | 2.38 |
And the dynamic-range curve corroborates it independently. PDR sheds ~0.30–0.35 EV per third-stop everywhere else. At ISO 500 it almost stops:
| Shutter | 400 → 503 | 503 → 636 |
|---|---|---|
| Mechanical | −0.13 EV | −0.42 EV |
| Electronic | −0.02 EV | −0.35 EV |
On the electronic shutter, the third-stop from ISO 400 to ISO 500 costs 0.02 EV of dynamic range. The very next third-stop costs 0.35 EV.
What is interpretation, labelled as such. A discontinuous read-noise drop at a single ISO, mirrored by a plateau in dynamic range, is the standard signature of a conversion-gain change (a "second base ISO"). Photons to Photos does not annotate it as such on these charts, and no Fujifilm document describes the X-T5's gain architecture, so "dual conversion gain" is this bank's reading of the data, not a manufacturer claim. The measurements above are read directly from published data; the mechanism is inference.
The operational consequence, and it is concrete. The DR-cost section establishes that — buys two stops of highlight headroom by spending shadow signal-to-noise. That remains true, but the landing point is optimal, and Fujifilm evidently chose it deliberately. —'s ISO—floor sits exactly on the cleaner side of the step, so:
- Shoot — at ISO 500 wherever the light allows. It is the cheapest — in the range.
- ISO 640 is the expensive next click: 0.35 EV of DR for one third-stop, because it is back on the ordinary curve.
- The gap between — and — is smaller than the arithmetic suggests. —'s ISO—floor sits on the low-gain side; —'s ISO—floor sits on the high-gain side. Part of the shadow-noise penalty of the second stop is handed back by the sensor.
Also visible in the same data, the extended-low ISOs cost dynamic range. PDR at ISO 100 is 9.80 EV against 10.42 EV at base ISO 125: the extended settings measure worse than base, consistent with them being pulls rather than a genuine lower-noise mode. Combined with §7's finding that —/400 are unavailable at every extended ISO, there is no reason to use ISO 64/80/100 on this body for anything in this bank.
§7d: The demosaic algorithm, from decoder source, and where the CFA pattern actually lives
§7b records that Fujifilm's own demosaic has never been published. That is still true. But the third-party algorithm, the one every non-Fujifilm raw converter actually runs on your files. Is fully readable, and reading it produced a finding that changes how this bank should verify the CFA.
The algorithm has a name and an author. LibRaw's xtrans_demosaic.cpp carries the comment "Frank Markesteijn's algorithm for Fuji X-Trans sensors" over xtrans_interpolate(int passes). The same algorithm, by descent from dcraw, is what LibRaw, RawTherapee and darktable all use. RawTherapee exposes it as Markesteijn 1-pass / 3-pass, which is the passes argument in that signature.
This puts a mechanism under a claim the bank already makes. flog-and-raw-workflow.md argues that in-camera conversion and X RAW Studio beat third-party raw processing. The reason is now nameable: third-party converters do not run Fujifilm's demosaic, they run Markesteijn's: a different reconstruction of the same photosites. The in-camera JPEG is not "the same image processed differently"; it is a different demosaic upstream of everything else.
There is no hardcoded X-Trans pattern in any decoder: the camera declares it in every file
This was checked in source rather than assumed. dcraw contains no literal X-Trans pattern at all, a search for any initialiser assigning to xtrans or xtrans_abs returns nothing. Both decoders read the 6 × 6 tile out of the raw file, 36 bytes, one per photosite:
| Decoder | Site | Code |
|---|---|---|
| dcraw | Fujifilm MakerNote tag 0x131 |
filters = 9; FORC(36) xtrans_abs[0][35-c] = fgetc(ifp) & 3; |
| dcraw | TIFF CFAPattern (33422), when filters == 9 |
FORC(36) ((char *)xtrans)[c] = fgetc(ifp) & 3; |
| LibRaw | tag 0x0131, commented // XTransLayout |
FORC(36) { int q = fgetc(ifp); xtrans_abs_alias[35 - c] = MAX(0, MIN(q, 2)); } |
Values are 0 = R, 1 = G, 2 = B, and note both read in reverse (35 - c). filters = 9 is the sentinel meaning "X-Trans, not Bayer".
Two consequences that matter:
- The authoritative X-T5 CFA pattern is inside any X-T5 RAF file, written by the camera. Every diagram on the internet, including the one this bank's §1 tile count was built from. Is secondary. A single RAF file would upgrade §1 from "counted off a published diagram" to "read from the camera's own declaration." That is the cheapest remaining primary-source upgrade available to this bank, and it needs one file dropped into
_reference-sources/. - The effective pattern is phase-shifted by the crop margins. LibRaw composes the working array as
xtrans[c] = xtrans_abs[(c/6 + top_margin) % 6][(c + left_margin) % 6]. So the 6 × 6 tile's phase depends on the active-area offset, the absolute pattern and the pattern as seen by the demosaicer are not necessarily the same grid alignment. Any future pixel-level work here must respect that.
Fujifilm's own stated design inspiration
The 2019 award announcement describes the array as inspired by the structure of photographic film, in which silver particles are irregularly arranged. That is a first-party statement tying the CFA directly to this bank's founding argument, the sensor's colour geometry was designed in imitation of film grain's randomness. (Press-level statement, not an engineering document, it explains intent, not implementation.)
What still could not be obtained, after a direct attempt
- The Sony part number. Two X-T5 teardowns were retrieved in full (IRreCams, Fuji Addict). Neither states a sensor part number anywhere in its text.
semiconductor.sony.comreturns 000; Sony does not publish datasheets for custom consumer camera sensors in any case. Die-level identification is TechInsights-class paywalled work. So §7's refusal to name a part number stands, now on the strength of a direct check rather than an assumption. - The patent filing behind the 2019 award. The citation is confirmed; the filing is not. Google Patents 503 · Espacenet 403 · IEEE Xplore 418 · fujifilm-x.com 403 · DPReview 403.
- Fujifilm's own demosaic, transfer functions, grain model and Colour Chrome operator: still unpublished. Nothing found changes §7b's conclusion.
§7e: The X-T5's colour matrix. Numeric colour science, read from source
Everything above about colour has been qualitative. This is not. The X-T5's colour matrix is a published 3 × 3 of real numbers, and it settles two of this bank's standing claims.
Source: LibRaw src/tables/colordata.cpp, line 564, retrieved 2026-07-27.
{ LIBRAW_CAMERAMAKER_Fujifilm, "X-T5", 0, 0, // same CMs: X-T5 and X-T50
{ 11809,-5358,-1141,-4248,12164,2343,-514,1097,5848 } },
⚠What this is, stated before anything is concluded from it. This is the Adobe DNG ColorMatrix, a D65-referred XYZ → camera-native-RGB transform, row-major, scaled ×10000. Three consequences for how far it can be pushed:
- It is Adobe's characterisation, not Fujifilm's. Adobe measures each body for DNG Converter. It is a third-party measurement of the sensor, and is not a Fujifilm document.
- It describes the sensor, not the simulations. The film simulations sit downstream of this. Nothing in this data says anything about Provia, Velvia or Classic Chrome: a distinction this bank has to keep, given how often the two get conflated.
- The per-channel "primaries" derived below fall outside the spectral locus (blue lands at negative y). That is normal and expected. Camera primaries are mathematical, not physical colours, so they are used here only for relative comparison between bodies, never as chromaticities in their own right.
Finding 1: four bodies, one matrix, character-for-character
| Body | Sensor | Matrix |
|---|---|---|
| X-T5 | X-Trans 5 HR | 11809,-5358,-1141,-4248,12164,2343,-514,1097,5848 |
| X-H2 | X-Trans 5 HR | identical |
| X100VI | X-Trans 5 HR | identical |
| X-T50 | X-Trans 5 HR | identical (LibRaw's own comment: "same CMs") |
Recipe consequence: a recipe's colour behaviour should transfer between these four bodies without adjustment. They are the same sensor to Adobe's measurement. What still differs is everything §3 already covers: resolution, and the noise floor that texture-dependent recipes lean on.
Finding 2: numeric confirmation that "X-Trans V" really is two sensors
§3 argued this from pixel pitch alone. The colour data confirms it independently:
| Body | Sensor | Matrix |
|---|---|---|
| X-T5 / X-H2 / X100VI | 5 HR | 11809,-5358,-1141,… |
| X-H2S | 5 HS (stacked) | 12836,-5909,-1032,-3087,11132,2236,-35,872,5330 |
Different silicon, different colour response, measured by a third party who had no stake in this bank's argument. §3's conclusion now rests on two independent lines of evidence rather than one.
Finding 3: the X-Trans IV → V change is largest in blue, and it survives a change of estimator
This bank's IV→V conversion rule says blue rendering shifted between the generations and that ported recipes need a Color Chrome FX Blue adjustment. That rule has always been observational. It now has numeric support.
Comparing generations by three independent metrics, because this bank's own rule is that a difference is only real if it survives a change of method:
| Pair | Metric | R | G | B | Largest |
|---|---|---|---|---|---|
| X-T4 → X-T5 | xy primary shift | 0.0008 | 0.0160 | 0.0268 | B |
| X-T4 → X-T5 | row-relative L2 (WB-invariant) | 0.0312 | 0.0033 | 0.0328 | B |
| X-T4 → X-T5 | angle between response rows | 0.98° | 0.14° | 1.73° | B |
| X100V → X100VI | xy primary shift | 0.0100 | 0.0145 | 0.0251 | B |
| X100V → X100VI | row-relative L2 | 0.0293 | 0.0113 | 0.0326 | B |
| X100V → X100VI | angle between response rows | 1.14° | 0.30° | 1.81° | B |
Blue is the largest change under every metric, on two independent generational pairs. The bank's FX Blue porting rule is corroborated by measurement it was not derived from.
⚠What is deliberately NOT claimed. The R-versus-G ordering flips between metrics, the xy measure makes R the smallest, the other two make G the smallest. Per the estimator-invariance rule, only "B is largest" is reportable; the R/G ordering is not. This is the same test that retracted the 2383 channel claim, applied before publishing rather than after.
Also not claimed: that Adobe's matrices were derived by a uniform method across bodies measured years apart. The blue result holds on two separate pairs, which is what makes it worth stating at all.
§7b: Manufacturer-level: what Fujifilm itself has published, and where the wall is
Fujifilm's own official term for the CFA is "low periodicity", not "random", not "aperiodic".
In May 2019 the X-Trans CMOS sensor received a National Invention Award from the Japan Institute of Invention and Innovation, taking the Minister of Education, Culture, Sports, Science and Technology's Award, cited as:
"Invention of a digital imaging element using a color filter array with low periodicity."
The award assessed the sensor as fitted to the X-T3. That citation is the most authoritative public description of the design intent that exists, and it settles the terminology question raised in §1: the array is neither random nor strictly aperiodic. It is a deterministic 6 × 6 tile whose period is long enough to push the CFA's own resonances away from the spatial frequencies where subject detail lives. "Low periodicity" is exactly the right phrase, and it is Fujifilm's.
The algorithm side, and the wall.
There is a peer-reviewed algorithm in the literature: Rafinazari & Dubois, "Demosaicking algorithm for the Fujifilm X-Trans color filter array", IEEE ICIP 2014. It is real and citable.
But it is a third-party algorithm for the X-Trans CFA. It is not Fujifilm's algorithm. That distinction matters and is the boundary of what can honestly be claimed:
| Public? | |
|---|---|
| The CFA pattern (6 × 6, 55.6/22.2/22.2) | ✅ Published, and awarded |
| Academic demosaicing algorithms for that pattern | ✅ Published (ICIP 2014 and later) |
| Fujifilm's own in-camera demosaic | ❌ Proprietary, never published |
| The film simulations' actual transfer functions | ❌ Proprietary. Fujifilm publishes qualitative design statements only |
| The ACROS grain model | ❌ Proprietary. Described in prose ("models the grain process, not a noise overlay"), never specified |
| Colour Chrome Effect's operator | ❌ Proprietary |
This is the honest ceiling on "knowing the sensor like the manufacturer." The hardware is documented to a genuinely deep level. Dimensions, effective pixels, CFA geometry, ISO windows, DR mechanics, and everything derivable from them (§7). The processing is not. Fujifilm has never published a tone curve, a demosaic, or a grain model, and no amount of research will produce one, because the documents do not exist publicly.
Which means: every claim in this bank about what a film simulation does tonally is either (a) Fujifilm's own prose, (b) an inference from that prose, or (c) an observation from images. None of it is measurement. That was the substance of the critique that produced the DR-cost section, and it applies to the simulations too. The bank now labels the difference everywhere.
Not established, despite searching:
- The sensor's fabricator and part number. Fujifilm operates no CMOS fab and Sony Semiconductor is the near-universal assumption, but no part number was verified from any reachable source, so none is stated here. The §4 "same silicon scaled up" observation rests solely on the pixel-pitch coincidence (GFX 102 MP at 3.76 µm vs X-Trans 26 MP at 3.77 µm), which is this project's own arithmetic.
- The patent number behind the awarded invention, the award citation was found, the filing was not.
- ~~Whether the sensor has dual conversion gain / a second base ISO~~. Answered 2026-07-27 in §7c: a conversion-gain step at ISO 500, measured on two independent Photons to Photos charts. What is still unpublished is Fujifilm's own account of the gain architecture, the step is read off measurements, and no manufacturer document describes it.
Sources for this subsection: the National Invention Award citation and its May 2019 date, and the ICIP 2014 paper's existence and authorship, were established via web search. Snippet-level, not full-text, because the underlying pages (IEEE Xplore, ResearchGate, dblp, DPReview, the IRreCams teardown and Fujifilm's own cheat-sheet PDF) returned HTTP 403 or 000 from this environment. Everything in §7 proper is from the manual archived in this repo and is independent of that limitation.
Network status retested 2026-07-27 after the environment policy was opened: Photons to Photos now returns 200 and is the source for §7c. Still blocked: DPReview 403 · Espacenet 403 · IEEE Xplore 418 · Google Patents 503 · fujifilm-x.com 403. The award citation and the ICIP paper therefore remain snippet-level.
What could not be verified
Stated so the gaps are visible rather than silently filled:
- Whether GFX bodies fit an OLPF. Not established. Most modern high-resolution Bayer cameras omit it, but that is an inference, not a finding, and it is not claimed here.
- Fujifilm's official reason for not using X-Trans on GFX. No first-party statement was located. The plausible engineering argument, that at medium-format resolution and pixel pitch, aliasing against subject detail is already rare enough that X-Trans's benefit does not justify the demosaic cost. That is reasoning rather than sourcing, and is labelled as such.
- Whether the film-simulation pipeline differs between X-Trans and Bayer bodies beyond demosaicing. Unknown. Fujifilm describes simulations as spectral-sensitivity-aware conversions of the raw signal, which implies CFA-specific handling, but no published detail confirms how much.
- No GFX or X-H2S body is available to this project, so every cross-body claim here is derived from published specifications and geometry, never from testing.
Sources: Fujifilm published sensor specifications; the X-Trans 6 × 6 CFA tile and the low-periodicity/no-OLPF rationale (§7b), and the X-Trans CMOS 5 HR vs 5 HS split, verified via web research 2026-07-25. The 55.6 / 22.2 / 22.2 split is not a quoted figure. It is the exact tile count (20 / 8 / 8 of 36), which is why it is stated to 3 s.f. rather than the 55 / 22.5 / 22.5 that circulates in secondary sources. GFX Bayer CFA confirmed across multiple independent reviews. §7 is sourced to the X-T5 Owner's Manual archived in this repo. All pixel-pitch, sensor-area, Nyquist and 48 µm projection figures are this project's own arithmetic from published sensor dimensions and rasters. Recomputable from the tables in §2 and §7.
Last updated: 2026-07-27
The settings live in the packs
This page explains how the controls behave. The validated recipes that put them to work, with every value and the datasheet evidence behind it, are in the packs.