Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
公告
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.

warpAffineLinear performance

giacomo_c_
初学者
750 次查看

I'm trying to convert an application built with Ipp 8.0.1 to Ipp 2017.1.
Problem arises with function ippiResizeSqrPixel_16s_C1R removed from current library.
I need precise scale factor and x and y shift control with subpixel accuracy so the substitute function found is warpAffineLinear (are there other options?) with transformation coeffs used for scaling and offset. 
I wrote a simple test program (source code attached ) to verify the performance differences between the old and the new api. This program compares warpAffineLinear and ippiResizeSqrPixel_16s_C1R ( IPP 9.0 legacy libraries version ipp90legacy_win_9.0.0.008) used with LINEAR_INTERPOLATION.

Parameters explored are : 
- image edge size (square images)
- zoom scale factor
- single thread vs multithread (only for warpAffine)

Below there is the output obtained. Last 2 columns show execution time in ms.

1) Observing only single thread cases (lines 0,1,2, 6,7,8, 12,13,14) warpAffineLinear is a little slower than ippiResizeSqrPixel_16s_C1R for zoom factor greater or equal 1 but is VERY SLOWER for zoom factor less than 1 (lines 0,6,12)

2) Using a multi thread implementation with image tiling (8 thread for 8 tiles) warpAffineLinear perform better for scale factors greater or equal than 1 (lines 4,5, 10,11, 16,17) but still there are performance problems with scale factor less than 1 (line 3, 9, 15). For example for a 1024x1024 image with a scale factor of 0.99 (line 3) warpAffine takes 1.28 ms while for a scale factor of 1.01 (line 5) it takes 0.61 ms.

My real application executes thousand of image resize operation with images of size about 1500x1500.

-----------------------------------------------------------------------------------------------------------------------
line  image      scale  threads   warpAffine(ms)   ippiResizeSqrPixel_16s_C1R(ms)
  0   1024     0.9900     1         3.4699         1.2519
  1   1024     1.0000     1         1.3585         1.2664
  2   1024     1.0100     1         1.3355         1.2734
  3   1024     0.9900     8         1.2801         1.4048
  4   1024     1.0000     8         0.5745         1.5947
  5   1024     1.0100     8         0.6185         1.2758


  6   2048     0.9900     1        17.7146         5.2773
  7   2048     1.0000     1         6.2307         5.3990
  8   2048     1.0100     1         6.3813         5.3994
  9   2048     0.9900     8         5.3796         5.5666
 10   2048     1.0000     8         2.7698         5.6583
 11   2048     1.0100     8         2.6872         5.3551


 12   4096     0.9900     1        57.0254         19.7586
 13   4096     1.0000     1        23.9561         20.2563
 14   4096     1.0100     1        23.2165         20.0609
 15   4096     0.9900     8        16.9511         20.3904
 16   4096     1.0000     8        10.6648         20.2441
 17   4096     1.0100     8        10.6935         20.3870

Thank's in advance

 

0 项奖励
1 回复
Valentin_K_Intel
750 次查看

Hi Giacomo,

Thank you for the information. We will investigate it.

Best regards,
Valentin

0 项奖励
回复