Skip to content

Commit

Permalink
Fix a padding problem in ThresholdRectToPixOCL
Browse files Browse the repository at this point in the history
  • Loading branch information
mwootton authored and zdenop committed Oct 27, 2016
1 parent 5db7602 commit f46dfdc
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions opencl/oclkernels.h
Original file line number Diff line number Diff line change
Expand Up @@ -1066,7 +1066,6 @@ void kernel_ThresholdRectToPix(
__global int *pix) {

// declare variables
uint pad = PIXELS_PER_WORD * wpl - width;//number of padding bits at the end of each output line
int pThresholds[NUM_CHANNELS];
int pHi_Values[NUM_CHANNELS];
for ( int i = 0; i < NUM_CHANNELS; i++) {
Expand All @@ -1077,15 +1076,16 @@ void kernel_ThresholdRectToPix(
// for each word (32 pixels) in output image
for ( uint w = get_global_id(0); w < wpl*height; w += get_global_size(0) ) {
unsigned int word = 0; // all bits start at zero
//decrease the pixel index for the padding at the end of each output line (=number of lines * padding)
uint pxIdxOffset = ( w / wpl) * pad;// = ( ( PIXELS_PER_WORD * w) / ( width + pad)) * pad;
// for each burst in word
for ( int b = 0; b < BURSTS_PER_WORD; b++) {
// load burst
charVec pixels;
for ( int i = 0; i < (PIXELS_PER_BURST*NUM_CHANNELS)/CHAR_VEC_WIDTH; i++ ) {
pixels.v[i] = imageData[w*(BURSTS_PER_WORD*(PIXELS_PER_BURST*NUM_CHANNELS)/CHAR_VEC_WIDTH) + b*((PIXELS_PER_BURST*NUM_CHANNELS)/CHAR_VEC_WIDTH) + i - pxIdxOffset];
}
int offset = (w / wpl) * width;
offset += (w % wpl) * PIXELS_PER_WORD;
offset += b * PIXELS_PER_BURST;

for (int i = 0; i < PIXELS_PER_BURST; ++i)
pixels.v[i] = imageData[offset + i];

// for each pixel in burst
for ( int p = 0; p < PIXELS_PER_BURST; p++) {
Expand Down

0 comments on commit f46dfdc

Please sign in to comment.