<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: AVC IPP deblocking less efficient then plain C++ implementa in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/AVC-IPP-deblocking-less-efficient-then-plain-C-implementation/m-p/912991#M14511</link>
    <description>&lt;P&gt;Hi Bart,&lt;/P&gt;
&lt;P&gt;If you link with IPP static libraries, please make sure you call ippStaticInit function somewhere in the beginning of your program. Otherwise, PX (which is just C code) branch of IPP specific code will be dispatched.&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;</description>
    <pubDate>Tue, 27 May 2008 10:07:01 GMT</pubDate>
    <dc:creator>Vladimir_Dudnik</dc:creator>
    <dc:date>2008-05-27T10:07:01Z</dc:date>
    <item>
      <title>AVC IPP deblocking less efficient then plain C++ implementation</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/AVC-IPP-deblocking-less-efficient-then-plain-C-implementation/m-p/912990#M14510</link>
      <description>Hi all,&lt;BR /&gt;&lt;BR /&gt;I'm working on a SVC decoder, and I was interested in plugging some IPP blocks in it to see the performance gain. I choose the deblocking block, as the IPP function call is the closest to my existing implementation, and it also is the most complex block. I will simplify my question to the luma component filtering. The buffer is allocated using&lt;BR /&gt;&lt;PRE&gt; _LumaBuffer = ippiMalloc_8u_C1(...);&lt;/PRE&gt;and the deblocking (vertical only) is called using&lt;BR /&gt;&lt;PRE&gt; IppStatus status = &lt;BR /&gt; ippiFilterDeblockingLuma_VerEdge_H264_8u_C1IR(p_crnt_mb,&lt;BR /&gt; stride,&lt;BR /&gt; alpha,&lt;BR /&gt; beta,&lt;BR /&gt; pThresholds,&lt;BR /&gt; strength);&lt;/PRE&gt;where p_crnt_mb is a pointer to the _LumaBuffer (which should be aligned), the other parameters are const array, but no special care is taken for the alignment. Those are basically all the changes I have done to my code. I implemented all these function for the complete deblocking process (luma/chroma, hor/ver), and functionally it is correct. &lt;BR /&gt;&lt;BR /&gt;However, instead of seeing a performance speed up, I see a slow down in comparison with my code, which is not at all optimized. Quantify reports a increase of time spent in the functions of 2 to 4 times. Also a lot of time is spent in .moduleEntry.IPPI-5.3. I did not expect a (huge) performance boost, but neither a significant slow down.&lt;BR /&gt;&lt;BR /&gt;So I must do something wrong, but I don't really have clue what. I compiled the AVC sample code using the Microsoft compiler from Visual Studio 2005, and saw a performance of 66fps for a 1080p sequence, which is quite impressive. So it can work, only not in my code. So these are some of my questions:&lt;BR /&gt;&lt;BR /&gt;* Are there special compiler option I should or should not use, or preprocessor definitions (I use the Visual Studio 2005 compiler)? &lt;BR /&gt;* Do I need to take special care with the alignment of the other parameters, maybe using the structure accompanying the deblocking functionality (_IppiFilterDeblock_8u)?&lt;BR /&gt;* Are there special keywords I should be using, like restrict, align?&lt;BR /&gt;&lt;BR /&gt;The implementation of the functionalities is straight forward, and it is functionally correct, but it is less clear what to do additionally to get the performance boost.&lt;BR /&gt;&lt;BR /&gt;Looking forward to some performance gain ;-),&lt;BR /&gt;&lt;BR /&gt;Bart&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 13 Mar 2008 13:59:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/AVC-IPP-deblocking-less-efficient-then-plain-C-implementation/m-p/912990#M14510</guid>
      <dc:creator>masschel</dc:creator>
      <dc:date>2008-03-13T13:59:30Z</dc:date>
    </item>
    <item>
      <title>Re: AVC IPP deblocking less efficient then plain C++ implementa</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/AVC-IPP-deblocking-less-efficient-then-plain-C-implementation/m-p/912991#M14511</link>
      <description>&lt;P&gt;Hi Bart,&lt;/P&gt;
&lt;P&gt;If you link with IPP static libraries, please make sure you call ippStaticInit function somewhere in the beginning of your program. Otherwise, PX (which is just C code) branch of IPP specific code will be dispatched.&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2008 10:07:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/AVC-IPP-deblocking-less-efficient-then-plain-C-implementation/m-p/912991#M14511</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2008-05-27T10:07:01Z</dc:date>
    </item>
  </channel>
</rss>

