From: Fiona Glaser Date: Tue, 21 Jan 2014 21:39:33 +0000 (-0800) Subject: Fix quantization factor allocation X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e2a9662751180b7dd2fe538913282ee800445445;p=libx264 Fix quantization factor allocation We don't need to wastefully allocate quant tables above QP_MAX_SPEC; they're never used. --- diff --git a/common/common.h b/common/common.h index 6e63170f..fa8fab36 100644 --- a/common/common.h +++ b/common/common.h @@ -552,15 +552,15 @@ struct x264_t int (*dequant4_mf[4])[16]; /* [4][6][16] */ int (*dequant8_mf[4])[64]; /* [4][6][64] */ /* quantization matrix for trellis, [cqm][qp][coef] */ - int (*unquant4_mf[4])[16]; /* [4][52][16] */ - int (*unquant8_mf[4])[64]; /* [4][52][64] */ + int (*unquant4_mf[4])[16]; /* [4][QP_MAX_SPEC][16] */ + int (*unquant8_mf[4])[64]; /* [4][QP_MAX_SPEC][64] */ /* quantization matrix for deadzone */ - udctcoef (*quant4_mf[4])[16]; /* [4][52][16] */ - udctcoef (*quant8_mf[4])[64]; /* [4][52][64] */ - udctcoef (*quant4_bias[4])[16]; /* [4][52][16] */ - udctcoef (*quant8_bias[4])[64]; /* [4][52][64] */ - udctcoef (*quant4_bias0[4])[16]; /* [4][52][16] */ - udctcoef (*quant8_bias0[4])[64]; /* [4][52][64] */ + udctcoef (*quant4_mf[4])[16]; /* [4][QP_MAX_SPEC][16] */ + udctcoef (*quant8_mf[4])[64]; /* [4][QP_MAX_SPEC][64] */ + udctcoef (*quant4_bias[4])[16]; /* [4][QP_MAX_SPEC][16] */ + udctcoef (*quant8_bias[4])[64]; /* [4][QP_MAX_SPEC][64] */ + udctcoef (*quant4_bias0[4])[16]; /* [4][QP_MAX_SPEC][16] */ + udctcoef (*quant8_bias0[4])[64]; /* [4][QP_MAX_SPEC][64] */ udctcoef (*nr_offset_emergency)[4][64]; /* mv/ref cost arrays. */ diff --git a/common/set.c b/common/set.c index 53c61ca1..ee865e85 100644 --- a/common/set.c +++ b/common/set.c @@ -159,7 +159,7 @@ int x264_cqm_init( x264_t *h ) quant8_mf[i_list][q][i] = DIV(def_quant8[q][i] * 16, h->pps->scaling_list[4+i_list][i]); } } - for( int q = 0; q < QP_MAX+1; q++ ) + for( int q = 0; q <= QP_MAX_SPEC; q++ ) { int j; for( int i_list = 0; i_list < 4; i_list++ ) diff --git a/tools/checkasm.c b/tools/checkasm.c index 4239605c..2f6f2860 100644 --- a/tools/checkasm.c +++ b/tools/checkasm.c @@ -1778,7 +1778,7 @@ static int check_quant( int cpu_ref, int cpu_new ) } h->param.rc.i_qp_min = 0; - h->param.rc.i_qp_max = QP_MAX; + h->param.rc.i_qp_max = QP_MAX_SPEC; x264_cqm_init( h ); x264_quant_init( h, 0, &qf_c ); x264_quant_init( h, cpu_ref, &qf_ref );