mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
C implementation of the median deinterlacer (seems to be the only one
that generates tolerable output for anime) so it will work on non-MMX architectures. Someone should optimize it better eventually. Originally committed as revision 9071 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
This commit is contained in:
parent
e78df69997
commit
9b1663fcd0
@ -34,7 +34,7 @@ Horizontal X1# a E E
|
||||
LinIpolDeinterlace e E E*
|
||||
CubicIpolDeinterlace a e e*
|
||||
LinBlendDeinterlace e E E*
|
||||
MedianDeinterlace# Ec Ec
|
||||
MedianDeinterlace# E Ec Ec
|
||||
TempDeNoiser# E e e
|
||||
|
||||
* i dont have a 3dnow CPU -> its untested, but noone said it doesnt work so it seems to work
|
||||
|
@ -1889,19 +1889,24 @@ MEDIAN((%%edx, %1), (%%edx, %1, 2), (%0, %1, 8))
|
||||
);
|
||||
#endif // MMX
|
||||
#else
|
||||
//FIXME
|
||||
int x;
|
||||
int x, y;
|
||||
src+= 4*stride;
|
||||
// FIXME - there should be a way to do a few columns in parallel like w/mmx
|
||||
for(x=0; x<8; x++)
|
||||
{
|
||||
src[0 ] = (src[0 ] + 2*src[stride ] + src[stride*2])>>2;
|
||||
src[stride ] = (src[stride ] + 2*src[stride*2] + src[stride*3])>>2;
|
||||
src[stride*2] = (src[stride*2] + 2*src[stride*3] + src[stride*4])>>2;
|
||||
src[stride*3] = (src[stride*3] + 2*src[stride*4] + src[stride*5])>>2;
|
||||
src[stride*4] = (src[stride*4] + 2*src[stride*5] + src[stride*6])>>2;
|
||||
src[stride*5] = (src[stride*5] + 2*src[stride*6] + src[stride*7])>>2;
|
||||
src[stride*6] = (src[stride*6] + 2*src[stride*7] + src[stride*8])>>2;
|
||||
src[stride*7] = (src[stride*7] + 2*src[stride*8] + src[stride*9])>>2;
|
||||
uint8_t *colsrc = src;
|
||||
for (y=0; y<4; y++)
|
||||
{
|
||||
int a, b, c, d, e, f;
|
||||
a = colsrc[0 ];
|
||||
b = colsrc[stride ];
|
||||
c = colsrc[stride*2];
|
||||
d = (a-b)>>31;
|
||||
e = (b-c)>>31;
|
||||
f = (c-a)>>31;
|
||||
colsrc[stride ] = (a|(d^f)) & (b|(d^e)) & (c|(e^f));
|
||||
colsrc += stride*2;
|
||||
}
|
||||
src++;
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user