Function table. More...
#include <gavldsp.h>
Data Fields | |
int(* | sad_rgb15 )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h) |
Get the sum of absolute differences (RGB/BGR15). | |
int(* | sad_rgb16 )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h) |
Get the sum of absolute differences (RGB/BGR16). | |
int(* | sad_8 )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h) |
Get the sum of absolute differences (8 bit). | |
int(* | sad_16 )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h) |
Get the sum of absolute differences (16 bit). | |
float(* | sad_f )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h) |
Get the sum of absolute differences (float). | |
void(* | average_rgb15 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num) |
Average 2 scanlines (RGB/BGR15). | |
void(* | average_rgb16 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num) |
Average 2 scanlines (RGB/BGR16). | |
void(* | average_8 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num) |
Average 2 scanlines (8 bit). | |
void(* | average_16 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num) |
Average 2 scanlines (16 bit). | |
void(* | average_f )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num) |
Average 2 scanlines (float). | |
void(* | interpolate_rgb15 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float) |
Interpolate 2 scanlines (RGB/BGR15). | |
void(* | interpolate_rgb16 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac) |
Interpolate 2 scanlines (RGB/BGR16). | |
void(* | interpolate_8 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac) |
Interpolate 2 scanlines (8 bit). | |
void(* | interpolate_16 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac) |
Interpolate 2 scanlines (16 bit). | |
void(* | interpolate_f )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac) |
Interpolate 2 scanlines (float). | |
void(* | bswap_16 )(void *ptr, int len) |
Do 16 bit endian swapping. | |
void(* | bswap_32 )(void *ptr, int len) |
Do 32 byte endian swapping. | |
void(* | bswap_64 )(void *ptr, int len) |
Do 64 byte endian swapping. | |
void(* | add_u8 )(const void *src1, const void *src2, void *dst, int num) |
Add 2 uint8_t vectors. | |
void(* | add_u8_s )(const void *src1, const void *src2, void *dst, int num) |
Add 2 uint8_t vectors (for audio stored as unsigned). | |
void(* | add_s8 )(const void *src1, const void *src2, void *dst, int num) |
Add 2 int8_t vectors. | |
void(* | add_u16 )(const void *src1, const void *src2, void *dst, int num) |
Add 2 uint16_t vectors. | |
void(* | add_u16_s )(const void *src1, const void *src2, void *dst, int num) |
Add 2 uint16_t vectors (for audio stored as unsigned). | |
void(* | add_s16 )(const void *src1, const void *src2, void *dst, int num) |
Add 2 int16_t vectors. | |
void(* | add_s32 )(const void *src1, const void *src2, void *dst, int num) |
Add 2 int32_t vectors. | |
void(* | add_float )(const void *src1, const void *src2, void *dst, int num) |
Add 2 float vectors. | |
void(* | add_double )(const void *src1, const void *src2, void *dst, int num) |
Add 2 float vectors. | |
void(* | sub_u8 )(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 uint8_t vectors. | |
void(* | sub_u8_s )(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 uint8_t vectors (for audio stored as unsigned). | |
void(* | sub_s8 )(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 int8_t vectors. | |
void(* | sub_u16 )(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 uint16_t vectors. | |
void(* | sub_u16_s )(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 uint16_t vectors (for audio stored as unsigned). | |
void(* | sub_s16 )(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 int16_t vectors. | |
void(* | sub_s32 )(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 int32_t vectors. | |
void(* | sub_float )(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 float vectors. | |
void(* | sub_double )(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 float vectors. |
Function table.
This structure contains pointers to the available DSP functions.
int(* gavl_dsp_funcs_t::sad_rgb15)(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h) |
Get the sum of absolute differences (RGB/BGR15).
src_1 | Plane 1 | |
src_2 | Plane 2 | |
stride_1 | Byte distance between scanlines for src_1 | |
stride_2 | Byte distance between scanlines for src_2 | |
w | Width | |
h | Height |
The RGB values will be scaled to 8 bit before the differences are calculated.
int(* gavl_dsp_funcs_t::sad_rgb16)(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h) |
Get the sum of absolute differences (RGB/BGR16).
src_1 | Plane 1 | |
src_2 | Plane 2 | |
stride_1 | Byte distance between scanlines for src_1 | |
stride_2 | Byte distance between scanlines for src_2 | |
w | Width | |
h | Height |
The RGB values will be scaled to 8 bit before the differences are calculated.
int(* gavl_dsp_funcs_t::sad_8)(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h) |
Get the sum of absolute differences (8 bit).
src_1 | Plane 1 | |
src_2 | Plane 2 | |
stride_1 | Byte distance between scanlines for src_1 | |
stride_2 | Byte distance between scanlines for src_2 | |
w | Width | |
h | Height |
int(* gavl_dsp_funcs_t::sad_16)(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h) |
Get the sum of absolute differences (16 bit).
src_1 | Plane 1 | |
src_2 | Plane 2 | |
stride_1 | Byte distance between scanlines for src_1 | |
stride_2 | Byte distance between scanlines for src_2 | |
w | Width | |
h | Height |
float(* gavl_dsp_funcs_t::sad_f)(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h) |
Get the sum of absolute differences (float).
src_1 | Plane 1 | |
src_2 | Plane 2 | |
stride_1 | Byte distance between scanlines for src_1 | |
stride_2 | Byte distance between scanlines for src_2 | |
w | Width | |
h | Height |
void(* gavl_dsp_funcs_t::average_rgb15)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num) |
Average 2 scanlines (RGB/BGR15).
src_1 | Scanline 1 | |
src_2 | Scanline 2 | |
dst | Destination | |
num | Number of pixels |
void(* gavl_dsp_funcs_t::average_rgb16)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num) |
Average 2 scanlines (RGB/BGR16).
src_1 | Scanline 1 | |
src_2 | Scanline 2 | |
dst | Destination | |
num | Number of pixels |
void(* gavl_dsp_funcs_t::average_8)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num) |
Average 2 scanlines (8 bit).
src_1 | Scanline 1 | |
src_2 | Scanline 2 | |
dst | Destination | |
num | Number of bytes |
void(* gavl_dsp_funcs_t::average_16)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num) |
Average 2 scanlines (16 bit).
src_1 | Scanline 1 | |
src_2 | Scanline 2 | |
dst | Destination | |
num | Number of shorts |
void(* gavl_dsp_funcs_t::average_f)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num) |
Average 2 scanlines (float).
src_1 | Scanline 1 | |
src_2 | Scanline 2 | |
dst | Destination | |
num | Number of floats |
void(* gavl_dsp_funcs_t::interpolate_rgb15)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float) |
Interpolate 2 scanlines (RGB/BGR15).
src_1 | Scanline 1 | |
src_2 | Scanline 2 | |
dst | Destination | |
num | Number of pixels | |
fac | Factor for src_1 (0.0 .. 1.0) |
Sets the destination to src_1 * fac + src_2 * (1.0-fac)
void(* gavl_dsp_funcs_t::interpolate_rgb16)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac) |
Interpolate 2 scanlines (RGB/BGR16).
src_1 | Scanline 1 | |
src_2 | Scanline 2 | |
dst | Destination | |
num | Number of pixels | |
fac | Factor for src_1 (0.0 .. 1.0) |
Sets the destination to src_1 * fac + src_2 * (1.0-fac)
void(* gavl_dsp_funcs_t::interpolate_8)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac) |
Interpolate 2 scanlines (8 bit).
src_1 | Scanline 1 | |
src_2 | Scanline 2 | |
dst | Destination | |
num | Number of bytes | |
fac | Factor for src_1 (0.0 .. 1.0) |
Sets the destination to src_1 * fac + src_2 * (1.0-fac)
void(* gavl_dsp_funcs_t::interpolate_16)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac) |
Interpolate 2 scanlines (16 bit).
src_1 | Scanline 1 | |
src_2 | Scanline 2 | |
dst | Destination | |
num | Number of shorts | |
fac | Factor for src_1 (0.0 .. 1.0) |
Sets the destination to src_1 * fac + src_2 * (1.0-fac)
void(* gavl_dsp_funcs_t::interpolate_f)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac) |
Interpolate 2 scanlines (float).
src_1 | Scanline 1 | |
src_2 | Scanline 2 | |
dst | Destination | |
num | Number of floats | |
fac | Factor for src_1 (0.0 .. 1.0) |
Sets the destination to src_1 * fac + src_2 * (1.0-fac)
void(* gavl_dsp_funcs_t::bswap_16)(void *ptr, int len) |
Do 16 bit endian swapping.
ptr | Pointer to the data | |
len | Len in 16 bit words |
void(* gavl_dsp_funcs_t::bswap_32)(void *ptr, int len) |
Do 32 byte endian swapping.
ptr | Pointer to the data | |
len | Len in 32 bit doublewords |
void(* gavl_dsp_funcs_t::bswap_64)(void *ptr, int len) |
Do 64 byte endian swapping.
ptr | Pointer to the data | |
len | Len in 64 bit quadwords |
void(* gavl_dsp_funcs_t::add_u8)(const void *src1, const void *src2, void *dst, int num) |
Add 2 uint8_t vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::add_u8_s)(const void *src1, const void *src2, void *dst, int num) |
Add 2 uint8_t vectors (for audio stored as unsigned).
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::add_s8)(const void *src1, const void *src2, void *dst, int num) |
Add 2 int8_t vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::add_u16)(const void *src1, const void *src2, void *dst, int num) |
Add 2 uint16_t vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::add_u16_s)(const void *src1, const void *src2, void *dst, int num) |
Add 2 uint16_t vectors (for audio stored as unsigned).
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::add_s16)(const void *src1, const void *src2, void *dst, int num) |
Add 2 int16_t vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::add_s32)(const void *src1, const void *src2, void *dst, int num) |
Add 2 int32_t vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::add_float)(const void *src1, const void *src2, void *dst, int num) |
Add 2 float vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::add_double)(const void *src1, const void *src2, void *dst, int num) |
Add 2 float vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::sub_u8)(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 uint8_t vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::sub_u8_s)(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 uint8_t vectors (for audio stored as unsigned).
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::sub_s8)(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 int8_t vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::sub_u16)(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 uint16_t vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::sub_u16_s)(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 uint16_t vectors (for audio stored as unsigned).
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::sub_s16)(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 int16_t vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::sub_s32)(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 int32_t vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::sub_float)(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 float vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst
void(* gavl_dsp_funcs_t::sub_double)(const void *src1, const void *src2, void *dst, int num) |
Subtract 2 float vectors.
src1 | Source 1 | |
src2 | Source 2 | |
dst | Destination | |
num | Number of entries |
src1 and/or src2 can be identical to dst