#include "../dsputil.h"#include "../simple_idct.h"#include "../mpegvideo.h"#include "mmx.h"#include "dsputil_mmx_rnd.h"#include "dsputil_mmx_avg.h"#include "h264dsp_mmx.c"

Go to the source code of this file.
Defines | |
| #define | JUMPALIGN() __asm __volatile (".balign 8"::) |
| #define | MOVQ_ZERO(regd) __asm __volatile ("pxor %%" #regd ", %%" #regd ::) |
| #define | MOVQ_WONE(regd) |
| #define | MOVQ_BFE(regd) |
| #define | MOVQ_BONE(regd) __asm __volatile ("movq %0, %%" #regd " \n\t" ::"m"(mm_bone)) |
| #define | MOVQ_WTWO(regd) __asm __volatile ("movq %0, %%" #regd " \n\t" ::"m"(mm_wtwo)) |
| #define | PAVGB_MMX_NO_RND(rega, regb, regr, regfe) |
| #define | PAVGB_MMX(rega, regb, regr, regfe) |
| #define | PAVGBP_MMX_NO_RND(rega, regb, regr,regc, regd, regp) |
| #define | PAVGBP_MMX(rega, regb, regr, regc, regd, regp) |
| #define | DEF(x, y) x ## _no_rnd_ ## y ##_mmx |
| #define | SET_RND MOVQ_WONE |
| #define | PAVGBP(a, b, c, d, e, f) PAVGBP_MMX_NO_RND(a, b, c, d, e, f) |
| #define | PAVGB(a, b, c, e) PAVGB_MMX_NO_RND(a, b, c, e) |
| #define | DEF(x, y) x ## _ ## y ##_mmx |
| #define | SET_RND MOVQ_WTWO |
| #define | PAVGBP(a, b, c, d, e, f) PAVGBP_MMX(a, b, c, d, e, f) |
| #define | PAVGB(a, b, c, e) PAVGB_MMX(a, b, c, e) |
| #define | DEF(x) x ## _3dnow |
| #define | PAVGB "pavgusb" |
| #define | DEF(x) x ## _mmx2 |
| #define | PAVGB "pavgb" |
| #define | H263_LOOP_FILTER |
| #define | put_no_rnd_pixels8_mmx(a, b, c, d) put_pixels8_mmx(a,b,c,d) |
| #define | put_no_rnd_pixels16_mmx(a, b, c, d) put_pixels16_mmx(a,b,c,d) |
| #define | QPEL_V_LOW(m3, m4, m5, m6, pw_20, pw_3, rnd, in0, in1, in2, in7, out, OP) |
| #define | QPEL_BASE(OPNAME, ROUNDER, RND, OP_MMX2, OP_3DNOW) |
| #define | QPEL_OP(OPNAME, ROUNDER, RND, OP, MMX) |
| #define | PUT_OP(a, b, temp, size) "mov" #size " " #a ", " #b " \n\t" |
| #define | AVG_3DNOW_OP(a, b, temp, size) |
| #define | AVG_MMX2_OP(a, b, temp, size) |
| #define | SET_QPEL_FUNC(postfix1, postfix2) |
| #define | dspfunc(PFX, IDX, NUM) |
| #define | dspfunc(PFX, IDX, NUM) |
Functions | |
| static const uint64_t mm_bone attribute_used | __attribute__ ((aligned(8))) |
| void | put_signed_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size) |
| void | add_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size) |
| static void | put_pixels4_mmx (uint8_t *block, const uint8_t *pixels, int line_size, int h) |
| static void | put_pixels8_mmx (uint8_t *block, const uint8_t *pixels, int line_size, int h) |
| static void | put_pixels16_mmx (uint8_t *block, const uint8_t *pixels, int line_size, int h) |
| static void | clear_blocks_mmx (DCTELEM *blocks) |
| static void | add_bytes_mmx (uint8_t *dst, uint8_t *src, int w) |
| static void | h263_v_loop_filter_mmx (uint8_t *src, int stride, int qscale) |
| static void | transpose4x4 (uint8_t *dst, uint8_t *src, int dst_stride, int src_stride) |
| static void | h263_h_loop_filter_mmx (uint8_t *src, int stride, int qscale) |
| static int | try_8x8basis_mmx (int16_t rem[64], int16_t weight[64], int16_t basis[64], int scale) |
| static void | add_8x8basis_mmx (int16_t rem[64], int16_t basis[64], int scale) |
| void | ff_mmx_idct (DCTELEM *block) |
| void | ff_mmxext_idct (DCTELEM *block) |
| void | ff_vp3_idct_sse2 (int16_t *input_data) |
| void | ff_vp3_idct_mmx (int16_t *data) |
| void | ff_vp3_dsp_init_mmx (void) |
| static void | ff_libmpeg2mmx_idct_put (uint8_t *dest, int line_size, DCTELEM *block) |
| static void | ff_libmpeg2mmx_idct_add (uint8_t *dest, int line_size, DCTELEM *block) |
| static void | ff_libmpeg2mmx2_idct_put (uint8_t *dest, int line_size, DCTELEM *block) |
| static void | ff_libmpeg2mmx2_idct_add (uint8_t *dest, int line_size, DCTELEM *block) |
| static void | ff_vp3_idct_put_sse2 (uint8_t *dest, int line_size, DCTELEM *block) |
| static void | ff_vp3_idct_add_sse2 (uint8_t *dest, int line_size, DCTELEM *block) |
| static void | ff_vp3_idct_put_mmx (uint8_t *dest, int line_size, DCTELEM *block) |
| static void | ff_vp3_idct_add_mmx (uint8_t *dest, int line_size, DCTELEM *block) |
| void | dsputil_init_mmx (DSPContext *c, AVCodecContext *avctx) |
Variables | |
| const uint8_t | ff_h263_loop_filter_strength [32] |
| int | mm_flags |
| static const unsigned char __align8 | vector128 [8] |
| #define DEF | ( | x | ) | x ## _mmx2 |
| #define DEF | ( | x | ) | x ## _3dnow |
| #define DEF | ( | x, | |||
| y | ) | x ## _ ## y ##_mmx |
| #define DEF | ( | x, | |||
| y | ) | x ## _no_rnd_ ## y ##_mmx |
| #define dspfunc | ( | PFX, | |||
| IDX, | |||||
| NUM | ) |
Value:
c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_3dnow; \ c->PFX ## _pixels_tab[IDX][ 1] = PFX ## NUM ## _mc10_3dnow; \ c->PFX ## _pixels_tab[IDX][ 2] = PFX ## NUM ## _mc20_3dnow; \ c->PFX ## _pixels_tab[IDX][ 3] = PFX ## NUM ## _mc30_3dnow; \ c->PFX ## _pixels_tab[IDX][ 4] = PFX ## NUM ## _mc01_3dnow; \ c->PFX ## _pixels_tab[IDX][ 5] = PFX ## NUM ## _mc11_3dnow; \ c->PFX ## _pixels_tab[IDX][ 6] = PFX ## NUM ## _mc21_3dnow; \ c->PFX ## _pixels_tab[IDX][ 7] = PFX ## NUM ## _mc31_3dnow; \ c->PFX ## _pixels_tab[IDX][ 8] = PFX ## NUM ## _mc02_3dnow; \ c->PFX ## _pixels_tab[IDX][ 9] = PFX ## NUM ## _mc12_3dnow; \ c->PFX ## _pixels_tab[IDX][10] = PFX ## NUM ## _mc22_3dnow; \ c->PFX ## _pixels_tab[IDX][11] = PFX ## NUM ## _mc32_3dnow; \ c->PFX ## _pixels_tab[IDX][12] = PFX ## NUM ## _mc03_3dnow; \ c->PFX ## _pixels_tab[IDX][13] = PFX ## NUM ## _mc13_3dnow; \ c->PFX ## _pixels_tab[IDX][14] = PFX ## NUM ## _mc23_3dnow; \ c->PFX ## _pixels_tab[IDX][15] = PFX ## NUM ## _mc33_3dnow
| #define dspfunc | ( | PFX, | |||
| IDX, | |||||
| NUM | ) |
Value:
c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_mmx2; \ c->PFX ## _pixels_tab[IDX][ 1] = PFX ## NUM ## _mc10_mmx2; \ c->PFX ## _pixels_tab[IDX][ 2] = PFX ## NUM ## _mc20_mmx2; \ c->PFX ## _pixels_tab[IDX][ 3] = PFX ## NUM ## _mc30_mmx2; \ c->PFX ## _pixels_tab[IDX][ 4] = PFX ## NUM ## _mc01_mmx2; \ c->PFX ## _pixels_tab[IDX][ 5] = PFX ## NUM ## _mc11_mmx2; \ c->PFX ## _pixels_tab[IDX][ 6] = PFX ## NUM ## _mc21_mmx2; \ c->PFX ## _pixels_tab[IDX][ 7] = PFX ## NUM ## _mc31_mmx2; \ c->PFX ## _pixels_tab[IDX][ 8] = PFX ## NUM ## _mc02_mmx2; \ c->PFX ## _pixels_tab[IDX][ 9] = PFX ## NUM ## _mc12_mmx2; \ c->PFX ## _pixels_tab[IDX][10] = PFX ## NUM ## _mc22_mmx2; \ c->PFX ## _pixels_tab[IDX][11] = PFX ## NUM ## _mc32_mmx2; \ c->PFX ## _pixels_tab[IDX][12] = PFX ## NUM ## _mc03_mmx2; \ c->PFX ## _pixels_tab[IDX][13] = PFX ## NUM ## _mc13_mmx2; \ c->PFX ## _pixels_tab[IDX][14] = PFX ## NUM ## _mc23_mmx2; \ c->PFX ## _pixels_tab[IDX][15] = PFX ## NUM ## _mc33_mmx2
| #define H263_LOOP_FILTER |
Definition at line 527 of file dsputil_mmx.c.
Referenced by h263_h_loop_filter_mmx(), and h263_v_loop_filter_mmx().
| #define JUMPALIGN | ( | ) | __asm __volatile (".balign 8"::) |
| #define MOVQ_BFE | ( | regd | ) |
Value:
__asm __volatile ( \
"pcmpeqd %%" #regd ", %%" #regd " \n\t"\
"paddb %%" #regd ", %%" #regd " \n\t" ::)
| #define MOVQ_BONE | ( | regd | ) | __asm __volatile ("movq %0, %%" #regd " \n\t" ::"m"(mm_bone)) |
Referenced by avg_pixels8_xy2(), put_no_rnd_pixels8_x2(), and put_no_rnd_pixels8_y2().
| #define MOVQ_WONE | ( | regd | ) |
Value:
__asm __volatile ( \
"pcmpeqd %%" #regd ", %%" #regd " \n\t" \
"psrlw $15, %%" #regd ::)
| #define MOVQ_WTWO | ( | regd | ) | __asm __volatile ("movq %0, %%" #regd " \n\t" ::"m"(mm_wtwo)) |
| #define MOVQ_ZERO | ( | regd | ) | __asm __volatile ("pxor %%" #regd ", %%" #regd ::) |
Referenced by add_pixels_clamped_mmx().
| #define PAVGB "pavgb" |
| #define PAVGB "pavgusb" |
Referenced by avg_pixels16_l2(), avg_pixels4_l2(), avg_pixels8(), avg_pixels8_l2(), avg_pixels8_x2(), avg_pixels8_xy2(), avg_pixels8_y2(), deInterlaceBlendLinear(), deInterlaceInterpolateLinear(), dering(), doVertDefFilter(), doVertLowPass(), put_no_rnd_pixels16_l2(), put_no_rnd_pixels8_l2(), put_no_rnd_pixels8_x2(), put_no_rnd_pixels8_y2(), put_pixels16_l2(), put_pixels16_x2(), put_pixels4_l2(), put_pixels8_l2(), put_pixels8_x2(), put_pixels8_y2(), tempNoiseReducer(), and vertX1Filter().
| #define PAVGB_MMX | ( | rega, | |||
| regb, | |||||
| regr, | |||||
| regfe | ) |
Value:
"movq " #rega ", " #regr " \n\t"\ "por " #regb ", " #regr " \n\t"\ "pxor " #rega ", " #regb " \n\t"\ "pand " #regfe "," #regb " \n\t"\ "psrlq $1, " #regb " \n\t"\ "psubb " #regb ", " #regr " \n\t"
| #define PAVGB_MMX_NO_RND | ( | rega, | |||
| regb, | |||||
| regr, | |||||
| regfe | ) |
Value:
"movq " #rega ", " #regr " \n\t"\ "pand " #regb ", " #regr " \n\t"\ "pxor " #rega ", " #regb " \n\t"\ "pand " #regfe "," #regb " \n\t"\ "psrlq $1, " #regb " \n\t"\ "paddb " #regb ", " #regr " \n\t"
| #define PAVGBP_MMX | ( | rega, | |||
| regb, | |||||
| regr, | |||||
| regc, | |||||
| regd, | |||||
| regp | ) |
Value:
"movq " #rega ", " #regr " \n\t"\ "movq " #regc ", " #regp " \n\t"\ "por " #regb ", " #regr " \n\t"\ "por " #regd ", " #regp " \n\t"\ "pxor " #rega ", " #regb " \n\t"\ "pxor " #regc ", " #regd " \n\t"\ "pand %%mm6, " #regb " \n\t"\ "pand %%mm6, " #regd " \n\t"\ "psrlq $1, " #regd " \n\t"\ "psrlq $1, " #regb " \n\t"\ "psubb " #regb ", " #regr " \n\t"\ "psubb " #regd ", " #regp " \n\t"
| #define PAVGBP_MMX_NO_RND | ( | rega, | |||
| regb, | |||||
| regr, | |||||
| regc, | |||||
| regd, | |||||
| regp | ) |
Value:
"movq " #rega ", " #regr " \n\t"\ "movq " #regc ", " #regp " \n\t"\ "pand " #regb ", " #regr " \n\t"\ "pand " #regd ", " #regp " \n\t"\ "pxor " #rega ", " #regb " \n\t"\ "pxor " #regc ", " #regd " \n\t"\ "pand %%mm6, " #regb " \n\t"\ "pand %%mm6, " #regd " \n\t"\ "psrlq $1, " #regb " \n\t"\ "psrlq $1, " #regd " \n\t"\ "paddb " #regb ", " #regr " \n\t"\ "paddb " #regd ", " #regp " \n\t"
Definition at line 1640 of file dsputil_mmx.c.
Definition at line 1639 of file dsputil_mmx.c.
Definition at line 2291 of file dsputil_mmx.c.
| #define QPEL_BASE | ( | OPNAME, | |||
| ROUNDER, | |||||
| RND, | |||||
| OP_MMX2, | |||||
| OP_3DNOW | ) |
Definition at line 1663 of file dsputil_mmx.c.
| #define QPEL_OP | ( | OPNAME, | |||
| ROUNDER, | |||||
| RND, | |||||
| OP, | |||||
| MMX | ) |
Definition at line 1928 of file dsputil_mmx.c.
| #define QPEL_V_LOW | ( | m3, | |||
| m4, | |||||
| m5, | |||||
| m6, | |||||
| pw_20, | |||||
| pw_3, | |||||
| rnd, | |||||
| in0, | |||||
| in1, | |||||
| in2, | |||||
| in7, | |||||
| out, | |||||
| OP | ) |
Value:
"paddw " #m4 ", " #m3 " \n\t" /* x1 */\ "movq "MANGLE(ff_pw_20)", %%mm4 \n\t" /* 20 */\ "pmullw " #m3 ", %%mm4 \n\t" /* 20x1 */\ "movq "#in7", " #m3 " \n\t" /* d */\ "movq "#in0", %%mm5 \n\t" /* D */\ "paddw " #m3 ", %%mm5 \n\t" /* x4 */\ "psubw %%mm5, %%mm4 \n\t" /* 20x1 - x4 */\ "movq "#in1", %%mm5 \n\t" /* C */\ "movq "#in2", %%mm6 \n\t" /* B */\ "paddw " #m6 ", %%mm5 \n\t" /* x3 */\ "paddw " #m5 ", %%mm6 \n\t" /* x2 */\ "paddw %%mm6, %%mm6 \n\t" /* 2x2 */\ "psubw %%mm6, %%mm5 \n\t" /* -2x2 + x3 */\ "pmullw "MANGLE(ff_pw_3)", %%mm5 \n\t" /* -6x2 + 3x3 */\ "paddw " #rnd ", %%mm4 \n\t" /* x2 */\ "paddw %%mm4, %%mm5 \n\t" /* 20x1 - 6x2 + 3x3 - x4 */\ "psraw $5, %%mm5 \n\t"\ "packuswb %%mm5, %%mm5 \n\t"\ OP(%%mm5, out, %%mm7, d)
Definition at line 1642 of file dsputil_mmx.c.
| #define SET_QPEL_FUNC | ( | postfix1, | |||
| postfix2 | ) |
Value:
c->put_ ## postfix1 = put_ ## postfix2;\ c->put_no_rnd_ ## postfix1 = put_no_rnd_ ## postfix2;\ c->avg_ ## postfix1 = avg_ ## postfix2;
Definition at line 2315 of file dsputil_mmx.c.
| #define SET_RND MOVQ_WTWO |
| #define SET_RND MOVQ_WONE |
| static const uint64_t mm_bone attribute_used __attribute__ | ( | (aligned(8)) | ) | [static, pure virtual] |
| static void add_8x8basis_mmx | ( | int16_t | rem[64], | |
| int16_t | basis[64], | |||
| int | scale | |||
| ) | [static] |
Definition at line 2368 of file dsputil_mmx.c.
References ABS, BASIS_SHIFT, and RECON_SHIFT.
Referenced by dsputil_init_mmx().
| static void add_bytes_mmx | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | w | |||
| ) | [static] |
| void add_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
| uint8_t * | pixels, | |||
| int | line_size | |||
| ) |
Definition at line 321 of file dsputil_mmx.c.
References MOVQ_ZERO.
Referenced by dsputil_init_mmx(), ff_libmpeg2mmx2_idct_add(), ff_libmpeg2mmx_idct_add(), ff_simple_idct_add_mmx(), ff_vp3_idct_add_mmx(), and ff_vp3_idct_add_sse2().
| static void clear_blocks_mmx | ( | DCTELEM * | blocks | ) | [static] |
| void dsputil_init_mmx | ( | DSPContext * | c, | |
| AVCodecContext * | avctx | |||
| ) |
Definition at line 2459 of file dsputil_mmx.c.
References DSPContext::add_8x8basis, add_8x8basis_mmx(), DSPContext::add_bytes, add_bytes_mmx(), DSPContext::add_pixels_clamped, add_pixels_clamped_mmx(), av_log(), AV_LOG_INFO, DSPContext::avg_h264_chroma_pixels_tab, DSPContext::avg_no_rnd_pixels_tab, DSPContext::avg_pixels_tab, DSPContext::clear_blocks, clear_blocks_mmx(), CODEC_FLAG_BITEXACT, AVCodecContext::dct_algo, dct_algo, DSPContext::diff_bytes, DSPContext::diff_pixels, AVCodecContext::dsp_mask, dspfunc, dsputil_init_pix_mmx(), DSPContext::fdct, FF_DCT_AUTO, FF_DCT_MMX, ff_fdct_mmx(), ff_fdct_mmx2(), ff_fdct_sse2(), ff_h264_idct_add_mmx2(), FF_IDCT_AUTO, FF_IDCT_LIBMPEG2MMX, FF_IDCT_SIMPLEMMX, FF_IDCT_VP3, FF_LIBMPEG2_IDCT_PERM, ff_libmpeg2mmx2_idct_add(), ff_libmpeg2mmx2_idct_put(), ff_libmpeg2mmx_idct_add(), ff_libmpeg2mmx_idct_put(), FF_MM_FORCE, ff_mmx_idct(), ff_mmxext_idct(), FF_PARTTRANS_IDCT_PERM, ff_simple_idct_add_mmx(), ff_simple_idct_mmx(), FF_SIMPLE_IDCT_PERM, ff_simple_idct_put_mmx(), FF_TRANSPOSE_IDCT_PERM, ff_vp3_dsp_init_mmx(), ff_vp3_idct_add_mmx(), ff_vp3_idct_add_sse2(), ff_vp3_idct_mmx(), ff_vp3_idct_put_mmx(), ff_vp3_idct_put_sse2(), ff_vp3_idct_sse2(), AVCodecContext::flags, DSPContext::get_pixels, DSPContext::h263_h_loop_filter, h263_h_loop_filter_mmx(), DSPContext::h263_v_loop_filter, h263_v_loop_filter_mmx(), DSPContext::h264_h_loop_filter_chroma, DSPContext::h264_h_loop_filter_chroma_intra, h264_h_loop_filter_chroma_intra_mmx2(), h264_h_loop_filter_chroma_mmx2(), DSPContext::h264_h_loop_filter_luma, h264_h_loop_filter_luma_mmx2(), DSPContext::h264_idct_add, DSPContext::h264_v_loop_filter_chroma, DSPContext::h264_v_loop_filter_chroma_intra, h264_v_loop_filter_chroma_intra_mmx2(), h264_v_loop_filter_chroma_mmx2(), DSPContext::h264_v_loop_filter_luma, h264_v_loop_filter_luma_mmx2(), DSPContext::hadamard8_diff, DSPContext::idct, DSPContext::idct_add, AVCodecContext::idct_algo, idct_algo, DSPContext::idct_permutation_type, DSPContext::idct_put, AVCodecContext::lowres, mm_flags, mm_support(), DSPContext::nsse, DSPContext::pix_norm1, DSPContext::pix_sum, DSPContext::put_h264_chroma_pixels_tab, DSPContext::put_no_rnd_pixels_tab, put_pixels16_mmx(), put_pixels8_mmx(), DSPContext::put_pixels_clamped, DSPContext::put_pixels_tab, DSPContext::put_signed_pixels_clamped, put_signed_pixels_clamped_mmx(), SET_QPEL_FUNC, DSPContext::sse, DSPContext::sub_hfyu_median_prediction, DSPContext::try_8x8basis, try_8x8basis_mmx(), and DSPContext::vsad.
Referenced by dsputil_init().

