CWG-D043: Disable a rect pruning condition when H_PART is on
The original condition only applied to 3-way partition to reduce syntax
redundancy. This commit moves it under `!CONFIG_H_PART` flag.
Performance
| CONFIG | PSNR | Enc Time | Dec Time |
| :----: | :------: | :------: | :------: |
| AI | -0.17% | 110% | 101% |
| RA | -0.12% | 102% | 101% |
| LD | -0.15% | 102% | 102% |
| F1 | -0.13% | 109.3% | 100.8% |
| F2 | -0.11% | 110.0% | 100.4% |
| AS | -0.08% | 101.2% | 99.9% |
STATS_CHANGED
diff --git a/av1/encoder/partition_search.c b/av1/encoder/partition_search.c
index 9787a8e..dc0c788 100644
--- a/av1/encoder/partition_search.c
+++ b/av1/encoder/partition_search.c
@@ -3693,15 +3693,14 @@
mi_pos_rect[i][0][i]))
continue;
-#if CONFIG_EXT_RECUR_PARTITIONS
+#if CONFIG_EXT_RECUR_PARTITIONS && !CONFIG_H_PARTITION
if (pc_tree->parent) {
if ((pc_tree->parent->horizontal3[1] == pc_tree && i == HORZ) ||
(pc_tree->parent->vertical3[1] == pc_tree && i == VERT)) {
continue;
}
}
-
-#endif // CONFIG_EXT_RECUR_PARTITIONS
+#endif // CONFIG_EXT_RECUR_PARTITIONS && !CONFIG_H_PARTITION
// Sub-partition idx.
const PARTITION_TYPE partition_type = rect_partition_type[i];
@@ -3722,6 +3721,7 @@
}
PC_TREE **sub_tree = (i == HORZ) ? pc_tree->horizontal : pc_tree->vertical;
+ assert(sub_tree);
const int num_planes = av1_num_planes(cm);
for (int idx = 0; idx < SUB_PARTITIONS_RECT; idx++) {