有人可以告訴我一個快速函數,使用5x5掩模來查找圖像的高斯模糊。我需要它的iOS應用程序開發。我直接在圖像的內存上定義爲無符號char字符上的快速高斯模糊image-ARM霓虹Intrinsics- iOS Dev
unsigned char *image_sqr_Baseaaddr = (unsigned char *) malloc(noOfPixels);
for (row = 2; row < H-2; row++)
{
for (col = 2; col < W-2; col++)
{
newPixel = 0;
for (rowOffset=-2; rowOffset<=2; rowOffset++)
{
for (colOffset=-2; colOffset<=2; colOffset++)
{
rowTotal = row + rowOffset;
colTotal = col + colOffset;
iOffset = (unsigned long)(rowTotal*W + colTotal);
newPixel += (*(imgData + iOffset)) * gaussianMask[2 + rowOffset][2 + colOffset];
}
}
i = (unsigned long)(row*W + col);
*(imgData + i) = newPixel/159;
}
}
這顯然是最慢的功能。我聽說iOS上的ARM Neon內在函數可用於在1個週期內完成多個操作。也許這是要走的路?
問題是我不是很熟悉,也沒有足夠的時間學習彙編語言。所以如果任何人都可以發佈上面提到的問題的Neon intrinsics代碼或者C/C++中的其他快速實現,那將是非常棒的。
那麼如何將我的5x5 2D面具轉換成兩個1D面具? – shreyas253 2012-02-06 15:51:39
如果只需要iOS(也可能是OS X)解決方案,我已經在vImage上爲 – 2012-02-06 16:11:18