[svn] / branches / dev-api-4 / xvidcore / src / quant / adapt_quant.c Repository:
ViewVC logotype

Diff of /branches/dev-api-4/xvidcore/src/quant/adapt_quant.c

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

trunk/xvidcore/src/quant/adapt_quant.c revision 499, Sat Sep 21 03:11:36 2002 UTC branches/dev-api-4/xvidcore/src/quant/adapt_quant.c revision 1053, Mon Jun 9 01:25:19 2003 UTC
# Line 1  Line 1 
 /*****************************************************************************  
  *  
  *  XVID MPEG-4 VIDEO CODEC  
  *  - Adaptive quantization functions -  
  *  
  *  Copyright(C) 2002 Peter Ross <pross@xvid.org>  
  *  
  *  This program is an implementation of a part of one or more MPEG-4  
  *  Video tools as specified in ISO/IEC 14496-2 standard.  Those intending  
  *  to use this software module in hardware or software products are  
  *  advised that its use may infringe existing patents or copyrights, and  
  *  any such use would be at such party's own risk.  The original  
  *  developer of this software module and his/her company, and subsequent  
  *  editors and their companies, will have no liability for use of this  
  *  software or modifications or derivatives thereof.  
  *  
  *  This program is free software ; you can redistribute it and/or modify  
  *  it under the terms of the GNU General Public License as published by  
  *  the Free Software Foundation ; either version 2 of the License, or  
  *  (at your option) any later version.  
  *  
  *  This program is distributed in the hope that it will be useful,  
  *  but WITHOUT ANY WARRANTY ; without even the implied warranty of  
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
  *  GNU General Public License for more details.  
  *  
  *  You should have received a copy of the GNU General Public License  
  *  along with this program ; if not, write to the Free Software  
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA  
  *  
  *  $Id: adapt_quant.c,v 1.10 2002-09-21 03:07:56 suxen_drol Exp $  
  *  
  ****************************************************************************/  
   
1  #include "../portab.h"  #include "../portab.h"
2    #include "../global.h"
3  #include "adapt_quant.h"  #include "adapt_quant.h"
4    
5  #include <stdlib.h>                             /* free, malloc */  #include <stdlib.h>                             /* free, malloc */
6    
 #define MAX(a,b)      (((a) > (b)) ? (a) : (b))  
7  #define RDIFF(a,b)    ((int)(a+0.5)-(int)(b+0.5))  #define RDIFF(a,b)    ((int)(a+0.5)-(int)(b+0.5))
8    
 /*****************************************************************************  
  * Functions  
  ****************************************************************************/  
   
9  int  int
10  normalize_quantizer_field(float *in,  normalize_quantizer_field(float *in,
11                                                    int *out,                                                    int *out,
# Line 99  Line 61 
61                                            int min_quant,                                            int min_quant,
62                                            int max_quant,                                            int max_quant,
63                                            int mb_width,                                            int mb_width,
64                                            int mb_height)        // no qstride because normalization                                            int mb_height)        /* no qstride because normalization */
65  {  {
66          int i, j, k, l;          int i, j, k, l;
67    
# Line 125  Line 87 
87          if (!(quant = (float *) malloc(mb_width * mb_height * sizeof(float))))          if (!(quant = (float *) malloc(mb_width * mb_height * sizeof(float))))
88                  return(-1);                  return(-1);
89    
90          if(!(val = (float *) malloc(mb_width * mb_height * sizeof(float)))) {          if(!(val = (float *) malloc(mb_width * mb_height * sizeof(float))))
                 free(quant);  
91                  return(-1);                  return(-1);
         }  
92    
93          for (k = 0; k < mb_height; k++) {          for (k = 0; k < mb_height; k++) {
94                  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  */
95                  {                  {
96                          quant[k * mb_width + l] = (float) framequant;                          quant[k * mb_width + l] = (float) framequant;
97    
98                          // calculate luminance-masking                          /* calculate luminance-masking */
99                          ptr = &buf[16 * k * stride + 16 * l];   // address of MB                          ptr = &buf[16 * k * stride + 16 * l];   /* address of MB */
100    
101                          val[k * mb_width + l] = 0.;                          val[k * mb_width + l] = 0.;
102    
# Line 157  Line 117 
117          if (((global <GlobalBrightThres) &&(global >GlobalDarkThres))          if (((global <GlobalBrightThres) &&(global >GlobalDarkThres))
118                  || (mid_range < MidRangeThres)) {                  || (mid_range < MidRangeThres)) {
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                                  if (val[k * mb_width + l] < DarkThres)                                  if (val[k * mb_width + l] < DarkThres)
123                                          quant[k * mb_width + l] +=                                          quant[k * mb_width + l] +=

Legend:
Removed from v.499  
changed lines
  Added in v.1053

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