| static void ff_libmpeg2mmx2_idct_add | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
Definition at line 2433 of file dsputil_mmx.c.
References add_pixels_clamped_mmx(), and ff_mmxext_idct().
Referenced by dsputil_init_mmx().

| static void ff_libmpeg2mmx2_idct_put | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
Definition at line 2428 of file dsputil_mmx.c.
References ff_mmxext_idct().
Referenced by dsputil_init_mmx().

| static void ff_libmpeg2mmx_idct_add | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
Definition at line 2423 of file dsputil_mmx.c.
References add_pixels_clamped_mmx(), and ff_mmx_idct().
Referenced by dsputil_init_mmx().

| static void ff_libmpeg2mmx_idct_put | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
Definition at line 2418 of file dsputil_mmx.c.
References ff_mmx_idct().
Referenced by dsputil_init_mmx().

| void ff_mmx_idct | ( | DCTELEM * | block | ) |
| void ff_mmxext_idct | ( | DCTELEM * | block | ) |
| 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().
| static void ff_vp3_idct_add_mmx | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
Definition at line 2453 of file dsputil_mmx.c.
References add_pixels_clamped_mmx(), and ff_vp3_idct_mmx().
Referenced by dsputil_init_mmx().

| static void ff_vp3_idct_add_sse2 | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
Definition at line 2443 of file dsputil_mmx.c.
References add_pixels_clamped_mmx(), and ff_vp3_idct_sse2().
Referenced by dsputil_init_mmx().

