AOM_QM: redesign matrices and support CB_4X4 and RECT-TX. All matrices are derived by subsampling 32x32 and 32x16 matrices. Inter and intra matrices now use the same matrix set. BUG=aomedia:520 AWCY results for default setting (qm-min=5, qm-max=9): PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 2.75 | 7.98 | - | -3.52 | 0.73 | -2.21 | 4.22 Change-Id: I8414d19eaf50cfe80d4fe2290da6cdf4ebb406cb
diff --git a/av1/common/quant_common.h b/av1/common/quant_common.h index 3f44242..f28ffe7 100644 --- a/av1/common/quant_common.h +++ b/av1/common/quant_common.h
@@ -29,11 +29,11 @@ // Total number of QM sets stored #define QM_LEVEL_BITS 4 #define NUM_QM_LEVELS (1 << QM_LEVEL_BITS) -/* Offset into the list of QMs. Actual number of levels used is - (NUM_QM_LEVELS-AOM_QM_OFFSET) - Lower value of AOM_QM_OFFSET implies more heavily weighted matrices.*/ -#define DEFAULT_QM_FIRST (NUM_QM_LEVELS / 2) -#define DEFAULT_QM_LAST (NUM_QM_LEVELS - 1) +/* Range of QMS is between first and last value, with offset applied to inter + * blocks*/ +#define DEFAULT_QM_FIRST 5 +#define DEFAULT_QM_LAST 9 +#define DEFAULT_QM_INTER_OFFSET 0 #endif struct AV1Common; @@ -54,9 +54,9 @@ } void aom_qm_init(struct AV1Common *cm); qm_val_t *aom_iqmatrix(struct AV1Common *cm, int qindex, int comp, - int log2sizem2, int is_intra); + TX_SIZE tx_size, int is_intra); qm_val_t *aom_qmatrix(struct AV1Common *cm, int qindex, int comp, - int log2sizem2, int is_intra); + TX_SIZE tx_size, int is_intra); #endif #if CONFIG_NEW_QUANT