Remove CONFIG_LOOPFILTERING_ACROSS_TILES
The tool is not noving forward.
Change-Id: Id5f8b5c4645df3873b1c4ea0bbe8abf010298e8c
diff --git a/aomenc.c b/aomenc.c
index 7276bc5..e15b2d1 100644
--- a/aomenc.c
+++ b/aomenc.c
@@ -434,19 +434,6 @@
static const arg_def_t tile_height =
ARG_DEF(NULL, "tile-height", 1, "Tile heights (command separated)");
#endif
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-static const arg_def_t tile_loopfilter_v =
- ARG_DEF(NULL, "tile-loopfilter-v", 1,
- "Enable loop filter across vertical tile boundary");
-static const arg_def_t tile_loopfilter_h =
- ARG_DEF(NULL, "tile-loopfilter-h", 1,
- "Enable loop filter across horizontal tile boundary");
-#else
-static const arg_def_t tile_loopfilter = ARG_DEF(
- NULL, "tile-loopfilter", 1, "Enable loop filter across tile boundary");
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
static const arg_def_t lossless =
ARG_DEF(NULL, "lossless", 1, "Lossless mode (0: false (default), 1: true)");
static const arg_def_t enable_cdef =
@@ -639,14 +626,6 @@
&single_tile_decoding,
&tile_cols,
&tile_rows,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- &tile_loopfilter_v,
- &tile_loopfilter_h,
-#else
- &tile_loopfilter,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
&arnr_maxframes,
&arnr_strength,
&tune_metric,
@@ -701,14 +680,6 @@
AV1E_SET_SINGLE_TILE_DECODING,
AV1E_SET_TILE_COLUMNS,
AV1E_SET_TILE_ROWS,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- AV1E_SET_TILE_LOOPFILTER_V,
- AV1E_SET_TILE_LOOPFILTER_H,
-#else
- AV1E_SET_TILE_LOOPFILTER,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
AOME_SET_ARNR_MAXFRAMES,
AOME_SET_ARNR_STRENGTH,
AOME_SET_TUNING,
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index 354464d..4cf359e 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -41,14 +41,6 @@
unsigned int static_thresh;
unsigned int tile_columns; // log2 number of tile columns
unsigned int tile_rows; // log2 number of tile rows
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- unsigned int loop_filter_across_tiles_v_enabled;
- unsigned int loop_filter_across_tiles_h_enabled;
-#else
- unsigned int loop_filter_across_tiles_enabled;
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
unsigned int arnr_max_frames;
unsigned int arnr_strength;
unsigned int min_gf_interval;
@@ -107,23 +99,15 @@
};
static struct av1_extracfg default_extra_cfg = {
- 0, // cpu_used
- 0, // dev_sf
- 1, // enable_auto_alt_ref
- 0, // enable_auto_bwd_ref
- 0, // noise_sensitivity
- 0, // sharpness
- 0, // static_thresh
- 0, // tile_columns
- 0, // tile_rows
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- 1, // loop_filter_across_tiles_v_enabled
- 1, // loop_filter_across_tiles_h_enabled
-#else
- 1, // loop_filter_across_tiles_enabled
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
+ 0, // cpu_used
+ 0, // dev_sf
+ 1, // enable_auto_alt_ref
+ 0, // enable_auto_bwd_ref
+ 0, // noise_sensitivity
+ 0, // sharpness
+ 0, // static_thresh
+ 0, // tile_columns
+ 0, // tile_rows
7, // arnr_max_frames
5, // arnr_strength
0, // min_gf_interval; 0 -> default decision
@@ -345,14 +329,6 @@
"Adaptive quantization are not supported in large scale tile "
"coding.");
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- RANGE_CHECK_HI(extra_cfg, loop_filter_across_tiles_v_enabled, 1);
- RANGE_CHECK_HI(extra_cfg, loop_filter_across_tiles_h_enabled, 1);
-#else
- RANGE_CHECK_HI(extra_cfg, loop_filter_across_tiles_enabled, 1);
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
RANGE_CHECK_HI(extra_cfg, sharpness, 7);
RANGE_CHECK_HI(extra_cfg, arnr_max_frames, 15);
RANGE_CHECK_HI(extra_cfg, arnr_strength, 6);
@@ -680,17 +656,6 @@
oxcf->tile_heights[i] = AOMMAX(cfg->tile_heights[i], 1);
}
#endif
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- oxcf->loop_filter_across_tiles_v_enabled =
- extra_cfg->loop_filter_across_tiles_v_enabled;
- oxcf->loop_filter_across_tiles_h_enabled =
- extra_cfg->loop_filter_across_tiles_h_enabled;
-#else
- oxcf->loop_filter_across_tiles_enabled =
- extra_cfg->loop_filter_across_tiles_enabled;
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
oxcf->error_resilient_mode = cfg->g_error_resilient;
oxcf->frame_parallel_decoding_mode = extra_cfg->frame_parallel_decoding_mode;
@@ -829,33 +794,6 @@
return update_extra_cfg(ctx, &extra_cfg);
}
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-static aom_codec_err_t ctrl_set_tile_loopfilter_v(aom_codec_alg_priv_t *ctx,
- va_list args) {
- struct av1_extracfg extra_cfg = ctx->extra_cfg;
- extra_cfg.loop_filter_across_tiles_v_enabled =
- CAST(AV1E_SET_TILE_LOOPFILTER_V, args);
- return update_extra_cfg(ctx, &extra_cfg);
-}
-static aom_codec_err_t ctrl_set_tile_loopfilter_h(aom_codec_alg_priv_t *ctx,
- va_list args) {
- struct av1_extracfg extra_cfg = ctx->extra_cfg;
- extra_cfg.loop_filter_across_tiles_h_enabled =
- CAST(AV1E_SET_TILE_LOOPFILTER_H, args);
- return update_extra_cfg(ctx, &extra_cfg);
-}
-#else
-static aom_codec_err_t ctrl_set_tile_loopfilter(aom_codec_alg_priv_t *ctx,
- va_list args) {
- struct av1_extracfg extra_cfg = ctx->extra_cfg;
- extra_cfg.loop_filter_across_tiles_enabled =
- CAST(AV1E_SET_TILE_LOOPFILTER, args);
- return update_extra_cfg(ctx, &extra_cfg);
-}
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
static aom_codec_err_t ctrl_set_arnr_max_frames(aom_codec_alg_priv_t *ctx,
va_list args) {
struct av1_extracfg extra_cfg = ctx->extra_cfg;
@@ -1636,14 +1574,6 @@
{ AOME_SET_STATIC_THRESHOLD, ctrl_set_static_thresh },
{ AV1E_SET_TILE_COLUMNS, ctrl_set_tile_columns },
{ AV1E_SET_TILE_ROWS, ctrl_set_tile_rows },
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- { AV1E_SET_TILE_LOOPFILTER_V, ctrl_set_tile_loopfilter_v },
- { AV1E_SET_TILE_LOOPFILTER_H, ctrl_set_tile_loopfilter_h },
-#else
- { AV1E_SET_TILE_LOOPFILTER, ctrl_set_tile_loopfilter },
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
{ AOME_SET_ARNR_MAXFRAMES, ctrl_set_arnr_max_frames },
{ AOME_SET_ARNR_STRENGTH, ctrl_set_arnr_strength },
{ AOME_SET_TUNING, ctrl_set_tuning },
diff --git a/av1/common/av1_loopfilter.c b/av1/common/av1_loopfilter.c
index 937dc5b..a9c3734 100644
--- a/av1/common/av1_loopfilter.c
+++ b/av1/common/av1_loopfilter.c
@@ -1653,35 +1653,6 @@
*int_4x4_y |= (size_mask[block_size] & 0xffffffffffffffffULL) << shift_y;
}
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-// This function update the bit masks for the entire 64x64 region represented
-// by mi_row, mi_col. In case one of the edge is a tile boundary, loop filtering
-// for that edge is disabled. This function only check the tile boundary info
-// for the top left corner mi to determine the boundary information for the
-// top and left edge of the whole super block
-static void update_tile_boundary_filter_mask(AV1_COMMON *const cm,
- const int mi_row, const int mi_col,
- LOOP_FILTER_MASK *lfm) {
- int i;
- const BOUNDARY_TYPE *const bi =
- cm->boundary_info + mi_row * cm->mi_stride + mi_col;
-
- if (*bi & TILE_LEFT_BOUNDARY) {
- for (i = 0; i <= TX_32X32; i++) {
- lfm->left_y[i] &= 0xfefefefefefefefeULL;
- lfm->left_uv[i] &= 0xeeee;
- }
- }
-
- if (*bi & TILE_ABOVE_BOUNDARY) {
- for (i = 0; i <= TX_32X32; i++) {
- lfm->above_y[i] &= 0xffffffffffffff00ULL;
- lfm->above_uv[i] &= 0xfff0;
- }
- }
-}
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
// This function sets up the bit masks for the entire 64x64 region represented
// by mi_row, mi_col.
// TODO(JBB): This function only works for yv12.
@@ -1915,12 +1886,6 @@
}
}
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (av1_disable_loopfilter_on_tile_boundary(cm)) {
- update_tile_boundary_filter_mask(cm, mi_row, mi_col, lfm);
- }
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
// Assert if we try to apply 2 different loop filters at the same position.
assert(!(lfm->left_y[TX_16X16] & lfm->left_y[TX_8X8]));
assert(!(lfm->left_y[TX_16X16] & lfm->left_y[TX_4X4]));
@@ -2331,22 +2296,6 @@
const int curr_skipped = mbmi->skip && is_inter_block(mbmi);
uint32_t level = curr_level;
if (coord) {
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- // Note: For sub8x8 blocks, we need to look at the top-left mi unit in
- // order
- // to extract the correct boundary information.
- const int mi_row_bound = ((y << scale_vert) >> MI_SIZE_LOG2);
- const int mi_col_bound = ((x << scale_horz) >> MI_SIZE_LOG2);
- BOUNDARY_TYPE *const bi =
- cm->boundary_info + mi_row_bound * cm->mi_stride + mi_col_bound;
- // here, assuming bounfary_info is set correctly based on the
- // loop_filter_across_tiles_enabled flag, i.e, tile boundary should
- // only be set to true when this flag is set to 0.
- int left_boundary = (*bi & TILE_LEFT_BOUNDARY);
- int top_boundary = (*bi & TILE_ABOVE_BOUNDARY);
- if (((VERT_EDGE == edge_dir) && (0 == left_boundary)) ||
- ((HORZ_EDGE == edge_dir) && (0 == top_boundary)))
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
{
const MODE_INFO *const mi_prev = *(mi - mode_step);
const int pv_row =
diff --git a/av1/common/onyxc_int.h b/av1/common/onyxc_int.h
index 067bfd1..6ccfedb 100644
--- a/av1/common/onyxc_int.h
+++ b/av1/common/onyxc_int.h
@@ -473,15 +473,6 @@
unsigned int large_scale_tile;
unsigned int single_tile_decoding;
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- int loop_filter_across_tiles_v_enabled;
- int loop_filter_across_tiles_h_enabled;
-#else
- int loop_filter_across_tiles_enabled;
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
int byte_alignment;
int skip_loop_filter;
diff --git a/av1/common/resize.c b/av1/common/resize.c
index 7dfd033..761e5a8 100644
--- a/av1/common/resize.c
+++ b/av1/common/resize.c
@@ -1132,18 +1132,8 @@
uint8_t *const dst_ptr = dst + upscaled_x0;
const int dst_width = upscaled_x1 - upscaled_x0;
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- const int pad_left = (!cm->loop_filter_across_tiles_v_enabled || j == 0);
- const int pad_right =
- (!cm->loop_filter_across_tiles_v_enabled || j == cm->tile_cols - 1);
-#elif CONFIG_LOOPFILTERING_ACROSS_TILES
- const int pad_left = (!cm->loop_filter_across_tiles_enabled || j == 0);
- const int pad_right =
- (!cm->loop_filter_across_tiles_enabled || j == cm->tile_cols - 1);
-#else
const int pad_left = (j == 0);
const int pad_right = (j == cm->tile_cols - 1);
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES(_EXT)
if (cm->use_highbitdepth)
highbd_upscale_normative_rect(
diff --git a/av1/common/restoration.c b/av1/common/restoration.c
index 6c7db44..46211a7 100644
--- a/av1/common/restoration.c
+++ b/av1/common/restoration.c
@@ -205,45 +205,6 @@
#define REAL_PTR(hbd, d) ((hbd) ? (uint8_t *)CONVERT_TO_SHORTPTR(d) : (d))
-// Helper function: Save one column of left/right context to the appropriate
-// column buffers, then extend the edge of the current tile into that column.
-//
-// Note: The height passed in should be the height of this processing unit,
-// but we actually save/restore an extra RESTORATION_BORDER pixels above and
-// below the stripe.
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-static void setup_boundary_column(const uint8_t *src8, int src_stride,
- uint8_t *dst8, int dst_stride, uint16_t *buf,
- int h, int use_highbd) {
- if (use_highbd) {
- const uint16_t *src16 = CONVERT_TO_SHORTPTR(src8);
- uint16_t *dst16 = CONVERT_TO_SHORTPTR(dst8);
- for (int i = -RESTORATION_BORDER; i < h + RESTORATION_BORDER; i++) {
- buf[i + RESTORATION_BORDER] = dst16[i * dst_stride];
- dst16[i * dst_stride] = src16[i * src_stride];
- }
- } else {
- for (int i = -RESTORATION_BORDER; i < h + RESTORATION_BORDER; i++) {
- buf[i + RESTORATION_BORDER] = dst8[i * dst_stride];
- dst8[i * dst_stride] = src8[i * src_stride];
- }
- }
-}
-
-static void restore_boundary_column(uint8_t *dst8, int dst_stride,
- const uint16_t *buf, int h,
- int use_highbd) {
- if (use_highbd) {
- uint16_t *dst16 = CONVERT_TO_SHORTPTR(dst8);
- for (int i = -RESTORATION_BORDER; i < h + RESTORATION_BORDER; i++)
- dst16[i * dst_stride] = buf[i + RESTORATION_BORDER];
- } else {
- for (int i = -RESTORATION_BORDER; i < h + RESTORATION_BORDER; i++)
- dst8[i * dst_stride] = (uint8_t)(buf[i + RESTORATION_BORDER]);
- }
-}
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
// With striped loop restoration, the filtering for each 64-pixel stripe gets
// most of its input from the output of CDEF (stored in data8), but we need to
// fill out a border of 3 pixels above/below the stripe according to the
@@ -280,38 +241,21 @@
// to decide if we're overwriting the above/below boundary pixels or not.
static void get_stripe_boundary_info(const RestorationTileLimits *limits,
const AV1PixelRect *tile_rect, int ss_y,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- int loop_filter_across_tiles_h_enabled,
-#else
- int loop_filter_across_tiles_enabled,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
int *copy_above, int *copy_below) {
*copy_above = 1;
*copy_below = 1;
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (loop_filter_across_tiles_h_enabled) {
-#else
- if (loop_filter_across_tiles_enabled) {
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
- const int full_stripe_height = RESTORATION_PROC_UNIT_SIZE >> ss_y;
- const int runit_offset = RESTORATION_UNIT_OFFSET >> ss_y;
+ const int full_stripe_height = RESTORATION_PROC_UNIT_SIZE >> ss_y;
+ const int runit_offset = RESTORATION_UNIT_OFFSET >> ss_y;
- const int first_stripe_in_tile = (limits->v_start == tile_rect->top);
- const int this_stripe_height =
- full_stripe_height - (first_stripe_in_tile ? runit_offset : 0);
- const int last_stripe_in_tile =
- (limits->v_start + this_stripe_height >= tile_rect->bottom);
+ const int first_stripe_in_tile = (limits->v_start == tile_rect->top);
+ const int this_stripe_height =
+ full_stripe_height - (first_stripe_in_tile ? runit_offset : 0);
+ const int last_stripe_in_tile =
+ (limits->v_start + this_stripe_height >= tile_rect->bottom);
- if (first_stripe_in_tile) *copy_above = 0;
- if (last_stripe_in_tile) *copy_below = 0;
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- }
-#endif
+ if (first_stripe_in_tile) *copy_above = 0;
+ if (last_stripe_in_tile) *copy_below = 0;
}
// Overwrite the border pixels around a processing stripe so that the conditions
@@ -329,16 +273,8 @@
// index we get from limits into something we can look up in rsb).
static void setup_processing_stripe_boundary(
const RestorationTileLimits *limits, const RestorationStripeBoundaries *rsb,
- int rsb_row, int use_highbd, int h,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- const AV1PixelRect *tile_rect, int loop_filter_across_tiles_v_enabled,
-#else
- const AV1PixelRect *tile_rect, int loop_filter_across_tiles_enabled,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
- uint8_t *data8, int data_stride, RestorationLineBuffers *rlbs,
- int copy_above, int copy_below) {
+ int rsb_row, int use_highbd, int h, uint8_t *data8, int data_stride,
+ RestorationLineBuffers *rlbs, int copy_above, int copy_below) {
// Offsets within the line buffers. The buffer logically starts at column
// -RESTORATION_EXTRA_HORZ so the 1st column (at x0 - RESTORATION_EXTRA_HORZ)
// has column x0 in the buffer.
@@ -394,59 +330,6 @@
memcpy(REAL_PTR(use_highbd, dst8), src, line_size);
}
}
-
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (!loop_filter_across_tiles_v_enabled) {
- // If loopfiltering across tiles is disabled, we need to check if we're at
- // the edge of the current tile column. If we are, we need to extend the
- // leftmost/rightmost column within the tile by 3 pixels, so that the output
- // doesn't depend on pixels from the next column over.
- // This applies to the top and bottom borders too, since those may have
- // been filled out with data from the tile to the top-left (etc.) of us.
- const int at_tile_left_border = (limits->h_start == tile_rect->left);
- const int at_tile_right_border = (limits->h_end == tile_rect->right);
-
- if (at_tile_left_border) {
- uint8_t *dst8 = data8 + limits->h_start + limits->v_start * data_stride;
- for (int j = -RESTORATION_BORDER; j < 0; j++)
- setup_boundary_column(dst8, data_stride, dst8 + j, data_stride,
- rlbs->tmp_save_left[j + RESTORATION_BORDER], h,
- use_highbd);
- }
-
- if (at_tile_right_border) {
- uint8_t *dst8 = data8 + limits->h_end + limits->v_start * data_stride;
- for (int j = 0; j < RESTORATION_BORDER; j++)
- setup_boundary_column(dst8 - 1, data_stride, dst8 + j, data_stride,
- rlbs->tmp_save_right[j], h, use_highbd);
- }
- }
-#else
- if (!loop_filter_across_tiles_enabled) {
- // If loopfiltering across tiles is disabled, we need to extend tile edges
- // by 3 pixels, to ensure that we don't sample from the tiles to our left
- // or right.
- const int at_tile_left_border = (limits->h_start == tile_rect->left);
- const int at_tile_right_border = (limits->h_end == tile_rect->right);
-
- if (at_tile_left_border) {
- uint8_t *dst8 = data8 + limits->h_start + limits->v_start * data_stride;
- for (int j = -RESTORATION_BORDER; j < 0; j++)
- setup_boundary_column(dst8, data_stride, dst8 + j, data_stride,
- rlbs->tmp_save_left[j + RESTORATION_BORDER], h,
- use_highbd);
- }
-
- if (at_tile_right_border) {
- uint8_t *dst8 = data8 + limits->h_end + limits->v_start * data_stride;
- for (int j = 0; j < RESTORATION_BORDER; j++)
- setup_boundary_column(dst8 - 1, data_stride, dst8 + j, data_stride,
- rlbs->tmp_save_right[j], h, use_highbd);
- }
- }
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
}
// This function restores the boundary lines modified by
@@ -464,69 +347,14 @@
// by the top/bottom borders.
static void restore_processing_stripe_boundary(
const RestorationTileLimits *limits, const RestorationLineBuffers *rlbs,
- int use_highbd, int h,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- const AV1PixelRect *tile_rect, int loop_filter_across_tiles_v_enabled,
-#else
- const AV1PixelRect *tile_rect, int loop_filter_across_tiles_enabled,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
- uint8_t *data8, int data_stride, int copy_above, int copy_below) {
+ int use_highbd, int h, uint8_t *data8, int data_stride, int copy_above,
+ int copy_below) {
const int line_width =
(limits->h_end - limits->h_start) + 2 * RESTORATION_EXTRA_HORZ;
const int line_size = line_width << use_highbd;
const int data_x0 = limits->h_start - RESTORATION_EXTRA_HORZ;
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (!loop_filter_across_tiles_v_enabled) {
- // Restore any pixels we overwrote at the left/right edge of this
- // processing unit.
- const int at_tile_left_border = (limits->h_start == tile_rect->left);
- const int at_tile_right_border = (limits->h_end == tile_rect->right);
-
- if (at_tile_left_border) {
- uint8_t *dst8 = data8 + limits->h_start + limits->v_start * data_stride;
- for (int j = -RESTORATION_BORDER; j < 0; j++)
- restore_boundary_column(dst8 + j, data_stride,
- rlbs->tmp_save_left[j + RESTORATION_BORDER], h,
- use_highbd);
- }
-
- if (at_tile_right_border) {
- uint8_t *dst8 = data8 + limits->h_end + limits->v_start * data_stride;
- for (int j = 0; j < RESTORATION_BORDER; j++)
- restore_boundary_column(dst8 + j, data_stride, rlbs->tmp_save_right[j],
- h, use_highbd);
- }
- }
-#else
- if (!loop_filter_across_tiles_enabled) {
- // Restore any pixels we overwrote at the left/right edge of this
- // processing unit.
- const int at_tile_left_border = (limits->h_start == tile_rect->left);
- const int at_tile_right_border = (limits->h_end == tile_rect->right);
-
- if (at_tile_left_border) {
- uint8_t *dst8 = data8 + limits->h_start + limits->v_start * data_stride;
- for (int j = -RESTORATION_BORDER; j < 0; j++)
- restore_boundary_column(dst8 + j, data_stride,
- rlbs->tmp_save_left[j + RESTORATION_BORDER], h,
- use_highbd);
- }
-
- if (at_tile_right_border) {
- uint8_t *dst8 = data8 + limits->h_end + limits->v_start * data_stride;
- for (int j = 0; j < RESTORATION_BORDER; j++)
- restore_boundary_column(dst8 + j, data_stride, rlbs->tmp_save_right[j],
- h, use_highbd);
- }
- }
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
if (copy_above) {
uint8_t *data8_tl = data8 + data_x0 + limits->v_start * data_stride;
for (int i = -RESTORATION_BORDER; i < 0; ++i) {
@@ -1214,17 +1042,9 @@
void av1_loop_restoration_filter_unit(
const RestorationTileLimits *limits, const RestorationUnitInfo *rui,
const RestorationStripeBoundaries *rsb, RestorationLineBuffers *rlbs,
- const AV1PixelRect *tile_rect, int tile_stripe0,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- int loop_filter_across_tiles_v_enabled,
- int loop_filter_across_tiles_h_enabled,
-#else
- int loop_filter_across_tiles_enabled,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
- int ss_x, int ss_y, int highbd, int bit_depth, uint8_t *data8, int stride,
- uint8_t *dst8, int dst_stride, int32_t *tmpbuf) {
+ const AV1PixelRect *tile_rect, int tile_stripe0, int ss_x, int ss_y,
+ int highbd, int bit_depth, uint8_t *data8, int stride, uint8_t *dst8,
+ int dst_stride, int32_t *tmpbuf) {
RestorationType unit_rtype = rui->restoration_type;
int unit_h = limits->v_end - limits->v_start;
@@ -1250,15 +1070,8 @@
int copy_above, copy_below;
remaining_stripes.v_start = limits->v_start + i;
- get_stripe_boundary_info(&remaining_stripes, tile_rect, ss_y,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- loop_filter_across_tiles_h_enabled,
-#else
- loop_filter_across_tiles_enabled,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
- ©_above, ©_below);
+ get_stripe_boundary_info(&remaining_stripes, tile_rect, ss_y, ©_above,
+ ©_below);
const int full_stripe_height = RESTORATION_PROC_UNIT_SIZE >> ss_y;
const int runit_offset = RESTORATION_UNIT_OFFSET >> ss_y;
@@ -1279,30 +1092,14 @@
const int h = AOMMIN(nominal_stripe_height,
remaining_stripes.v_end - remaining_stripes.v_start);
- setup_processing_stripe_boundary(
- &remaining_stripes, rsb, rsb_row, highbd, h,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- tile_rect, loop_filter_across_tiles_v_enabled,
-#else
- tile_rect, loop_filter_across_tiles_enabled,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
- data8, stride, rlbs, copy_above, copy_below);
+ setup_processing_stripe_boundary(&remaining_stripes, rsb, rsb_row, highbd,
+ h, data8, stride, rlbs, copy_above,
+ copy_below);
stripe_filter(rui, unit_w, h, procunit_width, data8_tl + i * stride, stride,
dst8_tl + i * dst_stride, dst_stride, tmpbuf, bit_depth);
restore_processing_stripe_boundary(&remaining_stripes, rlbs, highbd, h,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- tile_rect,
- loop_filter_across_tiles_v_enabled,
-#else
- tile_rect,
- loop_filter_across_tiles_enabled,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
data8, stride, copy_above, copy_below);
i += h;
@@ -1336,17 +1133,9 @@
av1_loop_restoration_filter_unit(
limits, &rsi->unit_info[rest_unit_idx], &rsi->boundaries, ctxt->rlbs,
- tile_rect, ctxt->tile_stripe0,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- ctxt->cm->loop_filter_across_tiles_v_enabled,
- ctxt->cm->loop_filter_across_tiles_h_enabled,
-#else
- ctxt->cm->loop_filter_across_tiles_enabled,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
- ctxt->ss_x, ctxt->ss_y, ctxt->highbd, ctxt->bit_depth, ctxt->data8,
- ctxt->data_stride, ctxt->dst8, ctxt->dst_stride, ctxt->tmpbuf);
+ tile_rect, ctxt->tile_stripe0, ctxt->ss_x, ctxt->ss_y, ctxt->highbd,
+ ctxt->bit_depth, ctxt->data8, ctxt->data_stride, ctxt->dst8,
+ ctxt->dst_stride, ctxt->tmpbuf);
}
void av1_loop_restoration_filter_frame(YV12_BUFFER_CONFIG *frame,
@@ -1739,34 +1528,11 @@
const int frame_stripe = stripe0 + tile_stripe;
int use_deblock_above, use_deblock_below;
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (!cm->loop_filter_across_tiles_h_enabled) {
- // In this case, we should use CDEF pixels for the above context
- // of the topmost stripe in each region, and for the below context
- // of the bottommost stripe in each tile. Dependent horizontal tile
- // flag is ignored for this extension
- use_deblock_above = (tile_stripe > 0);
- use_deblock_below = (y1 < tile_rect.bottom);
- } else {
-#else
- if (!cm->loop_filter_across_tiles_enabled) {
- // In this case, we should use CDEF pixels for the above context
- // of the topmost stripe in each region, and for the below context
- // of the bottommost stripe in each tile.
- use_deblock_above = (tile_stripe > 0);
- use_deblock_below = (y1 < tile_rect.bottom);
- } else {
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
- // In this case, we should only use CDEF pixels at the top
- // and bottom of the frame as a whole; internal tile boundaries
- // can use deblocked pixels from adjacent tiles for context.
- use_deblock_above = (frame_stripe > 0);
- use_deblock_below = (y1 < plane_height);
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- }
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
+ // In this case, we should only use CDEF pixels at the top
+ // and bottom of the frame as a whole; internal tile boundaries
+ // can use deblocked pixels from adjacent tiles for context.
+ use_deblock_above = (frame_stripe > 0);
+ use_deblock_below = (y1 < plane_height);
if (!after_cdef) {
// Save deblocked context where needed.
diff --git a/av1/common/restoration.h b/av1/common/restoration.h
index ccfd3ea..932115d 100644
--- a/av1/common/restoration.h
+++ b/av1/common/restoration.h
@@ -201,16 +201,6 @@
// stripe.
uint16_t tmp_save_above[RESTORATION_BORDER][RESTORATION_LINEBUFFER_WIDTH];
uint16_t tmp_save_below[RESTORATION_BORDER][RESTORATION_LINEBUFFER_WIDTH];
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- // Column buffers, for storing 3 pixels at the left/right of each tile
- // when loopfiltering across tiles is disabled.
- //
- // Note: These arrays only need to store the pixels immediately left/right
- // of each processing unit; the corner pixels (top-left, etc.) are always
- // stored into the above/below arrays.
- uint16_t tmp_save_left[RESTORATION_BORDER][RESTORATION_COLBUFFER_HEIGHT];
- uint16_t tmp_save_right[RESTORATION_BORDER][RESTORATION_COLBUFFER_HEIGHT];
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
} RestorationLineBuffers;
typedef struct {
@@ -298,17 +288,9 @@
void av1_loop_restoration_filter_unit(
const RestorationTileLimits *limits, const RestorationUnitInfo *rui,
const RestorationStripeBoundaries *rsb, RestorationLineBuffers *rlbs,
- const AV1PixelRect *tile_rect, int tile_stripe0,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- int loop_filter_across_tiles_v_enabled,
- int loop_filter_across_tiles_h_enabled,
-#else
- int loop_filter_across_tiles_enabled,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
- int ss_x, int ss_y, int highbd, int bit_depth, uint8_t *data8, int stride,
- uint8_t *dst8, int dst_stride, int32_t *tmpbuf);
+ const AV1PixelRect *tile_rect, int tile_stripe0, int ss_x, int ss_y,
+ int highbd, int bit_depth, uint8_t *data8, int stride, uint8_t *dst8,
+ int dst_stride, int32_t *tmpbuf);
void av1_loop_restoration_filter_frame(YV12_BUFFER_CONFIG *frame,
struct AV1Common *cm);
diff --git a/av1/common/tile_common.c b/av1/common/tile_common.c
index 8835336..95b739e 100644
--- a/av1/common/tile_common.c
+++ b/av1/common/tile_common.c
@@ -250,81 +250,3 @@
return r;
}
-
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-// this function should only be called when loop_filter_across_tile flag is
-// set to 0
-void av1_setup_across_tile_boundary_info(const AV1_COMMON *const cm,
- const TileInfo *const tile_info) {
- if (cm->tile_cols * cm->tile_rows > 1) {
- const int mi_row = tile_info->mi_row_start;
- const int mi_col = tile_info->mi_col_start;
- BOUNDARY_TYPE *const bi_start =
- cm->boundary_info + mi_row * cm->mi_stride + mi_col;
- // assert(mi_start < cm->mip + cm->mi_alloc_size);
- BOUNDARY_TYPE *bi = 0;
- const int row_diff = tile_info->mi_row_end - tile_info->mi_row_start;
- const int col_diff = tile_info->mi_col_end - tile_info->mi_col_start;
- int row, col;
-
-// when CONFIG_LOOPFILTERING_ACROSS_TILES_EXT is enabled, whether tile
-// is dependent horizontal tile or not is ignored. tile boundary is always
-// initialized based on the actual tile boundary.
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (cm->loop_filter_across_tiles_h_enabled == 0)
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- {
- bi = bi_start;
- for (col = 0; col < col_diff; ++col) {
- *bi |= TILE_ABOVE_BOUNDARY;
- bi += 1;
- }
- }
-
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (cm->loop_filter_across_tiles_v_enabled == 0)
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- {
- bi = bi_start;
- for (row = 0; row < row_diff; ++row) {
- *bi |= TILE_LEFT_BOUNDARY;
- bi += cm->mi_stride;
- }
- }
-
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (cm->loop_filter_across_tiles_h_enabled == 0)
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- {
- bi = bi_start + (row_diff - 1) * cm->mi_stride;
- // explicit bounds checking
- // assert(mi + col_diff <= cm->mip + cm->mi_alloc_size);
- for (col = 0; col < col_diff; ++col) {
- *bi |= TILE_BOTTOM_BOUNDARY;
- bi += 1;
- }
- }
-
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (cm->loop_filter_across_tiles_v_enabled == 0)
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- {
- bi = bi_start + col_diff - 1;
- for (row = 0; row < row_diff; ++row) {
- *bi |= TILE_RIGHT_BOUNDARY;
- bi += cm->mi_stride;
- }
- }
- } // end of cm->tile_cols * cm->tile_rows > 1
-}
-
-int av1_disable_loopfilter_on_tile_boundary(const struct AV1Common *cm) {
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- return ((!cm->loop_filter_across_tiles_v_enabled ||
- !cm->loop_filter_across_tiles_h_enabled) &&
-#else
- return (!cm->loop_filter_across_tiles_enabled &&
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- (cm->tile_cols * cm->tile_rows > 1));
-}
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
diff --git a/av1/common/tile_common.h b/av1/common/tile_common.h
index 67105c5..5ffdafe 100644
--- a/av1/common/tile_common.h
+++ b/av1/common/tile_common.h
@@ -52,12 +52,6 @@
AV1PixelRect av1_get_tile_rect(const TileInfo *tile_info,
const struct AV1Common *cm, int is_uv);
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-void av1_setup_across_tile_boundary_info(const struct AV1Common *const cm,
- const TileInfo *const tile_info);
-int av1_disable_loopfilter_on_tile_boundary(const struct AV1Common *cm);
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
#if CONFIG_MAX_TILE
// Define tile maximum width and area
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index 9da3676..89ae7ed 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -1573,26 +1573,6 @@
cm->tile_rows = 1;
while (cm->tile_rows * cm->tile_height < cm->mi_rows) ++cm->tile_rows;
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (cm->tile_cols > 1) {
- cm->loop_filter_across_tiles_v_enabled = aom_rb_read_bit(rb);
- } else {
- cm->loop_filter_across_tiles_v_enabled = 1;
- }
- if (cm->tile_rows > 1) {
- cm->loop_filter_across_tiles_h_enabled = aom_rb_read_bit(rb);
- } else {
- cm->loop_filter_across_tiles_h_enabled = 1;
- }
-#else
- if (cm->tile_cols * cm->tile_rows > 1)
- cm->loop_filter_across_tiles_enabled = aom_rb_read_bit(rb);
- else
- cm->loop_filter_across_tiles_enabled = 1;
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
if (cm->tile_cols * cm->tile_rows > 1) {
// Read the number of bytes used to store tile size
pbi->tile_col_size_bytes = aom_rb_read_literal(rb, 2) + 1;
@@ -1636,25 +1616,6 @@
get_tile_size(cm->mi_rows, cm->log2_tile_rows, &cm->tile_rows);
#endif // CONFIG_MAX_TILE
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (cm->tile_cols > 1) {
- cm->loop_filter_across_tiles_v_enabled = aom_rb_read_bit(rb);
- } else {
- cm->loop_filter_across_tiles_v_enabled = 1;
- }
- if (cm->tile_rows > 1) {
- cm->loop_filter_across_tiles_h_enabled = aom_rb_read_bit(rb);
- } else {
- cm->loop_filter_across_tiles_h_enabled = 1;
- }
-#else
- if (cm->tile_cols * cm->tile_rows > 1)
- cm->loop_filter_across_tiles_enabled = aom_rb_read_bit(rb);
- else
- cm->loop_filter_across_tiles_enabled = 1;
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
if (cm->tile_rows * cm->tile_cols > 1) {
// tile size magnitude
@@ -1875,23 +1836,6 @@
}
}
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-static void dec_setup_across_tile_boundary_info(
- const AV1_COMMON *const cm, const TileInfo *const tile_info) {
- if (tile_info->mi_row_start >= tile_info->mi_row_end ||
- tile_info->mi_col_start >= tile_info->mi_col_end)
- return;
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (!cm->loop_filter_across_tiles_v_enabled ||
- !cm->loop_filter_across_tiles_h_enabled) {
-#else
- if (!cm->loop_filter_across_tiles_enabled) {
-#endif
- av1_setup_across_tile_boundary_info(cm, tile_info);
- }
-}
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
static const uint8_t *decode_tiles(AV1Decoder *pbi, const uint8_t *data,
const uint8_t *data_end, int startTile,
int endTile) {
@@ -2021,10 +1965,6 @@
av1_zero_above_context(cm, tile_info.mi_col_start, tile_info.mi_col_end);
av1_reset_loop_restoration(&td->xd, num_planes);
-#if CONFIG_LOOPFILTERING_ACROSS_TILES || CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- dec_setup_across_tile_boundary_info(cm, &tile_info);
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
for (mi_row = tile_info.mi_row_start; mi_row < tile_info.mi_row_end;
mi_row += cm->seq_params.mib_size) {
av1_zero_left_context(&td->xd);
@@ -3290,14 +3230,6 @@
}
static void dec_setup_frame_boundary_info(AV1_COMMON *const cm) {
-// Note: When LOOPFILTERING_ACROSS_TILES is enabled, we need to clear the
-// boundary information every frame, since the tile boundaries may
-// change every frame (particularly when dependent-horztiles is also
-// enabled); when it is disabled, the only information stored is the frame
-// boundaries, which only depend on the frame size.
-#if !CONFIG_LOOPFILTERING_ACROSS_TILES && !CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (cm->width != cm->last_width || cm->height != cm->last_height)
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
{
int row, col;
for (row = 0; row < cm->mi_rows; ++row) {
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 20d8b4b..da68477 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -2310,20 +2310,6 @@
#endif
}
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (cm->tile_cols > 1) {
- aom_wb_write_bit(wb, cm->loop_filter_across_tiles_v_enabled);
- }
- if (cm->tile_rows > 1) {
- aom_wb_write_bit(wb, cm->loop_filter_across_tiles_h_enabled);
- }
-#else
- if (cm->tile_cols * cm->tile_rows > 1)
- aom_wb_write_bit(wb, cm->loop_filter_across_tiles_enabled);
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
*saved_wb = *wb;
if (cm->large_scale_tile) {
if (cm->tile_rows * cm->tile_cols > 1) {
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index f139898..cfe6984 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -3754,17 +3754,6 @@
cfl_init(&td->mb.e_mbd.cfl, cm);
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- if (!cm->loop_filter_across_tiles_v_enabled ||
- !cm->loop_filter_across_tiles_h_enabled)
- av1_setup_across_tile_boundary_info(cm, tile_info);
-#else
- if (!cm->loop_filter_across_tiles_enabled)
- av1_setup_across_tile_boundary_info(cm, tile_info);
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
-
av1_crc_calculator_init(&td->mb.mb_rd_record.crc_calculator, 24, 0x5D6DCB);
td->intrabc_used_this_tile = 0;
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index ec164bf..0f86b6b 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -919,18 +919,6 @@
get_tile_size(cm->mi_rows, cm->log2_tile_rows, &cm->tile_rows);
#endif // CONFIG_MAX_TILE
}
-
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- cm->loop_filter_across_tiles_v_enabled =
- cpi->oxcf.loop_filter_across_tiles_v_enabled;
- cm->loop_filter_across_tiles_h_enabled =
- cpi->oxcf.loop_filter_across_tiles_h_enabled;
-#else
- cm->loop_filter_across_tiles_enabled =
- cpi->oxcf.loop_filter_across_tiles_enabled;
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
}
static void update_frame_size(AV1_COMP *cpi) {
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 7a32c77..7f4887d 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -261,14 +261,6 @@
int tile_widths[MAX_TILE_COLS];
int tile_heights[MAX_TILE_ROWS];
#endif
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- int loop_filter_across_tiles_v_enabled;
- int loop_filter_across_tiles_h_enabled;
-#else
- int loop_filter_across_tiles_enabled;
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
int max_threads;
diff --git a/av1/encoder/pickrst.c b/av1/encoder/pickrst.c
index c5754af..70e0d70 100644
--- a/av1/encoder/pickrst.c
+++ b/av1/encoder/pickrst.c
@@ -160,14 +160,6 @@
av1_loop_restoration_filter_unit(
limits, rui, &rsi->boundaries, &rlbs, tile_rect, rsc->tile_stripe0,
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- cm->loop_filter_across_tiles_v_enabled,
- cm->loop_filter_across_tiles_h_enabled,
-#else
- cm->loop_filter_across_tiles_enabled,
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
is_uv && cm->subsampling_x, is_uv && cm->subsampling_y, highbd, bit_depth,
fts->buffers[plane], fts->strides[is_uv], rsc->dst->buffers[plane],
rsc->dst->strides[is_uv], cm->rst_tmpbuf);
diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake
index ac657c8..361e742 100644
--- a/build/cmake/aom_config_defaults.cmake
+++ b/build/cmake/aom_config_defaults.cmake
@@ -102,8 +102,6 @@
set(CONFIG_FWD_KF 1 CACHE NUMBER "AV1 experiment flag.")
set(CONFIG_HASH_ME 0 CACHE NUMBER "AV1 experiment flag.")
set(CONFIG_INTER_STATS_ONLY 0 CACHE NUMBER "AV1 experiment flag.")
-set(CONFIG_LOOPFILTERING_ACROSS_TILES 1 CACHE NUMBER "AV1 experiment flag.")
-set(CONFIG_LOOPFILTERING_ACROSS_TILES_EXT 1 CACHE NUMBER "AV1 experiment flag.")
set(CONFIG_LOWPRECISION_BLEND 1 CACHE NUMBER "AV1 experiment flag.")
set(CONFIG_MAX_TILE 1 CACHE NUMBER "AV1 experiment flag.")
set(CONFIG_MONO_VIDEO 1 CACHE NUMBER "AV1 experiment flag.")
diff --git a/test/av1_ext_tile_test.cc b/test/av1_ext_tile_test.cc
index 8459c3c..6148cea 100644
--- a/test/av1_ext_tile_test.cc
+++ b/test/av1_ext_tile_test.cc
@@ -89,14 +89,6 @@
encoder->Control(AV1E_SET_SINGLE_TILE_DECODING, 1);
// Always use 64x64 max partition.
encoder->Control(AV1E_SET_SUPERBLOCK_SIZE, AOM_SUPERBLOCK_SIZE_64X64);
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- encoder->Control(AV1E_SET_TILE_LOOPFILTER_V, 0);
- encoder->Control(AV1E_SET_TILE_LOOPFILTER_H, 0);
-#else
- encoder->Control(AV1E_SET_TILE_LOOPFILTER, 0);
-#endif
-#endif
}
if (video->frame() == 1) {
diff --git a/test/ethread_test.cc b/test/ethread_test.cc
index 6c6fc01..d93967f 100644
--- a/test/ethread_test.cc
+++ b/test/ethread_test.cc
@@ -71,14 +71,6 @@
::libaom_test::Encoder *encoder) {
if (!encoder_initialized_) {
SetTileSize(encoder);
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- encoder->Control(AV1E_SET_TILE_LOOPFILTER_V, 0);
- encoder->Control(AV1E_SET_TILE_LOOPFILTER_H, 0);
-#else
- encoder->Control(AV1E_SET_TILE_LOOPFILTER, 0);
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
encoder->Control(AOME_SET_CPUUSED, set_cpu_used_);
if (encoding_mode_ != ::libaom_test::kRealTime) {
encoder->Control(AOME_SET_ENABLEAUTOALTREF, 1);
diff --git a/test/superframe_test.cc b/test/superframe_test.cc
index 6a7bc39..8a3378d 100644
--- a/test/superframe_test.cc
+++ b/test/superframe_test.cc
@@ -50,14 +50,6 @@
encoder->Control(AOME_SET_CPUUSED, 2);
encoder->Control(AV1E_SET_TILE_COLUMNS, n_tile_cols_);
encoder->Control(AV1E_SET_TILE_ROWS, n_tile_rows_);
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- encoder->Control(AV1E_SET_TILE_LOOPFILTER_V, 0);
- encoder->Control(AV1E_SET_TILE_LOOPFILTER_H, 0);
-#else
- encoder->Control(AV1E_SET_TILE_LOOPFILTER, 0);
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
}
}
diff --git a/test/tile_independence_test.cc b/test/tile_independence_test.cc
index 014ef97..a798262 100644
--- a/test/tile_independence_test.cc
+++ b/test/tile_independence_test.cc
@@ -63,14 +63,6 @@
if (video->frame() == 1) {
encoder->Control(AV1E_SET_TILE_COLUMNS, n_tile_cols_);
encoder->Control(AV1E_SET_TILE_ROWS, n_tile_rows_);
-#if CONFIG_LOOPFILTERING_ACROSS_TILES
-#if CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
- encoder->Control(AV1E_SET_TILE_LOOPFILTER_V, 0);
- encoder->Control(AV1E_SET_TILE_LOOPFILTER_H, 0);
-#else
- encoder->Control(AV1E_SET_TILE_LOOPFILTER, 0);
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES_EXT
-#endif // CONFIG_LOOPFILTERING_ACROSS_TILES
SetCpuUsed(encoder);
}
}