- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi everyone,
I downloaded the Sobel filter design example for FPGA. This runs perfectly for a 3x3 kernel, however when i try to change this to a 5x5 or 7x7 kernel the output images are no longer as expected. I think I have pinpointed this problem to the pixel buffer in the code, shown below. // Pixel buffer of 2 rows and 3 extra pixels int pix_buff[2*COLS+3]; // Initialise pixel buffer int count = -(2*COLS+3); while (count != iterations) { // Each cycle, shift a new pixel into the buffer. // Unrolling loop allows compiler to infer a shift register. # pragma unroll for (int i = 2*COLS+2; i > 0; --i) { pix_buff[i] = pix_buff[i - 1]; } pix_buff[0] = count >= 0 ? frame_in[count] : 0; .....processing...... } Basically, why is the buffer 2*COLS+3? I tried increasing this value, and the results vary significantly as I do so, which leads me to believe this is the issue at hand. have tried this with varying masks, and may I also note that the brightness tends to vary significantly with increases/decreases in the size of this buffer. If someone could show me how the 2*COLS+3 value was obtained, and how I may possibly calculate the necessary pixel buffer for 5x5 and 7x7 kernel sizes, so that I can begin to get meaningful results, that would be very helpful. I have attached two images to this thread, one with a pixel of buffer of approximately 10*COLS(dog772) which is much brighter and one for approximately 11*COLS(dog77) which seems to be closer to original image brightness. Note - these are supposed to be sharpening kernels of size 7x7, however I have similar issues with Sobel filter. Kind regards OK- Tags:
- OpenCL™
Link Copied
0 Replies
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page