Make previous frame loopfilter levels in AV1_PRIMARY default
FPMT code to handle previous frame loopfilter levels has been made
default.
Change-Id: I1e8eee3d773643a7e9059ac4603a45802a240afe
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 6367cbd..ca1b4a3 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -1264,9 +1264,7 @@
cm->error->setjmp = 1;
cpi->compressor_stage = stage;
-#if CONFIG_FRAME_PARALLEL_ENCODE
cpi->do_frame_data_update = true;
-#endif
CommonModeInfoParams *const mi_params = &cm->mi_params;
mi_params->free_mi = enc_free_mi;
@@ -4216,7 +4214,6 @@
update_gf_group_index(cpi);
}
-#if CONFIG_FRAME_PARALLEL_ENCODE
static void update_end_of_frame_stats(AV1_COMP *cpi) {
if (cpi->do_frame_data_update) {
// Store current frame loopfilter levels in ppi, if update flag is set.
@@ -4229,11 +4226,11 @@
cpi->ppi->filter_level_v = lf->filter_level_v;
}
}
-
+#if CONFIG_FRAME_PARALLEL_ENCODE
// Store frame level mv_stats from cpi to ppi.
cpi->ppi->mv_stats = cpi->mv_stats;
-}
#endif
+}
// Updates frame level stats related to global motion
static AOM_INLINE void update_gm_stats(AV1_COMP *cpi) {
@@ -4355,9 +4352,7 @@
#endif
update_fb_of_context_type(cpi, ppi->fb_of_context_type);
update_rc_counts(cpi);
-#if CONFIG_FRAME_PARALLEL_ENCODE
update_end_of_frame_stats(cpi);
-#endif
}
if (cpi->oxcf.pass == AOM_RC_THIRD_PASS && cpi->third_pass_ctx) {
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index a578e80..a31a1cb 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -2382,21 +2382,6 @@
*/
struct AV1_COMP_DATA parallel_frames_data[MAX_PARALLEL_FRAMES - 1];
- /*!
- * Loopfilter levels of the previous encoded frame.
- */
- int filter_level[2];
-
- /*!
- * Chrominance component loopfilter level of the previous encoded frame.
- */
- int filter_level_u;
-
- /*!
- * Chrominance component loopfilter level of the previous encoded frame.
- */
- int filter_level_v;
-
#if CONFIG_FPMT_TEST
/*!
* Flag which enables/disables simulation path for fpmt unit test.
@@ -2448,6 +2433,21 @@
int num_fp_contexts;
/*!
+ * Loopfilter levels of the previous encoded frame.
+ */
+ int filter_level[2];
+
+ /*!
+ * Chrominance component loopfilter level of the previous encoded frame.
+ */
+ int filter_level_u;
+
+ /*!
+ * Chrominance component loopfilter level of the previous encoded frame.
+ */
+ int filter_level_v;
+
+ /*!
* Encode stage top level structure
* When CONFIG_FRAME_PARALLEL_ENCODE is enabled this is the same as
* parallel_cpi[0]
@@ -3232,13 +3232,6 @@
#if CONFIG_FRAME_PARALLEL_ENCODE
/*!
- * A flag to indicate frames that will update their data to the primary
- * context at the end of the encode. It is set for non-parallel frames and the
- * last frame in encode order in a given parallel encode set.
- */
- bool do_frame_data_update;
-
- /*!
* Motion vector stats of the current encoded frame, used to update the
* ppi->mv_stats during postencode.
*/
@@ -3272,6 +3265,14 @@
#endif
#endif // CONFIG_FRAME_PARALLEL_ENCODE_2
#endif // CONFIG_FRAME_PARALLEL_ENCODE
+
+ /*!
+ * A flag to indicate frames that will update their data to the primary
+ * context at the end of the encode. It is set for non-parallel frames and the
+ * last frame in encode order in a given parallel encode set.
+ */
+ bool do_frame_data_update;
+
#if CONFIG_RD_COMMAND
/*!
* A structure for assigning external q_index / rdmult for experiments
diff --git a/av1/encoder/picklpf.c b/av1/encoder/picklpf.c
index 00ff4d7..925c269 100644
--- a/av1/encoder/picklpf.c
+++ b/av1/encoder/picklpf.c
@@ -287,17 +287,10 @@
} else {
int last_frame_filter_level[4] = { 0 };
if (!frame_is_intra_only(cm)) {
-#if CONFIG_FRAME_PARALLEL_ENCODE
last_frame_filter_level[0] = cpi->ppi->filter_level[0];
last_frame_filter_level[1] = cpi->ppi->filter_level[1];
last_frame_filter_level[2] = cpi->ppi->filter_level_u;
last_frame_filter_level[3] = cpi->ppi->filter_level_v;
-#else
- last_frame_filter_level[0] = lf->filter_level[0];
- last_frame_filter_level[1] = lf->filter_level[1];
- last_frame_filter_level[2] = lf->filter_level_u;
- last_frame_filter_level[3] = lf->filter_level_v;
-#endif
}
// The frame buffer last_frame_uf is used to store the non-loop filtered
// reconstructed frame in search_filter_level().