Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>tags/n2.8
| @@ -76,3 +76,4 @@ MMI-OBJS-$(CONFIG_IDCTDSP) += mips/idctdsp_mmi.o \ | |||
| MMI-OBJS-$(CONFIG_MPEG4_DECODER) += mips/xvid_idct_mmi.o | |||
| MMI-OBJS-$(CONFIG_BLOCKDSP) += mips/blockdsp_mmi.o | |||
| MMI-OBJS-$(CONFIG_PIXBLOCKDSP) += mips/pixblockdsp_mmi.o | |||
| MMI-OBJS-$(CONFIG_H264QPEL) += mips/h264qpel_mmi.o | |||
| @@ -24,18 +24,21 @@ | |||
| #include "constants.h" | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_1) = {0x0001000100010001ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_3) = {0x0003000300030003ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_4) = {0x0004000400040004ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_5) = {0x0005000500050005ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_3) = {0x0003000300030003ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_8) = {0x0008000800080008ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_9) = {0x0009000900090009ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_10) = {0x000A000A000A000AULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_16) = {0x0010001000100010ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_18) = {0x0012001200120012ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_20) = {0x0014001400140014ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_28) = {0x001C001C001C001CULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_32) = {0x0020002000200020ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_53) = {0x0035003500350035ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_64) = {0x0040004000400040ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_128) = {0x0080008000800080ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_512) = {0x0200020002000200ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_m8tom5) = {0xFFFBFFFAFFF9FFF8ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_m4tom1) = {0xFFFFFFFEFFFDFFFCULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pw_1to4) = {0x0004000300020001ULL}; | |||
| @@ -49,6 +52,7 @@ DECLARE_ALIGNED(8, const uint64_t, ff_pb_1) = {0x0101010101010101ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pb_3) = {0x0303030303030303ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pb_80) = {0x8080808080808080ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pb_A1) = {0xA1A1A1A1A1A1A1A1ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_pb_FE) = {0xFEFEFEFEFEFEFEFEULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_rnd) = {0x0004000400040004ULL}; | |||
| DECLARE_ALIGNED(8, const uint64_t, ff_rnd2) = {0x0040004000400040ULL}; | |||
| @@ -30,13 +30,16 @@ extern const uint64_t ff_pw_4; | |||
| extern const uint64_t ff_pw_5; | |||
| extern const uint64_t ff_pw_8; | |||
| extern const uint64_t ff_pw_9; | |||
| extern const uint64_t ff_pw_10; | |||
| extern const uint64_t ff_pw_16; | |||
| extern const uint64_t ff_pw_18; | |||
| extern const uint64_t ff_pw_20; | |||
| extern const uint64_t ff_pw_28; | |||
| extern const uint64_t ff_pw_32; | |||
| extern const uint64_t ff_pw_53; | |||
| extern const uint64_t ff_pw_64; | |||
| extern const uint64_t ff_pw_128; | |||
| extern const uint64_t ff_pw_512; | |||
| extern const uint64_t ff_pw_m8tom5; | |||
| extern const uint64_t ff_pw_m4tom1; | |||
| extern const uint64_t ff_pw_1to4; | |||
| @@ -50,6 +53,7 @@ extern const uint64_t ff_pb_1; | |||
| extern const uint64_t ff_pb_3; | |||
| extern const uint64_t ff_pb_80; | |||
| extern const uint64_t ff_pb_A1; | |||
| extern const uint64_t ff_pb_FE; | |||
| extern const uint64_t ff_rnd; | |||
| extern const uint64_t ff_rnd2; | |||
| @@ -1,5 +1,6 @@ | |||
| /* | |||
| * Copyright (c) 2015 Parag Salasakar (Parag.Salasakar@imgtec.com) | |||
| Zhou Xiaoyong <zhouxiaoyong@loongson.cn> | |||
| * | |||
| * This file is part of FFmpeg. | |||
| * | |||
| @@ -22,6 +23,7 @@ | |||
| #define H264_DSP_MIPS_H | |||
| #include "libavcodec/h264.h" | |||
| #include "constants.h" | |||
| void ff_h264_h_lpf_luma_inter_msa(uint8_t *src, int stride, | |||
| int alpha, int beta, int8_t *tc0); | |||
| @@ -333,4 +335,202 @@ void ff_h264_biweight_pixels4_8_mmi(uint8_t *dst, uint8_t *src, | |||
| int stride, int height, int log2_denom, int weightd, int weights, | |||
| int offset); | |||
| void ff_put_h264_qpel16_mc00_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc10_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc20_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc30_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc01_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc11_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc21_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc31_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc02_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc12_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc22_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc32_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc03_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc13_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc23_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel16_mc33_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc00_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc10_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc20_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc30_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc01_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc11_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc21_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc31_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc02_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc12_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc22_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc32_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc03_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc13_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc23_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel8_mc33_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc00_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc10_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc20_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc30_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc01_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc11_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc21_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc31_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc02_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc12_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc22_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc32_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc03_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc13_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc23_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_put_h264_qpel4_mc33_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc00_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc10_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc20_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc30_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc01_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc11_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc21_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc31_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc02_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc12_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc22_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc32_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc03_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc13_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc23_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel16_mc33_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc00_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc10_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc20_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc30_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc01_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc11_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc21_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc31_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc02_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc12_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc22_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc32_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc03_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc13_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc23_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel8_mc33_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc00_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc10_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc20_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc30_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc01_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc11_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc21_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc31_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc02_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc12_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc22_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc32_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc03_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc13_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc23_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| void ff_avg_h264_qpel4_mc33_mmi(uint8_t *dst, const uint8_t *src, | |||
| ptrdiff_t dst_stride); | |||
| #endif // #ifndef H264_DSP_MIPS_H | |||
| @@ -1,5 +1,6 @@ | |||
| /* | |||
| * Copyright (c) 2015 Parag Salasakar (Parag.Salasakar@imgtec.com) | |||
| * Zhou Xiaoyong <zhouxiaoyong@loongson.cn> | |||
| * | |||
| * This file is part of FFmpeg. | |||
| * | |||
| @@ -128,9 +129,121 @@ static av_cold void h264qpel_init_msa(H264QpelContext *c, int bit_depth) | |||
| } | |||
| #endif // #if HAVE_MSA | |||
| #if HAVE_MMI | |||
| static av_cold void h264qpel_init_mmi(H264QpelContext *c, int bit_depth) | |||
| { | |||
| if (8 == bit_depth) { | |||
| c->put_h264_qpel_pixels_tab[0][0] = ff_put_h264_qpel16_mc00_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][1] = ff_put_h264_qpel16_mc10_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][2] = ff_put_h264_qpel16_mc20_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][3] = ff_put_h264_qpel16_mc30_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][4] = ff_put_h264_qpel16_mc01_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][5] = ff_put_h264_qpel16_mc11_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][6] = ff_put_h264_qpel16_mc21_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][7] = ff_put_h264_qpel16_mc31_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][8] = ff_put_h264_qpel16_mc02_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][9] = ff_put_h264_qpel16_mc12_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][10] = ff_put_h264_qpel16_mc22_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][11] = ff_put_h264_qpel16_mc32_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][12] = ff_put_h264_qpel16_mc03_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][13] = ff_put_h264_qpel16_mc13_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][14] = ff_put_h264_qpel16_mc23_mmi; | |||
| c->put_h264_qpel_pixels_tab[0][15] = ff_put_h264_qpel16_mc33_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][0] = ff_put_h264_qpel8_mc00_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][1] = ff_put_h264_qpel8_mc10_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][2] = ff_put_h264_qpel8_mc20_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][3] = ff_put_h264_qpel8_mc30_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][4] = ff_put_h264_qpel8_mc01_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][5] = ff_put_h264_qpel8_mc11_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][6] = ff_put_h264_qpel8_mc21_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][7] = ff_put_h264_qpel8_mc31_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][8] = ff_put_h264_qpel8_mc02_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][9] = ff_put_h264_qpel8_mc12_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][10] = ff_put_h264_qpel8_mc22_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][11] = ff_put_h264_qpel8_mc32_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][12] = ff_put_h264_qpel8_mc03_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][13] = ff_put_h264_qpel8_mc13_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][14] = ff_put_h264_qpel8_mc23_mmi; | |||
| c->put_h264_qpel_pixels_tab[1][15] = ff_put_h264_qpel8_mc33_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][0] = ff_put_h264_qpel4_mc00_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][1] = ff_put_h264_qpel4_mc10_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][2] = ff_put_h264_qpel4_mc20_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][3] = ff_put_h264_qpel4_mc30_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][4] = ff_put_h264_qpel4_mc01_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][5] = ff_put_h264_qpel4_mc11_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][6] = ff_put_h264_qpel4_mc21_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][7] = ff_put_h264_qpel4_mc31_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][8] = ff_put_h264_qpel4_mc02_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][9] = ff_put_h264_qpel4_mc12_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][10] = ff_put_h264_qpel4_mc22_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][11] = ff_put_h264_qpel4_mc32_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][12] = ff_put_h264_qpel4_mc03_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][13] = ff_put_h264_qpel4_mc13_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][14] = ff_put_h264_qpel4_mc23_mmi; | |||
| c->put_h264_qpel_pixels_tab[2][15] = ff_put_h264_qpel4_mc33_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][0] = ff_avg_h264_qpel16_mc00_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][1] = ff_avg_h264_qpel16_mc10_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][2] = ff_avg_h264_qpel16_mc20_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][3] = ff_avg_h264_qpel16_mc30_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][4] = ff_avg_h264_qpel16_mc01_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][5] = ff_avg_h264_qpel16_mc11_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][6] = ff_avg_h264_qpel16_mc21_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][7] = ff_avg_h264_qpel16_mc31_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][8] = ff_avg_h264_qpel16_mc02_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][9] = ff_avg_h264_qpel16_mc12_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][10] = ff_avg_h264_qpel16_mc22_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][11] = ff_avg_h264_qpel16_mc32_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][12] = ff_avg_h264_qpel16_mc03_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][13] = ff_avg_h264_qpel16_mc13_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][14] = ff_avg_h264_qpel16_mc23_mmi; | |||
| c->avg_h264_qpel_pixels_tab[0][15] = ff_avg_h264_qpel16_mc33_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][0] = ff_avg_h264_qpel8_mc00_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][1] = ff_avg_h264_qpel8_mc10_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][2] = ff_avg_h264_qpel8_mc20_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][3] = ff_avg_h264_qpel8_mc30_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][4] = ff_avg_h264_qpel8_mc01_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][5] = ff_avg_h264_qpel8_mc11_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][6] = ff_avg_h264_qpel8_mc21_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][7] = ff_avg_h264_qpel8_mc31_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][8] = ff_avg_h264_qpel8_mc02_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][9] = ff_avg_h264_qpel8_mc12_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][10] = ff_avg_h264_qpel8_mc22_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][11] = ff_avg_h264_qpel8_mc32_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][12] = ff_avg_h264_qpel8_mc03_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][13] = ff_avg_h264_qpel8_mc13_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][14] = ff_avg_h264_qpel8_mc23_mmi; | |||
| c->avg_h264_qpel_pixels_tab[1][15] = ff_avg_h264_qpel8_mc33_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][0] = ff_avg_h264_qpel4_mc00_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][1] = ff_avg_h264_qpel4_mc10_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][2] = ff_avg_h264_qpel4_mc20_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][3] = ff_avg_h264_qpel4_mc30_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][4] = ff_avg_h264_qpel4_mc01_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][5] = ff_avg_h264_qpel4_mc11_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][6] = ff_avg_h264_qpel4_mc21_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][7] = ff_avg_h264_qpel4_mc31_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][8] = ff_avg_h264_qpel4_mc02_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][9] = ff_avg_h264_qpel4_mc12_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][10] = ff_avg_h264_qpel4_mc22_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][11] = ff_avg_h264_qpel4_mc32_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][12] = ff_avg_h264_qpel4_mc03_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][13] = ff_avg_h264_qpel4_mc13_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][14] = ff_avg_h264_qpel4_mc23_mmi; | |||
| c->avg_h264_qpel_pixels_tab[2][15] = ff_avg_h264_qpel4_mc33_mmi; | |||
| } | |||
| } | |||
| #endif /* HAVE_MMI */ | |||
| av_cold void ff_h264qpel_init_mips(H264QpelContext *c, int bit_depth) | |||
| { | |||
| #if HAVE_MSA | |||
| h264qpel_init_msa(c, bit_depth); | |||
| #endif // #if HAVE_MSA | |||
| #if HAVE_MMI | |||
| h264qpel_init_mmi(c, bit_depth); | |||
| #endif /* HAVE_MMI */ | |||
| } | |||