ISP-Bypass Successful for AR0234, but Software Debayering Fails to Produce Accurate Colors in Orin NX / JetPack 6.2:

I am working on an industrial vision project using a Jetson Orin NX (JetPack 6.2 / L4T 36.5) and an Arducam AR0234 Global Shutter camera. I am attempting to stream color video while bypassing the hardware ISP, but I have hit a wall regarding color reconstruction.
Current Status

Hardware Connection: I have successfully interfaced the AR0234 directly to the MIPI CSI port (Seeed J40 carrier board).

Data Access: I have bypassed the nvargus-daemon (which returns "Insufficient camera devices") and am successfully reading raw BA10 (10-bit Bayer) data via the V4L2 API.

The Glitch: I have addressed the bit-packing issue by shifting the data (>> 6) to extract clean 8-bit data.

The Problem

While I am now able to pull raw data and perform software demosaicing (using OpenCV and manual RGB channel balancing), I am not achieving real-life color accuracy. Despite trying all four Bayer patterns (GRBG, RGGB, BGGR, GBRG) and attempting to apply a custom 3x3 Color Correction Matrix (CCM), the output colors are consistently incorrect, flat, or heavily tinted. The camera sensor is clearly capable of producing high-quality color, but the software-side “Software ISP” approach is failing to map the raw sensor data correctly to the sRGB space.
Why I’m stuck:

GStreamer Negotiation Errors: Attempting a standard GStreamer pipeline (v4l2src ! bayer2rgb ! ...) results in reason not-negotiated (-4) errors, likely because v4l2src and bayer2rgb are not handling the 10-bit raw data format natively or correctly.

Missing ISP Processing: Without the hardware ISP, I am essentially operating without black-level compensation, professional white balance, and high-quality color transformation.

Software Limitations: My manual software-side color correction (gain multipliers) is failing to produce acceptable "real-life" color fidelity, which is critical for my application.

My Question to the Community

Since the hardware ISP path (nvarguscamerasrc) is inaccessible due to the lack of an Arducam-specific ISP tuning file for JetPack 6.2 on this custom board, what is the recommended professional workflow to achieve color-accurate output from raw Bayer data on a Jetson?

Is there a way to integrate a custom 3x3 CCM or ISP-like software pipeline into a GStreamer pipeline that actually supports 10-bit data?

Are there recommended libraries or C++ implementations for "Software ISP" that perform better than generic OpenCV debayering?

Is there a known way to get an Arducam AR0234 to play nicely with the nvargus-daemon on custom Orin NX boards?

Hello @amanpatra2022!

Based on the title and content of your topic, it looks like it may receive better visibility and feedback in a different category. We took the liberty of moving it for you.

If this was an incorrect assessment, please send me a direct message.

Disclaimer: this moderation suggestion and message were generated with AI assistance.

You may need to reference to know the data bit field in the memory.