Main MRPT website > C++ reference for MRPT 1.9.9
Functions
Sse_optimizations

Detailed Description

SSE optimized functions.

Functions

void image_SSE2_scale_half_1c8u (const uint8_t *in, uint8_t *out, int w, int h)
 Subsample each 2x2 pixel block into 1x1 pixel, taking the first pixel & ignoring the other 3. More...
 
void image_SSE2_scale_half_smooth_1c8u (const uint8_t *in, uint8_t *out, int w, int h)
 Average each 2x2 pixels into 1x1 pixel (arithmetic average) More...
 
float KLT_response_optimized ()
 KLT score at a given point of a grayscale image. More...
 
void image_SSSE3_scale_half_3c8u (const uint8_t *in, uint8_t *out, int w, int h)
 Subsample each 2x2 pixel block into 1x1 pixel, taking the first pixel & ignoring the other 3. More...
 
template<bool IS_RGB>
void private_image_SSSE3_rgb_or_bgr_to_gray_8u (const uint8_t *in, uint8_t *out, int w, int h)
 
void image_SSSE3_bgr_to_gray_8u (const uint8_t *in, uint8_t *out, int w, int h)
 Convert a RGB image (3cu8) into a GRAYSCALE (1c8u) image, using Y=77*R+150*G+29*B. More...
 
void image_SSSE3_rgb_to_gray_8u (const uint8_t *in, uint8_t *out, int w, int h)
 Convert a RGB image (3cu8) into a GRAYSCALE (1c8u) image, using Y=77*R+150*G+29*B. More...
 

Function Documentation

◆ image_SSE2_scale_half_1c8u()

void image_SSE2_scale_half_1c8u ( const uint8_t in,
uint8_t out,
int  w,
int  h 
)

Subsample each 2x2 pixel block into 1x1 pixel, taking the first pixel & ignoring the other 3.

  • Input format: uint8_t, 1 channel
  • Output format: uint8_t, 1 channel
  • Preconditions: in & out aligned to 16bytes, w = k*16 (w=width in pixels), widthStep=w*1
  • Notes:
  • Requires: SSE2
  • Invoked from: mrpt::img::CImage::scaleHalf()

Definition at line 43 of file CImage_SSE2.cpp.

Referenced by mrpt::img::CImage::scaleHalf().

◆ image_SSE2_scale_half_smooth_1c8u()

void image_SSE2_scale_half_smooth_1c8u ( const uint8_t in,
uint8_t out,
int  w,
int  h 
)

Average each 2x2 pixels into 1x1 pixel (arithmetic average)

  • Input format: uint8_t, 1 channel
  • Output format: uint8_t, 1 channel
  • Preconditions: in & out aligned to 16bytes, w = k*16 (w=width in pixels), widthStep=w*1
  • Notes:
  • Requires: SSE2
  • Invoked from: mrpt::img::CImage::scaleHalfSmooth()

Definition at line 76 of file CImage_SSE2.cpp.

References MRPT_MAX_ALIGN_BYTES.

Referenced by mrpt::img::CImage::scaleHalfSmooth().

◆ image_SSSE3_bgr_to_gray_8u()

void image_SSSE3_bgr_to_gray_8u ( const uint8_t in,
uint8_t out,
int  w,
int  h 
)

Convert a RGB image (3cu8) into a GRAYSCALE (1c8u) image, using Y=77*R+150*G+29*B.

Definition at line 269 of file CImage_SSE3.cpp.

Referenced by ipl_to_grayscale().

◆ image_SSSE3_rgb_to_gray_8u()

void image_SSSE3_rgb_to_gray_8u ( const uint8_t in,
uint8_t out,
int  w,
int  h 
)

Convert a RGB image (3cu8) into a GRAYSCALE (1c8u) image, using Y=77*R+150*G+29*B.

Definition at line 285 of file CImage_SSE3.cpp.

◆ image_SSSE3_scale_half_3c8u()

void image_SSSE3_scale_half_3c8u ( const uint8_t in,
uint8_t out,
int  w,
int  h 
)

Subsample each 2x2 pixel block into 1x1 pixel, taking the first pixel & ignoring the other 3.

  • Input format: uint8_t, 3 channels (RGB or BGR)
  • Output format: uint8_t, 3 channels (RGB or BGR)
  • Preconditions: in & out aligned to 16bytes, w = k*16 (w=width in pixels), widthStep=w*3
  • Notes:
  • Requires: SSSE3
  • Invoked from: mrpt::img::CImage::scaleHalf()

Definition at line 40 of file CImage_SSE3.cpp.

References MRPT_MAX_ALIGN_BYTES.

Referenced by mrpt::img::CImage::scaleHalf().

◆ KLT_response_optimized()

float KLT_response_optimized ( )

KLT score at a given point of a grayscale image.

This function is not manually optimized for SSE2 but templatized for different window sizes such as the compiler can optimize automatically for that size.

Only for the most common window sizes this templates are instantiated (W=[2-16] and W=32 ), falling back to a generic implementation otherwise. The next figure shows the performance (time for KLT_response() to compute the score for one single pixel) for different window sizes.

◆ private_image_SSSE3_rgb_or_bgr_to_gray_8u()

template<bool IS_RGB>
void private_image_SSSE3_rgb_or_bgr_to_gray_8u ( const uint8_t in,
uint8_t out,
int  w,
int  h 
)

Definition at line 103 of file CImage_SSE3.cpp.

References BUILD_128BIT_CONST.




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at lun oct 28 00:14:14 CET 2019