SIMD命令を使用してHOG記述子の計算を最適化する試みがいくつかあります。OpenCV,DlibおよびSimdです。それらのすべてのHOGヒストグラムに大きさを結果として追加するためにスカラーのコードを使用します。SIMDを使用したHOGの最適化
ありfloat histogram[height/8][width/8][18];
float ky[height], kx[width];
int idx[size];
float val[size];
for(size_t i = 0; i < size; ++i)
{
histogram[y/8][x/8][idx[i]] += val[i]*ky[y]*kx[x];
histogram[y/8][x/8 + 1][idx[i]] += val[i]*ky[y]*kx[x + 1];
histogram[y/8 + 1][x/8][idx[i]] += val[i]*ky[y + 1]*kx[x];
histogram[y/8 + 1][x/8 + 1][idx[i]] += val[i]*ky[y + 1]*kx[x + 1];
}
size
の値は実装からもよるが、一般的には意味は同じです。
私はhistogram calculation with using of SIMDの問題は、単純で効果的な解決策を持っていないことを知っています。しかし、この場合、ヒストグラムのサイズは小さくなります(18)。 SIMDの最適化を助けることができますか?
あなたは[この論文](http://ieeexplore.ieee.org/document/4429976/)が役に立つかもしれません – Martin