K230 ISP Image Tuning Guide#
Note: This document focuses on the complete ISP tuning methodology and module parameter descriptions. For the hands-on BLC/LSC/CC calibration workflow, also refer to:
how_to_calibrate_isp.md.
Overview#
When tuning image quality, the primary areas of focus are: brightness, color, contrast, and sharpness. Through combined sensor/lens calibration and ISP sub-module tuning, the goals are:
Overall image brightness at a reasonable level
Accurate color reproduction
Good sharpness with no obvious noise
High contrast — an overall transparent, vivid look
Overall image tuning flow:

K230 ISP pipeline:

Important notes:
In K230 HDR mode, the CSI module does not support sensor data patterns where Hsync precedes Vsync. The Vsync pulses for each frame (L/S/VS) must not overlap during the active data period.
When TNR (in 3DNR) is enabled, the ISP requires that sensor Hblank ≥ 180 pixel clocks (256 recommended), and
Frame length – Active lines ≥ 92 lines.
Calibration#
Overview#
The calibration tool (K230ISPCalibrationTool.exe) calibrates parameters for six ISP modules: BLC, LSC, CC, AWB, Noise Profile, and CAC.
Calibration order:

Prerequisites: install MATLAB Runtime (R2023a) before using the calibration tool. Download: https://ssd.mathworks.com/supportfiles/downloads/R2023a/Release/0/deployment_files/installer/complete/win64/MATLAB_Runtime_R2023a_win64.zip
Main interface:

Click the module button to jump directly to that module’s calibration interface.
Black Level Correction#
Principle#
When an analog signal is very weak, the A/D converter may fail to capture it, causing loss of detail in dark areas. To address this, the sensor adds a fixed offset to the analog signal before A/D conversion, preserving more image detail in the output digital signal. Black level correction determines this offset value precisely. All subsequent ISP modules must subtract this offset first to maintain data linearity.
Capture RAW Images#
Cover the lens completely in a fully dark environment — no light must reach the sensor.
Set the sensor to manual exposure mode.
Capture 12 RAW images across different gain (1×, 2×, 3×, 4×) and integration time (0.01 ms, 0.02 ms, 0.03 ms) combinations.
Save to folders named by the combination, e.g.
Gain_4_T_0.03(gain=4, time=0.03 s).
Run Calibration#
Click Black level correction in the main interface:

Steps:
Click Select and choose the RAW image folder.
Align Pos field: enter the Bayer pattern of the RAW images.
Set input/output bit width.
Set resolution (width × height).
Click OK to start calibration.
Options:
Combine Channel: if checked, BLC is the combined measurement for all four R/Gr/Gb/B channels.
Normal File Out: outputs
blc_para.txt.Extended File Out: outputs per-channel BLC at each exposure/gain combination separately.
Example calibration result chart:

Lens Shading Correction (LSC)#
Principle#
LSC eliminates the darkening towards the image corners caused by uneven optical refraction through the lens. The brightness fall-off follows a cosine-to-the-fourth-power law. Calibration captures this attenuation trend and stores the correction in a 32×16 grid to restore each region’s brightness to the center reference level. Both luma shading and color shading are calibrated. Because color shading characteristics differ at different color temperatures, LSC must be calibrated separately for each target color temperature.
Capture RAW Images#
Precautions:
Adjust AE target brightness so the image center average is about 80% of the maximum (e.g. 204/255 for 8-bit).
Use a flat, uniform light source with a smooth, texture-free target — a DNP light box is ideal.
Steps:
Aim the lens at the DNP light box target area; ensure no environmental interference.
Turn on the light box, select D65, set appropriate illuminance.
Capture one RAW image.
Switch to the next light source (D50, TL84, F12, A) and repeat.
Run Calibration#
Click Lens Shade correction in the main interface:

