| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 cpi->twopass.stats_in = | 125 cpi->twopass.stats_in = |
| 126 (void*)((char *)cpi->twopass.stats_in + sizeof(FIRSTPASS_STATS)); | 126 (void*)((char *)cpi->twopass.stats_in + sizeof(FIRSTPASS_STATS)); |
| 127 return 1; | 127 return 1; |
| 128 } | 128 } |
| 129 | 129 |
| 130 static void output_stats(const VP8_COMP *cpi, | 130 static void output_stats(const VP8_COMP *cpi, |
| 131 struct vpx_codec_pkt_list *pktlist, | 131 struct vpx_codec_pkt_list *pktlist, |
| 132 FIRSTPASS_STATS *stats) | 132 FIRSTPASS_STATS *stats) |
| 133 { | 133 { |
| 134 struct vpx_codec_cx_pkt pkt; | 134 struct vpx_codec_cx_pkt pkt; |
| 135 (void)cpi; |
| 135 pkt.kind = VPX_CODEC_STATS_PKT; | 136 pkt.kind = VPX_CODEC_STATS_PKT; |
| 136 pkt.data.twopass_stats.buf = stats; | 137 pkt.data.twopass_stats.buf = stats; |
| 137 pkt.data.twopass_stats.sz = sizeof(FIRSTPASS_STATS); | 138 pkt.data.twopass_stats.sz = sizeof(FIRSTPASS_STATS); |
| 138 vpx_codec_pkt_list_add(pktlist, &pkt); | 139 vpx_codec_pkt_list_add(pktlist, &pkt); |
| 139 | 140 |
| 140 /* TEMP debug code */ | 141 /* TEMP debug code */ |
| 141 #if OUTPUT_FPF | 142 #if OUTPUT_FPF |
| 142 | 143 |
| 143 { | 144 { |
| 144 FILE *fpfile; | 145 FILE *fpfile; |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 MACROBLOCKD * const xd = & x->e_mbd; | 412 MACROBLOCKD * const xd = & x->e_mbd; |
| 412 BLOCK *b = &x->block[0]; | 413 BLOCK *b = &x->block[0]; |
| 413 BLOCKD *d = &x->e_mbd.block[0]; | 414 BLOCKD *d = &x->e_mbd.block[0]; |
| 414 | 415 |
| 415 unsigned char *src_ptr = (*(b->base_src) + b->src); | 416 unsigned char *src_ptr = (*(b->base_src) + b->src); |
| 416 int src_stride = b->src_stride; | 417 int src_stride = b->src_stride; |
| 417 unsigned char *raw_ptr; | 418 unsigned char *raw_ptr; |
| 418 int raw_stride = raw_buffer->y_stride; | 419 int raw_stride = raw_buffer->y_stride; |
| 419 unsigned char *ref_ptr; | 420 unsigned char *ref_ptr; |
| 420 int ref_stride = x->e_mbd.pre.y_stride; | 421 int ref_stride = x->e_mbd.pre.y_stride; |
| 422 (void)cpi; |
| 421 | 423 |
| 422 /* Set up pointers for this macro block raw buffer */ | 424 /* Set up pointers for this macro block raw buffer */ |
| 423 raw_ptr = (unsigned char *)(raw_buffer->y_buffer + recon_yoffset | 425 raw_ptr = (unsigned char *)(raw_buffer->y_buffer + recon_yoffset |
| 424 + d->offset); | 426 + d->offset); |
| 425 vp8_mse16x16 ( src_ptr, src_stride, raw_ptr, raw_stride, | 427 vp8_mse16x16 ( src_ptr, src_stride, raw_ptr, raw_stride, |
| 426 (unsigned int *)(raw_motion_err)); | 428 (unsigned int *)(raw_motion_err)); |
| 427 | 429 |
| 428 /* Set up pointers for this macro block recon buffer */ | 430 /* Set up pointers for this macro block recon buffer */ |
| 429 xd->pre.y_buffer = recon_buffer->y_buffer + recon_yoffset; | 431 xd->pre.y_buffer = recon_buffer->y_buffer + recon_yoffset; |
| 430 ref_ptr = (unsigned char *)(xd->pre.y_buffer + d->offset ); | 432 ref_ptr = (unsigned char *)(xd->pre.y_buffer + d->offset ); |
| (...skipping 971 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1402 } | 1404 } |
| 1403 cpi->twopass.modified_error_left = cpi->twopass.modified_error_total; | 1405 cpi->twopass.modified_error_left = cpi->twopass.modified_error_total; |
| 1404 | 1406 |
| 1405 reset_fpf_position(cpi, start_pos); /* Reset file position */ | 1407 reset_fpf_position(cpi, start_pos); /* Reset file position */ |
| 1406 | 1408 |
| 1407 } | 1409 } |
| 1408 } | 1410 } |
| 1409 | 1411 |
| 1410 void vp8_end_second_pass(VP8_COMP *cpi) | 1412 void vp8_end_second_pass(VP8_COMP *cpi) |
| 1411 { | 1413 { |
| 1414 (void)cpi; |
| 1412 } | 1415 } |
| 1413 | 1416 |
| 1414 /* This function gives and estimate of how badly we believe the prediction | 1417 /* This function gives and estimate of how badly we believe the prediction |
| 1415 * quality is decaying from frame to frame. | 1418 * quality is decaying from frame to frame. |
| 1416 */ | 1419 */ |
| 1417 static double get_prediction_decay_rate(VP8_COMP *cpi, FIRSTPASS_STATS *next_fra
me) | 1420 static double get_prediction_decay_rate(VP8_COMP *cpi, FIRSTPASS_STATS *next_fra
me) |
| 1418 { | 1421 { |
| 1419 double prediction_decay_rate; | 1422 double prediction_decay_rate; |
| 1420 double motion_decay; | 1423 double motion_decay; |
| 1421 double motion_pct = next_frame->pcnt_motion; | 1424 double motion_pct = next_frame->pcnt_motion; |
| 1425 (void)cpi; |
| 1422 | 1426 |
| 1423 /* Initial basis is the % mbs inter coded */ | 1427 /* Initial basis is the % mbs inter coded */ |
| 1424 prediction_decay_rate = next_frame->pcnt_inter; | 1428 prediction_decay_rate = next_frame->pcnt_inter; |
| 1425 | 1429 |
| 1426 /* High % motion -> somewhat higher decay rate */ | 1430 /* High % motion -> somewhat higher decay rate */ |
| 1427 motion_decay = (1.0 - (motion_pct / 20.0)); | 1431 motion_decay = (1.0 - (motion_pct / 20.0)); |
| 1428 if (motion_decay < prediction_decay_rate) | 1432 if (motion_decay < prediction_decay_rate) |
| 1429 prediction_decay_rate = motion_decay; | 1433 prediction_decay_rate = motion_decay; |
| 1430 | 1434 |
| 1431 /* Adjustment to decay rate based on speed of motion */ | 1435 /* Adjustment to decay rate based on speed of motion */ |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1540 VP8_COMP *cpi, | 1544 VP8_COMP *cpi, |
| 1541 FIRSTPASS_STATS * this_frame, | 1545 FIRSTPASS_STATS * this_frame, |
| 1542 double * this_frame_mv_in_out, | 1546 double * this_frame_mv_in_out, |
| 1543 double * mv_in_out_accumulator, | 1547 double * mv_in_out_accumulator, |
| 1544 double * abs_mv_in_out_accumulator, | 1548 double * abs_mv_in_out_accumulator, |
| 1545 double * mv_ratio_accumulator ) | 1549 double * mv_ratio_accumulator ) |
| 1546 { | 1550 { |
| 1547 double this_frame_mvr_ratio; | 1551 double this_frame_mvr_ratio; |
| 1548 double this_frame_mvc_ratio; | 1552 double this_frame_mvc_ratio; |
| 1549 double motion_pct; | 1553 double motion_pct; |
| 1554 (void)cpi; |
| 1550 | 1555 |
| 1551 /* Accumulate motion stats. */ | 1556 /* Accumulate motion stats. */ |
| 1552 motion_pct = this_frame->pcnt_motion; | 1557 motion_pct = this_frame->pcnt_motion; |
| 1553 | 1558 |
| 1554 /* Accumulate Motion In/Out of frame stats */ | 1559 /* Accumulate Motion In/Out of frame stats */ |
| 1555 *this_frame_mv_in_out = this_frame->mv_in_out_count * motion_pct; | 1560 *this_frame_mv_in_out = this_frame->mv_in_out_count * motion_pct; |
| 1556 *mv_in_out_accumulator += this_frame->mv_in_out_count * motion_pct; | 1561 *mv_in_out_accumulator += this_frame->mv_in_out_count * motion_pct; |
| 1557 *abs_mv_in_out_accumulator += | 1562 *abs_mv_in_out_accumulator += |
| 1558 fabs(this_frame->mv_in_out_count * motion_pct); | 1563 fabs(this_frame->mv_in_out_count * motion_pct); |
| 1559 | 1564 |
| (...skipping 1798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3358 } | 3363 } |
| 3359 | 3364 |
| 3360 if ((cpi->common.Width != new_width) || (cpi->common.Height != new_heigh
t)) | 3365 if ((cpi->common.Width != new_width) || (cpi->common.Height != new_heigh
t)) |
| 3361 { | 3366 { |
| 3362 cpi->common.Width = new_width; | 3367 cpi->common.Width = new_width; |
| 3363 cpi->common.Height = new_height; | 3368 cpi->common.Height = new_height; |
| 3364 vp8_alloc_compressor_data(cpi); | 3369 vp8_alloc_compressor_data(cpi); |
| 3365 } | 3370 } |
| 3366 } | 3371 } |
| 3367 } | 3372 } |
| OLD | NEW |