const int N = 256;
int i, j, h[N] = {0};
+ #if CV_ENABLE_UNROLLED
+ int h_unrolled[3][N] = {};
+ #endif
for( i = 0; i < size.height; i++ )
{
const uchar* src = _src.ptr() + step*i;
for( ; j <= size.width - 4; j += 4 )
{
int v0 = src[j], v1 = src[j+1];
- h[v0]++; h[v1]++;
+ h[v0]++; h_unrolled[0][v1]++;
v0 = src[j+2]; v1 = src[j+3];
- h[v0]++; h[v1]++;
+ h_unrolled[1][v0]++; h_unrolled[2][v1]++;
}
#endif
for( ; j < size.width; j++ )
double mu = 0, scale = 1./(size.width*size.height);
for( i = 0; i < N; i++ )
+ {
+ #if CV_ENABLE_UNROLLED
+ h[i] += h_unrolled[0][i] + h_unrolled[1][i] + h_unrolled[2][i];
+ #endif
mu += i*(double)h[i];
+ }
mu *= scale;
double mu1 = 0, q1 = 0;
const int N = 256;
int i, j, h[N] = {0};
+ #if CV_ENABLE_UNROLLED
+ int h_unrolled[3][N] = {};
+ #endif
for( i = 0; i < size.height; i++ )
{
const uchar* src = _src.ptr() + step*i;
for( ; j <= size.width - 4; j += 4 )
{
int v0 = src[j], v1 = src[j+1];
- h[v0]++; h[v1]++;
+ h[v0]++; h_unrolled[0][v1]++;
v0 = src[j+2]; v1 = src[j+3];
- h[v0]++; h[v1]++;
+ h_unrolled[1][v0]++; h_unrolled[2][v1]++;
}
#endif
for( ; j < size.width; j++ )
int temp;
bool isflipped = false;
+ #if CV_ENABLE_UNROLLED
+ for( i = 0; i < N; i++ )
+ {
+ h[i] += h_unrolled[0][i] + h_unrolled[1][i] + h_unrolled[2][i];
+ }
+ #endif
+
for( i = 0; i < N; i++ )
{
if( h[i] > 0 )