122 |
int16_t qcoeff[6 * 64], |
int16_t qcoeff[6 * 64], |
123 |
int16_t data[6*64]) |
int16_t data[6*64]) |
124 |
{ |
{ |
|
int mpeg; |
|
125 |
int scaler_lum, scaler_chr; |
int scaler_lum, scaler_chr; |
126 |
|
quant_intraFuncPtr quant; |
127 |
|
|
128 |
quant_intraFuncPtr const quant[2] = |
/* check if quant matrices need to be re-initialized with new quant */ |
129 |
{ |
if (pParam->vol_flags & XVID_VOL_MPEGQUANT) { |
130 |
quant_h263_intra, |
if (pParam->last_quant_initialized_intra != pMB->quant) { |
131 |
quant_mpeg_intra |
init_intra_matrix(pParam->mpeg_quant_matrices, pMB->quant); |
132 |
}; |
} |
133 |
|
quant = quant_mpeg_intra; |
134 |
|
} else { |
135 |
|
quant = quant_h263_intra; |
136 |
|
} |
137 |
|
|
|
mpeg = !!(pParam->vol_flags & XVID_VOL_MPEGQUANT); |
|
138 |
scaler_lum = get_dc_scaler(pMB->quant, 1); |
scaler_lum = get_dc_scaler(pMB->quant, 1); |
139 |
scaler_chr = get_dc_scaler(pMB->quant, 0); |
scaler_chr = get_dc_scaler(pMB->quant, 0); |
140 |
|
|
141 |
/* Quantize the block */ |
/* Quantize the block */ |
142 |
start_timer(); |
start_timer(); |
143 |
quant[mpeg](&data[0 * 64], &qcoeff[0 * 64], pMB->quant, scaler_lum, pParam->mpeg_quant_matrices); |
quant(&data[0 * 64], &qcoeff[0 * 64], pMB->quant, scaler_lum, pParam->mpeg_quant_matrices); |
144 |
quant[mpeg](&data[1 * 64], &qcoeff[1 * 64], pMB->quant, scaler_lum, pParam->mpeg_quant_matrices); |
quant(&data[1 * 64], &qcoeff[1 * 64], pMB->quant, scaler_lum, pParam->mpeg_quant_matrices); |
145 |
quant[mpeg](&data[2 * 64], &qcoeff[2 * 64], pMB->quant, scaler_lum, pParam->mpeg_quant_matrices); |
quant(&data[2 * 64], &qcoeff[2 * 64], pMB->quant, scaler_lum, pParam->mpeg_quant_matrices); |
146 |
quant[mpeg](&data[3 * 64], &qcoeff[3 * 64], pMB->quant, scaler_lum, pParam->mpeg_quant_matrices); |
quant(&data[3 * 64], &qcoeff[3 * 64], pMB->quant, scaler_lum, pParam->mpeg_quant_matrices); |
147 |
quant[mpeg](&data[4 * 64], &qcoeff[4 * 64], pMB->quant, scaler_chr, pParam->mpeg_quant_matrices); |
quant(&data[4 * 64], &qcoeff[4 * 64], pMB->quant, scaler_chr, pParam->mpeg_quant_matrices); |
148 |
quant[mpeg](&data[5 * 64], &qcoeff[5 * 64], pMB->quant, scaler_chr, pParam->mpeg_quant_matrices); |
quant(&data[5 * 64], &qcoeff[5 * 64], pMB->quant, scaler_chr, pParam->mpeg_quant_matrices); |
149 |
stop_quant_timer(); |
stop_quant_timer(); |
150 |
} |
} |
151 |
|
|