]> granicus.if.org Git - libvpx/commitdiff
Remove the has_no_coeffs corner case
authorPeter de Rivaz <peter.derivaz@argondesign.com>
Thu, 20 Oct 2016 15:00:05 +0000 (16:00 +0100)
committerPeter de Rivaz <peter.derivaz@argondesign.com>
Thu, 20 Oct 2016 18:38:26 +0000 (19:38 +0100)
BUG=webm:1277

Change-Id: I052239e8a6c468da8704bdbbb663b59533c01be2

av1/common/blockd.h
av1/common/loopfilter.c
av1/decoder/decodeframe.c

index 3ff49433794b330381ed4f1e4cfadc8aaaa341e0..7e3533fec8a76506e132b7003b82f6cf92d5ccbf 100644 (file)
@@ -191,7 +191,6 @@ typedef struct {
   TX_SIZE inter_tx_size[MAX_MIB_SIZE][MAX_MIB_SIZE];
 #endif
   int8_t skip;
-  int8_t has_no_coeffs;
   int8_t segment_id;
 #if CONFIG_SUPERTX
   // Minimum of all segment IDs under the current supertx block.
index c8022f22af8ee4f518c4de1254e35b0d79bba512..d0b897c74702c222acfc7a2a55c7adf3e34541e3 100644 (file)
@@ -753,7 +753,7 @@ static void build_masks(const loop_filter_info_n *const lfi_n,
 
   // If the block has no coefficients and is not intra we skip applying
   // the loop filter on block edges.
-  if ((mbmi->skip || mbmi->has_no_coeffs) && is_inter_block(mbmi)) return;
+  if (mbmi->skip && is_inter_block(mbmi)) return;
 
   // Here we are adding a mask for the transform size. The transform
   // size mask is set to be correct for a 64x64 prediction block size. We
@@ -818,7 +818,7 @@ static void build_y_mask(const loop_filter_info_n *const lfi_n,
   *above_y |= above_prediction_mask[block_size] << shift_y;
   *left_y |= left_prediction_mask[block_size] << shift_y;
 
-  if ((mbmi->skip || mbmi->has_no_coeffs) && is_inter_block(mbmi)) return;
+  if (mbmi->skip && is_inter_block(mbmi)) return;
 
   *above_y |= (size_mask[block_size] & above_64x64_txform_mask[tx_size_y])
               << shift_y;
index 0fbf65920fce966aafdb8c96a4cee0ac2b90ee23..59cd670ea713472e56f0a6d67d95ceb710c752fc 100644 (file)
@@ -1163,7 +1163,6 @@ static void decode_block(AV1Decoder *const pbi, MACROBLOCKD *const xd,
 #endif  // CONFIG_EXT_PARTITION_TYPES
                          BLOCK_SIZE bsize, int bwl, int bhl) {
   AV1_COMMON *const cm = &pbi->common;
-  const int less8x8 = bsize < BLOCK_8X8;
   const int bw = 1 << (bwl - 1);
   const int bh = 1 << (bhl - 1);
   const int x_mis = AOMMIN(bw, cm->mi_cols - mi_col);
@@ -1383,9 +1382,6 @@ static void decode_block(AV1Decoder *const pbi, MACROBLOCKD *const xd,
                                                 row, col, tx_size);
 #endif
       }
-
-      if (!less8x8 && eobtotal == 0)
-        mbmi->has_no_coeffs = 1;  // skip loopfilter
     }
   }