#include "dsputil.h"
#include "mmx.h"
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) |
void | ff_vp3_idct_put_mmx (uint8_t *dest, int line_size, DCTELEM *block) |
void | ff_vp3_idct_add_mmx (uint8_t *dest, int line_size, DCTELEM *block) |
Variables | |
static uint16_t | idct_constants [(4+7+1)*4] |
static const uint16_t | idct_cosine_table [7] |
Definition in file vp3dsp_mmx.c.
#define BeginIDCT | ( | ) |
Definition at line 51 of file vp3dsp_mmx.c.
#define C | ( | x | ) | (idct_constants + 16 + (x - 1) * 4) |
#define ColumnIDCT | ( | ) |
#define Eight (idct_constants + 44) |
Referenced by ff_vp3_idct_sse2().
#define I | ( | K | ) | (output_data + (K * 8) + 4) |
#define I | ( | K | ) | (output_data + K * 8) |
#define I | ( | K | ) | (output_data + (K * 8) + 32) |
#define I | ( | K | ) | (output_data + K * 8) |
#define IdctAdjustBeforeShift 8 |
#define J | ( | K | ) | (output_data + (K * 8) + 4) |
#define J | ( | K | ) | (output_data + K * 8) |
#define J | ( | K | ) | (output_data + ((K - 4) * 8) + 36) |
#define J | ( | K | ) | (output_data + ((K - 4) * 8) + 4) |
#define r0 mm0 |
Definition at line 41 of file vp3dsp_mmx.c.
#define r1 mm1 |
Definition at line 42 of file vp3dsp_mmx.c.
Referenced by avg4(), ff_rtp_send_h264(), ff_rtp_send_mpegvideo(), ff_simple_idct_add_vis(), ff_simple_idct_put_vis(), imc_decode_init(), rgb24_to_yuv420p(), and wma_lsp_to_curve_init().
#define r2 mm2 |
Definition at line 43 of file vp3dsp_mmx.c.
Referenced by avg4(), ff_simple_idct_add_vis(), ff_simple_idct_put_vis(), imc_decode_init(), and wma_lsp_to_curve_init().
#define r3 mm3 |
Definition at line 44 of file vp3dsp_mmx.c.
Referenced by ff_simple_idct_add_vis(), and ff_simple_idct_put_vis().
#define r4 mm4 |
Definition at line 45 of file vp3dsp_mmx.c.
Referenced by ff_simple_idct_add_vis(), ff_simple_idct_put_vis(), and gmc_mmx().
#define r5 mm5 |
Definition at line 46 of file vp3dsp_mmx.c.
Referenced by ff_simple_idct_add_vis(), and ff_simple_idct_put_vis().
#define r6 mm6 |
Definition at line 47 of file vp3dsp_mmx.c.
Referenced by ff_simple_idct_add_vis(), and ff_simple_idct_put_vis().
#define r7 mm7 |
Definition at line 48 of file vp3dsp_mmx.c.
Referenced by ff_simple_idct_add_vis(), and ff_simple_idct_put_vis().
#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 129 of file vp3dsp_mmx.c.
Referenced by ff_vp3_idct_mmx().
#define Transpose | ( | ) |
void ff_vp3_dsp_init_mmx | ( | void | ) |
void ff_vp3_idct_mmx | ( | int16_t * | output_data | ) |
Definition at line 277 of file vp3dsp_mmx.c.
Referenced by dsputil_init_mmx(), ff_vp3_idct_add_mmx(), and ff_vp3_idct_put_mmx().
uint16_t idct_constants[(4+7+1)*4] [static] |
const uint16_t idct_cosine_table[7] [static] |
Initial value:
{ 64277, 60547, 54491, 46341, 36410, 25080, 12785 }
Definition at line 37 of file vp3dsp_mmx.c.
Referenced by ff_vp3_dsp_init_mmx().