関心領域 (トリミング) アルゴリズムを含むいくつかの画像処理アルゴリズムを含むライブラリがあります。GCC でコンパイルすると、自動ベクトライザーは多くのコードを高速化しますが、Crop アルゴリズムのパフォーマンスを低下させます。ベクトライザーによって無視される特定のループにフラグを立てる方法はありますか、またはパフォーマンスを向上させるためにコードを構造化するより良い方法はありますか?
for (RowIndex=0;RowIndex<Destination.GetRows();++RowIndex)
{
rowOffsetS = ((OriginY + RowIndex) * SizeX) + OriginX;
rowOffsetD = (RowIndex * Destination.GetColumns());
for (ColumnIndex=0;ColumnIndex<Destination.GetColumns();++ColumnIndex)
{
BufferSPtr=BufferS + rowOffsetS + ColumnIndex;
BufferDPtr=BufferD + rowOffsetD + ColumnIndex;
*BufferDPtr=*BufferSPtr;
}
}
SizeX
ソースの幅は
どこですか
OriginX
関心領域の左側です 関心
OriginY
領域の上部です