I have encountered disappointing performance with the IPP v.8 libraries and the associated the codecs contained in the example source code (w_ipp_8.0.0.005_legacy_samples.zip) relative to IPP v.7.
Here is some data that I gathered to quantify my observations:
H.264 Encoder: -9%
H.264 Decoder: -33%
MPEG4 Encoder/Decoder: 0% (no change)
MJPEG Encoder: -100%
MJPEG Decoder: +20%
The H.264 and MJPEG Encoder results are very disappointing so I suspect that I might be doing something wrong here. Here are some details about my configuration:
- The data was measured on a Release build (default compiler optimization settings for a release build) using Microsoft Visual Studio 2010
- The data was measured on a Sandy Bridge E (6 core/12 thread) workstation running 32-bit Windows 7 Professional.
- I am using the MT IPP libraries.
- I have configured the encoder/decoder for each codec to only use 1 thread.
- I have disabled OpenMP
- I verified that the IPP library was initialized such that the Sandy Bridge specific primitives (G9) are called.
- The project is configured to use CPU dispatch to choose the most appropriate version of an IPP primitive at runtime depending on the host CPU.
- The IPP libraries are statically linked in.
If anyone can enlighten me as to why I am seeing such disappointing performance, please do so.
FWIW, when we upgraded from IPP v.6 to IPP v.7 we saw tremendous performance gains.