MRPT  1.9.9
Sse_optimizations

Detailed Description

SSE optimized functions.

Functions

template<bool MemIsAligned>
void impl_image_SSE2_scale_half_1c8u (const uint8_t *in, uint8_t *out, int w, int h, size_t step_in, size_t step_out)
 
template<bool MemIsAligned>
void impl_image_SSE2_scale_half_smooth_1c8u (const uint8_t *in, uint8_t *out, int w, int h, size_t step_in, size_t step_out)
 
void image_SSE2_scale_half_1c8u (const uint8_t *in, uint8_t *out, int w, int h, size_t step_in, size_t step_out)
 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, size_t step_in, size_t step_out)
 Average each 2x2 pixels into 1x1 pixel (arithmetic average) More...
 
template<bool MemIsAligned>
void impl_image_SSSE3_scale_half_3c8u (const uint8_t *in, uint8_t *out, int w, int h, size_t step_in, size_t step_out)
 
void image_SSSE3_scale_half_3c8u (const uint8_t *in, uint8_t *out, int w, int h, size_t step_in, size_t step_out)
 Subsample each 2x2 pixel block into 1x1 pixel, taking the first pixel & ignoring the other 3. More...
 
template<bool IS_RGB, bool MemIsAligned>
void impl_image_SSSE3_rgb_or_bgr_to_gray_8u (const uint8_t *in, uint8_t *out, int w, int h, size_t step_in, size_t step_out)
 
void image_SSSE3_bgr_to_gray_8u (const uint8_t *in, uint8_t *out, int w, int h, size_t step_in, size_t step_out)
 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, size_t step_in, size_t step_out)
 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,
size_t  step_in,
size_t  step_out 
)

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 (faster) or not, step = k*16 (faster) or not
  • Notes:
  • Requires: SSE2
  • Invoked from: mrpt::img::CImage::scaleHalf()

Definition at line 145 of file CImage_SSE2.cpp.

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

Here is the caller graph for this function:

◆ image_SSE2_scale_half_smooth_1c8u()

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

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 (faster) or not, step = k*16 (faster) or not
  • Notes:
  • Requires: SSE2
  • Invoked from: mrpt::img::CImage::scaleHalfSmooth()

Definition at line 170 of file CImage_SSE2.cpp.

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

Here is the caller graph for this function:

◆ image_SSSE3_bgr_to_gray_8u()

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

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

  • Input format: uint8_t, 3 channels (BGR order)
  • Output format: uint8_t, 1 channel
  • Preconditions: in & out aligned to 16bytes (faster) or not, step = k*16
  • Notes:
  • Requires: SSSE3
  • Invoked from: mrpt::img::CImage::grayscale(), mrpt::img::CImage::grayscaleInPlace()

Definition at line 271 of file CImage_SSE3.cpp.

References ASSERTMSG_.

Referenced by my_img_to_grayscale().

Here is the caller graph for this function:

◆ image_SSSE3_rgb_to_gray_8u()

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

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

  • Input format: uint8_t, 3 channels (RGB order)
  • Output format: uint8_t, 1 channel
  • Preconditions: in & out aligned to 16bytes (faster) or not, step = k*16
  • Notes:
  • Requires: SSSE3
  • Invoked from: mrpt::img::CImage::grayscale(), mrpt::img::CImage::grayscaleInPlace()

Definition at line 301 of file CImage_SSE3.cpp.

References ASSERTMSG_.

◆ image_SSSE3_scale_half_3c8u()

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

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 may be aligned to 16bytes (faster) or not, step may be k*16 (faster) or not.
  • Notes:
  • Requires: SSSE3
  • Invoked from: mrpt::img::CImage::scaleHalf()

Definition at line 115 of file CImage_SSE3.cpp.

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

Here is the caller graph for this function:

◆ impl_image_SSE2_scale_half_1c8u()

template<bool MemIsAligned>
void impl_image_SSE2_scale_half_1c8u ( const uint8_t in,
uint8_t out,
int  w,
int  h,
size_t  step_in,
size_t  step_out 
)

Definition at line 37 of file CImage_SSE2.cpp.

◆ impl_image_SSE2_scale_half_smooth_1c8u()

template<bool MemIsAligned>
void impl_image_SSE2_scale_half_smooth_1c8u ( const uint8_t in,
uint8_t out,
int  w,
int  h,
size_t  step_in,
size_t  step_out 
)

Definition at line 82 of file CImage_SSE2.cpp.

◆ impl_image_SSSE3_rgb_or_bgr_to_gray_8u()

template<bool IS_RGB, bool MemIsAligned>
void impl_image_SSSE3_rgb_or_bgr_to_gray_8u ( const uint8_t in,
uint8_t out,
int  w,
int  h,
size_t  step_in,
size_t  step_out 
)

Definition at line 135 of file CImage_SSE3.cpp.

◆ impl_image_SSSE3_scale_half_3c8u()

template<bool MemIsAligned>
void impl_image_SSSE3_scale_half_3c8u ( const uint8_t in,
uint8_t out,
int  w,
int  h,
size_t  step_in,
size_t  step_out 
)

Definition at line 35 of file CImage_SSE3.cpp.




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019