Jetson A

In libargus what are the ISP configurations that can be controlled from the user space?

I found this class called IAutoControlSettings in Settings.h where all the functions can be invoked…but below that classes like IDeNoiseSettings and IEdgeEnhanceSettings cannot be invoked…Is there a way to go about it?

Out of the below ISP configurations…can you kindly confirm what works and what does not in libargus?

–prev-res Preview width & height.Range: 2 to 12 (5632x4224) e.g., --prev-res=3
–cus-prev-res Custom Preview width & height e.g., --cus-prev-res=1920x1080
–image-res Image width & height. Range: 2 to 12 (5632x4224) e.g., --image-res=3
–video-res Video width & height. Range: 2 to 9 (3896x2192) e.g., --video-res=3
–camsrc Camera Source to use (0=v4l2, 1=csi[default], 2=videotest, 3=eglstream)
-m, --mode Capture mode value (1=still 2=video)
-v, --video-enc Video encoder type (0=h264[HW] 1=vp8[HW] 2=h265[HW] 3=vp9[HW])
-p, --hw-enc-path Frame Work type (0=OMX 1=V4L2[Default])
-b, --enc-bitrate Video encoding Bit-rate(in bytes) e.g., --enc-bitrate=4000000
–enc-controlrate Video encoding Bit-rate control method 0 = Disable, 1 = variable(Default), 2 = constant e.g., --enc-controlrate=1
–enc-EnableTwopassCBR Enable two pass CBR while encoding 0 = Disable, 1 = Enable e.g., --enc-EnableTwopassCBR=1
–enc-profile Video encoder profile For H.264: 0=Baseline, 1=Main, 2=High
-J, --image-enc Image encoder type (0=jpeg_SW[jpegenc] 1=jpeg_HW[nvjpegenc])
-k, --file-type Container file type (0=mp4 1=3gp 2=mkv)
–file-name Captured file name. nvcamtest is used by default
–color-format Color format to use (0=I420,1=NV12[For CSI only and default for CSI], 2=YUY2[For V4L2 only, default for v4l2])
–enable-meta Enable Sensor MetaData reporting
–app-profile Enable KPI profiling
–kpi-numbers Enable KPI measurement
–cap-dev-node Video capture device node (0=/dev/video0[default], 1=/dev/video1, 2=/dev/video2) e.g., --cap-dev-node=0
–svs [For USB] (=) chain for video Preview. [For CSI only] use “nvoverlaysink”
–eglConfig EGL window Coordinates (x_pos y_pos) in that order e.g., --eglConfig=“50 100”
–orientation Camera sensor orientation value
-w, --whitebalance Capture whitebalance value
–timeout Capture timeout value
–saturation Camera Saturation value
–sensor-id Camera Sensor ID value
–exposuretimerange Property to adjust exposure time range in nanoseconds e.g., --exposuretimerange=“34000 358733000”
–gainrange Property to adjust gain range e.g., --gainrange=“1 16”
–ispdigitalgainrange Property to adjust digital gain range e.g., --ispdigitalgainrange=“1 8”
–aelock Enable AE Lock, default is disabled
–awblock Enable AWB Lock, default is disabled
–exposurecompensation Property to adjust exposure compensation e.g., --exposurecompensation=0.5
–aeantibanding Property to set the auto exposure antibanding mode e.g., --aeantibanding=2
–tnr-mode Property to select temporal noise reduction mode e.g., --tnr-mode=2
–tnr-strength Property to adjust temporal noise reduction strength e.g., --tnr-strength=0.5
–ee-mode Property to select edge enhancement mode e.g., --ee-mode=2
–ee-strength Property to adjust edge enhancement strength e.g., --ee-strength=0.5
–display-id [For nvoverlaysink only] Display ID value
–overlayConfig Overlay Configuration Options index and coordinates in (index, x_pos, y_pos, width, height) order e.g. --overlayConfig=“0, 0, 0, 1280, 720”
-A, --automate Run application in automation mode
-S, --start-time Start capture after specified time in seconds. Default = 5 sec (use with --automate or -A only)
-Q, --quit-after Quit application once automation is done after specified time in seconds. Default = 0 sec (use with --automate or -A only)
-C, --count Number of iterations of automation testcase. Default = 1 (use with --automate or -A only)
-N, --num-sensors Number of sensors (use with --automate or -A only)
–capture-gap Number of milliseconds between successive image/video capture. Default = 250 msec (use with --automate and --capture-auto only)
–capture-time Capture video for specified time in seconds. Default = 10 sec (use with --automate and --capture-auto only)
–toggle-mode Toggle between still and video capture modes for count number of times (use with --automate or -A only)
–capture-auto Do image/video capture in automation mode for count number of times(use with --automate or -A only)
–toggle-sensor Toggle between num_sensors if given otherwise between sensor-id 0 and 1 (use with --automate or -A only)
–enum-wb Enumerate all white-balance modes for count number of times (use with --automate or -A only)
–enum-st Enumerate saturation value through 0 to 2 by a step of 0.1 for count number of times (use with --automate or -A only)

Suppose both are working. Some feature may observe the function in some scene. For example the noise reduction may need in low light condition to ease observe the effect.

Can you please tell how to invoke both the classes as I am unaware and also please let me know whether all the ISP configurations mentioned above work?

Sorry, don’t understand your request.



I lloked into Jetson Image Processing - APIs - ximea support and I can see that there are certain ISP controls that are beyond my understanding as how to control.

Example: • Per-channel black-level compensation
• High-order lens-shading compensation
• Edge enhancement (sharp).

Please refer to the screenshot attached.

Can you please tell how to control those using libargus.
A few lines of code would be good.

Only the Edge enhancement able to control from the libargus API.
Sorry to tell. Others ISP feature only release to certificated camera partner. Those need IQ tuning process and those tools didn’t public to normal user.

Okay @ShaneCCC thanks for your help!

In that case can you tell how to access Edge Enhancement using libargus.

Also as a follow up…can you tell how to change the resolution of the stream dynamically.


Have reference the MMAPI sample APP argus_camera for them.

Hi Shane,

Can you confirm whether the controls present in /usr/local/bin/argus_camera app are controlled from the hardware ISP or software ISP .