hi_vi_pipe_bypass_mode
hi_vi_pipe_attr
说明
定义VI PIPE属性。
定义
typedef struct {
hi_vi_pipe_bypass_mode pipe_bypass_mode;
hi_bool isp_bypass;
hi_size size;
hi_pixel_format pixel_format;
hi_compress_mode compress_mode;
hi_data_bit_width bit_width;
hi_frame_rate_ctrl frame_rate_ctrl;
hi_u32 depth;
hi_u32 reserved[10];
} hi_vi_pipe_attr;
成员
| 成员名称 | 描述 |
|---|---|
| pipe_bypass_mode | VI PIPE的bypass模式。静态属性,创建PIPE时设定,不可更改。 |
| isp_bypass | ISP是否运行。静态属性,创建PIPE时设定,不可更改。 - HI_FALSE:ISP正常运行。 - HI_TRUE:ISP不运行。 当输入为Raw数据时,必须设置为HI_FALSE;当输入为YUV时则可以设置为HI_TRUE或者HI_FALSE。 |
| size | 输入图像宽高。需根据所绑定的VI设备属性的宽高或调用hi_mpi_vi_set_pipe_pre_crop接口配置的宽高,保证大小一致,需与ISP公共属性所设置的宽高需保持一致。静态属性,创建PIPE时设定,不可更改。 取值范围:[120, 16384]。 |
| pixel_format | 像素格式。静态属性,创建PIPE时设定,不可更改。 如果是YUV图像,则仅pipe2和pipe3支持,且仅支持输出HI_PIXEL_FORMAT_YVU_SEMIPLANAR_422、HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420、HI_PIXEL_FORMAT_YUV_400。 如果是RAW图像,则仅支持位宽为8、10、12、14的RGB BAYER格式。 |
| compress_mode | 数据压缩格式。静态属性,创建PIPE时设定,不可更改。 - 仅支持帧压缩HI_COMPRESS_MODE_FRAME或行压缩HI_COMPRESS_MODE_LINE,且开启帧压缩时,分辨率需满足:总像素个数不少于307200个。 - 当输入数据格式为HI_PIXEL_FORMAT_RGB_BAYER_10BPP、HI_PIXEL_FORMAT_RGB_BAYER_12BPP、HI_PIXEL_FORMAT_RGB_BAYER_14BPP时,线性模式、WDR帧模式和行模式都支持HI_COMPRESS_MODE_LINE、HI_COMPRESS_MODE_FRAME;当输入数据格式为格式为HI_PIXEL_FORMAT_RGB_BAYER_8BPP时,不支持压缩;当输入数据格式为YUV时,不支持压缩。 |
| bit_width | 输入图像的bit位宽。仅当像素格式pixel_format为YUV像素格式时有效。静态属性,创建PIPE时设定,不可更改。 |
| frame_rate_ctrl | 帧率控制。 |
| depth | PIPE队列深度,用于缓存VI PIPE的临时数据、RAW/YUV图输入和输出数据。静态属性,创建 PIPE 时设定,不可更改。 临时缓存实际所能使用的最大队列深度为:hi_vi_pipe_attr.depth - hi_vi_frame_dump_attr.depth 取值范围:[0, 16]。 |
| reserved | 预留参数,为保证后续版本兼容性,请务必使用memset结构体方式进行清零初始化,在代码中必须避免显式对reserved字段进行访问。 |
父主题: VI视频输入
hi_vi_vpss_mode
说明
定义VI各个PIPE和VPSS各个组的工作模式。
定义
typedef struct {
hi_vi_vpss_mode_type mode[VI_MAX_PIPE_NUM];
} hi_vi_vpss_mode;
成员
| 成员名称 | 描述 |
|---|---|
| mode | VI各个PIPE和VPSS各个组的工作模式。 数组内每个元素对应每个VI PIPE,例如数组内index为0的元素对应PIPE 0。 text<br>#define VI_MAX_PIPE_NUM 8<br> |
父主题: VI视频输入
hi_vi_vpss_mode_type
说明
定义VI PIPE和VPSS组的工作模式。
定义
typedef enum {
HI_VI_OFFLINE_VPSS_OFFLINE = 0,
HI_VI_OFFLINE_VPSS_ONLINE,
HI_VI_ONLINE_VPSS_OFFLINE,
HI_VI_ONLINE_VPSS_ONLINE,
HI_VI_PARALLEL_VPSS_OFFLINE,
HI_VI_PARALLEL_VPSS_PARALLEL,
HI_VI_VPSS_MODE_BUTT
} hi_vi_vpss_mode_type;
成员
| 成员名称 | 描述 |
|---|---|
| HI_VI_OFFLINE_VPSS_OFFLINE | VI离线,VPSS离线。 使用该模式时,如果需要让视频流自动流转到VPSS继续处理,则需要调用hi_mpi_sys_bind接口设定VI、VPSS绑定关系,并完成VI PIPE以及被绑VPSS Group的初始化。 |
| HI_VI_OFFLINE_VPSS_ONLINE | VI离线,VPSS在线。 当使用该模式时,所有VI PIPE都需要使用该模式。该模式下,VI PIPE编号与VPSS GROUP号一一对应,数据从VI PIPE流动到VPSS GROUP,不需要通过hi_mpi_sys_bind接口设定VI、VPSS绑定关系,绑定关系内部自动维护为:VPSS GROUP ID = VI PIPE ID + 256。 该模式下,VI PIPE以及内部自动绑定的VPSS Group必须都完成初始化,否则没法正常出图。 |
| HI_VI_ONLINE_VPSS_OFFLINE | VI在线,VPSS离线。当前版本不支持。 |
| HI_VI_ONLINE_VPSS_ONLINE | VI在线,VPSS在线。当前版本不支持。 |
| HI_VI_PARALLEL_VPSS_OFFLINE | VI并行,VPSS离线。当前版本不支持。 |
| HI_VI_PARALLEL_VPSS_PARALLEL | VI并行,VPSS并行。当前版本不支持。 |
父主题: VI视频输入
hi_vi_pipe_bypass_mode
说明
定义VI PIPE的bypass模式。
定义
typedef enum {
HI_VI_PIPE_BYPASS_NONE,
HI_VI_PIPE_BYPASS_FE,
HI_VI_PIPE_BYPASS_BE,
HI_VI_PIPE_BYPASS_BUTT
} hi_vi_pipe_bypass_mode;
成员
| 成员名称 | 描述 |
|---|---|
| HI_VI_PIPE_BYPASS_NONE | VI 的数据经过FE与BE处理。 |
| HI_VI_PIPE_BYPASS_FE | VI 的数据不经过FE处理,只经过BE处理。当前版本不支持。 |
| HI_VI_PIPE_BYPASS_BE | VI 的数据经过FE处理,不经过BE处理。 |
| HI_VI_PIPE_BYPASS_BUTT | 预留值。 |
父主题: VI视频输入
hi_vi_frame_dump_attr
说明
定义VI PIPE dump属性。
定义
typedef struct {
hi_bool enable;
hi_u32 depth;
} hi_vi_frame_dump_attr;
成员
| 成员名称 | 描述 |
|---|---|
| enable | 是否开启dump。 - HI_FALSE:不开启。 - HI_TRUE:开启。 |
| depth | Dump数据的队列深度,该值不允许超过对应PIPE属性里的depth值。 取值范围:[0, 8]。 |
父主题: VI视频输入
hi_vi_pipe_frame_source
说明
定义视频输入设备的属性。
定义
typedef enum {
HI_VI_PIPE_FRAME_SOURCE_FE = 0,
HI_VI_PIPE_FRAME_SOURCE_USER,
HI_VI_PIPE_FRAME_SOURCE_BUTT
} hi_vi_pipe_frame_source;
成员
| 成员名称 | 描述 |
|---|---|
| HI_VI_PIPE_FRAME_SOURCE_FE | 数据来自于前端FE,默认模式。 |
| HI_VI_PIPE_FRAME_SOURCE_USER | 数据来自用户从BE送进来的数据。 |
| HI_VI_PIPE_FRAME_SOURCE_BUTT | 预留值。 |
父主题: VI视频输入
hi_vi_chn_attr
说明
定义VI通道属性。
定义
typedef struct {
hi_size size;
hi_pixel_format pixel_format;
hi_dynamic_range dynamic_range;
hi_video_format video_format;
hi_compress_mode compress_mode;
hi_u32 depth;
hi_frame_rate_ctrl frame_rate_ctrl;
hi_u32 reserved[10];
} hi_vi_chn_attr;
成员
| 成员名称 | 描述 |
|---|---|
| size | 目标图像大小。静态属性,设置通道时设定,不可更改。 - 必须配置,且大小需要在VI支持的范围,详细范围说明参考约束说明。 - 通道不支持缩放,通道size必须和pipe属性配置的size一致 。 |
| pixel_format | 目标图像像素格式。静态属性,设置通道时设定,不可更改。 当未开启DIS或LDC时,支持的像素格式为:HI_PIXEL_FORMAT_YVU_SEMIPLANAR_422、HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420、HI_PIXEL_FORMAT_YUV_400。 当开启DIS或LDC时,支持的像素格式为:HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420、HI_PIXEL_FORMAT_YUV_400。 |
| dynamic_range | 目标图像动态范围。静态属性,设置通道时设定,不可更改。 |
| video_format | 目标图像视频数据格式。当前版本仅支持HI_VIDEO_FORMAT_LINEAR格式。 |
| compress_mode | 目标图像压缩格式。静态属性,设置通道时设定,不可更改。当前版本不支持。 |
| depth | 用户获取图像的队列深度。静态属性,设置通道时设定,不可更改。 取值范围:[0, 8]。 |
| frame_rate_ctrl | 帧率控制。 |
| reserved | 预留参数,为保证后续版本兼容性,请务必使用memset结构体方式进行清零初始化,在代码中必须避免显式对reserved字段进行访问。 |
:::note 说明
- 当前版本,VI CHN通道不支持缩放,所以请确保将chn属性中的size大小与pipe属性中的size大小保持一致。
- 请根据实际负载和抖动,设置合理的depth值,内部实际申请的内存块数量为:调用hi_mpi_vi_enable_chn接口开启通道时的hi_vi_pipe_attr属性中的depth - hi_vi_frame_dump_attr属性中的depth + chn属性中的depth值。所以建议用户在开启通道前,确保已完成pipe dump属性的相关配置。 :::
父主题: VI视频输入
在线提单