<?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 Maximum Size of Float Image in ippiCrossCorrValid in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779429#M1427</link>
    <description>Hi Sergey,&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Thanks a lot for your response.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;I can't confirm it practically but it looks like your problem is related to a wrong size ofsome internal buffer(s).&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Unfortunately, my problem is not related to that. I have checked several times the allocation of those pointers.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Also, if I use a smaller image, the "ippiCrossCorr_Norm" works without any problem, by using exactly the same code (I am reading the image from a BMP file).&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The problem, I think, is related to what the "ippiCrossCorr_Norm" does inside once it is called.&lt;/DIV&gt;&lt;DIV&gt;It seems to me that while I can allocate 2^30 bytes, the working image cannot be this size, because it appears that the "ippiCrossCorr_Norm" is allocating memory internally for the processing.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Unfortunately, the only ones who can response are the developers of the library.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I kindly invite you to try (whenever you have time) to use the "ippiCrossCorr_Norm" for an image size similar to the one of my example, to confirm that the function will not work.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;I am still wondering what the maximum size for an image is...and I think that the only ones who can tell me are IPP developers. What do you think?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Best regards,&lt;/DIV&gt;&lt;DIV&gt;Luis Sapaico&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Fri, 06 Apr 2012 09:34:29 GMT</pubDate>
    <dc:creator>rsapaico</dc:creator>
    <dc:date>2012-04-06T09:34:29Z</dc:date>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779423#M1421</link>
      <description>Hello,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I hope somebody can help me with the following.&lt;/DIV&gt;&lt;DIV&gt;I am using Intel IPP 6.1, and I am running on Windows 7 x64 (16GB of memory).&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I am trying to use the "ippiCrossCorrValid_NormLevel_8u32f_C1R" function; however, it returns the following error:ippStsMemAllocErr (Not enough memory allocated for the operation).&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I have searched in the forum; however I haven't been able to find anything with regard to this problem.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The relevant part of my code is something like (the pointers to the sample and template have been defined previously without any problem):&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;[cpp]IppStatus ippsta;
