Mercurial > libavcodec.hg
comparison motion_est.c @ 233:3f5b72726118 libavcodec
- More work on preliminary bit rate control, just to be able to get an
average variance for picture's MBs so we can adjust qscale on the MB layer.
author | pulento |
---|---|
date | Sun, 10 Feb 2002 06:10:50 +0000 |
parents | b640ec5948b0 |
children | 16cd8a9c4da4 |
comparison
equal
deleted
inserted
replaced
232:b640ec5948b0 | 233:3f5b72726118 |
---|---|
398 int *mx_ptr, int *my_ptr) | 398 int *mx_ptr, int *my_ptr) |
399 { | 399 { |
400 UINT8 *pix, *ppix; | 400 UINT8 *pix, *ppix; |
401 int sum, varc, vard, mx, my, range, dmin, xx, yy; | 401 int sum, varc, vard, mx, my, range, dmin, xx, yy; |
402 int xmin, ymin, xmax, ymax; | 402 int xmin, ymin, xmax, ymax; |
403 | 403 |
404 range = 8 * (1 << (s->f_code - 1)); | 404 range = 8 * (1 << (s->f_code - 1)); |
405 /* XXX: temporary kludge to avoid overflow for msmpeg4 */ | 405 /* XXX: temporary kludge to avoid overflow for msmpeg4 */ |
406 if (s->out_format == FMT_H263 && !s->h263_msmpeg4) | 406 if (s->out_format == FMT_H263 && !s->h263_msmpeg4) |
407 range = range * 2; | 407 range = range * 2; |
408 | 408 |
456 vard = pix_norm(pix, ppix, s->linesize); | 456 vard = pix_norm(pix, ppix, s->linesize); |
457 | 457 |
458 vard = vard >> 8; | 458 vard = vard >> 8; |
459 sum = sum >> 8; | 459 sum = sum >> 8; |
460 varc = (varc >> 8) - (sum * sum); | 460 varc = (varc >> 8) - (sum * sum); |
461 | |
462 s->avg_mb_var += varc; | |
463 | |
461 #if 0 | 464 #if 0 |
462 printf("varc=%d (sum=%d) vard=%d mx=%d my=%d\n", | 465 printf("varc=%4d avg_var=%4d (sum=%4d) vard=%4d mx=%2d my=%2d\n", |
463 varc, sum, vard, mx - xx, my - yy); | 466 varc, s->avg_mb_var, sum, vard, mx - xx, my - yy); |
464 #endif | 467 #endif |
465 if (vard <= 64 || vard < varc) { | 468 if (vard <= 64 || vard < varc) { |
466 if (s->full_search != ME_ZERO) { | 469 if (s->full_search != ME_ZERO) { |
467 halfpel_motion_search(s, &mx, &my, dmin, xmin, ymin, xmax, ymax); | 470 halfpel_motion_search(s, &mx, &my, dmin, xmin, ymin, xmax, ymax); |
468 } else { | 471 } else { |