Steps:
In region 2: select the Bayer pattern, enter width/height/bit-width, choose the correction type (Color Shading or Luma+Color Shading), select the color temperature in the CCT dropdown, and enter the Black Level Offset for each channel.
Click Load image in region 1 to import the RAW image to calibrate.
In region 3: set the grid knots. K230 ISP LSC hardware uses a 32×16 grid → choose “33Full × 17Symm knots”. If using ALSC, check “ALSC uniform…”. Note: if “Automatic initial knot positioning” is checked, ALSC cannot be enabled in
auto.json.In region 4: optionally set the max correction ratio for center/corners.
In region 5: set the corner compensation ratio (e.g. 80% means corners are corrected to 80% of center brightness).
Leave other settings at defaults.
Click Start to calibrate; save the LSC data.
In region 6: apply the LSC data to the image to preview the result; click Save image to file to save a PNG for each light source.
When setting the compensation ratio in step 5, consider how severe the lens shading is. Heavy shading requires large corner gains, which can amplify corner noise. Reduce the compensation ratio to balance noise in the corners.
Color Correction (CC)#
Principle#
CCM calibration measures the actual colors of 24 color checker patches as captured by the sensor and compares them to expected (reference) values to compute a 3×3 CCM matrix. This matrix transforms the sensor’s color space into the standard sRGB color space.
Capture RAW Images#
Steps:
Place the 24-patch color checker inside or in front of the standard light box (lens facing the checker or at 45°).
Turn on the light box, select D65, and adjust illuminance.
Adjust distance and position so the color checker occupies approximately 2/3 of the image.
Adjust AE target so the RAW average brightness is around 50.
Capture one RAW image.
Switch to each other light source (D50, TL84, F12, A) and repeat.
With the lens position unchanged, remove the color checker and capture background RAW images for all five light sources.
Run Calibration#
Click Color Correction in the main interface:

Steps:
In region 1: set width, height, bit-width, Black Level Offset, and Bayer pattern.
Click Load to import:
Load sRGB References —
CC_Standard.cxf(inCanaan.Calibration.Samples\Data\)Load Color Checker Image — color checker RAW
Load Background Image — background RAW
To use custom Lab references: Load Lab-Customer References; or load a reference image and use Function → Select Reference Color Check.
Click LSC and load the calibrated LSC parameter file.
Configure calibration parameters: set gamma, check CIELAB reference, configure 24-patch weights, set preferred light source, set output saturation (default 1).
In region 3: select the color patch detection mode (automatic, semi-automatic, or manual). In semi-automatic mode, use the crosshair to click the four corner patches in order.
Click Calibrate to start.
Auto White Balance (AWB)#
Principle#
AWB calibration computes the optimal Planckian locus fit and color temperature fit curve based on the sensor’s white point characteristics (R/G, B/G) under several standard light sources. The goal is to enable the camera to automatically adapt to different color temperature conditions for accurate white and color reproduction.
Run Calibration#
Click Auto White Balance in the main interface:

Steps:
Click file and load the sensor spectral sensitivity file:

If you don’t have your sensor’s spectral sensitivity file, use the default
OV2775_sensitivity.txt(inCanaan.Calibration.Samples\Data\). AWB calibration no longer strictly depends on this file, so any valid file works.Click illumination and load
CIE_Illuminants.cxf(inCanaan.Calibration.Samples\Data\). Select at least 3 light sources, click OK, and categorize them as indoor or outdoor using the dropdown.

Click AWB V2+ Calibration (or Start Calibration in older versions) and select the CC calibration output files for each light source:

Check White Points Evaluate and select an image for white point estimation.
Click Gain Region Modifier, select the PNG images saved during LSC calibration for each light source, and click OK:

Define the initial size of the gain polygon; click OK:

Manually adjust the orange polygon (near-white zone) and black polygon (all pixels inside are classified as white) until the black polygon covers all selected light source white points; save the data:

