mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
motion_est: remove disabled code
This commit is contained in:
parent
9cab9421ce
commit
473e547e80
@ -374,30 +374,6 @@ int ff_init_me(MpegEncContext *s){
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static int pix_dev(uint8_t * pix, int line_size, int mean)
|
||||
{
|
||||
int s, i, j;
|
||||
|
||||
s = 0;
|
||||
for (i = 0; i < 16; i++) {
|
||||
for (j = 0; j < 16; j += 8) {
|
||||
s += FFABS(pix[0]-mean);
|
||||
s += FFABS(pix[1]-mean);
|
||||
s += FFABS(pix[2]-mean);
|
||||
s += FFABS(pix[3]-mean);
|
||||
s += FFABS(pix[4]-mean);
|
||||
s += FFABS(pix[5]-mean);
|
||||
s += FFABS(pix[6]-mean);
|
||||
s += FFABS(pix[7]-mean);
|
||||
pix += 8;
|
||||
}
|
||||
pix += line_size - 16;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline void no_motion_search(MpegEncContext * s,
|
||||
int *mx_ptr, int *my_ptr)
|
||||
{
|
||||
@ -1214,30 +1190,6 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
|
||||
|
||||
intra_score= s->dsp.mb_cmp[0](s, c->scratchpad, pix, s->linesize, 16);
|
||||
}
|
||||
#if 0 //FIXME
|
||||
/* get chroma score */
|
||||
if(c->avctx->mb_cmp&FF_CMP_CHROMA){
|
||||
for(i=1; i<3; i++){
|
||||
uint8_t *dest_c;
|
||||
int mean;
|
||||
|
||||
if(s->out_format == FMT_H263){
|
||||
mean= (s->dc_val[i][mb_x + mb_y*s->b8_stride] + 4)>>3; //FIXME not exact but simple ;)
|
||||
}else{
|
||||
mean= (s->last_dc[i] + 4)>>3;
|
||||
}
|
||||
dest_c = s->new_picture.f.data[i] + (mb_y * 8 * (s->uvlinesize)) + mb_x * 8;
|
||||
|
||||
mean*= 0x01010101;
|
||||
for(i=0; i<8; i++){
|
||||
*(uint32_t*)(&c->scratchpad[i*s->uvlinesize+ 0]) = mean;
|
||||
*(uint32_t*)(&c->scratchpad[i*s->uvlinesize+ 4]) = mean;
|
||||
}
|
||||
|
||||
intra_score+= s->dsp.mb_cmp[1](s, c->scratchpad, dest_c, s->uvlinesize);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
intra_score += c->mb_penalty_factor*16;
|
||||
|
||||
if(intra_score < dmin){
|
||||
@ -1850,10 +1802,6 @@ void ff_estimate_b_frame_motion(MpegEncContext * s,
|
||||
if(dmin>256*256*16) type&= ~CANDIDATE_MB_TYPE_DIRECT; //do not try direct mode if it is invalid for this MB
|
||||
if(s->codec_id == CODEC_ID_MPEG4 && type&CANDIDATE_MB_TYPE_DIRECT && s->flags&CODEC_FLAG_MV0 && *(uint32_t*)s->b_direct_mv_table[xy])
|
||||
type |= CANDIDATE_MB_TYPE_DIRECT0;
|
||||
#if 0
|
||||
if(s->out_format == FMT_MPEG1)
|
||||
type |= CANDIDATE_MB_TYPE_INTRA;
|
||||
#endif
|
||||
}
|
||||
|
||||
s->mb_type[mb_y*s->mb_stride + mb_x]= type;
|
||||
|
@ -44,75 +44,6 @@
|
||||
COPY3_IF_LT(dmin, d, bx, hx, by, hy)\
|
||||
}
|
||||
|
||||
#if 0
|
||||
static int hpel_motion_search)(MpegEncContext * s,
|
||||
int *mx_ptr, int *my_ptr, int dmin,
|
||||
uint8_t *ref_data[3],
|
||||
int size)
|
||||
{
|
||||
const int xx = 16 * s->mb_x + 8*(n&1);
|
||||
const int yy = 16 * s->mb_y + 8*(n>>1);
|
||||
const int mx = *mx_ptr;
|
||||
const int my = *my_ptr;
|
||||
const int penalty_factor= c->sub_penalty_factor;
|
||||
|
||||
LOAD_COMMON
|
||||
|
||||
// INIT;
|
||||
//FIXME factorize
|
||||
me_cmp_func cmp, chroma_cmp, cmp_sub, chroma_cmp_sub;
|
||||
|
||||
if(s->no_rounding /*FIXME b_type*/){
|
||||
hpel_put= &s->dsp.put_no_rnd_pixels_tab[size];
|
||||
chroma_hpel_put= &s->dsp.put_no_rnd_pixels_tab[size+1];
|
||||
}else{
|
||||
hpel_put=& s->dsp.put_pixels_tab[size];
|
||||
chroma_hpel_put= &s->dsp.put_pixels_tab[size+1];
|
||||
}
|
||||
cmpf= s->dsp.me_cmp[size];
|
||||
chroma_cmpf= s->dsp.me_cmp[size+1];
|
||||
cmp_sub= s->dsp.me_sub_cmp[size];
|
||||
chroma_cmp_sub= s->dsp.me_sub_cmp[size+1];
|
||||
|
||||
if(c->skip){ //FIXME somehow move up (benchmark)
|
||||
*mx_ptr = 0;
|
||||
*my_ptr = 0;
|
||||
return dmin;
|
||||
}
|
||||
|
||||
if(c->avctx->me_cmp != c->avctx->me_sub_cmp){
|
||||
CMP_HPEL(dmin, 0, 0, mx, my, size);
|
||||
if(mx || my)
|
||||
dmin += (mv_penalty[2*mx - pred_x] + mv_penalty[2*my - pred_y])*penalty_factor;
|
||||
}
|
||||
|
||||
if (mx > xmin && mx < xmax &&
|
||||
my > ymin && my < ymax) {
|
||||
int bx=2*mx, by=2*my;
|
||||
int d= dmin;
|
||||
|
||||
CHECK_HALF_MV(1, 1, mx-1, my-1)
|
||||
CHECK_HALF_MV(0, 1, mx , my-1)
|
||||
CHECK_HALF_MV(1, 1, mx , my-1)
|
||||
CHECK_HALF_MV(1, 0, mx-1, my )
|
||||
CHECK_HALF_MV(1, 0, mx , my )
|
||||
CHECK_HALF_MV(1, 1, mx-1, my )
|
||||
CHECK_HALF_MV(0, 1, mx , my )
|
||||
CHECK_HALF_MV(1, 1, mx , my )
|
||||
|
||||
assert(bx >= xmin*2 || bx <= xmax*2 || by >= ymin*2 || by <= ymax*2);
|
||||
|
||||
*mx_ptr = bx;
|
||||
*my_ptr = by;
|
||||
}else{
|
||||
*mx_ptr =2*mx;
|
||||
*my_ptr =2*my;
|
||||
}
|
||||
|
||||
return dmin;
|
||||
}
|
||||
|
||||
#else
|
||||
static int hpel_motion_search(MpegEncContext * s,
|
||||
int *mx_ptr, int *my_ptr, int dmin,
|
||||
int src_index, int ref_index,
|
||||
@ -218,7 +149,6 @@ static int hpel_motion_search(MpegEncContext * s,
|
||||
|
||||
return dmin;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int no_sub_motion_search(MpegEncContext * s,
|
||||
int *mx_ptr, int *my_ptr, int dmin,
|
||||
@ -321,7 +251,6 @@ static int qpel_motion_search(MpegEncContext * s,
|
||||
int best_pos[8][2];
|
||||
|
||||
memset(best, 64, sizeof(int)*8);
|
||||
#if 1
|
||||
if(s->me.dia_size>=2){
|
||||
const int tl= score_map[(index-(1<<ME_MAP_SHIFT)-1)&(ME_MAP_SIZE-1)];
|
||||
const int bl= score_map[(index+(1<<ME_MAP_SHIFT)-1)&(ME_MAP_SIZE-1)];
|
||||
@ -410,76 +339,6 @@ static int qpel_motion_search(MpegEncContext * s,
|
||||
CHECK_QUARTER_MV(nx&3, ny&3, nx>>2, ny>>2)
|
||||
}
|
||||
|
||||
#if 0
|
||||
const int tl= score_map[(index-(1<<ME_MAP_SHIFT)-1)&(ME_MAP_SIZE-1)];
|
||||
const int bl= score_map[(index+(1<<ME_MAP_SHIFT)-1)&(ME_MAP_SIZE-1)];
|
||||
const int tr= score_map[(index-(1<<ME_MAP_SHIFT)+1)&(ME_MAP_SIZE-1)];
|
||||
const int br= score_map[(index+(1<<ME_MAP_SHIFT)+1)&(ME_MAP_SIZE-1)];
|
||||
// if(l < r && l < t && l < b && l < tl && l < bl && l < tr && l < br && bl < tl){
|
||||
if(tl<br){
|
||||
|
||||
// nx= FFMAX(4*mx - bx, bx - 4*mx);
|
||||
// ny= FFMAX(4*my - by, by - 4*my);
|
||||
|
||||
static int stats[7][7], count;
|
||||
count++;
|
||||
stats[4*mx - bx + 3][4*my - by + 3]++;
|
||||
if(256*256*256*64 % count ==0){
|
||||
for(i=0; i<49; i++){
|
||||
if((i%7)==0) printf("\n");
|
||||
printf("%6d ", stats[0][i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
|
||||
CHECK_QUARTER_MV(2, 2, mx-1, my-1)
|
||||
CHECK_QUARTER_MV(0, 2, mx , my-1)
|
||||
CHECK_QUARTER_MV(2, 2, mx , my-1)
|
||||
CHECK_QUARTER_MV(2, 0, mx , my )
|
||||
CHECK_QUARTER_MV(2, 2, mx , my )
|
||||
CHECK_QUARTER_MV(0, 2, mx , my )
|
||||
CHECK_QUARTER_MV(2, 2, mx-1, my )
|
||||
CHECK_QUARTER_MV(2, 0, mx-1, my )
|
||||
|
||||
nx= bx;
|
||||
ny= by;
|
||||
|
||||
for(i=0; i<8; i++){
|
||||
int ox[8]= {0, 1, 1, 1, 0,-1,-1,-1};
|
||||
int oy[8]= {1, 1, 0,-1,-1,-1, 0, 1};
|
||||
CHECK_QUARTER_MV((nx + ox[i])&3, (ny + oy[i])&3, (nx + ox[i])>>2, (ny + oy[i])>>2)
|
||||
}
|
||||
#endif
|
||||
#if 0
|
||||
//outer ring
|
||||
CHECK_QUARTER_MV(1, 3, mx-1, my-1)
|
||||
CHECK_QUARTER_MV(1, 2, mx-1, my-1)
|
||||
CHECK_QUARTER_MV(1, 1, mx-1, my-1)
|
||||
CHECK_QUARTER_MV(2, 1, mx-1, my-1)
|
||||
CHECK_QUARTER_MV(3, 1, mx-1, my-1)
|
||||
CHECK_QUARTER_MV(0, 1, mx , my-1)
|
||||
CHECK_QUARTER_MV(1, 1, mx , my-1)
|
||||
CHECK_QUARTER_MV(2, 1, mx , my-1)
|
||||
CHECK_QUARTER_MV(3, 1, mx , my-1)
|
||||
CHECK_QUARTER_MV(3, 2, mx , my-1)
|
||||
CHECK_QUARTER_MV(3, 3, mx , my-1)
|
||||
CHECK_QUARTER_MV(3, 0, mx , my )
|
||||
CHECK_QUARTER_MV(3, 1, mx , my )
|
||||
CHECK_QUARTER_MV(3, 2, mx , my )
|
||||
CHECK_QUARTER_MV(3, 3, mx , my )
|
||||
CHECK_QUARTER_MV(2, 3, mx , my )
|
||||
CHECK_QUARTER_MV(1, 3, mx , my )
|
||||
CHECK_QUARTER_MV(0, 3, mx , my )
|
||||
CHECK_QUARTER_MV(3, 3, mx-1, my )
|
||||
CHECK_QUARTER_MV(2, 3, mx-1, my )
|
||||
CHECK_QUARTER_MV(1, 3, mx-1, my )
|
||||
CHECK_QUARTER_MV(1, 2, mx-1, my )
|
||||
CHECK_QUARTER_MV(1, 1, mx-1, my )
|
||||
CHECK_QUARTER_MV(1, 0, mx-1, my )
|
||||
#endif
|
||||
assert(bx >= xmin*4 && bx <= xmax*4 && by >= ymin*4 && by <= ymax*4);
|
||||
|
||||
*mx_ptr = bx;
|
||||
|
Loading…
Reference in New Issue
Block a user