Camera ISP and argus framework question on Xavier


Based on:

So, in order to use ISP, I have to use the Nvidia argus framework/library, is it correct? For example: GStreamer with the nvarguscamerasrc Plugin.

  1. Is this ISP on camera side? Or ISP is part of SoC on Xavier side?
  2. If I use the standard Linux V4L2 library and v4l2-ctl command, I won’t be able to use ISP feature, correct? What feature does ISP provide? e.g. format conversion and post-processing? What does it do in post-processing?
  3. When use argus/nvcamerasrc API, I can set ISP bypass mode. If I use ISP bypass mode, ISP is NOT doing post-processing/format convert correct?


  1. It’s part of SoC in Xavier
  2. Yes, v4l2-ctl only for capture raw data. The argus pipeline are include ISP
  3. No, can bypass ISP for arugs/nvcamerasrc. v4l2-ctl is bypass ISP mode and need software debayer then doing what your want.


Thanks for your reply.

If I am capturing/grabbing raw frames ONLY, can I say using v4l2-ctl is same as using arugs/nvcamerasrc? Will I lose any benefit of ISP in this case?

Also, I want to ask the brief overview of camera data flow.

  1. If I use v4l2-ctl, then the data flow can be briefly viewed as:
    camera_sensor —> CSI —> VI —> memory
    Is it correct?

  2. If I use arugs, ISP will get involved, so it becomes this:
    camera_sensor —> CSI —> VI —> ISP —> memory


v4l2-ctl pipeline didn’t include the ISP feature and 3A control.
Those data flow are correct.

What are the ISP features other than format conversion and debayering?

I couldn’t find ISP documenation in Xavier TRM. Where can I find Xavier ISP document?


There’s no this document but you can find some feature from the argus API.


4l2-ctrl … --set-ctrl bypass_mode=0 …

What does bypass_mode mean here? Is it related to ISP?

Yes, bypass_mode=0 means bypass ISP. This parameter to switch to VI mode from after launching argus.

VI mode means using VI/NVCSI kernel driver.