誰かが5x5マスクを使って画像のガウスぼやけを見つける高速な関数を教えてもらえますか?私はiOSアプリの開発者のためにそれが必要です。私は、次のように定義された画像の記憶に直接取り組んでいます。
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ネオンの組み込み関数を使用して、1サイクルで複数の演算を行うことができると聞きました。多分それは行く方法ですか?
問題は、あまりよく知られておらず、現時点でアセンブリ言語を学ぶのに十分な時間がないということです。したがって、上記の問題や他の高速実装でC/C ++でNeonの組み込みコードを投稿できる人がいれば、素晴らしいことになります。