aboutsummaryrefslogtreecommitdiffhomepage
path: root/libmpcodecs
diff options
context:
space:
mode:
authorGravatar michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-10-27 22:25:28 +0000
committerGravatar michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-10-27 22:25:28 +0000
commitc829d6fe6a7d6c178f0dc266faeda75873491eeb (patch)
tree58306eb35d16494a341ff1a9db96684a9b27c704 /libmpcodecs
parent1197d4d1870a0d1f9cff9b7a25cbbf2343f68698 (diff)
change offsets (quality 2-4 looks better now)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11299 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vf_spp.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/libmpcodecs/vf_spp.c b/libmpcodecs/vf_spp.c
index 40a9f9e23c..d2dfd07b58 100644
--- a/libmpcodecs/vf_spp.c
+++ b/libmpcodecs/vf_spp.c
@@ -58,7 +58,20 @@ const uint8_t __attribute__((aligned(8))) dither[8][8]={
{ 42, 26, 38, 22, 41, 25, 37, 21, },
};
-const uint8_t offset[64][2]= {
+const uint8_t offset[127][2]= {
+{0,0},
+{0,0}, {4,4},
+{0,0}, {2,2}, {6,4}, {4,6},
+{0,0}, {5,1}, {2,2}, {7,3}, {4,4}, {1,5}, {6,6}, {3,7},
+
+{0,0}, {4,0}, {1,1}, {5,1}, {3,2}, {7,2}, {2,3}, {6,3},
+{0,4}, {4,4}, {1,5}, {5,5}, {3,6}, {7,6}, {2,7}, {6,7},
+
+{0,0}, {0,2}, {0,4}, {0,6}, {1,1}, {1,3}, {1,5}, {1,7},
+{2,0}, {2,2}, {2,4}, {2,6}, {3,1}, {3,3}, {3,5}, {3,7},
+{4,0}, {4,2}, {4,4}, {4,6}, {5,1}, {5,3}, {5,5}, {5,7},
+{6,0}, {6,2}, {6,4}, {6,6}, {7,1}, {7,3}, {7,5}, {7,7},
+
{0,0}, {4,4}, {0,4}, {4,0}, {2,2}, {6,6}, {2,6}, {6,2},
{0,2}, {4,6}, {0,6}, {4,2}, {2,0}, {6,4}, {2,4}, {6,0},
{1,1}, {5,5}, {1,5}, {5,1}, {3,3}, {7,7}, {3,7}, {7,3},
@@ -151,8 +164,8 @@ static void filter(struct vf_priv_s *p, uint8_t *dst, uint8_t *src, int dst_stri
if(p->mpeg2) qp>>=1;
}
for(i=0; i<count; i++){
- const int x1= x + offset[i][0];
- const int y1= y + offset[i][1];
+ const int x1= x + offset[i+count-1][0];
+ const int y1= y + offset[i+count-1][1];
const int index= x1 + y1*stride;
p->dsp.get_pixels(block, p->src + index, stride);
p->dsp.fdct(block);
@@ -162,7 +175,7 @@ static void filter(struct vf_priv_s *p, uint8_t *dst, uint8_t *src, int dst_stri
}
}
}
-
+
#define STORE(pos) \
temp= ((p->temp[index + pos]<<log2_scale) + d[pos])>>6;\
if(temp & 0x100) temp= ~(temp>>31);\