IppSize ippszSam = {16443,3284};
int iStepSam = ippszSam.width;
IppSize ippszTmpl = {4899,3280};
int iStepTmpl = ippszTmpl.width;
int iXncc = ippszSam.width - ippszTmpl.width + 1;	// result width
int iYncc = ippszSam.height - ippszTmpl.height + 1;	// result height
int iStepncc = iXncc * sizeof(float);			// result step size
IppiSize ippszncc = { iXncc , iYncc };				
std::vector&lt;FLOAT&gt; vfNCC( iXncc * iYncc );		// result container
float* pfNCC = &amp;amp;(vfNCC[0]);
// Calling the correlation routine
ippsta = ippiCrossCorrValid_NormLevel_8u32f_C1R( pucSam, iStepSam, ippszSam,
		pucTemplate, iStepTmpl, ippszTmpl,
		pfNCC, iStepncc );[/cpp] &lt;/FLOAT&gt;&lt;/DIV&gt;&lt;DIV&gt;I have seen in the following page that the maximum allowed size for an image should be ~2^29:&lt;/DIV&gt;&lt;DIV&gt;&lt;A href="http://software.intel.com/en-us/articles/mkl-ipp-choosing-an-fft/"&gt;http://software.intel.com/en-us/articles/mkl-ipp-choosing-an-fft/&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;However, in this case, even if the Sample image is converted to float, it will require less than 2^28 bytes (16443 x 3284 x 4 bytes).&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Therefore, I don't have it clear why the IPP function is returning the "ippStsMemAllocErr" status. So, I would like to ask a couple of things:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;1. For the above function, and the above image sizes, what is the number of bytes allocated in memory? Is my assumption correct?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;2. Is the maximum allowed size actually ~2^29 bytes?&lt;/DIV&gt;&lt;DIV&gt;If so, why is the call to the IPP functions returning an error?&lt;/DIV&gt;&lt;DIV&gt;If not, then which is the maximum allowed size when dealing with images?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;If there is any other information that I may have missed, please kindly let me know.&lt;/DIV&gt;&lt;DIV&gt;Thank you very much in advance for your kind cooperation.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Best regards,&lt;/DIV&gt;&lt;DIV&gt;Luis&lt;/DIV&gt;</description>
      <pubDate>Tue, 03 Apr 2012 10:14:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779423#M1421</guid>
      <dc:creator>rsapaico</dc:creator>
      <dc:date>2012-04-03T10:14:37Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779424#M1422</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Please take a look at my comments.&lt;BR /&gt;&lt;BR /&gt;Quoting &lt;A jquery1333457494609="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=488056" href="https://community.intel.com/en-us/profile/488056/" class="basic"&gt;rsapaico&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;DIV&gt;&lt;EM&gt;I am using Intel IPP 6.1, and I am running on Windows 7 x64 (16GB of memory).&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;I am trying to use the "ippiCrossCorrValid_NormLevel_8u32f_C1R" function; however, it returns the following error:ippStsMemAllocErr (Not enough memory allocated for the operation).&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; &lt;SPAN style="text-decoration: underline;"&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]&lt;/SPAN&gt; It is possibly related to small valuesassigned for&lt;STRONG&gt;Heap&lt;/STRONG&gt; ( Reserve / Commit )and &lt;STRONG&gt;Stack&lt;/STRONG&gt;( Reserve / Commit). Try to check the&lt;STRONG&gt;Linker Settings&lt;/STRONG&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;I have searched in the forum; however I haven't been able to find anything with regard to this problem.&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;The relevant part of my code is something like (the pointers to the sample and template have been defined previously without any problem):&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="dp-highlighter"&gt;&lt;DIV class="bar"&gt;&lt;DIV class="tools"&gt;&lt;A href="#" onclick="dp.sh.Toolbar.Command('CollapseSource',this);return false;"&gt;&lt;EM&gt;- collapse source&lt;/EM&gt;&lt;/A&gt;&lt;A href="#" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;"&gt;&lt;EM&gt;view plain&lt;/EM&gt;&lt;/A&gt;&lt;A href="#" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;"&gt;&lt;EM&gt;copy to clipboard&lt;/EM&gt;&lt;/A&gt;&lt;A href="#" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;"&gt;&lt;EM&gt;print&lt;/EM&gt;&lt;/A&gt;&lt;A href="#" onclick="dp.sh.Toolbar.Command('About',this);return false;"&gt;&lt;EM&gt;?&lt;/EM&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;OL class="dp-cpp"&gt;&lt;LI class="alt"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;EM&gt;IppStatusippsta; &lt;/EM&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;EM&gt;IppSizeippszSam={16443,3284};&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;SPAN style="text-decoration: underline;"&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]&lt;/SPAN&gt; This is ~&lt;STRONG&gt;205MB&lt;/STRONG&gt; and this is nota big size, actually.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI class="alt"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN class="datatypes"&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;iStepSam=ippszSam.width; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;EM&gt;IppSizeippszTmpl={4899,3280}; &lt;/EM&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI class="alt"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN class="datatypes"&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;iStepTmpl=ippszTmpl.width; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN class="datatypes"&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;iXncc=ippszSam.width-ippszTmpl.width+1;&lt;/SPAN&gt;&lt;SPAN class="comment"&gt;//resultwidth &lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;LI class="alt"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN class="datatypes"&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;iYncc=ippszSam.height-ippszTmpl.height+1;&lt;/SPAN&gt;&lt;SPAN class="comment"&gt;//resultheight &lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN class="datatypes"&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;iStepncc=iXncc*&lt;/SPAN&gt;&lt;SPAN class="keyword"&gt;sizeof&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN class="datatypes"&gt;float&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;SPAN class="comment"&gt;//resultstepsize &lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;LI class="alt"&gt;&lt;SPAN&gt;&lt;EM&gt;IppiSizeippszncc={iXncc,iYncc}; &lt;/EM&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;EM&gt;&lt;SPAN&gt;std::vector&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="datatypes"&gt;float&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;vfNCC(iXncc*iYncc);&lt;/SPAN&gt;&lt;SPAN class="comment"&gt;//resultcontainer&lt;/SPAN&gt;&lt;/EM&gt;&lt;SPAN&gt;&lt;EM&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;SPAN style="text-decoration: underline;"&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]&lt;/SPAN&gt; I would recommend to allocate memory forthe array from the &lt;STRONG&gt;Heap&lt;/STRONG&gt; instead and later it could be&lt;BR /&gt; copied to the &lt;STRONG&gt;STL&lt;/STRONG&gt; '&lt;STRONG&gt;vector&lt;/STRONG&gt;' for processing.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI class="alt"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN class="datatypes"&gt;float&lt;/SPAN&gt;&lt;SPAN&gt;*pfNCC=&amp;amp;(vfNCC[0]); &lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN class="comment"&gt;//Callingthecorrelationroutine &lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/LI&gt;&lt;LI class="alt"&gt;&lt;SPAN&gt;&lt;EM&gt;ippsta=ippiCrossCorrValid_NormLevel_8u32f_C1R(pucSam,iStepSam,ippszSam, &lt;/EM&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;EM&gt;pucTemplate,iStepTmpl,ippszTmpl, &lt;/EM&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI class="alt"&gt;&lt;SPAN&gt;&lt;EM&gt;pfNCC,iStepncc);&lt;/EM&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;[cpp]&lt;EM&gt;...&lt;/EM&gt;[/cpp]&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;I have seen in the following page that the maximum allowed size for an image should be ~2^29:&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; &lt;SPAN style="text-decoration: underline;"&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]&lt;/SPAN&gt; I've donetesting some time ago for a &lt;STRONG&gt;32-bit&lt;/STRONG&gt; Windows platformand it is ~&lt;STRONG&gt;2^30&lt;/STRONG&gt;, or &lt;STRONG&gt;1.09GB&lt;/STRONG&gt;,&lt;BR /&gt; and if your image is based on '&lt;STRONG&gt;8u&lt;/STRONG&gt;' type this is an image with size&lt;STRONG&gt;34207x34207&lt;/STRONG&gt;.&lt;BR /&gt; However, in case of a &lt;STRONG&gt;64-bit&lt;/STRONG&gt; Windows platform numbers could be higher.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;A href="http://software.intel.com/en-us/articles/mkl-ipp-choosing-an-fft/"&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/A&gt;&lt;A href="http://software.intel.com/en-us/articles/mkl-ipp-choosing-an-fft/" target="_blank"&gt;http://software.intel.com/en-us/articles/mkl-ipp-choosing-an-fft/&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;However, in this case, even if the Sample image is converted to float, it will require less than 2^28 bytes (16443 x 3284 x 4 bytes).&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;Therefore, I don't have it clear why the IPP function is returning the "ippStsMemAllocErr" status. So, I would like to ask a couple of things:&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;1. For the above function, and the above image sizes, what is the number of bytes allocated in memory? Is my assumption correct?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; &lt;SPAN style="text-decoration: underline;"&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]&lt;/SPAN&gt; It is not clear if '&lt;STRONG&gt;ippiCrossCorrValid...&lt;/STRONG&gt;' uses some additional memory inside.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;2. Is the maximum allowed size actually ~2^29 bytes?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; &lt;SPAN style="text-decoration: underline;"&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]&lt;/SPAN&gt;As I mentioned already it is ~&lt;STRONG&gt;2^30&lt;/STRONG&gt; for a &lt;STRONG&gt;32-bit&lt;/STRONG&gt; platform.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;If so, why is the call to the IPP functions returning an error?&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;If not, then which is the maximum allowed size when dealing with images?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; &lt;SPAN style="text-decoration: underline;"&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]&lt;/SPAN&gt; In case a &lt;STRONG&gt;32-bit&lt;/STRONG&gt; Windows platform and '&lt;STRONG&gt;8u&lt;/STRONG&gt;' type:&lt;BR /&gt;&lt;BR /&gt;  &lt;STRONG&gt;34207x34207&lt;/STRONG&gt; if a memory allocated with '&lt;STRONG&gt;ippiMalloc...&lt;/STRONG&gt;' &lt;STRONG&gt;IPP&lt;/STRONG&gt; functions&lt;BR /&gt;  &lt;STRONG&gt;34208x34208&lt;/STRONG&gt; if a memory allocated with '&lt;STRONG&gt;malloc&lt;/STRONG&gt;' &lt;STRONG&gt;CRT&lt;/STRONG&gt; function&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 03 Apr 2012 13:28:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779424#M1422</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-03T13:28:23Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779425#M1423</link>
      <description>Dear Sergey,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thank you very much for your prompt response.&lt;/DIV&gt;&lt;DIV&gt;Please let me continue with the discussion:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;&lt;EM&gt;I am using Intel IPP 6.1, and I am running on Windows 7 x64 (16GB of memory).&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;I am trying to use the "ippiCrossCorrValid_NormLevel_8u32f_C1R" function; however, it returns the following error:ippStsMemAllocErr (Not enough memory allocated for the operation).&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]It is possibly related to small valuesassigned for&lt;STRONG&gt;Heap&lt;/STRONG&gt;( Reserve / Commit )and&lt;STRONG&gt;Stack&lt;/STRONG&gt;( Reserve / Commit). Try to check the&lt;STRONG&gt;Linker Settings&lt;/STRONG&gt;.&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;/DIV&gt;&lt;DIV&gt;- The default heap reserve size is 1MB, and the default heap commit size is 4KB.&lt;/DIV&gt;&lt;DIV&gt;The same applies for the Stack's reserve and commit sizes.&lt;/DIV&gt;&lt;DIV&gt;- I tried increasing the reserve size little by little until I got to 1GB.&lt;/DIV&gt;&lt;DIV&gt;I also increased the commit size up to 1MB.&lt;/DIV&gt;&lt;DIV&gt;- However, the same "ippStsMemAllocErr" happens.&lt;/DIV&gt;&lt;DIV&gt;Shouldn't those sizes be enough?&lt;/DIV&gt;&lt;DIV&gt;Just in case it is relevant, I am using Visual Studio 2010.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;&lt;EM&gt;2. Is the maximum allowed size actually ~2^29 bytes?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]As I mentioned already it is ~&lt;STRONG&gt;2^30&lt;/STRONG&gt;for a&lt;STRONG&gt;32-bit&lt;/STRONG&gt;platform.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;If so, why is the call to the IPP functions returning an error?&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;If not, then which is the maximum allowed size when dealing with images?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]In case a&lt;STRONG&gt;32-bit&lt;/STRONG&gt;Windows platform and '&lt;STRONG&gt;8u&lt;/STRONG&gt;' type:&lt;BR /&gt;&lt;BR /&gt; &lt;STRONG&gt;34207x34207&lt;/STRONG&gt;if a memory allocated with '&lt;STRONG&gt;ippiMalloc...&lt;/STRONG&gt;'&lt;STRONG&gt;IPP&lt;/STRONG&gt;functions&lt;BR /&gt; &lt;STRONG&gt;34208x34208&lt;/STRONG&gt;if a memory allocated with '&lt;STRONG&gt;malloc&lt;/STRONG&gt;'&lt;STRONG&gt;CRT&lt;/STRONG&gt;function&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;/DIV&gt;&lt;DIV&gt;You are right. I tried "ippiMalloc" with the image sizes you mentioned (34207x34207), both for '8u' and '32f' types, and there were both successful.&lt;/DIV&gt;&lt;DIV&gt;It makes me wonder even more why the call to ippiCrossCorrValid would fail, given that my image is much smaller.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;&lt;EM&gt;1. For the above function, and the above image sizes, what is the number of bytes allocated in memory? Is my assumption correct?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]It is not clear if '&lt;STRONG&gt;ippiCrossCorrValid...&lt;/STRONG&gt;' uses some additional memory inside.&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Is there any way for me to know, before making the call to "ippiCrossCorrValid", whether there will be a memory allocation error?&lt;/DIV&gt;&lt;DIV&gt;In general, is it any way to know why this allocation error happens?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thank you very much in advance for your help.&lt;/DIV&gt;&lt;DIV&gt;Best regards,&lt;/DIV&gt;&lt;DIV&gt;Luis&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 04 Apr 2012 02:20:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779425#M1423</guid>
      <dc:creator>rsapaico</dc:creator>
      <dc:date>2012-04-04T02:20:10Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779426#M1424</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Hi Luis,&lt;BR /&gt;&lt;BR /&gt;Quoting &lt;A jquery1333546439843="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=488056" href="https://community.intel.com/en-us/profile/488056/" class="basic"&gt;rsapaico&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;DIV&gt;&lt;EM&gt;...&lt;BR /&gt;- However, the same "ippStsMemAllocErr" happens.&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;Shouldn't those sizes be enough?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; [&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] It has to be enough. Please take a look at a &lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;Note&lt;/SPAN&gt;&lt;/STRONG&gt; below.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;I tried "ippiMalloc" with the image sizes you mentioned (34207x34207), both for '8u' and '32f' types, and there were both successful.&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; [&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] Thank you for confirming my results!&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;Is there any way for me to know, before making the call to "ippiCrossCorrValid", whether there will be a memory allocation error?&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;In general, is it any way to know why this allocation error happens?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; [&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] I'll try to spend some time todaywith your initial test case.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;I havetwo more questions:&lt;BR /&gt;&lt;BR /&gt; Are you making a call to '&lt;STRONG&gt;ippiCrossCorrValid...&lt;/STRONG&gt;'form a DLL or from EXE?&lt;BR /&gt; Did you set new &lt;STRONG&gt;Heap&lt;/STRONG&gt; ( Reserve / Commit ) and &lt;STRONG&gt;Stack&lt;/STRONG&gt; ( Reserve / Commit ) values for a DLL or for EXE?&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;Note&lt;/SPAN&gt;&lt;/STRONG&gt;:&lt;BR /&gt;&lt;BR /&gt;Unfortunately, similar problems are happening almost every day with software developers using different&lt;BR /&gt;software products. Please take a look at two threads ( my comments are in Posts #2 ):&lt;BR /&gt;&lt;BR /&gt; &lt;A href="http://software.intel.com/en-us/forums/showthread.php?t=104191&amp;amp;o=a&amp;amp;s=lr"&gt;http://software.intel.com/en-us/forums/showthread.php?t=104191&amp;amp;o=a&amp;amp;s=lr&lt;/A&gt;&lt;BR /&gt; &lt;A href="http://software.intel.com/en-us/forums/showthread.php?t=104137&amp;amp;o=a&amp;amp;s=lr"&gt;http://software.intel.com/en-us/forums/showthread.php?t=104137&amp;amp;o=a&amp;amp;s=lr&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Also, for one of my software subsystem the following &lt;STRONG&gt;Heap&lt;/STRONG&gt; ( Reserve / Commit ) and &lt;STRONG&gt;Stack&lt;/STRONG&gt; ( Reserve / Commit )&lt;BR /&gt;values are used.They are defined in a cpp source file &lt;SPAN style="text-decoration: underline;"&gt;forEXEmodule&lt;/SPAN&gt; and &lt;SPAN style="text-decoration: underline;"&gt;they work&lt;/SPAN&gt;:&lt;/P&gt;[cpp]	#pragma message ( "*** New HEAP Commit:Reserve and STACK Commit:Reserve Values Defined ***" )

	#ifdef _RTDEBUG
		// Case 1
	//	#pragma comment( linker, "/HEAP:1069547520,1069547520" )
	//	#pragma comment( linker, "/STACK:4194304,4194304" )

		// Case 2
	//	#pragma comment( linker, "/HEAP:134217728,134217728" )
	//	#pragma comment( linker, "/STACK:134217728,134217728" )

		// Case 3
	//	#pragma comment( linker, "/HEAP:268435456,268435456" )
	//	#pragma comment( linker, "/STACK:268435456,268435456" )

		// Case 4
		#pragma comment( linker, "/HEAP:536870912,536870912" )
		#pragma comment( linker, "/STACK:536870912,536870912" )
	#endif

	#ifdef _RTRELEASE
		// Case 1
	//	#pragma comment( linker, "/HEAP:1069547520,1069547520" )
	//	#pragma comment( linker, "/STACK:4194304,4194304" )

		// Case 2
	//	#pragma comment( linker, "/HEAP:134217728,134217728" )
	//	#pragma comment( linker, "/STACK:134217728,134217728" )

		// Case 3
	//	#pragma comment( linker, "/HEAP:268435456,268435456" )
	//	#pragma comment( linker, "/STACK:268435456,268435456" )

		// Case 4
		#pragma comment( linker, "/HEAP:536870912,536870912" )
		#pragma comment( linker, "/STACK:536870912,536870912" )
	#endif[/cpp]</description>
      <pubDate>Wed, 04 Apr 2012 13:57:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779426#M1424</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-04T13:57:41Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779427#M1425</link>
      <description>Hello Sergey,&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thank you very much for your support on this matter.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Please let me reply to your questions:&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;  Are you making a call to '&lt;STRONG&gt;ippiCrossCorrValid...&lt;/STRONG&gt;'form a DLL or from EXE?&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The call to "&lt;B&gt;ippiCrossCorrValid&lt;/B&gt;" is made from a DLL.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt; Did you set new&lt;STRONG&gt;Heap&lt;/STRONG&gt;( Reserve / Commit ) and&lt;STRONG&gt;Stack&lt;/STRONG&gt;( Reserve / Commit ) values for a DLL or for EXE?&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I set the &lt;B&gt;Heap &lt;/B&gt;and &lt;B&gt;Stack &lt;/B&gt;values for the DLL.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Did I have to set them for the EXE that is using the DLL?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Also, what would be a good Heap(Reserve) size considering the image size I am working with (~205MB)?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Finally, if the Stack(Reserve) size is not enough, shouldn't the system allocate the memory using the Virtual Memory? This is just something I had on my mind...&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;As for your other &lt;SPAN style="text-decoration: underline;"&gt;Notes&lt;/SPAN&gt;, I will take a look at them. Thanks.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thanks a lot for your help, I hope I can have it working soon.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Best regards,&lt;/DIV&gt;&lt;DIV&gt;Luis&lt;/DIV&gt;</description>
      <pubDate>Thu, 05 Apr 2012 02:31:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779427#M1425</guid>
      <dc:creator>rsapaico</dc:creator>
      <dc:date>2012-04-05T02:31:35Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779428#M1426</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Hi Luis,&lt;BR /&gt;&lt;BR /&gt;Quoting &lt;A jquery1333634286906="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=488056" href="https://community.intel.com/en-us/profile/488056/" class="basic"&gt;rsapaico&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;DIV&gt;&lt;EM&gt;Did I have to set them for the EXE that is using the DLL?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; [&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] Yes, I would try it. Some time ago I had some issues and setting these values for a DLL&lt;BR /&gt; didn't help.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;Also, what would be a good Heap(Reserve) size considering the image size I am working with (~205MB)?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; [&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] What about &lt;STRONG&gt;512MB&lt;/STRONG&gt;?&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;Finally, if the Stack(Reserve) size is not enough, shouldn't the system allocate the memory using the Virtual Memory?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; [&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] If an application allocates a maximum allowed amount then a new request for more Stack&lt;BR /&gt; memory will fail. That is why some users see an error message like 'Stack Overflow'&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;Please review a part of your codes where you allocate a memory for the destination buffer'pDst'.&lt;BR /&gt;&lt;BR /&gt;// Purpose: ippiCrossCorr_Norm() function allows you to compute the&lt;BR /&gt;//   cross-correlation of an image and a template (another image).&lt;BR /&gt;//  The cross-correlation values are image similarity measures: the&lt;BR /&gt;//   higher cross-correlation at a particular pixel, the more&lt;BR /&gt;//   similarity between the template and the image in the neighborhood&lt;BR /&gt;//  of the pixel. If IppiSize's of image and template are Wa * Ha and&lt;BR /&gt;//   Wb * Hb correspondingly, then the IppiSize of the resulting&lt;BR /&gt;//   matrice with normalized cross-correlation coefficients will be&lt;BR /&gt;//&lt;BR /&gt;//  a) in case of 'Full' suffix:&lt;BR /&gt;//  ( Wa + Wb - 1 )*( Ha + Hb - 1 ).&lt;BR /&gt;// b) in case of 'Same' suffix:&lt;BR /&gt;//  ( Wa )*( Ha ).&lt;BR /&gt;//  c) &lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;in case of 'Valid' suffix&lt;/STRONG&gt;&lt;/SPAN&gt;:&lt;BR /&gt;//  &lt;STRONG&gt;( Wa - Wb + 1 )*( Ha - Hb + 1 )&lt;/STRONG&gt;.&lt;BR /&gt;...&lt;BR /&gt;//  suffix 'R' (ROI) means only scanline alingment (srcStep), in&lt;BR /&gt;//  'Same' and 'Full' cases no any requirements for data outstand&lt;BR /&gt;//  the ROI - it's assumes that template and src are zerro padded.&lt;BR /&gt;//&lt;BR /&gt;...&lt;BR /&gt;// Arguments:&lt;BR /&gt;// pSrc - pointer to the source image ROI;&lt;BR /&gt;// srcStep  - step in bytes through the source image buffer;&lt;BR /&gt;// srcRoiSize- size of the source ROI in pixels;&lt;BR /&gt;// pTpl   - pointer to the template ( feature ) image ROI;&lt;BR /&gt;// tplStep  - step in bytes through the template image buffer;&lt;BR /&gt;// tplRoiSize- size of the template ROI in pixels;&lt;BR /&gt;// pDst - pointer to the destination buffer;&lt;BR /&gt;// dstStep - step in bytes through the destination image buffer;&lt;BR /&gt;...&lt;BR /&gt;// Return:&lt;BR /&gt;// ippStsNoErr  - Ok&lt;BR /&gt;// ippStsNullPtrErr - at least one of the pointers to pSrc, pDst or pTpl is NULL;&lt;BR /&gt;// ippStsSizeErr - at least one of the sizes of srcRoiSize or tplRoiSize&lt;BR /&gt;//   is less or equal zero, or at least one of the sizes&lt;BR /&gt;//   of srcRoiSize is smaller then the corresponding size&lt;BR /&gt;//   of the tplRoiSize;&lt;BR /&gt;// ippStsStepErr - at least one of the srcStep, tplStep or dstStep is less or equal zero;&lt;BR /&gt;//&lt;BR /&gt;// &lt;STRONG&gt;ippStsMemAllocErr - &lt;SPAN style="text-decoration: underline;"&gt;an error occur during allocation memory for internal buffers&lt;/SPAN&gt;&lt;/STRONG&gt;.&lt;BR /&gt;&lt;BR /&gt;I can't confirm it practically but it looks like your problem is related to a wrong size ofsome internal buffer(s).&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey&lt;/P&gt;</description>
      <pubDate>Thu, 05 Apr 2012 14:17:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779428#M1426</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-05T14:17:26Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779429#M1427</link>
      <description>Hi Sergey,&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Thanks a lot for your response.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;I can't confirm it practically but it looks like your problem is related to a wrong size ofsome internal buffer(s).&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Unfortunately, my problem is not related to that. I have checked several times the allocation of those pointers.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Also, if I use a smaller image, the "ippiCrossCorr_Norm" works without any problem, by using exactly the same code (I am reading the image from a BMP file).&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The problem, I think, is related to what the "ippiCrossCorr_Norm" does inside once it is called.&lt;/DIV&gt;&lt;DIV&gt;It seems to me that while I can allocate 2^30 bytes, the working image cannot be this size, because it appears that the "ippiCrossCorr_Norm" is allocating memory internally for the processing.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Unfortunately, the only ones who can response are the developers of the library.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I kindly invite you to try (whenever you have time) to use the "ippiCrossCorr_Norm" for an image size similar to the one of my example, to confirm that the function will not work.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;I am still wondering what the maximum size for an image is...and I think that the only ones who can tell me are IPP developers. What do you think?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Best regards,&lt;/DIV&gt;&lt;DIV&gt;Luis Sapaico&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 06 Apr 2012 09:34:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779429#M1427</guid>
      <dc:creator>rsapaico</dc:creator>
      <dc:date>2012-04-06T09:34:29Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779430#M1428</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Hi Luis,&lt;BR /&gt;&lt;BR /&gt;Quoting &lt;A jquery1333718892968="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=488056" href="https://community.intel.com/en-us/profile/488056/" class="basic"&gt;rsapaico&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;DIV&gt;&lt;EM&gt;...The problem, I think, is related to what the "ippiCrossCorr_Norm" does inside once it is called.&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;It seems to me that while I can allocate 2^30 bytes, the working image cannot be this size, because it appears that the "ippiCrossCorr_Norm" is allocating memory internally for the processing.&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; [&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] You could easily verify it under Debugger and monitor a'&lt;STRONG&gt;PF Usage&lt;/STRONG&gt;' in theTask Manager&lt;BR /&gt; on '&lt;STRONG&gt;Performance&lt;/STRONG&gt;' property page.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;Unfortunately, the only ones who can response are the developers of the library.&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;I kindly invite you to try (whenever you have time) to use the "ippiCrossCorr_Norm" for an image size similar to the one of my example, to confirm that the function will not work.&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;I am still wondering what the maximum size for an image is...and I think that the only ones who can tell me are IPP developers. What do you think?&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; [&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] I hope that &lt;STRONG&gt;IPP&lt;/STRONG&gt; developers will respond.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;Best regards,&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;Luis Sapaico&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey&lt;/P&gt;</description>
      <pubDate>Fri, 06 Apr 2012 13:33:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779430#M1428</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-06T13:33:36Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779431#M1429</link>
      <description>I confirm that thereare memory relatedproblems with many'&lt;STRONG&gt;ippiCrossCorr_...&lt;/STRONG&gt;' functions on &lt;STRONG&gt;32-bit&lt;/STRONG&gt; Windows platforms and&lt;BR /&gt;I'd like to provide some techical details.&lt;BR /&gt;&lt;BR /&gt;Here is a summary because &lt;SPAN style="text-decoration: underline;"&gt;lots of questions&lt;/SPAN&gt; areasked by &lt;STRONG&gt;LuisS&lt;/STRONG&gt; andthere are some myresponses:&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...However, in this case, even if the Sample image is converted to float, it will require less than 2^28 bytes (16443 x 3284 x 4 bytes)...&lt;BR /&gt;&lt;BR /&gt; Significantly less than 2^30 bytes.&lt;BR /&gt;&lt;BR /&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ..Therefore, I don't have it clear why the IPP function is returning the "ippStsMemAllocErr" status...&lt;BR /&gt;&lt;BR /&gt; It is because the '&lt;STRONG&gt;ippiCrossCorr_...&lt;/STRONG&gt;' functions are allocating a significant amount of memory internally.&lt;BR /&gt; On&lt;STRONG&gt;32-bit&lt;/STRONG&gt; Windows platforms ( without &lt;STRONG&gt;AWE&lt;/STRONG&gt; ) an application can not allocate more than &lt;STRONG&gt;2GB&lt;/STRONG&gt; of memory.&lt;BR /&gt;&lt;BR /&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...1. For the above function, and the above image sizes, what is the number of bytes allocated in memory? Is my assumption correct?..&lt;BR /&gt;&lt;BR /&gt; Could Intel Software Engineers answer the question?&lt;BR /&gt;&lt;BR /&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...2. Is the maximum allowed size actually ~2^29 bytes?..&lt;BR /&gt;&lt;BR /&gt; It depends on an IPP function and it is already confirmed by two Software Developers that this is about 2^30 bytes for a &lt;STRONG&gt;32-bit&lt;/STRONG&gt; Windows platform.&lt;BR /&gt;&lt;BR /&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...If so, why is the call to the IPP functions returning an error?..&lt;BR /&gt;&lt;BR /&gt;Because inyour case the function tries to allocate lots of memory andit exceedsthe &lt;STRONG&gt;2GB&lt;/STRONG&gt; limitfor a &lt;STRONG&gt;32-bit&lt;/STRONG&gt; platform.&lt;BR /&gt;&lt;BR /&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...If not, then which is the maximum allowed size when dealing with images?..&lt;BR /&gt;&lt;BR /&gt; It depends on a platform, that is, a &lt;STRONG&gt;32-bit &lt;/STRONG&gt;or &lt;STRONG&gt;64-bit&lt;/STRONG&gt;. I wonder if Intel Software Engineerscould follow up?&lt;BR /&gt;&lt;BR /&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] ...It is not clear if '&lt;STRONG&gt;ippiCrossCorrValid...&lt;/STRONG&gt;' uses some additional memory inside...&lt;BR /&gt;&lt;BR /&gt; Confirmed after a series of tests and &lt;SPAN style="text-decoration: underline;"&gt;it uses a lot&lt;/SPAN&gt;.&lt;BR /&gt;&lt;BR /&gt;[&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] ...It is possibly related to small values assigned for Heap ( Reserve / Commit ) and Stack ( Reserve / Commit )...&lt;BR /&gt;&lt;BR /&gt; No. I don't confirm this. Please do your own tests with a modified Test-Case in the next Post.&lt;BR /&gt;&lt;BR /&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...Is there any way for me to know, before making the call to "&lt;STRONG&gt;ippiCrossCorrValid&lt;/STRONG&gt;", whether there will be a memory allocation error?..&lt;BR /&gt;&lt;BR /&gt; I think you could make a series of tests and as a result you will have some numbers.&lt;BR /&gt;&lt;BR /&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...In general, is it any way to know why this allocation error happens?..&lt;BR /&gt;&lt;BR /&gt; Already answered.&lt;BR /&gt;&lt;BR /&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...Unfortunately, my problem is not related to that. I have checked several times the allocation of those pointers...&lt;BR /&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...Also, if I use a smaller image, the "&lt;STRONG&gt;ippiCrossCorr_Norm&lt;/STRONG&gt;" works without any problem...&lt;BR /&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...The problem, I think, is related to what the "&lt;STRONG&gt;ippiCrossCorr_Norm&lt;/STRONG&gt;" does inside once it is called...&lt;BR /&gt;&lt;BR /&gt; All three statements are confirmed after a series of tests.&lt;/P&gt;&lt;P&gt;[&lt;STRONG&gt;LuisS&lt;/STRONG&gt;] ...I kindly invite you to try (whenever you have time) to use the "&lt;STRONG&gt;ippiCrossCorr_Norm&lt;/STRONG&gt;" for&lt;BR /&gt; an image size similar to the one of my example, to confirm that the function will not work...&lt;BR /&gt;&lt;BR /&gt; Please take a look ata modified Test-Case in the next Post.&lt;/P&gt;</description>
      <pubDate>Sat, 07 Apr 2012 23:19:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779431#M1429</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-07T23:19:34Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779432#M1430</link>
      <description>&lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;A modified Test-Case:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;[cpp]		// Case 1
	//	#pragma comment( linker, "/HEAP:1069547520,1069547520" )
	//	#pragma comment( linker, "/STACK:4194304,4194304" )
		// Case 2
	//	#pragma comment( linker, "/HEAP:134217728,134217728" )
	//	#pragma comment( linker, "/STACK:134217728,134217728" )
		// Case 3
	//	#pragma comment( linker, "/HEAP:268435456,268435456" )
	//	#pragma comment( linker, "/STACK:268435456,268435456" )
		// Case 4
	//	#pragma comment( linker, "/HEAP:536870912,536870912" )
	//	#pragma comment( linker, "/STACK:536870912,536870912" )

		// Version 3
		{
			// Downsample Factor
			#define DS_FACTOR				 1
		//	#define DS_FACTOR				 2
		//	#define DS_FACTOR				 4
		//	#define DS_FACTOR				 8
		//	#define DS_FACTOR				16
		//	#define DS_FACTOR				32
		//	#define DS_FACTOR				64

			// Test 1 - It works when the DS_FACTOR is greater than 1
			//			It doesn't work when the DS_FACTOR is equal to 1
			#define IMAGE_W					( RTint )( 16433 / DS_FACTOR )
			#define IMAGE_H					( RTint )(  3284 / DS_FACTOR )
			#define TEMPL_W					( RTint )(  4899 / DS_FACTOR )
			#define TEMPL_H					( RTint )(  3280 / DS_FACTOR )

			// Test 2 - It works
		//	#define IMAGE_W					( RTint )( 16384 / DS_FACTOR )
		//	#define IMAGE_H					( RTint )(  4096 / DS_FACTOR )
		//	#define TEMPL_W					( RTint )(  8192 / DS_FACTOR )
		//	#define TEMPL_H					( RTint )(  2048 / DS_FACTOR )

			static Ipp8u pucSam[ IMAGE_W * IMAGE_H ] = { 0x0 };
			static Ipp8u pucTemplate[ TEMPL_W * TEMPL_H ] = { 0x0 };

			RTint iStepSam = IMAGE_W * sizeof( Ipp8u );
			RTint iStepTmpl = TEMPL_W * sizeof( Ipp8u );

			IppiSize ippRoiSam = { IMAGE_W, IMAGE_H };
			IppiSize ippRoiTmpl = { TEMPL_W, TEMPL_H };

			RTint iXncc = ippRoiSam.width - ippRoiTmpl.width + 1;	// Result width
			RTint iYncc = ippRoiSam.height - ippRoiTmpl.height + 1;	// Result height
			RTint iStepncc = iXncc * sizeof( RTfloat );				// Result step size

			// It works
		//	std::vector&amp;lt; RTfloat &amp;gt; vfNCC( iXncc * iYncc );			// Result container
		//	RTfloat *pfNCC = &amp;amp;( vfNCC[0] );
			// It works
			static Ipp32f pfNCC[ ( IMAGE_W - TEMPL_W + 1 ) * ( IMAGE_H - TEMPL_H + 1 ) ] = { 0.0f };
			// It doesn't work ( Win32 exception 0xC00000FD - Stack Overflow )
		//	Ipp32f pfNCC[ ( IMAGE_W - TEMPL_W + 1 ) * ( IMAGE_H - TEMPL_H + 1 ) ] = { 0.0f };

			CrtPrintf( RTU("Image Size: %5ld x %5ldnTemplate Size: %5ld x %5ldnDownsample Factor: %ldn"),
					   ( RTint )IMAGE_W, ( RTint )IMAGE_H,
					   ( RTint )TEMPL_W, ( RTint )TEMPL_H,
					   ( RTint )DS_FACTOR );

			st = ::ippiCrossCorrValid_NormLevel_8u32f_C1R(
									 &amp;amp;pucSam[0], iStepSam, ippRoiSam,
									 &amp;amp;pucTemplate[0], iStepTmpl, ippRoiTmpl,
									 &amp;amp;pfNCC[0], iStepncc );

			CrtPrintfA( "%sn", ::ippGetStatusString( st ) );
		}
	//*/
	}
