libavcodec/x86/vp3dsp_sse2.c File Reference

SSE2-optimized functions cribbed from the original VP3 source code. More...

#include "libavcodec/dsputil.h"
#include "dsputil_mmx.h"
#include "vp3dsp_sse2.h"

Go to the source code of this file.

Defines

#define VP3_1D_IDCT_SSE2(ADD, SHIFT)
#define PUT_BLOCK(r0, r1, r2, r3, r4, r5, r6, r7)
#define NOP(xmm)
#define SHIFT4(xmm)   "psraw $4, "#xmm"\n\t"
#define ADD8(xmm)   "paddsw %2, "#xmm"\n\t"
#define I(x)   AV_STRINGIFY(16*x)"(%0)"
#define O(x)   I(x)
#define C(x)   AV_STRINGIFY(16*(x-1))"(%1)"

Functions

void ff_vp3_idct_sse2 (int16_t *input_data)
void ff_vp3_idct_put_sse2 (uint8_t *dest, int line_size, DCTELEM *block)
void ff_vp3_idct_add_sse2 (uint8_t *dest, int line_size, DCTELEM *block)

Variables

const uint16_t ff_vp3_idct_data [7 *8]


Detailed Description

SSE2-optimized functions cribbed from the original VP3 source code.

Definition in file vp3dsp_sse2.c.


Define Documentation

#define ADD8 ( xmm   )     "paddsw %2, "#xmm"\n\t"

Definition at line 157 of file vp3dsp_sse2.c.

#define C (  )     AV_STRINGIFY(16*(x-1))"(%1)"

#define I (  )     AV_STRINGIFY(16*x)"(%0)"

#define NOP ( xmm   ) 

Definition at line 155 of file vp3dsp_sse2.c.

#define O (  )     I(x)

#define PUT_BLOCK ( r0,
r1,
r2,
r3,
r4,
r5,
r6,
r7   ) 

Value:

"movdqa " #r0 ", " O(0) "\n\t" \
    "movdqa " #r1 ", " O(1) "\n\t" \
    "movdqa " #r2 ", " O(2) "\n\t" \
    "movdqa " #r3 ", " O(3) "\n\t" \
    "movdqa " #r4 ", " O(4) "\n\t" \
    "movdqa " #r5 ", " O(5) "\n\t" \
    "movdqa " #r6 ", " O(6) "\n\t" \
    "movdqa " #r7 ", " O(7) "\n\t"

Definition at line 145 of file vp3dsp_sse2.c.

Referenced by ff_vp3_idct_sse2().

#define SHIFT4 ( xmm   )     "psraw $4, "#xmm"\n\t"

Definition at line 156 of file vp3dsp_sse2.c.

#define VP3_1D_IDCT_SSE2 ( ADD,
SHIFT   ) 

Definition at line 42 of file vp3dsp_sse2.c.

Referenced by ff_vp3_idct_sse2().


Function Documentation

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

Definition at line 183 of file vp3dsp_sse2.c.

Referenced by dsputil_init_mmx().

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

Definition at line 177 of file vp3dsp_sse2.c.

Referenced by dsputil_init_mmx().

void ff_vp3_idct_sse2 ( int16_t *  input_data  ) 

Definition at line 159 of file vp3dsp_sse2.c.

Referenced by dsputil_init_mmx(), ff_vp3_idct_add_sse2(), and ff_vp3_idct_put_sse2().


Variable Documentation

const uint16_t ff_vp3_idct_data[7 *8]

Initial value:

{
    64277,64277,64277,64277,64277,64277,64277,64277,
    60547,60547,60547,60547,60547,60547,60547,60547,
    54491,54491,54491,54491,54491,54491,54491,54491,
    46341,46341,46341,46341,46341,46341,46341,46341,
    36410,36410,36410,36410,36410,36410,36410,36410,
    25080,25080,25080,25080,25080,25080,25080,25080,
    12785,12785,12785,12785,12785,12785,12785,12785
}

Definition at line 30 of file vp3dsp_sse2.c.

Referenced by ff_vp3_idct_mmx(), and ff_vp3_idct_sse2().


Generated on Fri Oct 26 02:36:54 2012 for FFmpeg by  doxygen 1.5.8