Mercurial > libavcodec.hg
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 } |