Program Listing for File ImageFormat.h
↰ Return to documentation for file (nvcv_types/include/nvcv/ImageFormat.h
)
/*
* SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef NVCV_FORMAT_IMAGEFORMAT_H
#define NVCV_FORMAT_IMAGEFORMAT_H
#include "ColorSpec.h"
#include "DataLayout.h"
#include "DataType.h"
#include <assert.h>
#ifdef __cplusplus
extern "C"
{
#endif
typedef uint64_t NVCVImageFormat;
// clang-format off
#define NVCV_IMAGE_FORMAT_NONE ((NVCVImageFormat)0)
#define NVCV_IMAGE_FORMAT_U8 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, UNSIGNED, X000, ASSOCIATED, X8)
#define NVCV_IMAGE_FORMAT_U8_BL NVCV_DETAIL_MAKE_NONCOLOR_FMT1(BL, UNSIGNED, X000, ASSOCIATED, X8)
#define NVCV_IMAGE_FORMAT_S8 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, SIGNED, X000, ASSOCIATED, X8)
#define NVCV_IMAGE_FORMAT_U16 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, UNSIGNED, X000, ASSOCIATED, X16)
#define NVCV_IMAGE_FORMAT_U32 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, UNSIGNED, X000, ASSOCIATED, X32)
#define NVCV_IMAGE_FORMAT_S32 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, SIGNED, X000, ASSOCIATED, X32)
#define NVCV_IMAGE_FORMAT_S16 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, SIGNED, X000, ASSOCIATED, X16)
#define NVCV_IMAGE_FORMAT_S16_BL NVCV_DETAIL_MAKE_NONCOLOR_FMT1(BL, SIGNED, X000, ASSOCIATED, X16)
#define NVCV_IMAGE_FORMAT_2S16 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, SIGNED, XY00, ASSOCIATED, X16_Y16)
#define NVCV_IMAGE_FORMAT_2S16_BL NVCV_DETAIL_MAKE_NONCOLOR_FMT1(BL, SIGNED, XY00, ASSOCIATED, X16_Y16)
#define NVCV_IMAGE_FORMAT_F16 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, FLOAT, X000, ASSOCIATED, X16)
#define NVCV_IMAGE_FORMAT_F32 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, FLOAT, X000, ASSOCIATED, X32)
#define NVCV_IMAGE_FORMAT_F64 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, FLOAT, X000, ASSOCIATED, X64)
#define NVCV_IMAGE_FORMAT_2F16 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, FLOAT, XY00, ASSOCIATED, X16_Y16)
#define NVCV_IMAGE_FORMAT_2F32 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, FLOAT, XY00, ASSOCIATED, X32_Y32)
#define NVCV_IMAGE_FORMAT_C64 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, COMPLEX, X000, ASSOCIATED, X64)
#define NVCV_IMAGE_FORMAT_2C64 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, COMPLEX, XY00, ASSOCIATED, X64_Y64)
#define NVCV_IMAGE_FORMAT_C128 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, COMPLEX, X000, ASSOCIATED, X128)
#define NVCV_IMAGE_FORMAT_2C128 NVCV_DETAIL_MAKE_NONCOLOR_FMT1(PL, COMPLEX, XY00, ASSOCIATED, X128_Y128)
#define NVCV_IMAGE_FORMAT_Y8 NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601, NONE, PL, UNSIGNED, X000, ASSOCIATED, X8)
#define NVCV_IMAGE_FORMAT_Y8_BL NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601, NONE, BL, UNSIGNED, X000, ASSOCIATED, X8)
#define NVCV_IMAGE_FORMAT_Y8_ER NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601_ER, NONE, PL, UNSIGNED, X000, ASSOCIATED, X8)
#define NVCV_IMAGE_FORMAT_Y8_ER_BL NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601_ER, NONE, BL, UNSIGNED, X000, ASSOCIATED, X8)
#define NVCV_IMAGE_FORMAT_Y16 NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601, NONE, PL, UNSIGNED, X000, ASSOCIATED, X16)
#define NVCV_IMAGE_FORMAT_Y16_BL NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601, NONE, BL, UNSIGNED, X000, ASSOCIATED, X16)
#define NVCV_IMAGE_FORMAT_Y16_ER NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601_ER, NONE, PL, UNSIGNED, X000, ASSOCIATED, X16)
#define NVCV_IMAGE_FORMAT_Y16_ER_BL NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601_ER, NONE, BL, UNSIGNED, X000, ASSOCIATED, X16)
#define NVCV_IMAGE_FORMAT_NV12 NVCV_DETAIL_MAKE_YCbCr_FMT2(BT601, 420, PL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8_Y8)
#define NVCV_IMAGE_FORMAT_NV12_BL NVCV_DETAIL_MAKE_YCbCr_FMT2(BT601, 420, BL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8_Y8)
#define NVCV_IMAGE_FORMAT_NV12_ER NVCV_DETAIL_MAKE_YCbCr_FMT2(BT601_ER, 420, PL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8_Y8)
#define NVCV_IMAGE_FORMAT_NV12_ER_BL NVCV_DETAIL_MAKE_YCbCr_FMT2(BT601_ER, 420, BL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8_Y8)
#define NVCV_IMAGE_FORMAT_NV21 NVCV_DETAIL_MAKE_YCbCr_FMT2(BT601_ER, 420, PL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8_Y8)
#define NVCV_IMAGE_FORMAT_NV21_ER NVCV_DETAIL_MAKE_YCbCr_FMT2(BT601_ER, 420, PL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8_Y8)
#define NVCV_IMAGE_FORMAT_NV24 NVCV_DETAIL_MAKE_YCbCr_FMT2(BT601, 444, PL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8_Y8)
#define NVCV_IMAGE_FORMAT_NV24_BL NVCV_DETAIL_MAKE_YCbCr_FMT2(BT601, 444, BL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8_Y8)
#define NVCV_IMAGE_FORMAT_NV24_ER NVCV_DETAIL_MAKE_YCbCr_FMT2(BT601_ER, 444, PL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8_Y8)
#define NVCV_IMAGE_FORMAT_NV24_ER_BL NVCV_DETAIL_MAKE_YCbCr_FMT2(BT601_ER, 444, BL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8_Y8)
#define NVCV_IMAGE_FORMAT_UYVY NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601, 422, PL, UNSIGNED, XYZ1, ASSOCIATED, Y8_X8__Z8_X8)
#define NVCV_IMAGE_FORMAT_UYVY_BL NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601, 422, BL, UNSIGNED, XYZ1, ASSOCIATED, Y8_X8__Z8_X8)
#define NVCV_IMAGE_FORMAT_UYVY_ER NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601_ER, 422, PL, UNSIGNED, XYZ1, ASSOCIATED, Y8_X8__Z8_X8)
#define NVCV_IMAGE_FORMAT_UYVY_ER_BL NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601_ER, 422, BL, UNSIGNED, XYZ1, ASSOCIATED, Y8_X8__Z8_X8)
#define NVCV_IMAGE_FORMAT_YUYV NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601, 422, PL, UNSIGNED, XYZ1, ASSOCIATED, X8_Y8__X8_Z8)
#define NVCV_IMAGE_FORMAT_YUYV_BL NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601, 422, BL, UNSIGNED, XYZ1, ASSOCIATED, X8_Y8__X8_Z8)
#define NVCV_IMAGE_FORMAT_YUYV_ER NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601_ER, 422, PL, UNSIGNED, XYZ1, ASSOCIATED, X8_Y8__X8_Z8)
#define NVCV_IMAGE_FORMAT_YUYV_ER_BL NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601_ER, 422, BL, UNSIGNED, XYZ1, ASSOCIATED, X8_Y8__X8_Z8)
#define NVCV_IMAGE_FORMAT_YUV8 NVCV_DETAIL_MAKE_YCbCr_FMT1(BT601, NONE, PL, UNSIGNED, XYZ1, ASSOCIATED, X8_Y8_Z8)
#define NVCV_IMAGE_FORMAT_RGB8 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, UNSIGNED, XYZ1, ASSOCIATED, X8_Y8_Z8)
#define NVCV_IMAGE_FORMAT_BGR8 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, UNSIGNED, ZYX1, ASSOCIATED, X8_Y8_Z8)
#define NVCV_IMAGE_FORMAT_RGBA8 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, UNSIGNED, XYZW, ASSOCIATED, X8_Y8_Z8_W8)
#define NVCV_IMAGE_FORMAT_BGRA8 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, UNSIGNED, ZYXW, ASSOCIATED, X8_Y8_Z8_W8)
#define NVCV_IMAGE_FORMAT_RGB8p NVCV_DETAIL_MAKE_COLOR_FMT3(RGB, UNDEFINED, PL, UNSIGNED, XYZ0, ASSOCIATED, X8, X8, X8)
#define NVCV_IMAGE_FORMAT_BGR8p NVCV_DETAIL_MAKE_COLOR_FMT3(RGB, UNDEFINED, PL, UNSIGNED, ZYX1, ASSOCIATED, X8, X8, X8)
#define NVCV_IMAGE_FORMAT_RGBA8p NVCV_DETAIL_MAKE_COLOR_FMT4(RGB, UNDEFINED, PL, UNSIGNED, XYZW, ASSOCIATED, X8, X8, X8, X8)
#define NVCV_IMAGE_FORMAT_BGRA8p NVCV_DETAIL_MAKE_COLOR_FMT4(RGB, UNDEFINED, PL, UNSIGNED, ZYXW, ASSOCIATED, X8, X8, X8, X8)
#define NVCV_IMAGE_FORMAT_RGBf16 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, FLOAT, XYZ1, ASSOCIATED, X16_Y16_Z16)
#define NVCV_IMAGE_FORMAT_BGRf16 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, FLOAT, ZYX1, ASSOCIATED, X16_Y16_Z16)
#define NVCV_IMAGE_FORMAT_RGBAf16 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, FLOAT, XYZW, ASSOCIATED, X16_Y16_Z16_W16)
#define NVCV_IMAGE_FORMAT_BGRAf16 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, FLOAT, ZYXW, ASSOCIATED, X16_Y16_Z16_W16)
#define NVCV_IMAGE_FORMAT_RGBf16p NVCV_DETAIL_MAKE_COLOR_FMT3(RGB, UNDEFINED, PL, FLOAT, XYZ0, ASSOCIATED, X16, X16, X16)
#define NVCV_IMAGE_FORMAT_BGRf16p NVCV_DETAIL_MAKE_COLOR_FMT3(RGB, UNDEFINED, PL, FLOAT, ZYX1, ASSOCIATED, X16, X16, X16)
#define NVCV_IMAGE_FORMAT_RGBAf16p NVCV_DETAIL_MAKE_COLOR_FMT4(RGB, UNDEFINED, PL, FLOAT, XYZW, ASSOCIATED, X16, X16, X16, X16)
#define NVCV_IMAGE_FORMAT_BGRAf16p NVCV_DETAIL_MAKE_COLOR_FMT4(RGB, UNDEFINED, PL, FLOAT, ZYXW, ASSOCIATED, X16, X16, X16, X16)
#define NVCV_IMAGE_FORMAT_RGBf32 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, FLOAT, XYZ1, ASSOCIATED, X32_Y32_Z32)
#define NVCV_IMAGE_FORMAT_BGRf32 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, FLOAT, ZYX1, ASSOCIATED, X32_Y32_Z32)
#define NVCV_IMAGE_FORMAT_RGBAf32 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, FLOAT, XYZW, ASSOCIATED, X32_Y32_Z32_W32)
#define NVCV_IMAGE_FORMAT_BGRAf32 NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, FLOAT, ZYXW, ASSOCIATED, X32_Y32_Z32_W32)
#define NVCV_IMAGE_FORMAT_RGBf32p NVCV_DETAIL_MAKE_COLOR_FMT3(RGB, UNDEFINED, PL, FLOAT, XYZ0, ASSOCIATED, X32, X32, X32)
#define NVCV_IMAGE_FORMAT_BGRf32p NVCV_DETAIL_MAKE_COLOR_FMT3(RGB, UNDEFINED, PL, FLOAT, ZYX1, ASSOCIATED, X32, X32, X32)
#define NVCV_IMAGE_FORMAT_RGBAf32p NVCV_DETAIL_MAKE_COLOR_FMT4(RGB, UNDEFINED, PL, FLOAT, XYZW, ASSOCIATED, X32, X32, X32, X32)
#define NVCV_IMAGE_FORMAT_BGRAf32p NVCV_DETAIL_MAKE_COLOR_FMT4(RGB, UNDEFINED, PL, FLOAT, ZYXW, ASSOCIATED, X32, X32, X32, X32)
#define NVCV_IMAGE_FORMAT_HSV8 NVCV_DETAIL_MAKE_COLOR_FMT1(HSV, UNDEFINED, PL, UNSIGNED, XYZ0, ASSOCIATED, X8_Y8_Z8)
#define NVCV_IMAGE_FORMAT_CMYK8 NVCV_DETAIL_MAKE_COLOR_FMT1(CMYK, UNDEFINED, PL, UNSIGNED, XYZW, ASSOCIATED, X8_Y8_Z8_W8)
#define NVCV_IMAGE_FORMAT_YCCK8 NVCV_DETAIL_MAKE_COLOR_FMT1(YCCK, UNDEFINED, PL, UNSIGNED, XYZW, ASSOCIATED, X8_Y8_Z8_W8)
#define NVCV_IMAGE_FORMAT_RGBA8_UNASSOCIATED_ALPHA NVCV_DETAIL_MAKE_COLOR_FMT1(RGB, UNDEFINED, PL, UNSIGNED, XYZW, UNASSOCIATED, X8_Y8_Z8_W8)
#define NVCV_IMAGE_FORMAT_RGB8_1U_U8 NVCV_DETAIL_MAKE_COLOR_EXTRA_CHANNELS_FMT1(RGB, UNDEFINED, PL, UNSIGNED, XYZ1, ASSOCIATED, 1, 8, UNSIGNED, U, X8_Y8_Z8)
#define NVCV_IMAGE_FORMAT_RGB8_7U_U8 NVCV_DETAIL_MAKE_COLOR_EXTRA_CHANNELS_FMT1(RGB, UNDEFINED, PL, UNSIGNED, XYZ1, ASSOCIATED, 7, 8, UNSIGNED, U, X8_Y8_Z8)
#define NVCV_IMAGE_FORMAT_RGBA8_3U_U16 NVCV_DETAIL_MAKE_COLOR_EXTRA_CHANNELS_FMT1(RGB, UNDEFINED, PL, UNSIGNED, XYZW, ASSOCIATED, 3, 16, UNSIGNED, U, X8_Y8_Z8_W8)
#define NVCV_IMAGE_FORMAT_RGBA8_3POS3D_U32 NVCV_DETAIL_MAKE_COLOR_EXTRA_CHANNELS_FMT1(RGB, UNDEFINED, PL, UNSIGNED, XYZW, ASSOCIATED, 3, 32, UNSIGNED, POS3D, X8_Y8_Z8)
#define NVCV_IMAGE_FORMAT_RGB8_3D_F32 NVCV_DETAIL_MAKE_COLOR_EXTRA_CHANNELS_FMT1(RGB, UNDEFINED, PL, UNSIGNED, XYZ1, ASSOCIATED, 3, 32, FLOAT, D, X8_Y8_Z8)
// clang-format on
#ifdef DOXYGEN_SHOULD_SKIP_THIS
// WAR sphinx is acting up on this
//# define NVCV_MAKE_YCbCr_IMAGE_FORMAT(colorModel, colorSpec, chromaSubsamp, memLayout, dataKind, swizzle, numPlanes, packing0, packing1, packing2, packing3)
#else
# define NVCV_MAKE_YCbCr_IMAGE_FORMAT (NVCVImageFormat) NVCV_DETAIL_MAKE_YCbCr_FORMAT
# define NVCV_MAKE_YCbCr_IMAGE_EXTRA_CHANNELS_FORMAT (NVCVImageFormat) NVCV_DETAIL_MAKE_YCbCr_EXTRA_CHANNELS_FORMAT
#endif
#ifdef DOXYGEN_SHOULD_SKIP_THIS
// WAR sphinx is acting up on this
//# define NVCV_MAKE_COLOR_IMAGE_FORMAT(colorModel, colorSpec, memLayout, dataKind, swizzle, numPlanes, packing0, packing1, packing2, packing3)
#else
# define NVCV_MAKE_COLOR_IMAGE_FORMAT (NVCVImageFormat) NVCV_DETAIL_MAKE_COLOR_FORMAT
# define NVCV_MAKE_COLOR_IMAGE_EXTRA_CHANNELS_FORMAT (NVCVImageFormat) NVCV_DETAIL_MAKE_COLOR_EXTRA_CHANNELS_FORMAT
#endif
#ifdef DOXYGEN_SHOULD_SKIP_THIS
// WAR sphinx is acting up on this
//# define NVCV_MAKE_NONCOLOR_IMAGE_FORMAT(memLayout, dataKind, swizzle, numPlanes, packing0, packing1, packing2, packing3)
#else
# define NVCV_MAKE_NONCOLOR_IMAGE_FORMAT (NVCVImageFormat) NVCV_DETAIL_MAKE_NONCOLOR_FORMAT
# define NVCV_MAKE_NONCOLOR_IMAGE_EXTRA_CHANNELS_FORMAT \
(NVCVImageFormat) NVCV_DETAIL_MAKE_NONCOLOR_EXTRA_CHANNELS_FORMAT
#endif
#ifdef DOXYGEN_SHOULD_SKIP_THIS
// WAR sphinx is acting up on this
//# define NVCV_MAKE_RAW_IMAGE_FORMAT(rawPattern, memLayout, dataKind, numPlanes, swizzle, packing)
#else
# define NVCV_MAKE_RAW_IMAGE_FORMAT (NVCVImageFormat) NVCV_DETAIL_MAKE_RAW_FORMAT
# define NVCV_MAKE_RAW_IMAGE_EXTRA_CHANNELS_FORMAT (NVCVImageFormat) NVCV_DETAIL_MAKE_RAW_EXTRA_CHANNELS_FORMAT
#endif
NVCV_PUBLIC NVCVStatus nvcvMakeYCbCrImageFormat(NVCVImageFormat *outFormat, NVCVColorSpec colorSpec,
NVCVChromaSubsampling chromaSub, NVCVMemLayout memLayout,
NVCVDataKind dataKind, NVCVSwizzle swizzle, NVCVPacking packing0,
NVCVPacking packing1, NVCVPacking packing2, NVCVPacking packing3,
NVCVAlphaType alphaType, const NVCVExtraChannelInfo *exChannelInfo);
NVCV_PUBLIC NVCVStatus nvcvMakeColorImageFormat(NVCVImageFormat *outFormat, NVCVColorModel colorModel,
NVCVColorSpec colorSpec, NVCVMemLayout memLayout, NVCVDataKind dataKind,
NVCVSwizzle swizzle, NVCVPacking packing0, NVCVPacking packing1,
NVCVPacking packing2, NVCVPacking packing3, NVCVAlphaType alphaType,
const NVCVExtraChannelInfo *exChannelInfo);
NVCV_PUBLIC NVCVStatus nvcvMakeNonColorImageFormat(NVCVImageFormat *outFormat, NVCVMemLayout memLayout,
NVCVDataKind dataKind, NVCVSwizzle swizzle, NVCVPacking packing0,
NVCVPacking packing1, NVCVPacking packing2, NVCVPacking packing3,
NVCVAlphaType alphaType, const NVCVExtraChannelInfo *exChannelInfo);
NVCV_PUBLIC NVCVStatus nvcvMakeRawImageFormat(NVCVImageFormat *outFormat, NVCVRawPattern rawPattern,
NVCVMemLayout memLayout, NVCVDataKind dataKind, NVCVSwizzle swizzle,
NVCVPacking packing0, NVCVPacking packing1, NVCVPacking packing2,
NVCVPacking packing3, NVCVAlphaType alphaType,
const NVCVExtraChannelInfo *exChannelInfo);
NVCV_PUBLIC NVCVStatus nvcvMakeImageFormatFromFourCC(NVCVImageFormat *outFormat, uint32_t fourcc,
NVCVColorSpec colorSpec, NVCVMemLayout memLayout);
NVCV_PUBLIC NVCVStatus nvcvImageFormatToFourCC(NVCVImageFormat fmt, uint32_t *outFourCC);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetPlanePacking(NVCVImageFormat fmt, int32_t plane, NVCVPacking *outPacking);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetPlaneSize(NVCVImageFormat fmt, int32_t plane, int32_t imgWidth,
int32_t imgHeight, int32_t *outPlaneWidth, int32_t *outPlaneHeight);
NVCV_PUBLIC NVCVStatus nvcvImageFormatSetSwizzleAndPacking(NVCVImageFormat *fmt, NVCVSwizzle swizzle,
NVCVPacking packing0, NVCVPacking packing1,
NVCVPacking packing2, NVCVPacking packing3);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetPlaneBitsPerPixel(NVCVImageFormat fmt, int32_t plane, int32_t *outBPP);
NVCV_PUBLIC NVCVStatus nvcvImageFormatSetDataKind(NVCVImageFormat *fmt, NVCVDataKind dataKind);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetDataKind(NVCVImageFormat fmt, NVCVDataKind *outDataKind);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetSwizzle(NVCVImageFormat fmt, NVCVSwizzle *outSwizzle);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetPlaneSwizzle(NVCVImageFormat fmt, int32_t plane, NVCVSwizzle *outPlaneSwizzle);
NVCV_PUBLIC NVCVStatus nvcvImageFormatSetMemLayout(NVCVImageFormat *fmt, NVCVMemLayout memLayout);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetMemLayout(NVCVImageFormat fmt, NVCVMemLayout *outMemLayout);
NVCV_PUBLIC NVCVStatus nvcvImageFormatSetColorSpec(NVCVImageFormat *fmt, NVCVColorSpec colorSpec);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetColorSpec(NVCVImageFormat fmt, NVCVColorSpec *outColorSpec);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetColorModel(NVCVImageFormat fmt, NVCVColorModel *outColorModel);
NVCV_PUBLIC NVCVStatus nvcvImageFormatSetChromaSubsampling(NVCVImageFormat *fmt, NVCVChromaSubsampling css);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetChromaSubsampling(NVCVImageFormat fmt, NVCVChromaSubsampling *outCSS);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetPlaneNumChannels(NVCVImageFormat fmt, int32_t plane,
int32_t *outPlaneNumChannels);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetNumPlanes(NVCVImageFormat fmt, int32_t *outNumPlanes);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetNumChannels(NVCVImageFormat fmt, int32_t *outNumChannels);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetBitsPerChannel(NVCVImageFormat fmt, int32_t *bits);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetPlaneDataType(NVCVImageFormat fmt, int32_t plane, NVCVDataType *outPixType);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetPlaneFormat(NVCVImageFormat fmt, int32_t plane, NVCVImageFormat *outFormat);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetPlanePixelStrideBytes(NVCVImageFormat fmt, int32_t plane,
int32_t *outStrideBytes);
NVCV_PUBLIC NVCVStatus nvcvMakeImageFormatFromPlanes(NVCVImageFormat *outFormat, NVCVImageFormat plane0,
NVCVImageFormat plane1, NVCVImageFormat plane2,
NVCVImageFormat plane3);
NVCV_PUBLIC const char *nvcvImageFormatGetName(NVCVImageFormat fmt);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetRawPattern(NVCVImageFormat fmt, NVCVRawPattern *outRawPattern);
NVCV_PUBLIC NVCVStatus nvcvImageFormatSetRawPattern(NVCVImageFormat *fmt, NVCVRawPattern rawPattern);
NVCV_PUBLIC NVCVStatus nvcvImageFormatHasSameDataLayout(NVCVImageFormat a, NVCVImageFormat b, int8_t *outBool);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetAlphaType(NVCVImageFormat fmt, NVCVAlphaType *outAlphaChannelType);
NVCV_PUBLIC NVCVStatus nvcvImageFormatSetAlphaType(NVCVImageFormat *fmt, NVCVAlphaType alphaChannelType);
NVCV_PUBLIC NVCVStatus nvcvImageFormatGetExtraChannelInfo(NVCVImageFormat fmt, NVCVExtraChannelInfo *outExChannelInfo);
NVCV_PUBLIC NVCVStatus nvcvImageFormatSetExtraChannelInfo(NVCVImageFormat *fmt,
const NVCVExtraChannelInfo *exChannelInfo);
#ifdef __cplusplus
}
#endif
#endif /* NVCV_FORMAT_IMAGEFORMAT_H */