<?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: QualityIndex bug? (IPP 5.3) in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/QualityIndex-bug-IPP-5-3/m-p/851396#M6606</link>
    <description>For those who aresuffering the bug, the fixed is includedin IPP 6.1 update 5 release. &lt;BR /&gt;Thanks, &lt;BR /&gt;Ying</description>
    <pubDate>Thu, 22 Apr 2010 09:28:26 GMT</pubDate>
    <dc:creator>Ying_H_Intel</dc:creator>
    <dc:date>2010-04-22T09:28:26Z</dc:date>
    <item>
      <title>QualityIndex bug? (IPP 5.3)</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/QualityIndex-bug-IPP-5-3/m-p/851393#M6603</link>
      <description>Have odd behaviour with the QualityIndex function, whereby the first time I call it (under certain circumstances) it returns ippStsQualityIndexErr (Quality Index can't be calculated for image filled with constant), but on subsequent calls with exactly the same image information it works fine.&lt;BR /&gt;&lt;BR /&gt;Scenario: make two images, initialise with Jaehne pattern, apply gaussian to one image, then find quality index. Code shown below. This can also easily be replicated using the IPPI demo program.&lt;BR /&gt;&lt;BR /&gt;Code -&amp;gt;&lt;BR /&gt;&lt;BR /&gt;void main()&lt;BR /&gt;{&lt;BR /&gt; const int width = 640;&lt;BR /&gt; const int height = 480;&lt;BR /&gt;&lt;BR /&gt; Ipp8u pSrc1[width * height];&lt;BR /&gt; Ipp8u pSrc2[width * height];&lt;BR /&gt;&lt;BR /&gt; int step = width * sizeof(Ipp8u);&lt;BR /&gt; IppiSize wholeImageROI = { width, height };&lt;BR /&gt;&lt;BR /&gt; ippiImageJaehne_8u_C1R(pSrc1, step, wholeImageROI);&lt;BR /&gt; ippiImageJaehne_8u_C1R(pSrc2, step, wholeImageROI);&lt;BR /&gt;&lt;BR /&gt; // Gaussian with 1-pixel border taken off&lt;BR /&gt; //IppiSize gaussRoiSize = {638, 478};&lt;BR /&gt; IppiSize gaussRoiSize = {width - 2, height - 2};&lt;BR /&gt; ippiFilterGauss_8u_C1R(&lt;BR /&gt; pSrc2 + step + 1,&lt;BR /&gt; step, &lt;BR /&gt; pSrc1 + step + 1,&lt;BR /&gt; step,&lt;BR /&gt; gaussRoiSize,&lt;BR /&gt; ippMskSize3x3);&lt;BR /&gt; &lt;BR /&gt; Ipp32f pQIndex = -999;&lt;BR /&gt; IppStatus ippStatus;&lt;BR /&gt;&lt;BR /&gt; // First call fails with ippStsQualityIndexErr&lt;BR /&gt; &lt;B&gt;ippStatus = ippiQualityIndex_8u32f_C1R(pSrc1, step, pSrc2, step, wholeImageROI, &amp;amp;pQIndex);&lt;BR /&gt; &lt;/B&gt;ippStatus = ippiQualityIndex_8u32f_C1R(pSrc1, step, pSrc2, step, wholeImageROI, &amp;amp;pQIndex);&lt;BR /&gt; ippStatus = ippiQualityIndex_8u32f_C1R(pSrc1, step, pSrc2, step, wholeImageROI, &amp;amp;pQIndex);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;Any thoughts on this appreciated!&lt;BR /&gt;&lt;BR /&gt;Jon.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 20 Jul 2009 12:11:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/QualityIndex-bug-IPP-5-3/m-p/851393#M6603</guid>
      <dc:creator>jon_shadforth</dc:creator>
      <dc:date>2009-07-20T12:11:12Z</dc:date>
    </item>
    <item>
      <title>Re: QualityIndex bug?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/QualityIndex-bug-IPP-5-3/m-p/851394#M6604</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/427155"&gt;jon_shadforth&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;Have odd behaviour with the QualityIndex function, whereby the first time I call it (under certain circumstances) it returns ippStsQualityIndexErr (Quality Index can't be calculated for image filled with constant), but on subsequent calls with exactly the same image information it works fine.&lt;BR /&gt;&lt;BR /&gt;Scenario: make two images, initialise with Jaehne pattern, apply gaussian to one image, then find quality index. Code shown below. This can also easily be replicated using the IPPI demo program.&lt;BR /&gt;&lt;BR /&gt;Code -&amp;gt;&lt;BR /&gt;&lt;BR /&gt;void main()&lt;BR /&gt;{&lt;BR /&gt; const int width = 640;&lt;BR /&gt; const int height = 480;&lt;BR /&gt;&lt;BR /&gt; Ipp8u pSrc1[width * height];&lt;BR /&gt; Ipp8u pSrc2[width * height];&lt;BR /&gt;&lt;BR /&gt; int step = width * sizeof(Ipp8u);&lt;BR /&gt; IppiSize wholeImageROI = { width, height };&lt;BR /&gt;&lt;BR /&gt; ippiImageJaehne_8u_C1R(pSrc1, step, wholeImageROI);&lt;BR /&gt; ippiImageJaehne_8u_C1R(pSrc2, step, wholeImageROI);&lt;BR /&gt;&lt;BR /&gt; // Gaussian with 1-pixel border taken off&lt;BR /&gt; //IppiSize gaussRoiSize = {638, 478};&lt;BR /&gt; IppiSize gaussRoiSize = {width - 2, height - 2};&lt;BR /&gt; ippiFilterGauss_8u_C1R(&lt;BR /&gt; pSrc2 + step + 1,&lt;BR /&gt; step, &lt;BR /&gt; pSrc1 + step + 1,&lt;BR /&gt; step,&lt;BR /&gt; gaussRoiSize,&lt;BR /&gt; ippMskSize3x3);&lt;BR /&gt; &lt;BR /&gt; Ipp32f pQIndex = -999;&lt;BR /&gt; IppStatus ippStatus;&lt;BR /&gt;&lt;BR /&gt; // First call fails with ippStsQualityIndexErr&lt;BR /&gt; &lt;STRONG&gt;ippStatus = ippiQualityIndex_8u32f_C1R(pSrc1, step, pSrc2, step, wholeImageROI, &amp;amp;pQIndex);&lt;BR /&gt; &lt;/STRONG&gt;ippStatus = ippiQualityIndex_8u32f_C1R(pSrc1, step, pSrc2, step, wholeImageROI, &amp;amp;pQIndex);&lt;BR /&gt; ippStatus = ippiQualityIndex_8u32f_C1R(pSrc1, step, pSrc2, step, wholeImageROI, &amp;amp;pQIndex);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;Any thoughts on this appreciated!&lt;BR /&gt;&lt;BR /&gt;Jon.&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Additional info: this may be related to the Gauss function. If, in the above example, I insert a duplicate call to the Gauss function above the final QualityIndex function call, then the following QualityFunction call again fails.&lt;BR /&gt;&lt;BR /&gt;As I mentioned this can be replicated using the IPPI demo program. (Create a 640*480 1C image with Jaehne, do a 3*3 Gauss which produces a new image using reduced ROI, then run quality index on the two images and the first time it will fail).&lt;BR /&gt;</description>
      <pubDate>Mon, 20 Jul 2009 12:59:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/QualityIndex-bug-IPP-5-3/m-p/851394#M6604</guid>
      <dc:creator>jon_shadforth</dc:creator>
      <dc:date>2009-07-20T12:59:04Z</dc:date>
    </item>
    <item>
      <title>Re: QualityIndex bug? (IPP 5.3)</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/QualityIndex-bug-IPP-5-3/m-p/851395#M6605</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/427155"&gt;jon_shadforth&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;&lt;BR /&gt;Additional info: this may be related to the Gauss function. If, in the above example, I insert a duplicate call to the Gauss function above the final QualityIndex function call, then the following QualityFunction call again fails.&lt;BR /&gt;&lt;BR /&gt;As I mentioned this can be replicated using the IPPI demo program. (Create a 640*480 1C image with Jaehne, do a 3*3 Gauss which produces a new image using reduced ROI, then run quality index on the two images and the first time it will fail).&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hello Jon, &lt;BR /&gt;
&lt;P&gt;Thank you a lot for the catch. We can reproduce the problem. It is really a bug in IPP function, - not in ippiQualityIndex, but in ippiFilterGauss_8u_C1R function (in dynamic and threaded static libraries only, no such bug in non-threaded static version, see static linkage mode here &amp;lt;&lt;A href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-for-windows-find-the-intel-ipp-libraries-needed-by-your-application/"&gt;http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-for-windows-find-the-intel-ipp-libraries-needed-by-your-application/&amp;gt;&lt;/A&gt; We will fix it in next release.&lt;/P&gt;
&lt;P&gt;There are several possible workarounds , you maytry them temporarily&lt;BR /&gt;for example, use no-threaded static library or disable the thread inippiFilterGuass&lt;BR /&gt; int n;&lt;/P&gt;
&lt;P&gt; ippGetNumThreads( &amp;amp;n );&lt;/P&gt;
&lt;P&gt; ippSetNumThreads( 1 );&lt;/P&gt;
&lt;P&gt; ippiFilterGauss_8u_C1R();&lt;/P&gt;
&lt;P&gt; ippSetNumThreads( n );&lt;/P&gt;
&lt;P&gt;......................&lt;/P&gt;
Thanks&lt;BR /&gt;Ying &lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 04 Aug 2009 09:28:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/QualityIndex-bug-IPP-5-3/m-p/851395#M6605</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2009-08-04T09:28:34Z</dc:date>
    </item>
    <item>
      <title>Re: QualityIndex bug? (IPP 5.3)</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/QualityIndex-bug-IPP-5-3/m-p/851396#M6606</link>
      <description>For those who aresuffering the bug, the fixed is includedin IPP 6.1 update 5 release. &lt;BR /&gt;Thanks, &lt;BR /&gt;Ying</description>
      <pubDate>Thu, 22 Apr 2010 09:28:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/QualityIndex-bug-IPP-5-3/m-p/851396#M6606</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2010-04-22T09:28:26Z</dc:date>
    </item>
  </channel>
</rss>

