Arducam 200MP raw images have blocky 4x4 pattern and dark 4x4 areas on Windows 11

Hi everyone, I’ve got an Arducam 200MP module (purchased directly from Arducam) connected to a Windows 11 PC. I captured raw images using the arducam_demo.py script from the Quick Start Guide, then converted the raw to RGB.jpg using arducam_200mp_convert.py. I also generated a BW.jpg from the same raw data with OpenCV:

cv2.normalize(frame, None, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)

Here’s what I’m seeing:

  • The processed 200MP RGB JPG has a very blocky appearance.
  • Looking at the raw data, there’s a repeating 4x4 pixel pattern. I’m guessing the sensor uses a Quad Bayer color filter — can anyone confirm?
  • Every second 4x4 block looks significantly darker than the surrounding areas, even when the object is completely uniform. That really doesn’t seem right.

It’s present in every 200MP raw image I’ve taken. I already tried restarting the camera and switching to a different Windows 11 PC, but no change.

Attached are the RGB and BW samples:

bw_jpg.JPG
rgb.JPG

Thanks for the detailed write-up and the samples. Just to double-check the raw side of things: when you say the darker 4x4 blocks show up on a uniform surface, is that consistent across the whole frame and across every capture? I want to rule out lighting or scene-related variation before digging into the conversion.

Yes, it’s consistent. The alternating dark 4x4 blocks appear across the entire frame and in every single raw image, even with a totally flat, evenly lit target. Same result after restarting the camera and on a second Windows 11 machine. So it’s not a one-off frame or a lighting problem.

Okay, that confirms it’s not scene-related. I checked the pixel arrangement for the 200MP sensor. It does use a Quad Bayer-type color filter, but the layout is not standard Bayer. The order is shown on the left side of this diagram:

image.png

To convert it to a standard Bayer pattern you need a remosaic operation. The sensor itself doesn’t support 200MP remosaic, so it has to be done in software by splitting and merging pixels according to that order. When I look at your samples, the blocky RGB appearance matches a conversion done without that remosaic step. And the alternating dark blocks point to a difference in exposure before the pixel, which produces the anomaly in the converted image.

Thanks for explaining that. So to confirm my side matches what you found:

  1. The processed 200MP RGB JPG has a very blocky appearance.
  2. The raw data shows a repeating 4x4 pixel pattern, and the sensor uses a Quad Bayer color filter.
  3. Every second 4x4 pattern is darker than surrounding areas even on a uniform object — not expected.

For anyone else running into this, here are my exact reproduction steps:

  1. Capture 200MP raw using arducam_demo.py (from Quick Start Guide on Windows - Arducam Wiki).
  2. Convert the raw to RGB.jpg using arducam_200mp_convert.py.
  3. Convert the same raw data to BW.jpg with OpenCV:
cv2.normalize(frame, None, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)

Is there any workaround for the exposure-difference anomaly, or are we waiting on a fix?

To summarize where this currently stands: the 200MP sensor uses a non-standard pixel arrangement (not standard Bayer), so software remosaic is required by splitting and merging pixels. The blocky appearance and the alternating dark 4x4 patterns come from the conversion process and an exposure difference before the pixel. Unfortunately, as of this message, we have not found a solution for that exposure-difference anomaly. I’ll post back here once there’s an update.