IPC网络摄像头媒体视屏流MI_VPE模块结构体

VPE模块相关数据类型定义如下:

VPE模块错误码如下:

=======================

MI_VPE_CHANNEL 结构体

函数说明

定义:MI_VPE_CHANNEL类型。

定义; typedef MI_S32 MI_VPE_CHANNEL

注意事项:无

相关数据类型及接口:无


MI_VPE_PORT 结构体

函数说明

定义:MI_VPE_PORT类型。

定义:typedef MI_S32 MI_VPE_PORT

注意事项:无

相关数据类型及接口:无


MI_VPE_RunningMode_e 结构体

定义VPE工作在某种模式下

复制代码
typedef enum
{
   E_MI_VPE_RUN_INVALID = 0x00,
   E_MI_VPE_RUN_DVR_MODE = 0x01,
   E_MI_VPE_RUN_CAM_TOP_MODE = 0x02,
   E_MI_VPE_RUN_CAM_BOTTOM_MODE = 0x04,
   E_MI_VPE_RUN_CAM_MODE =
   E_MI_VPE_RUN_CAM_TOP_MODE|E_MI_VPE_RUN_CAM_BOTTOM_MODE,
   E_MI_VPE_RUN_REALTIME_TOP_MODE = 0x08,
   E_MI_VPE_RUN_REALTIME_BOTTOM_MODE = 0x10,
   E_MI_VPE_RUN_REALTIME_MODE =
   E_MI_VPE_RUN_REALTIME_TOP_MODE | E_MI_VPE_RUN_REALTIME_BOTTOM_MODE,
   E_MI_VPE_RUNNING_MODE_MAX,
} MI_VPE_RunningMode_e;

使用注意:

E_MI_VPE_RUN_DVR_MODE:当输入是YUV 格式时,ISP bypass, 不经过ISP 处理。

E_MI_VPE_RUN_CAM_MODE:当输入是Bayer 格式时,且数据来自DRAM, ISP 支持分时复用,例如多sensor

场景。

E_MI_VPE_RUN_REALTIME_MODE:当输入是Bayer 格式,VIF 和ISP 之间硬件直连,ISP 不支持分时复用,

只支持一个通道,例如单sensor 场景。


MI_VPE_SensorChannel_e 结构体
复制代码
typedef enum
{
   E_MI_VPE_SENSOR_INVALID = 0,
   E_MI_VPE_SENSOR0,
   E_MI_VPE_SENSOR1,
   E_MI_VPE_SENSOR2,
   E_MI_VPE_SENSOR3,
   E_MI_VPE_SENSOR_MAX
}MI_VPE_SensorChannel_e;

使用注意:

与硬件上sensor Pad0/1/2/3 对应,当vpe前端不接sensor的时候使用E_MI_VPE_SENSOR_INVALID。


MI_VPE_ChnPortMode_e 结构体

定义VPE channel中每一个port的输出效果模式。

复制代码
typedef enum
{
      E_MI_VPE_ZOOM_LDC_NULL,
      E_MI_VPE_ZOOM_LDC_PORT0 = 0X01,
      E_MI_VPE_ZOOM_LDC_PORT1 = 0X02,
      E_MI_VPE_ZOOM_LDC_PORT2 = 0X04,
      E_MI_VPE_ZOOM_LDC_MAX = E_MI_VPE_ZOOM_LDC_PORT0|
      E_MI_VPE_ZOOM_LDC_PORT1|E_MI_VPE_ZOOM_LDC_PORT2,
}MI_VPE_ChnPortMode_e;
port0,1,2 输出包含zoom/ldc 效果。

MI_VPE_IspApiHeader_t 结构体

定义VPE传给ISP 的数据信息。

复制代码
typedef struct MI_VPE_IspApiHeader_s
{
   MI_U32 u32HeadSize; //Size of MIIspApiHeader_t
   MI_U32 u32DataLen; //Data length;
   MI_U32 u32CtrlID; //Function ID
   MI_U32 u32Channel; //Isp channel number
   MI_S32 s32Ret; //Isp api retuen value
} MI_VPE_IspApiHeader_t;

MI_VPE_ChannelAttr_t 结构体

定义 VPE channel静态属性

复制代码
typedef struct MI_VPE_ChannelAttr_s
{
   MI_U16 u16MaxW;
   MI_U16 u16MaxH;
   MI_SYS_PixelFormat_e ePixFmt;
   MI_VPE_SensorChannel_e eSensorBindId;
   MI_BOOL bNrEn;
   MI_BOOL bEdgeEn;
   MI_BOOL bEsEn;
   MI_BOOL bContrastEn;
   MI_BOOL bUvInvert;
   MI_BOOL bRotation;
   MI_VPE_RunningMode_e eRunningMode;
   MI_VPE_IspInitPara_t tIspInitPara;
   MI_BOOL bEnLdc;
   MI_U32 u32ChnPortMode;
}MI_VPE_ChannelAttr_t;

成员包括:


MI_VPE_PqParam_t 结构体

定义 VPE channel属性参数

复制代码
typedef struct MI_VPE_ChannelPara_s
{
   MI_U8 u8NrcSfStr; //0 ~ 255;
   MI_U8 u8NrcTfStr; //0 ~ 255
   MI_U8 u8NrySfStr; //0 ~ 255
   MI_U8 u8NryTfStr; //0 ~ 255
   MI_U8 u8NryBlendMotionTh; //0 ~ 15
   MI_U8 u8NryBlendStillTh; //0 ~ 15
   MI_U8 u8NryBlendMotionWei; //0 ~ 31
   MI_U8 u8NryBlendOtherWei; //0 ~ 31
   MI_U8 u8NryBlendStillWei; //0 ~ 31
   MI_U8 u8EdgeGain[6];//0~255
   MI_U8 u8Contrast;//0~255
} MI_VPE_ChannelPara_t;

