diff --git a/av1/encoder/ratectrl.c b/av1/encoder/ratectrl.c
index 84022ea..1cffafa 100644
--- a/av1/encoder/ratectrl.c
+++ b/av1/encoder/ratectrl.c
@@ -1349,35 +1349,6 @@
   }
 }
 
-void av1_estimate_qp_gop(AV1_COMP *cpi,
-                         struct EncodeFrameParams *const frame_params) {
-  AV1_COMMON *const cm = &cpi->common;
-  int gop_length = cpi->rc.baseline_gf_interval;
-  int bottom_index, top_index;
-  int idx;
-  const int gf_index = cpi->twopass.gf_group.index;
-
-  for (idx = 1; idx <= gop_length + 1 && idx < MAX_LAG_BUFFERS; ++idx) {
-    TplDepFrame *tpl_frame = &cpi->tpl_stats[idx];
-    int target_rate = cpi->twopass.gf_group.bit_allocation[idx];
-    int arf_q = 0;
-
-    cpi->twopass.gf_group.index = idx;
-    rc_set_frame_target(cpi, target_rate, cm->width, cm->height);
-    av1_configure_buffer_updates(
-        cpi, frame_params,
-        cpi->twopass.gf_group.update_type[cpi->twopass.gf_group.index], 0);
-    tpl_frame->base_qindex = rc_pick_q_and_bounds_two_pass(
-        cpi, cm->width, cm->height, &bottom_index, &top_index, &arf_q);
-    tpl_frame->base_qindex = AOMMAX(tpl_frame->base_qindex, 1);
-  }
-  // Reset the actual index and frame update
-  cpi->twopass.gf_group.index = gf_index;
-  av1_configure_buffer_updates(
-      cpi, frame_params,
-      cpi->twopass.gf_group.update_type[cpi->twopass.gf_group.index], 0);
-}
-
 void av1_rc_postencode_update(AV1_COMP *cpi, uint64_t bytes_used) {
   const AV1_COMMON *const cm = &cpi->common;
   const CurrentFrame *const current_frame = &cm->current_frame;
diff --git a/av1/encoder/ratectrl.h b/av1/encoder/ratectrl.h
index 664127b..00d8f4d 100644
--- a/av1/encoder/ratectrl.h
+++ b/av1/encoder/ratectrl.h
@@ -275,9 +275,6 @@
 
 int av1_resize_one_pass_cbr(struct AV1_COMP *cpi);
 
-void av1_estimate_qp_gop(struct AV1_COMP *cpi,
-                         struct EncodeFrameParams *const frame_params);
-
 #ifdef __cplusplus
 }  // extern "C"
 #endif
