-#define INIT( name, cpu ) \
- pixf->name[PIXEL_16x16] = x264_pixel_##name##_16x16##cpu;\
- pixf->name[PIXEL_16x8] = x264_pixel_##name##_16x8##cpu;\
- pixf->name[PIXEL_8x16] = x264_pixel_##name##_8x16##cpu;\
- pixf->name[PIXEL_8x8] = x264_pixel_##name##_8x8##cpu;\
- pixf->name[PIXEL_8x4] = x264_pixel_##name##_8x4##cpu;\
- pixf->name[PIXEL_4x8] = x264_pixel_##name##_4x8##cpu;\
- pixf->name[PIXEL_4x4] = x264_pixel_##name##_4x4##cpu;
-
- INIT( sad, );
- INIT( sad_x3, );
- INIT( sad_x4, );
- INIT( ssd, );
- INIT( satd, );
-
- pixf->sa8d[PIXEL_16x16]= x264_pixel_sa8d_16x16;
- pixf->sa8d[PIXEL_16x8] = x264_pixel_sa8d_16x8;
- pixf->sa8d[PIXEL_8x16] = x264_pixel_sa8d_8x16;
- pixf->sa8d[PIXEL_8x8] = x264_pixel_sa8d_8x8;
+#define INIT2_NAME( name1, name2, cpu ) \
+ pixf->name1[PIXEL_16x16] = x264_pixel_##name2##_16x16##cpu;\
+ pixf->name1[PIXEL_16x8] = x264_pixel_##name2##_16x8##cpu;
+#define INIT4_NAME( name1, name2, cpu ) \
+ INIT2_NAME( name1, name2, cpu ) \
+ pixf->name1[PIXEL_8x16] = x264_pixel_##name2##_8x16##cpu;\
+ pixf->name1[PIXEL_8x8] = x264_pixel_##name2##_8x8##cpu;
+#define INIT5_NAME( name1, name2, cpu ) \
+ INIT4_NAME( name1, name2, cpu ) \
+ pixf->name1[PIXEL_8x4] = x264_pixel_##name2##_8x4##cpu;
+#define INIT6_NAME( name1, name2, cpu ) \
+ INIT5_NAME( name1, name2, cpu ) \
+ pixf->name1[PIXEL_4x8] = x264_pixel_##name2##_4x8##cpu;
+#define INIT7_NAME( name1, name2, cpu ) \
+ INIT6_NAME( name1, name2, cpu ) \
+ pixf->name1[PIXEL_4x4] = x264_pixel_##name2##_4x4##cpu;
+#define INIT2( name, cpu ) INIT2_NAME( name, name, cpu )
+#define INIT4( name, cpu ) INIT4_NAME( name, name, cpu )
+#define INIT5( name, cpu ) INIT5_NAME( name, name, cpu )
+#define INIT6( name, cpu ) INIT6_NAME( name, name, cpu )
+#define INIT7( name, cpu ) INIT7_NAME( name, name, cpu )
+
+#define INIT_ADS( cpu ) \
+ pixf->ads[PIXEL_16x16] = x264_pixel_ads4##cpu;\
+ pixf->ads[PIXEL_16x8] = x264_pixel_ads2##cpu;\
+ pixf->ads[PIXEL_8x8] = x264_pixel_ads1##cpu;
+
+ INIT7( sad, );
+ INIT7_NAME( sad_aligned, sad, );
+ INIT7( sad_x3, );
+ INIT7( sad_x4, );
+ INIT7( ssd, );
+ INIT7( satd, );
+ INIT7( satd_x3, );
+ INIT7( satd_x4, );
+ INIT4( hadamard_ac, );
+ INIT_ADS( );
+
+ pixf->sa8d[PIXEL_16x16] = x264_pixel_sa8d_16x16;
+ pixf->sa8d[PIXEL_8x8] = x264_pixel_sa8d_8x8;
+ pixf->var[PIXEL_16x16] = x264_pixel_var_16x16;
+ pixf->var[PIXEL_8x8] = x264_pixel_var_8x8;
+