[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 1054, Mon Jun 9 13:55:56 2003 UTC
# Line 1  Line 1 
1  /*****************************************************************************  /*****************************************************************************
2   *   *
3   *  XVID MPEG-4 VIDEO CODEC   *  XVID MPEG-4 VIDEO CODEC
4   *  - Adaptive quantization functions -   *  - Deprecated code  -
5   *   *
6   *  Copyright(C) 2002 Peter Ross <pross@xvid.org>   *  Copyright(C) 2002 Peter Ross <pross@xvid.org>
7   *   *               2002 Christoph Lampert <gruel@web.de>
  *  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.  
8   *   *
9   *  This program is free software ; you can redistribute it and/or modify   *  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   *  it under the terms of the GNU General Public License as published by
# Line 28  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: adapt_quant.c,v 1.10 2002-09-21 03:07:56 suxen_drol Exp $   * $Id: adapt_quant.c,v 1.14.2.2 2003-06-09 13:55:10 edgomez Exp $
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    
 /*****************************************************************************  
  * Functions  
  ****************************************************************************/  
   
35  int  int
36  normalize_quantizer_field(float *in,  normalize_quantizer_field(float *in,
37                                                    int *out,                                                    int *out,
# Line 99  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 125  Line 113 
113          if (!(quant = (float *) malloc(mb_width * mb_height * sizeof(float))))          if (!(quant = (float *) malloc(mb_width * mb_height * sizeof(float))))
114                  return(-1);                  return(-1);
115    
116          if(!(val = (float *) malloc(mb_width * mb_height * sizeof(float)))) {          if(!(val = (float *) malloc(mb_width * mb_height * sizeof(float))))
                 free(quant);  
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 157  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] +=

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

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