Reset PVQ chroma QM interpolation to constant identity QM
The PVQ QM interpolation code needs to be adapted to AV1 ranges.
av1_float_pvq_dist_scale_AM_5f_Jan31@2017-02-02T08:57:23.156Z
-> av1_float_pvq_dist_scale_AM_5f_Jan31_crfix@2017-02-02T15:14:40.477Z
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
1.8501 | -29.0766 | -6.6775 | 1.8421 | 1.8252 | 1.8228 | -9.9734
Change-Id: Ib72c1f8eeccf806f8d719866ce80172b6908643e
diff --git a/av1/common/pvq.c b/av1/common/pvq.c
index b3b616d..b1bb5c3 100644
--- a/av1/common/pvq.c
+++ b/av1/common/pvq.c
@@ -75,27 +75,21 @@
/* No interpolation, always use od_flat_qm_q4, but use a different scale for
each plane.
FIXME: Add interpolation and properly tune chroma. */
-const od_qm_entry OD_DEFAULT_QMS[2][3][OD_NPLANES_MAX] = {
- /* Masking disabled */
- {{{4, 256, OD_LUMA_QM_Q4[OD_MASKING_DISABLED]},
- {4, 448, OD_CHROMA_QM_Q4[OD_MASKING_DISABLED]},
- {4, 320, OD_CHROMA_QM_Q4[OD_MASKING_DISABLED]}},
- {{318, 256, OD_LUMA_QM_Q4[OD_MASKING_DISABLED]},
- {318, 140, OD_CHROMA_QM_Q4[OD_MASKING_DISABLED]},
- {318, 100, OD_CHROMA_QM_Q4[OD_MASKING_DISABLED]}},
- {{0, 0, NULL},
- {0, 0, NULL},
- {0, 0, NULL}}},
- /* Masking enabled */
- {{{4, 256, OD_LUMA_QM_Q4[OD_MASKING_ENABLED]},
- {4, 448, OD_CHROMA_QM_Q4[OD_MASKING_ENABLED]},
- {4, 320, OD_CHROMA_QM_Q4[OD_MASKING_ENABLED]}},
- {{318, 256, OD_LUMA_QM_Q4[OD_MASKING_ENABLED]},
- {318, 140, OD_CHROMA_QM_Q4[OD_MASKING_ENABLED]},
- {318, 100, OD_CHROMA_QM_Q4[OD_MASKING_ENABLED]}},
- {{0, 0, NULL},
- {0, 0, NULL},
- {0, 0, NULL}}}
+const od_qm_entry OD_DEFAULT_QMS[2][2][OD_NPLANES_MAX] = {
+ /* Masking disabled */
+ { { { 4, 256, OD_LUMA_QM_Q4[OD_MASKING_DISABLED] },
+ { 4, 256, OD_CHROMA_QM_Q4[OD_MASKING_DISABLED] },
+ { 4, 256, OD_CHROMA_QM_Q4[OD_MASKING_DISABLED] } },
+ { { 0, 0, NULL},
+ { 0, 0, NULL},
+ { 0, 0, NULL} } },
+ /* Masking enabled */
+ { { { 4, 256, OD_LUMA_QM_Q4[OD_MASKING_ENABLED] },
+ { 4, 256, OD_CHROMA_QM_Q4[OD_MASKING_ENABLED] },
+ { 4, 256, OD_CHROMA_QM_Q4[OD_MASKING_ENABLED] } },
+ { { 0, 0, NULL},
+ { 0, 0, NULL},
+ { 0, 0, NULL} } }
};
/* Constants for the beta parameter, which controls how activity masking is
diff --git a/av1/common/pvq.h b/av1/common/pvq.h
index 9afe65f..27af5bb 100644
--- a/av1/common/pvq.h
+++ b/av1/common/pvq.h
@@ -145,7 +145,7 @@
const unsigned char *qm_q4;
} od_qm_entry;
-extern const od_qm_entry OD_DEFAULT_QMS[2][3][OD_NPLANES_MAX];
+extern const od_qm_entry OD_DEFAULT_QMS[2][2][OD_NPLANES_MAX];
void od_adapt_pvq_ctx_reset(od_pvq_adapt_ctx *state, int is_keyframe);
int od_pvq_size_ctx(int n);