mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 1430188: av1: Mark AOM_QM matricies const. r=kinetik.
These large (200 KB) static stables are functionally read-only. Marking them const moves them to the read-only section of shared libraries, reducing memory footprint when multiple application processes are running simultaneously. This is a backport of the upstream commit 90243cf9e670. MozReview-Commit-ID: 319jjpgNlTI --HG-- extra : rebase_source : d085a344d5e8aee73dfb14ca39c93cd2eea957a6
This commit is contained in:
parent
86a6393324
commit
05f04d05ef
12
third_party/aom/av1/common/onyxc_int.h
vendored
12
third_party/aom/av1/common/onyxc_int.h
vendored
@ -310,15 +310,15 @@ typedef struct AV1Common {
|
||||
|
||||
#if CONFIG_AOM_QM
|
||||
// Global quant matrix tables
|
||||
qm_val_t *giqmatrix[NUM_QM_LEVELS][2][2][TX_SIZES_ALL];
|
||||
qm_val_t *gqmatrix[NUM_QM_LEVELS][2][2][TX_SIZES_ALL];
|
||||
const qm_val_t *giqmatrix[NUM_QM_LEVELS][2][2][TX_SIZES_ALL];
|
||||
const qm_val_t *gqmatrix[NUM_QM_LEVELS][2][2][TX_SIZES_ALL];
|
||||
|
||||
// Local quant matrix tables for each frame
|
||||
qm_val_t *y_iqmatrix[MAX_SEGMENTS][2][TX_SIZES_ALL];
|
||||
qm_val_t *uv_iqmatrix[MAX_SEGMENTS][2][TX_SIZES_ALL];
|
||||
const qm_val_t *y_iqmatrix[MAX_SEGMENTS][2][TX_SIZES_ALL];
|
||||
const qm_val_t *uv_iqmatrix[MAX_SEGMENTS][2][TX_SIZES_ALL];
|
||||
// Encoder
|
||||
qm_val_t *y_qmatrix[MAX_SEGMENTS][2][TX_SIZES_ALL];
|
||||
qm_val_t *uv_qmatrix[MAX_SEGMENTS][2][TX_SIZES_ALL];
|
||||
const qm_val_t *y_qmatrix[MAX_SEGMENTS][2][TX_SIZES_ALL];
|
||||
const qm_val_t *uv_qmatrix[MAX_SEGMENTS][2][TX_SIZES_ALL];
|
||||
|
||||
int using_qmatrix;
|
||||
int min_qmlevel;
|
||||
|
12
third_party/aom/av1/common/quant_common.c
vendored
12
third_party/aom/av1/common/quant_common.c
vendored
@ -342,11 +342,11 @@ int av1_get_qindex(const struct segmentation *seg, int segment_id,
|
||||
}
|
||||
|
||||
#if CONFIG_AOM_QM
|
||||
qm_val_t *aom_iqmatrix(AV1_COMMON *cm, int qmlevel, int is_chroma,
|
||||
const qm_val_t *aom_iqmatrix(AV1_COMMON *cm, int qmlevel, int is_chroma,
|
||||
TX_SIZE tx_size, int is_intra) {
|
||||
return &cm->giqmatrix[qmlevel][!!is_chroma][!!is_intra][tx_size][0];
|
||||
}
|
||||
qm_val_t *aom_qmatrix(AV1_COMMON *cm, int qmlevel, int is_chroma,
|
||||
const qm_val_t *aom_qmatrix(AV1_COMMON *cm, int qmlevel, int is_chroma,
|
||||
TX_SIZE tx_size, int is_intra) {
|
||||
return &cm->gqmatrix[qmlevel][!!is_chroma][!!is_intra][tx_size][0];
|
||||
}
|
||||
@ -356,8 +356,8 @@ qm_val_t *aom_qmatrix(AV1_COMMON *cm, int qmlevel, int is_chroma,
|
||||
#else
|
||||
#define QM_TOTAL_SIZE 3344
|
||||
#endif
|
||||
static uint16_t wt_matrix_ref[NUM_QM_LEVELS][2][QM_TOTAL_SIZE];
|
||||
static uint16_t iwt_matrix_ref[NUM_QM_LEVELS][2][QM_TOTAL_SIZE];
|
||||
static const uint16_t wt_matrix_ref[NUM_QM_LEVELS][2][QM_TOTAL_SIZE];
|
||||
static const uint16_t iwt_matrix_ref[NUM_QM_LEVELS][2][QM_TOTAL_SIZE];
|
||||
|
||||
void aom_qm_init(AV1_COMMON *cm) {
|
||||
int q, c, f, t;
|
||||
@ -399,7 +399,7 @@ void aom_qm_init(AV1_COMMON *cm) {
|
||||
frequency domain according to different nominal viewing
|
||||
distances.
|
||||
*/
|
||||
static uint16_t iwt_matrix_ref[NUM_QM_LEVELS][2][QM_TOTAL_SIZE] = {
|
||||
static const uint16_t iwt_matrix_ref[NUM_QM_LEVELS][2][QM_TOTAL_SIZE] = {
|
||||
{
|
||||
{ /* Luma */
|
||||
#if CONFIG_CHROMA_2X2
|
||||
@ -7295,7 +7295,7 @@ static uint16_t iwt_matrix_ref[NUM_QM_LEVELS][2][QM_TOTAL_SIZE] = {
|
||||
},
|
||||
};
|
||||
|
||||
static uint16_t wt_matrix_ref[NUM_QM_LEVELS][2][QM_TOTAL_SIZE] = {
|
||||
static const uint16_t wt_matrix_ref[NUM_QM_LEVELS][2][QM_TOTAL_SIZE] = {
|
||||
{
|
||||
{ /* Luma */
|
||||
#if CONFIG_CHROMA_2X2
|
||||
|
4
third_party/aom/av1/common/quant_common.h
vendored
4
third_party/aom/av1/common/quant_common.h
vendored
@ -51,9 +51,9 @@ static INLINE int aom_get_qmlevel(int qindex, int first, int last) {
|
||||
return first + (qindex * (last + 1 - first)) / QINDEX_RANGE;
|
||||
}
|
||||
void aom_qm_init(struct AV1Common *cm);
|
||||
qm_val_t *aom_iqmatrix(struct AV1Common *cm, int qindex, int comp,
|
||||
const qm_val_t *aom_iqmatrix(struct AV1Common *cm, int qindex, int comp,
|
||||
TX_SIZE tx_size, int is_intra);
|
||||
qm_val_t *aom_qmatrix(struct AV1Common *cm, int qindex, int comp,
|
||||
const qm_val_t *aom_qmatrix(struct AV1Common *cm, int qindex, int comp,
|
||||
TX_SIZE tx_size, int is_intra);
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user