8#ifndef META_OCEAN_CV_FRAME_CONVERTER_Y_U_V_12_H
9#define META_OCEAN_CV_FRAME_CONVERTER_Y_U_V_12_H
55 static inline void convertY_U_V12ToY_U_V12(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* yTarget, uint8_t* uTarget, uint8_t* vTarget,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int yTargetPaddingElements,
const unsigned int uTargetPaddingElements,
const unsigned int vTargetPaddingElements,
Worker* worker =
nullptr);
72 static inline void convertY_U_V12LimitedRangeToY8LimitedRange(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
89 static inline void convertY_U_V12LimitedRangeToY8FullRange(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
106 static inline void convertY_U_V12FullRangeToY8FullRange(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
123 static inline void convertY_U_V12FullRangeToY8LimitedRange(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
144 static inline void convertY_U_V12LimitedRangeToBGR24FullRange(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
165 static inline void convertY_U_V12FullRangeToBGR24FullRangePrecision6Bit(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
187 static inline void convertY_U_V12LimitedRangeToBGRA32FullRangePrecision6Bit(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
const uint8_t alphaValue = 0xFF,
Worker* worker =
nullptr);
208 static inline void convertY_U_V12LimitedRangeToRGB24FullRange(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
229 static inline void convertY_U_V12LimitedRangeToRGB24FullRangePrecision6Bit(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
250 static inline void convertY_U_V12FullRangeToRGB24FullRangePrecision6Bit(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
272 static inline void convertY_U_V12LimitedRangeToRGBA32FullRangePrecision6Bit(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
const uint8_t alphaValue = 0xFF,
Worker* worker =
nullptr);
289 static inline void convertY_U_V12ToYUV24(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
306 static inline void convertY_U_V12ToYVU24(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker =
nullptr);
327 static inline void convertY_U_V12ToY_UV12(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* yTarget, uint8_t* uvTarget,
const unsigned int width,
const unsigned int height,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int yTargetPaddingElements,
const unsigned int uvTargetPaddingElements,
const unsigned int ySourcePixelStride = 1u,
const unsigned int uSourcePixelStride = 1u,
const unsigned int vSourcePixelStride = 1u,
Worker* worker =
nullptr);
373 static void mapY_U_V12ToY_UV12(
const void** sources,
void** targets,
const unsigned int multipleRowIndex,
const unsigned int width,
const unsigned int height,
const ConversionFlag conversionFlag,
const void* options);
376inline void FrameConverterY_U_V12::convertY_U_V12ToY_U_V12(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* yTarget, uint8_t* uTarget, uint8_t* vTarget,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int yTargetPaddingElements,
const unsigned int uTargetPaddingElements,
const unsigned int vTargetPaddingElements,
Worker* worker)
378 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr);
379 ocean_assert(yTarget !=
nullptr && uTarget !=
nullptr && vTarget !=
nullptr);
380 ocean_assert(width >= 2u && height >= 2u);
381 ocean_assert(width % 2u == 0u && height % 2u == 0u);
383 const unsigned int width_2 = width / 2u;
384 const unsigned int height_2 = height / 2u;
386 FrameChannels::transformGeneric<uint8_t, 1u>(ySource, yTarget, width, height, flag, ySourcePaddingElements, yTargetPaddingElements, worker);
387 FrameChannels::transformGeneric<uint8_t, 1u>(uSource, uTarget, width_2, height_2, flag, uSourcePaddingElements, uTargetPaddingElements, worker);
388 FrameChannels::transformGeneric<uint8_t, 1u>(vSource, vTarget, width_2, height_2, flag, vSourcePaddingElements, vTargetPaddingElements, worker);
391inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToY8LimitedRange(
const uint8_t* ySource,
const uint8_t* ,
const uint8_t* , uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int ,
const unsigned int ,
const unsigned int targetPaddingElements,
Worker* worker)
393 ocean_assert(ySource !=
nullptr && target !=
nullptr);
394 ocean_assert(width >= 1u && height >= 1u);
396 FrameChannels::transformGeneric<uint8_t, 1u>(ySource, target, width, height, flag, ySourcePaddingElements, targetPaddingElements, worker);
399inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToY8FullRange(
const uint8_t* ySource,
const uint8_t* ,
const uint8_t* , uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int ,
const unsigned int ,
const unsigned int targetPaddingElements,
Worker* worker)
401 ocean_assert(ySource !=
nullptr && target !=
nullptr);
402 ocean_assert(width >= 1u && height >= 1u);
407inline void FrameConverterY_U_V12::convertY_U_V12FullRangeToY8FullRange(
const uint8_t* ySource,
const uint8_t* ,
const uint8_t* , uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int ,
const unsigned int ,
const unsigned int targetPaddingElements,
Worker* worker)
409 ocean_assert(ySource !=
nullptr && target !=
nullptr);
410 ocean_assert(width >= 1u && height >= 1u);
412 FrameChannels::transformGeneric<uint8_t, 1u>(ySource, target, width, height, flag, ySourcePaddingElements, targetPaddingElements, worker);
415inline void FrameConverterY_U_V12::convertY_U_V12FullRangeToY8LimitedRange(
const uint8_t* ySource,
const uint8_t* ,
const uint8_t* , uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int ,
const unsigned int ,
const unsigned int targetPaddingElements,
Worker* worker)
417 ocean_assert(ySource !=
nullptr && target !=
nullptr);
418 ocean_assert(width >= 1u && height >= 1u);
423inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToBGR24FullRange(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker)
425 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
427 ocean_assert(width >= 2u && width % 2u == 0u);
428 ocean_assert(height >= 2u && height % 2u == 0u);
430 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
447 const int options[4 + 12] =
450 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
453 1192, 1192, 1192, 2066, -400, 0, 0, -833, 1634,
459 const void* sources[3] =
469inline void FrameConverterY_U_V12::convertY_U_V12FullRangeToBGR24FullRangePrecision6Bit(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker)
471 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
473 ocean_assert(width >= 2u && width % 2u == 0u);
474 ocean_assert(height >= 2u && height % 2u == 0u);
476 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
493 const int options[4 + 12] =
496 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
499 64, 64, 64, 113, -22, 0, 0, -46, 90,
505 const void* sources[3] =
515inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToBGRA32FullRangePrecision6Bit(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
const uint8_t alphaValue,
Worker* worker)
517 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
519 ocean_assert(width >= 2u && width % 2u == 0u);
520 ocean_assert(height >= 2u && height % 2u == 0u);
522 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
532 const int options[4 + 12 + 1] =
535 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
538 75, 75, 75, 128, -25, 0, 0, -52, 102,
547 const void* sources[3] =
557inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToRGB24FullRange(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker)
559 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
561 ocean_assert(width >= 2u && width % 2u == 0u);
562 ocean_assert(height >= 2u && height % 2u == 0u);
564 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
581 const int options[4 + 12] =
584 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
587 1192, 1192, 1192, 0, -400, 2066, 1634, -833, 0,
593 const void* sources[3] =
603inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToRGB24FullRangePrecision6Bit(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker)
605 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
607 ocean_assert(width >= 2u && width % 2u == 0u);
608 ocean_assert(height >= 2u && height % 2u == 0u);
610 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
627 const int options[4 + 12] =
630 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
633 75, 75, 75, 0, -25, 128, 102, -52, 0,
639 const void* sources[3] =
649inline void FrameConverterY_U_V12::convertY_U_V12FullRangeToRGB24FullRangePrecision6Bit(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker)
651 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
653 ocean_assert(width >= 2u && width % 2u == 0u);
654 ocean_assert(height >= 2u && height % 2u == 0u);
656 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
673 const int options[4 + 12] =
676 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
679 64, 64, 64, 0, -22, 113, 90, -46, 0,
685 const void* sources[3] =
695inline void FrameConverterY_U_V12::convertY_U_V12LimitedRangeToRGBA32FullRangePrecision6Bit(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
const uint8_t alphaValue,
Worker* worker)
697 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
699 ocean_assert(width >= 2u && width % 2u == 0u);
700 ocean_assert(height >= 2u && height % 2u == 0u);
702 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
714 const int options[4 + 12 + 1] =
717 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
720 75, 75, 75, 0, -25, 128, 102, -52, 0,
729 const void* sources[3] =
740 const int options[4 + 1] =
743 int(ySourcePaddingElements), int(uSourcePaddingElements), int(vSourcePaddingElements), int(targetPaddingElements),
749 const void* sources[3] =
761inline void FrameConverterY_U_V12::convertY_U_V12ToYUV24(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker)
763 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
765 ocean_assert(width >= 2u && width % 2u == 0u);
766 ocean_assert(height >= 2u && height % 2u == 0u);
768 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
773 const unsigned int options[4] = {ySourcePaddingElements, uSourcePaddingElements, vSourcePaddingElements, targetPaddingElements};
775 const void* sources[3] =
782 FrameConverter::convertArbitraryPixelFormat(sources, (
void**)(&target), width, height, flag, 2u, FrameConverter::mapTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel<0u, 1u, 2u>, options, worker);
785inline void FrameConverterY_U_V12::convertY_U_V12ToYVU24(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* target,
const unsigned int width,
const unsigned int height,
const ConversionFlag flag,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int targetPaddingElements,
Worker* worker)
787 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr && target !=
nullptr);
789 ocean_assert(width >= 2u && width % 2u == 0u);
790 ocean_assert(height >= 2u && height % 2u == 0u);
792 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
797 const unsigned int options[4] = {ySourcePaddingElements, uSourcePaddingElements, vSourcePaddingElements, targetPaddingElements};
799 const void* sources[3] =
806 FrameConverter::convertArbitraryPixelFormat(sources, (
void**)(&target), width, height, flag, 2u, FrameConverter::mapTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel<0u, 2u, 1u>, options, worker);
809inline void FrameConverterY_U_V12::convertY_U_V12ToY_UV12(
const uint8_t* ySource,
const uint8_t* uSource,
const uint8_t* vSource, uint8_t* yTarget, uint8_t* uvTarget,
const unsigned int width,
const unsigned int height,
const unsigned int ySourcePaddingElements,
const unsigned int uSourcePaddingElements,
const unsigned int vSourcePaddingElements,
const unsigned int yTargetPaddingElements,
const unsigned int uvTargetPaddingElements,
const unsigned int ySourcePixelStride,
const unsigned int uSourcePixelStride,
const unsigned int vSourcePixelStride,
Worker* worker)
811 ocean_assert(ySource !=
nullptr && uSource !=
nullptr && vSource !=
nullptr);
812 ocean_assert(yTarget !=
nullptr && uvTarget !=
nullptr);
814 if (width < 2u || height < 2u || width % 2u != 0u || height % 2u != 0u)
816 ocean_assert(
false &&
"Invalid parameters!");
820 const uint32_t options[8] = {ySourcePaddingElements, uSourcePaddingElements, vSourcePaddingElements, yTargetPaddingElements, uvTargetPaddingElements, ySourcePixelStride, uSourcePixelStride, vSourcePixelStride};
822 const void* sources[3] =
This is the base class for all frame converter classes.
Definition FrameConverter.h:32
ConversionFlag
Definition of individual conversion flags.
Definition FrameConverter.h:39
@ CONVERT_NORMAL
Normal conversion, neither flips nor mirrors the image.
Definition FrameConverter.h:49
static void convertOneRow_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane4Channels_8BitPerChannel_Precision6Bit(const void **sources, void **targets, const unsigned int multipleRowIndex, const unsigned int width, const unsigned int height, const ConversionFlag conversionFlag, const void *options)
Converts one row of an image with e.g., a Y_U_V12 pixel format to one row of an image with e....
static void convertTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel_Precision10Bit(const void **sources, void **targets, const unsigned int multipleRowIndex, const unsigned int width, const unsigned int height, const ConversionFlag conversionFlag, const void *options)
Converts two rows of an image with e.g., a Y_U_V12 pixel format to two rows of an image with e....
static void convertArbitraryPixelFormat(const void **sources, void **targets, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int multipleRowsPerIteration, const MultipleRowsConversionFunction multipleRowsConversionFunction, const void *options, Worker *worker)
Converts a frame with arbitrary pixel format (e.g., Y_UV12, Y_VU12, YUYV16, ...) to a frame with arbi...
Definition FrameConverter.h:3506
static void convertTwoRows_1Plane1ChannelAnd2Planes1ChannelDownsampled2x2_To_1Plane3Channels_8BitPerChannel_Precision6Bit(const void **sources, void **targets, const unsigned int multipleRowIndex, const unsigned int width, const unsigned int height, const ConversionFlag conversionFlag, const void *options)
Converts two rows of an image with e.g., a Y_U_V12 pixel format to two rows of an image with e....
static void convertY8FullRangeToY8LimitedRange(const uint8_t *source, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int sourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y8 full range frame [0, 255] to a Y8 limited range frame [16, 235].
Definition FrameConverterY8.h:320
static void convertY8LimitedRangeToY8FullRange(const uint8_t *source, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int sourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y8 limited range frame [16, 235] to a Y8 full range frame [0, 255].
Definition FrameConverterY8.h:288
This class provides functions to convert frames with Y_U_V12 pixel format.
Definition FrameConverterY_U_V12.h:33
static void convertY_U_V12LimitedRangeToRGB24FullRangePrecision6Bit(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a 24 bit RGB frame into a second image buffer (with 6 bit precision).
Definition FrameConverterY_U_V12.h:603
static void convertY_U_V12LimitedRangeToBGR24FullRange(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a 24 bit BGR frame into a second image buffer using BT....
Definition FrameConverterY_U_V12.h:423
static void convertY_U_V12ToYUV24(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a 24 bit YUV frame into a second image buffer.
Definition FrameConverterY_U_V12.h:761
static void convertY_U_V12FullRangeToRGB24FullRangePrecision6Bit(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a 24 bit RGB frame into a second image buffer.
Definition FrameConverterY_U_V12.h:649
static void convertY_U_V12LimitedRangeToY8LimitedRange(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12_LIMITED_RANGE frame to a Y8_LIMITED_RANGE frame into a second image buffer.
Definition FrameConverterY_U_V12.h:391
static void convertY_U_V12LimitedRangeToRGBA32FullRangePrecision6Bit(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, const uint8_t alphaValue=0xFF, Worker *worker=nullptr)
Converts a Y_U_V12 frame to an 32 bit RGBA frame into a second image buffer.
Definition FrameConverterY_U_V12.h:695
static void convertOneRowY_U_V12ToRGBA32Precision6Bit(const void **sources, void **targets, const unsigned int multipleRowIndex, const unsigned int width, const unsigned int height, const ConversionFlag conversionFlag, const void *options)
Converts one row of an image with Y_U_V12 pixel format to one row of an image with RGBA32 pixel forma...
static void convertY_U_V12ToYVU24(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a 24 bit YVU frame into a second image buffer.
Definition FrameConverterY_U_V12.h:785
static void convertY_U_V12FullRangeToBGR24FullRangePrecision6Bit(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a 24 bit BGR frame into a second image buffer using BT....
Definition FrameConverterY_U_V12.h:469
static void convertY_U_V12LimitedRangeToRGB24FullRange(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a 24 bit RGB frame into a second image buffer.
Definition FrameConverterY_U_V12.h:557
static void convertY_U_V12ToY_U_V12(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *yTarget, uint8_t *uTarget, uint8_t *vTarget, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int yTargetPaddingElements, const unsigned int uTargetPaddingElements, const unsigned int vTargetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a Y_U_V12 frame into a second image buffer.
Definition FrameConverterY_U_V12.h:376
static void mapY_U_V12ToY_UV12(const void **sources, void **targets, const unsigned int multipleRowIndex, const unsigned int width, const unsigned int height, const ConversionFlag conversionFlag, const void *options)
Converts two rows of an image with Y_U_V12 pixel format to two rows of an image with a Y_UV12 pixel f...
static void convertY_U_V12ToY_UV12(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *yTarget, uint8_t *uvTarget, const unsigned int width, const unsigned int height, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int yTargetPaddingElements, const unsigned int uvTargetPaddingElements, const unsigned int ySourcePixelStride=1u, const unsigned int uSourcePixelStride=1u, const unsigned int vSourcePixelStride=1u, Worker *worker=nullptr)
Converts a Y_U_V12 frame to a Y_UV12 frame into a second image buffer.
Definition FrameConverterY_U_V12.h:809
static void convertY_U_V12FullRangeToY8FullRange(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12_FULL_RANGE frame to a Y8_FULL_RANGE frame into a second image buffer.
Definition FrameConverterY_U_V12.h:407
static void convertY_U_V12LimitedRangeToY8FullRange(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12_LIMITED_RANGE frame to a Y8_FULL_RANGE frame into a second image buffer.
Definition FrameConverterY_U_V12.h:399
static void convertY_U_V12LimitedRangeToBGRA32FullRangePrecision6Bit(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, const uint8_t alphaValue=0xFF, Worker *worker=nullptr)
Converts a Y_U_V12 frame to an 32 bit BGRA frame into a second image buffer (with 6 bit precision).
Definition FrameConverterY_U_V12.h:515
static void convertY_U_V12FullRangeToY8LimitedRange(const uint8_t *ySource, const uint8_t *uSource, const uint8_t *vSource, uint8_t *target, const unsigned int width, const unsigned int height, const ConversionFlag flag, const unsigned int ySourcePaddingElements, const unsigned int uSourcePaddingElements, const unsigned int vSourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
Converts a Y_U_V12_FULL_RANGE frame to a Y8_LIMITED_RANGE frame into a second image buffer.
Definition FrameConverterY_U_V12.h:415
This class implements a worker able to distribute function calls over different threads.
Definition Worker.h:33
The namespace covering the entire Ocean framework.
Definition Accessor.h:15