summaryrefslogtreecommitdiffstats
path: root/third_party/aom/av1/common/tile_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/aom/av1/common/tile_common.c')
-rw-r--r--third_party/aom/av1/common/tile_common.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/third_party/aom/av1/common/tile_common.c b/third_party/aom/av1/common/tile_common.c
index b8008ac2e..e9156ae32 100644
--- a/third_party/aom/av1/common/tile_common.c
+++ b/third_party/aom/av1/common/tile_common.c
@@ -86,17 +86,28 @@ void av1_update_boundary_info(const struct AV1Common *cm,
for (col = mi_col; col < (mi_col + cm->mib_size); col++) {
MODE_INFO *const mi = cm->mi + row * cm->mi_stride + col;
mi->mbmi.boundary_info = 0;
+
+ // If horizontal dependent tile is enabled, then the horizontal
+ // tile boundary is not treated as real tile boundary for loop
+ // filtering, only the horizontal tile group boundary is treated
+ // as tile boundary.
+ // Otherwise, tile group boundary is treated the same as tile boundary.
+ // Loop filtering operation is done based on the
+ // loopfilter_across_tiles_enabled flag for both tile boundary and tile
+ // group boundary.
+
if (cm->tile_cols * cm->tile_rows > 1) {
#if CONFIG_DEPENDENT_HORZTILES
+#if CONFIG_TILE_GROUPS
if (row == tile_info->mi_row_start &&
(!cm->dependent_horz_tiles || tile_info->tg_horz_boundary))
-#if CONFIG_TILE_GROUPS
#else
- if (row == tile_info->mi_row_start && !cm->dependent_horz_tiles)
+ if (row == tile_info->mi_row_start && !cm->dependent_horz_tiles)
#endif // CONFIG_TILE_GROUPS
#else
if (row == tile_info->mi_row_start)
#endif // CONFIG_DEPENDENT_HORZTILES
+
mi->mbmi.boundary_info |= TILE_ABOVE_BOUNDARY;
if (col == tile_info->mi_col_start)
mi->mbmi.boundary_info |= TILE_LEFT_BOUNDARY;