<?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 Hi Komal, in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111466#M25426</link>
    <description>&lt;P&gt;Hi Komal,&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;&lt;SPAN style="font-size: 13.008px;"&gt;You can use WarpAffineCubic instead of&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;ResizeShift with Cubic interpolation. The interpolation used by WarpAffineCubic is not the same cubic interpolation as ResizeShift uses, but the quality of the output image is the similar to the quality of the image produced by ResizeShift.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;Details of the cubic interpolation used by WarpAffine can be found here:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;&lt;A href="https://software.intel.com/en-us/node/505191" target="_blank"&gt;https://software.intel.com/en-us/node/505191&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;&lt;SPAN style="font-size: 1em;"&gt;To get the transform similar to ResizeShift, you need to set warp affine coefficients in the following way:&lt;/SPAN&gt;&lt;BR /&gt;
	&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[0][0] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;xFr &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[0][1] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[0][2] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;xShift *&amp;nbsp;xFr&lt;/SPAN&gt;&lt;BR /&gt;
	&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[1][0] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[1][1] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;yFr &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[1][2] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;yShift *&amp;nbsp;yFr&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;IPP 9.0 Resize functionality does not support subpixel shifts and scale factors. Scale factors are defined automatically by the&amp;nbsp;&lt;SPAN style="font-size: 13.008px;"&gt;ratio&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp;of&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;&amp;nbsp;image sizes as dst.width/src.width and dst.height/src.height.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;On top of that the resize model is slightly changed, &lt;SPAN style="font-size: 12px;"&gt;ResizeShift considers image as a set of pixel points and it&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px;"&gt;resizes a number of "distances" between image pixels, while IPP 9.0 Resize considers images as a set of "square" pixels and it resizes a number of such "squares". For example, if we 2x increase 4x4 image, in the first case for image width = 4 we have 3 distances and applying scale=2 we'll have 6 distances and 7 pixels output, while for the second approach we'll have 8 pixels.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;Thanks,&lt;BR /&gt;
	Valentin&lt;/SPAN&gt;&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 06 Mar 2017 21:47:51 GMT</pubDate>
    <dc:creator>Valentin_K_Intel</dc:creator>
    <dc:date>2017-03-06T21:47:51Z</dc:date>
    <item>
      <title>IPP 6.1 ResizeShift() equivalent in IPP 9.0</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111465#M25425</link>
      <description>Hi,

I need to get ResizeShift() method from IPP 6.1 replaced by IPP 9.0 equivalent method.
Output for IPP 9.0 using the following code does not match with IPP 6.1.

&lt;B&gt;Input Parameters used:&lt;/B&gt;

srcRoi = {8, 8};
dstRoiSize = {448,448};
dstStep = 512 * sizeof(float); //original size of image is 512x512
srcStep = srcRoi.width * sizeof(float);
xFr = yFr = 0.0136986; //
xShift = yShift = 0.5;

&lt;B&gt;IPP 6.1 call to ResizeShift:&lt;/B&gt;

ippiResizeShift_32f_C1R(src, srcSize, srcStep, srcRoi, dstStart, dstStep, dstRoiSize, xFr, yFr, xShift, yShift, IPPI_INTER_CUBIC);


&lt;B&gt;IPP 9.0 call to Resize method:&lt;/B&gt;

int pSpecSize = 0, pInitBufSize = 0;
ippiResizeGetSize_32f(srcSize, dstRoiSize, ippCubic, 0/*antialiasing*/, &amp;amp;pSpecSize, &amp;amp;pInitBufSize);

IppiResizeSpec_32f* pSpec = (IppiResizeSpec_32f*)ippMalloc(pSpecSize);
Ipp8u* pBuffer = (Ipp8u*)ippMalloc(pInitBufSize);

ippiResizeCubicInit_32f(srcSize, dstRoiSize, 0.0f/*valueB*/, 0.5f/*valueC*/, pSpec, pBuffer);
ippiResizeGetBufferSize_32f(pSpec, dstRoiSize/*dstSize*/, 1/*numChannels*/, &amp;amp;pInitBufSize);

ippFree(pBuffer);
pBuffer = (Ipp8u*)ippMalloc(pInitBufSize);

ippiResizeCubic_32f_C1R(src, srcStep, dstStart, dstStep, { xShift, yShift }/*Offset*/, dstRoiSize/* dstSize*/, ippBorderInMem, 0/*borderValue*/, pSpec, pBuffer);

ippFree(pBuffer);
ippFree(pSpec);


Am i missing any preprocessing step required for IPP 9.0 ?