K_Factor Calibration#
In the AWB algorithm, the outdoor condition is: Exp × K_Factor ≤ 0.12 (where Exp is the exposure value).
For example, if 2000 lux is the outdoor/transition illuminance threshold: obtain the exposure value (ET × gain) at that illuminance, then: K_Factor = 0.12 / (ET × gain).
A larger K_Factor indicates higher sensor sensitivity; a smaller value indicates lower sensitivity. This parameter is in the AWB section of the XML file.
Noise Calibration#
Principle#
Noise profile calibration quantitatively measures and characterizes the noise produced by the sensor under different conditions (light levels, temperature, ISO). Understanding these noise characteristics is key to effective noise reduction.
Capture RAW Images#
Place a black-white gradient test chart inside the standard light box; select D50.
Disable AE and switch to manual exposure. Capture two sets of 30 RAW images each:
Bright set: adjust light box brightness so the dark area of the gradient chart is at a medium gray value.
Dark set: adjust light box brightness so the white area of the gradient chart is at a medium gray value.
Both sets: keep the same exposure time and gain at 1×.
Run Calibration#
Click Noise Calibration in the main interface:

Steps:
Set RAW width, height, bit-width, and Black Level Offset.
Click file to import both the bright and dark RAW image series.
Click ROI to define a region of interest if needed.
Adjust parameters: for the low-light histogram, use the range from Lower Range to Split Point; for the highlight histogram, use Split Point to Higher Range. The two combined should cover nearly all 0–255 values (for 8-bit). The preserved regions of Highlight and Lowlight should follow a Poisson distribution. If BLC offset is set, Lower Range ≥ BLC value.
Leave Gamma Correction and Model Fitting at defaults.
Click Evaluate Measures, then click Fit to Model to complete the calibration and save.
Chromatic Aberration Correction (CAC)#
Principle#
Chromatic aberration is a common optical defect where the lens cannot focus all wavelengths at the same point, causing red/green or blue/purple fringing at image edges. CAC calibration builds a mathematical model from captured image data to describe the aberration, then determines correction parameters.
Capture RAW Images#
Place a checkerboard or dot pattern chart inside the standard light box; select D50.
Adjust AE so the minimum value in black patches is greater than the BLC value, and the maximum value in white areas does not exceed 208.
Capture one RAW image and save it.
Run Calibration#
Click Chromatic Aberration Correction in the main interface:

