Natural Color Rendering

CS 184 Final Project · Final Report

Lu Jin Xujia Liu Zhehao Wu Zihan Yi
Burst HDR Merge / Denoise Order Diffusion Refinement Tone Mapping Ablation
Showcase & Links: Final deliverables (video, slides, and website).
Website: https://none-momo.github.io/CS-184-NDR/final_report.html
Video: Google Drive link
PPT: Google Slides link

Abstract

We build a computational photography pipeline for high-ISO burst RAW imaging and display-ready color rendering. Our system compares multiple processing orders (denoise→merge, merge→denoise, and coarse→merge→refine), integrates an optional diffusion-based learned refinement backend, and evaluates tone-mapping / color finishing variants (Reinhard, filmic/Hable, and ACES). The report emphasizes visual quality, pipeline clarity, and reproducible evaluation, aligning with the graphics-oriented focus of CS 184. We learned that in a graphics setting, the finishing stage (tone mapping and color) often dominates perceived quality, and that clear comparisons (tables, metrics, zoom-ins) are essential for communicating results.

Technical Approach

We evaluate three end-to-end processing orders (Pipeline A/B/C) that reorder the same core stages (classical denoising, HDR merge/alignment, diffusion refinement, and finishing). For readability, we summarize A/B/C explicitly in the Pipeline Overview section and then present denoising and tone-mapping effects separately in the Results.


Unique decisions and enhancements. We implemented a modular C++ pipeline interface that allows swapping denoisers and reordering stages with a single flag. We integrated a diffusion backend as an optional post-merge refiner via a C++↔Python bridge, and performed a tone mapping ablation to align the project with CS 184’s emphasis on visual quality.

Pipeline Overview

Our system is organized as three end-to-end pipeline variants that reorder the same core stages (denoising, HDR merge/alignment, and finishing). This report separates denoising effects from tone mapping effects to keep the results easy to read.

PipelineOrderIntuitionWhen it helps
Pipeline A classical denoise (per-frame) → HDR merge → finishing Remove sensor noise early so fusion operates on cleaner inputs Fast baselines; stable improvement on high ISO
Pipeline B HDR merge → diffusion refine (merged) → finishing Learned prior cleans the merged image while preserving global structure Strong denoising at very low light; may over-smooth textures
Pipeline C coarse denoise → HDR merge → diffusion refine → finishing Hybrid cascade: light classical pre-clean + diffusion fine-tune More robust across scenes; more knobs but better trade-offs

In the sections below, we first isolate the denoising vs. no-denoising comparison (using DSC08538/DSC08539), then isolate the tone mapping ablation (using three additional scenes).

Denoising vs. No Denoising

We use two low-light scenes (DSC08538 and DSC08539) to highlight the effect of denoising. The goal is to show how much noise can be removed without destroying small light sources and subtle gradients in dark regions.

Where to look: background chroma noise in dark areas, the halo around point lights, and whether denoising washes out faint details.

Scene Pair — DSC08538 and DSC08539

For each scene: No-mapping (baseline) → DenoiseMethod3 (tone map). Hover to zoom for close inspection.

DSC08538

DSC08538 no-mapping
DSC08538 · No-mapping (baseline)
DSC08538 denoise
DSC08538 · Denoise
DSC08538 luminance
DSC08538 · ACES-luminance

DSC08539

DSC08539 no-mapping
DSC08539 · No-mapping (baseline)
DSC08539 denoise
DSC08539 · Denoise
DSC08539 luminance
DSC08539 · ACES-luminance
Result summary. Denoise Denoise mainly reduces chroma/luma noise in very dark regions, but under a no-mapping baseline the improvement can be hard to perceive due to under-exposure. Applying ACES-luminance improves display visibility (midtone lift + smoother highlight roll-off around point lights), making denoising benefits easier to evaluate. Focus on: (i) dark-sky noise texture, (ii) halos near light sources, (iii) preservation of faint structures vs. over-smoothing.

Tone Mapping Ablation

After denoising and merging, the same scene-referred signal can look dramatically different once mapped to display space. We therefore compare three tone-mapping operators side-by-side on three scenes, using No-mapping as the baseline.

Where to look: highlight roll-off (avoid hard clipping), shadow lift (visibility without noise blow-up), and color consistency.

Tone Mapping Ablation — IMG_4849

Indoor / structured content. Inspect edges and smooth gradients for banding or contrast loss. Hover to zoom; compare highlight roll-off, midtone contrast, and color shift.

