hvirtual/quicktime/ffmpeg/libavcodec/i386/vp3dsp_mmx.c File Reference

#include "../dsputil.h"
#include "mmx.h"

Include dependency graph for vp3dsp_mmx.c:

Go to the source code of this file.

Defines

#define IdctAdjustBeforeShift   8
#define r0   mm0
#define r1   mm1
#define r2   mm2
#define r3   mm3
#define r4   mm4
#define r5   mm5
#define r6   mm6
#define r7   mm7
#define BeginIDCT()
#define RowIDCT()
#define ColumnIDCT()
#define Transpose()
#define C(x)   (idct_constants + 16 + (x - 1) * 4)
#define Eight   (idct_constants + 44)
#define I(K)   (output_data + K * 8)
#define J(K)   (output_data + ((K - 4) * 8) + 4)
#define I(K)   (output_data + (K * 8) + 32)
#define J(K)   (output_data + ((K - 4) * 8) + 36)
#define I(K)   (output_data + K * 8)
#define J(K)   (output_data + K * 8)
#define I(K)   (output_data + (K * 8) + 4)
#define J(K)   (output_data + (K * 8) + 4)

Functions

void ff_vp3_dsp_init_mmx (void)
void ff_vp3_idct_mmx (int16_t *output_data)

Variables

static uint16_t idct_constants [(4+7+1)*4]
static const uint16_t idct_cosine_table [7]


Detailed Description

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

Definition in file vp3dsp_mmx.c.


Define Documentation

 
#define BeginIDCT (  ) 

Definition at line 49 of file vp3dsp_mmx.c.

#define C (  )     (idct_constants + 16 + (x - 1) * 4)

 
#define ColumnIDCT (  ) 

Definition at line 150 of file vp3dsp_mmx.c.

Referenced by ff_vp3_idct_mmx().

#define Eight   (idct_constants + 44)

Referenced by ff_vp3_idct_sse2().

#define I (  )     (output_data + (K * 8) + 4)

#define I (  )     (output_data + K * 8)

#define I (  )     (output_data + (K * 8) + 32)

#define I (  )     (output_data + K * 8)

#define IdctAdjustBeforeShift   8

Definition at line 27 of file vp3dsp_mmx.c.

Referenced by ff_vp3_dsp_init_mmx(), and idct().

#define J (  )     (output_data + (K * 8) + 4)

#define J (  )     (output_data + K * 8)

#define J (  )     (output_data + ((K - 4) * 8) + 36)

#define J (  )     (output_data + ((K - 4) * 8) + 4)

#define r0   mm0

Definition at line 39 of file vp3dsp_mmx.c.

#define r1   mm1

Definition at line 40 of file vp3dsp_mmx.c.

Referenced by avg4(), and wma_lsp_to_curve_init().

#define r2   mm2

Definition at line 41 of file vp3dsp_mmx.c.

Referenced by avg4(), BC_WidgetGrid::calculate_maxs(), and wma_lsp_to_curve_init().

#define r3   mm3

Definition at line 42 of file vp3dsp_mmx.c.

#define r4   mm4

Definition at line 43 of file vp3dsp_mmx.c.

#define r5   mm5

Definition at line 44 of file vp3dsp_mmx.c.

#define r6   mm6

Definition at line 45 of file vp3dsp_mmx.c.

#define r7   mm7

Definition at line 46 of file vp3dsp_mmx.c.

 
#define RowIDCT (  ) 

Value:

{ \
    \
    BeginIDCT(); \
    \
    movq_m2r(*I(2), r3);   /* r3 = D. */ \
    psubsw_r2r(r7, r4);    /* r4 = E. = E - G */ \
    paddsw_r2r(r1, r1);    /* r1 = H. + H. */ \
    paddsw_r2r(r7, r7);    /* r7 = G + G */ \
    paddsw_r2r(r2, r1);    /* r1 = R1 = A.. + H. */ \
    paddsw_r2r(r4, r7);    /* r7 = G. = E + G */ \
    psubsw_r2r(r3, r4);    /* r4 = R4 = E. - D. */ \
    paddsw_r2r(r3, r3); \
    psubsw_r2r(r5, r6);    /* r6 = R6 = F. - B.. */ \
    paddsw_r2r(r5, r5); \
    paddsw_r2r(r4, r3);    /* r3 = R3 = E. + D. */ \
    paddsw_r2r(r6, r5);    /* r5 = R5 = F. + B.. */ \
    psubsw_r2r(r0, r7);    /* r7 = R7 = G. - C. */ \
    paddsw_r2r(r0, r0); \
    movq_r2m(r1, *I(1));   /* save R1 */ \
    paddsw_r2r(r7, r0);    /* r0 = R0 = G. + C. */ \
}

Definition at line 127 of file vp3dsp_mmx.c.

Referenced by ff_vp3_idct_mmx().

 
#define Transpose (  ) 

Definition at line 222 of file vp3dsp_mmx.c.

Referenced by ff_vp3_idct_mmx().


Function Documentation

void ff_vp3_dsp_init_mmx ( void   ) 

Definition at line 260 of file vp3dsp_mmx.c.

References idct_constants, idct_cosine_table, and IdctAdjustBeforeShift.

Referenced by dsputil_init_mmx().

void ff_vp3_idct_mmx ( int16_t *  output_data  ) 

Definition at line 275 of file vp3dsp_mmx.c.

References ColumnIDCT, RowIDCT, and Transpose.

Referenced by dsputil_init_mmx(), ff_vp3_idct_add_mmx(), and ff_vp3_idct_put_mmx().


Variable Documentation

uint16_t idct_constants[(4+7+1)*4] [static]

Definition at line 34 of file vp3dsp_mmx.c.

Referenced by ff_vp3_dsp_init_mmx().

const uint16_t idct_cosine_table[7] [static]

Initial value:

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

Definition at line 35 of file vp3dsp_mmx.c.

Referenced by ff_vp3_dsp_init_mmx().


Generated on Mon Apr 28 14:04:37 2008 for Cinelerra by  doxygen 1.5.5