Steps:
Click Demosaic&Filter and set the Bayer pattern.
Click Load image to load the RAW image.
Configure the Demosaic&Filter settings:
ISP_demosaic_threshold: default 4. Higher values detect fewer edges; lower values detect more. 255 disables edge detection.Simulate 2 additional Line Buffers: expands vertical offset range to ±3; no chroma down-filter is applied. Off by default.Filter stage1 select,Sharpen Level,Denoise Level: set as needed.Lum_weight Off: disables the noise weighting function (helps in dark areas). Off by default.
Click Color Correction and configure:
Check
ISP_bls_enableand set the correct BLC.Check
Auto White-Balance.Set CCM.
Set
global gainto 1.0.
Click Gamma and set the gamma curve (default: gamma 2.2).
Click LSC → Load parameters, load the D50 LSC calibration data, and check Enable.
Click CA Estimate, check CA_Estimate, and click Process to run.
Click CAC to view the calibration results.
Module Reference#
BLS#
Description: Subtracts the black level offset to maintain data linearity.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
BLS enable switch |
|
int[4], 0–4095 |
Black level offset for four channels (based on ISP 12-bit) |
Tuning note: Although four independent channel values are supported, using the same value for all four is recommended.
LSC#
Description: Corrects lens shading using a 32×16 grid applied to the four RAW channels.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
LSC enable switch |
|
|
Lens shading correction matrices for R, Gr, Gb, B; from calibration file |
|
int[32] |
Distance between adjacent X-axis grid knots; from calibration file |
|
int[16] |
Distance between adjacent Y-axis grid knots; from calibration file |
Dgain#
Description: ISP digital gain, primarily used to increase image brightness.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
Digital gain enable switch |
|
float, 1.0–255.99 |
R channel gain |
|
float, 1.0–255.99 |
Gr channel gain |
|
float, 1.0–255.99 |
Gb channel gain |
|
float, 1.0–255.99 |
B channel gain |
AE#
Description: Auto Exposure controls image brightness. Key tuning areas: AE target brightness, convergence speed, and smoothness.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
AE enable switch |
|
int, 0–3 |
Anti-flicker mode: 0=Off, 1=50 Hz, 2=60 Hz, 3=User defined |
|
bool |
In HDR mode: true=auto-compute HDR ratio; false=use fixed HDR ratio |
|
float, 0–1.0 |
Damping factor for smooth convergence when overexposed |
|
float, 0–128.0 |
Convergence acceleration gain when overexposed and out of clip range |
|
float, 1.0–4.0 |
Clip range ratio for overexposure; smaller = faster convergence |
|
float, 0–1.0 |
Damping factor for smooth convergence when underexposed |
|
float, 0–16.0 |
Convergence acceleration gain when underexposed and out of clip range |
|
float, 0–1.0 |
Clip range ratio for underexposure; larger = faster convergence |
|
float[32×32], 0–255 |
Per-zone exposure weight |
|
bool |
Enable frame interval for exposure setting |
|
float[20], 0–255.0 |
Gain values per gain step in WDR mode |
|
int, 0–16 |
Total gain steps in WDR mode |
|
float[20], 0–1.0 |
Target brightness suppression ratio per gain step in WDR mode |
|
float[20], 0–255.0 |
Gain values per gain step in linear mode |
|
int, 0–19 |
Total gain steps in linear mode |
|
float[20], 0–1.0 |
Target brightness suppression ratio per gain step in linear mode |
|
float, 0–1.0 |
Smoothing parameter for motion factor in adaptive scene evaluation |
|
float, 0-1.0 |
Motion detection threshold |
|
int |
Current ROI window index |
|
float |
Brightness calculation weight for the current ROI window |
|
float (fx,fy,fw,fh) |
Current ROI start coordinates (x,y) and size (w,h) |
|
int, 0-2 |
Scene evaluation mode: 0=off, 1=fixed, 2=dynamic |
|
float, 0–255.0 |
AE target brightness |
|
float, 0–1.0 |
Smoothing factor for AE target changes; larger = faster changes |
|
float, 0–100.0 |
AE target brightness lock range (%) |
|
float, 0–255.0 |
Max contrast for AE setpoint in adaptive scene evaluation |
|
float, 0–255.0 |
Min contrast for AE setpoint in adaptive scene evaluation |
AWB#
Description: Reduces the influence of ambient light on object color, converting color-shifted objects to appear as they would under ideal daylight.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
AWB enable switch |
|
float, 0.0–1.0 |
Color temperature light source weight |
|
int, 0 or 1 |
0=AWB, 1=AWB METADATA |
|
int |
Current ROI window index |
|
float |
AWB calculation weight for the current ROI window |
|
float (fx,fy,fw,fh) |
Current ROI start coordinates (x,y) and size (w,h) |
|
bool |
Enable adaptive CCM |
|
bool |
Enable adaptive CCM offset |
|
bool |
Enable AWB damping |
|
float |
Photo-sensitivity coefficient for outdoor/transition classification |
kFactor calibration: outdoor condition: Exp × kFactor ≤ 0.12. Example: at 2000 lux as the outdoor threshold, kFactor = 0.12 / (ET × gain). Larger kFactor → higher sensor sensitivity; smaller kFactor → lower sensor sensitivity. This parameter is in the AWB section of the XML file and must be calculated using the method above before filling in.
WDR#
Description: Wide Dynamic Range — improves image contrast using histogram equalization, recovering detail in both highlights and shadows.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
WDR enable |
|
int, -1023–1023 |
Higher = stronger local contrast |
|
int[20] |
Local weight |
|
int |
Brightness factor: larger base → stronger local contrast |
|
int |
Brightness factor: larger slope → weaker local contrast |
|
int, 0–19 |
Flat region stretch strength |
|
int, 0–20 |
Flat region threshold; below = flat, above = textured |
|
int[20] |
Local weight |
|
int[20] |
Local weight |
|
int[20] |
Global curve |
|
int, 0–128 |
Global contrast strength |
|
int, 0–128 |
Highlight protection; larger = stronger highlight preservation |
|
int, 0–255 |
Shadow protection; larger = stronger shadow preservation |
|
int, 0–128 |
Overall strength |
Tuning note: In linear mode, set strength=128. low_strength is effectively the max gain — increase it to brighten shadows. high_strength suppresses overexposed highlights. As gain increases, gradually reduce low_strength to avoid noise amplification. Adjust contrast, flat_strength, and flat_thr for local contrast.
GE (Green Equalization)#
Description: Balances Gr and Gb pixel differences in the RAW data to prevent checkerboard or maze-like artifacts from demosaic interpolation. This module is placed before DPCC.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
Green equalization enable |
|
float, 0–511.0 |
Green equalization strength threshold |
DPCC (Defective Pixel Cluster Correction)#
Description: Corrects defective pixels before the demosaic module. The static bad-pixel table supports up to 2048 entries. Seven correction setting groups are available.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
DPCC enable (default off) |
|
bool |
Bad pixel table enable |
|
int, 0–1024 |
Index of current bad pixel in table |
|
int, 0–14 |
Median output mode for bad pixel correction |
|
int |
Horizontal address of bad pixel |
|
int |
Vertical address of bad pixel |
|
bool |
Bypass DPCC |
|
|
Mean absolute difference factor |
|
|
Row threshold for R/G/B |
|
int[3], 0–8191 |
Bad pixel correction method selection per channel |
|
int, 0–15 |
Interpolation mode for correction unit |
|
|
Peak gradient factor |
|
|
Rank gradient factor |
|
|
Rank neighbor difference rank offset |
|
|
Rank neighbor difference threshold |
|
|
Rank offset limit |
|
int, 1–7 |
Select which correction setting group to use |
DPF (Bilateral Filter)#
Description: Bilateral filter for noise reduction.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
Enable switch |
|
float, 1.0–1000.0 |
Sensor gain |
|
float, 0.1–128 |
Gradient |
|
float, 1.0–128.0 |
Strength clip |
|
float, 0–128.0 |
Higher = stronger noise reduction |
|
float, 0–64.0 |
Higher = weaker noise reduction |
|
float, 1.0–128.0 |
Spatial filter for G channel; higher = more weight |
|
float, 1.0–128.0 |
Spatial filter for R/B channels; higher = more weight |
|
float, 0–4095.0 |
17-point curve; from calibration file |
DNR (3D Noise Reduction)#
Description: 3DNR combines temporal and spatial domain information for more effective noise reduction. Motion detection ensures moving objects retain sharpness.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
Master enable for 2DNR and 3DNR |
|
bool |
3DNR enable |
|
bool |
2DNR enable |
|
float, 0.1–16.0 |
2DNR strength; higher = stronger |
|
float, 0–128.0 |
2DNR strength; higher = stronger |
|
float, 0–100.0 |
Blend weight between 2DNR-processed and TNR-output frames; affects denoise strength without changing motion estimation |
|
float, 0.1–32.0 |
Blend slope; higher = more weight to NLM. Smaller = higher static blend weight; larger = higher motion blend weight |
|
float, 0–100.0 |
Blend weight for static regions between 2DNR and TNR output |
|
float |
Motion dilation window width |
|
float, 0–1024 |
Temporal filter window length (number of reference frames) |
|
float, 0–100 |
Motion history frame count |
|
bool |
Motion dilation enable |
|
bool |
Motion erosion enable |
|
float, 0–1024 |
Motion detection threshold; above = motion region |
|
float |
Slope of custom pre-gamma curve |
|
float |
Offset of custom pre-gamma curve |
|
bool |
Pre-gamma transform enable |
|
float |
Weight of previous frame’s motion information |
|
float |
Horizontal motion detection window radius (7 = 15×15) |
|
float |
Vertical motion detection window radius (7 = 15×15) |
|
float |
Weight for motion difference type A |
|
float |
Transition slope; above this = 100% motion region |
Tuning steps: 1. Enable tnr, nlm, dilate, erode, pregamma. 2. Set filter_len for reference frame damping. 3. Set filter_len2 for motion frame damping. 4. Use noise_level to separate foreground and background. 5. Adjust thr_motion_slope, sad_weight, and preweight to define the motion region.
When TNR is enabled: sensor/ISP Hblank ≥ 180 pixel clocks (256 recommended); Vblank minimum ≥ 60 sensor ET lines.
Demosaic#
Description: Converts Bayer RAW data to RGB via interpolation. Also supports denoising, sharpening, demoire, and depurple.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
Demosaic enable |
|
int, 0–255 |
Interpolation threshold for R/B channels; below = non-directional interpolation |
|
int, 0–4095 |
G channel interpolation threshold in dark areas |
|
int, 0–4095 |
G channel interpolation threshold in bright areas |
|
int, 0–31 |
Low-frequency denoising strength |
|
bool |
Sharpen enable |
|
int, 0–2047 |
Dark edge sharpening clip limit |
|
int, 0–2047 |
Bright edge sharpening clip limit |
|
int, 0–511 |
Dark edge sharpening factor; higher = stronger |
|
int, 0–511 |
Bright edge sharpening factor; higher = stronger |
|
bool |
Line sharpening enable |
|
int, 0–255 |
Sharpening strength for values below threshold |
|
int, 0–255 |
Sharpening strength for values above (thr + (1<<thr_shift1)) |
|
int, 0–4095 |
Line sharpening strength; higher = stronger |
|
int |
Line sharpening threshold |
|
int, 0–10 |
Line sharpening threshold shift parameter |
|
int, 0–256 |
Sharpening curve parameter |
|
int, 0–256 |
Sharpening curve parameter |
|
int, 0–256 |
Sharpening curve parameter |
|
int, 0–16 |
High-frequency signal representation; smaller = more fine detail sharpened |
|
int, 0–2047 |
Sharpening curve value point t1 |
|
int, 0–11 |
Sharpening curve value point (t1 + (1<<t2_shift)) |
|
int, 0–2047 |
Sharpening curve value point t3 |
|
int, 0–11 |
Sharpening curve value point (t3 + (1<<t4_shift)) |
|
bool |
Demoire enable |
|
int, 0–32 |
Moire area threshold; only regions above this are processed |
|
int, 0–255 |
Moire removal strength for values below t1 |
|
int, 0–255 |
Moire removal strength for values above (t1 + (1<<t2_shift)) |
|
int, 0–255 |
Moire removal strength curve value point t1 |
|
int, 0–8 |
Moire removal strength curve value point (t1 + (1<<t2_shift)) |
|
int, 0–255 |
Moire transition curve rate for values below t1 |
|
int, 0–255 |
Moire transition curve rate for values above (t1 + (1<<t2_shift)) |
|
int, 0–511 |
Moire transition curve value point t1 |
|
int, 0–9 |
Moire transition curve value point (t1 + (1<<t2_shift)) |
|
int, 0–32 |
Saturation reduction in moire regions; larger = stronger |
|
bool |
Purple fringe (depurple) enable |
|
int, 0–3 |
0=off, 1=R channel, 2=B channel, 3=R+B |
|
int, 0–8 |
Saturation reduction in purple fringe areas |
|
int, 8–255 |
Purple fringe detection threshold; smaller = more pixels treated as purple |
Tuning notes:
Interpolation: for 12-bit RAW,
dir_thr_minapplies at pixel value 0 anddir_thr_maxat 4095; intermediate values are interpolated.demosaic_thr: gradient diff > threshold → directional interpolation; < threshold → average interpolation. Smaller values cause more false color in high-frequency regions.Sharpening/Denoising:
denoise_strength=0disables denoising in demosaic (usually preferred; enable only for very noisy images). A steeper sharpening curve = stronger sharpening.sharpen_linesmooths horizontal/vertical lines when noise is high. The basic effect ofsharpen_lineis to smooth lines or textures in the horizontal or vertical direction. Largersharpen_line_r1andsharpen_line_r2values make the sharpening result closer to directional (horizontal or vertical) enhancement; however, more points may be incorrectly connected, which can introduce errors in high-frequency details.factor > clipshould be avoided — it over-sharpens without enough tone gradation.Demoire: moire correction uses a transition curve and a removal strength curve; see referenced diagrams.




