comparison motion_est.c @ 691:199b324b2693 libavcodec

fixing variance scaling for b frames (messed adaptive quants up) cliping too long MVs in b frames instead of setting them to 0
author michaelni
date Mon, 23 Sep 2002 15:16:09 +0000
parents a1c69cb685b3
children 7f0d502a42c5
comparison
equal deleted inserted replaced
690:a1c69cb685b3 691:199b324b2693
1544 } 1544 }
1545 if(fbmin<score){ 1545 if(fbmin<score){
1546 score=fbmin; 1546 score=fbmin;
1547 type= MB_TYPE_BIDIR; 1547 type= MB_TYPE_BIDIR;
1548 } 1548 }
1549 score= (score*score)>>8; 1549 score= (score*score + 128*256)>>16;
1550 s->mc_mb_var_sum += score; 1550 s->mc_mb_var_sum += score;
1551 s->mc_mb_var[mb_y*s->mb_width + mb_x] = score; //FIXME use SSD 1551 s->mc_mb_var[mb_y*s->mb_width + mb_x] = score; //FIXME use SSD
1552 } 1552 }
1553 1553
1554 if(s->flags&CODEC_FLAG_HQ){ 1554 if(s->flags&CODEC_FLAG_HQ){
1696 for(y=0; y<s->mb_height; y++){ 1696 for(y=0; y<s->mb_height; y++){
1697 int x; 1697 int x;
1698 int xy= (y+1)* (s->mb_width+2)+1; 1698 int xy= (y+1)* (s->mb_width+2)+1;
1699 int i= y*s->mb_width; 1699 int i= y*s->mb_width;
1700 for(x=0; x<s->mb_width; x++){ 1700 for(x=0; x<s->mb_width; x++){
1701 if(s->mb_type[i]&type){ 1701 if( fcode_tab[mv_table[xy][0] + MAX_MV] > f_code
1702 if( fcode_tab[mv_table[xy][0] + MAX_MV] > f_code 1702 || fcode_tab[mv_table[xy][0] + MAX_MV] == 0){
1703 || fcode_tab[mv_table[xy][0] + MAX_MV] == 0 1703 if(mv_table[xy][0]>0) mv_table[xy][0]= (16<<f_code)-1;
1704 || fcode_tab[mv_table[xy][1] + MAX_MV] > f_code 1704 else mv_table[xy][0]= -(16<<f_code);
1705 || fcode_tab[mv_table[xy][1] + MAX_MV] == 0 ){ 1705 }
1706 if(s->mb_type[i]&(~type)) s->mb_type[i] &= ~type; 1706 if( fcode_tab[mv_table[xy][1] + MAX_MV] > f_code
1707 else{ 1707 || fcode_tab[mv_table[xy][1] + MAX_MV] == 0){
1708 mv_table[xy][0] = 0; 1708 if(mv_table[xy][1]>0) mv_table[xy][1]= (16<<f_code)-1;
1709 mv_table[xy][1] = 0; 1709 else mv_table[xy][1]= -(16<<f_code);
1710 //this is certainly bad FIXME
1711 }
1712 }
1713 } 1710 }
1714 xy++; 1711 xy++;
1715 i++; 1712 i++;
1716 } 1713 }
1717 } 1714 }