Optimize calculating stast for debayer
This commit is contained in:
+13
-3
@@ -177,10 +177,20 @@ void calcStats(const T *data, size_t n, size_t w, RawImage::Stats &stats)
|
||||
statsFunc(data[i*ch + 1], 1);
|
||||
statsFunc(data[i*ch + 2], 2);
|
||||
}
|
||||
if constexpr(ch == 1)
|
||||
}
|
||||
if constexpr(ch == 1)
|
||||
{
|
||||
size_t h = (n / w) & (SIZE_MAX-1);
|
||||
w &= (SIZE_MAX-1);
|
||||
for(size_t y=0; y<h; y+=2)
|
||||
{
|
||||
int bayer = (i % w & 1) + (i / w & 1) + 1;
|
||||
statsFunc(data[i], bayer);
|
||||
for(size_t x=0; x<w; x+=2)
|
||||
{
|
||||
statsFunc(data[y*w+x], 1);
|
||||
statsFunc(data[y*w+x+1], 2);
|
||||
statsFunc(data[(y+1)*w+x], 2);
|
||||
statsFunc(data[(y+1)*w+x+1], 3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user