hi_stitching_lut_param

typedef struct{
    hi_u32 src_pic_width;
    hi_u32 src_pic_height;
    hi_u32 dest_pic_width;
    hi_u32 dest_pic_height;
    hi_u32 lut_table_len;
    void *lut;
    hi_u32 mask_len;
    hi_u8 *mask;
    hi_u32 blend_table_len;
    hi_u8 *blend_table;
    hi_u32 reserved[8];
} hi_stitching_lut_param;

For details about basic data types hi_u32 and hi_u8, see Basic Data Types.

Members

Member

Description

src_pic_width

Width of the input image.

The widths of the four input images must be the same.

src_pic_height

Height of the input image.

The heights of the four input images must be the same.

dest_pic_width

Width of the output image.

dest_pic_height

Height of the output image.

lut_table_len

Size of the lut table buffer.

lut

Address of the lut table.

The buffer size here may be large. If you use the malloc API in the C standard library to allocate a buffer, the buffer will be fragmented and the number of huge pages will be reduced. As a result, you will not be able to call hi_mpi_dvpp_malloc to allocate input/output buffers for each DVPP function. Therefore, you are advised to call hi_mpi_dvpp_malloc to allocate memory for storing data of lut.

mask_len

This is a reserved parameter. The value is fixed at 0.

mask

This is a reserved parameter. This parameter is fixed at NULL.

blend_table_len

Buffer size of the blend table.

  • Surround-view stitching: blend_table_len = dest_pic_height × dest_pic_width
  • Surround-view stitching + transparent chassis: blend_table_len = dest_pic_height × dest_pic_width × (1+1/4+1/16+1/64+1/256+1/1024). There are six blend tables in total. Each table is obtained by subjecting the previous one to Gaussian pyramid downsampling. The width and height of each table are half of those of the previous one.

blend_table

Blend table address.

reserved

This is a reserved parameter. The value is fixed at 0.