comparison motion_est_template.c @ 4253:b2c06cdd6154 libavcodec

remove pretty much useless skiping of some predictors this has pretty much no quality or speed effect except very small random changes
author michael
date Fri, 01 Dec 2006 20:38:54 +0000
parents 507ba4483ffc
children f775fd9f3b05
comparison
equal deleted inserted replaced
4252:daaebca81d86 4253:b2c06cdd6154
974 CHECK_MV( P_MEDIAN[0] >>shift , P_MEDIAN[1] >>shift) 974 CHECK_MV( P_MEDIAN[0] >>shift , P_MEDIAN[1] >>shift)
975 CHECK_CLIPED_MV((P_MEDIAN[0]>>shift) , (P_MEDIAN[1]>>shift)-1) 975 CHECK_CLIPED_MV((P_MEDIAN[0]>>shift) , (P_MEDIAN[1]>>shift)-1)
976 CHECK_CLIPED_MV((P_MEDIAN[0]>>shift) , (P_MEDIAN[1]>>shift)+1) 976 CHECK_CLIPED_MV((P_MEDIAN[0]>>shift) , (P_MEDIAN[1]>>shift)+1)
977 CHECK_CLIPED_MV((P_MEDIAN[0]>>shift)-1, (P_MEDIAN[1]>>shift) ) 977 CHECK_CLIPED_MV((P_MEDIAN[0]>>shift)-1, (P_MEDIAN[1]>>shift) )
978 CHECK_CLIPED_MV((P_MEDIAN[0]>>shift)+1, (P_MEDIAN[1]>>shift) ) 978 CHECK_CLIPED_MV((P_MEDIAN[0]>>shift)+1, (P_MEDIAN[1]>>shift) )
979 if(dmin>h*h*2){
980 CHECK_CLIPED_MV((last_mv[ref_mv_xy][0]*ref_mv_scale + (1<<15))>>16, 979 CHECK_CLIPED_MV((last_mv[ref_mv_xy][0]*ref_mv_scale + (1<<15))>>16,
981 (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16) 980 (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16)
982 CHECK_MV(P_LEFT[0] >>shift, P_LEFT[1] >>shift) 981 CHECK_MV(P_LEFT[0] >>shift, P_LEFT[1] >>shift)
983 CHECK_MV(P_TOP[0] >>shift, P_TOP[1] >>shift) 982 CHECK_MV(P_TOP[0] >>shift, P_TOP[1] >>shift)
984 CHECK_MV(P_TOPRIGHT[0]>>shift, P_TOPRIGHT[1]>>shift) 983 CHECK_MV(P_TOPRIGHT[0]>>shift, P_TOPRIGHT[1]>>shift)
985 }
986 } 984 }
987 if(dmin>h*h*4){ 985 if(dmin>h*h*4){
988 if(c->pre_pass){ 986 if(c->pre_pass){
989 CHECK_CLIPED_MV((last_mv[ref_mv_xy-1][0]*ref_mv_scale + (1<<15))>>16, 987 CHECK_CLIPED_MV((last_mv[ref_mv_xy-1][0]*ref_mv_scale + (1<<15))>>16,
990 (last_mv[ref_mv_xy-1][1]*ref_mv_scale + (1<<15))>>16) 988 (last_mv[ref_mv_xy-1][1]*ref_mv_scale + (1<<15))>>16)
1081 (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16) 1079 (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16)
1082 CHECK_MV(P_MV1[0]>>shift, P_MV1[1]>>shift) 1080 CHECK_MV(P_MV1[0]>>shift, P_MV1[1]>>shift)
1083 }else{ 1081 }else{
1084 CHECK_MV(P_MV1[0]>>shift, P_MV1[1]>>shift) 1082 CHECK_MV(P_MV1[0]>>shift, P_MV1[1]>>shift)
1085 //FIXME try some early stop 1083 //FIXME try some early stop
1086 if(dmin>64*2){
1087 CHECK_MV(P_MEDIAN[0]>>shift, P_MEDIAN[1]>>shift) 1084 CHECK_MV(P_MEDIAN[0]>>shift, P_MEDIAN[1]>>shift)
1088 CHECK_MV(P_LEFT[0]>>shift, P_LEFT[1]>>shift) 1085 CHECK_MV(P_LEFT[0]>>shift, P_LEFT[1]>>shift)
1089 CHECK_MV(P_TOP[0]>>shift, P_TOP[1]>>shift) 1086 CHECK_MV(P_TOP[0]>>shift, P_TOP[1]>>shift)
1090 CHECK_MV(P_TOPRIGHT[0]>>shift, P_TOPRIGHT[1]>>shift) 1087 CHECK_MV(P_TOPRIGHT[0]>>shift, P_TOPRIGHT[1]>>shift)
1091 CHECK_CLIPED_MV((last_mv[ref_mv_xy][0]*ref_mv_scale + (1<<15))>>16, 1088 CHECK_CLIPED_MV((last_mv[ref_mv_xy][0]*ref_mv_scale + (1<<15))>>16,
1092 (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16) 1089 (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16)
1093 }
1094 } 1090 }
1095 if(dmin>64*4){ 1091 if(dmin>64*4){
1096 CHECK_CLIPED_MV((last_mv[ref_mv_xy+1][0]*ref_mv_scale + (1<<15))>>16, 1092 CHECK_CLIPED_MV((last_mv[ref_mv_xy+1][0]*ref_mv_scale + (1<<15))>>16,
1097 (last_mv[ref_mv_xy+1][1]*ref_mv_scale + (1<<15))>>16) 1093 (last_mv[ref_mv_xy+1][1]*ref_mv_scale + (1<<15))>>16)
1098 if(s->mb_y+1<s->end_mb_y) //FIXME replace at least with last_slice_line 1094 if(s->mb_y+1<s->end_mb_y) //FIXME replace at least with last_slice_line
1143 (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16) 1139 (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16)
1144 CHECK_MV(P_MV1[0]>>shift, P_MV1[1]>>shift) 1140 CHECK_MV(P_MV1[0]>>shift, P_MV1[1]>>shift)
1145 }else{ 1141 }else{
1146 CHECK_MV(P_MV1[0]>>shift, P_MV1[1]>>shift) 1142 CHECK_MV(P_MV1[0]>>shift, P_MV1[1]>>shift)
1147 //FIXME try some early stop 1143 //FIXME try some early stop
1148 if(dmin>64*2){
1149 CHECK_MV(P_MEDIAN[0]>>shift, P_MEDIAN[1]>>shift) 1144 CHECK_MV(P_MEDIAN[0]>>shift, P_MEDIAN[1]>>shift)
1150 CHECK_MV(P_LEFT[0]>>shift, P_LEFT[1]>>shift) 1145 CHECK_MV(P_LEFT[0]>>shift, P_LEFT[1]>>shift)
1151 CHECK_MV(P_TOP[0]>>shift, P_TOP[1]>>shift) 1146 CHECK_MV(P_TOP[0]>>shift, P_TOP[1]>>shift)
1152 CHECK_MV(P_TOPRIGHT[0]>>shift, P_TOPRIGHT[1]>>shift) 1147 CHECK_MV(P_TOPRIGHT[0]>>shift, P_TOPRIGHT[1]>>shift)
1153 CHECK_CLIPED_MV((last_mv[ref_mv_xy][0]*ref_mv_scale + (1<<15))>>16, 1148 CHECK_CLIPED_MV((last_mv[ref_mv_xy][0]*ref_mv_scale + (1<<15))>>16,
1154 (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16) 1149 (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16)
1155 }
1156 } 1150 }
1157 if(dmin>64*4){ 1151 if(dmin>64*4){
1158 CHECK_CLIPED_MV((last_mv[ref_mv_xy+1][0]*ref_mv_scale + (1<<15))>>16, 1152 CHECK_CLIPED_MV((last_mv[ref_mv_xy+1][0]*ref_mv_scale + (1<<15))>>16,
1159 (last_mv[ref_mv_xy+1][1]*ref_mv_scale + (1<<15))>>16) 1153 (last_mv[ref_mv_xy+1][1]*ref_mv_scale + (1<<15))>>16)
1160 if(s->mb_y+1<s->end_mb_y) //FIXME replace at least with last_slice_line 1154 if(s->mb_y+1<s->end_mb_y) //FIXME replace at least with last_slice_line