IPP File Processing (nvmipp_file)
The NvMedia nvmipp_file application demonstrates how to use the NvMedia Image Processing Pipeline (IPP) framework to:
Read RAW images from the filesystem
Process the RAW images through the Image Signal Processor (ISP)
Write the processed images to the filesystem
It also demonstrates how different IPP components can be connected together to form an IPP pipeline.
The application can be configured to generate two parallel outputs from the ISP. It can also process aggregated RAW images. It creates one IPP pipeline for each of the aggregated images and processes them as independent image streams. IPP pipeline includes the following control components:
IPP ISP
IPP control algorithm
IPP sensor
Architecture
The following diagram shows the various IPP components that the application instantiates. In this diagram, the application processes two aggregated images per frame.
Command Line Options
The following shows the command syntax:
nvmipp_file [<positional_options>] <required_options> [optional_options]
The following table describes the required command line options.
Option
Description
Optional/Required
Default
-cf
Specifies the capture configuration file.
Optional
Configs/default.conf
-c
Specifies the parameters set name to be used for the capture configuration.
The details such as: input surface format, resolution, or number of embedded data lines are obtained from the configuration set.
Optional
The first configuration set with the capture configuration file.
--aggregate
Specifies the number of frames aggregated.
Optional if processing single camera images; required otherwise.
1
--nvbracketae
Specifies use of Nvmedia IPP bracketed auto-exposure plugin for control algorithm components.
Optional
N/A
--sampleplugin
Specifies the use of the sample IPP plugins, as provided as part of the tests, for control algorithm components.
Optional
N/A
--noplugin
Specifies use of no auto-control plugin for control algorithm components.
Optional
N/A
-lps
Prints the configuration sets available in the capture configuration file as specified by the -cf option.
Optional
N/A
-i
Specifies the input file to process.
Required
N/A
-o
Specifies the output file prefix. The output file of pipeline [n] is created as:
[prefix]_out_[n]_[width]x[height].yuv
Required
N/A
--o1size
Specifies the downscale output1 size in the format of wxh.
Optional
No downscale
--o1
Specifies the ISP output1 format. The value may be any of the output formats listed in the table of output formats below.
Optional
yuv420_8b
--o2
Specifies the ISP output2 format. The value may be any of the output formats listed in the table of output formats below.
Optional.
By default, output2 of the ISP is disabled.
--save-metadata
Provides the filename prefix for the metadata output. The filename used to save the metadata of pipeline [n] has the following format:
<prefix>_<n>.meta
Without this option, the metadata is not dumped.
Required if the metadata must be dumped; otherwise optional.
By default, metadata is not dumped.
--bayer-format
Specifies the bayer format of the input file. Possible values are:
BGGR
RGGB
GRBG
GBRG
Optional
BGGR
--surface-layout
Layout of the surface. Supported layouts are:
PL
BL
Optional
PL
-v
Specifies the logging level. Possible values are:
0 Errors
1 Warnings
2 Info
3 Debug
Optional
Default = 0
-h
Print usage
Optional
N/A
 
Output Format*
Color Standard
yuv420_8b
NVM_SURF_ATTR_COLOR_STD_REC709_ER
yuv420_16b
NVM_SURF_ATTR_COLOR_STD_REC2020PQ_ER
yuv420_16b_709er
NVM_SURF_ATTR_COLOR_STD_REC709_ER
yuv444_8b
NVM_SURF_ATTR_COLOR_STD_REC709_ER
yuv444_16b
NVM_SURF_ATTR_COLOR_STD_REC2020PQ_ER
yuv444_16b_709er
NVM_SURF_ATTR_COLOR_STD_REC709_ER
rgb_srgb_8b
NVM_SURF_ATTR_COLOR_STD_SRGB
rgb_srgb_16f
NVM_SURF_ATTR_COLOR_STD_SRGB
rgb_sensor_16f
NVM_SURF_ATTR_COLOR_STD_SENSOR_RGBA
* - Values may be used in the ‑‑o1 and --o2 command line options described in the table of command line options above.
Examples
The following examples show common use cases for running the application.
To generate 16-bit YUV444 output from a one-camera RAW image
This command generates 16-bit YUV444 output from a one-camera RAW image file captured by an SF3324 camera using the BAE plugin.
./nvmipp_file -i raw12_SF3324_GRBG_1920x1208.raw -o hvOutput –-o1 yuv444_16b -cf ddpx-a.conf -c SF3324-CSI-A --nvbracketae –-bayer-format GRBG
The application creates video output files with the extension .yuv.
To generate simultaneous HV and CV outputs from a one-camera RAW image
This command generates simultaneous HV and CV outputs from a one-camera RAW image file captured by an SF3324 camera using the BAE plugin.
./nvmipp_file -i raw12_SF3324_GRBG_1920x1208.raw -o dualOutputs --o1 yuv420_16b --o2 rgb_sensor_16f -cf ddpx-a.conf -c SF3324-CSI-A --nvbracketae –-bayer-format GRBG
Output1 (HV) is in 16-bit YUV420 format. Output2 (CV) is in 16-bit floating point RGBA format. The input file is in GRBG Bayer order.
The application creates image sequence output files with the extension .yuv regardless of whether their format is YUV or RGB.
To generate simultaneous HV and CV outputs from four-camera RAW images
This command generates simultaneous HV and CV outputs from four-camera RAW image files captured by an SF3324 camera using the BAE plugin.
./nvmipp_file -i raw12_SF3324_GRBG_7680x1208.raw -o dualOutputs --o1 yuv420_8b --o2 yuv420_16b -cf ddpx-a.conf -c SF3324-CSI-A --nvbracketae –-bayer-format GRBG --aggregate 4
Output1 is in 8-bit YUV420 format. Output2 is in 16-bit YUV420 format. The input files are in GRBG Bayer order.