acldvppCropAndResize
Applicability
Product |
Supported |
|---|---|
Atlas 350 Accelerator Card |
√ |
√ |
|
√ |
|
☓ |
|
☓ |
|
☓ |
Description
Description: crops and resize images.
Prototype
Each operator has two-phase API calls. First, acldvppCropAndResizeGetWorkspaceSize is called to calculate the required workspace size based on the computation process. Then, acldvppCropAndResize is called to perform computation. The two-phase APIs are as follows:
- First-phase API:
1acldvppStatus acldvppCropAndResizeGetWorkspaceSize(const aclTensor *self, uint32_t top, uint32_t left, uint32_t height, uint32_t width, const aclIntArray* size, uint32_t interpolationMode, aclTensor *out, uint64_t *workspaceSize, aclOpExecutor **executor)
- Second-phase API:
1acldvppStatus acldvppCropAndResize(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream)
acldvppCropAndResizeGetWorkspaceSize
- Parameters:
- self: input tensor of the operator. Call aclCreateTensor to create data of the aclTensor type (stored on the device). The data type of the input tensor can be UINT8 or FLOAT, and the format can be NCHW or NHWC. Discontinuous tensors are not supported, in addition, N can be 1 or empty, and C can be 1 or 3 (1 indicates the input GRAY image, and 3 indicates the input RGB image).
- top: upper boundary for cropping.
- left: left boundary for cropping.
- height: height for cropping. The value range is [4, 32768].
- width: width for cropping. The value range is [6, 32768].
- size: height and width after image resizing. Call aclCreateIntArray to create data of the aclIntArray type. The array length is 2. The first element is the height, and the second element is the width. The width and height after resizing must be the same as those of out.
- interpolationMode: resizing algorithm. The options are as follows:
- 0: bilinear
- 1: nearest neighbour
- 2: bicubic
- out: operator output tensor. Call aclCreateTensor to create data of the aclTensor type (stored on the device). The data type of the output tensor can be UINT8 or FLOAT, and the format can be NCHW or NHWC. Discontinuous tensors are not supported, the value of N can only be 1, and the value of C can be 1 or 3 (1 indicates a GRAY image and 3 indicates an RGB image). The values of dataType and Format must be the same as those of self. The sizes of the N axis and C axis in Shape must be the same as those of self, the sizes of the W axis and H axis in Shape must be the same as the width and height after resizing.
- workspaceSize: size of the workspace to be allocated on the device.
- executor: operator executor, containing the operator computation process.
- Returns:
The status code acldvppStatus is returned. For details, see acldvpp Return Codes.
acldvppCropAndResize
- Parameters:
- workspace: The aclrtMalloc API needs to be called to allocate the device memory. The memory size is workspaceSize. The memory address output by the aclrtMalloc API is passed here.
- workspaceSize: The value must be the same as that obtained by calling acldvppCropAndResizeGetWorkspaceSize.
- executor: op executor, which contains the operator computation process and is the same as the executor of the acldvppCropAndResizeGetWorkspaceSize API.
- stream: stream for executing the task. You can reuse the created stream to save resources or call aclrtCreateStream to create a stream, and then pass the stream as an input parameter.
- Returns
The status code acldvppStatus is returned. For details, see acldvpp Return Codes.
Constraints
- The supported image resolution ranges from 6 x 4 to 32768 x 32768.
- When the width in Shape of out exceeds 4096, the width x height in Shape of self must be greater than or equal to 128 x 16.
Parent topic: Media Data Processing Operator APIs