--- quant_mpeg.c 2003/10/07 13:02:35 1.1.2.1 +++ quant_mpeg.c 2004/03/22 22:36:24 1.2 @@ -19,7 +19,7 @@ * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: quant_mpeg.c,v 1.1.2.1 2003/10/07 13:02:35 edgomez Exp $ + * $Id: quant_mpeg.c,v 1.2 2004/03/22 22:36:24 edgomez Exp $ * ****************************************************************************/ @@ -79,16 +79,15 @@ quant_mpeg_intra_c(int16_t * coeff, const int16_t * data, const uint32_t quant, - const uint32_t dcscalar) + const uint32_t dcscalar, + const uint16_t * mpeg_quant_matrices) { const uint32_t quantd = ((VM18P * quant) + (VM18Q / 2)) / VM18Q; const uint32_t mult = multipliers[quant]; - const int16_t *intra_matrix = get_intra_matrix(); - uint32_t sum = 0; + const uint16_t *intra_matrix = get_intra_matrix(mpeg_quant_matrices); int i; coeff[0] = DIV_DIV(data[0], (int32_t) dcscalar); - sum += coeff[0]; for (i = 1; i < 64; i++) { if (data[i] < 0) { @@ -96,21 +95,19 @@ level = ((level << 4) + (intra_matrix[i] >> 1)) / intra_matrix[i]; level = ((level + quantd) * mult) >> SCALEBITS; - sum += level; coeff[i] = -(int16_t) level; } else if (data[i] > 0) { uint32_t level = data[i]; level = ((level << 4) + (intra_matrix[i] >> 1)) / intra_matrix[i]; level = ((level + quantd) * mult) >> SCALEBITS; - sum += level; coeff[i] = level; } else { coeff[i] = 0; } } - return(sum); + return(0); } /* quantize inter-block @@ -123,10 +120,11 @@ uint32_t quant_mpeg_inter_c(int16_t * coeff, const int16_t * data, - const uint32_t quant) + const uint32_t quant, + const uint16_t * mpeg_quant_matrices) { const uint32_t mult = multipliers[quant]; - const int16_t *inter_matrix = get_inter_matrix(); + const uint16_t *inter_matrix = get_inter_matrix(mpeg_quant_matrices); uint32_t sum = 0; int i; @@ -162,9 +160,10 @@ dequant_mpeg_intra_c(int16_t * data, const int16_t * coeff, const uint32_t quant, - const uint32_t dcscalar) + const uint32_t dcscalar, + const uint16_t * mpeg_quant_matrices) { - const int16_t *intra_matrix = get_intra_matrix(); + const uint16_t *intra_matrix = get_intra_matrix(mpeg_quant_matrices); int i; data[0] = coeff[0] * dcscalar; @@ -201,10 +200,11 @@ uint32_t dequant_mpeg_inter_c(int16_t * data, const int16_t * coeff, - const uint32_t quant) + const uint32_t quant, + const uint16_t * mpeg_quant_matrices) { uint32_t sum = 0; - const int16_t *inter_matrix = get_inter_matrix(); + const uint16_t *inter_matrix = get_inter_matrix(mpeg_quant_matrices); int i; for (i = 0; i < 64; i++) {