Main MRPT website > C++ reference for MRPT 1.5.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::utils::CImage::scaleHalf()

Definition at line 40 of file CImage_SSE2.cpp.

References jpeg_error_mgr::i, and MRPT_ALIGN16.

Referenced by mrpt::utils::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::utils::CImage::scaleHalfSmooth()

Definition at line 70 of file CImage_SSE2.cpp.

References jpeg_error_mgr::i, and MRPT_ALIGN16.

Referenced by mrpt::utils::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 208 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 221 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::utils::CImage::scaleHalf()

Definition at line 37 of file CImage_SSE3.cpp.

References jpeg_error_mgr::i, and MRPT_ALIGN16.

Referenced by mrpt::utils::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 90 of file CImage_SSE3.cpp.

References BUILD_128BIT_CONST, and jpeg_error_mgr::i.




Page generated by Doxygen 1.8.14 for MRPT 1.5.9 Git: 690a4699f Wed Apr 15 19:29:53 2020 +0200 at miƩ abr 15 19:30:12 CEST 2020