comparison mpegvideo.c @ 809:79de6308c34d libavcodec

fixing another assert q>0.0 issue caused by variance < 0, this fix allso changes the inter/intra decission very slightly -> all regression checksums need to be updated
author michaelni
date Thu, 31 Oct 2002 00:48:05 +0000
parents 08423289ec57
children dfaa1c45bd27
comparison
equal deleted inserted replaced
808:e9bfaabcf07d 809:79de6308c34d
2588 int yy = mb_y * 16; 2588 int yy = mb_y * 16;
2589 uint8_t *pix = s->new_picture[0] + (yy * s->linesize) + xx; 2589 uint8_t *pix = s->new_picture[0] + (yy * s->linesize) + xx;
2590 int varc; 2590 int varc;
2591 int sum = pix_sum(pix, s->linesize); 2591 int sum = pix_sum(pix, s->linesize);
2592 2592
2593 sum= (sum+8)>>4; 2593 varc = (pix_norm1(pix, s->linesize) - (((unsigned)(sum*sum))>>8) + 500 + 128)>>8;
2594 varc = (pix_norm1(pix, s->linesize) - sum*sum + 500 + 128)>>8;
2595 2594
2596 s->mb_var [s->mb_width * mb_y + mb_x] = varc; 2595 s->mb_var [s->mb_width * mb_y + mb_x] = varc;
2597 s->mb_mean[s->mb_width * mb_y + mb_x] = (sum+7)>>4; 2596 s->mb_mean[s->mb_width * mb_y + mb_x] = (sum+128)>>8;
2598 s->mb_var_sum += varc; 2597 s->mb_var_sum += varc;
2599 } 2598 }
2600 } 2599 }
2601 } 2600 }
2602 } 2601 }