24 |
* |
* |
25 |
****************************************************************************/ |
****************************************************************************/ |
26 |
|
|
27 |
|
#include "../global.h" |
28 |
#include "quant_matrix.h" |
#include "quant_matrix.h" |
29 |
|
|
30 |
#define FIX(X) (((X)==1) ? 0xFFFF : ((1UL << 16) / (X) + 1)) |
#define FIX(X) (((X)==1) ? 0xFFFF : ((1UL << 16) / (X) + 1)) |
115 |
uint16_t *intra_matrix = mpeg_quant_matrices + 0*64; |
uint16_t *intra_matrix = mpeg_quant_matrices + 0*64; |
116 |
|
|
117 |
for (i = 0; i < 64; i++) { |
for (i = 0; i < 64; i++) { |
118 |
intra_matrix[i] = (!i) ? (uint16_t)8: (uint16_t)matrix[i]; |
intra_matrix[i] = (!i) ? (uint16_t)8: (uint16_t)MAX(1, matrix[i]); |
119 |
} |
} |
120 |
} |
} |
121 |
|
|
142 |
uint16_t *inter_matrix_fixl = mpeg_quant_matrices + 7*64; |
uint16_t *inter_matrix_fixl = mpeg_quant_matrices + 7*64; |
143 |
|
|
144 |
for (i = 0; i < 64; i++) { |
for (i = 0; i < 64; i++) { |
145 |
inter_matrix1[i] = ((inter_matrix[i] = (int16_t) matrix[i])>>1); |
inter_matrix1[i] = ((inter_matrix[i] = (int16_t)MAX(1, (matrix[i])>>1))); |
146 |
inter_matrix1[i] += ((inter_matrix[i] == 1) ? 1: 0); |
inter_matrix1[i] += ((inter_matrix[i] == 1) ? 1: 0); |
147 |
inter_matrix_fix[i] = (uint16_t) FIX(inter_matrix[i]); |
inter_matrix_fix[i] = (uint16_t) FIX(inter_matrix[i]); |
148 |
inter_matrix_fixl[i] = (uint16_t) FIXL(inter_matrix[i]); |
inter_matrix_fixl[i] = (uint16_t) FIXL(inter_matrix[i]); |