AVFoundation: full-resolution Quad Bayer RAW capture path for third-party computational photography? (FB25352517)

At the WWDC26 Camera and Photo Technologies Group Lab (session 8018, ~29:55 to 32:46), the panel explained why ProRAW can produce 48 MP output from Quad Bayer sensors while native Bayer RAW is limited to the binned resolution.

ProRAW is already demosaiced and linearized, and may incorporate Photonic Engine multi-frame processing. The native RAW path exposes the binned Bayer result. A true full-resolution RAW output would be Quad Bayer, not conventional Bayer, and supporting it properly needs a decoding path around it.

The panel suggested filing Feedback Assistant requests if developers need this, so I filed FB25352517.

My use case is computational photography that wants minimally processed sensor-domain samples on purpose — its own multi-frame alignment, denoising, HDR fusion, motion rejection, and super-resolution. Adobe Project Indigo is a public example of that kind of pipeline. It captures RAW bursts and uses measured sub-pixel variation between frames to reconstruct detail.

Processed 48 MP photos and ProRAW don't cover that. They've already been through Apple's reconstruction or demosaic.

Is filing enhancement requests still the intended path for a supported full-resolution Quad Bayer RAW or mosaic capture path? If so, what would make these reports more useful — mosaic metadata, DNG representation, CIRAWFilter support, AVCaptureDevice.Format capability discovery, something else?

WWDC26 session:
https://developer.apple.com/videos/play/wwdc2026/8018/

Project Indigo technical overview:
https://research.adobe.com/articles/indigo/indigo.html

Answered by DTS Engineer in 912839022

Thanks for filing FB25352517, and for laying out the use case so clearly.

Yes. Your report is an enhancement request, which is the way to ask for a new capture capability like this. I checked on it, and it's open and under investigation.

Your report already describes the use case and the kinds of support you'd want. A few additions would make it more specific:

  • The devices and cameras you need this on.
  • Whether you capture single frames or bursts, and the burst length and frame rate your pipeline needs.
  • The exact per-frame values your pipeline depends on, such as the color filter layout, black and white levels, exposure and ISO, and timestamps for alignment.
  • A short sample that shows what the current Bayer RAW path returns on a specific device and iOS version.

If other developers need the same capability, filing their own enhancement requests helps engineering understand the demand.

Please note that filing an enhancement request does not guarantee Apple will add any requested functionality to Apple products in the future. However, with that said, filing an enhancement request is a good way to get your ideas in front of the folks who make decisions about that sort of thing. Bug Reporting: How and Why? has tips on creating your report.

Thanks for filing FB25352517, and for laying out the use case so clearly.

Yes. Your report is an enhancement request, which is the way to ask for a new capture capability like this. I checked on it, and it's open and under investigation.

Your report already describes the use case and the kinds of support you'd want. A few additions would make it more specific:

  • The devices and cameras you need this on.
  • Whether you capture single frames or bursts, and the burst length and frame rate your pipeline needs.
  • The exact per-frame values your pipeline depends on, such as the color filter layout, black and white levels, exposure and ISO, and timestamps for alignment.
  • A short sample that shows what the current Bayer RAW path returns on a specific device and iOS version.

If other developers need the same capability, filing their own enhancement requests helps engineering understand the demand.

Please note that filing an enhancement request does not guarantee Apple will add any requested functionality to Apple products in the future. However, with that said, filing an enhancement request is a good way to get your ideas in front of the folks who make decisions about that sort of thing. Bug Reporting: How and Why? has tips on creating your report.

Thank you for confirming FB25352517 is open and under investigation, and for naming the four specifics: devices and cameras, single vs burst, per-frame values, and a sample of the current path. In your order:

this supplement has been added to FB25352517 via Add More Information.

(a) Devices and cameras. Primary: iPhone 18 Pro Max — and iPhone 18 Pro, with the identical camera system (Apple Tech Specs). All three 48MP Fusion cameras: 1) Fusion Telephoto, 48MP, 100mm (4x), ƒ/2.8 — the core ask; 2) Fusion Main, 48MP, 24mm, variable ƒ/1.48–ƒ/4.0, as the comparison camera; 3) Fusion Ultra Wide, 48MP, 13mm, ƒ/2.2. In API terms: any camera where availableRawPhotoPixelFormatTypes today returns only binned Bayer RAW formats.

(b) Bursts. Adobe Research documents Project Indigo merging up to 32 RAW frames per photo, aligned to a reference frame. INFERRED requirement: at least 15 frames, ideally up to 32, at full telephoto resolution, sustained and gap-free at the stream's native cadence (15 = shipped count in Google's published handheld multi-frame SR work; 32 = Indigo's documented ceiling; Adobe publishes no Indigo frame rate). The crop math: at 12x (3x crop of the 4x telephoto), today's 12MP binned stream starts from ~1.33MP per frame, at 16x (4x crop) from ~0.75MP. From a full-res 48MP stream: ~5.3MP and ~3MP.

(c) Per-frame values. See the table. Every value must describe the 48MP readout delivered, not the binned mode. One blocker today: exact exposure and ISO are only guaranteed at speed prioritisation; balanced and quality hand exposure to Apple's fusion pipeline.

(d) What the current path returns. Plainly: no public Bayer RAW characterization of the iPhone 18 Pro Max telephoto exists. On the closest documented devices, the path returns a single-frame, 12MP-class, mosaiced CFA DNG; 48MP exists only as ProRAW (linear, demosaiced). Reeflex's FAQ states that 12MP Bayer cap (iPhone 14/15 Pro series). Published readouts: iPhone 11 Pro telephoto, Halide II, iOS 18.0.1 (ExifTool) — Color Filter Array, 1 sample per pixel, BlackLevel 528. iPhone 12 Pro main, Halide, iOS 14.3 era — BlackLevel 528, WhiteLevel 4095. The same author's ProRAW file reads BlackLevel 0 and WhiteLevel 65535.

Decode path, part of the request: the WWDC26 panel (session 8018) said Quad Bayer DNG output needs CIRAWFilter decode support. The ask is the trio: full-res capture format, a defined DNG representation (4x4 CFA layout and levels), and CIRAWFilter Quad Bayer decode.

Every figure above traces to the published sources named in the text.

Per-frame valueNeededExposed today
CFA layout4x4 Quad Bayer layout, true for the 48MP modePartial: CFA, 1 sample/pixel, plane colours in files; exact CFAPattern unpublished — UNVERIFIED
Black levelTrue 48MP-mode value, per frame528 on 11 Pro telephoto and 12 Pro main (see (d)); Quad Bayer value UNVERIFIED
White levelTrue 48MP-mode value, per frame4095 on 12 Pro main; Quad Bayer value UNVERIFIED
ExposureActual value per frame, delivered with the bufferIn single-frame EXIF; burst stability undocumented
ISOActual value per frame, delivered with the bufferIn single-frame EXIF; burst stability undocumented
TimestampsSub-frame-interval, monotonic, per frame, for alignmentWall-clock at 1-second resolution only in published readouts; no alignment-grade timestamp