- Main Page
- Modules
- Data Structures
- Files
- Directories
- Related Pages

- Data Structures
- Data Fields

# gavl_dsp_funcs_t Struct Reference
[DSP Context]

Function table. More...

`#include <gavldsp.h>`

## Data Fields
int(* | sad_rgb15 )(uint8_t *src_1, 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 )(uint8_t *src_1, 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 )(uint8_t *src_1, 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 )(uint8_t *src_1, 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 )(uint8_t *src_1, uint8_t *src_2, int stride_1, int stride_2, int w, int h)
| Get the sum of absolute differences (float).
void(* | average_rgb15 )(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num)
| Average 2 scanlines (RGB/BGR15).
void(* | average_rgb16 )(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num)
| Average 2 scanlines (RGB/BGR16).
void(* | average_8 )(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num)
| Average 2 scanlines (8 bit).
void(* | average_16 )(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num)
| Average 2 scanlines (16 bit).
void(* | average_f )(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num)
| Average 2 scanlines (float).
void(* | interpolate_rgb15 )(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num, float)
| Interpolate 2 scanlines (RGB/BGR15).
void(* | interpolate_rgb16 )(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num, float fac)
| Interpolate 2 scanlines (RGB/BGR16).
void(* | interpolate_8 )(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num, float fac)
| Interpolate 2 scanlines (8 bit).
void(* | interpolate_16 )(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num, float fac)
| Interpolate 2 scanlines (16 bit).
void(* | interpolate_f )(uint8_t *src_1, 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.

## Detailed Description

Function table.

This structure contains pointers to the available DSP functions.

## Field Documentation

int(* gavl_dsp_funcs_t::sad_rgb15)(uint8_t *src_1, uint8_t *src_2, int stride_1, int stride_2, int w, int h)

Get the sum of absolute differences (RGB/BGR15).

Parameters:

  | 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

Returns:
  The sum of absolute differences

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

int(* gavl_dsp_funcs_t::sad_rgb16)(uint8_t *src_1, uint8_t *src_2, int stride_1, int stride_2, int w, int h)

Get the sum of absolute differences (RGB/BGR16).

Parameters:

  | 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

Returns:
  The sum of absolute differences

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

int(* gavl_dsp_funcs_t::sad_8)(uint8_t *src_1, uint8_t *src_2, int stride_1, int stride_2, int w, int h)

Get the sum of absolute differences (8 bit).

Parameters:

  | 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

Returns:
  The sum of absolute differences

int(* gavl_dsp_funcs_t::sad_16)(uint8_t *src_1, uint8_t *src_2, int stride_1, int stride_2, int w, int h)

Get the sum of absolute differences (16 bit).

Parameters:

  | 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

Returns:
  The sum of absolute differences

float(* gavl_dsp_funcs_t::sad_f)(uint8_t *src_1, uint8_t *src_2, int stride_1, int stride_2, int w, int h)

Get the sum of absolute differences (float).

Parameters:

  | 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

Returns:
  The sum of absolute differences

void(* gavl_dsp_funcs_t::average_rgb15)(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num)

Average 2 scanlines (RGB/BGR15).

Parameters:

  | src_1 | Scanline 1
  | src_2 | Scanline 2
  | dst | Destination
  | num | Number of pixels

void(* gavl_dsp_funcs_t::average_rgb16)(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num)

Average 2 scanlines (RGB/BGR16).

Parameters:

  | src_1 | Scanline 1
  | src_2 | Scanline 2
  | dst | Destination
  | num | Number of pixels

void(* gavl_dsp_funcs_t::average_8)(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num)

Average 2 scanlines (8 bit).

Parameters:

  | src_1 | Scanline 1
  | src_2 | Scanline 2
  | dst | Destination
  | num | Number of bytes

void(* gavl_dsp_funcs_t::average_16)(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num)

Average 2 scanlines (16 bit).

Parameters:

  | src_1 | Scanline 1
  | src_2 | Scanline 2
  | dst | Destination
  | num | Number of shorts

void(* gavl_dsp_funcs_t::average_f)(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num)

Average 2 scanlines (float).

Parameters:

  | src_1 | Scanline 1
  | src_2 | Scanline 2
  | dst | Destination
  | num | Number of floats

void(* gavl_dsp_funcs_t::interpolate_rgb15)(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num, float)

Interpolate 2 scanlines (RGB/BGR15).

Parameters:

  | 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)(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num, float fac)

Interpolate 2 scanlines (RGB/BGR16).

Parameters:

  | 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)(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num, float fac)

Interpolate 2 scanlines (8 bit).

Parameters:

  | 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)(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num, float fac)

Interpolate 2 scanlines (16 bit).

Parameters:

  | 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)(uint8_t *src_1, uint8_t *src_2, uint8_t *dst, int num, float fac)

Interpolate 2 scanlines (float).

Parameters:

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

Parameters:

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

Parameters:

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

Parameters:

  | ptr | Pointer to the data
  | len | Len in 64 bit quadwords

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

- /sda4/XXX/YYY/F/gavl-1.0.0/include/gavl/gavldsp.h