The implementation is already complete:
- Histogram stretch with 1st/99th percentile clipping in contrast.rs
- Image-source dispatch in dispatch.rs (DCT→Sauvola, Flate→Otsu, JBIG2→Skip)
Per-image dispatch is the correct design - each image XObject is processed
based on its own filter chain, not by page-level dominant area.