ManualWB#
Description: Manually set white balance gain values.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
Whether to load parameters from this module |
|
float[4], 1.0–3.999 |
White balance gain for all four channels |
CCM (Color Correction Matrix)#
Description: Linear color space correction using a standard 3×3 matrix and vector offset. Transforms sensor color space to sRGB.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
CCM enable |
|
float[9], -8.0–7.996 |
3×3 color correction matrix |
|
int[3], -2048–2047 |
Per-channel offset |
Gamma#
Description: Non-linear brightness transformation to match the characteristics of typical output devices.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
Gamma enable |
|
bool |
Standard gamma enable |
|
float |
Gamma value (default 2.2) |
|
int[64] |
64-point gamma curve |
Tuning note: Default is gamma 2.2. Custom gamma curves can be defined as needed.
EE (Edge Enhancement)#
Description: Sharpens image detail and texture. Also suppresses black/white fringing at edges.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
EE enable |
|
int, 0–128 |
EE overall strength |
|
int, 0–255 |
Denoising strength; larger = stronger. Default 1 |
|
int, 0–10000 |
Bright edge gain |
|
int, 0–10000 |
Dark edge gain |
|
int, 0–1024 |
Edge color saturation control; larger = more saturation reduction |
|
int, 0–10000 |
Edge detail detection strength; larger = more edges detected |
CA (Color Adjustment)#
Description: Adjusts image saturation using a UV gain curve. Primarily eliminates color noise in dark or low-saturation regions. Also reduces false colors in overexposed highlights and white balance deviation in low-saturation areas.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
CA enable |
|
bool |
|
|
int, 0–2 |
0=adjust saturation by luma; 1=adjust by original saturation; 2=both |
|
float |
64-point CA curve |
DCI (Dynamic Contrast Improve)#
Description: Adjusts global image contrast.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
DCI enable |
|
float |
64-point DCI curve |
CProcess (Color Processing)#
Description: Color processing in the YUV domain.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
CProcess enable |
|
int |
Luminance input range: 0=[64..940], 1=full [0..1023] |
|
int |
Luminance output clipping: 0=[16..235], 1=[0..255] |
|
int |
Chrominance output clipping: 0=[16..240], 1=full [0..255] |
|
float, -128–127 |
Brightness adjustment |
|
float, 0.3–1.9921875 |
Contrast adjustment |
|
float, -90–89 |
Hue adjustment |
|
float, 0–1.9921875 |
Saturation adjustment |
Compand#
Description: Data compression and expansion module.
Parameter |
Type / Range |
Description |
|---|---|---|
|
bool |
Compression/expansion enable |
|
bool |
Compression enable |
|
int[64], 0–31 |
Compression X-axis interval curve |
|
bool |
Use output Y-axis curve for compression |
|
int[64], 0–16777216 |
Compression Y-axis value curve |
|
bool |
Expansion enable |
|
int[64], 0–31 |
Expansion X-axis interval curve |
|
bool |
Use output Y-axis curve for expansion |
|
int[64], 0–16777216 |
Expansion Y-axis value curve |
CAC (Chromatic Aberration Correction)#
Description: Corrects lateral chromatic aberration.
Parameter |
Type / Range |
Description |
|---|---|---|
|
float, -16–15.9375 |
Radial blue shift parameter (formula: |
|
float, -16–15.9375 |
Radial red shift parameter (formula: |
|
float, -16–15.9375 |
Radial blue shift parameter |
|
float, -16–15.9375 |
Radial red shift parameter |
|
float, -16–15.9375 |
Radial blue shift parameter |
|
float, -16–15.9375 |
Radial red shift parameter |
|
bool |
CAC enable |
|
int |
Horizontal distance between image center and optical center |
|
int |
Vertical distance between image center and optical center |
a/b/c_blue→ XMLblue_parameters;a/b/c_red→ XMLred_parameters;center_h_offs→ XMLx_offset;center_v_offs→ XMLy_offset.
