00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "libavutil/cpu.h"
00022 #include "libavutil/x86/cpu.h"
00023 #include "libavcodec/h264pred.h"
00024
00025 #define PRED4x4(TYPE, DEPTH, OPT) \
00026 void ff_pred4x4_ ## TYPE ## _ ## DEPTH ## _ ## OPT (uint8_t *src, \
00027 const uint8_t *topright, \
00028 ptrdiff_t stride);
00029
00030 PRED4x4(dc, 10, mmxext)
00031 PRED4x4(down_left, 10, sse2)
00032 PRED4x4(down_left, 10, avx)
00033 PRED4x4(down_right, 10, sse2)
00034 PRED4x4(down_right, 10, ssse3)
00035 PRED4x4(down_right, 10, avx)
00036 PRED4x4(vertical_left, 10, sse2)
00037 PRED4x4(vertical_left, 10, avx)
00038 PRED4x4(vertical_right, 10, sse2)
00039 PRED4x4(vertical_right, 10, ssse3)
00040 PRED4x4(vertical_right, 10, avx)
00041 PRED4x4(horizontal_up, 10, mmxext)
00042 PRED4x4(horizontal_down, 10, sse2)
00043 PRED4x4(horizontal_down, 10, ssse3)
00044 PRED4x4(horizontal_down, 10, avx)
00045
00046 #define PRED8x8(TYPE, DEPTH, OPT) \
00047 void ff_pred8x8_ ## TYPE ## _ ## DEPTH ## _ ## OPT (uint8_t *src, \
00048 ptrdiff_t stride);
00049
00050 PRED8x8(dc, 10, mmxext)
00051 PRED8x8(dc, 10, sse2)
00052 PRED8x8(top_dc, 10, sse2)
00053 PRED8x8(plane, 10, sse2)
00054 PRED8x8(vertical, 10, sse2)
00055 PRED8x8(horizontal, 10, sse2)
00056
00057 #define PRED8x8L(TYPE, DEPTH, OPT)\
00058 void ff_pred8x8l_ ## TYPE ## _ ## DEPTH ## _ ## OPT (uint8_t *src, \
00059 int has_topleft, \
00060 int has_topright, \
00061 ptrdiff_t stride);
00062
00063 PRED8x8L(dc, 10, sse2)
00064 PRED8x8L(dc, 10, avx)
00065 PRED8x8L(128_dc, 10, mmxext)
00066 PRED8x8L(128_dc, 10, sse2)
00067 PRED8x8L(top_dc, 10, sse2)
00068 PRED8x8L(top_dc, 10, avx)
00069 PRED8x8L(vertical, 10, sse2)
00070 PRED8x8L(vertical, 10, avx)
00071 PRED8x8L(horizontal, 10, sse2)
00072 PRED8x8L(horizontal, 10, ssse3)
00073 PRED8x8L(horizontal, 10, avx)
00074 PRED8x8L(down_left, 10, sse2)
00075 PRED8x8L(down_left, 10, ssse3)
00076 PRED8x8L(down_left, 10, avx)
00077 PRED8x8L(down_right, 10, sse2)
00078 PRED8x8L(down_right, 10, ssse3)
00079 PRED8x8L(down_right, 10, avx)
00080 PRED8x8L(vertical_right, 10, sse2)
00081 PRED8x8L(vertical_right, 10, ssse3)
00082 PRED8x8L(vertical_right, 10, avx)
00083 PRED8x8L(horizontal_up, 10, sse2)
00084 PRED8x8L(horizontal_up, 10, ssse3)
00085 PRED8x8L(horizontal_up, 10, avx)
00086
00087 #define PRED16x16(TYPE, DEPTH, OPT)\
00088 void ff_pred16x16_ ## TYPE ## _ ## DEPTH ## _ ## OPT (uint8_t *src, \
00089 ptrdiff_t stride);
00090
00091 PRED16x16(dc, 10, mmxext)
00092 PRED16x16(dc, 10, sse2)
00093 PRED16x16(top_dc, 10, mmxext)
00094 PRED16x16(top_dc, 10, sse2)
00095 PRED16x16(128_dc, 10, mmxext)
00096 PRED16x16(128_dc, 10, sse2)
00097 PRED16x16(left_dc, 10, mmxext)
00098 PRED16x16(left_dc, 10, sse2)
00099 PRED16x16(vertical, 10, mmxext)
00100 PRED16x16(vertical, 10, sse2)
00101 PRED16x16(horizontal, 10, mmxext)
00102 PRED16x16(horizontal, 10, sse2)
00103
00104
00105 PRED16x16(vertical, 8, mmx)
00106 PRED16x16(vertical, 8, sse)
00107 PRED16x16(horizontal, 8, mmx)
00108 PRED16x16(horizontal, 8, mmxext)
00109 PRED16x16(horizontal, 8, ssse3)
00110 PRED16x16(dc, 8, mmxext)
00111 PRED16x16(dc, 8, sse2)
00112 PRED16x16(dc, 8, ssse3)
00113 PRED16x16(plane_h264, 8, mmx)
00114 PRED16x16(plane_h264, 8, mmxext)
00115 PRED16x16(plane_h264, 8, sse2)
00116 PRED16x16(plane_h264, 8, ssse3)
00117 PRED16x16(plane_rv40, 8, mmx)
00118 PRED16x16(plane_rv40, 8, mmxext)
00119 PRED16x16(plane_rv40, 8, sse2)
00120 PRED16x16(plane_rv40, 8, ssse3)
00121 PRED16x16(plane_svq3, 8, mmx)
00122 PRED16x16(plane_svq3, 8, mmxext)
00123 PRED16x16(plane_svq3, 8, sse2)
00124 PRED16x16(plane_svq3, 8, ssse3)
00125 PRED16x16(tm_vp8, 8, mmx)
00126 PRED16x16(tm_vp8, 8, mmxext)
00127 PRED16x16(tm_vp8, 8, sse2)
00128
00129 PRED8x8(top_dc, 8, mmxext)
00130 PRED8x8(dc_rv40, 8, mmxext)
00131 PRED8x8(dc, 8, mmxext)
00132 PRED8x8(vertical, 8, mmx)
00133 PRED8x8(horizontal, 8, mmx)
00134 PRED8x8(horizontal, 8, mmxext)
00135 PRED8x8(horizontal, 8, ssse3)
00136 PRED8x8(plane, 8, mmx)
00137 PRED8x8(plane, 8, mmxext)
00138 PRED8x8(plane, 8, sse2)
00139 PRED8x8(plane, 8, ssse3)
00140 PRED8x8(tm_vp8, 8, mmx)
00141 PRED8x8(tm_vp8, 8, mmxext)
00142 PRED8x8(tm_vp8, 8, sse2)
00143 PRED8x8(tm_vp8, 8, ssse3)
00144
00145 PRED8x8L(top_dc, 8, mmxext)
00146 PRED8x8L(top_dc, 8, ssse3)
00147 PRED8x8L(dc, 8, mmxext)
00148 PRED8x8L(dc, 8, ssse3)
00149 PRED8x8L(horizontal, 8, mmxext)
00150 PRED8x8L(horizontal, 8, ssse3)
00151 PRED8x8L(vertical, 8, mmxext)
00152 PRED8x8L(vertical, 8, ssse3)
00153 PRED8x8L(down_left, 8, mmxext)
00154 PRED8x8L(down_left, 8, sse2)
00155 PRED8x8L(down_left, 8, ssse3)
00156 PRED8x8L(down_right, 8, mmxext)
00157 PRED8x8L(down_right, 8, sse2)
00158 PRED8x8L(down_right, 8, ssse3)
00159 PRED8x8L(vertical_right, 8, mmxext)
00160 PRED8x8L(vertical_right, 8, sse2)
00161 PRED8x8L(vertical_right, 8, ssse3)
00162 PRED8x8L(vertical_left, 8, sse2)
00163 PRED8x8L(vertical_left, 8, ssse3)
00164 PRED8x8L(horizontal_up, 8, mmxext)
00165 PRED8x8L(horizontal_up, 8, ssse3)
00166 PRED8x8L(horizontal_down, 8, mmxext)
00167 PRED8x8L(horizontal_down, 8, sse2)
00168 PRED8x8L(horizontal_down, 8, ssse3)
00169
00170 PRED4x4(dc, 8, mmxext)
00171 PRED4x4(down_left, 8, mmxext)
00172 PRED4x4(down_right, 8, mmxext)
00173 PRED4x4(vertical_left, 8, mmxext)
00174 PRED4x4(vertical_right, 8, mmxext)
00175 PRED4x4(horizontal_up, 8, mmxext)
00176 PRED4x4(horizontal_down, 8, mmxext)
00177 PRED4x4(tm_vp8, 8, mmx)
00178 PRED4x4(tm_vp8, 8, mmxext)
00179 PRED4x4(tm_vp8, 8, ssse3)
00180 PRED4x4(vertical_vp8, 8, mmxext)
00181
00182 void ff_h264_pred_init_x86(H264PredContext *h, int codec_id, const int bit_depth, const int chroma_format_idc)
00183 {
00184 int mm_flags = av_get_cpu_flags();
00185
00186 if (bit_depth == 8) {
00187 if (EXTERNAL_MMX(mm_flags)) {
00188 h->pred16x16[VERT_PRED8x8 ] = ff_pred16x16_vertical_8_mmx;
00189 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_mmx;
00190 if (chroma_format_idc == 1) {
00191 h->pred8x8 [VERT_PRED8x8 ] = ff_pred8x8_vertical_8_mmx;
00192 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_mmx;
00193 }
00194 if (codec_id == AV_CODEC_ID_VP8) {
00195 h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_tm_vp8_8_mmx;
00196 h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_mmx;
00197 h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_mmx;
00198 } else {
00199 if (chroma_format_idc == 1)
00200 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmx;
00201 if (codec_id == AV_CODEC_ID_SVQ3) {
00202 if (mm_flags & AV_CPU_FLAG_CMOV)
00203 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_mmx;
00204 } else if (codec_id == AV_CODEC_ID_RV40) {
00205 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_rv40_8_mmx;
00206 } else {
00207 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_h264_8_mmx;
00208 }
00209 }
00210 }
00211
00212 if (EXTERNAL_MMXEXT(mm_flags)) {
00213 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_mmxext;
00214 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_8_mmxext;
00215 if (chroma_format_idc == 1)
00216 h->pred8x8[HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_mmxext;
00217 h->pred8x8l [TOP_DC_PRED ] = ff_pred8x8l_top_dc_8_mmxext;
00218 h->pred8x8l [DC_PRED ] = ff_pred8x8l_dc_8_mmxext;
00219 h->pred8x8l [HOR_PRED ] = ff_pred8x8l_horizontal_8_mmxext;
00220 h->pred8x8l [VERT_PRED ] = ff_pred8x8l_vertical_8_mmxext;
00221 h->pred8x8l [DIAG_DOWN_RIGHT_PRED ] = ff_pred8x8l_down_right_8_mmxext;
00222 h->pred8x8l [VERT_RIGHT_PRED ] = ff_pred8x8l_vertical_right_8_mmxext;
00223 h->pred8x8l [HOR_UP_PRED ] = ff_pred8x8l_horizontal_up_8_mmxext;
00224 h->pred8x8l [DIAG_DOWN_LEFT_PRED ] = ff_pred8x8l_down_left_8_mmxext;
00225 h->pred8x8l [HOR_DOWN_PRED ] = ff_pred8x8l_horizontal_down_8_mmxext;
00226 h->pred4x4 [DIAG_DOWN_RIGHT_PRED ] = ff_pred4x4_down_right_8_mmxext;
00227 h->pred4x4 [VERT_RIGHT_PRED ] = ff_pred4x4_vertical_right_8_mmxext;
00228 h->pred4x4 [HOR_DOWN_PRED ] = ff_pred4x4_horizontal_down_8_mmxext;
00229 h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_8_mmxext;
00230 if (codec_id == AV_CODEC_ID_VP8 || codec_id == AV_CODEC_ID_H264) {
00231 h->pred4x4 [DIAG_DOWN_LEFT_PRED] = ff_pred4x4_down_left_8_mmxext;
00232 }
00233 if (codec_id == AV_CODEC_ID_SVQ3 || codec_id == AV_CODEC_ID_H264) {
00234 h->pred4x4 [VERT_LEFT_PRED ] = ff_pred4x4_vertical_left_8_mmxext;
00235 }
00236 if (codec_id != AV_CODEC_ID_RV40) {
00237 h->pred4x4 [HOR_UP_PRED ] = ff_pred4x4_horizontal_up_8_mmxext;
00238 }
00239 if (codec_id == AV_CODEC_ID_SVQ3 || codec_id == AV_CODEC_ID_H264) {
00240 if (chroma_format_idc == 1) {
00241 h->pred8x8[TOP_DC_PRED8x8 ] = ff_pred8x8_top_dc_8_mmxext;
00242 h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_8_mmxext;
00243 }
00244 }
00245 if (codec_id == AV_CODEC_ID_VP8) {
00246 h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_tm_vp8_8_mmxext;
00247 h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_8_mmxext;
00248 h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_mmxext;
00249 h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_mmxext;
00250 h->pred4x4 [VERT_PRED ] = ff_pred4x4_vertical_vp8_8_mmxext;
00251 } else {
00252 if (chroma_format_idc == 1)
00253 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmxext;
00254 if (codec_id == AV_CODEC_ID_SVQ3) {
00255 h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_plane_svq3_8_mmxext;
00256 } else if (codec_id == AV_CODEC_ID_RV40) {
00257 h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_plane_rv40_8_mmxext;
00258 } else {
00259 h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_plane_h264_8_mmxext;
00260 }
00261 }
00262 }
00263
00264 if (EXTERNAL_SSE(mm_flags)) {
00265 h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_8_sse;
00266 }
00267
00268 if (EXTERNAL_SSE2(mm_flags)) {
00269 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_8_sse2;
00270 h->pred8x8l [DIAG_DOWN_LEFT_PRED ] = ff_pred8x8l_down_left_8_sse2;
00271 h->pred8x8l [DIAG_DOWN_RIGHT_PRED ] = ff_pred8x8l_down_right_8_sse2;
00272 h->pred8x8l [VERT_RIGHT_PRED ] = ff_pred8x8l_vertical_right_8_sse2;
00273 h->pred8x8l [VERT_LEFT_PRED ] = ff_pred8x8l_vertical_left_8_sse2;
00274 h->pred8x8l [HOR_DOWN_PRED ] = ff_pred8x8l_horizontal_down_8_sse2;
00275 if (codec_id == AV_CODEC_ID_VP8) {
00276 h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_tm_vp8_8_sse2;
00277 h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_sse2;
00278 } else {
00279 if (chroma_format_idc == 1)
00280 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_sse2;
00281 if (codec_id == AV_CODEC_ID_SVQ3) {
00282 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_sse2;
00283 } else if (codec_id == AV_CODEC_ID_RV40) {
00284 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_rv40_8_sse2;
00285 } else {
00286 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_h264_8_sse2;
00287 }
00288 }
00289 }
00290
00291 if (EXTERNAL_SSSE3(mm_flags)) {
00292 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_ssse3;
00293 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_8_ssse3;
00294 if (chroma_format_idc == 1)
00295 h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_ssse3;
00296 h->pred8x8l [TOP_DC_PRED ] = ff_pred8x8l_top_dc_8_ssse3;
00297 h->pred8x8l [DC_PRED ] = ff_pred8x8l_dc_8_ssse3;
00298 h->pred8x8l [HOR_PRED ] = ff_pred8x8l_horizontal_8_ssse3;
00299 h->pred8x8l [VERT_PRED ] = ff_pred8x8l_vertical_8_ssse3;
00300 h->pred8x8l [DIAG_DOWN_LEFT_PRED ] = ff_pred8x8l_down_left_8_ssse3;
00301 h->pred8x8l [DIAG_DOWN_RIGHT_PRED ] = ff_pred8x8l_down_right_8_ssse3;
00302 h->pred8x8l [VERT_RIGHT_PRED ] = ff_pred8x8l_vertical_right_8_ssse3;
00303 h->pred8x8l [VERT_LEFT_PRED ] = ff_pred8x8l_vertical_left_8_ssse3;
00304 h->pred8x8l [HOR_UP_PRED ] = ff_pred8x8l_horizontal_up_8_ssse3;
00305 h->pred8x8l [HOR_DOWN_PRED ] = ff_pred8x8l_horizontal_down_8_ssse3;
00306 if (codec_id == AV_CODEC_ID_VP8) {
00307 h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_ssse3;
00308 h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_ssse3;
00309 } else {
00310 if (chroma_format_idc == 1)
00311 h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_ssse3;
00312 if (codec_id == AV_CODEC_ID_SVQ3) {
00313 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_ssse3;
00314 } else if (codec_id == AV_CODEC_ID_RV40) {
00315 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_rv40_8_ssse3;
00316 } else {
00317 h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_h264_8_ssse3;
00318 }
00319 }
00320 }
00321 } else if (bit_depth == 10) {
00322 if (EXTERNAL_MMXEXT(mm_flags)) {
00323 h->pred4x4[DC_PRED ] = ff_pred4x4_dc_10_mmxext;
00324 h->pred4x4[HOR_UP_PRED ] = ff_pred4x4_horizontal_up_10_mmxext;
00325
00326 if (chroma_format_idc == 1)
00327 h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_10_mmxext;
00328
00329 h->pred8x8l[DC_128_PRED ] = ff_pred8x8l_128_dc_10_mmxext;
00330
00331 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_10_mmxext;
00332 h->pred16x16[TOP_DC_PRED8x8 ] = ff_pred16x16_top_dc_10_mmxext;
00333 h->pred16x16[DC_128_PRED8x8 ] = ff_pred16x16_128_dc_10_mmxext;
00334 h->pred16x16[LEFT_DC_PRED8x8 ] = ff_pred16x16_left_dc_10_mmxext;
00335 h->pred16x16[VERT_PRED8x8 ] = ff_pred16x16_vertical_10_mmxext;
00336 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_10_mmxext;
00337 }
00338 if (EXTERNAL_SSE2(mm_flags)) {
00339 h->pred4x4[DIAG_DOWN_LEFT_PRED ] = ff_pred4x4_down_left_10_sse2;
00340 h->pred4x4[DIAG_DOWN_RIGHT_PRED] = ff_pred4x4_down_right_10_sse2;
00341 h->pred4x4[VERT_LEFT_PRED ] = ff_pred4x4_vertical_left_10_sse2;
00342 h->pred4x4[VERT_RIGHT_PRED ] = ff_pred4x4_vertical_right_10_sse2;
00343 h->pred4x4[HOR_DOWN_PRED ] = ff_pred4x4_horizontal_down_10_sse2;
00344
00345 if (chroma_format_idc == 1) {
00346 h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_10_sse2;
00347 h->pred8x8[TOP_DC_PRED8x8 ] = ff_pred8x8_top_dc_10_sse2;
00348 h->pred8x8[PLANE_PRED8x8 ] = ff_pred8x8_plane_10_sse2;
00349 h->pred8x8[VERT_PRED8x8 ] = ff_pred8x8_vertical_10_sse2;
00350 h->pred8x8[HOR_PRED8x8 ] = ff_pred8x8_horizontal_10_sse2;
00351 }
00352
00353 h->pred8x8l[VERT_PRED ] = ff_pred8x8l_vertical_10_sse2;
00354 h->pred8x8l[HOR_PRED ] = ff_pred8x8l_horizontal_10_sse2;
00355 h->pred8x8l[DC_PRED ] = ff_pred8x8l_dc_10_sse2;
00356 h->pred8x8l[DC_128_PRED ] = ff_pred8x8l_128_dc_10_sse2;
00357 h->pred8x8l[TOP_DC_PRED ] = ff_pred8x8l_top_dc_10_sse2;
00358 h->pred8x8l[DIAG_DOWN_LEFT_PRED ] = ff_pred8x8l_down_left_10_sse2;
00359 h->pred8x8l[DIAG_DOWN_RIGHT_PRED] = ff_pred8x8l_down_right_10_sse2;
00360 h->pred8x8l[VERT_RIGHT_PRED ] = ff_pred8x8l_vertical_right_10_sse2;
00361 h->pred8x8l[HOR_UP_PRED ] = ff_pred8x8l_horizontal_up_10_sse2;
00362
00363 h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_10_sse2;
00364 h->pred16x16[TOP_DC_PRED8x8 ] = ff_pred16x16_top_dc_10_sse2;
00365 h->pred16x16[DC_128_PRED8x8 ] = ff_pred16x16_128_dc_10_sse2;
00366 h->pred16x16[LEFT_DC_PRED8x8 ] = ff_pred16x16_left_dc_10_sse2;
00367 h->pred16x16[VERT_PRED8x8 ] = ff_pred16x16_vertical_10_sse2;
00368 h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_10_sse2;
00369 }
00370 if (EXTERNAL_SSSE3(mm_flags)) {
00371 h->pred4x4[DIAG_DOWN_RIGHT_PRED] = ff_pred4x4_down_right_10_ssse3;
00372 h->pred4x4[VERT_RIGHT_PRED ] = ff_pred4x4_vertical_right_10_ssse3;
00373 h->pred4x4[HOR_DOWN_PRED ] = ff_pred4x4_horizontal_down_10_ssse3;
00374
00375 h->pred8x8l[HOR_PRED ] = ff_pred8x8l_horizontal_10_ssse3;
00376 h->pred8x8l[DIAG_DOWN_LEFT_PRED ] = ff_pred8x8l_down_left_10_ssse3;
00377 h->pred8x8l[DIAG_DOWN_RIGHT_PRED] = ff_pred8x8l_down_right_10_ssse3;
00378 h->pred8x8l[VERT_RIGHT_PRED ] = ff_pred8x8l_vertical_right_10_ssse3;
00379 h->pred8x8l[HOR_UP_PRED ] = ff_pred8x8l_horizontal_up_10_ssse3;
00380 }
00381 if (EXTERNAL_AVX(mm_flags)) {
00382 h->pred4x4[DIAG_DOWN_LEFT_PRED ] = ff_pred4x4_down_left_10_avx;
00383 h->pred4x4[DIAG_DOWN_RIGHT_PRED] = ff_pred4x4_down_right_10_avx;
00384 h->pred4x4[VERT_LEFT_PRED ] = ff_pred4x4_vertical_left_10_avx;
00385 h->pred4x4[VERT_RIGHT_PRED ] = ff_pred4x4_vertical_right_10_avx;
00386 h->pred4x4[HOR_DOWN_PRED ] = ff_pred4x4_horizontal_down_10_avx;
00387
00388 h->pred8x8l[VERT_PRED ] = ff_pred8x8l_vertical_10_avx;
00389 h->pred8x8l[HOR_PRED ] = ff_pred8x8l_horizontal_10_avx;
00390 h->pred8x8l[DC_PRED ] = ff_pred8x8l_dc_10_avx;
00391 h->pred8x8l[TOP_DC_PRED ] = ff_pred8x8l_top_dc_10_avx;
00392 h->pred8x8l[DIAG_DOWN_RIGHT_PRED] = ff_pred8x8l_down_right_10_avx;
00393 h->pred8x8l[DIAG_DOWN_LEFT_PRED ] = ff_pred8x8l_down_left_10_avx;
00394 h->pred8x8l[VERT_RIGHT_PRED ] = ff_pred8x8l_vertical_right_10_avx;
00395 h->pred8x8l[HOR_UP_PRED ] = ff_pred8x8l_horizontal_up_10_avx;
00396 }
00397 }
00398 }