[svn] / branches / dev-api-3 / xvidcore / src / image / image.c Repository:
ViewVC logotype

Diff of /branches/dev-api-3/xvidcore/src/image/image.c

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

revision 701, Mon Dec 9 10:47:05 2002 UTC revision 702, Tue Dec 10 11:13:50 2002 UTC
# Line 59  Line 59 
59  #include "image.h"  #include "image.h"
60  #include "colorspace.h"  #include "colorspace.h"
61  #include "interpolate8x8.h"  #include "interpolate8x8.h"
62    #include "reduced.h"
63  #include "../divx4.h"  #include "../divx4.h"
64  #include "../utils/mem_align.h"  #include "../utils/mem_align.h"
65    
# Line 1055  Line 1056 
1056      sV += std2;      sV += std2;
1057    }    }
1058  }  }
1059    
1060    
1061    /* reduced resolution deblocking filter */
1062    void
1063    image_deblock_rrv(IMAGE * img, int edged_width,
1064                                    const MACROBLOCK * mbs, int mb_width, int mb_height, int mb_stride)
1065    {
1066            const int edged_width2 = edged_width /2;
1067            int i,j;
1068    
1069            /* horizontal deblocking */
1070    
1071            for (j = 1; j < mb_height*2; j++)       // luma: j,i in block units
1072            for (i = 0; i < mb_width*2; i++)
1073            {
1074                    if (mbs[(j-1)/2*mb_stride + (i/2)].mode != MODE_NOT_CODED ||
1075                            mbs[(j+0)/2*mb_stride + (i/2)].mode != MODE_NOT_CODED)
1076                    {
1077                            xvid_HFilter_31_C(img->y + (j*16 - 1)*edged_width + i*16,
1078                                                              img->y + (j*16 + 0)*edged_width + i*16, 2);
1079                    }
1080            }
1081    
1082            for (j = 1; j < mb_height; j++) // chroma
1083            for (i = 0; i < mb_width; i++)
1084            {
1085                    if (mbs[(j-1)*mb_stride + i].mode != MODE_NOT_CODED ||
1086                            mbs[(j+0)*mb_stride + i].mode != MODE_NOT_CODED)
1087                    {
1088                            hfilter_31(img->u + (j*16 - 1)*edged_width2 + i*16,
1089                                               img->u + (j*16 + 0)*edged_width2 + i*16, 2);
1090                            hfilter_31(img->v + (j*16 - 1)*edged_width2 + i*16,
1091                                               img->v + (j*16 + 0)*edged_width2 + i*16, 2);
1092                    }
1093            }
1094    
1095            /* vertical deblocking */
1096    
1097            for (j = 0; j < mb_height*2; j++)               // luma: i,j in block units
1098            for (i = 1; i < mb_width*2; i++)
1099            {
1100                    if (mbs[(j/2)*mb_stride + (i-1)/2].mode != MODE_NOT_CODED ||
1101                            mbs[(j/2)*mb_stride + (i+0)/2].mode != MODE_NOT_CODED)
1102                    {
1103                            vfilter_31(img->y + (j*16)*edged_width + i*16 - 1,
1104                                               img->y + (j*16)*edged_width + i*16 + 0,
1105                                               edged_width, 2);
1106                    }
1107            }
1108    
1109            for (j = 0; j < mb_height; j++) // chroma
1110            for (i = 1; i < mb_width; i++)
1111            {
1112                    if (mbs[j*mb_stride + i - 1].mode != MODE_NOT_CODED ||
1113                            mbs[j*mb_stride + i + 0].mode != MODE_NOT_CODED)
1114                    {
1115                            vfilter_31(img->u + (j*16)*edged_width2 + i*16 - 1,
1116                                               img->u + (j*16)*edged_width2 + i*16 + 0,
1117                                               edged_width2, 2);
1118                            vfilter_31(img->v + (j*16)*edged_width2 + i*16 - 1,
1119                                               img->v + (j*16)*edged_width2 + i*16 + 0,
1120                                               edged_width2, 2);
1121                    }
1122            }
1123    }

Legend:
Removed from v.701  
changed lines
  Added in v.702

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