ISP软件开发参考


REVISION HISTORY

Revision No.
Description
Date
1.0 (APIVer 1.0)
  • Initial release
  • 12/10/2021

    1. 概述

    1.1. 模块说明

    ISP模块是对Video source输入的数据进行分析、处理,设定相关视频参数以及进行Camera的调整,以实现黑电平校正、镜头校正、3A、2D/3D降噪、CCM、Gamma等功能。

    1.2. 流程框图

    Figure 1:ISP Block Diagram

    1.3. 关键词说明

    • ISP

      Image Signal Processing缩写。图像信号处理单元,负责图像降噪/颜色渲染/亮度调整等功能。

    • NR

      Noise reduction缩写,包含3D降噪、2D降噪。

      2D降噪:对一个像素将其与周围像素平均,平均后噪声降低,但缺点是会造成画面模糊。

      3D降噪:增添了时域处理,2D降噪只考虑一帧图像,而3D降噪进一步考虑帧与帧之间的时域关系,对每个像素进行时域上的平均。

    • STA

      Statistics缩写。

    • WDR

      Wide Dynamic Range缩写,单帧处理的高动态范围影响。

    2. MI ISP API参考

    2.1. MI_ISP_IQ_GetVersionInfo

    • 目的

      取得IQ版本号信息。

    • 语法

      MI_S32 MI_ISP_IQ_GetVersionInfo(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_VersionInfoType_t *data);
      
    • 描述

      调用此函式取得IQ版本号信息。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data IQ版本号信息的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.2. MI_ISP_IQ_SetVersionInfo

    • 目的

      设定IQ版本号信息。

    • 语法

      MI_S32 MI_ISP_IQ_SetVersionInfo(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_VersionInfoType_t *data);
      
    • 描述

      调用此函式设定IQ版本号信息。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 彩色转灰阶影像参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.3. MI_ISP_IQ_GetParaInitStatus

    • 目的

      取得ISP初始化ready状态的参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetParaInitStatus(MI_U32 DevId, MI_U32 Channel, MI_ISP_IQ_ParamInitInfoType_t *data);

    • 描述

      调用此函式取得ISP初始化ready状态的参数值,只有查询到状态为ready (1)时,才能进行load ISP api bin file或者call ISP api function。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data ISP初始化参数值的指标。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    • 举例

      MI_SYS_INIT();
      While(1)
      {
          MI_ISP_IQ_GetParaInitStatus (0, &FLAG);
          if(FLAG ==1)
          {
              break;
          }
      }
      

    2.4. MI_ISP_IQ_SetColorToGray

    • 目的

      设定彩色转灰阶影像参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetColorToGray(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ColorToGrayType_t *data);
      
    • 描述

      调用此函式设定彩色转灰阶影像参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 彩色转灰阶影像参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.5. MI_ISP_IQ_GetColorToGray

    • 目的

      取得彩色转灰阶影像参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetColorToGray(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ColorToGrayType_t *data);
      
    • 描述

      调用此函式取得彩色转灰阶影像参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 彩色转灰阶影像参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.6. MI_ISP_IQ_SetContrast

    • 目的

      设定对比度参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetContrast(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ContrastType_t *data);
      
    • 描述

      调用此函式设定对比度参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 对比度参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.7. MI_ISP_IQ_GetContrast

    • 目的

      取得对比度参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetContrast(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ContrastType_t *data);
      
    • 描述

      调用此函式取得对比度参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 对比度参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.8. MI_ISP_IQ_SetBrightness

    • 目的

      设定亮度参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetBrightness(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_BrightnessType_t *data);
      
    • 描述

      调用此函式设定亮度参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 亮度参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.9. MI_ISP_IQ_GetBrightness

    • 目的

      取得亮度参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetBrightness(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_BrightnessType_t *data);
      
    • 描述

      调用此函式取得亮度参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 亮度参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.10. MI_ISP_IQ_SetLightness

    • 目的

      设定灰度参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetLightness(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_LightnessType_t *data);
      
    • 描述

      调用此函式设定灰度参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 灰度参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.11. MI_ISP_IQ_GetLightness

    • 目的

      取得灰度参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetLightness(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_LightnessType_t *data);
      
    • 描述

      调用此函式取得灰度参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 灰度参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.12. MI_ISP_IQ_SetRgbGamma

    • 目的

      设定RGB Gamma curve参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetRGBGamma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_RgbGamma_TYPE_t *data);
      
    • 描述

      调用此函式设定RGB Gamma curve参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data RGB Gamma curve参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.13. MI_ISP_IQ_GetRgbGamma

    • 目的

      取得RGB Gamma curve参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetRGBGamma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_RgbGamma_TYPE_t *data);
      
    • 描述

      调用此函式取得RGB Gamma curve参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data RGB Gamma curve参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.14. MI_ISP_IQ_SetYuvGamma

    • 目的

      设定YUV Gamma curve参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetYUVGamma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_YuvGammaType_t *data);
      
    • 描述

      调用此函式设定YUV Gamma curve参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data YUV Gamma curve参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.15. MI_ISP_IQ_GetYuvGamma

    • 目的

      取得YUV Gamma curve参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetYUVGamma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_YuvGammaType_t *data);
      
    • 描述

      调用此函式取得YUV Gamma curve参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data YUV Gamma curve参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.16. MI_ISP_IQ_SetSaturation

    • 目的

      设定饱和度参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetSaturation(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_SaturationType_t *data);
      
    • 描述

      调用此函式设定饱和度参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 饱和度参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.17. MI_ISP_IQ_GetSaturation

    • 目的

      取得饱和度参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetSaturation(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_SaturationType_t *data);
      
    • 描述

      调用此函式取得饱和度参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 饱和度参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.18. MI_ISP_IQ_SetRgbMatrix

    • 目的

      设定色彩校正矩阵参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetRgbMatrix(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_RgbMatrixType_t *data);
      
    • 描述

      调用此函式设定色彩校正矩阵参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 色彩校正矩阵参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.19. MI_ISP_IQ_GetRgbMatrix

    • 目的

      取得色彩校正矩阵参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetRgbMatrix(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_RgbMatrixType_t *data);
      
    • 描述

      调用此函式取得色彩校正矩阵参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 色彩校正矩阵参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.20. MI_ISP_IQ_SetNr3d

    • 目的

      设定3D降噪参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetNR3D(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_Nr3dType_t *data);
      
    • 描述

      调用此函式设定3D降噪参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 3D降噪参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.21. MI_ISP_IQ_GetNr3d

    • 目的

      取得3D降噪参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetNR3D(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_Nr3dType_t *data);
      
    • 描述

      调用此函式取得3D降噪参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 3D降噪参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.22. MI_ISP_IQ_SetNrChroma

    • 目的

      设定颜色降噪参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetNrChroma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaType_t *data);
      
    • 描述

      调用此函式设定颜色降噪参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 颜色降噪参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.23. MI_ISP_IQ_GetNrChroma

    • 目的

      取得颜色降噪参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetNrChroma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaType_t *data);
      
    • 描述

      调用此函式取得颜色降噪参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 颜色降噪参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.24. MI_ISP_IQ_SetSharpness

    • 目的

      设定锐度参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetSharpness(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ShapnessType_t *data);
      
    • 描述

      调用此函式设定锐度参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 锐度参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.25. MI_ISP_IQ_GetSharpness

    • 目的

      取得锐度参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetSharpness(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ShapnessType_t *data);
      
    • 描述

      调用此函式取得锐度参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 锐度参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.26. MI_ISP_IQ_SetWdr

    • 目的

      设定宽动态参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetWdr(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_WdrType_t *data);
      
    • 描述

      调用此函式设定宽动态参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 宽动态参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.27. MI_ISP_IQ_GetWdr

    • 目的

      取得宽动态参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetWdr(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_WdrType_t *data);
      
    • 描述

      调用此函式取得宽动态参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 宽动态参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.28. MI_ISP_IQ_SetHsv

    • 目的

      设定HSV参数值,可做局部色相的旋转与饱和度的增减。

    • 语法

      MI_S32 MI_ISP_IQ_SetHsv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_HsvType_t *data);
      
    • 描述

      调用此函式设定HSV参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data HSV参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.29. MI_ISP_IQ_GetHsv

    • 目的

      取得HSV参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetHsv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_HsvType_t *data);
      
    • 描述

      调用此函式取得HSV参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data HSV参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.30. MI_ISP_IQ_SetColorTrans

    • 目的

      设定色彩转换参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetColorTrans(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ColorTransType_t *data);
      
    • 描述

      调用此函式设定色彩转换参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 色彩转换参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.31. MI_ISP_IQ_GetColorTrans

    • 目的

      取得色彩转换参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetColorTrans(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ColorTransType_t *data);
      
    • 描述

      调用此函式取得色彩转换参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 色彩转换参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.32. MI_ISP_IQ_SetIqMode

    • 目的

      设定IQ模式参数值,目前仅提供Day / Night Mode,只适用于RGBIR夜视。

    • 语法

      MI_S32 MI_ISP_IQ_SetIqMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ParamMode_e *data);
      
    • 描述

      调用此函式设定IQ模式参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data IQ模式参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.33. MI_ISP_IQ_GetIqMode

    • 目的

      取得IQ模式参数值,目前仅提供Day / Night Mode,只适用于RGBIR夜视。

    • 语法

      MI_S32 MI_ISP_IQ_GetIqMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ParamMode_e *data);
      
    • 描述

      调用此函式取得IQ模式参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data IQ模式参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.34. MI_ISP_IQ_SetApiBypassMode

    • 目的

      设定ISP对应IP模块的略过模式(ByPass Mode)参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetApiBypassMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ApiBypassType_t *data);
      
    • 描述

      调用此函式设定ISP对应IP模块的略过模式参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data ISP对应IP模块的略过模式参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.35. MI_ISP_IQ_GetApiBypassMode

    • 目的

      取得ISP对应IP模块的略过模式(ByPass Mode)参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetApiBypassMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ApiBypassType_t *data);
      
    • 描述

      调用此函式取得ISP对应IP模块的略过模式参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data ISP对应IP模块的略过模式参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.36. MI_ISP_IQ_QueryCcmInfo

    • 目的

      取得当前色温的CCM参数值。

    • 语法

      MI_S32 MI_ISP_IQ_QueryCcmInfo(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_CcmInfoType_t *data);
      
    • 描述

      调用此函式取得当前色温的CCM参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data 当前色温的CCM参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.37. MI_ISP_IQ_SetNrLumaAdv

    • 目的

      设定NRLuma_Adv参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetNRLumaAdv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrLumaAdvType_t *data);
      
    • 描述

      调用此函式设定NRLuma_Adv参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data NRLuma_Adv参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.38. MI_ISP_IQ_GetNrLumaAdv

    • 目的

      取得NRLuma_Adv参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetNrLumaAdv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrLumaAdvType_t *data);
      
    • 描述

      调用此函式取得NRLuma_Adv参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data NRLuma_Adv参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.39. MI_ISP_IQ_SetNrChromaAdv

    • 目的

      设定NRChroma_Adv参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetNRChromaAdv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaAdvType_t *data);
      
    • 描述

      调用此函式设定NRChroma_Adv参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data NRChroma_Adv参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.40. MI_ISP_IQ_GetNrChromaAdv

    • 目的

      取得NRChroma_Adv参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetNRChromaAdv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaAdvType_t *data);
      
    • 描述

      调用此函式取得NRChroma_Adv参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data NRChroma_Adv参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.41. MI_ISP_IQ_SetShpEx

    • 目的

      设定SHP_EX(Sharpness_EX)参数值,包含一些较少调适或是不用by iso调整的参数。

    • 语法

      MI_S32 MI_ISP_IQ_SetShpEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_SharpnessExType_t *data);
      
    • 描述

      调用此函式设定SHP_EX参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data SHP_EX参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.42. MI_ISP_IQ_GetShpEx

    • 目的

      取得SHP_EX(Sharpness_EX)参数值,包含一些较少调适或是不用by iso调整的参数。

    • 语法

      MI_S32 MI_ISP_IQ_GetShpEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_SharpnessExType_t *data);
      
    • 描述

      调用此函式取得SHP_EX参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data SHP_EX参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.43. MI_ISP_IQ_SetNr3dEx

    • 目的

      设定NR3D_EX参数值,包含一些较少调适或是不用by iso调整的参数。

    • 语法

      MI_S32 MI_ISP_IQ_SetNr3dEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_Nr3dExType_t *data);
      
    • 描述

      调用此函式设定NR3D_EX参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data NR3D_EX参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.44. MI_ISP_IQ_GetNr3dEx

    • 目的

      取得NR3D_EX参数值,包含一些较少调适或是不用by iso调整的参数。

    • 语法

      MI_S32 MI_ISP_IQ_GetNr3dEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_Nr3dExType_t *data);
      
    • 描述

      调用此函式取得NR3D_EX参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data NR3D_EX参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.45. MI_ISP_IQ_SetDummy

    • 目的

      设定DUMMY参数值,开一个空的通道,必要时再串接起来,减少进板不兼容或是需要进版的问题。

    • 语法

      MI_S32 MI_ISP_IQ_SetDummy(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_DummyType_t *data);
      
    • 描述

      调用此函式设定DUMMY参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data DUMMY参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.46. MI_ISP_IQ_GetDummy

    • 目的

      取得DUMMY参数值,开一个空的通道,必要时再串接起来,减少进板不兼容或是需要进版的问题。

    • 语法

      MI_S32 MI_ISP_IQ_GetDummy(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_DummyType_t *data);
      
    • 描述

      调用此函式取得DUMMY参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data DUMMY参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.47. MI_ISP_IQ_SetDummyEx

    • 目的

      设定DUMMY_EX参数值,开一个空的通道,必要时再串接起来,减少进板不兼容或是需要进版的问题。

    • 语法

      MI_S32 MI_ISP_IQ_SetDummyEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_DummyExType_t *data);
      
    • 描述

      调用此函式设定DUMMY_EX参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data DUMMY_EX参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.48. MI_ISP_IQ_GetDummyEx

    • 目的

      取得DUMMY_EX参数值,开一个空的通道,必要时再串接起来,减少进板不兼容或是需要进版的问题。

    • 语法

      MI_S32 MI_ISP_IQ_GetDummyEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_DummyExType_t *data);
      
    • 描述

      调用此函式取得DUMMY_EX参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data DUMMY_EX参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.49. MI_ISP_IQ_SetWdrCurveFull

    • 目的

      设定WDRCurveFull参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetWdrCurveFull(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_WdrCurveFullType_t *data);
      
    • 描述

      调用此函式设定WDRCurveFull参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data WDRCurveFull参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.50. MI_ISP_IQ_GetWdrCurveFull

    • 目的

      取得WDRCurveFull参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetWdrCurveFull(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_WdrCurveFullType_t *data);
      
    • 描述

      调用此函式取得WDRCurveFull参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data WDRCurveFull参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.51. MI_ISP_IQ_SetDefog

    • 目的

      设定Defog参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetDefog(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_DefogType_t *data);
      
    • 描述

      调用此函式设定Defog参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data Defog参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.52. MI_ISP_IQ_GetDefog

    • 目的

      取得Defog参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetDefog(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_DefogType_t *data);
      
    • 描述

      调用此函式取得Defog参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data Defog参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.53. MI_ISP_IQ_SetTemp

    • 目的

      设定Temperature参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetTemp(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_TempType_t *data);
      
    • 描述

      调用此函式设定Temperature参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data Temperature参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.54. MI_ISP_IQ_GetTemp

    • 目的

      取得Temperature参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetTemp(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_TempType_t *data);
      
    • 描述

      调用此函式取得Temperature参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data Temperature参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.55. MI_ISP_IQ_GetTempInfo

    • 目的

      取得 Temperature Info参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetTempInfo(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_TempInfoType_t *data);
      
    • 描述

      调用此函式取得Temperature Info参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data Temperature Info参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.56. MI_ISP_IQ_SetNrChromaPre

    • 目的

      设定NRChroma_Pre参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetNrChromaPre(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaPreType_t *data);
      
    • 描述

      调用此函式设定NRChroma_Pre参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data NRChroma_Pre参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.57. MI_ISP_IQ_GetNrChromaPre

    • 目的

      取得NRChroma_Pre参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetNrChromaPre(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaPreType_t *data);
      
    • 描述

      调用此函式取得NRChroma_Pre参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data NRChroma_Pre参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.58. MI_ISP_IQ_SetYclpf

    • 目的

      设定YCLPF参数值。

    • 语法

      MI_S32 MI_ISP_IQ_SetYclpf (MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_YclpfType_t *data);
      
    • 描述

      调用此函式设定YCLPF参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data YCLPF参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.59. MI_ISP_IQ_GetYclpf

    • 目的

      取得YCLPF参数值。

    • 语法

      MI_S32 MI_ISP_IQ_GetYclpf (MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_YclpfType_t *data);
      
    • 描述

      调用此函式设定YCLPF参数值。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      *data YCLPF参数值的指针。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp_iq.h

      • 库文件:libmi_isp.so

    2.60. MI_ISP_IQ_ApiCmdLoadBinFile

    • 目的

      载入cmd load bin file,于使用者在IQ Tool调校好的IQ参数后tunnel到客户应用程序中。

    • 语法

      MI_S32 MI_ISP_IQ_ApiCmdLoadBinFile(MI_U32 DevId, MI_U32 Channel, 
      char* filepath, MI_U32 user_key);
      
    • 描述

      调用此函式载入IQ Tool调校好之后的api cmd bin档案,那么客户在app中直接load此bin file,就与IQ Tool调校效果一样。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      filepath ISP api bin档案的路径位置。
      user_key user key与magic key必须一致。magic key可由IQ Tool内的Setting字段来修改值。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp.h

      • 库文件:libmi_isp.so

    • 举例

      Filepath是bin文件的路径,此user_key值会去比对magic key,而IQ Tool保存magic key至ISP api bin里面,透过函数调用ISP api bin时会判断ISP api bin里面的magic key与函式传进去的user_key是否一致。magic key值可以在工具的Setting里面设定,如Figure 2。

      Figure 2:IQTool接口设定Magic key示意图

    2.61. MI_ISP_IQ_ApiCmdLoadCaliData

    • 目的

      载入offline calibration data file,于用户在脱机版校正程序的参数档案(*.data)后tunnel到客户应用程序中呼叫此API function。

    • 语法

      MI_S32 MI_ISP_IQ_ApiCmdLoadCaliData(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_CaliItem_e eCaliItem, char* filepath);
      
    • 描述

      调用此函式加载脱机版校正程序的参数档案(*.data),那么客户在应用程序中直接load此data file。

    • 参数

      参数名称 描述
      DevId ISP设备号(目前chip设置为为0)。
      Channel 影像输入的信道号(一般为0)。
      eCaliItem 校正项目的列举结构体。
      filepath 校正参数档案的路径位置。
    • 返回值

      参数名称 描述
      MI_ISP_OK 成功。
      MI_ISP_FAILURE 失败。
    • 需求

      • 头文件:mi_isp.h

      • 库文件:libmi_isp.so

    3. MI ISP API数据类型

    3.1. MI_ISP_IQ_bool结构体

    3.1.1. 列举结构体 (Enum Structure)

    • 说明

      布尔值的列举结构体。

    • 定义

      typedef enum
      
      {
      
          E_SS_IQ_FALSE = 0,
      
          E_SS_IQ_TRUE = !E_SS_IQ_FALSE,
      
          E_SS_IQ_BOOL_MAX
      
      } MI_ISP_IQ_bool_e;
      
    • 名称

      变量名称 描述
      E_SS_IQ_FALSE 布尔值等于0。
      E_SS_IQ_TRUE 布尔值等于1。
      E_SS_IQ_BOOL_MAX 判断布尔值列举列表的最大值。

    3.2. MI_ISP_IQ_OpType结构体

    3.2.1. 列举结构体 (Enum Structure)

    • 说明

      工作模式的列举结构体。

    • 定义

      typedef enum
      
      {
      
          E_SS_IQ_OP_TYP_AUTO = 0,
      
          E_SS_IQ_OP_TYP_MANUAL = !E_SS_IQ_OP_TYP_AUTO,
      
          E_SS_IQ_OP_TYP_MODE_MAX
      
      } MI_ISP_IQ_OpType_e;
      
    • 名称

      变量名称 描述
      E_SS_IQ_OP_TYP_AUTO 自动工作模式。
      E_SS_IQ_OP_TYP_MANUAL 手动工作模式。
      E_SS_IQ_OP_TYP_MODE_MAX 判断工作模式列举列表的最大值。

    3.3. MI_ISP_SM_STATE_TYPE结构体

    3.3.1. 列举结构体 (Enum Structure)

    • 说明

      状态机(State Machine)的列举结构体。

    • 定义

      typedef enum
      
      {
      
          SS_ISP_STATE_NORMAL = 0,
      
          SS_ISP_STATE_PAUSE = 1,
      
          SS_ISP_STATE_MAX
      
      } MI_ISP_SM_STATE_TYPE_e;
      
    • 名称

      变量名称 描述
      SS_OP_TYP_AUTO 正常模式。
      SS_OP_TYP_MANUAL 暂停模式。
      SS_OP_TYP_MODE_MAX 判断状态机列举清单的最大值。

    3.4. MI_ISP_IQ_ParamMode结构体

    3.4.1. 列举结构体 (Enum Structure)

    • 说明

      IQ特殊模式的列举结构体。

    • 定义

      typedef enum
      
      {
      
          E_SS_IQ_PARAM_MODE_NORMAL = 0,
      
          E_SS_IQ_PARAM_MODE_NIGHT = 1,
      
          E_SS_IQ_PARAM_MODE_MAX
      
      } MI_ISP_IQ_ParamMode_e;
      
    • 名称

      变量名称 描述
      E_SS_IQ_PARAM_MODE_NORMAL IQ白天工作模式。
      E_SS_IQ_PARAM_MODE_NIGHT IQ夜间工作模式。
      E_SS_IQ_PARAM_MODE_MAX 判断IQ工作模式列举列表的最大值。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetIqMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ParamMode_e *data);
      
      MI_S32 MI_ISP_IQ_GetIqMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ParamMode_e *data);
      

    3.5. MI_ISP_BypassMode结构体

    3.5.1. 列举结构体 (Enum Structure)

    • 说明

      ByPass工作模式的列举结构体。

    • 定义

      typedef enum
      
      {
      
          E_SS_BYPASS_OFF = 0,
      
          E_SS_BYPASS_ON,
      
          E_SS_BYPASS_MAX
      
      } MI_ISP_IQ_BypassMode_e;
      
    • 名称

      变量名称 描述
      E_SS_BYPASS_OFF ByPass工作模式等于Disable。
      E_SS_BYPASS_ON ByPass工作模式等于Enable。
      E_SS_BYPASS_MAX 判断ByPass工作模式列举列表的最大值。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetApiBypassMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ApiBypassType_t *data);
      
      MI_S32 MI_ISP_IQ_GetApiBypassMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ApiBypassType_t *data);
      

    3.6. MI_ISP_IQ_Index结构体

    3.6.1. 列举结构体 (Enum Structure)

    • 说明

      IQ曝光指数(ISO index)的列举结构体。

    • 定义

      typedef enum
      {
          E_SS_IQ_INDEX_0 = 0,
          E_SS_IQ_INDEX_1,
          E_SS_IQ_INDEX_2,
          E_SS_IQ_INDEX_3,
          E_SS_IQ_INDEX_4,
          E_SS_IQ_INDEX_5,
          E_SS_IQ_INDEX_6,
          E_SS_IQ_INDEX_7,
          E_SS_IQ_INDEX_8,
          E_SS_IQ_INDEX_9,
          E_SS_IQ_INDEX_10,
          E_SS_IQ_INDEX_11,
          E_SS_IQ_INDEX_12,
          E_SS_IQ_INDEX_13,
          E_SS_IQ_INDEX_14,
          E_SS_IQ_INDEX_15,
          E_SS_IQ_INDEX_MAX
      } MI_ISP_IQ_Index_e;
      
    • 名称

      变量名称 描述
      E_SS_IQ_INDEX_0 SS_IQ_INDEX_0曝光指数等于0、增益数值等于1倍。
      E_SS_IQ_INDEX_1 SS_IQ_INDEX_1曝光指数等于1、增益数值等于2倍。
      E_SS_IQ_INDEX_2 SS_IQ_INDEX_2曝光指数等于2、增益数值等于4倍。
      E_SS_IQ_INDEX_3 SS_IQ_INDEX_3曝光指数等于3、增益数值等于8倍。
      E_SS_IQ_INDEX_4 SS_IQ_INDEX_4曝光指数等于4、增益数值等于16倍。
      E_SS_IQ_INDEX_5 SS_IQ_INDEX_5曝光指数等于5、增益数值等于32倍。
      E_SS_IQ_INDEX_6 SS_IQ_INDEX_6曝光指数等于6、增益数值等于64倍。
      E_SS_IQ_INDEX_7 SS_IQ_INDEX_7曝光指数等于7、增益数值等于128倍。
      E_SS_IQ_INDEX_8 SS_IQ_INDEX_8曝光指数等于8、增益数值等于256倍。
      E_SS_IQ_INDEX_9 SS_IQ_INDEX_9曝光指数等于9、增益数值等于512倍。
      E_SS_IQ_INDEX_10 SS_IQ_INDEX_10曝光指数等于10、增益数值等于1024倍。
      E_SS_IQ_INDEX_11 SS_IQ_INDEX_11曝光指数等于11、增益数值等于2048倍。
      E_SS_IQ_INDEX_12 SS_IQ_INDEX_12曝光指数等于12、增益数值等于4096倍。
      E_SS_IQ_INDEX_13 SS_IQ_INDEX_13曝光指数等于13、增益数值等于8192倍。
      E_SS_IQ_INDEX_14 SS_IQ_INDEX_14曝光指数等于14、增益数值等于16384倍。
      E_SS_IQ_INDEX_15 SS_IQ_INDEX_15曝光指数等于15、增益数值等于32768倍。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_GetIqInd(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_Index_e *data);
      

    3.7. MI_ISP_IQ_ApiId结构体

    3.7.1. 列举结构体 (Enum Structure)

    • 说明

      每个API ID的列举结构体。

    • 定义

      typedef enum
      {
          E_API20_AUTO = 0,
          E_API20_FPN = 1,
          E_API20_CCM = 2,
          E_API20_SAT = 3,
          E_API20_OBC = 4,
          E_API20_OBC_P1 = 5,
          E_API20_FCOLOR = 6,
          E_API20_CR = 7,
          E_API20_NR_DESPIKE = 8,
          E_API20_SHP = 9,
          E_API20_NR_3D = 10,
          E_API20_BRI = 11,
          E_API20_LIG = 12,
          E_API20_CST = 13,
          E_API20_GMA = 14,
          E_API20_CTG = 15,
          E_API20_NR_NLM = 16,
          E_API20_DEFOG = 17,
          E_API20_DRC = 18,
          E_API20_DPC = 19,
          E_API20_HSV = 20,
          E_API20_WDR_LOC = 21,
          E_API20_RGBIR = 22,
          E_API20_YUVGMA = 23,
          E_API20_HDR16TO12 = 24,
          E_API20_COLORTRANS = 25,
          E_API20_HDR = 26,
          E_API20_EFFECT = 27,
          E_API20_PFC = 28,
          E_API20_SIIR = 29,
          E_API20_DM = 30,
          E_API20_NR_3D_P1 = 31,
          E_API20_WDR_CURVE_ADV = 32,
          E_API20_MXNR = 33,
          E_API20_R2Y = 34,
          E_API20_LSC = 35,
          E_API20_LSC_CTRL = 36,
          E_API20_ALSC = 37,
          E_API20_ALSC_CTRL = 38,
          E_API20_DPC_CLUSTER = 39,
          E_API20_PFC_EX = 40,
          E_API20_HDR_EX = 41,
          E_API20_SHP_EX = 42,
          E_API20_NR_3D_EX = 43,
          E_API20_GNR = 44,
          E_API20_DUMMY = 45,
          E_API20_DUMMY_EX = 46,
          E_API20_WDR_CURVE_FULL = 47,
          E_API20_ADAPTIVE_GMA = 48,
          E_API20_XNR = 49,
          E_API20_TEMP = 50,
          E_API20_TEMP_INFO = 51,
          E_API20_CSA = 52,
          E_API20_WDR_LCE = 53,
          E_API20_WDR_NR = 54,
          E_API20_YCLPF = 55,
          E_API20_MAX = 56,
      } MI_ISP_IQ_ApiId_e;
      
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetApiBypassMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ApiBypassType_t *data);
      
      MI_S32 MI_ISP_IQ_GetApiBypassMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ApiBypassType_t *data);
      

    3.8. MI_ISP_IQ_CaliItem结构体

    3.8.1. 列举结构体 (Enum Structure)

    • 说明

      校正选项的列举结构体。

    • 定义

      typedef enum
      
      {
      
          E_SS_CALI_ITEM_AWB = 0,
      
          E_SS_CALI_ITEM_OBC,
      
          E_SS_CALI_ITEM_SDC,
      
          E_SS_CALI_ITEM_ALSC,
      
          E_SS_CALI_ITEM_LSC,
      
          E_SS_CALI_ITEM_MAX,
      
      } MI_ISP_IQ_CaliItem_e;
      
    • 名称

      变量名称 描述
      E_SS_CALI_ITEM_AWB 白平衡补偿校正。
      E_SS_CALI_ITEM_OBC 黑电平补偿校正。
      E_SS_CALI_ITEM_SDC 静态坏点补偿校正。
      E_SS_CALI_ITEM_ALSC 镜头补偿校正。
      E_SS_CALI_ITEM_LSC 镜头补偿校正。
      E_SS_CALI_ITEM_MAX 判断校正选项列举列表的最大值。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_ApiCmdLoadCaliData(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_CaliItem_e eCaliItem, char* filepath);
      

    3.9. MI_ISP_IQ_VersionInfo结构体

    3.9.1. 类型结构体 (Type Structure)

    • 说明

      取得ISP IQ版本号的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_VersionInfoType_s
      
      {
      
          MI_ISP_IQ_VersionInfoParam_t stParaAPI;
      
      } MI_ISP_IQ_VersionInfoType_t;
      
    • 名称

      变量名称 描述
      stParaAPI 取得ISP IQ版本号的类型结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_GetVersionInfo(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_VersionInfoType_t *data);
      

    3.9.2. 参数结构体 (Parameter Structure)

    • 说明

      取得IQ版本号的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_VersionInfoParam_s
      
      {
      
          MI_U32 u32Vendor;
      
          MI_U32 u32Major;
      
          MI_U32 u32Minor;
      
      } MI_ISP_IQ_VersionInfoParam_t;
      
    • 名称

      变量名称 描述
      u32Vendor ISP IQ Vendor版本号,提供Get / Set功能。
      u32Major ISP IQ Major版本号,只提供Get功能。
      u32Minor ISP IQ Minor版本号,只提供Get功能。

    3.10. MI_ISP_IQ_ParamInitInfo结构体

    3.10.1. 类型结构体 (Type Structure)

    • 说明

      取得ISP初始化ready状态的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_ParamInitInfoType_s
      
      {
      
          MI_ISP_IQ_ParamInitInfoParam_t stParaAPI;
      
      } MI_ISP_IQ_ParamInitInfoType_t;
      
    • 名称

      变量名称 描述
      stParaAPI 取得ISP初始化ready状态的类型结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_GetParaInitStatus(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ParamInitInfoType_t *data);
      

    3.10.2. 参数结构体 (Parameter Structure)

    • 说明

      取得ISP初始化ready状态的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_ParamInitInfoParam_s
      
      {
      
          MI_ISP_IQ_bool_e bFlag;
      
      } MI_ISP_IQ_ParamInitInfoParam_t;
      
    • 名称

      变量名称 描述
      bFlag 取得ISP初始化完毕状态的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。

    3.11. MI_ISP_IQ_ColorToGray结构体

    3.11.1. 类型结构体 (Type Structure)

    • 说明

      设定彩色转灰阶影像的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_ColorToGrayType_s
      
      {
      
          MI_ISP_IQ_bool_e bEnable;
      
      } MI_ISP_IQ_ColorToGrayType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定彩色转灰阶影像功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetColorToGray(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ColorToGrayType_t *data);
      
      MI_S32 MI_ISP_IQ_GetColorToGray(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ColorToGrayType_t *data);
      

    3.12. MI_ISP_IQ_Constrast结构体

    3.12.1. 类型结构体 (Type Structure)

    • 说明

      设定对比度的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_ContrastType_s
      
      {
      
          MI_ISP_IQ_bool_e        bEnable;
      
          MI_ISP_IQ_OpType_e     enOpType;
      
          MI_ISP_IQ_ContrastAutoAttr_t  stAuto;
      
          MI_ISP_IQ_ContrastManualAttr_t   stManual;
      
      } MI_ISP_IQ_ContrastType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定对比度功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定对比度的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定对比度的自动模式属性结构体。
      stManual 设定对比度的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetContrast(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ContrastType_t *data);
      
      MI_S32 MI_ISP_IQ_GetContrast(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ContrastType_t *data);
      

    3.12.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定对比度的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_ContrastAutoAttr_s
      
      {
      
          MI_ISP_IQ_LevelBaseParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_ContrastAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.12.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定对比度的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_ContrastManualAttr_s
      
      {
      
          MI_ISP_IQ_LevelBaseParam_t stParaAPI;
      
      } MI_ISP_IQ_ContrastManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.12.4. 参数结构体 (Parameter Structure)

    • 说明

      设定对比度、亮度、灰度的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_LevelBaseParam_s
      
      {
      
          MI_U32 u32Lev;
      
      } MI_ISP_IQ_LevelBaseParam_t;
      
    • 名称

      变量名称 描述
      u32Lev 设定对比度、亮度、灰度的可变强度数值。值域范围:0 ~ 100。

    3.13. MI_ISP_IQ_Brightness结构体

    3.13.1. 类型结构体 (Type Structure)

    • 说明

      设定亮度的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_BrightnessType_s
      
      {
      
          MI_ISP_IQ_bool_e          bEnable;
      
          MI_ISP_IQ_OpType_e       enOpType;
      
          MI_ISP_IQ_BrightnessAutoAttr_t   stAuto;
      
          MI_ISP_IQ_BrightnessManualAttr_t  stManual;
      
      } MI_ISP_IQ_BrightnessType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定亮度功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定亮度的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定亮度的自动模式属性结构体。
      stManual 设定亮度的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetBrightness(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_BrightnessType_t *data);
      
      MI_S32 MI_ISP_IQ_GetBrightness(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_BrightnessType_t *data);
      

    3.13.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定亮度的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_BrightnessAutoAttr_s
      
      {
      
          MI_ISP_IQ_LevelBaseParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_BrightnessAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.13.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定亮度的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_BrightnessManualAttr_s
      
      {
      
          MI_ISP_IQ_LevelBaseParam_t stParaAPI;
      
      } MI_ISP_IQ_BrightnessManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.14. MI_ISP_IQ_Lightness结构体

    3.14.1. 类型结构体 (Type Structure)

    • 说明

      设定灰度的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_LightnessType_s
      
      {
      
          MI_ISP_IQ_bool_e          bEnable;
      
          MI_ISP_IQ_OpType_e         enOpType;
      
          MI_ISP_IQ_LightnessAutoAttr_t   stAuto;
      
          MI_ISP_IQ_LightnessManualAttr_t    stManual;
      
      } MI_ISP_IQ_LightnessType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定灰度功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定灰度的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定灰度的自动模式属性结构体。
      stManual 设定灰度的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetLightness(MI_U32 DevId, MI_U32 Channel, MI_ISP_IQ_LightnessType_t *data);
      
      MI_S32 MI_ISP_IQ_GetLightness(MI_U32 DevId, MI_U32 Channel, MI_ISP_IQ_LightnessType_t *data);
      

    3.14.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定灰度的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_LightnessAutoAttr_s
      
      {
      
          MI_ISP_IQ_LevelBaseParam_t   stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_LightnessAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI[MI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.14.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定灰度的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_LightnessManualAttr_s
      
      {
      
          MI_ISP_IQ_LevelBaseParam_t   stParaAPI;
      
      } MI_ISP_IQ_LightnessManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.15. MI_ISP_IQ_RgbGamma结构体

    3.15.1. 类型结构体 (Type Structure)

    • 说明

      设定RGB Gamma curve的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_RgbGammaType_s
      
      {
      
          MI_ISP_IQ_bool_e        bEnable;
      
          MI_ISP_IQ_OpType_e       enOpType;
      
          MI_ISP_IQ_RgbGammaAutoAttr_t  stAuto;
      
          MI_ISP_IQ_RgbGammaManualAttr_t stManual;
      
      } MI_ISP_IQ_RgbGammaType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定RGB Gamma curve功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定RGB Gamma curve的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定RGB Gamma curve的自动模式属性结构体。
      stManual 设定RGB Gamma curve的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetRgbGamma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_RgbGammaType_t *data);
      
      MI_S32 MI_ISP_IQ_GetRgbGamma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_RgbGammaType_t *data);
      

    3.15.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定RGB Gamma curve的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_RgbGammaAutoAttr_s
      
      {
      
          MI_ISP_IQ_RgbGammaParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_RgbGammaAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.15.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定RGB Gamma curve的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_RgbGammaManualAttr_s
      
      {
      
          MI_ISP_IQ_RgbGammaParam_t stParaAPI;
      
      } MI_ISP_IQ_RgbGammaManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.15.4. 参数结构体 (Parameter Structure)

    • 说明

      设定RGB Gamma curve的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_RgbGammaParam_s
      
      {
      
          MI_U16 u16LutR[RGBGAMMA_NUM];
      
          MI_U16 u16LutG[RGBGAMMA_NUM];
      
          MI_U16 u16LutB[RGBGAMMA_NUM];
      
      } MI_ISP_IQ_RgbGammaParam_t;
      
    • 名称

      变量名称 描述
      u16LutR[RGBGAMMA_NUM] R通道分量。值域范围:0 ~ 1023。RGBGAMMA_NUM = 256。
      u16LutG[RGBGAMMA_NUM] G通道分量。值域范围:0 ~ 1023。RGBGAMMA_NUM = 256。
      u16LutB[RGBGAMMA_NUM] B通道分量。值域范围:0 ~ 1023。RGBGAMMA_NUM = 256。
    • 注意事项

      • 支持三个通道的Gamma设定,SigmaStar建议三个通道设定一样,如Figure 3。

        Figure 3:RGB Gamma curve

    3.16. MI_ISP_IQ_YuvGamma结构体

    3.16.1. 类型结构体 (Type Structure)

    • 说明

      设定YUV Gamma curve的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_YuvGammaType_s
      
      {
      
          MI_ISP_IQ_bool_e        bEnable;
      
          MI_ISP_IQ_OpType_e       enOpType;
      
          MI_ISP_IQ_YuvGammaAutoAttr_t  stAuto;
      
          MI_ISP_IQ_YuvGammaManualAttr_t stManual;
      
      } MI_ISP_IQ_YuvGammaType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定YUV Gamma curve功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定YUV Gamma curve的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定YUV Gamma curve的自动模式属性结构体。
      stManual 设定YUV Gamma curve的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetYuvGamma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_YuvGammaType_t *data);
      
      MI_S32 MI_ISP_IQ_GetYuvGamma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_YuvGammaType_t *data);
      

    3.16.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定YUV Gamma curve的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_YuvGammaAutoAttr_s
      
      {
      
          MI_ISP_IQ_YuvGammaParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_YuvGammaAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.16.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定YUV Gamma curve的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_YuvGammaManualAttr_s
      
      {
      
          MI_ISP_IQ_YuvGammaParam_t stParaAPI;
      
      } MI_ISP_IQ_YuvGammaManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.16.4. 参数结构体 (Parameter Structure)

    • 说明

      设定YUV Gamma curve的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_YuvGammaParam_s
      
      {
      
          MI_U16 u16LutY[YUVGAMMA_Y_NUM];
      
          MI_U16 u16LutU[YUVGAMMA_U_NUM];
      
          MI_U16 u16LutV[YUVGAMMA_V_NUM];
      
      } MI_ISP_IQ_YuvGammaParam_t;
      
    • 名称

      变量名称 描述
      u16LutY[YUVGAMMA_Y_NUM] Y通道分量。值域范围:0 ~ 1023。YUVGAMMA_Y_NUM = 256
      u16LutU[YUVGAMMA_U_NUM] U通道分量。值域范围:0 ~ 511。YUVGAMMA_U_NUM = 128
      u16LutV[YUVGAMMA_V_NUM] V通道分量。值域范围:0 ~ 511。YUVGAMMA_V_NUM = 128

    3.17. MI_ISP_IQ_Saturation结构体

    3.17.1. 类型结构体 (Type Structure)

    • 说明

      设定饱和度的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_SaturationType_s
      
      {
      
          MI_ISP_IQ_bool_e          bEnable;
      
          MI_ISP_IQ_OpType_e         enOpType;
      
          MI_ISP_IQ_SaturationAutoAttr_t   stAuto;
      
          MI_ISP_IQ_SaturationManualAttr_t  stManual;
      
      } MI_ISP_IQ_SaturationType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定饱和度功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定饱和度的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定饱和度的自动模式属性结构体。
      stManual 设定饱和度的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetSaturation(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_SaturationType_t *data);
      
      MI_S32 MI_ISP_IQ_GetSaturation(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_SaturationType_t *data);
      

    3.17.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定饱和度的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_SaturationAutoAttr_s
      
      {
      
          MI_ISP_IQ_SaturationParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_SaturationAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.17.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定饱和度的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_SaturationManualAttr_s
      
      {
      
          MI_ISP_IQ_SaturationParam_t stParaAPI;
      
      } MI_ISP_IQ_SaturationManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.17.4. 参数结构体 (Parameter Structure)

    • 说明

      设定饱和度的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_SaturationParam_s
      
      {
      
          MI_U8 u8SatAllStr;
      
          MI_U8 u8SatByYSFTAdv[SAT_LUT_X_NUM];
      
          MI_U8 u8SatByYLUTAdv[SAT_LUT_Y_NUM];
      
          MI_U8 u8SatBySSFTAdv[SAT_LUT_X_NUM];
      
          MI_U8 u8SatBySLUTAdv[SAT_LUT_Y_NUM];
      
          MI_U8 u8SatCoring;
      
      } MI_ISP_IQ_SaturationParam_t;
      
    • 名称

      变量名称 描述
      u8SatAllStr 整体饱和度的强度数值。值域范围:0 ~ 127(32等于1倍)。
      u8SatByYSFTAdv[SAT_LUT_X_NUM] 调整亮度区间的强度数值。值域范围:0 ~ 8。 SAT_LUT_X_NUM = 5。
      u8SatByYLUTAdv[SAT_LUT_Y_NUM] 基于亮度区间调整饱和度的数值。值域范围:0 ~ 128。 SAT_LUT_Y_NUM = 6。
      u8SatBySSFTAdv[SAT_LUT_X_NUM] 调整彩度区间的强度数值。值域范围:0 ~ 8。 SAT_LUT_X_NUM = 5。
      u8SatBySLUTAdv[SAT_LUT_Y_NUM] 基于彩度区间调整饱和度的数值。值域范围:0 ~ 128。 SAT_LUT_Y_NUM = 6。
      u8SatCoring 彩度全部减一个值降低彩度。值域范围:0 ~ 255。

    3.18. MI_ISP_IQ_RgbMatrix结构体

    3.18.1. 类型结构体 (Type Structure)

    • 说明

      设定色彩校正矩阵的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_RgbMatrixType_s
      
      {
      
          MI_ISP_IQ_bool_e          bEnable;
      
          MI_ISP_IQ_OpType_e         enOpType;
      
          MI_ISP_IQ_RgbMatrixAutoAttr_t   stAuto;
      
          MI_ISP_IQ_RgbMatrixManualAttr_t    stManual;
      
      } MI_ISP_IQ_RgbMatrixType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定色彩校正矩阵功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定色彩校正矩阵的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定色彩校正矩阵的自动模式属性结构体。
      stManual 设定色彩校正矩阵的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetRgbMatrix(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_RgbMatrixType_t *data);
      
      MI_S32 MI_ISP_IQ_GetRgbMatrix(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_RgbMatrixType_t *data);
      

    3.18.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定色彩校正矩阵的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_RgbMatrixAutoAttr_s
      
      {
      
          MI_ISP_IQ_bool_e      bISOActEn;
      
          MI_ISP_IQ_RgbMatrixParam_t   stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_RgbMatrixAutoAttr_t;
      
    • 名称

      变量名称 描述
      bISOActEn 设定ISO功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。开启:E_SS_IQ_TRUE = 1。
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.18.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定色彩校正矩阵的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_RgbMatrixManualAttr_s
      
      {
      
          MI_U16  u16CCM[CCM_COEFF_SUM_INFO_NUM];
      
          MI_U8  u8CCMSat;
      
      } MI_ISP_IQ_RgbMatrixManualAttr_t;
      
    • 名称

      变量名称 描述
      u16CCM[CCM_COEFF_SUM_INFO_NUM] 色彩校正矩阵参数值。值域范围:0 ~ 8191。 CCM_COEFF_SUM_INFO_NUM = 12 u16CCM[3]=mod(u16CCM[0]+u16CCM[1]+u16CCM[2], 1024) u16CCM[7]=mod(u16CCM[4]+u16CCM[5]+u16CCM[6], 1024) u16CCM[11]=mod(u16CCM[8]+u16CCM[9]+u16CCM[10], 1024)
      u8CCMSat 透过色彩校正矩阵调整饱和度的数值强度。值域范围:0 ~ 100。
    • 注意事项

      u8CCMSat = 0表示为色彩校正的单位矩阵数值。

      u8CCMSat = 100表示为色彩校正的矩阵数值。

    3.18.4. 参数结构体 (Parameter Structure)

    • 说明

      设定色彩校正矩阵的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_RgbMatrixParam_s
      
      {
      
          MI_U16 u16CCTthr;
      
          MI_U16 u16CCM[CCM_COEFF_SUM_INFO_NUM];
      
          MI_U8    u8CCMSat;
      
      } MI_ISP_IQ_RgbMatrixParam_t;
      
    • 名称

      变量名称 描述
      u16CCTthr 该组CCM的代表色温。值域范围:0 ~ 10000。
      u16CCM[CCM_COEFF_SUM_INFO_NUM] 色彩校正矩阵参数值。值域范围:0 ~ 8191。 CCM_COEFF_SUM_INFO_NUM = 12 u16CCM[3] = mod(u16CCM[0]+u16CCM[1]+u16CCM[2], 1024) u16CCM[7] = mod(u16CCM[4]+u16CCM[5]+u16CCM[6], 1024) u16CCM[11] = mod(u16CCM[8]+u16CCM[9]+u16CCM[10], 1024)
      u8CCMSat 透过色彩校正矩阵调整饱和度的数值强度。值域范围:0 ~ 100。
    • 注意事项

      u8CCMSat = 0表示为色彩校正的单位矩阵数值。

      u8CCMSat = 100表示为色彩校正的矩阵数值。

    3.19. MI_ISP_IQ_CcmInfo结构体

    3.19.1. 类型结构体 (Type Structure)

    • 说明

      取得当前色温的色彩校正矩阵的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_CcmInfoType_s
      
      {
      
          MI_U16 u16CCM[CCM_COEFF_SUM_INFO_NUM]; //0 ~ 8191 (1024 = 1x)
      
          MI_U16 u16CCT;
      
      } MI_ISP_IQ_CcmInfoType_t;
      
    • 名称

      变量名称 描述
      u16CCM[CCM_COEFF_SUM_INFO_NUM] 色彩校正矩阵包含CCM coefficient总和信息的参数值。
      值域范围:0 ~ 8191。CCM_COEFF_SUM_INFO_NUM = 12。
      u16CCM[0 ~ 3] → CCM00, CCM01, CCM02, CCM_Rsum
      u16CCM[4 ~ 7] → CCM10, CCM11, CCM12, CCM_Gsum
      u16CCM[8 ~ 11] → CCM20, CCM21, CCM22, CCM_Bsum
      u16CCT 获取目前色温数值。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_QueryCcmInfo(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_CcmInfoType_t *data);
      

    3.20. MI_ISP_IQ_Nr3d结构体

    3.20.1. 类型结构体 (Type Structure)

    • 说明

      设定3D降噪的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_Nr3dType_s
      
      {
      
          MI_ISP_IQ_bool_e        bEnable;
      
          MI_ISP_IQ_OpType_e       enOpType;
      
          MI_ISP_IQ_Nr3dAutoAttr_t    stAuto;
      
          MI_ISP_IQ_Nr3dManualAttr_t   stManual;
      
      } MI_ISP_IQ_Nr3dType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定3D降噪功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定3D降噪的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定3D降噪的自动模式属性结构体。
      stManual 设定3D降噪的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetNr3d(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_Nr3dType_t *data);
      
      MI_S32 MI_ISP_IQ_GetNr3d(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_Nr3dType_t *data);
      

    3.20.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定3D降噪的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_Nr3dAutoAttr_s
      
      {
      
          MI_ISP_IQ_Nr3dParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_Nr3dAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.20.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定3D降噪的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_Nr3dManualAttr_s
      
      {
      
          MI_ISP_IQ_Nr3dParam_t stParaAPI;
      
      } MI_ISP_IQ_Nr3dManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.20.4. 参数结构体 (Parameter Structure)

    • 说明

      设定3D降噪的参数结构体。

    • 定义

      typedef struct NR3D_PARAM_s
      {
          MI_U8   u8MdThd_C;
          MI_U8   u8MdThd_Y;
          MI_U16  u16MdGain_C;
          MI_U16  u16MdGain_Y;
          MI_U8   u8TfStr_Y;
          MI_U8   u8TfStr_C;
          MI_U8   u8MdThd_CByY[NR3D_C_BY_Y_NUM];
          MI_U8   u8MdThd_YByY[NR3D_Y_BY_Y_NUM];
          MI_U8   u8MdGain_CByY[NR3D_C_BY_Y_NUM];
          MI_U8   u8MdGain_YByY[NR3D_Y_BY_Y_NUM];
          MI_U8   u8M2SLut[NR3D_BY_MOT_NUM];
          MI_U16      u16TfLut[NR3D_BY_MOT_NUM];
          MI_U8   u8YSfBlendLut[NR3D_BY_MOT_NUM];
          MI_U8   u8YSfBlendOffset;
          MI_U8   u8MotHistDelayByDiff[NR3D_BY_MOT_NUM];
          MI_U16  u16DeDotDiffOffset;
          MI_U8       u8DeDotDiffShift;
      } NR3D_PARAM_t;
      
    • 名称

      变量名称 描述
      u8MdThd_C 颜色(C)的MD侦测,控制motion阀值,小于此阀值判断为静止物体,值越大3D降噪越强。值域范围:0 ~ 255。
      u8MdThd_Y 亮度(Y)通道的MD侦测,控制motion阀值,小于此阀值判断为静止物体,值越大3D降噪越强。值域范围:0 ~ 255。
      u16MdGain_C 颜色(C)MD侦测,控制motion程度,值越大越容易判断为静止物体,3D降噪越强。值域范围:0 ~ 1023。
      u16MdGain_Y 亮度(Y)MD侦测,控制motion程度,值越大越容易判断为静止物体,3D降噪越强。值域范围:0 ~ 1023。
      u8TfStr_Y 3D降噪强度控制。值域范围:0 ~ 64。
      u8TfStr_C 3D降噪强度控制Ex,开此设定强度会更强,但拖影更明显。 值域范围:0 ~ 64。
      u8MdThd_CByY[NR3D_C_BY_Y_NUM] 根据亮度控制颜色的motion阀值,值越大3D降噪越强。 值域范围:0 ~ 255。NR3D_C_BY_Y_NUM = 16
      u8MdThd_YByY[NR3D_Y_BY_Y_NUM] 根据亮度控制不同亮度的motion阀值,值越大3D降噪越强。 值域范围:0 ~ 255。NR3D_Y_BY_Y_NUM = 16
      u8MdGain_CByY[NR3D_C_BY_Y_NUM] 根据亮度控制颜色的motion程度,值越大3D降噪越强。 值域范围:0 ~ 255。NR3D_C_BY_Y_NUM = 16
      u8MdGain_YByY[NR3D_Y_BY_Y_NUM] 根据亮度控制不同亮度的motion程度,值越大3D降噪越强。 值域范围:0 ~ 255。NR3D_Y_BY_Y_NUM = 16
      u8M2SLut[NR3D_BY_MOT_NUM] 移动到静止过程中,3D降噪的收敛速度,值越大,收敛越慢,可用来避免拖影。值域范围:0 ~ 31。 NR3D_BY_MOT_NUM = 16。
      u16TfLut[NR3D_BY_MOT_NUM] 根据移动程度,控制3D降噪的强度。值域范围:0 ~ 4095。NR3D_BY_MOT_NUM = 16。
      u8YSfBlendLut[NR3D_BY_MOT_NUM] 根据移动程度,控制2D降噪的强度。值域范围:0 ~ 16。NR3D_BY_MOT_NUM = 16。
      u8YSfBlendOffset 根据移动程度,控制写回参考帧,额外补偿3D的比例,值越大补偿3D越多。值域范围:0 ~ 16。
      u8MotHistDelayByDiff[NR3D_BY_MOT_NUM] Motion信息延迟时间,值域范围:0 ~ 7。只有在MotHistMapSel为1时有作用,横轴为当前帧和前一帧的motion信息差异,纵轴为motion信息往后级传的额外延迟时间,值越大则延迟越久,希望静态的motion信息有延迟,让运动过后的区域的motion信息持续久一些,在3DNR还未收敛前,让后级的2DNR能保持在较强的强度(动区通常强度较强)久一些。 NR3D_BY_MOT_NUM = 16。
      u16DeDotDiffOffset 差值偏移量,值域范围:0 ~ 4095,值越大则移除比例越小,移除temporal defect的功能越弱,也较不容易影响动静判断。
      u8DeDotDiffShift 差值横移量,值域范围:0 ~ 7,值越大则移除比例越小,移除temporal defect的功能越弱,也较不容易影响动静判断。

    3.21. MI_ISP_IQ_NrChroma结构体

    3.21.1. 类型结构体 (Type Structure)

    • 说明

      设定颜色降噪的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaType_s
      
      {
      
          MI_ISP_IQ_bool_e        bEnable;
      
          MI_ISP_IQ_OpType_e       enOpType;
      
          MI_ISP_IQ_NrChromaAutoAttr_t  stAuto;
      
          MI_ISP_IQ_NrChromaManualAttr_t stManual;
      
      } MI_ISP_IQ_NrChromaType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定颜色降噪功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定颜色降噪的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定颜色降噪的自动模式属性结构体。
      stManual 设定颜色降噪的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetNrChroma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaType_t *data);
      
      MI_S32 MI_ISP_IQ_GetNrChroma(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaType_t *data);
      

    3.21.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定颜色降噪的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaAutoAttr_s
      
      {
      
          MI_ISP_IQ_NrChromaParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_NrChromaAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.21.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定颜色降噪的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaManualAttr_s
      
      {
      
          MI_ISP_IQ_NrChromaParam_t stParaAPI;
      
      } MI_ISP_IQ_NrChromaManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.21.4. 参数结构体 (Parameter Structure)

    • 说明

      设定颜色降噪的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaParam_s
      
      {
      
          MI_U8    u8MatchRatio;
      
          MI_U16 u16UvTh;
      
          MI_U16 u16StrengthByCEdge[NRCHROMA_BY_CEDGE_NUM];
      
      } MI_ISP_IQ_NrChromaParam_t;
      
    • 名称

      变量名称 描述
      u8MatchRatio 符合比例阀值。值域范围:0 ~ 31。
      u16UvTh U/V噪声阀值。值域范围:0 ~ 256。
      u16StrengthByCEdge[NRCHROMA_BY_CEDGE_NUM] 根据Color Edge强度控制颜色降噪的强度。值域范围:0 ~ 511。NRCHROMA_BY_CEDGE_NUM = 6。

    3.22. MI_ISP_IQ_Sharpness结构体

    3.22.1. 类型结构体 (Type Structure)

    • 说明

      设定锐度的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_ShapnessType_s
      
      {
      
          MI_ISP_IQ_bool_e          bEnable;
      
          MI_ISP_IQ_OpType_e         enOpType;
      
          MI_ISP_IQ_ShapnessAutoAttr_t    stAuto;
      
          MI_ISP_IQ_ShapnessManualAttr_t   stManual;
      
      } MI_ISP_IQ_ShapnessType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定锐度功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定锐度的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定锐度的自动模式属性结构体。
      stManual 设定锐度的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetSharpness(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ShapnessType_t *data);
      
      MI_S32 MI_ISP_IQ_GetSharpness(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ShapnessType_t *data);
      

    3.22.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定锐度的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_ShapnessAutoAttr_s
      
      {
      
          MI_ISP_IQ_ShapnessParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_ShapnessAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.22.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定锐度的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_ShapnessManualAttr_s
      
      {
      
          MI_ISP_IQ_ShapnessParam_t stParaAPI;
      
      } MI_ISP_IQ_ShapnessManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.22.4. 参数结构体 (Parameter Structure)

    • 说明

      设定锐度的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_ShapnessParam_s
      {
          MI_U8   u8SharpnessUD[SHARPNESS_FREQ_NUM];
          MI_U8   u8SharpnessD[SHARPNESS_FREQ_NUM];
          MI_U8   u8PreCorUD[SHARPNESS_FREQ_NUM];
          MI_U8   u8PreCorD[SHARPNESS_FREQ_NUM];
          MI_U16  u16MidRatioUDByMot[SHARPNESS_BY_MOT_NUM];
          MI_U16  u16HighRatioUDByMot[SHARPNESS_BY_MOT_NUM];
          MI_U16  u16MidRatioDByMot[SHARPNESS_BY_MOT_NUM];    
          MI_U16  u16HighRatioDByMot[SHARPNESS_BY_MOT_NUM];
          MI_U16  u16HighRatioUDByState[SHARPNESS_FREQ_NUM];
          MI_U16  u16HighRatioDByState[SHARPNESS_FREQ_NUM];
          MI_U8   u8DetailGainUDByMot[SHARPNESS_BY_MOT_NUM];
          MI_U16  u16DirRatioByState[SHARPNESS_BY_STATE_NUM];
          MI_U8   u8StdAdjByMot[SHARPNESS_BY_MOT_NUM];
          MI_U8   u8StdAdjByY[SHARPNESS_BY_Y_NUM];
          MI_U8   u8GainByStd[SHARPNESS_BY_STD];
          MI_U8   u8CorByY[SHARPNESS_BY_Y_NUM];
          MI_U8   u8CorByMot[SHARPNESS_BY_MOT_NUM];
          MI_U8   u8OverShootGain;
          MI_U8   u8UnderShootGain;
          MI_U8   u8SclByY[SHARPNESS_BY_Y_NUM];
          MI_U16  u16EdgeKillLut[SHARPNESS_BY_STD];
          MI_U16  u16OverShootLimit;
          MI_U16  u16UnderShootLimit;
          MI_U8   u8GainByMot[SHARPNESS_BY_MOT_NUM];
      } MI_ISP_IQ_ShapnessParam_t;
      
    • 名称

      变量名称 描述
      u8SharpnessUD[SHARPNESS_FREQ_NUM] 无向性edge的强度,用于提高发丝和草地等细小纹理清晰度,值域范围:0 ~ 127,横轴依序为高/中/中低频,纵轴为无向性edge的强度增益,值越大则edge越强。
      SHARPNESS_FREQ_NUM = 3。
      u8SharpnessD[SHARPNESS_FREQ_NUM] 方向性edge的强度,用于增强图像边缘,但调得太强会导致锯齿状,值域范围:0 ~ 127,横轴依序为高/中/中低频,纵轴为方向性edge的强度增益,值越大则edge越强。
      SHARPNESS_FREQ_NUM = 3。
      u8PreCorUD[SHARPNESS_FREQ_NUM] 无向性edge做coring,值域范围:0 ~ 63,横轴依序为高/中/中低频,纵轴为无向性edge的coring值,值越大则edge越弱。
      SHARPNESS_FREQ_NUM = 3。
      [名词解释] Coring(简称Cor):单纯做同减的动作。
      u8PreCorD[SHARPNESS_FREQ_NUM] 方向性edge做coring,值域范围:0 ~ 63,横轴依序为高/中/中低频,纵轴为方向性edge的coring值,值越大则edge越弱。
      SHARPNESS_FREQ_NUM = 3。
      u16MidRatioUDByMot[SHARPNESS_BY_MOT_NUM] 依据motion调整无向性edge的中频比例,值域范围:0 ~ 256,横轴为motion,越右边越偏静,纵轴为无向性edge中频和中低频混合时,中频的比例,值越大越偏中频。
      SHARPNESS_BY_MOT_NUM = 16
      u16HighRatioUDByMot[SHARPNESS_BY_MOT_NUM] 依据motion调整无向性edge的高频比例,值域范围:0 ~ 256,横轴为motion,越右边越偏静,纵轴为无向性edge高频和经过MidRatioUDByMot的结果混合时,高频的比例,值越大越偏高频。
      SHARPNESS_BY_MOT_NUM = 16
      u16MidRatioDByMot[SHARPNESS_BY_MOT_NUM] 依据motion调整方向性edge的中低频比例,值域范围:0 ~ 256,横轴为motion,越右边越偏静,纵轴为方向性edge中频和中低频混合时,中频的比例,值越大越偏中频。
      SHARPNESS_BY_MOT_NUM = 16
      u16HighRatioDByMot[SHARPNESS_BY_MOT_NUM] 依据motion调整方向性edge的高频比例,值域范围:0 ~ 256,横轴为motion,越右边越偏静,纵轴为方向性edge高频和经过MidRatioDByMot的结果混合时,高频的比例,值越大越偏高频。
      SHARPNESS_BY_MOT_NUM = 16
      u16HighRatioUDByState[SHARPNESS_FREQ_NUM] 无向性edge的高频混合比例,值域范围:0 ~ 256,横轴依序为单纯边缘区/复杂区/平坦区,平坦区是从NRLuma_Adv拿过来的信息,非平坦区的混合比例会依据state来混合单纯边缘区和复杂区的比例,纵轴为无向性edge经过HighRatioUDByMot的结果和经过MidRatioUDByMot的结果混合时,经过HighRatioUDByMot的结果的比例,值越大越偏高频。
      SHARPNESS_FREQ_NUM = 3
      [名词解释] State:使用gradient计算得到的分数,来判断单纯边缘区和复杂区,值越小则越偏向单纯边缘区。
      u16HighRatioDByState[SHARPNESS_FREQ_NUM] 方向性edge的高频混合比例,值域范围:0 ~ 256,横轴依序为单纯边缘区/复杂区/平坦区,平坦区是从NRLuma_Adv拿过来的信息,非平坦区的混合比例会依据state来混合单纯边缘区和复杂区的比例,纵轴为方向性edge经过HighRatioDByMot的结果和经过MidRatioDByMot的结果混合时,经过HighRatioDByMot的结果的比例,值越大越偏高频。
      SHARPNESS_FREQ_NUM = 3
      u8DetailGainUDByMot[SHARPNESS_BY_MOT_NUM] 依据motion调整无向性edge的增益,值域范围:0 ~ 255,横轴为motion,越右边越偏静,纵轴为无向性edge的增益,值越小则无向性edge越弱。此增益只会作用在NRLuma_Adv侦测为平坦区的地方,所以建议先调整NRLuma_Adv的EdgeTh,再利用此项降低平坦区edge,让平坦区更平顺。
      SHARPNESS_BY_MOT_NUM = 16
      u16DirRatioByState[SHARPNESS_BY_STATE_NUM] 方向性edge的混合比例,值域范围:0 ~ 256,横轴越左边越偏单纯边缘区,越右边越偏复杂区/平坦区,纵轴为混合无向/方向性edge时,方向性edge的比例,值越大则越偏向方向性edge。方向性的优点为连续性较佳,缺点为细腻度较差,容易造成奇怪直横线,且会有边缘闪动的情况(小edge硬要判断成有方向,再加上噪声影响,容易误判方向,导致方向性不固定),因此建议只有在单纯边缘区使用方向性edge。
      SHARPNESS_BY_STATE_NUM = 9
      u8StdAdjByMot[SHARPNESS_BY_MOT_NUM] 依据motion调整标准偏差的增益,值域范围:0 ~ 63,横轴为motion,越右边越偏静,纵轴为调整标准偏差的增益(16=1x),值越大则标准偏差越大。
      SHARPNESS_BY_MOT_NUM = 16
      u8StdAdjByY[SHARPNESS_BY_Y_NUM] 依据亮度调整标准偏差的增益,值域范围:0 ~ 255,横轴为亮度,越右边越偏亮,纵轴为调整标准偏差的增益(64=1x),值越大则标准偏差越大。
      SHARPNESS_BY_Y_NUM = 9
      u8GainByStd[SHARPNESS_BY_STD] 依据标准偏差调整整体增益,值域范围:0 ~ 255,横轴为经过StdAdjByMot和StdAdjByY处理过的标准偏差,越右边标准偏差越大,纵轴为整体增益,值越大则edge越强。通常平坦区的标准偏差较小,因此可以降低标准偏差小的区域的edge,让平坦区更平顺。也可以用来降低运动的edge,若将StdAdjByMot的前几格降低,则GainByStd就会查到前几格,使得运动区降低edge。总共有七个节点,如有需要改变横轴节点,可调整GainByStdSft。
      SHARPNESS_BY_STD = 7
      u8CorByY[SHARPNESS_BY_Y_NUM] 依据亮度调整coring,值域范围:0 ~ 255,横轴为亮度,越右边越偏亮,纵轴为coring值,值越大edge越弱。
      SHARPNESS_BY_Y_NUM = 9
      u8CorByMot[SHARPNESS_BY_MOT_NUM] 依据motion调整coring的增益,值域范围:0 ~ 255,横轴为motion,越右边越偏静,纵轴为coring的增益(16=1x),值越大edge越弱。
      SHARPNESS_BY_MOT_NUM = 16
      u8OverShootGain 白边的强度调整,值域范围:0 ~ 255,值越大则白边强度越强。
      u8UnderShootGain 黑边的强度调整,值域范围:0 ~ 255,值大强则黑边强度越强。
      u8SclByY[SHARPNESS_BY_Y_NUM] 依据亮度调整整体增益,值域范围:0 ~ 255,横轴为亮度,越右边越偏亮,纵轴为edge增益(64=1x),值越大则edge越强。
      u16EdgeKillLut[SHARPNESS_BY_STD] 根据edge强度调整edge强度,值域范围:0 ~ 1023,横轴为输入edge,纵轴为输出edge,值越大则edge越强。通常平坦区的edge强度较小,因此可以把小edge调的更小,让平坦区更平顺。总共有七个节点,如有需要改变横轴节点,可调整EdgeKillLutSft。
      SHARPNESS_BY_STD = 7
      u16OverShootLimit 依据周围最亮点做调整,值域范围:0 ~ 1023,设0则edge上限为周围最亮点的Y值,也就是不会overshoot。
      u16UnderShootLimit 依据周围最暗点做调整,值域范围:0 ~ 1023,设0则edge下限为周围最暗点的Y值,也就是不会undershoot。
      u8GainByMot[SHARPNESS_BY_MOT_NUM] 依据motion调整最终edge强度增益,值域范围:0 ~ 255,横轴为motion,越右边越偏静,纵轴为edge增益(128=1x),值越大则edge越强。
      SHARPNESS_BY_MOT_NUM = 16

    3.23. MI_ISP_IQ_Wdr结构体

    3.23.1. 类型结构体 (Type Structure)

    • 说明

      设定宽动态的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_WdrType_s
      
      {
      
          MI_ISP_IQ_bool_e      bEnable;
      
          MI_ISP_IQ_OpType_e     enOpType;
      
          MI_ISP_IQ_WdrAutoAttr_t stAuto;
      
          MI_ISP_IQ_WdrManualAttr_t stManual;
      
      } MI_ISP_IQ_WdrType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定宽动态功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定宽动态的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定宽动态的自动模式属性结构体。
      stManual 设定宽动态的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetWdr(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_WdrType_t *data);
      
      MI_S32 MI_ISP_IQ_GetWdr(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_WdrType_t *data);
      

    3.23.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定宽动态的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_WdrAutoAttr_s
      
      {
      
          MI_ISP_IQ_WdrParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_WdrAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.23.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定宽动态的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_WdrManualAttr_s
      
      {
      
          MI_ISP_IQ_WdrParam_t stParaAPI;
      
      } MI_ISP_IQ_WdrManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.23.4. 参数结构体 (Parameter Structure)

    • 说明

      设定宽动态的参数结构体。

    • 定义

      typedef struct WDR_PARAM_s
      {
          MI_U8       u8BoxNum;
          MI_ISP_BOOL_e   bAutoDetailEnhance;
          MI_U8       u8ManualDetailEnhance;
          MI_U8       u8GlobalDarkToneEnhance;
          MI_U8       u8WDRStrByY[WDR_BY_Y_NUM];
          MI_U8       u8Strength;
          MI_U8       u8DarkLimit;
          MI_U8       u8BrightLimit;
          MI_U16      u16StrengthByOpsCnt[WDR_BY_OPS_CNT];
          MI_U8       u8DeSatSrcSel;
          MI_U8       u8DeSatLut[WDR_BY_Y_NUM];
          MI_U8       u8WDRSatdn[WDR_BY_Y_NUM];
          MI_U8       u8WDRSatup[WDR_BY_Y_NUM];
      } WDR_PARAM_t;
      
    • 名称

      变量名称 描述
      u8BoxNum 依sensor长宽比例,提供多种box组合,值域范围:1 ~ 4,可依据场景要关注的物体尺度大小进行调整,值越大则box越多,每个box越小,越适合关注小对象,不可by iso变动。
      bAutoDetailEnhance 细节加强控制方式,值域范围:0 ~ 1,0为手动控制,1为自动控制。
      u8ManualDetailEnhance 手动控制细节加强程度,值域范围:0 ~ 255,值越大则细节加强越多。只有在AutoDetailEnhance为0时有作用。
      u8GlobalDarkToneEnhance 控制global tone mapping,提供下列16条curve可供选择,值域范围:0 ~ 15。数字越大则暗处会拉越亮(HDR mode和Linear mode的16条curve并不相同,HDR中0 ~ 6是一种拉亮模式,7 ~ 15是第二种拉亮模式。)
      u8WDRStrByY[WDR_BY_Y_NUM] 依据亮度控制WDR强度,值域范围:0 ~ 255,值越大则WDR越强。WDR_BY_Y_NUM = 33
      u8Strength 整体强度,值域范围:0 ~ 255,值越大则WDR越强。
      u8DarkLimit 限制WDR在暗处作用的强度,值域范围:0 ~ 255,值越大则暗处WDR越弱。
      u8BrightLimit 限制WDR在亮处作用的强度,值域范围:0 ~ 255,值越大则亮处WDR越弱。
      u16StrengthByOpsCnt[WDR_BY_OPS_CNT] 依据box内反对其local WDR行为的个数来降低local WDR强度的比例,值域范围:0 ~ 4095,横轴为反对个数,越右边则反对力量越强,纵轴为降低强度的比例(4096 = 1x),值越小则local WDR越弱,可以减轻local WDR造成的亮度反转,亦可以减轻local WDR造成某些小区域过暗或过亮的问题。 WDR_BY_OPS_CNT = 8
      u8DeSatSrcSel 去色彩功能的亮度来源,值域范围:0 ~ 2,0代表过完Curve1的亮度,1代表过完global tone的亮度,2代表未经过WDR处理前的亮度。
      u8DeSatLut[WDR_BY_Y_NUM] 依据亮度调整去色彩功能的程度,值域范围:0 ~ 255,横轴为亮度,越右边越偏亮,纵轴为色彩增益(128 = 1x),值越小则去色彩越强,影像越偏灰。WDR_BY_Y_NUM = 33
      u8WDRSatdn[WDR_BY_Y_NUM] 控制WDR前后的饱和度强度,若是WDR前后亮度为提升则利用此曲线查表压抑饱和度,值域范围:0~1023。WDR_BY_Y_NUM = 33
      u8WDRSatup[WDR_BY_Y_NUM] 控制WDR前后的饱和度强度,若是WDR前后亮度为下降则利用此曲线查表提升饱和度,值域范围:0~1023。 WDR_BY_Y_NUM = 33

    3.24. MI_ISP_IQ_Hsv结构体

    3.24.1. 类型结构体 (Type Structure)

    • 说明

      设定HSV的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_HsvType_s
      
      {
      
          MI_ISP_IQ_bool_e      bEnable;
      
          MI_ISP_IQ_OpType_e     enOpType;
      
          MI_ISP_IQ_HsvAutoAttr_t stAuto;
      
          MI_ISP_IQ_HsvManualAttr_t stManual;
      
      } MI_ISP_IQ_HsvType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定HSV功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定HSV的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定HSV的自动模式属性结构体。
      stManual 设定HSV的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetHsv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_HsvType_t *data);
      
      MI_S32 MI_ISP_IQ_GetHsv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_HsvType_t *data);
      

    3.24.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定HSV的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_HsvAutoAttr_s
      
      {
      
          MI_ISP_IQ_HsvParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_HsvAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.24.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定HSV的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_HsvManualAttr_s
      
      {
      
          MI_ISP_IQ_HsvParam_t stParaAPI;
      
      } MI_ISP_IQ_HsvManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.24.4. 参数结构体 (Parameter Structure)

    • 说明

      设定HSV的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_HsvParam_s
      
      {
      
          MI_S16  s16HueLut[HSV_HUE_NUM];
      
          MI_U16  u16SatLut[HSV_HUE_NUM];
      
          MI_S16 s16HueLut_ByIso[HSV_HUE_NUM];
      
          MI_U16 u16SatLut_ByIso[HSV_HUE_NUM];
      
          MI_S16  s16HueLut_ForUnitCCM[HSV_HUE_NUM];
      
          MI_U16  u16SatLut_ForUnitCCM[HSV_HUE_NUM];
      
          MI_U8  u8GlobalSat;
      
      } MI_ISP_IQ_HsvParam_t;
      
    • 名称

      变量名称 描述
      s16HueLut[HSV_HUE_NUM] 将360度色相等分为24份,分别控制每个等分的色相旋转角度,自动模式下根据色温作切换。值域范围:-64 ~ 64。 HSV_HUE_NUM = 24。
      u16SatLut[HSV_HUE_NUM] 将360度色相等分为24份,分别控制每个等分的饱和度,自动模式下根据色温作切换。值域范围:0 ~ 255(64 = 1x)。 HSV_HUE_NUM = 24。
      s16HueLut_ByIso[HSV_HUE_NUM]; 将360度色相等分为24份,分别控制每个等分的色相旋转角度,自动模式下根据增益作切换。值域范围:-64 ~ 64。 HSV_HUE_NUM = 24。
      u16SatLut_ByIso[HSV_HUE_NUM] 将360度色相等分为24份,分别控制每个等分的饱和度,自动模式下根据增益作切换。值域范围:0 ~ 255(64 = 1x)。 HSV_HUE_NUM = 24。
      s16HueLut_ForUnitCCM[HSV_HUE_NUM] 将360度色相等分为24份,分别控制每个等分的色相旋转角度与Unit CCM搭配参数,自动模式下根据色温作切换。 值域范围:-64 ~ 64。HSV_HUE_NUM = 24。
      u16SatLut_ForUnitCCM[HSV_HUE_NUM] 将360度色相等分为24份,分别控制每个等分的饱和度与Unit CCM搭配参数,自动模式下根据色温作切换。 值域范围:0 ~ 255(64 = 1x)。HSV_HUE_NUM = 24。
      u8GlobalSat 整体饱和度控制,自动模式下根据增益作切换。 值域范围:0 ~ 255(64 = 1x)。HSV_HUE_NUM = 24。

    3.25. MI_ISP_IQ_R2Y结构体

    3.25.1. 类型结构体 (Type Structure)

    • 说明

      设定色彩转换的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_R2YType_s
      
      {
      
          MI_ISP_IQ_bool_e      bEnable;
      
          MI_ISP_IQ_R2YManualAttr_t stManual;
      
      } MI_ISP_IQ_R2YType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定色彩转换功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      stManual 设定色彩转换的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetR2Y(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_R2YType_t *data);
      
      MI_S32 MI_ISP_IQ_GetR2Y(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_R2YType_t *data);
      

    3.25.2. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定色彩转换的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_R2YManualAttr_s
      
      {
      
          MI_ISP_IQ_R2YParam_t stParaAPI;
      
      } MI_ISP_IQ_R2YManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.25.3. 参数结构体 (Parameter Structure)

    • 说明

      设定色彩转换的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_R2YParam_s
      
      {
      
          MI_U16 u16Matrix[R2Y_MATRIX_NUM];
      
          MI_U8    u8AddY16;
      
      } MI_ISP_IQ_R2YParam_t;
      
    • 名称

      变量名称 描述
      u16Matrix[R2Y_MATRIX_NUM] 调整RGB to YUV矩阵,值域范围:0 ~ 8191,1倍为1024,负数以2的补码表示,等同于±3.996。R2Y_MATRIX_NUM = 9
      u8AddY16 调整Y Offset,经过矩阵转换后,用来控制是否要对Y加16。

    3.26. MI_ISP_IQ_ColorTrans结构体

    3.26.1. 类型结构体 (Type Structure)

    • 说明

      设定色彩转换的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_ColorTransType_s
      
      {
      
          MI_ISP_IQ_bool_e          bEnable;
      
          MI_ISP_IQ_ColorTransManualAttr_t  stManual;
      
      } MI_ISP_IQ_ColorTransType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定色彩转换功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      stManual 设定色彩转换的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetColorTrans(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ColorTransType_t *data);
      
      MI_S32 MI_ISP_IQ_GetColorTrans(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ColorTransType_t *data);
      

    3.26.2. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定色彩转换的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_ColorTransManualAttr_s
      
      {
      
          MI_ISP_IQ_ColorTransParam_t stParaAPI;
      
      } MI_ISP_IQ_ColorTransManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.26.3. 参数结构体 (Parameter Structure)

    • 说明

      设定色彩转换的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_ColorTransParam_s
      
      {
      
          MI_U16 u16Y_OFST;
      
          MI_U16 u16U_OFST;
      
          MI_U16 u16V_OFST;
      
          MI_U16 u16Matrix[COLORTRANS_MATRIX_NUM];
      
      } MI_ISP_IQ_ColorTransParam_t;
      
    • 名称

      变量名称 描述
      u16Y_OFST 调整Y偏差值。10bit domain,值域范围:0 ~ 2047,负数以2的补码表示,等同于±1023。
      u16U_OFST 调整U偏差值。10bit domain,值域范围:0 ~ 2047,负数以2的补码表示,等同于±1023。
      u16V_OFST 调整V偏差值。10bit domain,值域范围:0 ~ 2047,负数以2的补码表示,等同于±1023。
      u16Matrix[COLORTRANS_MATRIX_NUM] 调整RGB-YUV矩阵,值域范围:0 ~ 1023,1倍为256,负数以2的补码表示,等同于±1.996。 COLORTRANS_MATRIX_NUM = 9。
    • 注意事项

      对于YUV_OFST,Matrix[9],负数以2的补码表示。

      UV偏差值,在矩阵相乘后,已经预设加上128。

      下面例子为,将YUV转为16 ~ 235的值域范围

      Y=(0.257*R)+(0.504*G)+(0.098*B)+16
      
      Cb=-(0.148*R)-(0.291*G)+(0.439*B)+128
      
      Cr=(0.439*R)-(0.368*G)-(0.071*B)+128
      

      Matrix[9] = {66, 129, 25, 986, 950, 112, 112, 930, 1006}

      Y_OFST = 64

      U_OFST = 0 (预设以加上128*4,所以填0)

      V_OFST = 0 (预设以加上128*4,所以填0)

    3.27. MI_ISP_IQ_NrLumaAdv结构体

    3.27.1. 类型结构体 (Type Structure)

    • 说明

      设定Luma_Adv降噪的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrLumaAdvType_s
      
      {
      
          MI_ISP_IQ_bool_e        bEnable;
      
          MI_ISP_IQ_OpType_e       enOpType;
      
          MI_ISP_IQ_NrLumaAdvAutoAttr_t  stAuto;
      
          MI_ISP_IQ_NrLumaAdvManualAttr_t  stManual;
      
      } MI_ISP_IQ_NrLumaAdvType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定Luma_Adv降噪功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定Luma_Adv降噪的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定Luma_Adv降噪的自动模式属性结构体。
      stManual 设定Luma_Adv降噪的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetNrLumaAdv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrLumaAdvType_t *data);
      
      MI_S32 MI_ISP_IQ_GetNrLumaAdv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrLumaAdvType_t *data);
      

    3.27.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定Luma_Adv降噪的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrLumaAdvAutoAttr_s
      
      {
      
          MI_ISP_IQ_NrLumaAdvParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_NrLumaAdvAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.27.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定Luma_Adv降噪的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrLumaAdvManualAttr_s
      
      {
      
          MI_ISP_IQ_NrLumaAdvParam_t stParaAPI;
      
      } MI_ISP_IQ_NrLumaAdvManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.27.4. 参数结构体 (Parameter Structure)

    • 说明

      设定Luma_Adv降噪的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrLumaAdvParam_s
      {
          MI_U8   u8DbgMode;
          MI_U16  u16EdgeTh[NRLUMA_ADV_BY_Y_NUM]
          MI_U8   u8SmoDeltaSft;
          MI_U16  u16SmoDeltaTh[NRLUMA_ADV_BY_Y_NUM];
          MI_U8   u8SmoDeltaLut[NRLUMA_ADV_SMO_DELTA_LUT_NUM];
          MI_U8   u8SmoByMot[NRLUMA_ADV_BY_MOT_NUM];
          MI_U16  u16Strength[NRLUMA_ADV_LEVEL_NUM];
          MI_U8   u8StrengthByHue[NRLUMA_ADV_BY_HUE_NUM];
          MI_U8   u8StrengthBySat[NRLUMA_ADV_BY_SAT_NUM];
          MI_U8   u8StrengthByMot[NRLUMA_ADV_BY_MOT_NUM];
      } MI_ISP_IQ_NrLumaAdvParam_t;
      
    • 名称

      变量名称 描述
      u8DbgMode Debug模式,值域范围:0 ~ 3,影像越亮则代表越被判断成edge区,影像越暗则代表越被判断成non-edge区,这边只做Luma处理,影像颜色没有意义,1代表只有Level1(L1),2代表只有Level2(L2),3代表L1+L2。L2的debug模式会有些不连续,属于正常现象,原因是Level2为区分显示会做down-sample处理,将缺少的点补0,再经过后级作用造成。
      u16EdgeTh[NRLUMA_ADV_BY_Y_NUM] Edge阀值,值域范围:0 ~ 8191,横轴为亮度,越右边越偏亮,前八格属于L1,后八格属于L2。可以搭配DbgMode调整,观察edge分布是否合理。 NRLUMA_ADV_BY_Y_NUM = 16。
      u8SmoDeltaSft Edge区去躁参数,与中心点差异的横移量,值域范围:0 ~ 9,值越大则去躁效果越强。与中心点差异会先经过SmoDeltaSft和SmoDeltaTh调整,再去查SmoDeltaLut。
      u16SmoDeltaTh[NRLUMA_ADV_BY_Y_NUM] Edge区去躁参数,与中心点差异的阀值,值域范围:0 ~ 1023,横轴为亮度,越右边越偏亮,前八格属于L1,后八格属于L2,纵轴为与中心点差异的阀值,若差异大于此阀值则权重为0,此功能会造成不连续,建议不使用此功能,也就是全部设最大值1023,若有需求,请直接调整SmoDeltaLut即可。NRLUMA_ADV_BY_Y_NUM = 16。
      u8SmoDeltaLut [NRLUMA_ADV_SMO_DELTA_LUT_NUM] Edge区去躁参数,混合权重表,值域范围:0 ~ 63,横轴为与中心点的差异,纵轴为权重,正常情况下,差异越小则权重设越大。NRLUMA_ADV_SMO_DELTA_LUT_NUM = 16。
      u8SmoByMot[NRLUMA_ADV_BY_MOT_NUM] Edge区去躁参数,依据motion去混合mean filter的结果,值域范围:0 ~ 64,横轴为motion,越右边越偏静,纵轴为混合mean filter结果的比例,由于mean filter过强,因此不建议设太大。NRLUMA_ADV_BY_MOT_NUM = 16。
      u16Strength[NRLUMA_ADV_LEVEL_NUM] 整体强度,值域范围:0 ~ 256,横轴分别为L1和L2,纵轴为强度,值越大则NR越强。最终强度是以Strength为基础,再加上StrengthByHue和StrengthBySat和StrengthByMot的控制,因此建议不要将Strength设到最强,否则StrengthByHue和StrengthBySat和StrengthByMot就失效了。NRLUMA_ADV_LEVEL_NUM = 2。
      u8StrengthByHue[NRLUMA_ADV_BY_HUE_NUM] 依据hue调整强度,值域范围:0 ~ 64,横轴为hue(同HSV),实际效果受到StrengthBySat影响。 NRLUMA_ADV_BY_HUE_NUM = 24。
      u8StrengthBySat[NRLUMA_ADV_BY_SAT_NUM] 依据saturation调整强度,值域范围:0 ~ 127,当saturation小于StrengthBySat[0],则StrengthByHue失效,也就是强度的调整不受到饱和度太低的hue影响,当saturation大于StrengthBySat[1],则完全依照StrengthByHue调整强度,过度区则线性变化。NRLUMA_ADV_BY_SAT_NUM =2。
      u8StrengthByMot[NRLUMA_ADV_BY_MOT_NUM] 依据motion调整强度,值域范围:0 ~ 64,横轴为motion,越右边越偏静。NRLUMA_ADV_BY_MOT_NUM = 16。

    3.28. MI_ISP_IQ_NrChromaAdv结构体

    3.28.1. 类型结构体 (Type Structure)

    • 说明

      设定Chroma_Adv降噪的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaAdvType_s
      
      {
      
          MI_ISP_IQ_bool_e           bEnable;
      
          MI_ISP_IQ_OpType_e          enOpType;
      
          MI_ISP_IQ_NrChromaAdvAutoAttr_t     stAuto;
      
          MI_ISP_IQ_NrChromaAdvManualAttr_t   stManual;
      
      } MI_ISP_IQ_NrChromaAdvType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定Chroma_Adv降噪功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定Chroma_Adv降噪的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定Chroma_Adv降噪的自动模式属性结构体。
      stManual 设定Chroma_Adv降噪的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetNrChromaAdv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaAdvType_t *data);
      
      MI_S32 MI_ISP_IQ_GetNrChromaAdv(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaAdvType_t *data);
      

    3.28.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定Chroma_Adv降噪的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaAdvAutoAttr_s
      
      {
      
          MI_ISP_IQ_NrChromaAdvParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_NrChromaAdvAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.28.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定Chroma_Adv降噪的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaAdvManualAttr_s
      
      {
      
          MI_ISP_IQ_NrChromaAdvParam_t stParaAPI;
      
      } MI_ISP_IQ_NrChromaAdvManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.28.4. 参数结构体 (Parameter Structure)

    • 说明

      设定Chroma_Adv降噪的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaAdvParam_s
      {
          MI_U8  u8StrengthByY[NRCHROMA_ADV_BY_Y_NUM];
          MI_U8  u8StrengthByYEdge[NRCHROMA_ADV_BY_YEDGE_NUM];
          MI_U8  u8StrengthByCEdge[NRCHROMA_ADV_BY_CEDGE_NUM];
          MI_U8  u8MaxStrength;
          MI_U8  u8StrengthByMot[NRCHROMA_ADV_BY_MOT_NUM];
          MI_U8  u8MotionClip;
          MI_U8  u8MotionColorReduce;
          MI_U8  u8MotionColorRecover;
          MI_U8  u8PreStrength;
      } MI_ISP_IQ_NrChromaAdvParam_t;
      
    • 名称

      变量名称 描述
      u8StrengthByY[NRCHROMA_ADV_BY_Y_NUM] 针对不同亮度,给予不同NR强度的控制,横轴越右边代表亮度越大。值越大越强,值域范围:0 ~ 255。 NRCHROMA_ADV_BY_Y_NUM = 8。
      u8StrengthByYEdge [NRCHROMA_ADV_BY_YEDGE_NUM] 使用Luma来侦测Edge程度,针对不同Edge,给予不同NR强度的控制,横轴越右边代表Edge越大。 值越大越强,值域范围:0 ~ 63。 NRCHROMA_ADV_BY_YEDGE_NUM = 8。
      u8StrengthByCEdge [NRCHROMA_ADV_BY_CEDGE_NUM] 使用Chroma来侦测Edge程度,针对不同Edge,给予不同NR强度的控制,横轴越右边代表Edge越大。 值越大越强,值域范围:0 ~ 255。 NRCHROMA_ADV_BY_CEDGE_NUM = 8。
      u8MaxStrength 控制Y/C差异小的区域,NR的强度。 值越大越强,值域范围:0 ~ 255。
      u8StrengthByMot [NRCHROMA_ADV_BY_MOT_NUM] 依据motion调整NR的强度,横轴为motion,越右边越偏静。值域:0 ~ 63,值越大越强。 NRCHROMA_ADV_BY_MOT_NUM = 16。
      u8MotionClip 针对移动区域,给予更多NR强度。 值越大越强,值域范围:0 ~ 255。
      u8MotionColorReduce 针对移动区域,可降低饱和度。 值越大饱和度降越多,值域范围:0 ~ 255。
      u8MotionColorRecover 针对移动区域,可根据MotionColorReduce所降低的饱和度,再把gain乘回来。 值越大饱和度恢复越多,值域范围:0 ~ 255。
      u8PreStrength 针对Chroma先做简单的去躁处理。 值越大越强,值域范围:0 ~ 128。

    3.29. MI_ISP_IQ_SharpnessEx结构体

    3.29.1. 类型结构体 (Type Structure)

    • 说明

      设定SHP_EX的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_SharpnessExType_s
      
      {
      
          MI_ISP_IQ_bool_e          bEnable;
      
          MI_ISP_IQ_OpType_e         enOpType;
      
          MI_ISP_IQ_SharpnessExAutoAttr_t    stAuto;
      
          MI_ISP_IQ_SharpnessExManualAttr_t stManual;
      
      } MI_ISP_IQ_SharpnessExType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定SHP_EX功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定Chroma_Adv降噪的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定SHP_EX的自动模式属性结构体。
      stManual 设定SHP_EX的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetShpEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_SharpnessExType_t *data);
      
      MI_S32 MI_ISP_IQ_GetShpEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_SharpnessExType_t *data);
      

    3.29.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定SHP_EX降噪的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_SharpnessExAutoAttr_s
      
      {
      
          MI_ISP_IQ_SharpnessExParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_SharpnessExAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.29.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定SHP_EX的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_SharpnessExManualAttr_s
      
      {
      
          MI_ISP_IQ_SharpnessExParam_t stParaAPI;
      
      } MI_ISP_IQ_SharpnessExManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.29.4. 参数结构体 (Parameter Structure)

    • 说明

      设定SHP_EX的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_SharpnessExParam_s
      {
          MI_ISP_IQ_bool_e    bDbgEn;
          MI_U8       u8SmoNRFilterSel;
          MI_U16      u16SmoDiffThByY[SHARPNESS_EX_BY_Y_NUM];
          MI_U8       u8SmoBlendByStd[SHARPNESS_EX_BY_STD_NUM];
          MI_U8       u8SmoBlendByMot[SHARPNESS_EX_BY_MOT_NUM];
          MI_U8       u8SblLut[SHARPNESS_EX_BY_SFT_NUM];
          MI_U8       u8EdgeLabelSel;
          MI_U8       u8GainByStdSft[SHARPNESS_EX_BY_SFT_NUM];
          MI_U8       u8EdgeKillLutSft[SHARPNESS_EX_BY_SFT_NUM];
          MI_U8       u8StrengthByHue[SHARPNESS_EX_BY_HUE_NUM];
          MI_U8       u8StrengthBySat[SHARPNESS_EX_BY_SAT_NUM];
      } MI_ISP_IQ_SharpnessExParam_t;
      
    • 名称

      变量名称 描述
      bDbgEn Debug模式,值域范围:0 ~ 1,灰色代表没上edge,白/黑色分别代表白/黑边。
      u8SmoNRFilterSel NR filter种类,值域范围:0 ~ 1,0代表mean filter,1代表median filter。
      u16SmoDiffThByY [SHARPNESS_EX_BY_Y_NUM] 依据亮度调整差异阀值,值域范围:0 ~ 1023,另一种NR方式,当周围点与中心点的差值小于此值才会被纳入做处理,依据差值来计算混合权重,差异越小则混合权重越大。SHARPNESS_EX_BY_Y_NUM = 8
      u8SmoBlendByStd [SHARPNESS_EX_BY_STD_NUM] 依据标准偏差调整混合比例,值域范围:0 ~ 16,横轴为标准偏差,纵轴为混合经过SmoNRFilterSel的结果和经过SmoDiffThByY的结果时,经过SmoNRFilterSel的结果的比例,值越大则越偏向经过SmoNRFilterSel的结果。SHARPNESS_EX_BY_STD_NUM = 7
      u8SmoBlendByMot [SHARPNESS_EX_BY_MOT_NUM] 依据motion调整混合比例,值域范围:0 ~ 63,横轴为motion,越右边越偏静,纵轴为混合经过SmoNRFilterSel的结果和经过SmoBlendByStd的结果时,经过SmoNRFilterSel的结果的比例,值越大则越偏向经过SmoNRFilterSel的结果。SHARPNESS_EX_BY_MOT_NUM = 16
      u8SblLut [SHARPNESS_EX_BY_SFT_NUM] 依据经过sobel filter的结果调整方向性edge强度,值域范围:0 ~ 127,横轴为经过sobel filter的结果,越右边则sobel的结果越大,纵轴为方向性edge强度增益(64 = 1x),值越大则方向性edge越强。SHARPNESS_EX_BY_SFT_NUM = 6
      u8EdgeLabelSel 由NRLuma_Adv传过来的edge信息的种类,值域范围:0 ~ 1,0代表L1,1代表L2。NRLuma_Adv传过来的edge信息会影响DetailGainUDByMot作用范围,通常在iso高的情况会使用L2的结果。
      u8GainByStdSft [SHARPNESS_EX_BY_SFT_NUM] GainByStd的横轴节点,值域范围:0 ~ 15,有七个断点,x轴依序为0, 2^GainByStdSft[0], 2GainByStdSft[0]+2GainByStdSft[1], 2GainByStdSft[0]+2GainByStdSft[1]+2^GainByStdSft[2], ...,y轴依序为GainByStd[0], GainByStd[1], GainByStd[2], ...。如需调整,建议用excel画出原本的曲线,调整GainByStdSft将想要细调的区间切细后,找到对应的GainByStd,确认效果和先前一致后,再调整GainByStd。SHARPNESS_EX_BY_SFT_NUM = 6
      u8EdgeKillLutSft [SHARPNESS_EX_BY_SFT_NUM] EdgeKillLut的横轴节点,值域范围:0 ~ 15,有七个断点,x轴依序为0, 2^EdgeKillLutSft[0], 2EdgeKillLutSft[0]+2EdgeKillLutSft[1], 2EdgeKillLutSft[0]+2EdgeKillLutSft[1]+2^EdgeKillLutSft[2], ...,y轴依序为EdgeKillLut[0], EdgeKillLut[1], EdgeKillLut[2], ...。如需调整,建议用excel画出原本的曲线,调整EdgeKillLutSft将想要细调的区间切细后,找到对应的EdgeKillLut,确认效果和先前一致后,再调整EdgeKillLut。SHARPNESS_EX_BY_SFT_NUM = 6
      u8StrengthByHue [SHARPNESS_EX_BY_HUE_NUM] 根据hue调整edge强度,值域范围:0 ~ 255,横轴为hue (同HSV),纵轴为edge增益(64 = 1x),值越大则edge越强,实际效果受到StrengthBySat影响。SHARPNESS_EX_BY_HUE_NUM = 24
      u8StrengthBySat [SHARPNESS_EX_BY_SAT_NUM] 根据saturation调整edge强度,值域范围:0 ~ 255,横轴为saturation,当saturation小于StrengthBySat[0],则StrengthByHue失效,也就是edge强度的调整不受到饱和度太低的hue影响,当saturation大于StrengthBySat[1],则完全依据StrengthByHue调整edge强度,过度区则线性变化。SHARPNESS_EX_BY_SAT_NUM = 2

    3.30. MI_ISP_IQ_Nr3dEx结构体

    3.30.1. 类型结构体 (Type Structure)

    • 说明

      设定NR3D_EX的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_Nr3dExType_s
      
      {
      
          MI_ISP_IQ_bool_e        bEnable;
      
          MI_ISP_IQ_Nr3dExManualAttr_t  stManual;
      
      } MI_ISP_IQ_Nr3dExType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定NR3D_EX功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      stManual 设定NR3D_EX的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetNr3dEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_Nr3dExType_t *data);
      
      MI_S32 MI_ISP_IQ_GetNr3dEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_Nr3dExType_t *data);
      

    3.30.2. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定NR3D_EX的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_Nr3dExManualAttr_s
      
      {
      
          MI_ISP_IQ_Nr3dExParam_t stParaAPI;
      
      } MI_ISP_IQ_Nr3dExManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.30.3. 参数结构体 (Parameter Structure)

    • 说明

      设定NR3D_EX的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_Nr3dExParam_s
      {
          MI_ISP_IQ_bool_e    bDbgEn;
          MI_U8               u8WinSizeSel;
          MI_U8               u8MotHistMapSel;
          MI_ISP_IQ_bool_e    bAREn;
          MI_U8               u8ARLumaTh[NR3D_EX_AR_LUMA_NUM];
          MI_U8               u8ARMotTh[NR3D_EX_AR_MOT_NUM];
          MI_ISP_IQ_bool_e    bPREn;
          MI_U16          u16PRDiffTh;
          MI_U8               u8PRRatioConf[NR3D_EX_PR_RATIO_CONF_NUM];
          MI_U8               u8PRContrastTh[NR3D_EX_PR_CONTRAST_TH_NUM];
          MI_U8               u8PRMotTh[NR3D_EX_PR_MOT_TH_NUM];
      } MI_ISP_IQ_Nr3dExParam_t;
      
    • 名称

      变量名称 描述
      bDbgEn Debug模式,值域范围:0 ~ 1。影像颜色越黑则代表越被判断成动区。使用前务必将AE停掉。
      u8WinSizeSel 用来判断动静的window size,值域范围:0 ~ 2,值越大则window越大,噪声估算越准确,但动区边缘越容易误判(该处为静止,但window过大导致周围动区也被计算进来)。
      u8MotHistMapSel 3DNR把motion信息向后级传的方式,值域范围:0 ~ 1,0代表直接依据当前帧和参考帧的差异,1代表多一个限制,在动到静的情况下,每帧motion信息至多变化1,也就是motion会变化的较慢。
      bAREn 根据亮度与motion信息,限制NR3D强度的开关,值域0 ~ 1。
      u8ARLumaTh[NR3D_EX_AR_LUMA_NUM] 当Luma < LumaTh[0],则NR3D强度不变,当Luma > LumaTh[1]时,NR3D强度为0,值域0 ~ 255。 NR3D_EX_AR_LUMA_NUM = 2。
      u8ARMotTh[NR3D_EX_AR_MOT_NUM] 当motion < MotTh[0],则NR3D强度不变,当motion > MotTh[1]时,NR3D强度为0,值域0 ~ 255。 NR3D_EX_AR_MOT_NUM = 2。
      bPREn 辅助NR3D判断紫边的motion开关。
      u16PRDiffTh 根据PFC补偿的结果,若该点PFC补偿 > PRDiffTh,则判断为紫边。值域0 ~ 4095,值越小,越容易判断为紫边。
      u8PRRatioConf [NR3D_EX_PR_RATIO_CONF_NUM] 判断颜色是否与紫边相似。值域0 ~ 16,横轴为颜色相关性,越右边,越相似紫边,纵轴为紫边判断程度,值越大,越容易判断为紫边。NR3D_EX_PR_RATIO_CONF_NUM = 4。
      u8PRContrastTh [NR3D_EX_PR_CONTRAST_TH_NUM] 判断对比程度,高对比度时,较有可能出现紫边。值域0 ~ 16,该区对比小于ContrastTh1,则不做处理,大于ContrastTh2,则判断为紫边。NR3D_EX_PR_CONTRAST_TH_NUM = 2。
      u8PRMotTh[NR3D_EX_PR_MOT_TH_NUM] 若紫边程度高,会以下面设定,来重新决定motion信息,若不为紫边,则motion信息维持不变。设定MotTh1,将此程度以下的motion认为误判信息,所以motion会重新分配为0,代表静止,而大于MotTh2以上,代表正常的motion,则维持不动。值域0 ~ 255。NR3D_EX_PR_MOT_TH_NUM = 2。

    3.31. MI_ISP_IQ_Dummy结构体

    3.31.1. 类型结构体 (Type Structure)

    • 说明

      设定DUMMY的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_DUMMY_TYPE_s
      
      {
      
          MI_ISP_IQ_bool_e        bEnable;
      
          MI_ISP_IQ_OpType_e       enOpType;
      
          MI_ISP_IQ_bool_e        bLogEn;
      
          MI_ISP_IQ_DummyAutoAttr_t   stAuto;
      
          MI_ISP_IQ_DummyManualAttr_t  stManual;
      
      } MI_ISP_IQ_DummyType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定DUMMY功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定DUMMY的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      bLogEn 设定DUMMY的打印讯息开关,开启后会打印出DUMMY的参数结构体所对应的内容。
      stAuto 设定DUMMY的自动模式属性结构体。
      stManual 设定DUMMY的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetDummy(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_DummyType_t *data);
      
      MI_S32 MI_ISP_IQ_GetDummy(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_DummyType_t *data);
      

    3.31.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定DUMMY的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_DummyAutoAttr_s
      
      {
      
          MI_ISP_IQ_DummyParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_DummyAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.31.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定DUMMY的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_DummyManualAttr_s
      
      {
      
          MI_ISP_IQ_DummyParam_t stParaAPI;
      
      } MI_ISP_IQ_DummyManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.31.4. 参数结构体 (Parameter Structure)

    • 说明

      设定DUMMY的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_DummyParam_s
      
      {
      
          MI_S16 s16Dummy0[DUMMY_NUM];
      
          MI_S16 s16Dummy1[DUMMY_NUM];
      
          MI_S16 s16Dummy2[DUMMY_NUM];
      
          MI_S16 s16Dummy3;
      
          MI_S16 s16Dummy4;
      
      } MI_ISP_IQ_DummyParam_t;
      
    • 名称

      变量名称 描述
      s16Dummy0[DUMMY_NUM] 目前没作用,预设为-1,值域范围:-1 ~ 255。 DUMMY_NUM = 256。
      s16Dummy1[DUMMY_NUM] 目前没作用,预设为-1,值域范围:-1 ~ 255。 DUMMY_NUM = 256。
      s16Dummy2[DUMMY_NUM] 目前没作用,预设为-1,值域范围:-1 ~ 255。 DUMMY_NUM = 256。
      s16Dummy3 目前没作用,预设为-1,值域范围:-1 ~ 255。
      s16Dummy4 目前没作用,预设为-1,值域范围:-1 ~ 255。

    3.32. MI_ISP_IQ_DummyEx结构体

    3.32.1. 类型结构体 (Type Structure)

    • 说明

      设定DUMMY_EX的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_DummyExType_s
      
      {
      
          MI_ISP_IQ_bool_e        bEnable;
      
          MI_ISP_IQ_bool_e        bLogEn;
      
          MI_ISP_IQ_DummyExManualAttr_t stManual;
      
      } MI_ISP_IQ_DummyExType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定DUMMY_EX功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      bLogEn 设定DUMMY的打印讯息开关,开启后会打印出DUMMY的参数结构体所对应的内容。
      stManual 设定DUMMY_EX的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetDummyEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_DummyExType_t *data);
      
      MI_S32 MI_ISP_IQ_GetDummyEx(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_DummyExType_t *data);
      

    3.32.2. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定DUMMY_EX的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_DummyExManualAttr_s
      
      {
      
          MI_ISP_IQ_DummyExParam_t stParaAPI;
      
      } MI_ISP_IQ_DummyExManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.32.3. 参数结构体 (Parameter Structure)

    • 说明

      设定DUMMY_EX的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_DummyExParam_s
      
      {
      
          MI_S16 s16DummyEx0[DUMMY_EX_NUM];
      
          MI_S16 s16DummyEx1[DUMMY_EX_NUM];
      
          MI_S16 s16DummyEx2[DUMMY_EX_NUM];
      
          MI_S16 s16DummyEx3;
      
          MI_S16 s16DummyEx4;
      
      } MI_ISP_IQ_DummyExParam_t;
      
    • 名称

      变量名称 描述
      s16DummyEx0[DUMMY_EX_NUM] 目前没作用,预设为-1,值域范围:-1 ~ 255。 DUMMY_EX_NUM = 256。
      s16DummyEx1[DUMMY_EX_NUM] 目前没作用,预设为-1,值域范围:-1 ~ 255。 DUMMY_EX_NUM = 256。
      s16DummyEx2[DUMMY_EX_NUM] 目前没作用,预设为-1,值域范围:-1 ~ 255。 DUMMY_EX_NUM = 256。
      s16DummyEx3 目前没作用,预设为-1,值域范围:-1 ~ 255。
      s16DummyEx4 目前没作用,预设为-1,值域范围:-1 ~ 255。

    3.33. MI_ISP_IQ_WDRCurveFull结构体

    3.33.1. 类型结构体 (Type Structure)

    • 说明

      设定WDRCurveFull的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_WdrCurveFullType_s
      
      {
      
          MI_ISP_IQ_bool_e          bEnable[E_WDR_CURVE_FULL_MAX];
      
          MI_ISP_IQ_OpType_e         enOpType[E_WDR_CURVE_FULL_MAX];
      
          MI_ISP_IQ_WdrCurveFullAutoAttr_t  stAuto;
      
          MI_ISP_IQ_WdrCurveFullManualAttr_t stManual;
      
      } MI_ISP_IQ_WdrCurveFullType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定WDRCurveFull功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定WDRCurveFull的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定WDRCurveFull的自动模式属性结构体。
      stManual 设定WDRCurveFull的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetWdrCurveFull(MI_U32 DevId, MI_U32 Channel, MI_ISP_IQ_WdrCurveFullType_t *data);

      MI_S32 MI_ISP_IQ_GetWdrCurveFull(MI_U32 DevId, MI_U32 Channel, MI_ISP_IQ_WdrCurveFullType_t *data);

    3.33.2. 曲线列举结构体 (Curve Enum Structure)

    • 说明

      WDRCurveFull的曲线列举结构体。

    • 定义

      typedef enum __attribute__ ((aligned (4)))
      
      {
      
          E_WDR_CURVE_FULL_GLOBAL_TONE,
      
          E_WDR_CURVE_FULL_CURVE1,
      
          E_WDR_CURVE_FULL_CURVE2,
      
          E_WDR_CURVE_FULL_MAX
      
      } MI_ISP_IQ_WDRCurveFull_e;
      
    • 名称

      变量名称 描述
      E_WDR_CURVE_FULL_GLOBAL_TONE Global tone的相关设定。
      E_WDR_CURVE_FULL_CURVE1 Curve1的相关设定。
      E_WDR_CURVE_FULL_CURVE2 Curve2的相关设定。
      E_WDR_CURVE_FULL_MAX 曲线列举列表的最大值。

    3.33.3. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定WDRCurveFull的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_WdrCurveFullAutoAttr_s
      
      {
      
          MI_ISP_IQ_WdrCurveFullParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_WdrCurveFullAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.33.4. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定WDRCurveFull的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_WdrCurveFullManualAttr_s
      
      {
      
          MI_ISP_IQ_WdrCurveFullParam_t stParaAPI;
      
      } MI_ISP_IQ_WdrCurveFullManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.33.5. 参数结构体 (Parameter Structure)

    • 说明

      设定WDRCurveFull的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_WdrCurveFullParam_s
      
      {
      
          MI_U8    u8GlobalToneSft[WDR_CURVE_FULL_LUT_X_NUM];
      
          MI_U16 u16GlobalToneLut[WDR_CURVE_FULL_LUT_Y_NUM];
      
          MI_U16 u16Curve1[WDR_CURVE_FULL_CURVE_NUM];
      
          MI_U16 u16Curve2[WDR_CURVE_FULL_CURVE_NUM];
      
      } MI_ISP_IQ_WdrCurveFullParam_t;
      
    • 名称

      变量名称 描述
      u8GlobalToneSft [WDR_CURVE_FULL_LUT_X_NUM] Global tone的横轴节点,值域范围:3 ~ 15,有32个节点,X轴依序为0、2GlobalToneSft[0]、2GlobalToneSft[0]+2GlobalToneSft[1]、2GlobalToneSft[0]+2GlobalToneSft[1]+2GlobalToneSft[2] ...,Y轴依序为GlobalToneLut[0]、GlobalToneLut[1]、GlobalToneLut[2] ...,此外,Y轴的最后一个节点有特殊设计,若X轴的最后一个节点小于65535,则Y轴的最后一个节点为GlobalToneLut[32],若X轴的最后一个节点大于65535,则Y轴的最后一个节点为GlobalToneLut[31]+GlobalToneLut[32],主要是为了让global tone能完全使用所有动态区间,也就是解决最后一个节点不一定刚好落在(x, y) = (65535, 4095)的问题,假设X轴的最后一个节点超过65535,那Y轴也要超过4095,才能让此节点和前一个节点的线段刚好通过(x, y) = (65535, 4095)。如需调整,建议用Excel画出原本的曲线,调整GlobalToneSft将想要细调的区间切细后,找到对应的GlobalToneLut,确认效果和先前一致后,再调整GlobalToneLut。WDR_CURVE_FULL_LUT_X_NUM = 31。
      u16GlobalToneLut [WDR_CURVE_FULL_LUT_Y_NUM] Global tone的纵轴节点,值域范围:0 ~ 4095。功能和DarkToneEnhance相同。WDR_CURVE_FULL_LUT_Y_NUM = 32。
      u16Curve1 [WDR_CURVE_FULL_CURVE_NUM] 前级亮度调整曲线,值域范围:0 ~ 4096。横轴为输入亮度,纵轴为输出亮度,值越大则「没有经过直方图均衡化处理的影像」越亮。输出结果会依据Strength和WDRStrByY的比例来混合经过直方图均衡化处理的结果,剩下的比例会混合经过Curve1处理的结果。WDR_CURVE_FULL_CURVE_NUM = 33。
      u16Curve2 [WDR_CURVE_FULL_CURVE_NUM] 后级亮度调整曲线,值域范围:0 ~ 4096。横轴为输入亮度,纵轴为输出亮度,值越大则最终影像越亮。 WDR_CURVE_FULL_CURVE_NUM = 33。

    3.34. MI_ISP_IQ_Defog结构体

    3.34.1. 类型结构体 (Type Structure)

    • 说明

      设定Defog的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_DefogType_s
      
      {
      
          MI_ISP_IQ_bool_e        bEnable;
      
          MI_ISP_IQ_OpType_e       enOpType;
      
          MI_ISP_IQ_DefogAutoAttr_t   stAuto;
      
          MI_ISP_IQ_DefogManualAttr_t  stManual;
      
      } MI_ISP_IQ_DefogType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定Defog功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定Defog的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定Defog的自动模式属性结构体。
      stManual 设定Defog的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetDefog(MI_U32 DevId, MI_U32 Channel, MI_ISP_IQ_DefogType_t *data);

      MI_S32 MI_ISP_IQ_GetDefog(MI_U32 DevId, MI_U32 Channel, MI_ISP_IQ_DefogType_t *data);

    3.34.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定Defog的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_DefogAutoAttr_s
      
      {
      
          MI_ISP_IQ_DefogParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_DefogAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.34.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定Defog的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_DefogManualAttr_s
      
      {
      
          MI_ISP_IQ_DefogParam_t   stParaAPI;
      
      } MI_ISP_IQ_DefogManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.34.4. 参数结构体 (Parameter Structure)

    • 说明

      设定Defog的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_DefogParam_s
      
      {
      
          MI_U8  u8Strength;
      
      } MI_ISP_IQ_DefogParam_t;
      
    • 名称

      变量名称 描述
      u8Strength 设定对比度、亮度、灰度的可变强度数值。值域范围:0 ~ 100。

    3.35. MI_ISP_IQ_Temp结构体

    3.35.1. 类型结构体 (Type Structure)

    • 说明

      设定Temperature的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_TempType_s
      {
          MI_ISP_IQ_bool_e                bEnable;
          MI_U8                       u8TemperatureLut[TEMP_LUT_NUM];
          MI_ISP_IQ_OpType_e              enOpType;
          MI_ISP_IQ_TempAutoAttr_t        stAuto;
          MI_ISP_IQ_TempManualAttr_t      stManual;
      } MI_ISP_IQ_TempType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定Temperature功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      u8TemperatureLut[TEMP_LUT_NUM] 设定Temperature节点,支持16个节点,值域范围:0 ~ 100。 TEMP_LUT_NUM = 16。
      enOpType 设定Temperature的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定Temperature的自动模式属性结构体。
      stManual 设定Temperature的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetTemp(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_TempType_t *data);
      
      MI_S32 MI_ISP_IQ_GetTemp(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_TempType_t *data);
      

    3.35.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定Temperature的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_TempAutoAttr_s
      
      {
      
          MI_ISP_IQ_TempParam_t  stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_TempAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.35.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定Temperature的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_TempManualAttr_s
      
      {
      
          MI_ISP_IQ_TempParam_t  stParaAPI;
      
      } MI_ISP_IQ_TempManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.35.4. 参数结构体 (Parameter Structure)

    • 说明

      设定Temperature的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_TempParam_s
      
      {
      
          MI_S16 s16ObcOffset;
      
          MI_U8    u8DynamicDPRatio;
      
          MI_U8    u8CrosstalkRatio;
      
          MI_U8    u8NRDeSpikeRatio;
      
          MI_U8    u8NR3DRatio[TEMP_NR3D_NUM];
      
          MI_U8    u8NRLumaRatio;
      
          MI_U8    u8SharpnessRatio[TEMP_SHARPNESS_NUM];
      
          MI_U8    u8SaturationRatio;
      
          MI_U8    u8ColorToneRatio[TEMP_COLOR_TONE_NUM];
      
      } MI_ISP_IQ_TempParam_t;
      
    • 名称

      变量名称 描述
      s16ObcOffset OBC偏移量,预设为0,值越大扣越多。 值域范围:-32768 ~ 32767。
      u8DynamicDPRatio DynamicDP强度变化比例,值越大越强,预设为50。 值域范围:0 ~ 100。
      u8CrosstalkRatio Crosstalk强度变化比例,值越大越强,预设为50。 值域范围:0 ~ 100。
      u8NRDeSpikeRatio NRDeSpike强度变化比例,值越大越强,预设为50。 值域范围:0 ~ 100。
      u8NR3DRatio[TEMP_NR3D_NUM] NR3D强度变化比例,值越大越强,u8NR3DRatio[0]代表MD.Thd,u8NR3DRatio[1]代表MD.Gain,预设为50。 值域范围:0 ~ 100。TEMP_NR3D_NUM = 2。
      u8NRLumaRatio NRLuma强度变化比例,值越大越强,预设为50。 值域范围:0 ~ 100。
      u8SharpnessRatio[TEMP_SHARPNESS_NUM] Sharpness强度变化比例,值越大越锐利,u8SharpnessRatio[0]代表OverShootGain,u8SharpnessRatio[1]代表UnderShootGain,预设为50。 值域范围:0 ~ 100。TEMP_SHARPNESS_NUM = 2。
      u8SaturationRatio Saturation强度变化比例,值越大越饱和,预设为50。 值域范围:0 ~ 100。
      u8ColorToneRatio[TEMP_COLOR_TONE_NUM] ColorTone强度变化比例,值越大越饱和,u8ColorToneRatio[0~2]依序对应到R/G/B,预设为50。 值域范围:0 ~ 100。TEMP_COLOR_TONE_NUM = 3。

    3.36. MI_ISP_IQ_TempInfo结构体

    3.36.1. 类型结构体 (Type Structure)

    • 说明

      设定temperature info的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_TempInfoType_s
      
      {
      
          MI_U8    u8Temperature;
      
      } MI_ISP_IQ_TempInfoType_t;
      
    • 名称

      变量名称 描述
      u8Temperature 获取当前chip温度,只读,值域范围:0 ~ 255。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_GetTempInfo(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_TempInfoType_t *data);
      

    3.37. MI_ISP_IQ_NrChromaPre结构体

    3.37.1. 类型结构体 (Type Structure)

    • 说明

      设定Chroma_Pre降噪的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaPreType_s
      
      {
      
          MI_ISP_IQ_bool_e          bEnable;
      
          MI_ISP_IQ_OpType_e         enOpType;
      
          MI_ISP_IQ_NrChromaPreAutoAttr_t    stAuto;
      
          MI_ISP_IQ_NrChromaPreManualAttr_t stManual;
      
      } MI_ISP_IQ_NrChromaPreType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定Chroma_Pre降噪功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      enOpType 设定Chroma_Pre降噪的工作模式。 自动模式:E_SS_IQ_OP_TYP_AUTO = 0。 手动模式:E_SS_IQ_OP_TYP_MANUAL = 1。
      stAuto 设定Chroma_Pre降噪的自动模式属性结构体。
      stManual 设定Chroma_Pre降噪的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetNrChromaPre(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaPreType_t *data);
      
      MI_S32 MI_ISP_IQ_GetNrChromaPre(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_NrChromaPreType_t *data);
      

    3.37.2. 自动模式属性结构体 (Automatic Mode Attribute Structure)

    • 说明

      设定Chroma_Pre降噪的自动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaPreAutoAttr_s
      
      {
      
          MI_ISP_IQ_NrChromaPreParam_t stParaAPI[MI_ISP_AUTO_NUM];
      
      } MI_ISP_IQ_NrChromaPreAutoAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPIMI_ISP_AUTO_NUM] 自动模式属性结构体,MI_ISP_AUTO_NUM = 16。 该数列组的16个值分别对应在不同增益情况下的设定值。

    3.37.3. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定Chroma_Pre降噪的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaPreManualAttr_s
      
      {
      
          MI_ISP_IQ_NrChromaPreParam_t stParaAPI;
      
      } MI_ISP_IQ_NrChromaPreManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.37.4. 参数结构体 (Parameter Structure)

    • 说明

      设定Chroma_Pre降噪的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_NrChromaPreParam_s
      
      {
      
          MI_ISP_IQ_bool_e  bDbgEn;
      
          MI_U16     u16Strength;
      
          MI_U8       u8MotionEnhance[NRCHROMA_PRE_YC_NUM];
      
          MI_U16     u16MaskGenTh;
      
          MI_U16     u16MeanFilterTh[NRCHROMA_PRE_YC_NUM];
      
          MI_U16     u16MedianFilterTh[NRCHROMA_PRE_YC_NUM];
      
          MI_U16     u16BlendTh;
      
          MI_U8       u8BlendGap;
      
      } MI_ISP_IQ_NrChromaPreParam_t;
      
    • 名称

      变量名称 描述
      bDbgEn Debug模式,值域范围:0 ~ 1,使用前务必将Strength设为最大值256,影像的U/V信道值越小则代表越使用mean filter的结果,U/V通道值越大则代表越使用median filter的结果。
      u16Strength 整体强度,值域范围:0 ~ 256,值越大则NR效果越强。
      u8MotionEnhance[NRCHROMA_PRE_YC_NUM] 动态区域加强程度,值域范围:0 ~ 127,第一格为Y信道加强幅度,第二格为U/V信道加强幅度,值越大则动态区域NR效果越强。NRCHROMA_PRE_YC_NUM = 2。
      u16MaskGenTh U/V通道阀值,用于产生mask,并在此mask内做NR,值域范围:0 ~ 1023,值越大则mask越大,NR效果越强。
      u16MeanFilterTh[NRCHROMA_PRE_YC_NUM] Y/U/V通道阀值,用于控制mean filter强度,值域范围:0 ~ 1023,第一格为Y通道阀值,第二格为U/V通道阀值,只有当mask内的差值小于此阀值才会被纳入做mean filter,值越大则NR效果越强。 NRCHROMA_PRE_YC_NUM = 2。
      u16MedianFilterTh[NRCHROMA_PRE_YC_NUM] Y/U/V通道阀值,用于控制median filter强度,值域范围:0 ~ 1023,第一格为Y通道阀值,第二格为U/V通道阀值,只有当mask内的差值小于此阀值才会被纳入做median filter,值越大则NR效果越强。 NRCHROMA_PRE_YC_NUM = 2。
      u16BlendTh 混合阀值,值域范围:0 ~ 1023,当mask内的U/V通道最大差值小于BlendTh,则使用mean filter的结果,值越大则越偏向使用mean filter的结果。
      u8BlendGap 混合区间,值域范围:0 ~ 15,当mask内的U/V通道最大差值大于BlendTh+2^BlendGap,则使用median filter的结果,值越大则越偏向使用mean filter的结果。

    3.38. MI_ISP_IQ_Yclpf结构体

    3.38.1. 类型结构体 (Type Structure)

    • 说明

      设定YCLPF功能的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_YclpfType_s
      
      {
      
          MI_ISP_BOOL_e        bEnable;
      
          NRCHROMA_PRE MANUAL_ATTR_t   stManual;
      
      } MI_ISP_IQ_YclpfType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定YCLPF功能的布尔值。 关闭:SS_FALSE = 0。 开启:SS_TRUE = 1。
      stManual 设定YCLPF的手动模式属性结构体。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetYclpf(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_YclpfType_t) *data);
      
      MI_S32 MI_ISP_IQ_GetYclpf(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_YclpfType_t) *data);
      

    3.38.2. 手动模式属性结构体 (Manual Mode Attribute Structure)

    • 说明

      设定YCLPF的手动模式属性结构体。

    • 定义

      typedef struct MI_ISP_IQ_YclpfManualAttr_s
      
      {
      
          MI_ISP_IQ_YclpfParam_t stParaAPI;
      
      } MI_ISP_IQ_YclpfManualAttr_t;
      
    • 名称

      变量名称 描述
      stParaAPI 手动模式属性结构体。

    3.38.3. 参数结构体 (Parameter Structure)

    • 说明

      设定YCLPF的参数结构体。

    • 定义

      typedef struct MI_ISP_IQ_YclpfParam_s
      
      {
      
          MI_ISP_IQ_BOOL_e  bLpfEn;
      
          MI_ISP_IQ_BOOL_e  bLpfdiEn;
      
      } MI_ISP_IQ_YclpfParam_t;
      
    • 名称

      变量名称 描述
      bLpfEn 针对Y的滤波开关,值域范围:0 ~ 1,0:关;1:开
      bLpfdiEn 针对C的滤波开关,值域范围:0 ~ 1,0:关;1:开

    3.39. MI_ISP_IQ_ApiBypass结构体

    3.39.1. 类型结构体 (Type Structure)

    • 说明

      设定ISP对应IP模块的略过模式的类型结构体。

    • 定义

      typedef struct MI_ISP_IQ_ApiBypassType_s
      
      {
      
          MI_ISP_IQ_BypassMode_e bEnable;
      
          MI_ISP_IQ_ApiId_e   eAPIIndex;
      
      } MI_ISP_IQ_ApiBypassType_t;
      
    • 名称

      变量名称 描述
      bEnable 设定ISP对应IP模块的略过模式功能的布尔值。 关闭:E_SS_IQ_FALSE = 0。 开启:E_SS_IQ_TRUE = 1。
      eAPIIndex 设定ISP API ID列举数值。
    • 相关结构类型与函式

      MI_S32 MI_ISP_IQ_SetApiBypassMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ApiBypassType_t *data);
      
      MI_S32 MI_ISP_IQ_GetApiBypassMode(MI_U32 DevId, MI_U32 Channel, 
      MI_ISP_IQ_ApiBypassType_t *data);
      

    4. 错误码

    参数名称 数值 描述
    MI_ISP_OK 0 成功。
    MI_ISP_FAILURE -1 失败。
    CAMERA_ERROR_NOT_SUPPORT 5 不支持这个功能
    CAMERA_ERROR_NULL_POINTER 6 ISP还未初始化参数,可以使用MI_ISP_IQ_ParamInitInfo来确认ISP是否已经初始化完成
    CAMERA_ERROR_API_STRUCTURE_SIZE_NOT_MATCH 14 输入值大小与API不符
    CAMERA_ERROR_API_NOT_SUPPORT 15 API不支持此功能