[cvs] / xvidcore / src / quant / quant_mpeg4.c Repository:
ViewVC logotype

Diff of /xvidcore/src/quant/quant_mpeg4.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.7, Tue Nov 26 23:44:11 2002 UTC revision 1.8, Sun Dec 15 01:21:12 2002 UTC
# Line 122  Line 122 
122    
123          intra_matrix = get_intra_matrix();          intra_matrix = get_intra_matrix();
124    
125          coeff[0] = DIV_DIV(data[0], (int32_t) dcscalar);          coeff[0] = (int16_t)(DIV_DIV(data[0], (int32_t) dcscalar));
126    
127          for (i = 1; i < 64; i++) {          for (i = 1; i < 64; i++) {
128                  if (data[i] < 0) {                  if (data[i] < 0) {
# Line 136  Line 136 
136    
137                          level = ((level << 4) + (intra_matrix[i] >> 1)) / intra_matrix[i];                          level = ((level << 4) + (intra_matrix[i] >> 1)) / intra_matrix[i];
138                          level = ((level + quantd) * mult) >> 17;                          level = ((level + quantd) * mult) >> 17;
139                          coeff[i] = level;                          coeff[i] = (int16_t)level;
140                  } else {                  } else {
141                          coeff[i] = 0;                          coeff[i] = 0;
142                  }                  }
# Line 160  Line 160 
160    
161          intra_matrix = get_intra_matrix();          intra_matrix = get_intra_matrix();
162    
163          data[0] = coeff[0] * dcscalar;          data[0] = (int16_t)(coeff[0] * dcscalar);
164          if (data[0] < -2048) {          if (data[0] < -2048) {
165                  data[0] = -2048;                  data[0] = -2048;
166          } else if (data[0] > 2047) {          } else if (data[0] > 2047) {
# Line 180  Line 180 
180                          uint32_t level = coeff[i];                          uint32_t level = coeff[i];
181    
182                          level = (level * intra_matrix[i] * quant) >> 3;                          level = (level * intra_matrix[i] * quant) >> 3;
183                          data[i] = (level <= 2047 ? level : 2047);                          data[i] = (int16_t)(level <= 2047 ? level : 2047);
184                  }                  }
185          }          }
186  }  }
# Line 221  Line 221 
221                          level = ((level << 4) + (inter_matrix[i] >> 1)) / inter_matrix[i];                          level = ((level << 4) + (inter_matrix[i] >> 1)) / inter_matrix[i];
222                          level = (level * mult) >> 17;                          level = (level * mult) >> 17;
223                          sum += level;                          sum += level;
224                          coeff[i] = level;                          coeff[i] = (int16_t)level;
225                  } else {                  } else {
226                          coeff[i] = 0;                          coeff[i] = 0;
227                  }                  }
# Line 259  Line 259 
259                          uint32_t level = coeff[i];                          uint32_t level = coeff[i];
260    
261                          level = ((2 * level + 1) * inter_matrix[i] * quant) >> 4;                          level = ((2 * level + 1) * inter_matrix[i] * quant) >> 4;
262                          data[i] = (level <= 2047 ? level : 2047);                          data[i] = (int16_t)(level <= 2047 ? level : 2047);
263                  }                  }
264    
265                  sum ^= data[i];                  sum ^= data[i];

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4