|
gavl
|
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. | |
| void(*) | shift_up_copy_16 (void *dst, const void *src, int num, int bits) |
| Shift up and copy. | |
| void(*) | shift_down_copy_16 (void *dst, const void *src, int num, int bits) |
| Shift down. | |
| void(*) | shuffle_8_4 (void *dst, const void *src, int num, int *indices) |
| Shuffle bytes in 4 byte words. | |
| void(*) | shuffle_16_4 (void *dst, const void *src, int num, int *indices) |
| Shuffle 16 bit words in groups of 4. | |
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
| void(*) gavl_dsp_funcs_t::shift_up_16(void *ptr, int num, int bits) |
Shift up.
| ptr | Pointer |
| len | Number of 16 bit elements |
| bits | Number of bits to shift |
| void(*) gavl_dsp_funcs_t::shift_down_16(void *ptr, int num, int bits) |
Shift down.
| ptr | Pointer |
| len | Number of 16 bit elements |
| bits | Number of bits to shift |
| void(*) gavl_dsp_funcs_t::shift_up_copy_16(void *dst, const void *src, int num, int bits) |
Shift up and copy.
| src | Source |
| dst | Destination |
| len | Number of 16 bit elements |
| bits | Number of bits to shift |
| void(*) gavl_dsp_funcs_t::shift_down_copy_16(void *dst, const void *src, int num, int bits) |
Shift down.
| src | Source |
| dst | Destination |
| len | Number of 16 bit elements |
| bits | Number of bits to shift |
| void(*) gavl_dsp_funcs_t::shuffle_8_4(void *dst, const void *src, int num, int *indices) |
Shuffle bytes in 4 byte words.
| ptr | Pointer |
| len | Number of 32 bit elements |
| mask | 4 bytes with sources indices. 0x80 means clear. |
| void(*) gavl_dsp_funcs_t::shuffle_16_4(void *dst, const void *src, int num, int *indices) |
Shuffle 16 bit words in groups of 4.
| ptr | Pointer |
| len | Number of 64 bit elements |
| mask | 4 bytes with sources indices. 0x80 means clear. |