[svn] / branches / release-1_3-branch / xvidcore / src / quant / quant_matrix.c Repository:
ViewVC logotype

Diff of /branches/release-1_3-branch/xvidcore/src/quant/quant_matrix.c

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

trunk/xvidcore/src/quant/quant_matrix.c revision 1713, Mon Jul 10 08:09:59 2006 UTC branches/release-1_3-branch/xvidcore/src/quant/quant_matrix.c revision 2180, Tue Nov 12 14:48:35 2019 UTC
# Line 20  Line 20 
20   *  along with this program ; if not, write to the Free Software   *  along with this program ; if not, write to the Free Software
21   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
22   *   *
23   * $Id: quant_matrix.c,v 1.15 2006-07-10 08:09:59 syskin Exp $   * $Id$
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))
# Line 114  Line 115 
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    
# Line 127  Line 128 
128    
129          for (i = 0; i < 64; i++) {          for (i = 0; i < 64; i++) {
130                  uint32_t div = intra_matrix[i]*quant;                  uint32_t div = intra_matrix[i]*quant;
131                  intra_matrix_rec[i] = ((1<<SCALEBITS) + (div>>1))/div;                  intra_matrix_rec[i] = ((uint32_t)((1<<SCALEBITS) + (div>>1)))/div;
132          }          }
133  }  }
134    
# Line 141  Line 142 
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] = FIX(inter_matrix[i]);                  inter_matrix_fix[i] = (uint16_t) FIX(inter_matrix[i]);
148                  inter_matrix_fixl[i] = FIXL(inter_matrix[i]);                  inter_matrix_fixl[i] = (uint16_t) FIXL(inter_matrix[i]);
149          }          }
150  }  }
151    

Legend:
Removed from v.1713  
changed lines
  Added in v.2180

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