IMG_4849 no-mapping
No-mapping
IMG_4849 hasselblad
Hasselblad
IMG_4849 guided-filmic
Guided filmic
IMG_4849 aces-luminance
ACES (luminance)

Tone Mapping Ablation — IMG_5239 2

Additional scene (filename contains space). Useful to validate robustness of the reporting pipeline. Hover to zoom; compare highlight roll-off, midtone contrast, and color shift.

IMG_5239 2 no-mapping
No-mapping
IMG_5239 2 hasselblad
Hasselblad
IMG_5239 2 guided-filmic
Guided filmic
IMG_5239 2 aces-luminance
ACES (luminance)

Tone Mapping Ablation — IMG_8457

Low-light sample for generalization. Focus on highlight roll-off and color casts. Hover to zoom; compare highlight roll-off, midtone contrast, and color shift.

IMG_8457 no-mapping
No-mapping
IMG_8457 hasselblad
Hasselblad
IMG_8457 guided-filmic
Guided filmic
IMG_8457 aces-luminance
ACES (luminance)

Method / Pipeline Variants Table

We group methods into (i) HDR+ reproduction baselines that isolate alignment/merge behavior (Average vs. Robust), (ii) our end-to-end pipeline orders (A/B/C), and (iii) a tone mapping ablation that compares three display-mapping operators.

A. HDR+ Reproduction Baselines (Alignment + Merge)

Baseline Order Key idea Improves Failure mode
Average align → temporal mean Aligned averaging across burst frames (simplest HDR+ baseline). Noise reduction (≈ √N) Blur/ghosting if residual misalignment exists
Robust align → robust merge Adaptive fusion that down-weights inconsistent regions to suppress mismatch artifacts. Sharper details; fewer ghosts More compute; sensitive to weighting/window choices

B. End-to-End Pipeline Orders (Our System)

Pipeline Order Intuition When it helps Trade-off
Pipeline A classical denoise → HDR merge → finish Reduce per-frame sensor noise first so fusion operates on cleaner inputs. Fast, stable improvements at high ISO May smooth fine detail before merge
Pipeline B HDR merge → diffusion refine → finish Apply a learned prior after merging to clean noise while preserving global structure. Strong denoising in very low light Higher runtime; risk of over-smoothing textures
Pipeline C coarse denoise → HDR merge → diffusion refine → finish Hybrid cascade: light classical pre-clean stabilizes merge, then diffusion fine-tunes. More robust across scenes; better trade-off More knobs; tuning required

C. Tone Mapping Ablation (3 Operators)

Tone mapping What it does Typical visual effect What to look for
Hasselblad Filmic-style curve tuned for photographic contrast and smooth roll-off. More “photo-like” contrast; smoother highlights. Highlight roll-off, midtone contrast, shadow lift
Guided-filmic Guided/edge-aware filmic mapping to preserve structure under compression. Better structure preservation; reduces flat-looking compression. Edge halos, local contrast around boundaries
ACES-luminance ACES fitted curve applied through luminance for stable color appearance. Cinematic highlight compression; consistent color response. Color cast shift, highlight saturation, shadow noise
Result summary. Denoise mainly reduces chroma/luma noise in very dark regions; however, under the no-mapping (near-linear) baseline, the improvement can be difficult to perceive because the image remains under-exposed. To avoid confounding denoising with display mapping, we fix the finishing operator and apply ACES-luminance, which lifts midtones and provides smoother highlight roll-off around point lights. With ACES-luminance, denoising gains become more interpretable: (i) background noise texture in the dark sky becomes more uniform, (ii) halos and shimmer near small light sources are reduced, and (iii) faint structures are either preserved or slightly smoothed depending on the denoising strength. Overall, ACES-luminance improves readability (display visibility) while denoise improves noise statistics; the main trade-off is potential loss of micro-texture in extremely low-contrast regions.

Quantitative Metrics (Grouped by Scene)

To keep the report readable, we group proxy metrics by scene (image_id) and enforce a consistent variant order. We report no-reference proxies (MAD noise σ, Tenengrad sharpness, local contrast) because ground truth is unavailable.

Metrics — DSC08538

Variants are sorted consistently: raw → no-mapping → denoise → hasselblad → guided-filmic → aces-luminance.

VariantNoise σSharpnessContrast
raw0.0111780.0018650.000062
no-mapping0.0174660.0010390.000038
denoise0.0174660.0010390.000038
hasselblad0.0418810.0031970.000113
guided-filmic0.0395090.0010590.000052
aces-luminance0.1456440.0318240.000966

Metrics — DSC08539

Variants are sorted consistently: raw → no-mapping → denoise → hasselblad → guided-filmic → aces-luminance.

