我有一个由二维数组字符表示的图像,我需要对该图像执行一些操作并将结果存储在另一个二维数组中,这些操作从计算相邻单元的平均值到重新排序行不等。 为了获得更好的性能,我可以采取哪些可能的优化措施? 任何可能的技术都是受欢迎的(例如参考地点,内联汇编......)
我在linux x86_64机器上使用c
PS:我有原始彩色图像,每个像素由一组RGB值表示。
答案 0 :(得分:2)
将您的API计划为void process_row(int *out_row, int *in_row, int *row_above, int *row_below);
某些RGB计算可以与普通整数运算并行计算。
00 rr 00 gg 00 bb 00 aa
的64位处理器打包上也是可行的方法答案 1 :(得分:0)
您可以使用1D阵列代替2D阵列,这将大大提高缓存命中率。这将优化程序运行时间。