10/12-bit images after ISP


If my camera can provide 10/12-bit bayer patterns that are routed through the ISP using nvcamerasrc, is it possible to get the images in 10/12-bit at the src-pad of nvcamerasrc or does the ISP crop them to 8-bit? And if yes, do the nvidia plugins and hardware units all support 10/12-bit format?

Thank you!

hello marvintx,

yes, both 10 and 12-bits were supported.
could you please download [Tegra X2 (Parker Series SoC) Technical Reference Manual] from Jetson Download Center,
you may refer to [Video Input (VI)]->[ISPBUF] chapter, and also [Table 354: VI-to-ISP Pixel Bus Format] for more details.

Hello JerryChang,

thank you for the hint. I looked at the document. In the VI chapter, only the input format to the ISP is described. What I want to know are the output formats of the ISP.

E.g. If I feed 12-bit bayer raw-pixel stream into the ISP, then I would like to have something like RGB121212 or YUVXXX 12-bit at the output of the ISP. Can you provide a source that describes the ISP (Why is the ISP not described in the Technical Reference Manual?)?

Thank you.


any update on this topic? I have found other people asking similar questions and the answer was that there is no support for 10/12 bit, unless decoding is the application.


What possiblities do I have? If 10/12 bit are supported as you said, can you provide an example of how to capture a camera image and save it to the disc in 10/12 bit format?

Thank you.

hello marvintx,

sorry, I misunderstand your questions.

ISP accepts 10/12-bits input, but its now outputting as 8-bits.
you may also refer to L4T Multimedia API Reference, these YCbCr pixel formats were all 8-bits.


I am still a little confused. The gstreamer guide suggests the following:

gst-launch-1.0 nvarguscamerasrc !
‘video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080,
format=(string)NV12, framerate=(fraction)30/1’ !
nvvidconv ! ‘video/x-raw(memory:NVMM), format=(string)I420_10LE’ !
omxh265enc ! matroskamux ! filesink location=test_10bit.mkv -e

According to the documentation

i understand that with nvarguscamerasrc, the camerastream is routed through the ISP as well.
nvarguscamerasrc—NVIDIA camera GStreamer plugin that provides options to control ISP properties using the ARGUS API.

In that case the ISP should be capable of outputting 10 bit images, or?

hello marvintx,

the above commands is for encoder functionality verification, please note that there’s nvvidconv which use VIC engine to convert 8-bit into 10-bit.
again, ISP is now outputting as 8-bits. thanks

Ok thanks. For our usecases, an actual 10/12-bit camera image from ISP would be required.