Hi again,
We have now done some testing with the IPP JPEG codec. However, we have not been able to improve performance. On the contrary it got slightly worse!
Using IPP JPEG codec version 5.3.1.064
0.896MP-0.20MB-1152x778.JPG
Reading 100 JPEG pics in: 1375 ms
Average: 13.750000 ms per pic
Compare this to the ijl results:
Using ijl15
0.896MP-0.20MB-1152x778.JPG
Reading 100 JPEG pics in: 1266 ms
Average: 12.660000 ms per pic
Using ijl20
0.896MP-0.20MB-1152x778.JPG
Reading 100 JPEG pics in: 1344 ms
Average: 13.440000 ms per pic
The code is taken from the sample app JPEGView and looks like follows:
void
GetImageFromJPEG()
{
CIppImage m_image;
PARAMS_JPEG m_param_jpeg;
Ipp8u* pJPEG = 0;
int JPEGSize;
JERRCODE jerr;
CMemBuffInput in;
CFile jpeg;
printf(
"Using IPP JPEG codec version 5.3.1.064
");
printf("0.896MP-0.20MB-1152x778.JPG
");
jpeg.Open("Pics\0.896MP-0.20MB-1152x778.JPG", CFile::modeRead|CFile::typeBinary);
JPEGSize = (
int)jpeg.GetLength();
pJPEG = (Ipp8u*)ippMalloc(JPEGSize);
jpeg.Read(pJPEG,JPEGSize);
jpeg.Close();
jerr = in.Open(pJPEG,JPEGSize);
m_image.Color(JC_UNKNOWN);
int iterations = 100;
DWORD dwStartTick = GetTickCount();
long pos = 0;
for(int i=0; i<iterations; i++)
{
jerr = ReadImageJPEG(&in,&m_param_jpeg,&m_image);
in.TellPos(&pos);
jerr = in.Seek(pos*-1, 1);
}
DWORD dwEndTick = GetTickCount();
printf(
"Reading %d JPEG pics in: %lu ms
", iterations, dwEndTick - dwStartTick);
printf("Average: %f ms per pic
", (double)(dwEndTick-dwStartTick) / iterations);
}
Any ideas of why we don't get better performance with IPP JPEG codec than with ijl15 and ijl20?
As stated above, we are using IPP version 5.3.1.064
Br,
Robert