for (l = 1; l <= sxy; l++) { i = x_curr + xoff - l; j = y_curr + yoff - l; for (k = 0; k < 8*l; k++) { if (i>=ilow && i<=ihigh && j>=jlow && j<=jhigh) { ii = search_area + (i-ilow) + (j-jlow)*h_length; sad = SAD_Macroblock(ii, act_block, h_length, Min_FRAME[0]); if (sad < Min_FRAME[0]) { MV_FRAME[0].x = i - x_curr; MV_FRAME[0].y = j - y_curr; Min_FRAME[0] = sad; } } if(k<2*l) i++; else if (k<4*l) j++; else if (k<6*l) i--; else j--; } }
时间: 2024-04-07 13:32:27 浏览: 112
2015级虚拟现实重点-sxy1
这段代码看起来像是在进行运动估计,通过搜索周围像素来找到最小的SAD值,然后更新最小SAD值和对应的运动矢量MV_FRAME。其中,SAD_Macroblock函数似乎是计算块之间的SAD值。我的理解是这段代码实现了一种叫做Diamond Search的运动估计算法,它的搜索方式是按照钻石形状从中心像外扩展进行搜索。不过,具体实现可能还需要看上下文来确定。
阅读全文