Ocean
|
This class implements several sum square differences functions based e.g., on template parameters. More...
Static Public Member Functions | |
template<unsigned int tChannels, unsigned int tPatchSize> | |
static OCEAN_FORCE_INLINE uint32_t | patch8BitPerChannelTemplate (const uint8_t *const image0, const uint8_t *const image1, const unsigned int width0, const unsigned int width1, const unsigned int centerX0, const unsigned int centerY0, const unsigned int centerX1, const unsigned int centerY1, const unsigned int image0PaddingElements, const unsigned int image1PaddingElements) |
Returns the sum of square differences between two square patches. More... | |
template<unsigned int tChannels, unsigned int tPatchSize> | |
static uint32_t | patch8BitPerChannelTemplate (const uint8_t *patch0, const uint8_t *patch1, const unsigned int patch0StrideElements, const unsigned int patch1StrideElements) |
Returns the sum of square differences between two square patches. More... | |
template<unsigned int tChannels, unsigned int tPatchSize> | |
static OCEAN_FORCE_INLINE uint32_t | patchBuffer8BitPerChannelTemplate (const uint8_t *image0, const unsigned int width0, const unsigned int centerX0, const unsigned int centerY0, const unsigned int image0PaddingElements, const uint8_t *buffer1) |
Returns the sum of square differences between a square image patch and a buffer. More... | |
template<unsigned int tChannels, unsigned int tPatchSize> | |
static uint32_t | patchBuffer8BitPerChannelTemplate (const uint8_t *patch0, const uint8_t *buffer1, const unsigned int patch0StrideElements) |
Returns the sum of square differences between a square image patch and a buffer. More... | |
template<unsigned int tBufferSize> | |
static uint32_t | buffer8BitPerChannelTemplate (const uint8_t *const buffer0, const uint8_t *const buffer1) |
Returns the sum of square differences between two individual buffers. More... | |
template<unsigned int tChannels, unsigned int tPatchSize> | |
static IndexPair32 | patchAtBorder8BitPerChannelTemplate (const uint8_t *image0, const uint8_t *image1, const unsigned int width0, const unsigned int height0, const unsigned int width1, const unsigned int height1, const unsigned int centerX0, const unsigned int centerY0, const unsigned int centerX1, const unsigned int centerY1, const unsigned int image0PaddingElements, const unsigned int image1PaddingElements) |
Returns the sum of square differences between two square image patches which can be partially outside of the images. More... | |
template<unsigned int tChannels> | |
static uint32_t | patchMirroredBorder8BitPerChannelTemplate (const uint8_t *image0, const uint8_t *image1, const unsigned int patchSize, const unsigned int width0, const unsigned int height0, const unsigned int width1, const unsigned int height1, const unsigned int centerX0, const unsigned int centerY0, const unsigned int centerX1, const unsigned int centerY1, const unsigned int image0PaddingElements, const unsigned int image1PaddingElements) |
Returns the sum of square differences between two patches within an image, patch pixels outside the image will be mirrored back into the image. More... | |
static OCEAN_FORCE_INLINE uint32_t | patch8BitPerChannel (const uint8_t *const image0, const uint8_t *const image1, const unsigned int channels, const unsigned int patchSize, const unsigned int width0, const unsigned int width1, const unsigned int centerX0, const unsigned int centerY0, const unsigned int centerX1, const unsigned int centerY1, const unsigned int image0PaddingElements, const unsigned int image1PaddingElements) |
Returns the sum of square differences between two square patches. More... | |
static uint32_t | patch8BitPerChannel (const uint8_t *patch0, const uint8_t *patch1, const unsigned int channels, const unsigned int patchSize, const unsigned int patch0StrideElements, const unsigned int patch1StrideElements) |
Returns the sum of square differences between two square patches. More... | |
static OCEAN_FORCE_INLINE uint32_t | patchBuffer8BitPerChannel (const uint8_t *image0, unsigned int channels, unsigned int patchSize, const unsigned int width0, const unsigned int centerX0, const unsigned int centerY0, const unsigned int image0PaddingElements, const uint8_t *buffer1) |
Returns the sum of square differences between a square image patch and a buffer. More... | |
static uint32_t | patchBuffer8BitPerChannel (const uint8_t *patch0, const uint8_t *buffer1, unsigned int channels, unsigned int patchSize, const unsigned int patch0StrideElements) |
Returns the sum of square differences between a square image patch and a buffer. More... | |
static uint32_t | buffer8BitPerChannel (const uint8_t *const buffer0, const uint8_t *const buffer1, const unsigned int bufferSize) |
Returns the sum of square differences between two individual buffers. More... | |
static IndexPair32 | patchAtBorder8BitPerChannel (const uint8_t *image0, const uint8_t *image1, const unsigned int channels, const unsigned int patchSize, const unsigned int width0, const unsigned int height0, const unsigned int width1, const unsigned int height1, const unsigned int centerX0, const unsigned int centerY0, const unsigned int centerX1, const unsigned int centerY1, const unsigned int image0PaddingElements, const unsigned int image1PaddingElements) |
Returns the sum of square differences between two square image patches which can be partially outside of the images. More... | |
This class implements several sum square differences functions based e.g., on template parameters.
|
static |
Returns the sum of square differences between two individual buffers.
buffer0 | The first buffer, with size elements, must be valid |
buffer1 | The second buffer, with size elements, must be valid |
bufferSize | The number of elements in each buffer, with range [1, infinity) |
|
inlinestatic |
Returns the sum of square differences between two individual buffers.
buffer0 | The first buffer, with tBufferSize elements, must be valid |
buffer1 | The second buffer, with tBufferSize elements, must be valid |
tBufferSize | The number of elements in each buffer, with range [1, infinity) |
|
static |
Returns the sum of square differences between two square patches.
image0 | The first image in which the first patch is located, must be valid |
image1 | The second image in which the second patch is located, must be valid |
width0 | Width of the first frame in pixels, with range [patchSize, infinity) |
width1 | Width of the second frame in pixels, with range [patchSize, infinity) |
channels | Specifies the number of channels for the given frames, with range [1, infinity) |
patchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity), must be odd |
centerX0 | Horizontal center position of the (patchSize x patchSize) block in the first frame, with range [patchSize / 2, width0 - patchSize / 2 - 1] |
centerY0 | Vertical center position of the (patchSize x patchSize) block in the first frame, with range [patchSize / 2, height0 - patchSize / 2 - 1] |
centerX1 | Horizontal center position of the (patchSize x patchSize) block in the second frame, with range [patchSize / 2, width1 - patchSize / 2 - 1] |
centerY1 | Vertical center position of the (patchSize x patchSize) block in the second frame, with range [patchSize / 2, height1 - patchSize / 2 - 1] |
image0PaddingElements | The number of padding elements at the end of each first image, in elements, with range [0, infinity) |
image1PaddingElements | The number of padding elements at the end of each second image, in elements, with range [0, infinity) |
patchSize * patchSize * channels
elements
|
static |
Returns the sum of square differences between two square patches.
patch0 | The top-left corner of the first image patch, must be valid |
patch1 | The top-left corner of the second image patch, must be valid |
channels | Specifies the number of channels for the given frames, with range [1, infinity) |
patchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity), must be odd |
patch0StrideElements | The number of elements between two row starts in the first patch, in elements, with range [patchSize * channels, infinity) |
patch1StrideElements | The number of elements between two row starts in the second patch, in elements, with range [patchSize * channels, infinity) |
patchSize * patchSize * channels
elements
|
static |
Returns the sum of square differences between two square patches.
image0 | The first image in which the first patch is located, must be valid |
image1 | The second image in which the second patch is located, must be valid |
width0 | Width of the first frame in pixels, with range [tPatchSize, infinity) |
width1 | Width of the second frame in pixels, with range [tPatchSize, infinity) |
centerX0 | Horizontal center position of the (tPatchSize x tPatchSize) block in the first frame, with range [tPatchSize / 2, width0 - tPatchSize / 2 - 1] |
centerY0 | Vertical center position of the (tPatchSize x tPatchSize) block in the first frame, with range [tPatchSize / 2, height0 - tPatchSize / 2 - 1] |
centerX1 | Horizontal center position of the (tPatchSize x tPatchSize) block in the second frame, with range [tPatchSize / 2, width1 - tPatchSize / 2 - 1] |
centerY1 | Vertical center position of the (tPatchSize x tPatchSize) block in the second frame, with range [tPatchSize / 2, height1 - tPatchSize / 2 - 1] |
image0PaddingElements | The number of padding elements at the end of each first image, in elements, with range [0, infinity) |
image1PaddingElements | The number of padding elements at the end of each second image, in elements, with range [0, infinity) |
tChannels | Specifies the number of channels for the given frames, with range [1, infinity) |
tPatchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity), must be odd |
|
static |
Returns the sum of square differences between two square patches.
patch0 | The top-left corner of the first image patch, must be valid |
patch1 | The top-left corner of the second image patch, must be valid |
patch0StrideElements | The number of elements between two row starts in the first patch, in elements, with range [tPatchSize * tChannels, infinity) |
patch1StrideElements | The number of elements between two row starts in the second patch, in elements, with range [tPatchSize * tChannels, infinity) |
tChannels | Specifies the number of channels for the given frames, with range [1, infinity) |
tPatchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity) |
|
static |
Returns the sum of square differences between two square image patches which can be partially outside of the images.
image0 | The image in which the first patch is located, must be valid |
image1 | The image in which the second patch is located, must be valid |
channels | The number of frame channels, with range [1, infinity) |
patchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity), must be odd |
width0 | The width of the first image, in pixels, with range [tPatchSize/2 + 1, infinity) |
height0 | The height of the first image, in pixels, with range [tPatchSize/2 + 1, infinity) |
width1 | The width of the second image, in pixels, with range [tPatchSize/2 + 1, infinity) |
height1 | The height of the second image, in pixels, with range [tPatchSize/2 + 1, infinity) |
centerX0 | Horizontal center position of the (tPatchSize x tPatchSize) block in the first frame, with range [0, width0 - 1] |
centerY0 | Vertical center position of the (tPatchSize x tPatchSize) block in the first frame, with range [0, height0 - 1] |
centerX1 | Horizontal center position of the (tPatchSize x tPatchSize) block in the second frame, with range [0, width1 - 1] |
centerY1 | Vertical center position of the (tPatchSize x tPatchSize) block in the second frame, with range [0, height1 - 1] |
image0PaddingElements | The number of padding elements at the end of each row of the first image, in elements, with range [0, infinity) |
image1PaddingElements | The number of padding elements at the end of each row of the second image, in elements, with range [0, infinity) |
|
inlinestatic |
Returns the sum of square differences between two square image patches which can be partially outside of the images.
image0 | The image in which the first patch is located, must be valid |
image1 | The image in which the second patch is located, must be valid |
width0 | The width of the first image, in pixels, with range [tPatchSize/2 + 1, infinity) |
height0 | The height of the first image, in pixels, with range [tPatchSize/2 + 1, infinity) |
width1 | The width of the second image, in pixels, with range [tPatchSize/2 + 1, infinity) |
height1 | The height of the second image, in pixels, with range [tPatchSize/2 + 1, infinity) |
centerX0 | Horizontal center position of the (tPatchSize x tPatchSize) block in the first frame, with range [0, width0 - 1] |
centerY0 | Vertical center position of the (tPatchSize x tPatchSize) block in the first frame, with range [0, height0 - 1] |
centerX1 | Horizontal center position of the (tPatchSize x tPatchSize) block in the second frame, with range [0, width1 - 1] |
centerY1 | Vertical center position of the (tPatchSize x tPatchSize) block in the second frame, with range [0, height1 - 1] |
image0PaddingElements | The number of padding elements at the end of each row of the first image, in elements, with range [0, infinity) |
image1PaddingElements | The number of padding elements at the end of each row of the second image, in elements, with range [0, infinity) |
tChannels | The number of frame channels, with range [1, infinity) |
tPatchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity), must be odd |
|
static |
Returns the sum of square differences between a square image patch and a buffer.
image0 | The image in which the image patch is located, must be valid |
channels | The number of channels for the given frames, with range [1, infinity) |
patchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity), must be odd |
width0 | Width of the first frame in pixels, with range [tPatchSize, infinity) |
centerX0 | Horizontal center position of the (tPatchSize x tPatchSize) block in the first frame, with range [tPatchSize / 2, width0 - tPatchSize / 2 - 1] |
centerY0 | Vertical center position of the (tPatchSize x tPatchSize) block in the first frame, with range [tPatchSize / 2, height0 - tPatchSize / 2 - 1] |
image0PaddingElements | The number of padding elements at the end of each first image, in elements, with range [0, infinity) |
buffer1 | The memory buffer with tChannels * tPatchSize * tPatchSize elements, must be valid |
|
inlinestatic |
Returns the sum of square differences between a square image patch and a buffer.
patch0 | The top left start position of the image patch, must be valid |
buffer1 | The memory buffer, must be valid |
channels | The number of channels for the given frames, with range [1, infinity) |
patchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity), must be odd |
patch0StrideElements | The number of elements between two rows for the image patch, in elements, with range [tChannels, tPatchSize, infinity) |
|
static |
Returns the sum of square differences between a square image patch and a buffer.
image0 | The image in which the image patch is located, must be valid |
width0 | Width of the first frame in pixels, with range [tPatchSize, infinity) |
centerX0 | Horizontal center position of the (tPatchSize x tPatchSize) block in the first frame, with range [tPatchSize / 2, width0 - tPatchSize / 2 - 1] |
centerY0 | Vertical center position of the (tPatchSize x tPatchSize) block in the first frame, with range [tPatchSize / 2, height0 - tPatchSize / 2 - 1] |
image0PaddingElements | The number of padding elements at the end of each first image, in elements, with range [0, infinity) |
buffer1 | The memory buffer with tChannels * tPatchSize * tPatchSize elements, must be valid |
tChannels | The number of channels for the given frames, with range [1, infinity) |
tPatchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity), must be odd |
|
static |
Returns the sum of square differences between a square image patch and a buffer.
patch0 | The top left start position of the image patch, must be valid |
buffer1 | The memory buffer, must be valid |
patch0StrideElements | The number of elements between two rows for the image patch, in elements, with range [tChannels, tPatchSize, infinity) |
tChannels | The number of channels for the given frames, with range [1, infinity) |
tPatchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity), must be odd |
|
static |
Returns the sum of square differences between two patches within an image, patch pixels outside the image will be mirrored back into the image.
image0 | The image in which the first patch is located, must be valid |
image1 | The image in which the second patch is located, must be valid |
patchSize | The size of the square patch (the edge length) in pixel, with range [1, infinity), must be odd |
width0 | The width of the first image, in pixels, with range [tPatchSize, infinity) |
height0 | The height of the first image, in pixels, with range [tPatchSize, infinity) |
width1 | The width of the second image, in pixels, with range [tPatchSize, infinity) |
height1 | The height of the second image, in pixels, with range [tPatchSize, infinity) |
centerX0 | Horizontal center position of the (tPatchSize x tPatchSize) block in the first frame, with range [tPatchSize/2, width - tPatchSize/2 - 1] |
centerY0 | Vertical center position of the (tPatchSize x tPatchSize) block in the first frame, with range [tPatchSize/2, height - tPatchSize/2 - 1] |
centerX1 | Horizontal center position of the (tPatchSize x tPatchSize) block in the second frame, with range [tPatchSize/2, width - tPatchSize/2 - 1] |
centerY1 | Vertical center position of the (tPatchSize x tPatchSize) block in the second frame, with range [tPatchSize/2, height - tPatchSize/2 - 1] |
image0PaddingElements | The number of padding elements at the end of each row of the first image, in elements, with range [0, infinity) |
image1PaddingElements | The number of padding elements at the end of each row of the second image, in elements, with range [0, infinity) |
tChannels | Specifies the number of channels for the given frames |