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

IPP 7 H264VideoDecoder high CPU patch

Steve_Browne
Beginner
356 Views
Since my last report of high CPU when using multiple threads with the H264VideoDecoder got dismissed as being an OpenMP issue. I figured I would start a new thread to make it easier for people to find the real solution. Hopefully this will get fixed in a newer IPP update as I would consider this a pretty major problem.

See the attached patch file for how to fix it.
0 Kudos
3 Replies
Chao_Y_Intel
Moderator
356 Views
Hello,

Thanks for sharing it. We will have further check.

Regards,
Chao
0 Kudos
Arvin_Chan
Beginner
356 Views
I encountered the same issue as well and fixed it in the following way:
// umc_h264_task_broker.cpp line 1751
bool TaskBrokerTwoThread::GetNextTaskInternal(H264Task *pTask)
{
...
if (!pTask->m_iThreadNumber)
{
SwitchCurrentAU();
m_completedQueue.clear();
return false;
}
// Only signal threads if there are tasks
Ipp32s cnt_tasks = GetNumberOfTasks(true);
if (cnt_tasks)
AwakeThreads();
...
}
Note, this does lead to a hang when closing the H264 decoder which I then fixed as follows
// umc_h264_task_supplier.cpp line 1027
void TaskSupplier::Close()
{
m_threadGroup.Release();
if (m_pTaskBroker)
{
m_pTaskBroker->Release();
}
// from reset
//m_threadGroup.Release();
...
}
// umc_h264_thread.cpp line 121
void H264Thread::Release()
{
m_bQuit = true;
Reset();
if (IsValid())
{
//m_bQuit = true;
Awake();
Wait();
}
Close();
} // void Release(void)
0 Kudos
j_miles
Beginner
356 Views
Hi Chao,

Can the Intel team verify the findings and the solution outlined by Steve (or Arvin)? Has a fix been included in IPP 7.1 beta?

And is this issue really related to (or equal to) the one outlined in thread #81357 ("H.264 performence issues in IPP 7.0.2"), which seems very similar and is announced as having been fixed in 7.1 beta?

Thanks.

Best regards,

- Jay
0 Kudos
Reply