gavl
gavl_dsp_funcs_t Struct Reference

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.
void(*) shift_up_16 (void *ptr, int num, int bits)
 Shift up.
void(*) shift_down_16 (void *ptr, int num, int bits)
 Shift down.

Detailed Description

Function table.

This structure contains pointers to the available DSP functions.

Field Documentation

◆ sad_rgb15

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).

Parameters
src_1Plane 1
src_2Plane 2
stride_1Byte distance between scanlines for src_1
stride_2Byte distance between scanlines for src_2
wWidth
hHeight
Returns
The sum of absolute differences

The RGB values will be scaled to 8 bit before the differences are calculated.

◆ sad_rgb16

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).

Parameters
src_1Plane 1
src_2Plane 2
stride_1Byte distance between scanlines for src_1
stride_2Byte distance between scanlines for src_2
wWidth
hHeight
Returns
The sum of absolute differences

The RGB values will be scaled to 8 bit before the differences are calculated.

◆ sad_8

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).

Parameters
src_1Plane 1
src_2Plane 2
stride_1Byte distance between scanlines for src_1
stride_2Byte distance between scanlines for src_2
wWidth
hHeight
Returns
The sum of absolute differences

◆ sad_16

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).

Parameters
src_1Plane 1
src_2Plane 2
stride_1Byte distance between scanlines for src_1
stride_2Byte distance between scanlines for src_2
wWidth
hHeight
Returns
The sum of absolute differences

◆ sad_f

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).

Parameters
src_1Plane 1
src_2Plane 2
stride_1Byte distance between scanlines for src_1
stride_2Byte distance between scanlines for src_2
wWidth
hHeight
Returns
The sum of absolute differences

◆ average_rgb15

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).

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of pixels

◆ average_rgb16

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).

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of pixels

◆ average_8

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).

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of bytes

◆ average_16

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).

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of shorts

◆ average_f

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).

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of floats

◆ interpolate_rgb15

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).

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of pixels
facFactor for src_1 (0.0 .. 1.0)

Sets the destination to src_1 * fac + src_2 * (1.0-fac)

◆ interpolate_rgb16

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).

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of pixels
facFactor for src_1 (0.0 .. 1.0)

Sets the destination to src_1 * fac + src_2 * (1.0-fac)

◆ interpolate_8

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).

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of bytes
facFactor for src_1 (0.0 .. 1.0)

Sets the destination to src_1 * fac + src_2 * (1.0-fac)

◆ interpolate_16

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).

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of shorts
facFactor for src_1 (0.0 .. 1.0)

Sets the destination to src_1 * fac + src_2 * (1.0-fac)

◆ interpolate_f

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).

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of floats
facFactor for src_1 (0.0 .. 1.0)

Sets the destination to src_1 * fac + src_2 * (1.0-fac)

◆ bswap_16

void(*) gavl_dsp_funcs_t::bswap_16(void *ptr, int len)

Do 16 bit endian swapping.

Parameters
ptrPointer to the data
lenLen in 16 bit words

◆ bswap_32

void(*) gavl_dsp_funcs_t::bswap_32(void *ptr, int len)

Do 32 byte endian swapping.

Parameters
ptrPointer to the data
lenLen in 32 bit doublewords

◆ bswap_64

void(*) gavl_dsp_funcs_t::bswap_64(void *ptr, int len)

Do 64 byte endian swapping.

Parameters
ptrPointer to the data
lenLen in 64 bit quadwords

◆ add_u8

void(*) gavl_dsp_funcs_t::add_u8(const void *src1, const void *src2, void *dst, int num)

Add 2 uint8_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ add_u8_s

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).

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ add_s8

void(*) gavl_dsp_funcs_t::add_s8(const void *src1, const void *src2, void *dst, int num)

Add 2 int8_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ add_u16

void(*) gavl_dsp_funcs_t::add_u16(const void *src1, const void *src2, void *dst, int num)

Add 2 uint16_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ add_u16_s

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).

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ add_s16

void(*) gavl_dsp_funcs_t::add_s16(const void *src1, const void *src2, void *dst, int num)

Add 2 int16_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ add_s32

void(*) gavl_dsp_funcs_t::add_s32(const void *src1, const void *src2, void *dst, int num)

Add 2 int32_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ add_float

void(*) gavl_dsp_funcs_t::add_float(const void *src1, const void *src2, void *dst, int num)

Add 2 float vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ add_double

void(*) gavl_dsp_funcs_t::add_double(const void *src1, const void *src2, void *dst, int num)

Add 2 float vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ sub_u8

void(*) gavl_dsp_funcs_t::sub_u8(const void *src1, const void *src2, void *dst, int num)

Subtract 2 uint8_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ sub_u8_s

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).

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ sub_s8

void(*) gavl_dsp_funcs_t::sub_s8(const void *src1, const void *src2, void *dst, int num)

Subtract 2 int8_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ sub_u16

void(*) gavl_dsp_funcs_t::sub_u16(const void *src1, const void *src2, void *dst, int num)

Subtract 2 uint16_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ sub_u16_s

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).

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ sub_s16

void(*) gavl_dsp_funcs_t::sub_s16(const void *src1, const void *src2, void *dst, int num)

Subtract 2 int16_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ sub_s32

void(*) gavl_dsp_funcs_t::sub_s32(const void *src1, const void *src2, void *dst, int num)

Subtract 2 int32_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ sub_float

void(*) gavl_dsp_funcs_t::sub_float(const void *src1, const void *src2, void *dst, int num)

Subtract 2 float vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ sub_double

void(*) gavl_dsp_funcs_t::sub_double(const void *src1, const void *src2, void *dst, int num)

Subtract 2 float vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

◆ shift_up_16

void(*) gavl_dsp_funcs_t::shift_up_16(void *ptr, int num, int bits)

Shift up.

Parameters
ptrPointer
lenNumber of 16 bit elements
bitsNumber of bits to shift

◆ shift_down_16

void(*) gavl_dsp_funcs_t::shift_down_16(void *ptr, int num, int bits)

Shift down.

Parameters
ptrPointer
lenNumber of 16 bit elements
bitsNumber of bits to shift

The documentation for this struct was generated from the following file: