Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

which resize function to use for 32 bit image

gangli59
Beginner
577 Views
I have a image which format is RGBA. When resize it, ippiResize_8u_AC4R seems is the function to call. However I also see ippiResize_8u_C4R could do the job. Which function has better performance?
0 Kudos
8 Replies
Vladimir_Dudnik
Employee
577 Views
We use AC4 specificator for functions which consider forth channel as an alpha channel. No operation will be performed on alpha channel. Functions with C4 specificator process all four channels in the same way.

Vladimir
0 Kudos
gangli59
Beginner
577 Views
Quoting - gangli59
I have a image which format is RGBA. When resize it, ippiResize_8u_AC4R seems is the function to call. However I also see ippiResize_8u_C4R could do the job. Which function has better performance?

Thanks for the answer. I will use ippiResize_8u_AC4R.
0 Kudos
Ying_H_Intel
Employee
577 Views

For better performance on latest processor, youmay use ippiResizeSqrPixel_8u_AC4Rinsteadsince ippiResize* will bedeprecated in future release.

Here is one related KB article :http://software.intel.com/en-us/articles/deprecated-ipp-api-in-version-60/

Regards,
Ying

0 Kudos
gangli59
Beginner
577 Views
Quoting - (Intel)

For better performance on latest processor, youmay use ippiResizeSqrPixel_8u_AC4Rinsteadsince ippiResize* will bedeprecated in future release.

Here is one related KB article :http://software.intel.com/en-us/articles/deprecated-ipp-api-in-version-60/

Regards,
Ying


Thnks for point out. I tried ippiResizeSqr function. It 's performance is same as ippiResize. However the new function can resize to a regioninto target image. It is a big plus.

I work on a function to render an image to a DIBsection bitmap. Most of time the soruce image is 8/16/24 bits image, and the render target is a 32 bits DIB. I really hope the ippiResizeSqr can do color converting too.
0 Kudos
gangli59
Beginner
577 Views
Quoting - gangli59

Thnks for point out. I tried ippiResizeSqr function. It 's performance is same as ippiResize. However the new function can resize to a regioninto target image. It is a big plus.

I work on a function to render an image to a DIBsection bitmap. Most of time the soruce image is 8/16/24 bits image, and the render target is a 32 bits DIB. I really hope the ippiResizeSqr can do color converting too.

Just found out in my test, the ippiResizeSqrPixel_8u_C1R is 2% slower than ippiResize_8u_C1R. I was expected the newer function be faster!
0 Kudos
Yuri_Tikhomirov__Int
New Contributor I
577 Views

The function performs only resize transform without any color converting.
Right, the performance of both functionalities is similar but only for single-thread task.
The function ippiResizeSqrPixel has been parallelized and shows 2-4 times better performance than ippiResize on the multi-core machines.

Thanks,
Yuri

0 Kudos
gangli59
Beginner
577 Views

The function performs only resize transform without any color converting.
Right, the performance of both functionalities is similar but only for single-thread task.
The function ippiResizeSqrPixel has been parallelized and shows 2-4 times better performance than ippiResize on the multi-core machines.

Thanks,
Yuri


I do ran the test on 4 cores machine, did not see any multi thread kick in. How do you turn on the multi thread feature? My test program is static linked to the merged library.
0 Kudos
Vladimir_Dudnik
Employee
577 Views
Hello,

IPP provided in both threaded and not threaded variants. Threaded variant is IP DLLs (they are always use internal threading) and threaded static libraries (those with '_t' in the name.

You probably use non threaded static libraries and that is why you do not see performance improvements on multi-core systems.

Regards,
Vladimir
0 Kudos
Reply