[/cpp]&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;Outputs for different Downsample Factors are as follows:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt; ...&lt;BR /&gt; Image Size : 16433 x 3284&lt;BR /&gt; Template Size : 4899 x 3280&lt;BR /&gt; Downsample Factor: 1&lt;BR /&gt; Not enough memory allocated for the operation&lt;BR /&gt; ...&lt;/P&gt;&lt;P&gt; ...&lt;BR /&gt; Image Size : 8216 x 1642&lt;BR /&gt; Template Size : 2449 x 1640&lt;BR /&gt; Downsample Factor: 2&lt;BR /&gt; No error, it's OK&lt;BR /&gt; ...&lt;/P&gt;&lt;P&gt; ...&lt;BR /&gt; Image Size : 4108 x 821&lt;BR /&gt; Template Size : 1224 x 820&lt;BR /&gt; Downsample Factor: 4&lt;BR /&gt; No error, it's OK&lt;BR /&gt; ...&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 07 Apr 2012 23:20:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779432#M1430</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-07T23:20:19Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779433#M1431</link>
      <description>A screenshot demonstrates a total amount of memory allocated for a Test-Case with&lt;BR /&gt;a source image16384x4096 and a template image 8192x2048:&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.intel.com/skins/images/7B13F55A7CE623EF42E69096FA81A3A1/2021_redesign/images/image_not_found.png" /&gt;&lt;/span&gt;&lt;BR /&gt;</description>
      <pubDate>Sat, 07 Apr 2012 23:20:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779433#M1431</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-07T23:20:41Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779434#M1432</link>
      <description>A screenshot demonstrates a total amount of memory allocated for a Test-Case with&lt;BR /&gt;a source image16384x4096 and a template image 8192x2048:&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.intel.com/skins/images/7B13F55A7CE623EF42E69096FA81A3A1/2021_redesign/images/image_not_found.png" /&gt;&lt;/span&gt;&lt;BR /&gt;</description>
      <pubDate>Sat, 07 Apr 2012 23:20:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779434#M1432</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-07T23:20:57Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779435#M1433</link>
      <description>A screenshot demonstratestotal amounts of memory allocated forTest-Cases with ( from left to right ):&lt;BR /&gt;&lt;BR /&gt; source image4096x1024 and a template image 2048x512&lt;BR /&gt; source image8192x2048 and a template image 4096x1024&lt;BR /&gt; source image16384x4096 and a template image 8192x2048&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.intel.com/skins/images/7B13F55A7CE623EF42E69096FA81A3A1/2021_redesign/images/image_not_found.png" /&gt;&lt;/span&gt;&lt;BR /&gt;</description>
      <pubDate>Sat, 07 Apr 2012 23:21:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779435#M1433</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-07T23:21:12Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779436#M1434</link>
      <description>Hi Luis,&lt;BR /&gt;&lt;BR /&gt;I wonder if a downsampling workaround could work for you? That is, downsample your big source image, or both images ( source and template ),&lt;BR /&gt;by some factor.&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey</description>
      <pubDate>Sat, 07 Apr 2012 23:21:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779436#M1434</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-07T23:21:45Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779437#M1435</link>
      <description>Hi All,&lt;BR /&gt;&lt;BR /&gt;ippiCrossCorr for such huge images/templates is based on 2D 32f FFT and uses several internal buffers proportional to template size (extended to the nearest power of two); if you use threaded version of IPP library - this number is multiplied by the number of available cores; the best approach is provided above - to perform downsampling or use pyramides and perform CrossCorr for reduced image/template - with aproximate coordinates of max coefficient you'll be able to reduce search area for the full resolution image (CrossCorr is very expensive - up to ~300-600 cpu clocks/pixel, while downsampling is ~100x faster).&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Igor</description>
      <pubDate>Mon, 09 Apr 2012 13:58:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779437#M1435</guid>
      <dc:creator>igorastakhov</dc:creator>
      <dc:date>2012-04-09T13:58:36Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779438#M1436</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1334108576390="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=485617" href="https://community.intel.com/en-us/profile/485617/" class="basic"&gt;igorastakhov&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt;...ippiCrossCorr for such huge images/templates is based on 2D 32f FFT and uses several internal buffers&lt;BR /&gt;proportional to template size (extended to the nearest power of two)...&lt;/I&gt;&lt;/DIV&gt;&lt;BR /&gt;Image size for a source image,that Luis uses, can not be considered as ahuge.&lt;BR /&gt;&lt;BR /&gt;Regarding 2D FFT. That is a very interesting technical information, but I really don't understand why almost&lt;BR /&gt;1.5GB of memory is used to calculate it.&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey&lt;/DIV&gt;</description>
      <pubDate>Wed, 11 Apr 2012 01:48:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779438#M1436</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-11T01:48:37Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779439#M1437</link>
      <description>Sergey,&lt;BR /&gt;&lt;BR /&gt;take a look at the formula and try to analyse how many buffers you need for separate calculation of nominator (via FFT) and denominator, take into account that FFT itself requires internal twiddle tables and a buffer for FFT itself + buffer for optimal transpose columns to rows for 2D operation. For smal (in comparison with image size) template sizes (~8x less) so called "frame" algorithm is used and FFT size is proportional to template size, for your case FFT size is proportional to src size:&lt;BR /&gt;&lt;BR /&gt;16443*3284 -&amp;gt; 32768*4096*4 = ~500 M for 1 buffer&lt;BR /&gt;&lt;BR /&gt;algorithm requires 3 buffers - so 1.5 Gb &lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Igor&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 11 Apr 2012 07:08:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779439#M1437</guid>
      <dc:creator>igorastakhov</dc:creator>
      <dc:date>2012-04-11T07:08:13Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779440#M1438</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;I'd like to make a note regarding a matrix transpose operation:&lt;BR /&gt;&lt;BR /&gt; Why a Diagonal based ( inplace )algorithm for a matrix transposeis not used?&lt;BR /&gt;&lt;BR /&gt;Quoting &lt;A jquery1334189909968="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=485617" href="https://community.intel.com/en-us/profile/485617/" class="basic"&gt;igorastakhov&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt;Sergey,&lt;BR /&gt;&lt;BR /&gt;take a look at the formula and try to analyse how many buffers you need for separate calculation of nominator (via FFT) and denominator, take into account that FFT itself requires internal twiddle tables and a buffer for FFT itself &lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;+ buffer for optimal transpose columns to rows for 2D operation&lt;/SPAN&gt;&lt;/STRONG&gt;. For smal (in comparison with image size) template sizes (~8x less) so called "frame" algorithm is used and FFT size is proportional to template size, for your case FFT size is proportional to src size:&lt;BR /&gt;&lt;BR /&gt;16443*3284 -&amp;gt; 32768*4096*4 = ~500 M for 1 buffer&lt;BR /&gt;&lt;BR /&gt;algorithm requires 3 buffers - so 1.5 Gb &lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Igor&lt;BR /&gt;&lt;BR /&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;The memoryproblem with '&lt;STRONG&gt;ippiCrossCorr...&lt;/STRONG&gt;' &lt;STRONG&gt;IPP&lt;/STRONG&gt; functions is almost &lt;STRONG&gt;10&lt;/STRONG&gt; years old because it is easily&lt;BR /&gt;reproducible with &lt;STRONG&gt;IPP v3.x&lt;/STRONG&gt;.&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey&lt;/P&gt;</description>
      <pubDate>Thu, 12 Apr 2012 00:28:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779440#M1438</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-04-12T00:28:30Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779441#M1439</link>
      <description>Hello Sergey, Igor,&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Thank you very much for your feedback.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;16443*3284 -&amp;gt; 32768*4096*4 = ~500 M for 1 buffer&lt;BR /&gt;&lt;BR /&gt;algorithm requires 3 buffers - so 1.5 Gb&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Just to add, I am using 64-bit IPP Libraries, and I also have 16GB of memory.&lt;/DIV&gt;&lt;DIV&gt;I also have 8 CPUs.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;There is one thing I quite didn't understand:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Is 1.5GB the total memory allocated, regardless of the number of threads that I am using?&lt;/DIV&gt;&lt;DIV&gt;Or 1.5GB is allocated per thread?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;On the other hand, the image size (16443x3284) is already a subsampled version of the original image, and at present I cannot afford to further subsample it because I will lose some details.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thank you very much for your feedback, it is very helpful.&lt;/DIV&gt;&lt;DIV&gt;I hope we can manage to find a "maximum size" for an image, so that I can know beforehand whether "ippiCrossCorrValid" will return the allocation error.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Best regards,&lt;/DIV&gt;&lt;DIV&gt;Luis&lt;/DIV&gt;</description>
      <pubDate>Tue, 17 Apr 2012 08:16:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779441#M1439</guid>
      <dc:creator>rsapaico</dc:creator>
      <dc:date>2012-04-17T08:16:25Z</dc:date>
    </item>
    <item>
      <title>Maximum Size of Float Image in ippiCrossCorrValid</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779442#M1440</link>
      <description>Hello again,&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;I just did some experiments regarding the number of threads.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I set the number of threads using "ippSetNumThreads".&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;ippSetNumThreads = 1&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;ippSetNumThreads = 2&lt;/DIV&gt;"ippiCrossCorrValid_NormLevel_8u32f_C1R" works (returns "ippStsNoErr").&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;ippSetNumThreads &amp;gt; 2&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;"ippiCrossCorrValid_NormLevel_8u32f_C1R" returns "ippStsMemAllocErr".&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;So it seems that the number of threads is the deciding factor, as Igor pointed out before.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Just for the record, if I am using 4 threads, does it mean that I need 4*1.5GB of memory, for the image size in discussion?&lt;/DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Best regards,&lt;/DIV&gt;&lt;DIV&gt;Luis Sapaico&lt;/DIV&gt;</description>
      <pubDate>Tue, 17 Apr 2012 09:18:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Maximum-Size-of-Float-Image-in-ippiCrossCorrValid/m-p/779442#M1440</guid>
      <dc:creator>rsapaico</dc:creator>
      <dc:date>2012-04-17T09:18:58Z</dc:date>
    </item>
  </channel>
</rss>

