#include "dsputil_mmx.h"
#include "dsputil_h264_template_mmx.c"
Go to the source code of this file.
Defines | |
#define | SUMSUB_BADC(a, b, c, d) |
#define | SUMSUBD2_AB(a, b, t) |
#define | IDCT4_1D(s02, s13, d02, d13, t) |
#define | STORE_DIFF_4P(p, t, z) |
#define | STORE_DIFF_8P(p, d, t, z) |
#define | H264_IDCT8_1D_SSE2(a, b, c, d, e, f, g, h) |
#define | DIFF_GT_MMX(x, y, a, o, t) |
#define | DIFF_GT2_MMX(x, y, a, o, t) |
#define | H264_DEBLOCK_MASK(alpha1, beta1) |
#define | H264_DEBLOCK_P0_Q0(pb_01, pb_3f) |
#define | H264_DEBLOCK_Q1(p1, q2, q2addr, q1addr, tc0, tmp) |
#define | H264_FILTER_CHROMA4(p0, p1, q1, one) |
#define | QPEL_H264V_MM(A, B, C, D, E, F, OP, T, Z, d, q) |
#define | QPEL_H264HV_MM(A, B, C, D, E, F, OF, T, Z, d, q) |
#define | QPEL_H264V(A, B, C, D, E, F, OP) QPEL_H264V_MM(A,B,C,D,E,F,OP,%%mm6,%%mm7,d,q) |
#define | QPEL_H264HV(A, B, C, D, E, F, OF) QPEL_H264HV_MM(A,B,C,D,E,F,OF,%%mm6,%%mm7,d,q) |
#define | QPEL_H264V_XMM(A, B, C, D, E, F, OP) QPEL_H264V_MM(A,B,C,D,E,F,OP,%%xmm6,%%xmm7,q,dqa) |
#define | QPEL_H264HV_XMM(A, B, C, D, E, F, OF) QPEL_H264HV_MM(A,B,C,D,E,F,OF,%%xmm6,%%xmm7,q,dqa) |
#define | QPEL_H264(OPNAME, OP, MMX) |
#define | QPEL_H264_HL2_XMM(OPNAME, OP, MMX) |
#define | QPEL_H264_XMM(OPNAME, OP, MMX) |
#define | put_pixels8_ssse3 put_pixels8_mmx2 |
#define | put_pixels16_ssse3 put_pixels16_sse2 |
#define | avg_pixels8_ssse3 avg_pixels8_mmx2 |
#define | avg_pixels16_ssse3 avg_pixels16_sse2 |
#define | put_pixels8_l2_ssse3 put_pixels8_l2_mmx2 |
#define | put_pixels16_l2_ssse3 put_pixels16_l2_mmx2 |
#define | avg_pixels8_l2_ssse3 avg_pixels8_l2_mmx2 |
#define | avg_pixels16_l2_ssse3 avg_pixels16_l2_mmx2 |
#define | put_pixels8_l2_shift5_ssse3 put_pixels8_l2_shift5_mmx2 |
#define | put_pixels16_l2_shift5_ssse3 put_pixels16_l2_shift5_mmx2 |
#define | avg_pixels8_l2_shift5_ssse3 avg_pixels8_l2_shift5_mmx2 |
#define | avg_pixels16_l2_shift5_ssse3 avg_pixels16_l2_shift5_mmx2 |
#define | put_h264_qpel8_h_lowpass_ssse3 put_h264_qpel8_h_lowpass_mmx2 |
#define | put_h264_qpel16_h_lowpass_ssse3 put_h264_qpel16_h_lowpass_mmx2 |
#define | avg_h264_qpel8_h_lowpass_ssse3 avg_h264_qpel8_h_lowpass_mmx2 |
#define | avg_h264_qpel16_h_lowpass_ssse3 avg_h264_qpel16_h_lowpass_mmx2 |
#define | H264_MC(OPNAME, SIZE, MMX, ALIGN) |
#define | AVG_3DNOW_OP(a, b, temp, size) |
#define | AVG_MMX2_OP(a, b, temp, size) |
#define | PAVGB "pavgusb" |
#define | PAVGB "pavgb" |
#define | put_h264_qpel8_mc20_ssse3 put_h264_qpel8_mc20_mmx2 |
#define | put_h264_qpel16_mc20_ssse3 put_h264_qpel16_mc20_mmx2 |
#define | avg_h264_qpel8_mc20_ssse3 avg_h264_qpel8_mc20_mmx2 |
#define | avg_h264_qpel16_mc20_ssse3 avg_h264_qpel16_mc20_mmx2 |
#define | H264_CHROMA_OP(S, D) |
#define | H264_CHROMA_OP4(S, D, T) |
#define | H264_CHROMA_MC8_TMPL put_h264_chroma_mc8_mmx |
#define | H264_CHROMA_MC4_TMPL put_h264_chroma_mc4_mmx |
#define | H264_CHROMA_MC2_TMPL put_h264_chroma_mc2_mmx2 |
#define | H264_CHROMA_MC8_MV0 put_pixels8_mmx |
#define | H264_CHROMA_OP(S, D) "pavgb " #S ", " #D " \n\t" |
#define | H264_CHROMA_OP4(S, D, T) |
#define | H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_mmx2 |
#define | H264_CHROMA_MC4_TMPL avg_h264_chroma_mc4_mmx2 |
#define | H264_CHROMA_MC2_TMPL avg_h264_chroma_mc2_mmx2 |
#define | H264_CHROMA_MC8_MV0 avg_pixels8_mmx2 |
#define | H264_CHROMA_OP(S, D) "pavgusb " #S ", " #D " \n\t" |
#define | H264_CHROMA_OP4(S, D, T) |
#define | H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_3dnow |
#define | H264_CHROMA_MC4_TMPL avg_h264_chroma_mc4_3dnow |
#define | H264_CHROMA_MC8_MV0 avg_pixels8_3dnow |
#define | H264_WEIGHT(W, H) |
Functions | |
static void | ff_h264_idct_add_mmx (uint8_t *dst, int16_t *block, int stride) |
static void | h264_idct8_1d (int16_t *block) |
static void | ff_h264_idct8_add_mmx (uint8_t *dst, int16_t *block, int stride) |
static void | ff_h264_idct8_add_sse2 (uint8_t *dst, int16_t *block, int stride) |
static void | ff_h264_idct_dc_add_mmx2 (uint8_t *dst, int16_t *block, int stride) |
static void | ff_h264_idct8_dc_add_mmx2 (uint8_t *dst, int16_t *block, int stride) |
static void | h264_loop_filter_luma_mmx2 (uint8_t *pix, int stride, int alpha1, int beta1, int8_t *tc0) |
static void | h264_v_loop_filter_luma_mmx2 (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) |
static void | h264_h_loop_filter_luma_mmx2 (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) |
static void | h264_loop_filter_chroma_mmx2 (uint8_t *pix, int stride, int alpha1, int beta1, int8_t *tc0) |
static void | h264_v_loop_filter_chroma_mmx2 (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) |
static void | h264_h_loop_filter_chroma_mmx2 (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) |
static void | h264_loop_filter_chroma_intra_mmx2 (uint8_t *pix, int stride, int alpha1, int beta1) |
static void | h264_v_loop_filter_chroma_intra_mmx2 (uint8_t *pix, int stride, int alpha, int beta) |
static void | h264_h_loop_filter_chroma_intra_mmx2 (uint8_t *pix, int stride, int alpha, int beta) |
static void | h264_loop_filter_strength_mmx2 (int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2], int bidir, int edges, int step, int mask_mv0, int mask_mv1) |
static void | put_h264_chroma_mc8_mmx_rnd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
static void | put_h264_chroma_mc8_mmx_nornd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
static void | avg_h264_chroma_mc8_mmx2_rnd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
static void | avg_h264_chroma_mc8_3dnow_rnd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
static void | ff_h264_weight_WxH_mmx2 (uint8_t *dst, int stride, int log2_denom, int weight, int offset, int w, int h) |
static void | ff_h264_biweight_WxH_mmx2 (uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset, int w, int h) |
#define AVG_3DNOW_OP | ( | a, | |||
b, | |||||
temp, | |||||
size | ) |
Value:
"mov" #size " " #b ", " #temp " \n\t"\ "pavgusb " #temp ", " #a " \n\t"\ "mov" #size " " #a ", " #b " \n\t"
Definition at line 1773 of file h264dsp_mmx.c.
#define avg_h264_qpel16_h_lowpass_ssse3 avg_h264_qpel16_h_lowpass_mmx2 |
Definition at line 1665 of file h264dsp_mmx.c.
#define avg_h264_qpel16_mc20_ssse3 avg_h264_qpel16_mc20_mmx2 |
Definition at line 1819 of file h264dsp_mmx.c.
#define avg_h264_qpel8_h_lowpass_ssse3 avg_h264_qpel8_h_lowpass_mmx2 |
Definition at line 1664 of file h264dsp_mmx.c.
#define avg_h264_qpel8_mc20_ssse3 avg_h264_qpel8_mc20_mmx2 |
Definition at line 1818 of file h264dsp_mmx.c.
#define AVG_MMX2_OP | ( | a, | |||
b, | |||||
temp, | |||||
size | ) |
Value:
"mov" #size " " #b ", " #temp " \n\t"\ "pavgb " #temp ", " #a " \n\t"\ "mov" #size " " #a ", " #b " \n\t"
Definition at line 1777 of file h264dsp_mmx.c.
#define avg_pixels16_l2_shift5_ssse3 avg_pixels16_l2_shift5_mmx2 |
Definition at line 1660 of file h264dsp_mmx.c.
#define avg_pixels16_l2_ssse3 avg_pixels16_l2_mmx2 |
Definition at line 1655 of file h264dsp_mmx.c.
#define avg_pixels16_ssse3 avg_pixels16_sse2 |
Definition at line 1650 of file h264dsp_mmx.c.
#define avg_pixels8_l2_shift5_ssse3 avg_pixels8_l2_shift5_mmx2 |
Definition at line 1659 of file h264dsp_mmx.c.
#define avg_pixels8_l2_ssse3 avg_pixels8_l2_mmx2 |
Definition at line 1654 of file h264dsp_mmx.c.
#define avg_pixels8_ssse3 avg_pixels8_mmx2 |
Definition at line 1649 of file h264dsp_mmx.c.
#define DIFF_GT2_MMX | ( | x, | |||
y, | |||||
a, | |||||
o, | |||||
t | ) |
Value:
"movq "#y", "#t" \n\t"\ "movq "#x", "#o" \n\t"\ "psubusb "#x", "#t" \n\t"\ "psubusb "#y", "#o" \n\t"\ "psubusb "#a", "#t" \n\t"\ "psubusb "#a", "#o" \n\t"\ "pcmpeqb "#t", "#o" \n\t"\
Definition at line 392 of file h264dsp_mmx.c.
Referenced by h264_loop_filter_luma_mmx2().
#define DIFF_GT_MMX | ( | x, | |||
y, | |||||
a, | |||||
o, | |||||
t | ) |
Value:
"movq "#y", "#t" \n\t"\ "movq "#x", "#o" \n\t"\ "psubusb "#x", "#t" \n\t"\ "psubusb "#y", "#o" \n\t"\ "por "#t", "#o" \n\t"\ "psubusb "#a", "#o" \n\t"
Definition at line 382 of file h264dsp_mmx.c.
#define H264_CHROMA_MC2_TMPL avg_h264_chroma_mc2_mmx2 |
Definition at line 1850 of file h264dsp_mmx.c.
#define H264_CHROMA_MC2_TMPL put_h264_chroma_mc2_mmx2 |
Definition at line 1850 of file h264dsp_mmx.c.
#define H264_CHROMA_MC4_TMPL avg_h264_chroma_mc4_3dnow |
Definition at line 1868 of file h264dsp_mmx.c.
#define H264_CHROMA_MC4_TMPL avg_h264_chroma_mc4_mmx2 |
Definition at line 1868 of file h264dsp_mmx.c.
#define H264_CHROMA_MC4_TMPL put_h264_chroma_mc4_mmx |
Definition at line 1868 of file h264dsp_mmx.c.
#define H264_CHROMA_MC8_MV0 avg_pixels8_3dnow |
Definition at line 1869 of file h264dsp_mmx.c.
#define H264_CHROMA_MC8_MV0 avg_pixels8_mmx2 |
Definition at line 1869 of file h264dsp_mmx.c.
#define H264_CHROMA_MC8_MV0 put_pixels8_mmx |
#define H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_3dnow |
Definition at line 1867 of file h264dsp_mmx.c.
#define H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_mmx2 |
Definition at line 1867 of file h264dsp_mmx.c.
#define H264_CHROMA_MC8_TMPL put_h264_chroma_mc8_mmx |
Definition at line 1867 of file h264dsp_mmx.c.
Definition at line 1864 of file h264dsp_mmx.c.
Definition at line 1864 of file h264dsp_mmx.c.
#define H264_CHROMA_OP | ( | S, | |||
D | ) |
#define H264_DEBLOCK_MASK | ( | alpha1, | |||
beta1 | ) |
Value:
"pshufw $0, "#alpha1", %%mm4 \n\t"\ "pshufw $0, "#beta1 ", %%mm5 \n\t"\ "packuswb %%mm4, %%mm4 \n\t"\ "packuswb %%mm5, %%mm5 \n\t"\ DIFF_GT_MMX(%%mm1, %%mm2, %%mm4, %%mm7, %%mm6) /* |p0-q0| > alpha-1 */\ DIFF_GT_MMX(%%mm0, %%mm1, %%mm5, %%mm4, %%mm6) /* |p1-p0| > beta-1 */\ "por %%mm4, %%mm7 \n\t"\ DIFF_GT_MMX(%%mm3, %%mm2, %%mm5, %%mm4, %%mm6) /* |q1-q0| > beta-1 */\ "por %%mm4, %%mm7 \n\t"\ "pxor %%mm6, %%mm6 \n\t"\ "pcmpeqb %%mm6, %%mm7 \n\t"
Definition at line 404 of file h264dsp_mmx.c.
Referenced by h264_loop_filter_chroma_intra_mmx2(), h264_loop_filter_chroma_mmx2(), and h264_loop_filter_luma_mmx2().
#define H264_DEBLOCK_P0_Q0 | ( | pb_01, | |||
pb_3f | ) |
Value:
"movq %%mm1 , %%mm5 \n\t"\ "pxor %%mm2 , %%mm5 \n\t" /* p0^q0*/\ "pand "#pb_01" , %%mm5 \n\t" /* (p0^q0)&1*/\ "pcmpeqb %%mm4 , %%mm4 \n\t"\ "pxor %%mm4 , %%mm3 \n\t"\ "pavgb %%mm0 , %%mm3 \n\t" /* (p1 - q1 + 256)>>1*/\ "pavgb "MANGLE(ff_pb_3)" , %%mm3 \n\t" /*(((p1 - q1 + 256)>>1)+4)>>1 = 64+2+(p1-q1)>>2*/\ "pxor %%mm1 , %%mm4 \n\t"\ "pavgb %%mm2 , %%mm4 \n\t" /* (q0 - p0 + 256)>>1*/\ "pavgb %%mm5 , %%mm3 \n\t"\ "paddusb %%mm4 , %%mm3 \n\t" /* d+128+33*/\ "movq "MANGLE(ff_pb_A1)" , %%mm6 \n\t"\ "psubusb %%mm3 , %%mm6 \n\t"\ "psubusb "MANGLE(ff_pb_A1)" , %%mm3 \n\t"\ "pminub %%mm7 , %%mm6 \n\t"\ "pminub %%mm7 , %%mm3 \n\t"\ "psubusb %%mm6 , %%mm1 \n\t"\ "psubusb %%mm3 , %%mm2 \n\t"\ "paddusb %%mm3 , %%mm1 \n\t"\ "paddusb %%mm6 , %%mm2 \n\t"
Definition at line 420 of file h264dsp_mmx.c.
Referenced by h264_loop_filter_chroma_mmx2(), and h264_loop_filter_luma_mmx2().
#define H264_DEBLOCK_Q1 | ( | p1, | |||
q2, | |||||
q2addr, | |||||
q1addr, | |||||
tc0, | |||||
tmp | ) |
Value:
"movq %%mm1, "#tmp" \n\t"\ "pavgb %%mm2, "#tmp" \n\t"\ "pavgb "#tmp", "#q2" \n\t" /* avg(p2,avg(p0,q0)) */\ "pxor "q2addr", "#tmp" \n\t"\ "pand %8, "#tmp" \n\t" /* (p2^avg(p0,q0))&1 */\ "psubusb "#tmp", "#q2" \n\t" /* (p2+((p0+q0+1)>>1))>>1 */\ "movq "#p1", "#tmp" \n\t"\ "psubusb "#tc0", "#tmp" \n\t"\ "paddusb "#p1", "#tc0" \n\t"\ "pmaxub "#tmp", "#q2" \n\t"\ "pminub "#tc0", "#q2" \n\t"\ "movq "#q2", "q1addr" \n\t"
Definition at line 445 of file h264dsp_mmx.c.
Referenced by h264_loop_filter_luma_mmx2().
#define H264_FILTER_CHROMA4 | ( | p0, | |||
p1, | |||||
q1, | |||||
one | ) |
Value:
"movq "#p0", %%mm4 \n\t"\ "pxor "#q1", %%mm4 \n\t"\ "pand "#one", %%mm4 \n\t" /* mm4 = (p0^q1)&1 */\ "pavgb "#q1", "#p0" \n\t"\ "psubusb %%mm4, "#p0" \n\t"\ "pavgb "#p1", "#p0" \n\t"
Definition at line 576 of file h264dsp_mmx.c.
Referenced by h264_loop_filter_chroma_intra_mmx2().
#define H264_MC | ( | OPNAME, | |||
SIZE, | |||||
MMX, | |||||
ALIGN | ) |
Definition at line 1667 of file h264dsp_mmx.c.
#define H264_WEIGHT | ( | W, | |||
H | ) |
Value:
static void ff_h264_biweight_ ## W ## x ## H ## _mmx2(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset){ \ ff_h264_biweight_WxH_mmx2(dst, src, stride, log2_denom, weightd, weights, offset, W, H); \ } \ static void ff_h264_weight_ ## W ## x ## H ## _mmx2(uint8_t *dst, int stride, int log2_denom, int weight, int offset){ \ ff_h264_weight_WxH_mmx2(dst, stride, log2_denom, weight, offset, W, H); \ }
Definition at line 1961 of file h264dsp_mmx.c.
#define IDCT4_1D | ( | s02, | |||
s13, | |||||
d02, | |||||
d13, | |||||
t | ) |
Value:
SUMSUB_BA ( s02, d02 )\ SUMSUBD2_AB( s13, d13, t )\ SUMSUB_BADC( d13, s02, s13, d02 )
Definition at line 41 of file h264dsp_mmx.c.
Referenced by ff_h264_idct_add_mmx().
#define PAVGB "pavgb" |
Definition at line 1786 of file h264dsp_mmx.c.
#define PAVGB "pavgusb" |
Definition at line 1786 of file h264dsp_mmx.c.
#define put_h264_qpel16_h_lowpass_ssse3 put_h264_qpel16_h_lowpass_mmx2 |
Definition at line 1663 of file h264dsp_mmx.c.
#define put_h264_qpel16_mc20_ssse3 put_h264_qpel16_mc20_mmx2 |
Definition at line 1817 of file h264dsp_mmx.c.
#define put_h264_qpel8_h_lowpass_ssse3 put_h264_qpel8_h_lowpass_mmx2 |
Definition at line 1662 of file h264dsp_mmx.c.
#define put_h264_qpel8_mc20_ssse3 put_h264_qpel8_mc20_mmx2 |
Definition at line 1816 of file h264dsp_mmx.c.
#define put_pixels16_l2_shift5_ssse3 put_pixels16_l2_shift5_mmx2 |
Definition at line 1658 of file h264dsp_mmx.c.
#define put_pixels16_l2_ssse3 put_pixels16_l2_mmx2 |
Definition at line 1653 of file h264dsp_mmx.c.
#define put_pixels16_ssse3 put_pixels16_sse2 |
Definition at line 1648 of file h264dsp_mmx.c.
#define put_pixels8_l2_shift5_ssse3 put_pixels8_l2_shift5_mmx2 |
Definition at line 1657 of file h264dsp_mmx.c.
#define put_pixels8_l2_ssse3 put_pixels8_l2_mmx2 |
Definition at line 1652 of file h264dsp_mmx.c.
#define put_pixels8_ssse3 put_pixels8_mmx2 |
Definition at line 1647 of file h264dsp_mmx.c.
#define QPEL_H264 | ( | OPNAME, | |||
OP, | |||||
MMX | ) |
Definition at line 764 of file h264dsp_mmx.c.
#define QPEL_H264_HL2_XMM | ( | OPNAME, | |||
OP, | |||||
MMX | ) |
Value:
static av_noinline void OPNAME ## h264_qpel16_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\ src += 8*dstStride;\ dst += 8*dstStride;\ src2 += 8*src2Stride;\ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst , src , src2 , dstStride, src2Stride);\ OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(dst+8, src+8, src2+8, dstStride, src2Stride);\ }
Definition at line 1377 of file h264dsp_mmx.c.
#define QPEL_H264_XMM | ( | OPNAME, | |||
OP, | |||||
MMX | ) |
Definition at line 1389 of file h264dsp_mmx.c.
#define QPEL_H264HV | ( | A, | |||
B, | |||||
C, | |||||
D, | |||||
E, | |||||
F, | |||||
OF | ) | QPEL_H264HV_MM(A,B,C,D,E,F,OF,%%mm6,%%mm7,d,q) |
Definition at line 759 of file h264dsp_mmx.c.
#define QPEL_H264HV_MM | ( | A, | |||
B, | |||||
C, | |||||
D, | |||||
E, | |||||
F, | |||||
OF, | |||||
T, | |||||
Z, | |||||
d, | |||||
q | ) |
Value:
"mov"#q" "#C", "#T" \n\t"\ "mov"#d" (%0), "#F" \n\t"\ "paddw "#D", "#T" \n\t"\ "psllw $2, "#T" \n\t"\ "paddw %4, "#A" \n\t"\ "psubw "#B", "#T" \n\t"\ "psubw "#E", "#T" \n\t"\ "punpcklbw "#Z", "#F" \n\t"\ "pmullw %3, "#T" \n\t"\ "paddw "#F", "#A" \n\t"\ "add %2, %0 \n\t"\ "paddw "#A", "#T" \n\t"\ "mov"#q" "#T", "#OF"(%1) \n\t"
Definition at line 743 of file h264dsp_mmx.c.
#define QPEL_H264HV_XMM | ( | A, | |||
B, | |||||
C, | |||||
D, | |||||
E, | |||||
F, | |||||
OF | ) | QPEL_H264HV_MM(A,B,C,D,E,F,OF,%%xmm6,%%xmm7,q,dqa) |
Definition at line 761 of file h264dsp_mmx.c.
#define QPEL_H264V | ( | A, | |||
B, | |||||
C, | |||||
D, | |||||
E, | |||||
F, | |||||
OP | ) | QPEL_H264V_MM(A,B,C,D,E,F,OP,%%mm6,%%mm7,d,q) |
Definition at line 758 of file h264dsp_mmx.c.
#define QPEL_H264V_MM | ( | A, | |||
B, | |||||
C, | |||||
D, | |||||
E, | |||||
F, | |||||
OP, | |||||
T, | |||||
Z, | |||||
d, | |||||
q | ) |
Value:
"mov"#q" "#C", "#T" \n\t"\ "mov"#d" (%0), "#F" \n\t"\ "paddw "#D", "#T" \n\t"\ "psllw $2, "#T" \n\t"\ "psubw "#B", "#T" \n\t"\ "psubw "#E", "#T" \n\t"\ "punpcklbw "#Z", "#F" \n\t"\ "pmullw %4, "#T" \n\t"\ "paddw %5, "#A" \n\t"\ "add %2, %0 \n\t"\ "paddw "#F", "#A" \n\t"\ "paddw "#A", "#T" \n\t"\ "psraw $5, "#T" \n\t"\ "packuswb "#T", "#T" \n\t"\ OP(T, (%1), A, d)\ "add %3, %1 \n\t"
Definition at line 725 of file h264dsp_mmx.c.
#define QPEL_H264V_XMM | ( | A, | |||
B, | |||||
C, | |||||
D, | |||||
E, | |||||
F, | |||||
OP | ) | QPEL_H264V_MM(A,B,C,D,E,F,OP,%%xmm6,%%xmm7,q,dqa) |
Definition at line 760 of file h264dsp_mmx.c.
#define STORE_DIFF_4P | ( | p, | |||
t, | |||||
z | ) |
Value:
"psraw $6, "#p" \n\t"\ "movd (%0), "#t" \n\t"\ "punpcklbw "#z", "#t" \n\t"\ "paddsw "#t", "#p" \n\t"\ "packuswb "#z", "#p" \n\t"\ "movd "#p", (%0) \n\t"
Definition at line 46 of file h264dsp_mmx.c.
Referenced by ff_h264_idct_add_mmx().
#define STORE_DIFF_8P | ( | p, | |||
d, | |||||
t, | |||||
z | ) |
Value:
"movq "#d", "#t" \n"\ "psraw $6, "#p" \n"\ "punpcklbw "#z", "#t" \n"\ "paddsw "#t", "#p" \n"\ "packuswb "#p", "#p" \n"\ "movq "#p", "#d" \n"
Definition at line 214 of file h264dsp_mmx.c.
Referenced by ff_h264_idct8_add_sse2().
#define SUMSUB_BADC | ( | a, | |||
b, | |||||
c, | |||||
d | ) |
Value:
"paddw "#b", "#a" \n\t"\ "paddw "#d", "#c" \n\t"\ "paddw "#b", "#b" \n\t"\ "paddw "#d", "#d" \n\t"\ "psubw "#a", "#b" \n\t"\ "psubw "#c", "#d" \n\t"
Definition at line 26 of file h264dsp_mmx.c.
#define SUMSUBD2_AB | ( | a, | |||
b, | |||||
t | ) |
Value:
"movq "#b", "#t" \n\t"\ "psraw $1 , "#b" \n\t"\ "paddw "#a", "#b" \n\t"\ "psraw $1 , "#a" \n\t"\ "psubw "#t", "#a" \n\t"
Definition at line 34 of file h264dsp_mmx.c.
static void ff_h264_biweight_WxH_mmx2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride, | |||
int | log2_denom, | |||
int | weightd, | |||
int | weights, | |||
int | offset, | |||
int | w, | |||
int | h | |||
) | [inline, static] |
Definition at line 1923 of file h264dsp_mmx.c.
static void ff_h264_idct8_add_mmx | ( | uint8_t * | dst, | |
int16_t * | block, | |||
int | stride | |||
) | [static] |
static void ff_h264_idct8_add_sse2 | ( | uint8_t * | dst, | |
int16_t * | block, | |||
int | stride | |||
) | [static] |
static void ff_h264_idct8_dc_add_mmx2 | ( | uint8_t * | dst, | |
int16_t * | block, | |||
int | stride | |||
) | [static] |
static void ff_h264_idct_add_mmx | ( | uint8_t * | dst, | |
int16_t * | block, | |||
int | stride | |||
) | [static] |
static void ff_h264_idct_dc_add_mmx2 | ( | uint8_t * | dst, | |
int16_t * | block, | |||
int | stride | |||
) | [static] |
static void ff_h264_weight_WxH_mmx2 | ( | uint8_t * | dst, | |
int | stride, | |||
int | log2_denom, | |||
int | weight, | |||
int | offset, | |||
int | w, | |||
int | h | |||
) | [inline, static] |
Definition at line 1884 of file h264dsp_mmx.c.
static void h264_h_loop_filter_chroma_intra_mmx2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta | |||
) | [static] |
static void h264_h_loop_filter_chroma_mmx2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta, | |||
int8_t * | tc0 | |||
) | [static] |
static void h264_h_loop_filter_luma_mmx2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta, | |||
int8_t * | tc0 | |||
) | [static] |
static void h264_idct8_1d | ( | int16_t * | block | ) | [inline, static] |
static void h264_loop_filter_chroma_intra_mmx2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha1, | |||
int | beta1 | |||
) | [inline, static] |
Definition at line 585 of file h264dsp_mmx.c.
Referenced by h264_h_loop_filter_chroma_intra_mmx2(), and h264_v_loop_filter_chroma_intra_mmx2().
static void h264_loop_filter_chroma_mmx2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha1, | |||
int | beta1, | |||
int8_t * | tc0 | |||
) | [inline, static] |
Definition at line 538 of file h264dsp_mmx.c.
Referenced by h264_h_loop_filter_chroma_mmx2(), and h264_v_loop_filter_chroma_mmx2().
static void h264_loop_filter_luma_mmx2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha1, | |||
int | beta1, | |||
int8_t * | tc0 | |||
) | [inline, static] |
Definition at line 459 of file h264dsp_mmx.c.
Referenced by h264_h_loop_filter_luma_mmx2(), and h264_v_loop_filter_luma_mmx2().
static void h264_loop_filter_strength_mmx2 | ( | int16_t | bS[2][4][4], | |
uint8_t | nnz[40], | |||
int8_t | ref[2][40], | |||
int16_t | mv[2][40][2], | |||
int | bidir, | |||
int | edges, | |||
int | step, | |||
int | mask_mv0, | |||
int | mask_mv1 | |||
) | [static] |
static void h264_v_loop_filter_chroma_intra_mmx2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta | |||
) | [static] |
static void h264_v_loop_filter_chroma_mmx2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta, | |||
int8_t * | tc0 | |||
) | [static] |
static void h264_v_loop_filter_luma_mmx2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta, | |||
int8_t * | tc0 | |||
) | [static] |