Posterize

group Posterize

Functions

NVCVStatus cvcudaPosterizeCreate(NVCVOperatorHandle *handle)

Constructs an instance of the Posterize operator.

Parameters:

handle – [out] Where the operator instance handle will be written to.

  • Must not be NULL.

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null.

  • NVCV_ERROR_OUT_OF_MEMORY – Not enough memory to create the operator.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus cvcudaPosterizeSubmit(NVCVOperatorHandle handle, cudaStream_t stream, NVCVTensorHandle in, NVCVTensorHandle out, int32_t bits)

Executes the Posterize operation on the given cuda stream. This operation does not wait for completion.

Limitations:

Input: Data Layout: [kNHWC, kHWC, kNCHW, kCHW] Channels: [1, 3, 4]

Data Type

Allowed

8bit Unsigned

Yes

8bit Signed

No

16bit Unsigned

Yes

16bit Signed

No

32bit Unsigned

No

32bit Signed

No

16bit Float

Yes

32bit Float

Yes

64bit Float

Yes

Output: Data Layout: [kNHWC, kHWC, kNCHW, kCHW] Channels: [1, 3, 4]

Data Type

Allowed

8bit Unsigned

Yes

8bit Signed

No

16bit Unsigned

Yes

16bit Signed

No

32bit Unsigned

No

32bit Signed

No

16bit Float

Yes

32bit Float

Yes

64bit Float

Yes

Input/Output dependency

 Property      |  Input == Output
-------------- | -------------
 Data Layout   | Yes
 Data Type     | Yes
 Number        | Yes
 Channels      | Yes
 Width         | Yes
 Height        | Yes

Parameters:
  • handle – [in] Handle to the operator.

    • Must not be NULL.

  • stream – [in] Handle to a valid CUDA stream.

  • in – [in] input tensor.

  • out – [out] output tensor.

  • bits – [in] For integer input, the number of most-significant bits to keep per channel in [0, W], where W is the data type bit width (8 or 16); W is a no-op and 0 zeros the image. For floating-point input, the number of normalized quantization bits in [0, 8]; 0 zeros the image and 8 produces 256 levels. Applied to all images.

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Some parameter is outside valid range.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus cvcudaPosterizeVarShapeSubmit(NVCVOperatorHandle handle, cudaStream_t stream, NVCVImageBatchHandle in, NVCVImageBatchHandle out, int32_t bits)

Executes the Posterize operation on a batch of variable-shaped images on the given cuda stream. Same limitations as cvcudaPosterizeSubmit.

Parameters:
  • handle – [in] Handle to the operator. Must not be NULL.

  • stream – [in] Handle to a valid CUDA stream.

  • in – [in] input image batch.

  • out – [out] output image batch.

  • bits – [in] Integer bit-mask width or floating-point quantization bits (see cvcudaPosterizeSubmit).

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Some parameter is outside valid range.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.