Properly set tile size in super-resolution mode

Resolve a tile size issue that is not conformant to the spec.

BUG=b/261447372

Change-Id: I3670ab4c8974a36ade526b9528fd460f403199df
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 20df292..e5491d1 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -16,6 +16,7 @@
 #include <time.h>
 #include <stdlib.h>
 
+#include "av1/common/scale.h"
 #include "config/aom_config.h"
 #include "config/aom_dsp_rtcd.h"
 
@@ -280,6 +281,13 @@
   if (tile_cfg->tile_width_count == 0 || tile_cfg->tile_height_count == 0) {
     tiles->uniform_spacing = 1;
     tiles->log2_cols = AOMMAX(tile_cfg->tile_columns, tiles->min_log2_cols);
+    // Add a special case to handle super resolution
+    sb_cols = coded_to_superres_mi(sb_cols, cm->superres_scale_denominator);
+    int min_log2_cols = 0;
+    for (; (tiles->max_width_sb << min_log2_cols) <= sb_cols; ++min_log2_cols) {
+    }
+    tiles->log2_cols = AOMMAX(tiles->log2_cols, min_log2_cols);
+
     tiles->log2_cols = AOMMIN(tiles->log2_cols, tiles->max_log2_cols);
   } else if (tile_cfg->tile_widths[0] < 0) {
     auto_tile_size_balancing(cm, sb_cols, tile_cfg->tile_columns, 1);