Ocean
Ocean::CV::FrameInterpolatorBicubic Class Reference

This class implements a bicubic frame interpolator. More...

Data Structures

class  Comfort
 The following comfort class provides comfortable functions simplifying prototyping applications but also increasing binary size of the resulting applications. More...
 

Static Public Member Functions

static bool resize (const uint8_t *source, uint8_t *target, const unsigned int sourceWidth, const unsigned int sourceHeight, const unsigned int targetWidth, const unsigned int targetHeight, const FrameType::PixelFormat format, const unsigned int sourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
 Resizes a given frame by a bicubic interpolation. More...
 
template<unsigned int tChannels>
static void resize8BitPerChannel (const uint8_t *source, uint8_t *target, const unsigned int sourceWidth, const unsigned int sourceHeight, const unsigned int targetWidth, const unsigned int targetHeight, const unsigned int sourcePaddingElements, const unsigned int targetPaddingElements, Worker *worker=nullptr)
 Resizes a given zipped frame by a bicubic interpolation. More...
 

Static Private Member Functions

template<unsigned int tChannels>
static void resizeHorizontal8BitPerChannelSubset (const uint8_t *source, uint8_t *target, const unsigned int sourceWidth, const unsigned int targetWidth, const unsigned int height, const unsigned int sourcePaddingElements, const unsigned int targetPaddingElements, const unsigned int firstRow, const unsigned int numberRows)
 Resizes a subset of a given zipped frame by a horizontal bicubic interpolation only. More...
 
template<unsigned int tChannels>
static void resizeVertical8BitPerChannelSubset (const uint8_t *source, uint8_t *target, const unsigned int sourceHeight, const unsigned int targetHeight, const unsigned int width, const unsigned int sourcePaddingElements, const unsigned int targetPaddingElements, const unsigned int firstColumn, const unsigned int numberColumns)
 Resizes a subset of a given zipped frame by a vertical bicubic interpolation only. More...
 

Detailed Description

This class implements a bicubic frame interpolator.

Member Function Documentation

◆ resize()

static bool Ocean::CV::FrameInterpolatorBicubic::resize ( const uint8_t *  source,
uint8_t *  target,
const unsigned int  sourceWidth,
const unsigned int  sourceHeight,
const unsigned int  targetWidth,
const unsigned int  targetHeight,
const FrameType::PixelFormat  format,
const unsigned int  sourcePaddingElements,
const unsigned int  targetPaddingElements,
Worker worker = nullptr 
)
static

Resizes a given frame by a bicubic interpolation.

Parameters
sourceThe source frame buffer to resize, must be valid
targetThe target frame buffer, must be valid
sourceWidthWidth of the source frame in pixel, with range [1, infinity)
sourceHeightHeight of the source frame in pixel, with range [1, infinity)
targetWidthWidth of the target frame in pixel, with range [1, infinity)
targetHeightHeight of the target frame in pixel, with range [1, infinity)
formatPixel format of source and target frame
sourcePaddingElementsNumber of padding elements used in the source frame, range: [0, infinity)
targetPaddingElementsNumber of padding elements used in the target frame, range: [0, infinity)
workerOptional worker object used for load distribution
Returns
True, if the frame could be resized

◆ resize8BitPerChannel()

template<unsigned int tChannels>
void Ocean::CV::FrameInterpolatorBicubic::resize8BitPerChannel ( const uint8_t *  source,
uint8_t *  target,
const unsigned int  sourceWidth,
const unsigned int  sourceHeight,
const unsigned int  targetWidth,
const unsigned int  targetHeight,
const unsigned int  sourcePaddingElements,
const unsigned int  targetPaddingElements,
Worker worker = nullptr 
)
static

Resizes a given zipped frame by a bicubic interpolation.

Parameters
sourceThe source frame buffer, must be valid
targetThe target frame buffer, must be valid
sourceWidthWidth of the source frame in pixel, with range [1, infinity)
sourceHeightHeight of the source frame in pixel, with range [1, infinity)
targetWidthWidth of the target frame in pixel, with range [1, infinity)
targetHeightHeight of the target frame in pixel, with range [1, infinity)
sourcePaddingElementsNumber of padding elements used in the source frame, range: [0, infinity)
targetPaddingElementsNumber of padding elements used in the target frame, range: [0, infinity)
workerOptional worker object to distribute the computation
Template Parameters
tChannelsNumber of frame channels, with range [1, infinity)

◆ resizeHorizontal8BitPerChannelSubset()

template<unsigned int tChannels>
void Ocean::CV::FrameInterpolatorBicubic::resizeHorizontal8BitPerChannelSubset ( const uint8_t *  source,
uint8_t *  target,
const unsigned int  sourceWidth,
const unsigned int  targetWidth,
const unsigned int  height,
const unsigned int  sourcePaddingElements,
const unsigned int  targetPaddingElements,
const unsigned int  firstRow,
const unsigned int  numberRows 
)
staticprivate

Resizes a subset of a given zipped frame by a horizontal bicubic interpolation only.

Parameters
sourceThe source frame buffer to resize, with size (sourceWidth x sourceHeight)
targetIntermediate target frame buffer, with size (targetWidth x sourceHeight)
sourceWidthWidth of the source frame in pixel, with range [1, infinity)
targetWidthWidth of the target frame in pixel, with range [1, infinity)
heightThe height of the source and target frame in pixel, with range [1, infinity)
sourcePaddingElementsNumber of padding elements used in the source frame, range: [0, infinity)
targetPaddingElementsNumber of padding elements used in the target frame, range: [0, infinity)
firstRowFirst (including) row to convert, with range [0, height)
numberRowsNumber of rows to convert, with range [1, height - firstRow]
Template Parameters
tChannelsNumber of frame channels, with range [1, infinity)

◆ resizeVertical8BitPerChannelSubset()

template<unsigned int tChannels>
void Ocean::CV::FrameInterpolatorBicubic::resizeVertical8BitPerChannelSubset ( const uint8_t *  source,
uint8_t *  target,
const unsigned int  sourceHeight,
const unsigned int  targetHeight,
const unsigned int  width,
const unsigned int  sourcePaddingElements,
const unsigned int  targetPaddingElements,
const unsigned int  firstColumn,
const unsigned int  numberColumns 
)
staticprivate

Resizes a subset of a given zipped frame by a vertical bicubic interpolation only.

Parameters
sourceResized and horizontal filtered source frame buffer, with size (targetWidth x sourceHeight)
targetThe target frame buffer, with size (targetWidth x targetHeight)
sourceHeightHeight of the source frame in pixel, with range [1, infinity)
targetHeightHeight of the target frame in pixel, with range [1, infinity)
widthThe width of the source and target frame in pixel, with range [1, infinity)
sourcePaddingElementsNumber of padding elements used in the source frame, range: [0, infinity)
targetPaddingElementsNumber of padding elements used in the target frame, range: [0, infinity)
firstColumnFirst (including) column to convert, with range [0, width)
numberColumnsNumber of columns to convert, with range [1, width - firstColumn]
Template Parameters
tChannelsNumber of frame channels, with range [1, infinity)

The documentation for this class was generated from the following file: