# ISP feature description

**URL:** <https://forums.developer.nvidia.com/t/isp-feature-description/78535>\
**Category:** Jetson TX2\
**Created:** [July 23, 2019, 9:04am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535 "2019-07-23T09:04:38Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Archoran](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@Archoran](https://forums.developer.nvidia.com/u/Archoran)\
**Post date:** [July 23, 2019, 9:04am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/1 "2019-07-23T09:04:38Z")

</div>

Hello!

I want to use ISP features in an application. To fully utilize the hardware module I would like to know what features are supported by the ISP and by Argus API (if there are some differences). For a concrete application it is also useful to know what strengths and weaknesses the implemented algorithms have and in which range I can apply parameters.  
I really don’t want to know how these algorithms are implemented, it’s only nice to know what you can expect.

Unfortunately the API documentation (Tegra Multimedia API, Release 32.2) doesn’t provide the information I need to gather.

Is there some more detailed information about the implemented operations as “various image pre-processing”?

Thank you for any reply.

Best Regards

Archoran

---

<div class="post-metadata">

**Author:** ![DaneLLL](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/danelll/32/14043_2.png) [@DaneLLL](https://forums.developer.nvidia.com/u/DaneLLL)\
**Post date:** [July 24, 2019, 4:04am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/2 "2019-07-24T04:04:23Z")

</div>

Hi,  
The ISP engine only works with Bayer sensor. You may follow sensor driver programming guide to bring up your Bayer sensor, or check camera modules from our partners.  
[https://docs.nvidia.com/jetson/l4t/index.html](https://docs.nvidia.com/jetson/l4t/index.html)

> **[Jetson Ecosystem](https://developer.nvidia.com/embedded/ecosystem)**
>
> Find the right NVIDIA partner for your AI at the Edge application needs. From carrier boards, custom system design and sensors to full systems, our partners will help you get to market faster.

---

<div class="post-metadata">

**Author:** ![waisskharni.sm](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/waisskharni.sm/32/11464_2.png) [@waisskharni.sm](https://forums.developer.nvidia.com/u/waisskharni.sm)\
**Post date:** [July 24, 2019, 7:08am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/3 "2019-07-24T07:08:31Z")

</div>

Hi Archoran,  
e-con Systems is one of the camera partners of Nvidia who provide camera solutions for Jetson TX2/TX1/Nano and AGX Xavier boards. You can have a look at all the camera modules we provide for the aforementioned Boards.  
We also provide complete documentation including the product, application and features supported along with sample applications which can be readily ported to meet your use case.

For more details, kindly check the website provided in my signature. You can also contact [sales@e-consystems.com](mailto:sales@e-consystems.com) for more information.

---

<div class="post-metadata">

**Author:** ![Archoran](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@Archoran](https://forums.developer.nvidia.com/u/Archoran)\
**Post date:** [July 25, 2019, 8:18am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/4 "2019-07-25T08:18:52Z")

</div>

Hi Dane,

The sensor I use is the OV5693 provided with Jetson Development Kit. I think, that the features from ISP are correctly implemented there since I did not change the driver from the sensor. (I can’t say that with certainty since there is neither a documentation for this driver, nor for ISP.)

What I want to know is, what you can do on user side. The ISP and camera interface provide features that you can use in an application based on the right interfaces. But I can only use the features if I know what features that are and how I have to configure the API(s) to use them. The documentation of the Argus / Multimedia API did not answer my question.

Are there some information you can provide about the features of the ISP?  
Like… In what ranges I can expect the bin sizes of a sharpness map? In which way does the Denoise Modes slow down my imaging pipeline? Are there any statements about the latency of ISP pipeline? Or the maximum number of extensions you can activate without overloading the module?

Thanks in regards,  
Archoran.

---

<div class="post-metadata">

**Author:** ![JerryChang](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/jerrychang/32/14043_2.png) [@JerryChang](https://forums.developer.nvidia.com/u/JerryChang)\
**Post date:** [July 25, 2019, 8:44am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/5 "2019-07-25T08:44:45Z")

</div>

hello Archoran,

sorry,  
all features related to ISP were protected content.  
we cannot expose what’s internal algorithms were used in public discussion thread.

please contact with [Jetson Preferred Partner](https://developer.nvidia.com/embedded/community/ecosystem#hardware_design) for further step.  
thanks

---

<div class="post-metadata">

**Author:** ![Archoran](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@Archoran](https://forums.developer.nvidia.com/u/Archoran)\
**Post date:** [July 25, 2019, 9:53am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/6 "2019-07-25T09:53:40Z")

</div>

Hi JerryChang,

Like I saied before, I do not want to know what internal algorithms were used - I only want to use them and for that I need to know if I have to, for example, stay in specified ranges.

I understand, that you do not want to provide information about the algorithms because they give a competitive advantage… But since there is no specification about how to use the hardware elements correctly (ISP but also VIC) I have to find a way around them…

Thank You for Your answer.

Archoran.

---

<div class="post-metadata">

**Author:** ![DaneLLL](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/danelll/32/14043_2.png) [@DaneLLL](https://forums.developer.nvidia.com/u/DaneLLL)\
**Post date:** [July 25, 2019, 10:37am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/7 "2019-07-25T10:37:14Z")

</div>

Hi,  
Libargus Camera API is listed and explained in  
[https://developer.nvidia.com/embedded/dlc/NVIDIA\_Tegra\_Linux\_MultimediaAPIReference](https://developer.nvidia.com/embedded/dlc/NVIDIA_Tegra_Linux_MultimediaAPIReference)  
For using VIC engine, please refer to NvBufferTransform() and NvBufferComposite()

Also after flashing the system through sdkmanager, you will see samples in  
/usr/src/nvidia/tegra\_multimedia\_api/argus

---

<div class="post-metadata">

**Author:** ![Archoran](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@Archoran](https://forums.developer.nvidia.com/u/Archoran)\
**Post date:** [July 26, 2019, 2:22pm UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/8 "2019-07-26T14:22:32Z")

</div>

Thanks, Dane, for your answer.

So the ISP functions can be used by _request settings_ of argus?  
What does the bypass function do? (setPostProcessingEnable(bool))  
And what exactly does it enable or disable?

The VIC is only accessible via NvBuffer API?  
Has NvBuffer an interface for EGLStream-Postprocessing?

I already checked the sample file and built my own interface around argus implementation to match with other APIs I have.

---

<div class="post-metadata">

**Author:** ![JerryChang](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/jerrychang/32/14043_2.png) [@JerryChang](https://forums.developer.nvidia.com/u/JerryChang)\
**Post date:** [July 30, 2019, 3:29am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/9 "2019-07-30T03:29:52Z")

</div>

hello Archoran,

please check the brief camera sensor pipeline as below.  
Sensor(raw) → CSI-\> VI-\> ISP(yuv)-\> [Post-Processing]-\> Encoder/Decoder-\> Display

ISP engine handle lens shading, optical black, demosaic, pixel correction, tone map…etc  
ISP also handle the processing to convert bayer sensor to output YUV format.

this setPostProcessingEnable() function configure the feature controls before sending capture frame to next stage.  
for example,  
you could check the argus samples, (argus/samples/denoise/main.cpp), setup low-light environment, by enable/disable the flag and compare the difference of the preview stream.

---

<div class="post-metadata">

**Author:** ![DaneLLL](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/danelll/32/14043_2.png) [@DaneLLL](https://forums.developer.nvidia.com/u/DaneLLL)\
**Post date:** [July 30, 2019, 3:43am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/10 "2019-07-30T03:43:32Z")

</div>

Hi,

> [@](#):
>
> The VIC is only accessible via NvBuffer API?

Yes, if you use tegra\_multimedia\_api.  
If you use gstreamer, it is implemented as nvvidconv plugin.

> [@](#):
>
> Has NvBuffer an interface for EGLStream-Postprocessing?

Not sure what function EGLStream-Postprocessing is. Please share more about it.  
By the way, you can get EGLImage through below function calls:

```auto
// Create EGLImage from dmabuf fd
ctx->egl_image = NvEGLImageFromFd(ctx->egl_display, fd);
if (ctx->egl_image == NULL)
    ERROR_RETURN("Failed to map dmabuf fd (0x%X) to EGLImage",
            ctx->render_dmabuf_fd);

// Running algo process with EGLImage via GPU multi cores
HandleEGLImage(&ctx->egl_image);

// Destroy EGLImage
NvDestroyEGLImage(ctx->egl_display, ctx->egl_image);
ctx->egl_image = NULL;

```

---

<div class="post-metadata">

**Author:** ![Archoran](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@Archoran](https://forums.developer.nvidia.com/u/Archoran)\
**Post date:** [July 30, 2019, 6:58am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/11 "2019-07-30T06:58:34Z")

</div>

@JerryChang

Hi!  
Thank you for the information! I will check out the sample.

@DaneLLL

Oh, that is a fascinating information! Actually I want to process the image via GPU so I need an interface for the buffer to handle the output as an EGL component. Is there a way the buffer can work as EGLStream producer?

Thanks in regards!

---

<div class="post-metadata">

**Author:** ![DaneLLL](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/danelll/32/14043_2.png) [@DaneLLL](https://forums.developer.nvidia.com/u/DaneLLL)\
**Post date:** [July 30, 2019, 7:20am UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/12 "2019-07-30T07:20:34Z")

</div>

Hi,  
You may refer to the following Argus samples  
tegra\_multimedia\_api\argus\samples\bayerAverageMap  
tegra\_multimedia\_api\argus\samples\cudaHistogram  
tegra\_multimedia\_api\argus\samples\histogram

---

<div class="post-metadata">

**Author:** ![nadeemm](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/nadeemm/32/367020_2.png) [@nadeemm](https://forums.developer.nvidia.com/u/nadeemm)\
**Post date:** [October 18, 2021, 6:33pm UTC](https://forums.developer.nvidia.com/t/isp-feature-description/78535/13 "2021-10-18T18:33:17Z")

</div>

Closed on October 18, 2021, 6:33pm UTC


