Reverse order of CLPF and dering
Low latency:
PSNR YCbCr: -0.15% 0.11% 0.12%
PSNRHVS: -0.25%
SSIM: -0.26%
MSSSIM: -0.26%
CIEDE2000: -0.03%
High latency:
PSNR YCbCr: -0.18% 0.18% 0.07%
PSNRHVS: -0.20%
SSIM: -0.21%
MSSSIM: -0.21%
CIEDE2000: -0.03%
Change-Id: Ieb86d9ba353220de6454bdc15cea825944b6385b
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index dce5403..0edc2c3 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -2092,6 +2092,16 @@
update_partition_context(xd, mi_row, mi_col, subsize, bsize);
#endif // CONFIG_EXT_PARTITION_TYPES
+#if CONFIG_DERING
+ if (bsize == BLOCK_64X64 && cm->dering_level != 0 &&
+ !sb_all_skip(cm, mi_row, mi_col)) {
+ aom_write_literal(
+ w,
+ cm->mi_grid_visible[mi_row * cm->mi_stride + mi_col]->mbmi.dering_gain,
+ DERING_REFINEMENT_BITS);
+ }
+#endif
+
#if CONFIG_CLPF
if (bsize == BLOCK_64X64 && cm->clpf_blocks && cm->clpf_strength_y &&
cm->clpf_size != CLPF_NOSIZE) {
@@ -2122,16 +2132,6 @@
aom_write_literal(w, cm->clpf_blocks[br], 1);
}
#endif
-
-#if CONFIG_DERING
- if (bsize == BLOCK_64X64 && cm->dering_level != 0 &&
- !sb_all_skip(cm, mi_row, mi_col)) {
- aom_write_literal(
- w,
- cm->mi_grid_visible[mi_row * cm->mi_stride + mi_col]->mbmi.dering_gain,
- DERING_REFINEMENT_BITS);
- }
-#endif
}
static void write_modes(AV1_COMP *const cpi, const TileInfo *const tile,
@@ -3570,12 +3570,12 @@
#endif // CONFIG_EXT_PARTITION
encode_loopfilter(cm, wb);
-#if CONFIG_CLPF
- encode_clpf(cm, wb);
-#endif
#if CONFIG_DERING
encode_dering(cm->dering_level, wb);
#endif // CONFIG_DERING
+#if CONFIG_CLPF
+ encode_clpf(cm, wb);
+#endif
#if CONFIG_LOOP_RESTORATION
encode_restoration_mode(cm, wb);
#endif // CONFIG_LOOP_RESTORATION