- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
IPP 5.2, using IppiResizeCenter_8u_C4R.The picture here shows the result of a slight stretching using Lanczos (left) and linear (right).
http://www.flstudio.com/gol/StretchTest.png
Looks like the Lanczos version exposes garbage for some near-white points, (no problem with white, more around 250/255 RGB values (same garbage for just one of the RGB components).
I know the text uses cleartype and I shouldn't expect the sub-pixel color trick to scale well, however this is toougly to be normal (I'd expect it to be more or less like the linear version).
I have checked that no premultiplied RGB was higher than the alpha. I also checked cubic interpolation, result is ok just like linear.
Sorry if I can't post the source bitmap, it's done by code and I have no code to save it in a format with alpha (yet).
Haven't checked yet if this was fixed in 5.3 or higher. Edit: still happens in version 6.0.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I thought that I'd try other resampling methods, and funny, I got some bad pixels using Lanczos again (some holes in a bitmap).This is using IppiResizeSqrPixel in IPP 6.1.
I'll try to get more info later, although it's no big deal, I'm as happy with cubic resampling.
But it's weird, as I thought that those 2 functions were unrelated. Could be on my side, but then I don't know why it'd work with other resampling methods.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you try the latested IPP 6.1 update 1 release. We have knew an error for IppiResizeSqrPixel in IPP 6.1 gold. The workaround for IPP 6.1 gold release is
if (size.NxIn < 6 || size.NyIn < 6) {
if (theType == IPPI_INTER_LANCZOS)
theType = IPPI_INTER_CUBIC;
if (size.NxIn < 4 || size.NyIn < 4) {
if ((theType == IPPI_INTER_CUBIC) ||
(theType == IPPI_INTER_CUBIC2P_BSPLINE) ||
(theType == IPPI_INTER_CUBIC2P_CATMULLROM) ||
(theType == IPPI_INTER_CUBIC2P_B05C03))
theType = IPPI_INTER_LINEAR;
}
}
Thanks,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok so it's only if width or height is less than 6? I'm afraid my bitmap was bigger than that.
If you ask me, it looked pretty much like an overflow. The source bitmap had premultiplied alpha. You know the common saturated pixels effect when you try to blend a bitmap where the RGB's are higher than the alpha? It looked like that, like if the interpolated pixels were exceeding the alpha. I'll see if I can do it again & save a bitmap.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok so it's only if width or height is less than 6? I'm afraid my bitmap was bigger than that.
If you ask me, it looked pretty much like an overflow. The source bitmap had premultiplied alpha. You know the common saturated pixels effect when you try to blend a bitmap where the RGB's are higher than the alpha? It looked like that, like if the interpolated pixels were exceeding the alpha. I'll see if I can do it again & save a bitmap.
Yes, That problem happened when the image size is less that 6. Since it is not the problem, any code to help to reproduce the problem will be very helpuful?
Thanks,
Chao
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page