💬Comments welcome. To leave a note, select any text and click the note / highlight button that pops up — or open the panel with the tab at the top-right (‹). Notes are visible only inside our private review group.
Computational Photography, an AI-powered Slopendium — 15 Demosaicking and joint methods
expand to📖 Full book outline1 parts · 13 chapters · 59 sections · 12 figures embedded · 3 placeholders · double-click a figure to enlarge
fig-color-space-atlas · **interactive** color-space atlas: one space drawn twice, in its own geometry (cube / cone / bi-cone / warped cube) and in a chosen ambient frame (XYZ, LMS, linear RGB, sRGB, Chong, Oklab), from the same lattice, as edges / voxels / one slice; MacAdam ellipses optional; click to read coordinates in both; stripes for colors outside sRGB. Placed at the end of the perceptually-uniform section of **4.6 Advanced color**, where it works as the chapter's capstone: by then HSV/HSL, CIELAB, Oklab and Chong have each been shown alone, and the atlas is about the map between them. URL carries the state (`?space=&ambient=&mode=&axis=&at=&grid=&macadam=&zebra=`). 🟨fig-rotation-challenge · Andrew Adams' rotation challenge: rotate a full turn in N steps of 360/N° (each step bilinear-resamples the PREVIOUS result), for N∈{10,60,360}; track a validity mask through identical rotations so corners that ever leave the frame go black. Result returns to 0° but is resampled N times → accumulated blur/mush + shrinking valid region toward the inscribed disc. More, smaller rotations compound MORE damage (rotate k× by 360/N, not once by k·360/N) ✅
equations
the bilinear estimate
the constant-difference assumption $R - G$ locally smooth
the Hamilton-Adams gradient test.
15.1.1 Downsampling and bilinear interpolation, and how they fail⧉
fig-vary-exposure-knobs · the four exposure knobs and their side effects — none for shutter, depth-of-field for aperture, noise for ISO, color cast plus camera contact for ND 🟨fig-white-balance · **interactive** white-balance / metamerism playground (BASIC → the limits of white balance): a Macbeth ColorChecker rendered from spectral reflectances under a chosen illuminant (D65 / tungsten A / spiky fluorescent / warm LED); shows captured vs D65 ground truth, each patch's resulting spectrum, the best **diagonal** (von Kries) vs full **3×3** correction (least-squares, mean ΔE printed), and manual temperature/tint sliders — spiky illuminants leave an irreducible residual no 3×3 can remove ✅
⬜ figure not yet created
the prefilter mismatch on Bayer
⬜ figure not yet created
router footprints as prefiltersfig-coma · coma: an off-axis parallel bundle where each annular aperture zone images to a different height; chief ray through the lens center + zonal rays missing a common focus → the one-sided comet ("coma") spot with a head and a radial tail ✅
fig-rgb-channels · a real photo split into its R / G / B grayscale planes — what each channel "sees" (Image representation → An image is an array, BASIC) ✅
fig-seidel-aberrations · the five monochromatic (Seidel) aberrations at a glance — spherical, coma, astigmatism, field curvature, distortion — each a tiny ray/spot icon + a one-line "what it looks like" note ✅fig-learned-vs-handdesigned · same inverse-problem skeleton, prior swapped: classical (data-fit + hand prior $\Phi$) vs learned ($f_\theta$ fit to data) (ML) ✅
15.6.1 The data problem hiding inside a free training set⧉
fig-color-space-atlas · **interactive** color-space atlas: one space drawn twice, in its own geometry (cube / cone / bi-cone / warped cube) and in a chosen ambient frame (XYZ, LMS, linear RGB, sRGB, Chong, Oklab), from the same lattice, as edges / voxels / one slice; MacAdam ellipses optional; click to read coordinates in both; stripes for colors outside sRGB. Placed at the end of the perceptually-uniform section of **4.6 Advanced color**, where it works as the chapter's capstone: by then HSV/HSL, CIELAB, Oklab and Chong have each been shown alone, and the atlas is about the map between them. URL carries the state (`?space=&ambient=&mode=&axis=&at=&grid=&macadam=&zebra=`). 🟨
fig-coma · coma: an off-axis parallel bundle where each annular aperture zone images to a different height; chief ray through the lens center + zonal rays missing a common focus → the one-sided comet ("coma") spot with a head and a radial tail ✅
equations
the joint forward model $y = M(x) + n$ with $M$ the mosaic operator and $n$ signal-dependent
the sequential pipelines written out for comparison.
▸15.11 Synthetic data, unprocessing, and raw reconstruction⧉
fig-numbers-mean-versions · one set of raw-DNG pixel values rendered three plausible ways — scene-linear→sRGB (dull but correct) · the same numbers mis-encoded (double gamma) · + beauty pass (what a viewer expects); makes "numbers are meaningless without their encoding" concrete (Image representation → what the numbers mean, BASIC) ✅
equations
the forward pipeline as a composition and its inverse, with the non-invertible steps named.