Simd Library Documentation.

Home | Release Notes | Download | Documentation | Issues | GitHub

Functions to intereleave planar images. More...

Functions

SIMD_API void SimdInterleaveUv (const uint8_t *u, size_t uStride, const uint8_t *v, size_t vStride, size_t width, size_t height, uint8_t *uv, size_t uvStride)
 Interleaves 8-bit U and V planar images into one 16-bit UV interleaved image. More...
 
SIMD_API void SimdInterleaveBgr (const uint8_t *b, size_t bStride, const uint8_t *g, size_t gStride, const uint8_t *r, size_t rStride, size_t width, size_t height, uint8_t *bgr, size_t bgrStride)
 Interleaves 8-bit Blue, Green and Red planar images into one 24-bit BGR interleaved image. More...
 
SIMD_API void SimdInterleaveBgra (const uint8_t *b, size_t bStride, const uint8_t *g, size_t gStride, const uint8_t *r, size_t rStride, const uint8_t *a, size_t aStride, size_t width, size_t height, uint8_t *bgra, size_t bgraStride)
 Interleaves 8-bit Blue, Green, Red and Alpha planar images into one 32-bit BGRA interleaved image. More...
 
template<template< class > class A>
SIMD_INLINE void InterleaveUv (const View< A > &u, const View< A > &v, View< A > &uv)
 Interleaves 8-bit U and V planar images into one 16-bit UV interleaved image. More...
 
template<template< class > class A>
SIMD_INLINE void InterleaveBgr (const View< A > &b, const View< A > &g, const View< A > &r, View< A > &bgr)
 Interleaves 8-bit Blue, Green and Red planar images into one 24-bit BGR interleaved image. More...
 
template<template< class > class A>
SIMD_INLINE void InterleaveBgra (const View< A > &b, const View< A > &g, const View< A > &r, const View< A > &a, View< A > &bgra)
 Interleaves 8-bit Blue, Green, Red and Alpha planar images into one 32-bit BGRA interleaved image. More...
 

Detailed Description

Functions to intereleave planar images.

Function Documentation

◆ SimdInterleaveUv()

void SimdInterleaveUv ( const uint8_t *  u,
size_t  uStride,
const uint8_t *  v,
size_t  vStride,
size_t  width,
size_t  height,
uint8_t *  uv,
size_t  uvStride 
)

Interleaves 8-bit U and V planar images into one 16-bit UV interleaved image.

All images must have the same width and height. This function used for YUV420P to NV12 conversion.

Note
This function has a C++ wrapper Simd::InterleaveUv(const View<A>& u, const View<A>& v, View<A>& uv).
Parameters
[in]u- a pointer to pixels data of input 8-bit U planar image.
[in]uStride- a row size of the u image.
[in]v- a pointer to pixels data of input 8-bit V planar image.
[in]vStride- a row size of the v image.
[in]width- an image width.
[in]height- an image height.
[out]uv- a pointer to pixels data of output 16-bit UV interleaved image.
[in]uvStride- a row size of the uv image.

◆ SimdInterleaveBgr()

void SimdInterleaveBgr ( const uint8_t *  b,
size_t  bStride,
const uint8_t *  g,
size_t  gStride,
const uint8_t *  r,
size_t  rStride,
size_t  width,
size_t  height,
uint8_t *  bgr,
size_t  bgrStride 
)

Interleaves 8-bit Blue, Green and Red planar images into one 24-bit BGR interleaved image.

All images must have the same width and height.

Note
This function has a C++ wrapper Simd::InterleaveBgr(const View<A>& b, const View<A>& g, const View<A>& r, View<A>& bgr).
Parameters
[in]b- a pointer to pixels data of input 8-bit Blue planar image.
[in]bStride- a row size of the b image.
[in]g- a pointer to pixels data of input 8-bit Green planar image.
[in]gStride- a row size of the g image.
[in]r- a pointer to pixels data of input 8-bit Red planar image.
[in]rStride- a row size of the r image.
[in]width- an image width.
[in]height- an image height.
[out]bgr- a pointer to pixels data of output 24-bit BGR interleaved image.
[in]bgrStride- a row size of the bgr image.

◆ SimdInterleaveBgra()

void SimdInterleaveBgra ( const uint8_t *  b,
size_t  bStride,
const uint8_t *  g,
size_t  gStride,
const uint8_t *  r,
size_t  rStride,
const uint8_t *  a,
size_t  aStride,
size_t  width,
size_t  height,
uint8_t *  bgra,
size_t  bgraStride 
)

Interleaves 8-bit Blue, Green, Red and Alpha planar images into one 32-bit BGRA interleaved image.

All images must have the same width and height.

Note
This function has a C++ wrapper Simd::InterleaveBgra(const View<A>& b, const View<A>& g, const View<A>& r, const View<A>& a, View<A>& bgra).
Parameters
[in]b- a pointer to pixels data of input 8-bit Blue planar image.
[in]bStride- a row size of the b image.
[in]g- a pointer to pixels data of input 8-bit Green planar image.
[in]gStride- a row size of the g image.
[in]r- a pointer to pixels data of input 8-bit Red planar image.
[in]rStride- a row size of the r image.
[in]a- a pointer to pixels data of input 8-bit Alpha planar image.
[in]aStride- a row size of the a image.
[in]width- an image width.
[in]height- an image height.
[out]bgra- a pointer to pixels data of output 32-bit BGRA interleaved image.
[in]bgraStride- a row size of the bgr image.

◆ InterleaveUv()

void InterleaveUv ( const View< A > &  u,
const View< A > &  v,
View< A > &  uv 
)

Interleaves 8-bit U and V planar images into one 16-bit UV interleaved image.

All images must have the same width and height. This function used for YUV420P to NV12 conversion.

Note
This function is a C++ wrapper for function SimdInterleaveUv.
Parameters
[in]u- an input 8-bit U planar image.
[in]v- an input 8-bit V planar image.
[out]uv- an output 16-bit UV interleaved image.

◆ InterleaveBgr()

void InterleaveBgr ( const View< A > &  b,
const View< A > &  g,
const View< A > &  r,
View< A > &  bgr 
)

Interleaves 8-bit Blue, Green and Red planar images into one 24-bit BGR interleaved image.

All images must have the same width and height.

Note
This function is a C++ wrapper for function SimdInterleaveBgr.
Parameters
[in]b- an input 8-bit Blue planar image.
[in]g- an input 8-bit Green planar image.
[in]r- an input 8-bit Red planar image.
[out]bgr- an output 24-bit BGR interleaved image.

◆ InterleaveBgra()

void InterleaveBgra ( const View< A > &  b,
const View< A > &  g,
const View< A > &  r,
const View< A > &  a,
View< A > &  bgra 
)

Interleaves 8-bit Blue, Green, Red and Alpha planar images into one 32-bit BGRA interleaved image.

All images must have the same width and height.

Note
This function is a C++ wrapper for function SimdInterleaveBgra.
Parameters
[in]b- an input 8-bit Blue planar image.
[in]g- an input 8-bit Green planar image.
[in]r- an input 8-bit Red planar image.
[in]a- an input 8-bit Alpha planar image.
[out]bgra- an output 32-bit BGRA interleaved image.