19 |
* along with this program ; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
20 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 |
* |
* |
22 |
* $Id: quant_mpeg.c,v 1.1.2.2 2003-10-09 18:50:22 edgomez Exp $ |
* $Id: quant_mpeg.c,v 1.1.2.3 2003-11-30 16:13:16 edgomez Exp $ |
23 |
* |
* |
24 |
****************************************************************************/ |
****************************************************************************/ |
25 |
|
|
79 |
quant_mpeg_intra_c(int16_t * coeff, |
quant_mpeg_intra_c(int16_t * coeff, |
80 |
const int16_t * data, |
const int16_t * data, |
81 |
const uint32_t quant, |
const uint32_t quant, |
82 |
const uint32_t dcscalar) |
const uint32_t dcscalar, |
83 |
|
const uint16_t * mpeg_quant_matrices) |
84 |
{ |
{ |
85 |
const uint32_t quantd = ((VM18P * quant) + (VM18Q / 2)) / VM18Q; |
const uint32_t quantd = ((VM18P * quant) + (VM18Q / 2)) / VM18Q; |
86 |
const uint32_t mult = multipliers[quant]; |
const uint32_t mult = multipliers[quant]; |
87 |
const int16_t *intra_matrix = get_intra_matrix(); |
const uint16_t *intra_matrix = get_intra_matrix(mpeg_quant_matrices); |
88 |
int i; |
int i; |
89 |
|
|
90 |
coeff[0] = DIV_DIV(data[0], (int32_t) dcscalar); |
coeff[0] = DIV_DIV(data[0], (int32_t) dcscalar); |
120 |
uint32_t |
uint32_t |
121 |
quant_mpeg_inter_c(int16_t * coeff, |
quant_mpeg_inter_c(int16_t * coeff, |
122 |
const int16_t * data, |
const int16_t * data, |
123 |
const uint32_t quant) |
const uint32_t quant, |
124 |
|
const uint16_t * mpeg_quant_matrices) |
125 |
{ |
{ |
126 |
const uint32_t mult = multipliers[quant]; |
const uint32_t mult = multipliers[quant]; |
127 |
const int16_t *inter_matrix = get_inter_matrix(); |
const uint16_t *inter_matrix = get_inter_matrix(mpeg_quant_matrices); |
128 |
uint32_t sum = 0; |
uint32_t sum = 0; |
129 |
int i; |
int i; |
130 |
|
|
160 |
dequant_mpeg_intra_c(int16_t * data, |
dequant_mpeg_intra_c(int16_t * data, |
161 |
const int16_t * coeff, |
const int16_t * coeff, |
162 |
const uint32_t quant, |
const uint32_t quant, |
163 |
const uint32_t dcscalar) |
const uint32_t dcscalar, |
164 |
|
const uint16_t * mpeg_quant_matrices) |
165 |
{ |
{ |
166 |
const int16_t *intra_matrix = get_intra_matrix(); |
const uint16_t *intra_matrix = get_intra_matrix(mpeg_quant_matrices); |
167 |
int i; |
int i; |
168 |
|
|
169 |
data[0] = coeff[0] * dcscalar; |
data[0] = coeff[0] * dcscalar; |
200 |
uint32_t |
uint32_t |
201 |
dequant_mpeg_inter_c(int16_t * data, |
dequant_mpeg_inter_c(int16_t * data, |
202 |
const int16_t * coeff, |
const int16_t * coeff, |
203 |
const uint32_t quant) |
const uint32_t quant, |
204 |
|
const uint16_t * mpeg_quant_matrices) |
205 |
{ |
{ |
206 |
uint32_t sum = 0; |
uint32_t sum = 0; |
207 |
const int16_t *inter_matrix = get_inter_matrix(); |
const uint16_t *inter_matrix = get_inter_matrix(mpeg_quant_matrices); |
208 |
int i; |
int i; |
209 |
|
|
210 |
for (i = 0; i < 64; i++) { |
for (i = 0; i < 64; i++) { |