#include "libavcodec/dsputil.h"
#include "asm.h"
Go to the source code of this file.
Defines | |
#define | OP(LOAD, STORE) |
#define | OP_X2(LOAD, STORE) |
#define | OP_Y2(LOAD, STORE) |
#define | OP_XY2(LOAD, STORE) |
#define | MAKE_OP(OPNAME, SUFF, OPKIND, STORE) |
#define | PIXOP(OPNAME, STORE) |
#define | AVG2 avg2 |
#define | AVG4 avg4 |
#define | AVG4_ROUNDER BYTE_VEC(0x02) |
#define | STORE(l, b) stq(l, b) |
#define | STORE(l, b) stq(AVG2(l, ldq(b)), b); |
#define | AVG2 avg2_no_rnd |
#define | AVG4 avg4_no_rnd |
#define | AVG4_ROUNDER BYTE_VEC(0x01) |
#define | STORE(l, b) stq(l, b) |
#define | STORE(l, b) stq(AVG2(l, ldq(b)), b); |
Functions | |
void | ff_simple_idct_axp (DCTELEM *block) |
void | ff_simple_idct_put_axp (uint8_t *dest, int line_size, DCTELEM *block) |
void | ff_simple_idct_add_axp (uint8_t *dest, int line_size, DCTELEM *block) |
void | put_pixels_axp_asm (uint8_t *block, const uint8_t *pixels, int line_size, int h) |
void | put_pixels_clamped_mvi_asm (const DCTELEM *block, uint8_t *pixels, int line_size) |
void | add_pixels_clamped_mvi_asm (const DCTELEM *block, uint8_t *pixels, int line_size) |
void | get_pixels_mvi (DCTELEM *restrict block, const uint8_t *restrict pixels, int line_size) |
void | diff_pixels_mvi (DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride) |
int | pix_abs8x8_mvi (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
int | pix_abs16x16_mvi_asm (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
int | pix_abs16x16_x2_mvi (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
int | pix_abs16x16_y2_mvi (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
int | pix_abs16x16_xy2_mvi (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
static void | clear_blocks_axp (DCTELEM *blocks) |
static uint64_t | avg2_no_rnd (uint64_t a, uint64_t b) |
static uint64_t | avg2 (uint64_t a, uint64_t b) |
PIXOP (put, STORE) | |
PIXOP (avg, STORE) | |
PIXOP (put_no_rnd, STORE) | |
PIXOP (avg_no_rnd, STORE) | |
void | put_pixels16_axp_asm (uint8_t *block, const uint8_t *pixels, int line_size, int h) |
void | dsputil_init_alpha (DSPContext *c, AVCodecContext *avctx) |
Variables | |
void(* | put_pixels_clamped_axp_p )(const DCTELEM *block, uint8_t *pixels, int line_size) |
void(* | add_pixels_clamped_axp_p )(const DCTELEM *block, uint8_t *pixels, int line_size) |
#define AVG2 avg2_no_rnd |
Definition at line 273 of file dsputil_alpha.c.
#define AVG2 avg2 |
Definition at line 273 of file dsputil_alpha.c.
#define AVG4 avg4_no_rnd |
Definition at line 274 of file dsputil_alpha.c.
#define AVG4 avg4 |
Definition at line 274 of file dsputil_alpha.c.
#define AVG4_ROUNDER BYTE_VEC(0x01) |
Definition at line 275 of file dsputil_alpha.c.
#define AVG4_ROUNDER BYTE_VEC(0x02) |
Definition at line 275 of file dsputil_alpha.c.
#define MAKE_OP | ( | OPNAME, | |||
SUFF, | |||||
OPKIND, | |||||
STORE | ) |
Value:
static void OPNAME ## _pixels ## SUFF ## _axp \ (uint8_t *restrict block, const uint8_t *restrict pixels, \ int line_size, int h) \ { \ if ((size_t) pixels & 0x7) { \ OPKIND(uldq, STORE); \ } else { \ OPKIND(ldq, STORE); \ } \ } \ \ static void OPNAME ## _pixels16 ## SUFF ## _axp \ (uint8_t *restrict block, const uint8_t *restrict pixels, \ int line_size, int h) \ { \ OPNAME ## _pixels ## SUFF ## _axp(block, pixels, line_size, h); \ OPNAME ## _pixels ## SUFF ## _axp(block + 8, pixels + 8, line_size, h); \ }
Definition at line 231 of file dsputil_alpha.c.
#define OP | ( | LOAD, | |||
STORE | ) |
Value:
Definition at line 168 of file dsputil_alpha.c.
Referenced by put_no_rnd_pixels8_y2_iwmmxt(), put_pixels8_y2_iwmmxt(), and tempNoiseReducer_TMPL().
#define OP_X2 | ( | LOAD, | |||
STORE | ) |
#define OP_XY2 | ( | LOAD, | |||
STORE | ) |
Value:
do { \ uint64_t pix1 = LOAD(pixels); \ uint64_t pix2 = pix1 >> 8 | ((uint64_t) pixels[8] << 56); \ uint64_t pix_l = (pix1 & BYTE_VEC(0x03)) \ + (pix2 & BYTE_VEC(0x03)); \ uint64_t pix_h = ((pix1 & ~BYTE_VEC(0x03)) >> 2) \ + ((pix2 & ~BYTE_VEC(0x03)) >> 2); \ \ do { \ uint64_t npix1, npix2; \ uint64_t npix_l, npix_h; \ uint64_t avg; \ \ pixels += line_size; \ npix1 = LOAD(pixels); \ npix2 = npix1 >> 8 | ((uint64_t) pixels[8] << 56); \ npix_l = (npix1 & BYTE_VEC(0x03)) \ + (npix2 & BYTE_VEC(0x03)); \ npix_h = ((npix1 & ~BYTE_VEC(0x03)) >> 2) \ + ((npix2 & ~BYTE_VEC(0x03)) >> 2); \ avg = (((pix_l + npix_l + AVG4_ROUNDER) >> 2) & BYTE_VEC(0x03)) \ + pix_h + npix_h; \ STORE(avg, block); \ \ block += line_size; \ pix_l = npix_l; \ pix_h = npix_h; \ } while (--h); \ } while (0)
Definition at line 200 of file dsputil_alpha.c.
#define OP_Y2 | ( | LOAD, | |||
STORE | ) |
#define PIXOP | ( | OPNAME, | |||
STORE | ) |
#define STORE | ( | l, | |||
b | ) | stq(AVG2(l, ldq(b)), b); |
Definition at line 280 of file dsputil_alpha.c.
#define STORE | ( | l, | |||
b | ) | stq(l, b) |
Definition at line 280 of file dsputil_alpha.c.
#define STORE | ( | l, | |||
b | ) | stq(AVG2(l, ldq(b)), b); |
Definition at line 280 of file dsputil_alpha.c.
#define STORE | ( | l, | |||
b | ) | stq(l, b) |
void add_pixels_clamped_mvi_asm | ( | const DCTELEM * | block, | |
uint8_t * | pixels, | |||
int | line_size | |||
) |
Referenced by dsputil_init_alpha().
static uint64_t avg2 | ( | uint64_t | a, | |
uint64_t | b | |||
) | [inline, static] |
Definition at line 145 of file dsputil_alpha.c.
static uint64_t avg2_no_rnd | ( | uint64_t | a, | |
uint64_t | b | |||
) | [inline, static] |
Definition at line 140 of file dsputil_alpha.c.
static void clear_blocks_axp | ( | DCTELEM * | blocks | ) | [static] |
void diff_pixels_mvi | ( | DCTELEM * | block, | |
const uint8_t * | s1, | |||
const uint8_t * | s2, | |||
int | stride | |||
) |
void dsputil_init_alpha | ( | DSPContext * | c, | |
AVCodecContext * | avctx | |||
) |
void ff_simple_idct_add_axp | ( | uint8_t * | dest, | |
int | line_size, | |||
DCTELEM * | block | |||
) |
void ff_simple_idct_axp | ( | DCTELEM * | block | ) |
Definition at line 258 of file simple_idct_alpha.c.
Referenced by dsputil_init_alpha(), ff_simple_idct_add_axp(), and ff_simple_idct_put_axp().
void ff_simple_idct_put_axp | ( | uint8_t * | dest, | |
int | line_size, | |||
DCTELEM * | block | |||
) |
void get_pixels_mvi | ( | DCTELEM *restrict | block, | |
const uint8_t *restrict | pixels, | |||
int | line_size | |||
) |
int pix_abs16x16_mvi_asm | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) |
Referenced by dsputil_init_alpha().
int pix_abs16x16_x2_mvi | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) |
int pix_abs16x16_xy2_mvi | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) |
int pix_abs16x16_y2_mvi | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) |
int pix_abs8x8_mvi | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) |
PIXOP | ( | avg_no_rnd | , | |
STORE | ||||
) |
PIXOP | ( | put_no_rnd | , | |
STORE | ||||
) |
PIXOP | ( | avg | , | |
STORE | ||||
) |
PIXOP | ( | put | , | |
STORE | ||||
) |
void put_pixels16_axp_asm | ( | uint8_t * | block, | |
const uint8_t * | pixels, | |||
int | line_size, | |||
int | h | |||
) |
void put_pixels_axp_asm | ( | uint8_t * | block, | |
const uint8_t * | pixels, | |||
int | line_size, | |||
int | h | |||
) |
Referenced by dsputil_init_alpha(), and put_pixels16_axp_asm().
void put_pixels_clamped_mvi_asm | ( | const DCTELEM * | block, | |
uint8_t * | pixels, | |||
int | line_size | |||
) |
Referenced by dsputil_init_alpha().
void(* add_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels, int line_size) |
Referenced by dsputil_init_alpha(), and ff_simple_idct_add_axp().
void(* put_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels, int line_size) |
Referenced by dsputil_init_alpha(), and ff_simple_idct_put_axp().