Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
For the latest information on Intel’s response to the Log4j/Log4Shell vulnerability, please see Intel-SA-00646

ReduceBits - dithering alignment?

gol
Beginner
129 Views

I'm looking for dithering & reading about ippiReduceBits, but it looks like it doesn't have a way to align/offset its dithering?

That seems to limit its use, because you don't necessarily need to convert an entire image in 1 pass, thus if you're working in blocks (say in a GUI, or when processing large images in smaller blocks), you will end up with dithering patterns with inconsistent alignments.

Edit: I see that most of the dithering algo's are error-diffusion ones, so I'm no expert in dithering but I assume that an offset would be pointless for those, they really need to work on full data?
However it would make sense for the Bayer one which is pattern-based, right?

0 Kudos
2 Replies
Chao_Y_Intel
Employee
129 Views

Hello,

Here are some comments from the function owner:

Unfortunately, you Only can process an image as one unit for with error-diffusion desiring, no blocking.

It is right, you can divide images in blocks and process them with the Bayer.

Thanks,

Chao

gol
Beginner
129 Views

It is right, you can divide images in blocks and process them with the Bayer.

Yes, but this would then require the function to get an offset for the Bayer pattern.

It would work if, instead of an IppiSize, it was taking an IppiRect as region of interest. Otherwise the pattern will always start at the top-left of the block to process, thus if you're processing only a random part of the image, as you would if only a rectangle was refreshed in a GUI system, the result would be random.

Reply