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

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

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

revision 1.6, Wed Sep 4 18:44:40 2002 UTC revision 1.14.2.2, Mon Jun 9 13:55:10 2003 UTC
# Line 1  Line 1 
1    /*****************************************************************************
2     *
3     *  XVID MPEG-4 VIDEO CODEC
4     *  - Deprecated code  -
5     *
6     *  Copyright(C) 2002 Peter Ross <pross@xvid.org>
7     *               2002 Christoph Lampert <gruel@web.de>
8     *
9     *  This program is free software ; you can redistribute it and/or modify
10     *  it under the terms of the GNU General Public License as published by
11     *  the Free Software Foundation ; either version 2 of the License, or
12     *  (at your option) any later version.
13     *
14     *  This program is distributed in the hope that it will be useful,
15     *  but WITHOUT ANY WARRANTY ; without even the implied warranty of
16     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17     *  GNU General Public License for more details.
18     *
19     *  You should have received a copy of the GNU General Public License
20     *  along with this program ; if not, write to the Free Software
21     *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
22     *
23     * $Id$
24     *
25     ****************************************************************************/
26    
27  #include "../portab.h"  #include "../portab.h"
28    #include "../global.h"
29  #include "adapt_quant.h"  #include "adapt_quant.h"
30    
31  #include <stdlib.h>                             /* free, malloc */  #include <stdlib.h>                             /* free, malloc */
32    
 #define MAX(a,b)      (((a) > (b)) ? (a) : (b))  
33  #define RDIFF(a,b)    ((int)(a+0.5)-(int)(b+0.5))  #define RDIFF(a,b)    ((int)(a+0.5)-(int)(b+0.5))
34    
35  int  int
# Line 61  Line 87 
87                                            int min_quant,                                            int min_quant,
88                                            int max_quant,                                            int max_quant,
89                                            int mb_width,                                            int mb_width,
90                                            int mb_height)        // no qstride because normalization                                            int mb_height)        /* no qstride because normalization */
91  {  {
92          int i, j, k, l;          int i, j, k, l;
93    
# Line 91  Line 117 
117                  return(-1);                  return(-1);
118    
119          for (k = 0; k < mb_height; k++) {          for (k = 0; k < mb_height; k++) {
120                  for (l = 0; l < mb_width; l++)  // do this for all macroblocks individually                  for (l = 0; l < mb_width; l++)  /* do this for all macroblocks individually  */
121                  {                  {
122                          quant[k * mb_width + l] = (float) framequant;                          quant[k * mb_width + l] = (float) framequant;
123    
124                          // calculate luminance-masking                          /* calculate luminance-masking */
125                          ptr = &buf[16 * k * stride + 16 * l];   // address of MB                          ptr = &buf[16 * k * stride + 16 * l];   /* address of MB */
126    
127                          val[k * mb_width + l] = 0.;                          val[k * mb_width + l] = 0.;
128    
# Line 117  Line 143 
143          if (((global <GlobalBrightThres) &&(global >GlobalDarkThres))          if (((global <GlobalBrightThres) &&(global >GlobalDarkThres))
144                  || (mid_range < MidRangeThres)) {                  || (mid_range < MidRangeThres)) {
145                  for (k = 0; k < mb_height; k++) {                  for (k = 0; k < mb_height; k++) {
146                          for (l = 0; l < mb_width; l++)  // do this for all macroblocks individually                          for (l = 0; l < mb_width; l++)  /* do this for all macroblocks individually */
147                          {                          {
148                                  if (val[k * mb_width + l] < DarkThres)                                  if (val[k * mb_width + l] < DarkThres)
149                                          quant[k * mb_width + l] +=                                          quant[k * mb_width + l] +=
# Line 130  Line 156 
156                          }                          }
157                  }                  }
158          }          }
159    
160            i = normalize_quantizer_field(quant, intquant,
161                                                                      mb_width * mb_height,
162                                                                      min_quant, max_quant);
163    
164          free(val);          free(val);
165          free(quant);          free(quant);
166          return normalize_quantizer_field(quant, intquant, mb_width * mb_height,  
167                                                                           min_quant, max_quant);          return(i);
168    
169  }  }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.14.2.2

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