&lt;B&gt;Files attached include :&lt;/B&gt;
ResizeCubicIn.png -&amp;gt; input image to IPP 6.1 &amp;amp; IPP 9.0 resize method calls.
ResizeCubicOut_IPP_90.png -&amp;gt; output image for IPP 9.0 resize() method
ResizeShiftOut_IPP61.png -&amp;gt; output image for IPP 6.1 resizeShift() mehtod.</description>
      <pubDate>Mon, 06 Mar 2017 13:43:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111465#M25425</guid>
      <dc:creator>Komal_S_</dc:creator>
      <dc:date>2017-03-06T13:43:17Z</dc:date>
    </item>
    <item>
      <title>Hi Komal,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111466#M25426</link>
      <description>&lt;P&gt;Hi Komal,&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;&lt;SPAN style="font-size: 13.008px;"&gt;You can use WarpAffineCubic instead of&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;ResizeShift with Cubic interpolation. The interpolation used by WarpAffineCubic is not the same cubic interpolation as ResizeShift uses, but the quality of the output image is the similar to the quality of the image produced by ResizeShift.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;Details of the cubic interpolation used by WarpAffine can be found here:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;&lt;A href="https://software.intel.com/en-us/node/505191" target="_blank"&gt;https://software.intel.com/en-us/node/505191&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;&lt;SPAN style="font-size: 1em;"&gt;To get the transform similar to ResizeShift, you need to set warp affine coefficients in the following way:&lt;/SPAN&gt;&lt;BR /&gt;
	&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[0][0] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;xFr &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[0][1] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[0][2] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;xShift *&amp;nbsp;xFr&lt;/SPAN&gt;&lt;BR /&gt;
	&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[1][0] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[1][1] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;yFr &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic; color: rgb(102, 102, 102); font-size: 13px;"&gt;coeffs[1][2] =&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;yShift *&amp;nbsp;yFr&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;IPP 9.0 Resize functionality does not support subpixel shifts and scale factors. Scale factors are defined automatically by the&amp;nbsp;&lt;SPAN style="font-size: 13.008px;"&gt;ratio&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp;of&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;&amp;nbsp;image sizes as dst.width/src.width and dst.height/src.height.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;On top of that the resize model is slightly changed, &lt;SPAN style="font-size: 12px;"&gt;ResizeShift considers image as a set of pixel points and it&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px;"&gt;resizes a number of "distances" between image pixels, while IPP 9.0 Resize considers images as a set of "square" pixels and it resizes a number of such "squares". For example, if we 2x increase 4x4 image, in the first case for image width = 4 we have 3 distances and applying scale=2 we'll have 6 distances and 7 pixels output, while for the second approach we'll have 8 pixels.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px;"&gt;Thanks,&lt;BR /&gt;
	Valentin&lt;/SPAN&gt;&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 Mar 2017 21:47:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111466#M25426</guid>
      <dc:creator>Valentin_K_Intel</dc:creator>
      <dc:date>2017-03-06T21:47:51Z</dc:date>
    </item>
    <item>
      <title>Thanks Valentin, for the</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111467#M25427</link>
      <description>Thanks Valentin, for the precise explanation.
I tried WarpAffineCubic() method, result looks better now, not exactly same as IPP 6.1, but should be workable now.


&lt;BLOCKQUOTE&gt;On top of that the resize model is slightly changed, ResizeShift considers image as a set of pixel points and it resizes a number of "distances" between image pixels, while IPP 9.0 Resize considers images as a set of "square" pixels and it resizes a number of such "squares". For example, if we 2x increase 4x4 image, in the first case for image width = 4 we have 3 distances and applying scale=2 we'll have 6 distances and 7 pixels output, while for the second approach we'll have 8 pixels.&lt;/BLOCKQUOTE&gt;

so is this applicable for IPP 9.0 WarpAffine() method as well ? Does WarpAffine() method too considers image as a set of "square" pixels ?</description>
      <pubDate>Tue, 07 Mar 2017 11:48:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111467#M25427</guid>
      <dc:creator>Komal_S_</dc:creator>
      <dc:date>2017-03-07T11:48:20Z</dc:date>
    </item>
    <item>
      <title>No, this is not applicable</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111468#M25428</link>
      <description>&lt;P&gt;No, this is not applicable for IPP 9.0 WarpAffine() method. It works with image pixels as with points. So the used approach is similar to ResizeShift.&lt;/P&gt;

&lt;P&gt;Thanks,&lt;BR /&gt;
	​Valentin&lt;/P&gt;</description>
      <pubDate>Tue, 07 Mar 2017 13:07:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111468#M25428</guid>
      <dc:creator>Valentin_K_Intel</dc:creator>
      <dc:date>2017-03-07T13:07:33Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111469#M25429</link>
      <description>Hi,

As mentioned earlier, I used WarpAffine() method with ippCubic(i.e. 2-parameter Cubic interpolation) from IPP 9.0 which gave me similar, but not equal, results as compared to IPP 6.1 ResizeShift() using IPPI_INTER_CUBIC.

But now i'm in a need to further minimize the difference between these 2 implementations.

So, is there any reference for IPPI_INTER_CUBIC approach, that i can use for my own implementation ?

Thanks,
Komal</description>
      <pubDate>Thu, 23 Mar 2017 07:05:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111469#M25429</guid>
      <dc:creator>Komal_S_</dc:creator>
      <dc:date>2017-03-23T07:05:28Z</dc:date>
    </item>
    <item>
      <title>Hi Komal,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111470#M25430</link>
      <description>&lt;P&gt;Hi Komal,&lt;/P&gt;

&lt;P&gt;Sorry for the delay with the answer, I was on sick leave.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;The interpolation IPPI_INTER_CUBIC has the same form as the ippCubic interpolation (https://software.intel.com/en-us/node/505191), but it uses different formulas:&lt;/P&gt;

&lt;P&gt;k(x) = (1.0/6.0) * ( {3.0 * (x^3) - 6.0*(x^2) - 3.0*x + 6.0; |x|&amp;lt;1}; {-(x^3) + 6.0*(x^2) - 11.0 * x + 6.0&lt;SPAN style="font-size: 13.008px;"&gt;; 1&amp;lt;=|x|&amp;lt;2&lt;/SPAN&gt;}; {0; |x|&amp;gt;=2} )&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Valentin&lt;/P&gt;</description>
      <pubDate>Sat, 08 Apr 2017 12:32:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-6-1-ResizeShift-equivalent-in-IPP-9-0/m-p/1111470#M25430</guid>
      <dc:creator>Valentin_K_Intel</dc:creator>
      <dc:date>2017-04-08T12:32:15Z</dc:date>
    </item>
  </channel>
</rss>

