]> granicus.if.org Git - libvpx/commitdiff
Fix clpf and dering signalling when used with ext-partition-types
authorDavid Barker <david.barker@argondesign.com>
Wed, 26 Oct 2016 13:54:06 +0000 (14:54 +0100)
committerDavid Barker <david.barker@argondesign.com>
Thu, 27 Oct 2016 13:19:01 +0000 (13:19 +0000)
Previously, when ext-partition-types and either clpf or dering were
enabled, the signalling for clpf/dering would not be encoded or decoded,
as the code to do so was inside a #if !CONFIG_EXT_PARTITION_TYPES block.
This caused many tests (eg, AV1/EndToEndTestLarge.EndToEndPSNRTest/0)
to fail with encode/decode mismatches.

Change-Id: If1742deb1812877813b2c3e93a048430f9a504ba

av1/decoder/decodeframe.c
av1/encoder/bitstream.c

index b3617d1aeb8117e2c996b65e8fdcbcef34e33a9e..199b4406017ea3c75cd507d56a6c31c3cb4012b0 100644 (file)
@@ -1775,6 +1775,7 @@ static void decode_partition(AV1Decoder *const pbi, MACROBLOCKD *const xd,
   if (bsize >= BLOCK_8X8 &&
       (bsize == BLOCK_8X8 || partition != PARTITION_SPLIT))
     dec_update_partition_context(xd, mi_row, mi_col, subsize, num_8x8_wh);
+#endif  // CONFIG_EXT_PARTITION_TYPES
 
 #if CONFIG_CLPF
   if (bsize == BLOCK_64X64 && cm->clpf_strength_y &&
@@ -1812,6 +1813,7 @@ static void decode_partition(AV1Decoder *const pbi, MACROBLOCKD *const xd,
     }
   }
 #endif
+
 #if CONFIG_DERING
   if (bsize == BLOCK_64X64) {
     if (cm->dering_level != 0 && !sb_all_skip(cm, mi_row, mi_col)) {
@@ -1823,7 +1825,6 @@ static void decode_partition(AV1Decoder *const pbi, MACROBLOCKD *const xd,
     }
   }
 #endif
-#endif  // CONFIG_EXT_PARTITION_TYPES
 }
 
 #if !CONFIG_ANS
index 899aa814a46e87bfab910de90878aa9796fe6050..82ca3b6c0ee85f4075da5e5f7c984b373d3b2c8f 100644 (file)
@@ -2058,6 +2058,7 @@ static void write_modes_sb(AV1_COMP *const cpi, const TileInfo *const tile,
   if (bsize >= BLOCK_8X8 &&
       (bsize == BLOCK_8X8 || partition != PARTITION_SPLIT))
     update_partition_context(xd, mi_row, mi_col, subsize, bsize);
+#endif  // CONFIG_EXT_PARTITION_TYPES
 
 #if CONFIG_CLPF
   if (bsize == BLOCK_64X64 && cm->clpf_blocks && cm->clpf_strength_y &&
@@ -2099,7 +2100,6 @@ static void write_modes_sb(AV1_COMP *const cpi, const TileInfo *const tile,
         DERING_REFINEMENT_BITS);
   }
 #endif
-#endif  // CONFIG_EXT_PARTITION_TYPES
 }
 
 static void write_modes(AV1_COMP *const cpi, const TileInfo *const tile,