【发布时间】:2014-08-08 06:29:36
【问题描述】:
对于一个作业,我们被要求优化代码以实现如下所述的“平滑”功能:
平滑函数将源图像 src 作为输入,并在目标图像 dst 中返回平滑结果。这是实现的一部分:
void naive_smooth(int dim, pixel *src, pixel *dst) {
int i, j;
for(i=0; i < dim; i++)
for(j=0; j < dim; j++)
dst[RIDX(i,j,dim)] = avg(dim, i, j, src); /* Smooth the (i,j)th pixel */
return; }
结构像素存储一个红色、绿色和蓝色值(整数)。 函数 avg 返回第 (i,j) 个像素周围所有像素的平均值。您的任务是优化平滑(和平均)以尽可能快地运行。 (注意:函数 avg 是一个局部函数,您可以完全摆脱它以通过其他方式实现平滑。) 此代码(以及 avg 的实现)在文件 kernels.c 中。
有人知道我可以如何优化它吗?
【问题讨论】:
-
首先,实现算法的工作
标签: c optimization