Loading...
You are not logged-in Login/Register





  • Posts   Search Threads
  • suchethanswaroopNovember 2, 2009 8:45 AM PST   
    Why is Intel C++ compiler so fast ( Encoding time, decoding time )

    hi all,

    I used the intel ipp to run the H.264 encoder and decoder through intel C++ compiler. There is a software called JM which is also used to implement H.264 codec.

    I gave the same parameters in JM and intel ipp and intel ipp beats JM in all the parameters i measured (in terms of psnr, mse and ssim).

    1. Could some one please give me one good reason as to why is the intel compiler almost 500 times faster , and better than JM output. What is making the compiler special ? Is motion estimation done in a different way in this encoder ?

    2. what is this parameter " speed/quality grade [0,3] (0-maximum speed, 3-maximum quality) " all about ? what parameters are set to default when
    a. 0,0 ( maximum speed, min quality ) is selected
    b. 3,0 ( minimum speed , max quality ) is selected


    Regards,
    Suchethan


    Jennifer Jiang (Intel)November 2, 2009 8:53 AM PST
    Rate
     
    Re: Why is Intel C++ compiler so fast ( Encoding time, decoding time )

    This is a question for IPP forum. So I'll transfer you to there and the IPP experts will answer your question.

    Thanks,
    Jennifer

    Download Intel(R) Compiler Product Updates: Registration Center.
    Try Intel(R) Compiler Products: Intel Software Evaluation Center

    shyakiNovember 2, 2009 11:06 AM PST
    Rate
     
    Re: Why is Intel C++ compiler so fast ( Encoding time, decoding time )

    hi all,

    I used the intel ipp to run the H.264 encoder and decoder through intel C++ compiler. There is a software called JM which is also used to implement H.264 codec.

    I gave the same parameters in JM and intel ipp and intel ipp beats JM in all the parameters i measured (in terms of psnr, mse and ssim).

    1. Could some one please give me one good reason as to why is the intel compiler almost 500 times faster , and better than JM output. What is making the compiler special ? Is motion estimation done in a different way in this encoder ?

    2. what is this parameter " speed/quality grade [0,3] (0-maximum speed, 3-maximum quality) " all about ? what parameters are set to default when
    a. 0,0 ( maximum speed, min quality ) is selected
    b. 3,0 ( minimum speed , max quality ) is selected


    Regards,
    Suchethan

    The IntelH264Encoder is multi-threaded and uses CPU-optimized IPP routines. The JM reference encoder is just for the academic reference. Of course IntelH264Encoder is much faster. but if you compare it with x264, you will see which one is the real winner, ^-^.

    The output image quality depends on many factors including motion search method, rate control algorithm.
    Again, JM is not on the same level of IntelH264Encoder or x264.

    suchethanswaroopNovember 2, 2009 3:57 PM PST
    Rate
     
    Re: Why is Intel C++ compiler so fast ( Encoding time, decoding time )

    Quoting - shyaki
    My laptop has  " intel core 2 duo processor" . so is this the reason why the encoding time of H.264 codec i implemented using intel ipp so fast ? what if i run the sequence in a mac pc. will i be getting the same performance ?
    Could you please elaborate on "CPU optimized IPP routines" ?

    Thanks and warm regards,
    Suchethan

    The IntelH264Encoder is multi-threaded and uses CPU-optimized IPP routines. The JM reference encoder is just for the academic reference. Of course IntelH264Encoder is much faster. but if you compare it with x264, you will see which one is the real winner, ^-^.

    The output image quality depends on many factors including motion search method, rate control algorithm.
    Again, JM is not on the same level of IntelH264Encoder or x264.



    Vladimir Dudnik (Intel)November 3, 2009 8:30 AM PST
    Rate
     
    Re: Why is Intel C++ compiler so fast ( Encoding time, decoding time )

    The one and simple reason is that IPP H.264 codec was designed to be fast and use Intel IPP libraries to exploit benefits from SIMD instructions available on modern processors. In addition to that it also able to utilize multiple cores doing some work in parallel. I do not know much on JM software but usually reference implementation is more focused on correct algorithm implementation rather than on performance.

    And yes, IPP H.264 codec (found in IPP audio-video-codecs sample is available for Windows, Linux and MacOS)

    Regards,
      Vladimir


    suchethanswaroopNovember 7, 2009 9:56 PM PST
    Rate
     
    Re: Why is Intel C++ compiler so fast ( Encoding time, decoding time )

    I am curious to know as to how the motion estimation part is done in the intel ipp H.264 encoder... Are there any changes than the conventional way it is done ( in terms of
    a. different block sizes used for motion compensation
    b. intra prediction modes used
    c. inter prediction modes used
    d. number of reference frames used
    e. motion vectors used, etc ) ?
    I wish to know the functioning of intel IPP h.264 codec and not the order of the classes in which they are called and executed.
    (As you all know, Motion estimation is the most time consuming process in the encoder)

    Regards,
    Suchethan
    The one and simple reason is that IPP H.264 codec was designed to be fast and use Intel IPP libraries to exploit benefits from SIMD instructions available on modern processors. In addition to that it also able to utilize multiple cores doing some work in parallel. I do not know much on JM software but usually reference implementation is more focused on correct algorithm implementation rather than on performance.

    And yes, IPP H.264 codec (found in IPP audio-video-codecs sample is available for Windows, Linux and MacOS)

    Regards,
    Vladimir



    Vladimir Dudnik (Intel)November 8, 2009 10:22 PM PST
    Rate
     
    Re: Why is Intel C++ compiler so fast ( Encoding time, decoding time )

    Then why just don't take a look at IPP H.264 codec? It is available in source code form, you can study and profile it to get all details you are interested in

    Regards,
      Vladimir


    mdsakuJuly 10, 2011 9:07 AM PDT
    Rate
     
    Re: Why is Intel C++ compiler so fast ( Encoding time, decoding time )

    Can anyone let me know how can I compile Intel IPP H.264 codec? Previously I used JM codec. I dont have knowledge about the Intel IPP H.264.

    Please help me.


    Naveen Gv (Intel)July 10, 2011 10:35 AM PDT
    Rate
     
    Re: Why is Intel C++ compiler so fast ( Encoding time, decoding time )

    Hi,

    Refer to readme.htm file in the IPP sample code to build the IPP based H.264 codec.

    To get IPP sample - http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-code-samples/.

    Refer to - w_ipp-samples_p_7.0.4.054\ipp-samples\audio-video-codecs

    To run this sample code, make sure that you have lasted version of IPP main package installed.

    Regards,

    Naveen Gv



Forum jump:  

Intel Software Network Forums Statistics

16,369 users have contributed to 46,341 threads and 163,954 posts to date.

In the past 24 hours, we have 18 new thread(s) 102 new posts(s), and 67 new user(s).

In the past 3 days, the most popular thread for everyone has been Formula for the intersection of straight lines The most posts were made to Take a look at John Burkhard&# The post with the most views is \"-check none\" generates error

Please welcome our newest member bikerepair8


For more complete information about compiler optimizations, see our Optimization Notice.