| void ff_vp3_idct_mmx | ( | int16_t * | 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().
| static void ff_vp3_idct_put_mmx | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
Definition at line 2448 of file dsputil_mmx.c.
References ff_vp3_idct_mmx(), and put_signed_pixels_clamped_mmx().
Referenced by dsputil_init_mmx().

| static void ff_vp3_idct_put_sse2 | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
Definition at line 2438 of file dsputil_mmx.c.
References ff_vp3_idct_sse2(), and put_signed_pixels_clamped_mmx().
Referenced by dsputil_init_mmx().

| void ff_vp3_idct_sse2 | ( | int16_t * | input_data | ) |
Definition at line 799 of file vp3dsp_sse2.c.
References Eight, eight_data, SSE2_Column_IDCT, SSE2_dequant_const, SSE2_idct_data, SSE2_Row_IDCT, and SSE2_Transpose.
Referenced by dsputil_init_mmx(), ff_vp3_idct_add_sse2(), and ff_vp3_idct_put_sse2().
| static void h263_h_loop_filter_mmx | ( | uint8_t * | src, | |
| int | stride, | |||
| int | qscale | |||
| ) | [static] |
Definition at line 646 of file dsputil_mmx.c.
References __attribute__(), ff_h263_loop_filter_strength, H263_LOOP_FILTER, and transpose4x4().
Referenced by dsputil_init_mmx().

| static void h263_v_loop_filter_mmx | ( | uint8_t * | src, | |
| int | stride, | |||
| int | qscale | |||
| ) | [static] |
Definition at line 598 of file dsputil_mmx.c.
References ff_h263_loop_filter_strength, and H263_LOOP_FILTER.
Referenced by dsputil_init_mmx().
| static void put_pixels16_mmx | ( | uint8_t * | block, | |
| const uint8_t * | pixels, | |||
| int | line_size, | |||
| int | h | |||
| ) | [static] |
| static void put_pixels4_mmx | ( | uint8_t * | block, | |
| const uint8_t * | pixels, | |||
| int | line_size, | |||
| int | h | |||
| ) | [static] |
| static void put_pixels8_mmx | ( | uint8_t * | block, | |
| const uint8_t * | pixels, | |||
| int | line_size, | |||
| int | h | |||
| ) | [static] |
| void put_signed_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
| uint8_t * | pixels, | |||
| int | line_size | |||
| ) |
Definition at line 306 of file dsputil_mmx.c.
References movq_m2r, movq_r2m, packsswb_m2r, and paddb_r2r.
Referenced by dsputil_init_mmx(), ff_vp3_idct_put_mmx(), and ff_vp3_idct_put_sse2().
| static void transpose4x4 | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | dst_stride, | |||
| int | src_stride | |||
| ) | [inline, static] |
Definition at line 617 of file dsputil_mmx.c.
Referenced by h263_h_loop_filter_mmx(), h264_h_loop_filter_chroma_intra_mmx2(), and h264_h_loop_filter_chroma_mmx2().
| static int try_8x8basis_mmx | ( | int16_t | rem[64], | |
| int16_t | weight[64], | |||
| int16_t | basis[64], | |||
| int | scale | |||
| ) | [static] |
Definition at line 2320 of file dsputil_mmx.c.
References ABS, BASIS_SHIFT, and RECON_SHIFT.
Referenced by dsputil_init_mmx().
| const uint8_t ff_h263_loop_filter_strength[32] |
Definition at line 281 of file h263data.h.
| int mm_flags |
Definition at line 33 of file dsputil_mmx.c.
const unsigned char __align8 vector128[8] [static] |
Initial value:
{ 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }
Definition at line 303 of file dsputil_mmx.c.
1.5.5