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

Wishlist of H.264

free1006
Beginner
610 Views
Our company using Intel IPP for our a video conference client, now we facing a big problem: the H.264 for video comunication has large lag!

Could IPP provide a way to using it for the video chat applications ? Even a hack way.

Note: I have search forum and find a hack way, but seems this is not effect with new 7.0.

Thanks
0 Kudos
5 Replies
Jeffrey_M_Intel1
Employee
610 Views

Thank you for letting us know about how you would like to use the UMC H.264 sample. We will certainly keep this in mind for future product planning. Since source code is available you are free to optimize performance in any way you like. Depending on how much effort you'd like to invest there are many possible ways to change the implementation to be a better fit for your application.

In the short term, here are some quick parameter change suggestions for speeding up the UMC H.264 encoder, which may be the biggest part of the lag.

1) Make sure threading is enabled this may be the biggest improvement

2) m_QualitySpeed 0 or 1

3) B_Frame_rate 0 (no B frames)

4) key_frame_controls.interval 0 or 1 (all I frames higher bitrate but faster encode and lower latency)



In the long term you may want to consider Media SDK, which includes

- Production ready video elementary stream codecs

- Video conferencing support added for Media SDK 2012 (currently available in beta)

- Hardware acceleration (on Intel 2nd generation core processors with Quick Sync Video)



Media SDK and IPP UMC can be used together, as in these white papers:

http://software.intel.com/en-us/articles/muxing-with-intel-media-software-development-kit/

http://software.intel.com/en-us/articles/demuxing-with-intel-media-sdk/


More information on Media SDK can be found at http://software.intel.com/en-us/articles/vcsource/.


Media SDK currently only supports Windows 7/Vista. Please let us know if this is a major limitation for you.


If you decide to try Media SDK, please let us know how it goes. We would be veryhappy to hear more about your videoconferencingimplementation. If it is not appropriate to put details about your project on a public forum please feel free to mark the reply post private or send email.


Regards,

Jeff

0 Kudos
free1006
Beginner
611 Views
Thank you very much for your details, we have tried opminze the H.264 as below link:

http://software.intel.com/en-us/forums/showthread.php?t=67755&wapkw=ALL%28H264+Decoder+Latency.+software.intel.com%29


This hack way is works good with 6.1, but in 7.0, seems not much effected, still got big lag.

We will try the Media SDK and post feedback in forum.

0 Kudos
free1006
Beginner
611 Views
Note: I confirmed the lag is from decode, not cause encode, because if we using our conference client with other device(GrandStream GXV 3140), we see the video from GrandStream is lag. On the GrandStream side, the video displaying is almost realtime(we tested in LAN).
0 Kudos
Jeffrey_M_Intel1
Employee
611 Views
This is an interesting topic from many perspectives. I suspect that there are more places than the one you've noted where the code has changed and old workarounds no longer apply.

From my limited testing on the 7.0.6 UMC samples I saw reductions in H.264 decode latency with these strategies:

1) Eliminate B frames
2)Encode with slices
3) Use threading (even though previous posts suggested single threading)

It looks like we may need todo a bit more research and gather suggestions from several expertsfor videoconferencing encode and decode that reflects where things are today. Since it is still holiday season this may delay getting back to you for a few days.

In the meantime, thanks in advance for your feedback on Media SDK for videoconferencing.

Jeff
0 Kudos
free1006
Beginner
611 Views
Hi Jeff, any new suggestions from other experts ?

Regards,
0 Kudos
Reply