Remove 2 unused first pass stats
Removed unused tr_coded_error and third_ref_count.
Change-Id: I61e50a47969c3ba5af267bb85ed7555c9fbc29ee
diff --git a/av1/encoder/firstpass.c b/av1/encoder/firstpass.c
index c2e3903..b8271f6 100644
--- a/av1/encoder/firstpass.c
+++ b/av1/encoder/firstpass.c
@@ -123,11 +123,9 @@
section->frame_avg_wavelet_energy += frame->frame_avg_wavelet_energy;
section->coded_error += frame->coded_error;
section->sr_coded_error += frame->sr_coded_error;
- section->tr_coded_error += frame->tr_coded_error;
section->pcnt_inter += frame->pcnt_inter;
section->pcnt_motion += frame->pcnt_motion;
section->pcnt_second_ref += frame->pcnt_second_ref;
- section->pcnt_third_ref += frame->pcnt_third_ref;
section->pcnt_neutral += frame->pcnt_neutral;
section->intra_skip_pct += frame->intra_skip_pct;
section->inactive_zone_rows += frame->inactive_zone_rows;
@@ -745,17 +743,12 @@
stats->sr_coded_error += motion_error;
}
- // TODO(chengchen): I believe logically this should also be changed to
- // stats->tr_coded_error += AOMMIN(alt_motion_error, this_intra_error).
- stats->tr_coded_error += motion_error;
-
// Reset to last frame as reference buffer.
xd->plane[0].pre[0].buf = last_frame->y_buffer + recon_yoffset;
xd->plane[1].pre[0].buf = last_frame->u_buffer + recon_uvoffset;
xd->plane[2].pre[0].buf = last_frame->v_buffer + recon_uvoffset;
} else {
stats->sr_coded_error += motion_error;
- stats->tr_coded_error += motion_error;
}
// Start by assuming that intra mode is best.
@@ -813,7 +806,6 @@
double f_h) {
fps->coded_error /= num_mbs_16x16;
fps->sr_coded_error /= num_mbs_16x16;
- fps->tr_coded_error /= num_mbs_16x16;
fps->intra_error /= num_mbs_16x16;
fps->frame_avg_wavelet_energy /= num_mbs_16x16;
@@ -868,13 +860,11 @@
fps.frame = frame_number;
fps.coded_error = (double)(stats->coded_error >> 8) + min_err;
fps.sr_coded_error = (double)(stats->sr_coded_error >> 8) + min_err;
- fps.tr_coded_error = (double)(stats->tr_coded_error >> 8) + min_err;
fps.intra_error = (double)(stats->intra_error >> 8) + min_err;
fps.frame_avg_wavelet_energy = (double)stats->frame_avg_wavelet_energy;
fps.count = 1.0;
fps.pcnt_inter = (double)stats->inter_count / num_mbs;
fps.pcnt_second_ref = (double)stats->second_ref_count / num_mbs;
- fps.pcnt_third_ref = (double)stats->third_ref_count / num_mbs;
fps.pcnt_neutral = (double)stats->neutral_count / num_mbs;
fps.intra_skip_pct = (double)stats->intra_skip_count / num_mbs;
fps.inactive_zone_rows = (double)stats->image_data_start_row;
@@ -988,7 +978,6 @@
stats.sum_mvr_abs += mb_stat.sum_mvr_abs;
stats.sum_mvrs += mb_stat.sum_mvrs;
stats.third_ref_count += mb_stat.third_ref_count;
- stats.tr_coded_error += mb_stat.tr_coded_error;
}
}
return stats;
@@ -1200,7 +1189,6 @@
++raw_motion_err_counts;
} else {
mb_stats->sr_coded_error += this_intra_error;
- mb_stats->tr_coded_error += this_intra_error;
mb_stats->coded_error += this_intra_error;
}
diff --git a/av1/encoder/firstpass.h b/av1/encoder/firstpass.h
index d66671e..b4cc275 100644
--- a/av1/encoder/firstpass.h
+++ b/av1/encoder/firstpass.h
@@ -66,10 +66,6 @@
*/
double sr_coded_error;
/*!
- * Best of intra pred error and inter pred error using altref frame as ref.
- */
- double tr_coded_error;
- /*!
* Percentage of blocks with inter pred error < intra pred error.
*/
double pcnt_inter;
@@ -84,10 +80,6 @@
*/
double pcnt_second_ref;
/*!
- * Percentage of blocks where altref frame was better than intra, last, golden
- */
- double pcnt_third_ref;
- /*!
* Percentage of blocks where intra and inter prediction errors were very
* close. Note that this is a 'weighted count', that is, the so blocks may be
* weighted by how close the two errors were.
@@ -309,8 +301,6 @@
int64_t coded_error;
// Best of intra pred error and inter pred error using golden frame as ref.
int64_t sr_coded_error;
- // Best of intra pred error and inter pred error using altref frame as ref.
- int64_t tr_coded_error;
// Count of motion vector.
int mv_count;
// Count of blocks that pick inter prediction (inter pred error is smaller
diff --git a/av1/encoder/pass2_strategy.c b/av1/encoder/pass2_strategy.c
index c114b6d..f7757b7 100644
--- a/av1/encoder/pass2_strategy.c
+++ b/av1/encoder/pass2_strategy.c
@@ -505,9 +505,7 @@
accumulate_frame_motion_stats(stats, gf_stats, f_w, f_h);
// sum up the metric values of current gf group
gf_stats->avg_sr_coded_error += stats->sr_coded_error;
- gf_stats->avg_tr_coded_error += stats->tr_coded_error;
gf_stats->avg_pcnt_second_ref += stats->pcnt_second_ref;
- gf_stats->avg_pcnt_third_ref += stats->pcnt_third_ref;
gf_stats->avg_new_mv_count += stats->new_mv_count;
gf_stats->avg_wavelet_energy += stats->frame_avg_wavelet_energy;
if (fabs(stats->raw_error_stdev) > 0.000001) {
@@ -531,22 +529,10 @@
}
}
-static void average_gf_stats(const int total_frame,
- const FIRSTPASS_STATS *last_stat,
- GF_GROUP_STATS *gf_stats) {
+static void average_gf_stats(const int total_frame, GF_GROUP_STATS *gf_stats) {
if (total_frame) {
gf_stats->avg_sr_coded_error /= total_frame;
- gf_stats->avg_tr_coded_error /= total_frame;
gf_stats->avg_pcnt_second_ref /= total_frame;
- if (total_frame - 1) {
- gf_stats->avg_pcnt_third_ref_nolast =
- (gf_stats->avg_pcnt_third_ref - last_stat->pcnt_third_ref) /
- (total_frame - 1);
- } else {
- gf_stats->avg_pcnt_third_ref_nolast =
- gf_stats->avg_pcnt_third_ref / total_frame;
- }
- gf_stats->avg_pcnt_third_ref /= total_frame;
gf_stats->avg_new_mv_count /= total_frame;
gf_stats->avg_wavelet_energy /= total_frame;
}
@@ -2276,10 +2262,7 @@
gf_stats->abs_mv_in_out_accumulator = 0.0;
gf_stats->avg_sr_coded_error = 0.0;
- gf_stats->avg_tr_coded_error = 0.0;
gf_stats->avg_pcnt_second_ref = 0.0;
- gf_stats->avg_pcnt_third_ref = 0.0;
- gf_stats->avg_pcnt_third_ref_nolast = 0.0;
gf_stats->avg_new_mv_count = 0.0;
gf_stats->avg_wavelet_energy = 0.0;
gf_stats->avg_raw_err_stdev = 0.0;
@@ -2398,7 +2381,7 @@
// Was the group length constrained by the requirement for a new KF?
p_rc->constrained_gf_group = (i >= rc->frames_to_key) ? 1 : 0;
- average_gf_stats(i, &next_frame, &gf_stats);
+ average_gf_stats(i, &gf_stats);
// Disable internal ARFs for "still" gf groups.
// zero_motion_accumulator: minimum percentage of (0,0) motion;
diff --git a/av1/encoder/pass2_strategy.h b/av1/encoder/pass2_strategy.h
index 9f6ce22..913a79f 100644
--- a/av1/encoder/pass2_strategy.h
+++ b/av1/encoder/pass2_strategy.h
@@ -42,10 +42,7 @@
double abs_mv_in_out_accumulator;
double avg_sr_coded_error;
- double avg_tr_coded_error;
double avg_pcnt_second_ref;
- double avg_pcnt_third_ref;
- double avg_pcnt_third_ref_nolast;
double avg_new_mv_count;
double avg_wavelet_energy;
double avg_raw_err_stdev;
@@ -61,7 +58,6 @@
double frame_err;
double frame_coded_error;
double frame_sr_coded_error;
- double frame_tr_coded_error;
/*!\endcond */
} GF_FRAME_STATS;
/*!cond */