<?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 Sorry, I meant to ask where in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104348#M25256</link>
    <description>&lt;P&gt;Sorry, I meant to ask where is the 16 coming from :-)&lt;/P&gt;</description>
    <pubDate>Wed, 07 Sep 2016 20:00:33 GMT</pubDate>
    <dc:creator>umundry</dc:creator>
    <dc:date>2016-09-07T20:00:33Z</dc:date>
    <item>
      <title>2D Wavelet example test implementation problem</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104344#M25252</link>
      <description>&lt;P&gt;I am having a problem with ref. Below is my implementation. The forward transform works fine, I can see the 4 output images look good. The problem is with the inverse, its output (to be the same image dimensions as the input image, image is square (orgWidth==orgHeight)) has aliasing and it looks like every second row and every second column content is blank. I can't find a way to embed an output image here. Please let me know how I can get that to you in&amp;nbsp;case you want to take a look.&lt;/P&gt;

&lt;P&gt;Can you please check and see what the problem may be?&lt;/P&gt;

&lt;P&gt;Thank you!!&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;IppStatus ippStatus = ippStsNoErr;

&amp;nbsp;IppiWTFwdSpec_32f_C1R* pSpecFwd;
&amp;nbsp;IppiWTInvSpec_32f_C1R* pSpecInv;
&amp;nbsp;int specSizeFwd, specSizeInv;
&amp;nbsp;Ipp32f pTapsLow[3] = { 0.25, 0.5, 0.25 };
&amp;nbsp;int lenLow = 3;
&amp;nbsp;int anchorLow = 1;
&amp;nbsp;Ipp32f pTapsHigh[3] = { 0.75, -0.25, -0.125 };
&amp;nbsp;int lenHigh = 3;
&amp;nbsp;int anchorHigh = 1;

&amp;nbsp;int sourceBWidth = orgWidth + 1;
&amp;nbsp;int sourceBArraySize = sourceBWidth * sourceBWidth;

&amp;nbsp;Ipp32f *pSrcB = new Ipp32f[sourceBArraySize];
&amp;nbsp;int srcStepB = sourceBWidth * sizeof(Ipp32f);
&amp;nbsp;IppiSize roiSizeB = { sourceBWidth, sourceBWidth };
&amp;nbsp;int srcStep = orgWidth * sizeof(Ipp32f);
&amp;nbsp;IppiSize roiSize = { orgWidth, orgWidth };

&amp;nbsp;int subWidth = orgWidth / 2;

&amp;nbsp;Ipp32f *pDetailXDst = new Ipp32f[subWidth * subWidth];
&amp;nbsp;Ipp32f *pDetailYDst = new Ipp32f[subWidth * subWidth];
&amp;nbsp;Ipp32f *pDetailXYDst = new Ipp32f[subWidth * subWidth];
&amp;nbsp;Ipp32f *pApproxDst = new Ipp32f[subWidth * subWidth];

&amp;nbsp;IppiSize dstRoiSize = { subWidth, subWidth };
&amp;nbsp;int bufSizeFwd, bufSizeInv;
&amp;nbsp;Ipp8u* pBufferFwd;
&amp;nbsp;Ipp8u* pBufferInv;
&amp;nbsp;IppiSize roiInvSize = { subWidth, subWidth };
&amp;nbsp;int stepDstInv = orgWidth * sizeof(Ipp32f);

&amp;nbsp;int subWidthPlusOne = subWidth + 1;
&amp;nbsp;Ipp32f *pAppB = new Ipp32f[subWidthPlusOne * subWidthPlusOne];
&amp;nbsp;Ipp32f *pXB = new Ipp32f[subWidthPlusOne * subWidthPlusOne];
&amp;nbsp;Ipp32f *pYB = new Ipp32f[subWidthPlusOne * subWidthPlusOne];
&amp;nbsp;Ipp32f *pXYB = new Ipp32f[subWidthPlusOne * subWidthPlusOne];
&amp;nbsp;int StepB = subWidthPlusOne * sizeof(Ipp32f);

&amp;nbsp;IppiSize roiInvSizeB = { (subWidth + 1), (subWidth + 1) };
&amp;nbsp;int approxStep, detailXStep, detailYStep, detailXYStep;
&amp;nbsp;approxStep = detailXStep = detailYStep = detailXYStep = subWidth * sizeof(Ipp32f);
&amp;nbsp;//adds border to the source image
&amp;nbsp;ippStatus = ippiCopyWrapBorder_32s_C1R((Ipp32s*)pSrc, srcStep, roiSize, (Ipp32s*)pSrcB, srcStepB, roiSizeB, 1, 1);
&amp;nbsp;//performs forward&amp;nbsp; wavelet transform 
&amp;nbsp;ippStatus = ippiWTFwdGetSize_32f(1, lenLow, anchorLow, lenHigh, anchorHigh, &amp;amp;specSizeFwd, &amp;amp;bufSizeFwd);
&amp;nbsp;pSpecFwd = (IppiWTFwdSpec_32f_C1R*)ippMalloc(specSizeFwd);
&amp;nbsp;pBufferFwd = (Ipp8u*)ippMalloc(bufSizeFwd);
&amp;nbsp;ippStatus = ippiWTFwdInit_32f_C1R(pSpecFwd, pTapsLow, lenLow, anchorLow, pTapsHigh, lenHigh, anchorHigh);
&amp;nbsp;ippStatus = ippiWTFwd_32f_C1R(pSrcB + roiSizeB.width + 1, srcStepB, pApproxDst, approxStep,
&amp;nbsp;&amp;nbsp;pDetailXDst, detailXStep, pDetailYDst, detailYStep, pDetailXYDst, detailXYStep, dstRoiSize, pSpecFwd, pBufferFwd);



