]> git.sesse.net Git - x264/blobdiff - encoder/me.h
intra_sad_x3_8x8c assembly
[x264] / encoder / me.h
index 34806e120c0d13c3ff3f91dde1b8e07b4b3538b5..3d7a446ca45690c060a78a2552e86b77f423bee9 100644 (file)
@@ -25,6 +25,7 @@
 #define X264_ME_H
 
 #define COST_MAX (1<<28)
+#define COST_MAX64 (1ULL<<60)
 
 typedef struct
 {
@@ -47,14 +48,20 @@ typedef struct
     DECLARE_ALIGNED_4( int16_t mv[2] );
 } DECLARE_ALIGNED_16( x264_me_t );
 
+typedef struct {
+    int sad;
+    int16_t mx, my;
+} mvsad_t;
+
 void x264_me_search_ref( x264_t *h, x264_me_t *m, int16_t (*mvc)[2], int i_mvc, int *p_fullpel_thresh );
 static inline void x264_me_search( x264_t *h, x264_me_t *m, int16_t (*mvc)[2], int i_mvc )
     { x264_me_search_ref( h, m, mvc, i_mvc, NULL ); }
 
 void x264_me_refine_qpel( x264_t *h, x264_me_t *m );
-void x264_me_refine_qpel_rd( x264_t *h, x264_me_t *m, int i_lambda2, int i8 );
-int x264_me_refine_bidir( x264_t *h, x264_me_t *m0, x264_me_t *m1, int i_weight );
-int x264_rd_cost_part( x264_t *h, int i_lambda2, int i8, int i_pixel );
+void x264_me_refine_qpel_rd( x264_t *h, x264_me_t *m, int i_lambda2, int i4, int i_list );
+void x264_me_refine_bidir_rd( x264_t *h, x264_me_t *m0, x264_me_t *m1, int i_weight, int i8, int i_lambda2 );
+void x264_me_refine_bidir_satd( x264_t *h, x264_me_t *m0, x264_me_t *m1, int i_weight );
+uint64_t x264_rd_cost_part( x264_t *h, int i_lambda2, int i8, int i_pixel );
 
 extern uint16_t *x264_cost_mv_fpel[52][4];