--- branches/release-1_3-branch/xvidcore/src/quant/quant_matrix.c 2019/11/12 14:41:36 2179 +++ branches/release-1_3-branch/xvidcore/src/quant/quant_matrix.c 2019/11/12 14:48:35 2180 @@ -24,6 +24,7 @@ * ****************************************************************************/ +#include "../global.h" #include "quant_matrix.h" #define FIX(X) (((X)==1) ? 0xFFFF : ((1UL << 16) / (X) + 1)) @@ -114,7 +115,7 @@ uint16_t *intra_matrix = mpeg_quant_matrices + 0*64; for (i = 0; i < 64; i++) { - intra_matrix[i] = (!i) ? (uint16_t)8: (uint16_t)matrix[i]; + intra_matrix[i] = (!i) ? (uint16_t)8: (uint16_t)MAX(1, matrix[i]); } } @@ -141,7 +142,7 @@ uint16_t *inter_matrix_fixl = mpeg_quant_matrices + 7*64; for (i = 0; i < 64; i++) { - inter_matrix1[i] = ((inter_matrix[i] = (int16_t) matrix[i])>>1); + inter_matrix1[i] = ((inter_matrix[i] = (int16_t)MAX(1, (matrix[i])>>1))); inter_matrix1[i] += ((inter_matrix[i] == 1) ? 1: 0); inter_matrix_fix[i] = (uint16_t) FIX(inter_matrix[i]); inter_matrix_fixl[i] = (uint16_t) FIXL(inter_matrix[i]);