/*&amp;nbsp;ippStatus = ippiCopy_32f_C1R(pApproxDst, approxStep, pDst, srcStep, dstRoiSize);
&amp;nbsp;ippStatus = ippiCopy_32f_C1R(pDetailXDst, approxStep, pDst + subWidth, srcStep, dstRoiSize);
&amp;nbsp;ippStatus = ippiCopy_32f_C1R(pDetailYDst, approxStep, pDst + (subWidth * m_nVolLoadedX), srcStep, dstRoiSize);
&amp;nbsp;ippStatus = ippiCopy_32f_C1R(pDetailXYDst, approxStep, pDst + subWidth + (subWidth * m_nVolLoadedX), srcStep, dstRoiSize);
*/

&amp;nbsp;ippStatus = ippiWTInvGetSize_32f(1, lenLow, anchorLow, lenHigh, anchorHigh, &amp;amp;specSizeInv, &amp;amp;bufSizeInv);
&amp;nbsp;pSpecInv = (IppiWTInvSpec_32f_C1R*)ippMalloc(specSizeInv);
&amp;nbsp;pBufferInv = (Ipp8u*)ippMalloc(bufSizeInv);
&amp;nbsp;ippStatus = ippiWTInvInit_32f_C1R(pSpecInv, pTapsLow, lenLow, anchorLow, pTapsHigh, lenHigh, anchorHigh);
&amp;nbsp;//adds border to four images obtained after ippiWTFwd
&amp;nbsp;ippStatus = ippiCopyWrapBorder_32s_C1R((Ipp32s*)pApproxDst, approxStep, dstRoiSize, (Ipp32s*)pAppB, StepB, roiInvSizeB, 0, 0);
&amp;nbsp;ippStatus = ippiCopyWrapBorder_32s_C1R((Ipp32s*)pDetailXDst, detailXStep, dstRoiSize, (Ipp32s*)pXB, StepB, roiInvSizeB, 0, 0);
&amp;nbsp;ippStatus = ippiCopyWrapBorder_32s_C1R((Ipp32s*)pDetailYDst, detailYStep, dstRoiSize, (Ipp32s*)pYB, StepB, roiInvSizeB, 0, 0);
&amp;nbsp;ippStatus = ippiCopyWrapBorder_32s_C1R((Ipp32s*)pDetailXYDst, detailXYStep, dstRoiSize, (Ipp32s*)pXYB, StepB, roiInvSizeB, 0, 0);
&amp;nbsp;//performs inverse&amp;nbsp; wavelet transform&amp;nbsp;&amp;nbsp; 
&amp;nbsp;ippStatus = ippiWTInv_32f_C1R(pAppB, StepB, pXB, StepB, pYB, StepB, pXYB, StepB, roiInvSize, pDst, stepDstInv, pSpecInv, pBufferInv);

//&amp;nbsp;printf_32f_2D("After WTFinv -&amp;gt;\n pDstInv", pDst, roiSize, stepDstInv, ippStsNoErr);

&amp;nbsp;ippFree(pSpecFwd);
&amp;nbsp;ippFree(pSpecInv);
&amp;nbsp;ippFree(pBufferFwd);
&amp;nbsp;ippFree(pBufferInv);
&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 18 Aug 2016 22:04:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104344#M25252</guid>
      <dc:creator>umundry</dc:creator>
      <dc:date>2016-08-18T22:04:06Z</dc:date>
    </item>
    <item>
      <title>Found a way to upload images,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104345#M25253</link>
      <description>&lt;P&gt;I found a way to upload images, they are attached. So here is the forward output as well as the inverse output. Note, the input image&amp;nbsp;has&amp;nbsp;homogeneous constant pixel values to make visualizing the problem easier.&lt;/P&gt;

&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Thu, 18 Aug 2016 22:09:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104345#M25253</guid>
      <dc:creator>umundry</dc:creator>
      <dc:date>2016-08-18T22:09:23Z</dc:date>
    </item>
    <item>
      <title>Hello,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104346#M25254</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;
	&lt;BR /&gt;
	For the wavelet transform, it need to correctly extend the borders for the input data.&amp;nbsp; I attached some example that shows the orthogonal and biorthogonal wavelet for the perfect transform.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Aug 2016 02:28:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104346#M25254</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2016-08-25T02:28:58Z</dc:date>
    </item>
    <item>
      <title>Thank you Chao!</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104347#M25255</link>
      <description>&lt;P&gt;Thank you Chao!&lt;/P&gt;

&lt;P&gt;I have the Ortho4 and Ortho6 working, but the test2d is giving me trouble. Can you please explain where the 12 in&lt;/P&gt;

&lt;P&gt;Ipp32f pSrcB[16*16];&lt;/P&gt;

&lt;P&gt;is coming from?&lt;/P&gt;

&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Wed, 07 Sep 2016 18:46:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104347#M25255</guid>
      <dc:creator>umundry</dc:creator>
      <dc:date>2016-09-07T18:46:58Z</dc:date>
    </item>
    <item>
      <title>Sorry, I meant to ask where</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104348#M25256</link>
      <description>&lt;P&gt;Sorry, I meant to ask where is the 16 coming from :-)&lt;/P&gt;</description>
      <pubDate>Wed, 07 Sep 2016 20:00:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/2D-Wavelet-example-test-implementation-problem/m-p/1104348#M25256</guid>
      <dc:creator>umundry</dc:creator>
      <dc:date>2016-09-07T20:00:33Z</dc:date>
    </item>
  </channel>
</rss>

