/*****************************************************************************
* predict.c: intra prediction
*****************************************************************************
- * Copyright (C) 2003-2011 x264 project
+ * Copyright (C) 2003-2015 x264 project
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Loren Merritt <lorenm@u.washington.edu>
* Fiona Glaser <fiona@x264.com>
- * Henrik Gramner <hengar-6@student.ltu.se>
+ * Henrik Gramner <henrik@gramner.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#if ARCH_ARM
# include "arm/predict.h"
#endif
+#if ARCH_AARCH64
+# include "aarch64/predict.h"
+#endif
+#if ARCH_MIPS
+# include "mips/predict.h"
+#endif
/****************************************************************************
* 16x16 prediction for intra luma block
edge[14] = ((have_lt ? SRC(-1,-1) : SRC(-1,0))
+ 2*SRC(-1,0) + SRC(-1,1) + 2) >> 2;
PL(1) PL(2) PL(3) PL(4) PL(5) PL(6)
+ edge[6] =
edge[7] = (SRC(-1,6) + 3*SRC(-1,7) + 2) >> 2;
}
#if HAVE_ARMV6
x264_predict_16x16_init_arm( cpu, pf );
#endif
+
+#if ARCH_AARCH64
+ x264_predict_16x16_init_aarch64( cpu, pf );
+#endif
+
+#if !HIGH_BIT_DEPTH
+#if HAVE_MSA
+ if( cpu&X264_CPU_MSA )
+ {
+ pf[I_PRED_16x16_V ] = x264_intra_predict_vert_16x16_msa;
+ pf[I_PRED_16x16_H ] = x264_intra_predict_hor_16x16_msa;
+ pf[I_PRED_16x16_DC] = x264_intra_predict_dc_16x16_msa;
+ pf[I_PRED_16x16_P ] = x264_intra_predict_plane_16x16_msa;
+ pf[I_PRED_16x16_DC_LEFT]= x264_intra_predict_dc_left_16x16_msa;
+ pf[I_PRED_16x16_DC_TOP ]= x264_intra_predict_dc_top_16x16_msa;
+ pf[I_PRED_16x16_DC_128 ]= x264_intra_predict_dc_128_16x16_msa;
+ }
+#endif
+#endif
}
void x264_predict_8x8c_init( int cpu, x264_predict_t pf[7] )
#if HAVE_ARMV6
x264_predict_8x8c_init_arm( cpu, pf );
#endif
+
+#if ARCH_AARCH64
+ x264_predict_8x8c_init_aarch64( cpu, pf );
+#endif
+
+#if !HIGH_BIT_DEPTH
+#if HAVE_MSA
+ if( cpu&X264_CPU_MSA )
+ {
+ pf[I_PRED_CHROMA_P ] = x264_intra_predict_plane_8x8_msa;
+ }
+#endif
+#endif
}
void x264_predict_8x16c_init( int cpu, x264_predict_t pf[7] )
#if HAVE_MMX
x264_predict_8x16c_init_mmx( cpu, pf );
#endif
+
+#if HAVE_ARMV6
+ x264_predict_8x16c_init_arm( cpu, pf );
+#endif
+
+#if ARCH_AARCH64
+ x264_predict_8x16c_init_aarch64( cpu, pf );
+#endif
}
void x264_predict_8x8_init( int cpu, x264_predict8x8_t pf[12], x264_predict_8x8_filter_t *predict_filter )
#if HAVE_ARMV6
x264_predict_8x8_init_arm( cpu, pf, predict_filter );
#endif
+
+#if ARCH_AARCH64
+ x264_predict_8x8_init_aarch64( cpu, pf, predict_filter );
+#endif
+
+#if !HIGH_BIT_DEPTH
+#if HAVE_MSA
+ if( cpu&X264_CPU_MSA )
+ {
+ pf[I_PRED_8x8_DDL] = x264_intra_predict_ddl_8x8_msa;
+ }
+#endif
+#endif
}
void x264_predict_4x4_init( int cpu, x264_predict_t pf[12] )
#if HAVE_ARMV6
x264_predict_4x4_init_arm( cpu, pf );
#endif
+
+#if ARCH_AARCH64
+ x264_predict_4x4_init_aarch64( cpu, pf );
+#endif
}