libavcodec/i386/h264dsp_mmx.c File Reference

#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 Documentation

#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

Definition at line 1869 of file h264dsp_mmx.c.

Referenced by H264_CHROMA_MC8_TMPL().

#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.

#define H264_CHROMA_OP ( S,
 )     "pavgusb " #S ", " #D " \n\t"

Definition at line 1864 of file h264dsp_mmx.c.

#define H264_CHROMA_OP ( S,
 )     "pavgb " #S ", " #D " \n\t"

Definition at line 1864 of file h264dsp_mmx.c.

#define H264_CHROMA_OP ( S,
 ) 

Definition at line 1864 of file h264dsp_mmx.c.

Referenced by H264_CHROMA_MC8_TMPL().

#define H264_CHROMA_OP4 ( S,
D,
T   ) 

Value:

"movd " #S ", " #T " \n\t"\
                               "pavgusb " #T ", " #D " \n\t"

Definition at line 1865 of file h264dsp_mmx.c.

#define H264_CHROMA_OP4 ( S,
D,
T   ) 

Value:

"movd  " #S ", " #T " \n\t"\
                               "pavgb " #T ", " #D " \n\t"

Definition at line 1865 of file h264dsp_mmx.c.

#define H264_CHROMA_OP4 ( S,
D,
T   ) 

Definition at line 1865 of file h264dsp_mmx.c.

Referenced by H264_CHROMA_MC4_TMPL().

#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_IDCT8_1D_SSE2 ( a,
b,
c,
d,
e,
f,
g,
 ) 

Definition at line 222 of file h264dsp_mmx.c.

Referenced by ff_h264_idct8_add_sse2().

#define H264_MC ( OPNAME,
SIZE,
MMX,
ALIGN   ) 

Definition at line 1667 of file h264dsp_mmx.c.

#define H264_WEIGHT ( W,
 ) 

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,
 ) 

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,
 ) 

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,
 ) 

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,
 ) 

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,
 ) 

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.


Function Documentation

static void avg_h264_chroma_mc8_3dnow_rnd ( uint8_t dst,
uint8_t src,
int  stride,
int  h,
int  x,
int  y 
) [static]

Definition at line 1871 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void avg_h264_chroma_mc8_mmx2_rnd ( uint8_t dst,
uint8_t src,
int  stride,
int  h,
int  x,
int  y 
) [static]

Definition at line 1853 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

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]

Definition at line 154 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void ff_h264_idct8_add_sse2 ( uint8_t dst,
int16_t *  block,
int  stride 
) [static]

Definition at line 267 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void ff_h264_idct8_dc_add_mmx2 ( uint8_t dst,
int16_t *  block,
int  stride 
) [static]

Definition at line 337 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void ff_h264_idct_add_mmx ( uint8_t dst,
int16_t *  block,
int  stride 
) [static]

Definition at line 54 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void ff_h264_idct_dc_add_mmx2 ( uint8_t dst,
int16_t *  block,
int  stride 
) [static]

Definition at line 301 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

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]

Definition at line 615 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void h264_h_loop_filter_chroma_mmx2 ( uint8_t pix,
int  stride,
int  alpha,
int  beta,
int8_t *  tc0 
) [static]

Definition at line 564 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void h264_h_loop_filter_luma_mmx2 ( uint8_t pix,
int  stride,
int  alpha,
int  beta,
int8_t *  tc0 
) [static]

Definition at line 519 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void h264_idct8_1d ( int16_t *  block  )  [inline, static]

Definition at line 93 of file h264dsp_mmx.c.

Referenced by ff_h264_idct8_add_mmx().

static void h264_loop_filter_chroma_intra_mmx2 ( uint8_t pix,
int  stride,
int  alpha1,
int  beta1 
) [inline, static]

static void h264_loop_filter_chroma_mmx2 ( uint8_t pix,
int  stride,
int  alpha1,
int  beta1,
int8_t *  tc0 
) [inline, static]

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]

Definition at line 626 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void h264_v_loop_filter_chroma_intra_mmx2 ( uint8_t pix,
int  stride,
int  alpha,
int  beta 
) [static]

Definition at line 610 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void h264_v_loop_filter_chroma_mmx2 ( uint8_t pix,
int  stride,
int  alpha,
int  beta,
int8_t *  tc0 
) [static]

Definition at line 559 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void h264_v_loop_filter_luma_mmx2 ( uint8_t pix,
int  stride,
int  alpha,
int  beta,
int8_t *  tc0 
) [static]

Definition at line 512 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void put_h264_chroma_mc8_mmx_nornd ( uint8_t dst,
uint8_t src,
int  stride,
int  h,
int  x,
int  y 
) [static]

Definition at line 1833 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().

static void put_h264_chroma_mc8_mmx_rnd ( uint8_t dst,
uint8_t src,
int  stride,
int  h,
int  x,
int  y 
) [static]

Definition at line 1829 of file h264dsp_mmx.c.

Referenced by dsputil_init_mmx().


Generated on Thu Apr 2 07:15:41 2009 for ffmpeg by  doxygen 1.5.6