hi_stiching_ipm_param

说明

定义畸变矫正参数的结构体。

定义

typedef struct {
    hi_u32 src_pic_width;
    hi_u32 src_pic_height;
    hi_u32 dest_pic_width;
    hi_u32 dest_pic_height;
    union{
	   hi_u32 ipm_table_len;
	   hi_u32 lut_table_len;
    }
    union{
	     hi_stiching_ipm_table *ipm_table_address;
	     void *lut_table_address;
    }
} hi_stiching_ipm_param;

成员

成员名称

描述

src_pic_width

输入图片宽。

4张输入图片的宽保持一致。

src_pic_height

输入图片高。

4张输入图片的高保持一致。

dest_pic_width

输出图片宽。

dest_pic_height

输出图片高。

ipm_table_len或lut_table_len

  • 当hi_roundview_stitching_param.stitch_table_type参数值为0(表示hi_stiching_ipm_table类型的拼接表),则设置ipm_table_len参数,表示数组长度,参数值必须为dest_pic_width * dest_pic_height。
  • 当hi_roundview_stitching_param.stitch_table_type参数值为1(表示DVPP内部拼接表类型),则设置lut_table_len参数,表示内存大小,参数值必须等于ALIGN_UP (dest_pic_width * 12, 128) * dest_pic_height + dest_pic_width * dest_pic_height。其中,ALIGN_UP (dest_pic_width * 12, 128),表示dest_pic_width * 12按128字节对齐之后的值。

ipm_table_address或lut_table_address

  • 当hi_roundview_stitching_param.stitch_table_type参数值为0(表示hi_stiching_ipm_table类型的拼接表),则设置ipm_table_address参数。

    由用户提前申请内存存放拼接表数据,内存大小(单位为Byte) = sizeof(hi_stiching_ipm_table) * ipm_table_len。

  • 当hi_roundview_stitching_param.stitch_table_type参数值为1(表示DVPP内部拼接表类型),则设置lut_table_address参数。

    由用户提前申请内存存放拼接表数据,内存大小(单位为Byte)为lut_table_len参数值。

此处的内存大小可能比较大,如果直接使用C标准库中的malloc接口申请内存,会导致内存碎片化,大页个数减少,进而影响使用hi_mpi_dvpp_malloc接口申请DVPP各功能的输入/输出内存。因此推荐直接使用hi_mpi_dvpp_malloc接口申请存放ipm_table_address或lut_table_address数据的内存。