[XviD-devel] my small GME "research"
Antonin Misek
tonda.misek at post.cz
Thu Dec 18 17:02:56 CET 2003
Hi all,
I created "insane" GlobalMotionEstRefine method for comparison. It tests all
neighbouring points. Here are results (stefan) (GENERIC):
-i stefan.yuv -type 0 -w 352 -h 240 -single -zq 0 4.0 -o stefan.avi -quality
6 -stats
Without GMC:
Tot: enctime(ms) =9657.00, length(bytes) = 3946402
Avg: enctime(ms) = 32.19, fps = 31.07, length(bytes) = 13154, psnr y =
38.33, psnr u = 40.54, psnr v = 40.55
Normal:
Tot: enctime(ms) =26906.00, length(bytes) = 3837093
Avg: enctime(ms) = 89.69, fps = 11.15, length(bytes) = 12790, psnr y =
38.33, psnr u = 40.57, psnr v = 40.56
Insane:
Tot: enctime(ms) =669062.00, length(bytes) = 3773630
Avg: enctime(ms) =2230.21, fps = 0.45, length(bytes) = 12578, psnr y =
38.33, psnr u = 40.58, psnr v = 40.56
method spared size % speed koeficient
Without: 0 1
Normal: 2.8 2.78
Insane: 4.4 69
Perhaps results are interesting for someone :-)
TonyMi
int i,j,k,oldDirection;
direction=-1;
do {
oldDirection=direction;
direction = 0;
centerwp=bestwp;
for (i=0;i<729;i++)
{
if (oldDirection!=-1)
{
k=0;
for (j=1;j<244;j*=3)
{
if (((oldDirection/j)%3!=1)&&((oldDirection/j)%3==((i/j)%3)))
{
k+=1;
break;
}
}
if (k==0)
continue;
}
currwp=centerwp;
currwp.duv[0].x+=i%3-1;
currwp.duv[0].y+=(i/3)%3-1;
currwp.duv[1].x+=(i/9)%3-1;
currwp.duv[1].y+=(i/27)%3-1;
currwp.duv[2].x+=(i/81)%3-1;
currwp.duv[2].y+=(i/243)%3-1;
if ((gmcSAD = globalSAD(&currwp, pParam, pMBs, current, pRef, pCurr,
GMCblock))<gmcminSAD)
{
bestwp=currwp;
gmcminSAD = gmcSAD;
direction = i;
}
}
} while (direction);
More information about the XviD-devel
mailing list