<?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 Sample code for resizing huge image using tile-based ROI in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Sample-code-for-resizing-huge-image-using-tile-based-ROI/m-p/827285#M5276</link>
    <description>Is there sample code for showing how to resize huge image (bigger than the system's memory size), when the huge image is stored on the disk and already broken up into 1024x1024 tiles, by using the ROI of ippiResize functions?&lt;BR /&gt;&lt;BR /&gt;Thanks!</description>
    <pubDate>Fri, 20 Jan 2012 03:31:58 GMT</pubDate>
    <dc:creator>Ryan_Wong</dc:creator>
    <dc:date>2012-01-20T03:31:58Z</dc:date>
    <item>
      <title>Sample code for resizing huge image using tile-based ROI</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Sample-code-for-resizing-huge-image-using-tile-based-ROI/m-p/827285#M5276</link>
      <description>Is there sample code for showing how to resize huge image (bigger than the system's memory size), when the huge image is stored on the disk and already broken up into 1024x1024 tiles, by using the ROI of ippiResize functions?&lt;BR /&gt;&lt;BR /&gt;Thanks!</description>
      <pubDate>Fri, 20 Jan 2012 03:31:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Sample-code-for-resizing-huge-image-using-tile-based-ROI/m-p/827285#M5276</guid>
      <dc:creator>Ryan_Wong</dc:creator>
      <dc:date>2012-01-20T03:31:58Z</dc:date>
    </item>
    <item>
      <title>Sample code for resizing huge image using tile-based ROI</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Sample-code-for-resizing-huge-image-using-tile-based-ROI/m-p/827286#M5277</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1327035566531="55" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=547447" href="https://community.intel.com/en-us/profile/547447/" class="basic"&gt;Ryan Wong&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;Is there sample code for showing how to resize huge image (bigger than the system's memory size), when the huge image is stored on the disk and already broken up into 1024x1024 tiles, by using the ROI of &lt;STRONG&gt;ippiResize&lt;/STRONG&gt; functions?&lt;BR /&gt;&lt;BR /&gt;Thanks!&lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;An algorithm could look like thisand it isbasedon a geomatics related project I worked for:&lt;BR /&gt;&lt;BR /&gt;1. There is a database with a list ofgeo-tiles,&lt;STRONG&gt;1024x1024&lt;/STRONG&gt; in total&lt;BR /&gt; 2. Every geo-tile is &lt;STRONG&gt;4096x4096&lt;/STRONG&gt; pixels ( 16-bits \4096x4096x2 bytes= &lt;STRONG&gt;32MB&lt;/STRONG&gt; )&lt;BR /&gt; 3. Every geo-tile has to bedoubled in size( 16-bits \ 8192x8192x2 bytes = &lt;STRONG&gt;128MB&lt;/STRONG&gt; )&lt;BR /&gt; 2. Allocate memory for &lt;STRONG&gt;1024x1024&lt;/STRONG&gt; entries ( in-memory table of geo-tiles \ name is &lt;STRONG&gt;8&lt;/STRONG&gt; bytes \ &lt;STRONG&gt;8MB&lt;/STRONG&gt;)&lt;BR /&gt; 3. Read the list of geo-tilesfrom the database to the in-memory table of geo-tiles&lt;BR /&gt; 4. Allocate &lt;STRONG&gt;32MB&lt;/STRONG&gt; buffer for a source geo-tile ( &lt;STRONG&gt;pSrcGeoTile&lt;/STRONG&gt; )&lt;BR /&gt; 5. Allocate&lt;STRONG&gt;128MB&lt;/STRONG&gt; buffer for a destination geo-tile ( &lt;STRONG&gt;pDstGeoTile&lt;/STRONG&gt; )&lt;BR /&gt; 4. Start iterationsfor the in-memory table of geo-tiles&lt;BR /&gt; 5. Load ageo-tile to &lt;STRONG&gt;pSrcGeoTile&lt;/STRONG&gt;&lt;BR /&gt; 6.Call &lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;ippiResize&lt;/SPAN&gt;&lt;/STRONG&gt;( &lt;STRONG&gt;pSrcGeoTile&lt;/STRONG&gt;, &lt;STRONG&gt;pDstGeoTile&lt;/STRONG&gt;, 2xWidth, 2xHight, INTERPOLATION )&lt;BR /&gt; 7. Save the destination geo-tile from &lt;STRONG&gt;pDstGeoTile&lt;/STRONG&gt;&lt;BR /&gt; 8. Repeat 5, 6, 7 until end of the in-memory table of geo-tiles&lt;BR /&gt; 9. Deallocate &lt;STRONG&gt;128MB&lt;/STRONG&gt; buffer&lt;BR /&gt;10. Deallocate &lt;STRONG&gt;32MB&lt;/STRONG&gt; buffer&lt;BR /&gt; 11. Deallocate memory of in-memory table of geo-tiles&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jan 2012 06:13:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Sample-code-for-resizing-huge-image-using-tile-based-ROI/m-p/827286#M5277</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-01-20T06:13:06Z</dc:date>
    </item>
    <item>
      <title>Sample code for resizing huge image using tile-based ROI</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Sample-code-for-resizing-huge-image-using-tile-based-ROI/m-p/827287#M5278</link>
      <description>&lt;P&gt;My project currently uses OpenCV to do the same.OpenCV provides an interpolation mode "&lt;STRONG&gt;CV_INTER_AREA&lt;/STRONG&gt;" which does not require boundary pixels when the ratio between source length and destination length are whole integers.&lt;/P&gt;
&lt;P&gt;(As an example, resizing from 4096x4096 to 1024x1024 (downscale by 4 on each dimension), maps each patch of 16x16 source pixel into a 1x1 destination pixel. There is no visible seams (image artifacts) at the tile boundaries.)&lt;/P&gt;
&lt;P&gt;We were testing IPP to see if there is any speed improvement. However, since IPP does not implement an equivalent interpolation mode, we have to use the CV_ANTIALIASING mode. Unfortunately this mode has huge memory requirement that we cannot affort.&lt;/P&gt;&lt;P&gt;Two of my main concerns are:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN style="line-height: normal;"&gt;Hoping to provide resize capability on arbitrary zoom ratios (not whole integers), with reasonable memory requirement.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="line-height: normal;"&gt;When the output tiles are put together, they must not have any unpleasant tile seams at the boundary. I can provide the boundary pixels, but the API must have a way to accept them in the first place.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jan 2012 20:32:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Sample-code-for-resizing-huge-image-using-tile-based-ROI/m-p/827287#M5278</guid>
      <dc:creator>Ryan_Wong</dc:creator>
      <dc:date>2012-01-24T20:32:33Z</dc:date>
    </item>
    <item>
      <title>Sample code for resizing huge image using tile-based ROI</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Sample-code-for-resizing-huge-image-using-tile-based-ROI/m-p/827288#M5279</link>
      <description>&lt;SPAN class="sectionBodyText" style="font-family: Times New Roman; font-size: small;"&gt;Hi Ryan,&lt;BR /&gt;&lt;BR /&gt;with current IPP API it is impossible to process a huge image by tiles as each call to Resize primitive will produce boundary artifacts. This inconvinience has been already fixed in the new Resize API version that will be available in the next major IPP release - it has "border" parameter that can be any of "replicate, mirror, const, etc." or "border is available in memory" - that makes possible to stich dst tiles correctly.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Igor&lt;/SPAN&gt;</description>
      <pubDate>Fri, 03 Feb 2012 09:46:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Sample-code-for-resizing-huge-image-using-tile-based-ROI/m-p/827288#M5279</guid>
      <dc:creator>igorastakhov</dc:creator>
      <dc:date>2012-02-03T09:46:08Z</dc:date>
    </item>
  </channel>
</rss>

