#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_H16_XMM(OPNAME, OP, MMX) |
#define | QPEL_H264_H_XMM(OPNAME, OP, MMX) |
#define | QPEL_H264_V_XMM(OPNAME, OP, MMX) |
#define | QPEL_H264_HV2_XMM(OPNAME, OP, MMX) |
#define | QPEL_H264_HV_XMM(OPNAME, OP, MMX) |
#define | put_pixels8_l2_sse2 put_pixels8_l2_mmx2 |
#define | avg_pixels8_l2_sse2 avg_pixels8_l2_mmx2 |
#define | put_pixels16_l2_sse2 put_pixels16_l2_mmx2 |
#define | avg_pixels16_l2_sse2 avg_pixels16_l2_mmx2 |
#define | put_pixels8_l2_ssse3 put_pixels8_l2_mmx2 |
#define | avg_pixels8_l2_ssse3 avg_pixels8_l2_mmx2 |
#define | put_pixels16_l2_ssse3 put_pixels16_l2_mmx2 |
#define | avg_pixels16_l2_ssse3 avg_pixels16_l2_mmx2 |
#define | put_pixels8_l2_shift5_sse2 put_pixels8_l2_shift5_mmx2 |
#define | avg_pixels8_l2_shift5_sse2 avg_pixels8_l2_shift5_mmx2 |
#define | put_pixels16_l2_shift5_sse2 put_pixels16_l2_shift5_mmx2 |
#define | avg_pixels16_l2_shift5_sse2 avg_pixels16_l2_shift5_mmx2 |
#define | put_pixels8_l2_shift5_ssse3 put_pixels8_l2_shift5_mmx2 |
#define | avg_pixels8_l2_shift5_ssse3 avg_pixels8_l2_shift5_mmx2 |
#define | put_pixels16_l2_shift5_ssse3 put_pixels16_l2_shift5_mmx2 |
#define | avg_pixels16_l2_shift5_ssse3 avg_pixels16_l2_shift5_mmx2 |
#define | put_h264_qpel8_h_lowpass_l2_sse2 put_h264_qpel8_h_lowpass_l2_mmx2 |
#define | avg_h264_qpel8_h_lowpass_l2_sse2 avg_h264_qpel8_h_lowpass_l2_mmx2 |
#define | put_h264_qpel16_h_lowpass_l2_sse2 put_h264_qpel16_h_lowpass_l2_mmx2 |
#define | avg_h264_qpel16_h_lowpass_l2_sse2 avg_h264_qpel16_h_lowpass_l2_mmx2 |
#define | put_h264_qpel8_v_lowpass_ssse3 put_h264_qpel8_v_lowpass_sse2 |
#define | avg_h264_qpel8_v_lowpass_ssse3 avg_h264_qpel8_v_lowpass_sse2 |
#define | put_h264_qpel16_v_lowpass_ssse3 put_h264_qpel16_v_lowpass_sse2 |
#define | avg_h264_qpel16_v_lowpass_ssse3 avg_h264_qpel16_v_lowpass_sse2 |
#define | put_h264_qpel8or16_hv2_lowpass_sse2 put_h264_qpel8or16_hv2_lowpass_mmx2 |
#define | avg_h264_qpel8or16_hv2_lowpass_sse2 avg_h264_qpel8or16_hv2_lowpass_mmx2 |
#define | H264_MC(OPNAME, SIZE, MMX, ALIGN) |
#define | put_h264_qpel8_mc00_sse2 put_h264_qpel8_mc00_mmx2 |
#define | avg_h264_qpel8_mc00_sse2 avg_h264_qpel8_mc00_mmx2 |
#define | H264_MC_C(OPNAME, SIZE, MMX, ALIGN) |
#define | H264_MC_H(OPNAME, SIZE, MMX, ALIGN) |
#define | H264_MC_V(OPNAME, SIZE, MMX, ALIGN) |
#define | H264_MC_HV(OPNAME, SIZE, MMX, ALIGN) |
#define | H264_MC_4816(MMX) |
#define | H264_MC_816(QPEL, XMM) |
#define | AVG_3DNOW_OP(a, b, temp, size) |
#define | AVG_MMX2_OP(a, b, temp, size) |
#define | PAVGB "pavgusb" |
#define | PAVGB "pavgb" |
#define | H264_CHROMA_OP(S, D) |
#define | H264_CHROMA_OP4(S, D, T) |
#define | H264_CHROMA_MC8_TMPL put_h264_chroma_generic_mc8_mmx |
#define | H264_CHROMA_MC4_TMPL put_h264_chroma_generic_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_generic_mc8_mmx2 |
#define | H264_CHROMA_MC4_TMPL avg_h264_chroma_generic_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_generic_mc8_3dnow |
#define | H264_CHROMA_MC4_TMPL avg_h264_chroma_generic_mc4_3dnow |
#define | H264_CHROMA_MC8_MV0 avg_pixels8_3dnow |
#define | H264_WEIGHT(W, H) |
Functions | |
DECLARE_ALIGNED_8 (static const uint64_t, ff_pb_3_1)=0x0103010301030103ULL | |
DECLARE_ALIGNED_8 (static const uint64_t, ff_pb_7_3)=0x0307030703070307ULL | |
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 | ff_h264_idct_add16_mmx (uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8]) |
static void | ff_h264_idct8_add4_mmx (uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8]) |
static void | ff_h264_idct_add16_mmx2 (uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8]) |
static void | ff_h264_idct_add16intra_mmx (uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8]) |
static void | ff_h264_idct_add16intra_mmx2 (uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8]) |
static void | ff_h264_idct8_add4_mmx2 (uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8]) |
static void | ff_h264_idct8_add4_sse2 (uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8]) |
static void | ff_h264_idct_add8_mmx (uint8_t **dest, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8]) |
static void | ff_h264_idct_add8_mmx2 (uint8_t **dest, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[6 *8]) |
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, int field) |
static av_always_inline void | put_h264_qpel8or16_hv1_lowpass_sse2 (int16_t *tmp, uint8_t *src, int tmpStride, int srcStride, int size) |
static void | put_h264_qpel16_mc00_sse2 (uint8_t *dst, uint8_t *src, int stride) |
static void | avg_h264_qpel16_mc00_sse2 (uint8_t *dst, uint8_t *src, int stride) |
DECLARE_ALIGNED_8 (static const uint64_t, h264_rnd_reg[4]) | |
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 | put_h264_chroma_mc4_mmx (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_mc4_mmx2 (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 | avg_h264_chroma_mc4_3dnow (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) |
Variables | |
static const uint8_t | scan8 [16+2 *4] |
#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 2049 of file h264dsp_mmx.c.
#define avg_h264_qpel16_h_lowpass_l2_sse2 avg_h264_qpel16_h_lowpass_l2_mmx2 |
Definition at line 1908 of file h264dsp_mmx.c.
#define avg_h264_qpel16_v_lowpass_ssse3 avg_h264_qpel16_v_lowpass_sse2 |
Definition at line 1913 of file h264dsp_mmx.c.
#define avg_h264_qpel8_h_lowpass_l2_sse2 avg_h264_qpel8_h_lowpass_l2_mmx2 |
Definition at line 1906 of file h264dsp_mmx.c.
#define avg_h264_qpel8_mc00_sse2 avg_h264_qpel8_mc00_mmx2 |
Definition at line 1931 of file h264dsp_mmx.c.
#define avg_h264_qpel8_v_lowpass_ssse3 avg_h264_qpel8_v_lowpass_sse2 |
Definition at line 1911 of file h264dsp_mmx.c.
#define avg_h264_qpel8or16_hv2_lowpass_sse2 avg_h264_qpel8or16_hv2_lowpass_mmx2 |
Definition at line 1916 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 2053 of file h264dsp_mmx.c.
#define avg_pixels16_l2_shift5_sse2 avg_pixels16_l2_shift5_mmx2 |
Definition at line 1899 of file h264dsp_mmx.c.
#define avg_pixels16_l2_shift5_ssse3 avg_pixels16_l2_shift5_mmx2 |
Definition at line 1903 of file h264dsp_mmx.c.
#define avg_pixels16_l2_sse2 avg_pixels16_l2_mmx2 |
Definition at line 1890 of file h264dsp_mmx.c.
#define avg_pixels16_l2_ssse3 avg_pixels16_l2_mmx2 |
Definition at line 1894 of file h264dsp_mmx.c.
#define avg_pixels8_l2_shift5_sse2 avg_pixels8_l2_shift5_mmx2 |
Definition at line 1897 of file h264dsp_mmx.c.
#define avg_pixels8_l2_shift5_ssse3 avg_pixels8_l2_shift5_mmx2 |
Definition at line 1901 of file h264dsp_mmx.c.
#define avg_pixels8_l2_sse2 avg_pixels8_l2_mmx2 |
Definition at line 1888 of file h264dsp_mmx.c.
#define avg_pixels8_l2_ssse3 avg_pixels8_l2_mmx2 |
Definition at line 1892 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 562 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 552 of file h264dsp_mmx.c.
#define H264_CHROMA_MC2_TMPL avg_h264_chroma_mc2_mmx2 |
Definition at line 2125 of file h264dsp_mmx.c.
#define H264_CHROMA_MC2_TMPL put_h264_chroma_mc2_mmx2 |
Definition at line 2125 of file h264dsp_mmx.c.
#define H264_CHROMA_MC4_TMPL avg_h264_chroma_generic_mc4_3dnow |
Definition at line 2147 of file h264dsp_mmx.c.
#define H264_CHROMA_MC4_TMPL avg_h264_chroma_generic_mc4_mmx2 |
Definition at line 2147 of file h264dsp_mmx.c.
#define H264_CHROMA_MC4_TMPL put_h264_chroma_generic_mc4_mmx |
Definition at line 2147 of file h264dsp_mmx.c.
#define H264_CHROMA_MC8_MV0 avg_pixels8_3dnow |
Definition at line 2148 of file h264dsp_mmx.c.
#define H264_CHROMA_MC8_MV0 avg_pixels8_mmx2 |
Definition at line 2148 of file h264dsp_mmx.c.
#define H264_CHROMA_MC8_MV0 put_pixels8_mmx |
#define H264_CHROMA_MC8_TMPL avg_h264_chroma_generic_mc8_3dnow |
Definition at line 2146 of file h264dsp_mmx.c.
#define H264_CHROMA_MC8_TMPL avg_h264_chroma_generic_mc8_mmx2 |
Definition at line 2146 of file h264dsp_mmx.c.
#define H264_CHROMA_MC8_TMPL put_h264_chroma_generic_mc8_mmx |
Definition at line 2146 of file h264dsp_mmx.c.
Definition at line 2143 of file h264dsp_mmx.c.
Definition at line 2143 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 574 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 590 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 615 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 746 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, | |||||
h | ) |
#define H264_MC | ( | OPNAME, | |||
SIZE, | |||||
MMX, | |||||
ALIGN | ) |
#define H264_MC_4816 | ( | MMX | ) |
#define H264_MC_816 | ( | QPEL, | |||
XMM | ) |
#define H264_MC_C | ( | OPNAME, | |||
SIZE, | |||||
MMX, | |||||
ALIGN | ) |
#define H264_MC_H | ( | OPNAME, | |||
SIZE, | |||||
MMX, | |||||
ALIGN | ) |
Value:
static void OPNAME ## h264_qpel ## SIZE ## _mc10_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, src, stride, stride);\ }\ \ static void OPNAME ## h264_qpel ## SIZE ## _mc20_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_ ## MMX(dst, src, stride, stride);\ }\ \ static void OPNAME ## h264_qpel ## SIZE ## _mc30_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\ OPNAME ## h264_qpel ## SIZE ## _h_lowpass_l2_ ## MMX(dst, src, src+1, stride, stride);\ }\
Definition at line 1938 of file h264dsp_mmx.c.
#define H264_MC_HV | ( | OPNAME, | |||
SIZE, | |||||
MMX, | |||||
ALIGN | ) |
Definition at line 1968 of file h264dsp_mmx.c.
#define H264_MC_V | ( | OPNAME, | |||
SIZE, | |||||
MMX, | |||||
ALIGN | ) |
Value:
static void OPNAME ## h264_qpel ## SIZE ## _mc01_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\ DECLARE_ALIGNED(ALIGN, uint8_t, temp[SIZE*SIZE]);\ put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\ OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src, temp, stride, stride, SIZE);\ }\ \ static void OPNAME ## h264_qpel ## SIZE ## _mc02_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\ OPNAME ## h264_qpel ## SIZE ## _v_lowpass_ ## MMX(dst, src, stride, stride);\ }\ \ static void OPNAME ## h264_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\ DECLARE_ALIGNED(ALIGN, uint8_t, temp[SIZE*SIZE]);\ put_h264_qpel ## SIZE ## _v_lowpass_ ## MMX(temp, src, SIZE, stride);\ OPNAME ## pixels ## SIZE ## _l2_ ## MMX(dst, src+stride, temp, stride, stride, SIZE);\ }\
Definition at line 1951 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 2280 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 44 of file h264dsp_mmx.c.
Referenced by ff_h264_idct_add_mmx().
#define PAVGB "pavgb" |
Definition at line 2062 of file h264dsp_mmx.c.
#define PAVGB "pavgusb" |
Definition at line 2062 of file h264dsp_mmx.c.
#define put_h264_qpel16_h_lowpass_l2_sse2 put_h264_qpel16_h_lowpass_l2_mmx2 |
Definition at line 1907 of file h264dsp_mmx.c.
#define put_h264_qpel16_v_lowpass_ssse3 put_h264_qpel16_v_lowpass_sse2 |
Definition at line 1912 of file h264dsp_mmx.c.
#define put_h264_qpel8_h_lowpass_l2_sse2 put_h264_qpel8_h_lowpass_l2_mmx2 |
Definition at line 1905 of file h264dsp_mmx.c.
#define put_h264_qpel8_mc00_sse2 put_h264_qpel8_mc00_mmx2 |
Definition at line 1930 of file h264dsp_mmx.c.
#define put_h264_qpel8_v_lowpass_ssse3 put_h264_qpel8_v_lowpass_sse2 |
Definition at line 1910 of file h264dsp_mmx.c.
#define put_h264_qpel8or16_hv2_lowpass_sse2 put_h264_qpel8or16_hv2_lowpass_mmx2 |
Definition at line 1915 of file h264dsp_mmx.c.
#define put_pixels16_l2_shift5_sse2 put_pixels16_l2_shift5_mmx2 |
Definition at line 1898 of file h264dsp_mmx.c.
#define put_pixels16_l2_shift5_ssse3 put_pixels16_l2_shift5_mmx2 |
Definition at line 1902 of file h264dsp_mmx.c.
#define put_pixels16_l2_sse2 put_pixels16_l2_mmx2 |
Definition at line 1889 of file h264dsp_mmx.c.
#define put_pixels16_l2_ssse3 put_pixels16_l2_mmx2 |
Definition at line 1893 of file h264dsp_mmx.c.
#define put_pixels8_l2_shift5_sse2 put_pixels8_l2_shift5_mmx2 |
Definition at line 1896 of file h264dsp_mmx.c.
#define put_pixels8_l2_shift5_ssse3 put_pixels8_l2_shift5_mmx2 |
Definition at line 1900 of file h264dsp_mmx.c.
#define put_pixels8_l2_sse2 put_pixels8_l2_mmx2 |
Definition at line 1887 of file h264dsp_mmx.c.
#define put_pixels8_l2_ssse3 put_pixels8_l2_mmx2 |
Definition at line 1891 of file h264dsp_mmx.c.
#define QPEL_H264 | ( | OPNAME, | |||
OP, | |||||
MMX | ) |
Definition at line 941 of file h264dsp_mmx.c.
#define QPEL_H264_H16_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 1559 of file h264dsp_mmx.c.
#define QPEL_H264_H_XMM | ( | OPNAME, | |||
OP, | |||||
MMX | ) |
Definition at line 1571 of file h264dsp_mmx.c.
#define QPEL_H264_HV2_XMM | ( | OPNAME, | |||
OP, | |||||
MMX | ) |
Definition at line 1780 of file h264dsp_mmx.c.
#define QPEL_H264_HV_XMM | ( | OPNAME, | |||
OP, | |||||
MMX | ) |
Value:
static av_noinline void OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride, int size){\ put_h264_qpel8or16_hv1_lowpass_sse2(tmp, src, tmpStride, srcStride, size);\ OPNAME ## h264_qpel8or16_hv2_lowpass_ ## MMX(dst, tmp, dstStride, tmpStride, size);\ }\ static void OPNAME ## h264_qpel8_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\ OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst, tmp, src, dstStride, tmpStride, srcStride, 8);\ }\ static void OPNAME ## h264_qpel16_hv_lowpass_ ## MMX(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\ OPNAME ## h264_qpel8or16_hv_lowpass_ ## MMX(dst, tmp, src, dstStride, tmpStride, srcStride, 16);\ }\
Definition at line 1875 of file h264dsp_mmx.c.
#define QPEL_H264_V_XMM | ( | OPNAME, | |||
OP, | |||||
MMX | ) |
Definition at line 1668 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 936 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 920 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) |
#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 935 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 902 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 937 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 49 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 217 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 29 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 37 of file h264dsp_mmx.c.
static void avg_h264_chroma_mc4_3dnow | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride, | |||
int | h, | |||
int | x, | |||
int | y | |||
) | [static] |
static void avg_h264_chroma_mc4_mmx2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride, | |||
int | h, | |||
int | x, | |||
int | y | |||
) | [static] |
static void avg_h264_chroma_mc8_3dnow_rnd | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride, | |||
int | h, | |||
int | x, | |||
int | y | |||
) | [static] |
static void avg_h264_chroma_mc8_mmx2_rnd | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride, | |||
int | h, | |||
int | x, | |||
int | y | |||
) | [static] |
static void avg_h264_qpel16_mc00_sse2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride | |||
) | [static] |
Definition at line 1927 of file h264dsp_mmx.c.
DECLARE_ALIGNED_8 | ( | static const | uint64_t, | |
h264_rnd_reg | [4] | |||
) |
DECLARE_ALIGNED_8 | ( | static const | uint64_t, | |
ff_pb_7_3 | ||||
) | [pure virtual] |
DECLARE_ALIGNED_8 | ( | static const | uint64_t, | |
ff_pb_3_1 | ||||
) | [pure virtual] |
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 2242 of file h264dsp_mmx.c.
static void ff_h264_idct8_add4_mmx | ( | uint8_t * | dst, | |
const int * | block_offset, | |||
DCTELEM * | block, | |||
int | stride, | |||
const uint8_t | nnzc[6 *8] | |||
) | [static] |
static void ff_h264_idct8_add4_mmx2 | ( | uint8_t * | dst, | |
const int * | block_offset, | |||
DCTELEM * | block, | |||
int | stride, | |||
const uint8_t | nnzc[6 *8] | |||
) | [static] |
static void ff_h264_idct8_add4_sse2 | ( | uint8_t * | dst, | |
const int * | block_offset, | |||
DCTELEM * | block, | |||
int | stride, | |||
const uint8_t | nnzc[6 *8] | |||
) | [static] |
static void ff_h264_idct8_add_mmx | ( | uint8_t * | dst, | |
int16_t * | block, | |||
int | stride | |||
) | [static] |
Definition at line 157 of file h264dsp_mmx.c.
Referenced by dsputil_init_mmx(), ff_h264_idct8_add4_mmx(), and ff_h264_idct8_add4_mmx2().
static void ff_h264_idct8_add_sse2 | ( | uint8_t * | dst, | |
int16_t * | block, | |||
int | stride | |||
) | [static] |
Definition at line 270 of file h264dsp_mmx.c.
Referenced by dsputil_init_mmx(), and ff_h264_idct8_add4_sse2().
static void ff_h264_idct8_dc_add_mmx2 | ( | uint8_t * | dst, | |
int16_t * | block, | |||
int | stride | |||
) | [static] |
Definition at line 340 of file h264dsp_mmx.c.
Referenced by dsputil_init_mmx(), ff_h264_idct8_add4_mmx2(), and ff_h264_idct8_add4_sse2().
static void ff_h264_idct_add16_mmx | ( | uint8_t * | dst, | |
const int * | block_offset, | |||
DCTELEM * | block, | |||
int | stride, | |||
const uint8_t | nnzc[6 *8] | |||
) | [static] |
static void ff_h264_idct_add16_mmx2 | ( | uint8_t * | dst, | |
const int * | block_offset, | |||
DCTELEM * | block, | |||
int | stride, | |||
const uint8_t | nnzc[6 *8] | |||
) | [static] |
static void ff_h264_idct_add16intra_mmx | ( | uint8_t * | dst, | |
const int * | block_offset, | |||
DCTELEM * | block, | |||
int | stride, | |||
const uint8_t | nnzc[6 *8] | |||
) | [static] |
static void ff_h264_idct_add16intra_mmx2 | ( | uint8_t * | dst, | |
const int * | block_offset, | |||
DCTELEM * | block, | |||
int | stride, | |||
const uint8_t | nnzc[6 *8] | |||
) | [static] |
static void ff_h264_idct_add8_mmx | ( | uint8_t ** | dest, | |
const int * | block_offset, | |||
DCTELEM * | block, | |||
int | stride, | |||
const uint8_t | nnzc[6 *8] | |||
) | [static] |
static void ff_h264_idct_add8_mmx2 | ( | uint8_t ** | dest, | |
const int * | block_offset, | |||
DCTELEM * | block, | |||
int | stride, | |||
const uint8_t | nnzc[6 *8] | |||
) | [static] |
static void ff_h264_idct_add_mmx | ( | uint8_t * | dst, | |
int16_t * | block, | |||
int | stride | |||
) | [static] |
Definition at line 57 of file h264dsp_mmx.c.
Referenced by dsputil_init_mmx(), ff_h264_idct_add16_mmx(), ff_h264_idct_add16_mmx2(), ff_h264_idct_add16intra_mmx(), ff_h264_idct_add16intra_mmx2(), ff_h264_idct_add8_mmx(), and ff_h264_idct_add8_mmx2().
static void ff_h264_idct_dc_add_mmx2 | ( | uint8_t * | dst, | |
int16_t * | block, | |||
int | stride | |||
) | [static] |
Definition at line 304 of file h264dsp_mmx.c.
Referenced by dsputil_init_mmx(), ff_h264_idct_add16_mmx2(), ff_h264_idct_add16intra_mmx2(), and ff_h264_idct_add8_mmx2().
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 2203 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 755 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 708 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 629 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, | |||
int | field | |||
) | [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] |
static void put_h264_chroma_mc4_mmx | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride, | |||
int | h, | |||
int | x, | |||
int | y | |||
) | [static] |
static void put_h264_chroma_mc8_mmx_nornd | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride, | |||
int | h, | |||
int | x, | |||
int | y | |||
) | [static] |
static void put_h264_chroma_mc8_mmx_rnd | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride, | |||
int | h, | |||
int | x, | |||
int | y | |||
) | [static] |
static void put_h264_qpel16_mc00_sse2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride | |||
) | [static] |
Definition at line 1924 of file h264dsp_mmx.c.
static av_always_inline void put_h264_qpel8or16_hv1_lowpass_sse2 | ( | int16_t * | tmp, | |
uint8_t * | src, | |||
int | tmpStride, | |||
int | srcStride, | |||
int | size | |||
) | [static] |
Definition at line 1727 of file h264dsp_mmx.c.
const uint8_t scan8[16+2 *4] [static] |
Initial value:
{ 4+1*8, 5+1*8, 4+2*8, 5+2*8, 6+1*8, 7+1*8, 6+2*8, 7+2*8, 4+3*8, 5+3*8, 4+4*8, 5+4*8, 6+3*8, 7+3*8, 6+4*8, 7+4*8, 1+1*8, 2+1*8, 1+2*8, 2+2*8, 1+4*8, 2+4*8, 1+5*8, 2+5*8, }
Definition at line 380 of file h264dsp_mmx.c.