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

Diff of /xvidcore/src/image/image.c

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

revision 1.20.2.12, Tue Dec 17 12:56:37 2002 UTC revision 1.20.2.17, Sat Jan 25 22:51:20 2003 UTC
# Line 938  Line 938 
938          return psnr_y;          return psnr_y;
939  }  }
940    
941    
942    float sse_to_PSNR(long sse, int pixels)
943    {
944            if (sse==0)
945                    return 99.99;
946    
947            return 48.131 - 10*log10((float)sse/(float)(pixels));   // log10(255*255)=4.8131
948    
949    }
950    
951    long plane_sse(uint8_t * orig,
952                       uint8_t * recon,
953                       uint16_t stride,
954                       uint16_t width,
955                       uint16_t height)
956    {
957            int diff, x, y;
958            long sse=0;
959    
960            for (y = 0; y < height; y++) {
961                    for (x = 0; x < width; x++) {
962                            diff = *(orig + x) - *(recon + x);
963                            sse += diff * diff;
964                    }
965                    orig += stride;
966                    recon += stride;
967            }
968            return sse;
969    }
970    
971  /*  /*
972    
973  #include <stdio.h>  #include <stdio.h>
# Line 1034  Line 1064 
1064  }  }
1065    
1066    
 #define ABS(X)    (((X)>0)?(X):-(X))  
1067  float  float
1068  image_mad(const IMAGE * img1,  image_mad(const IMAGE * img1,
1069                    const IMAGE * img2,                    const IMAGE * img2,
# Line 1148  Line 1177 
1177                          if (mbs[(j-1)/2*mb_stride + (i/2)].mode != MODE_NOT_CODED ||                          if (mbs[(j-1)/2*mb_stride + (i/2)].mode != MODE_NOT_CODED ||
1178                                  mbs[(j+0)/2*mb_stride + (i/2)].mode != MODE_NOT_CODED)                                  mbs[(j+0)/2*mb_stride + (i/2)].mode != MODE_NOT_CODED)
1179                          {                          {
1180                                  xvid_HFilter_31_C(img->y + (j*block - 1)*edged_width + i*block,                                  hfilter_31(img->y + (j*block - 1)*edged_width + i*block,
1181                                                                    img->y + (j*block + 0)*edged_width + i*block, nblocks);                                                                    img->y + (j*block + 0)*edged_width + i*block, nblocks);
1182                          }                          }
1183                  }                  }
# Line 1170  Line 1199 
1199          /* chroma */          /* chroma */
1200          if ((flags & XVID_DEC_DEBLOCKUV))          if ((flags & XVID_DEC_DEBLOCKUV))
1201          {          {
1202                  for (j = 0; j < mb_height; j++)                 /* horizontal deblocking */                  for (j = 1; j < mb_height; j++)         /* horizontal deblocking */
1203                    for (i = 0; i < mb_width; i++)
1204                    {
1205                            if (mbs[(j-1)*mb_stride + i].mode != MODE_NOT_CODED ||
1206                                    mbs[(j+0)*mb_stride + i].mode != MODE_NOT_CODED)
1207                            {
1208                                    hfilter_31(img->u + (j*block - 1)*edged_width2 + i*block,
1209                                                       img->u + (j*block + 0)*edged_width2 + i*block, nblocks);
1210                                    hfilter_31(img->v + (j*block - 1)*edged_width2 + i*block,
1211                                                       img->v + (j*block + 0)*edged_width2 + i*block, nblocks);
1212                            }
1213                    }
1214    
1215                    for (j = 0; j < mb_height; j++)         /* vertical deblocking */
1216                  for (i = 1; i < mb_width; i++)                  for (i = 1; i < mb_width; i++)
1217                  {                  {
1218                          if (mbs[j*mb_stride + i - 1].mode != MODE_NOT_CODED ||                          if (mbs[j*mb_stride + i - 1].mode != MODE_NOT_CODED ||
# Line 1184  Line 1226 
1226                                                     edged_width2, nblocks);                                                     edged_width2, nblocks);
1227                          }                          }
1228                  }                  }
   
                 for (j = 1; j < mb_height; j++)         /* vertical deblocking */  
                 for (i = 0; i < mb_width; i++)  
                 {  
                         if (mbs[(j-1)*mb_stride + i].mode != MODE_NOT_CODED ||  
                                 mbs[(j+0)*mb_stride + i].mode != MODE_NOT_CODED)  
                         {  
                                 hfilter_31(img->u + (j*block - 1)*edged_width2 + i*block,  
                                                    img->u + (j*block + 0)*edged_width2 + i*block, nblocks);  
                                 hfilter_31(img->v + (j*block - 1)*edged_width2 + i*block,  
                                                    img->v + (j*block + 0)*edged_width2 + i*block, nblocks);  
                         }  
                 }  
1229          }          }
1230    
1231  }  }
1232    

Legend:
Removed from v.1.20.2.12  
changed lines
  Added in v.1.20.2.17

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