VariantNoise σSharpnessContrast
raw0.0053110.0016450.000046
no-mapping0.0124680.0011650.000032
denoise0.0124680.0011650.000032
hasselblad0.0245320.0028120.000080
guided-filmic0.0205280.0012710.000043
aces-luminance0.1174890.0352400.001039

Metrics — IMG_4849

Variants are sorted consistently: raw → no-mapping → denoise → hasselblad → guided-filmic → aces-luminance.

VariantNoise σSharpnessContrast
raw0.0818170.0591590.001773
no-mapping0.0760270.0461480.001455
denoise0.0760270.0461480.001455
hasselblad0.0656340.0359640.001166
guided-filmic0.0781560.0348250.001211
aces-luminance0.0460770.0848330.002846

Metrics — IMG_5239 2

Variants are sorted consistently: raw → no-mapping → denoise → hasselblad → guided-filmic → aces-luminance.

VariantNoise σSharpnessContrast
raw0.0062110.0499390.001523
no-mapping0.0087060.0367560.001211
denoise0.0087060.0367560.001211
hasselblad0.0240500.0789130.002732
guided-filmic0.0319930.0335710.001349
aces-luminance0.0589940.6116040.021229

Metrics — IMG_8457

Variants are sorted consistently: raw → no-mapping → denoise → hasselblad → guided-filmic → aces-luminance.

VariantNoise σSharpnessContrast
raw0.0190980.3823350.009969
no-mapping0.0186780.3641080.009573
denoise0.0186780.3641080.009573
hasselblad0.0348850.2392510.006534
guided-filmic0.0294900.1955240.005350
aces-luminance0.1420340.0879480.002890

Note: We intentionally omit PSNR/SSIM because valid ground-truth references are unavailable for these captures; surrogate PSNR can be misleading. Across all scenes, the proxy metrics show a consistent trade-off between noise suppression and detail preservation. Variants designed to smooth the image (e.g., the denoise output) generally reduce the MAD-based noise estimate in very dark regions, while simultaneously lowering Tenengrad sharpness and, in some cases, local contrast—indicating that part of the “detail” being removed is either fine texture or high-frequency noise. In contrast, display-mapping variants (hasselblad / guided-filmic / aces-luminance) mainly shift local contrast and perceived brightness rather than purely minimizing the noise proxy, which matches our qualitative observation that tone mapping improves readability (midtone lift and highlight roll-off) but can also amplify visible noise if shadows are lifted aggressively. Because our captures lack a noise-free ground truth, we report these no-reference proxies to support trends rather than absolute quality rankings, and we interpret them together with the zoom-in visual comparisons.

Problems Encountered & Lessons Learned

This project combined a multi-stage imaging pipeline with learning-based refinement. Below are the most important engineering issues we faced and the takeaways that shaped our final presentation and evaluation.

Problems encountered

what slowed us down
  • Format / size mismatches: intermediate images from different stages required strict normalization and shape checks.
  • Display readiness: linear intermediates look visually incorrect until a finishing stage maps them to display space.
  • Model constraints: diffusion refinement quality depends on runtime budget, device availability, and hyperparameter sensitivity.

Lessons learned

what we’d repeat
  • Clear pipeline contracts (I/O formats, scaling, naming) make ablations easy to run, debug, and explain.
  • In CS184, presentation quality (comparisons, zoom-ins, readable tables) matters as much as code.
  • Without ground truth, pair proxy metrics with qualitative inspection to avoid misleading conclusions.

References

Contributions

  • Lu Jin: reproduced the core Google HDR+ burst-photography pipeline from multi-frame input to high-quality output, multi-scale pyramid block-matching alignment, and adaptive robust fusion, generated the quantitative metrics tables and helped integrate materials into the PPT, project webpage, and video.
  • Xujia Liu: designing the modular pipeline and pluggable tone-mapping framework, building the project website, and implementing an edge-aware filmic tone-mapping method (guided-filter base/detail decomposition + adaptive detail boost + cinematic post-processing) that is methodologically complementary to my teammate's pointwise color-science approach.
  • Zhehao Wu: defining the project scope through a survey of related work, architecting the end-to-end processing pipeline integrating denoising, HDR merging, and tone mapping, and implementing the batch processing CLI for systematic multi-method output generation
  • Zihan Yi: integrating a Python diffusion-based restoration backend into the C++ HDR pipeline through binary IPC, allowing diffusion to serve either as the main denoiser or as a refinement stage. I also implemented aces-luminance, a stable, interpretable, color-preserving ACES tone mapping baseline.