libavcodec/alpha/dsputil_alpha.c File Reference

#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 Documentation

#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:

do {                                        \
        STORE(LOAD(pixels), block);             \
        pixels += line_size;                    \
        block += line_size;                     \
    } while (--h)

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   ) 

Value:

do {                                                        \
        uint64_t pix1, pix2;                                    \
                                                                \
        pix1 = LOAD(pixels);                                    \
        pix2 = pix1 >> 8 | ((uint64_t) pixels[8] << 56);        \
        STORE(AVG2(pix1, pix2), block);                         \
        pixels += line_size;                                    \
        block += line_size;                                     \
    } while (--h)

Definition at line 175 of file dsputil_alpha.c.

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

Value:

do {                                        \
        uint64_t pix = LOAD(pixels);            \
        do {                                    \
            uint64_t next_pix;                  \
                                                \
            pixels += line_size;                \
            next_pix = LOAD(pixels);            \
            STORE(AVG2(pix, next_pix), block);  \
            block += line_size;                 \
            pix = next_pix;                     \
        } while (--h);                          \
    } while (0)

Definition at line 186 of file dsputil_alpha.c.

#define PIXOP ( OPNAME,
STORE   ) 

Value:

MAKE_OP(OPNAME, ,     OP,     STORE)        \
    MAKE_OP(OPNAME, _x2,  OP_X2,  STORE)        \
    MAKE_OP(OPNAME, _y2,  OP_Y2,  STORE)        \
    MAKE_OP(OPNAME, _xy2, OP_XY2, STORE)

Definition at line 251 of file dsputil_alpha.c.

#define STORE ( l,
 )     stq(AVG2(l, ldq(b)), b);

Definition at line 280 of file dsputil_alpha.c.

#define STORE ( l,
 )     stq(l, b)

Definition at line 280 of file dsputil_alpha.c.

#define STORE ( l,
 )     stq(AVG2(l, ldq(b)), b);

Definition at line 280 of file dsputil_alpha.c.

#define STORE ( l,
 )     stq(l, b)

Definition at line 280 of file dsputil_alpha.c.

Referenced by doVertDefFilter_altivec().


Function Documentation

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]

Definition at line 122 of file dsputil_alpha.c.

Referenced by dsputil_init_alpha().

void diff_pixels_mvi ( DCTELEM block,
const uint8_t *  s1,
const uint8_t *  s2,
int  stride 
)

Definition at line 42 of file motion_est_alpha.c.

Referenced by dsputil_init_alpha().

void dsputil_init_alpha ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 290 of file dsputil_alpha.c.

Referenced by dsputil_init().

void ff_simple_idct_add_axp ( uint8_t *  dest,
int  line_size,
DCTELEM block 
)

Definition at line 304 of file simple_idct_alpha.c.

Referenced by dsputil_init_alpha().

void ff_simple_idct_axp ( DCTELEM block  ) 

void ff_simple_idct_put_axp ( uint8_t *  dest,
int  line_size,
DCTELEM block 
)

Definition at line 298 of file simple_idct_alpha.c.

Referenced by dsputil_init_alpha().

void get_pixels_mvi ( DCTELEM *restrict  block,
const uint8_t *restrict  pixels,
int  line_size 
)

Definition at line 25 of file motion_est_alpha.c.

Referenced by dsputil_init_alpha().

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 
)

Definition at line 164 of file motion_est_alpha.c.

Referenced by dsputil_init_alpha().

int pix_abs16x16_xy2_mvi ( void *  v,
uint8_t *  pix1,
uint8_t *  pix2,
int  line_size,
int  h 
)

Definition at line 290 of file motion_est_alpha.c.

Referenced by dsputil_init_alpha().

int pix_abs16x16_y2_mvi ( void *  v,
uint8_t *  pix1,
uint8_t *  pix2,
int  line_size,
int  h 
)

Definition at line 237 of file motion_est_alpha.c.

Referenced by dsputil_init_alpha().

int pix_abs8x8_mvi ( void *  v,
uint8_t *  pix1,
uint8_t *  pix2,
int  line_size,
int  h 
)

Definition at line 89 of file motion_est_alpha.c.

Referenced by dsputil_init_alpha().

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 
)

Definition at line 283 of file dsputil_alpha.c.

Referenced by dsputil_init_alpha().

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 
)

Referenced by dsputil_init_alpha().


Variable Documentation

void(* add_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels, int line_size)

void(* put_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels, int line_size)


Generated on Fri Oct 26 02:35:42 2012 for FFmpeg by  doxygen 1.5.8