成员包括:

使用注意:

BLEND_WEI 数值愈大空间域去噪点强度愈强,建议针对画面动态区设较强的值可达到较好的去噪点效果;针对静止区设定较弱的值,可保留较多细节


MI_VPE_HDRType_e 结构体

定义VPE是否开HDR,开HDR是使用哪种方式

复制代码
typedef enum
{
   E_MI_VPE_HDR_TYPE_OFF,
   E_MI_VPE_HDR_TYPE_VC, //virtual channel mode HDR,vc0->long, vc1->short
   E_MI_VPE_HDR_TYPE_DOL,
   E_MI_VPE_HDR_TYPE_EMBEDDED, //compressed HDR mode
   E_MI_VPE_HDR_TYPE_LI, //Line interlace HDR
   E_MI_VPE_HDR_TYPE_MAX
} MI_VPE_HDRType_e

使用注意:

具体使用哪一种HDR Type 可以通过MI_SNR_GetPadInfo 接口获取。


MI_VPE_3DNR_Level_e 结构体

定义VPE开启3DNR 等级

复制代码
typedef enu
{
  E_MI_VPE_3DNR_LEVEL_OFF,
  E_MI_VPE_3DNR_LEVEL1,
  E_MI_VPE_3DNR_LEVEL2,
  E_MI_VPE_3DNR_LEVEL3,
  E_MI_VPE_3DNR_LEVEL4,
  E_MI_VPE_3DNR_LEVEL5,
  E_MI_VPE_3DNR_LEVEL6,
  E_MI_VPE_3DNR_LEVEL7,
  E_MI_VPE_3DNR_TYPE_NUM
} MI_VPE_3DNR_Level_e;

使用注意:

Create channel 后设置,为静态属性只能设置一次。

有关3DNR等级,会导致部分3DNR API参数(NR3D_PARAM_t)无法使用,请参考下表


MI_VPE_ChannelPara_t 结构体
复制代码
typedef struct MI_VPE_ChannelPara_s
{
   MI_VPE_PqParam_t stPqParam; // only dvr use
   MI_VPE_HDRType_e eHDRType;
   MI_VPE_3DNR_Level_e e3DNRLevel;
   MI_BOOL bMirror;
   MI_BOOL bFlip;
   MI_BOOL bWdrEn; //Wdr on/off
   MI_BOOL bEnLdc;
} MI_VPE_ChannelPara_t;

成员包括:

使用注意:

  • 不同chip 支持的最大3dnr level如上表, 设置超过MAX, 内部自动采用MAX Level,Level越高3DNR 强度越强,消耗的buffer也会多一点。
  • 支持的eHDRType 可以通过MI_SNR_GetPadInfo 查询。
  • stPqParam 仅DVR mode 可用。
  • bMirror/ bFlip 支持芯片系列如上表, 预防某些Sensor不支持翻转。

MI_VPE_RegionInfo_t 结构体

定义VPE通道区域统计信息

复制代码
typedef struct MI_VPE_RegionInfo_s
{
   MI_VPE_Region_t *pstRegion; // region attribute
   MI_U32 u32RegionNum; // count of the region
} MI_VPE_RegionInfo_t;

成员包括:


MI_VPE_PortMode_t 结构体

定义 VPE 端口模式

复制代码
typedef struct MI_VPE_PortMode_s
{
  MI_U32 u32Width; // Width of target image
  MI_U32 u32Height; // Height of target image
  MI_SYS_PixelFormat_e ePixelFormat; // Pixel format of target image
  MI_SYS_CompressMode_e eCompressMode; // Compression mode of the output
}MI_VPE_PortMode_t;

成员包括:


MI_VPE_IspInitPara_t 结构

定义VPE ISP初始参数Buffer

复制代码
typedef struct MI_VPE_IspInitPara_s
{
  MI_U32 u32Revision;
  MI_U32 u32Size;
  MI_U8 u8Data[64];
}MI_VPE_IspInitPara_t;

成员包括:

相关推荐
melonbo3 小时前
使用FFmpeg将H.264码流封装为MP4
ffmpeg·音视频·h.264
aqi005 小时前
FFmpeg开发笔记(七十七)Android的开源音视频剪辑框架RxFFmpeg
android·ffmpeg·音视频·流媒体
慢行的骑兵7 小时前
Android音视频探索之旅 | CMake基础语法 && 创建支持Ffmpeg的Android项目
ffmpeg·音视频
Just_Paranoid7 小时前
华为云Flexus+DeepSeek征文|基于Dify构建音视频内容转录工作流
华为云·音视频·dify·maas·deepseek·flexusx
go54631584658 小时前
修改Spatial-MLLM项目,使其专注于无人机航拍视频的空间理解
人工智能·算法·机器学习·架构·音视频·无人机
叹一曲当时只道是寻常11 小时前
Softhub软件下载站实战开发(十):实现图片视频上传下载接口
golang·go·音视频
音视频牛哥13 小时前
计算机视觉的新浪潮:扩散模型(Diffusion Models)技术剖析与应用前景
人工智能·计算机视觉·ai·音视频·实时音视频·扩散模型
电子科技圈14 小时前
SmartDV推出先进的H.264和H.265视频编码器和解码器IP
音视频·h.265·h.264
feiyangqingyun16 小时前
Qt音视频开发技巧/推流带旋转角度/rtsprtmp推流/保存文件到MP4/拉流解析旋转角度
qt·音视频·qt旋转角度推流
Despacito0o16 小时前
ESP32-s3摄像头驱动开发实战:从零搭建实时图像显示系统
人工智能·驱动开发·嵌入式硬件·音视频·嵌入式实时数据库