1 # Copyright (c) 2019-2020 NVIDIA CORPORATION. All rights reserved.
3 @page imagetransformation_mainsection Image Transformation
5 @note SW Release Applicability: This module is available in both **NVIDIA DriveWorks** and **NVIDIA DRIVE Software** releases.
9 The Image Transformation submodule implements basic image processing operations, such as image scaling.
12 Image scaling is performed using NvMedia's VIC engine if the input is `::DW_IMAGE_NVMEDIA` and CUDA if the input is `::DW_IMAGE_CUDA`.
13 The scaling engine is also able to format convert the image if the input and output pixel format differ. The supported conversions
14 are a subset of the ones obtainable via `dwImage_copyConvert`. However this operation allows conversion and ROI handling, so it is suitable for
15 a different class of use cases.
17 #### Table for supported inputs and outputs that do not perform conversions
20 |-----------|-----------|
21 | `::DW_IMAGE_FORMAT_R_UINT8` | `::DW_IMAGE_FORMAT_R_UINT8 ` |
22 | `::DW_IMAGE_FORMAT_R_UINT16` | `::DW_IMAGE_FORMAT_R_UINT16` |
23 | `::DW_IMAGE_FORMAT_R_UINT16` | `::DW_IMAGE_FORMAT_R_UINT8` |
24 | `::DW_IMAGE_FORMAT_R_FLOAT16` | `::DW_IMAGE_FORMAT_R_FLOAT16` |
25 | `::DW_IMAGE_FORMAT_R_FLOAT16` | `::DW_IMAGE_FORMAT_R_UINT8` |
26 | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` |
27 | `::DW_IMAGE_FORMAT_RGB_UINT16_PLANAR` | `::DW_IMAGE_FORMAT_RGB_UINT16_PLANAR` |
28 | `::DW_IMAGE_FORMAT_RGB_UINT16_PLANAR` | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` |
29 | `::DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR` | `::DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR` |
30 | `::DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR` | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` |
31 | `::DW_IMAGE_FORMAT_RGBA_UINT8` | `::DW_IMAGE_FORMAT_RGBA_UINT8` |
32 | `::DW_IMAGE_FORMAT_RGBA_UINT16` | `::DW_IMAGE_FORMAT_RGBA_UINT16` |
33 | `::DW_IMAGE_FORMAT_RGBA_UINT16` | `::DW_IMAGE_FORMAT_RGBA_UINT8` |
34 | `::DW_IMAGE_FORMAT_RGBA_FLOAT16` | `::DW_IMAGE_FORMAT_RGBA_FLOAT16` |
35 | `::DW_IMAGE_FORMAT_RGBA_FLOAT16` | `::DW_IMAGE_FORMAT_RGBA_UINT8` |
36 | `::DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR` |
37 | `::DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR` | `::DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR` |
38 | `::DW_IMAGE_FORMAT_YUV420_UINT16_SEMIPLANAR` | `::DW_IMAGE_FORMAT_YUV420_UINT16_SEMIPLANAR` |
39 | `::DW_IMAGE_FORMAT_YUV420_UINT16_SEMIPLANAR` | `::DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR` |
40 | `::DW_IMAGE_FORMAT_YUV_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_YUV_UINT8_PLANAR` |
41 | `::DW_IMAGE_FORMAT_YUV_UINT16_PLANAR` | `::DW_IMAGE_FORMAT_YUV_UINT16_PLANAR` |
42 | `::DW_IMAGE_FORMAT_YUV_UINT16_PLANAR` | `::DW_IMAGE_FORMAT_YUV_UINT8_PLANAR` |
44 #### Table for supported inputs and outputs that perform also conversions
46 |-----------|-----------|
47 | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_RGBA_UINT8` |
48 | `::DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR` | `::DW_IMAGE_FORMAT_RGBA_UINT8` |
49 | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_RGB_FLOAT16` |
50 | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` |
51 | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR` |
52 | `::DW_IMAGE_FORMAT_RGBA_UINT8` | `::DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR` |
53 | `::DW_IMAGE_FORMAT_RGBA_UINT8` | `::DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR` |
54 | `::DW_IMAGE_FORMAT_RGBA_UINT8` | `::DW_IMAGE_FORMAT_R_UINT8` |
55 | `::DW_IMAGE_FORMAT_RGBA_UINT8` | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` |
56 | `::DW_IMAGE_FORMAT_RGBA_UINT8` | `::DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR` |
57 | `::DW_IMAGE_FORMAT_RGBA_FLOAT16` | `::DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR` |
58 | `::DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR` | `::DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR` |
59 | `::DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR` | `::DW_IMAGE_FORMAT_R_UINT8` |
60 | `::DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR` | `::DW_IMAGE_FORMAT_RGBA_UINT8` |
61 | `::DW_IMAGE_FORMAT_YUV420_UINT16_SEMIPLANAR` | `::DW_IMAGE_FORMAT_RGBA_UINT8` |
62 | `::DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR` | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` |
63 | `::DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR` | `::DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR` |
64 | `::DW_IMAGE_FORMAT_YUV420_UINT16_SEMIPLANAR` | `::DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR` |
65 | `::DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_RGBA_UINT8` |
66 | `::DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_YUV420_UINT8_SEMIPLANAR` |
67 | `::DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_R_UINT8` |
68 | `::DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` |
69 | `::DW_IMAGE_FORMAT_YUV420_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR` |
70 | `::DW_IMAGE_FORMAT_YUV_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_RGBA_UINT8` |
71 | `::DW_IMAGE_FORMAT_YUV_UINT8_PLANAR` | `::DW_IMAGE_FORMAT_RGB_UINT8_PLANAR` |
72 | `::DW_IMAGE_FORMAT_YUV_UINT16_PLANAR` | `::DW_IMAGE_FORMAT_RGBA_FLOAT16` |
73 | `::DW_IMAGE_FORMAT_YUV_UINT16_PLANAR` | `::DW_IMAGE_FORMAT_RGB_FLOAT16_PLANAR` |
77 - @ref imagetransformation_usecase1
81 - @ref imagetransformation_group