The Warp Filter descriptor should be placed in DDR memory in the below format. The address of this descriptor is provided to the IP through the Descriptor Address Register and the IP reads the descriptor from this address.
typedef struct {
U32 height;
U32 width;
U32 stride;
U32 format;
U32 valid_seg;
U32 lblock_count;
U32 line_num;
U32 reserved;
U64 src_buf_addr;
U64 seg_table_addr;
U64 dest_buf_addr;
} WARP_FILTER_DESC;
The fields in the above descriptor are explained as below:
Descriptor Field | Explanation |
---|---|
Height | Height of the input source image. Supported values are between 240 and the value provided in the Maximum Number of Rows field in the Vivado IDE. |
Width | Width of the input source image. Supported values are between 320 and the value provided in the Maximum Number of Columns field in the Vivado IDE. |
Stride | Stride in bytes of the source image. |
Format | Pixel format of the source image. |
Valid_seg | Number of valid blocks that the Warp Filter needs to reconstruct. This value must be read from the valid_segs register of the Warp Initializer. |
Lblock_count | For faster processing the Warp Filter runs 2 cores parallely. The total number of valid blocks are divided between the 2 cores. The number of blocks that need to be processed by the first core comes from lblock_count. This value must be read from the lblock_count register of the Warp Initializer IP. |
Line_num | The line number from which the 2nd core in the Warp Filter starts reading the source image. This value must be read from the line_num register of the Warp Initializer. |
src_buf_addr | The 64-bit address from which the source image has to be read. |
seg_table_addr | The 64-bit address from which the Warp filter parameters has to be read. |
dest_buf_addr | The 64-bit address to which the corrected image has to be written. |