Quantcast
Channel: Intel® Integrated Performance Primitives
Viewing all 1294 articles
Browse latest View live

Static linking of IPP 8.1 in Linux

$
0
0

I've been using the IPP successfully on Windows for a long time, but am now trying to port my application over to Linux. My project architecture requires that I link the IPP libraries statically into my own code, which itself is compiled as a Shared Library.

In Windows, and in Linux up to IPP 7.0, the names of the static and dynamically-linked versions of the libraries differed, with the static versions having filenames ending in 'mt' (in Windows) and '_l' (in Linux). Therefore, if I'd wanted to link the static V7.0 libraries then it looks like my makefile would have needed to contain the line:

IPPLIB = -lippac_l -lippdc_l -lippcc_l -lippcv_l etc.

However, it appears that in IPP 8.0 onwards the distinction in names has been abolished (at least in Linux), and so if I list the contents of the /opt/intel/composer_xe_2013_sp1/ipp/lib/intel64 directory I see:

libippac.a libippac.so libippac.so.8.1 libippace9.so etc.

It seems obvious enough that the .a files are the static libraries and the various .so files are the shared libraries for various different processors. However, I can't work out how to access the static libraries. If I do the naive thing, and put this line into my makefile:

IPPLIB = -lippac -lippdc -lippcc -lippcv etc.

...then the compilation completes cleanly, but at runtime I get bombarded with messages to the effect of "lipippac.so not found" so the compiler obviously thinks that it actually linked the shared versions. If I try to make things more explicit, with:

IPPLIB = -lippac.a -lippdc.a -lippcc.a -lippcv.a etc.

...then this simply fails to compile, the first error message (of a large number) being "cannot find -lippi.a".

So, what is the correct syntax for linking static IPP libraries into my own shared library?


Intel IPP Preview Page - Access Denied

Unable to build IPP 8.1 with sample audio-video-codecs by static linking(--ipp=static)

$
0
0

Hi,

I am using IPP 8.1 with sample audio-video-codecs and i am trying to build on Linux(Debian). In ipp-samples.8.0.0.005/builder/build.sh --help describes that to Generate workspace for selected IPP library type if you would not mention any optional flag "--ipp=static or dynamic",static is used by default.when i build found that 'dynamic is used by default'.

When i build with --ipp=dynamic,it is working fine.

But when i use flag --ipp=static i found some error:

$./build.sh  --sample=audio-video-codecs --arch=intel64 --ws=make --build --ipp=static 

/opt/intel/composer_xe_2013_sp1/ipp/lib/intel64/libipps.a(psfftsblkcn_n8---ipps_initTabTwdBase_32f.o): In function `n8_ipps_initTabTwdBase_32f':

psfftsblkcn_n8---ipps_initTabTwdBase_32f.i:(.text+0x2e0): undefined reference to `n8_ippsSin_32f_A24'

psfftsblkcn_n8---ipps_initTabTwdBase_32f.i:(.text+0x2fd): undefined reference to `n8_ippsCos_32f_A24'

/opt/intel/composer_xe_2013_sp1/ipp/lib/intel64/libipps.a(psfftsblkcn_l9---ipps_initTabTwdBase_32f.o): In function `l9_ipps_initTabTwdBase_32f':

psfftsblkcn_l9---ipps_initTabTwdBase_32f.i:(.text+0x61a): undefined reference to `l9_ippsSin_32f_A24'

psfftsblkcn_l9---ipps_initTabTwdBase_32f.i:(.text+0x633): undefined reference to `l9_ippsCos_32f_A24'

/opt/intel/composer_xe_2013_sp1/ipp/lib/intel64/libipps.a(psfftsblkcn_m7---ipps_initTabTwdBase_32f.o): In function `m7_ipps_initTabTwdBase_32f':

psfftsblkcn_m7---ipps_initTabTwdBase_32f.i:(.text+0x382): undefined reference to `m7_ippsSin_32f_A24'

psfftsblkcn_m7---ipps_initTabTwdBase_32f.i:(.text+0x398): undefined reference to `m7_ippsCos_32f_A24'

/opt/intel/composer_xe_2013_sp1/ipp/lib/intel64/libipps.a(psfftsblkcn_mx---ipps_initTabTwdBase_32f.o): In function `mx_ipps_initTabTwdBase_32f':

psfftsblkcn_mx---ipps_initTabTwdBase_32f.i:(.text+0x3a7): undefined reference to `mx_ippsSin_32f_A24'

psfftsblkcn_mx---ipps_initTabTwdBase_32f.i:(.text+0x3c0): undefined reference to `mx_ippsCos_32f_A24'

/opt/intel/composer_xe_2013_sp1/ipp/lib/intel64/libipps.a(psfftsblkcn_e9---ipps_initTabTwdBase_32f.o): In function `e9_ipps_initTabTwdBase_32f':

psfftsblkcn_e9---ipps_initTabTwdBase_32f.i:(.text+0x4d8): undefined reference to `e9_ippsSin_32f_A24'

psfftsblkcn_e9---ipps_initTabTwdBase_32f.i:(.text+0x4f1): undefined reference to `e9_ippsCos_32f_A24'

/opt/intel/composer_xe_2013_sp1/ipp/lib/intel64/libipps.a(psfftsblkcn_y8---ipps_initTabTwdBase_32f.o): In function `y8_ipps_initTabTwdBase_32f':

psfftsblkcn_y8---ipps_initTabTwdBase_32f.i:(.text+0x405): undefined reference to `y8_ippsSin_32f_A24'

psfftsblkcn_y8---ipps_initTabTwdBase_32f.i:(.text+0x41b): undefined reference to `y8_ippsCos_32f_A24'

collect2: error: ld returned 1 exit status

make[2]: Leaving directory `/home/afaque/sample/ipp-samples.8.0.0.005/__cmake/audio-video-codecs.intel64.make.static.release'

make[2]: *** [__bin/release/simple_player] Error 1

make[1]: *** [application/simple_player/CMakeFiles/simple_player.dir/all] Error 2

make[1]: Leaving directory `/home/afaque/sample/ipp-samples.8.0.0.005/__cmake/audio-video-codecs.intel64.make.static.release'

make: *** [all] Error 2

[ audio-video-codecs.intel64.make.static.release                      State: FAIL ]

Please suggest me if there is any solution to remove this error.

Thank You

 

 

Versions and migration

$
0
0

Hello;

Our Intel license for Intel parallel studio and  ipp/mkl libraries expires in September this year, We currently use the 7.1 ipp/mkl libraries. When our license is renewed will we still be able to keep using the 7.1 or will we have to migrate to the 8.x version?

 

IPP 8.1 and OpenCV 2.4.9

$
0
0

Hi folks,


I tried to rebuild OpenCV 2.4.9 in a way that it automatically uses IPP 8.1. The documention on how to do this seem to be very outdated and doesn't work anymore with the latest versions of these libraries.


It would be great to have a step-by-step tutorial on how to get this to run. In my case I am interested in building it for Windows 8.1, 64-bit release using Visual Studio 2013.


I tried various things mixed from old tutorials on the web. The function to test if IPP is active did only return "1" optimized/uploaded funtion instead of 140+ when IPP is active.


 


int NumUploadedFunction = 0;


NumUploadedFunction = cvUseOptimized(1);


printf("\t NumUploadedFunction = %d \n\n", NumUploadedFunction);


const char* opencv_lib = 0;


const char* add_modules = 0;


cvGetModuleInfo(0, &opencv_lib, &add_modules);


printf("\t opencv_lib = %s,\n\t add_modules = %s\n\n", opencv_lib, add_modules);


 


Thanks!

Using IPP on Windows 2008 and Windows 2012

$
0
0

Question: performance is different on Win 2008 (x64) vs Win 2012 (x64), by using same code, same src, and same CPU.

CPU : Intel Xeon X5650 @ 2.67GHz (2 processors)

Using IPP 7.0, we run G.723 encoder and input same voice source. On Windows 2008 is faster than on Windows 2012 by double times.

Library version shows: IPPSC library used: 7.0.205 Build 1072, name ippscw7_l.lib

IPP shows: CPU type (0x45), feature (0x0CDF). All information on Win 2008 is identical to Win 2012.

However, encoder is much faster on Win2008. Processing time on Win2012 takes longer by 2 times.

Function for 3D LUT

$
0
0

Hi,

Is there a function in IPP to perform 3D look up? Basically I am trying convert a 24bpp image from one color space to another using 3D LUT. I know the ippiLUT_Linear and ippiLUT_Cubic can do LUT translation but I am not sure whether the multi-channel look up will be performed on individual channels separately or combined. The requirement of pValues size should be nLevels is confusing as my LUT has 17 levels and contains 4913 entries(17x17x17).

Thanks.

IPP & iOS

$
0
0

Hello

 

has anyone tryed to run IPP on an iPad os similar device? Does it work?


IPP Asynchronous Future Releases

$
0
0

1)  I have been running IPP-A on an Ivy Bridge Windows 8 platform. This target is based upon the February 1014 Preview release. Is there a production release planned ?


2) If there is a production release planned, could you provide the approximate release date and confirm whether or not Linux support would be included ?


3) From running the preview release, it would appear that the internal implementation is derived from MDF 3.0. Can I safely assume that the CM runtime and JIT libraries have been linked as part of the async dll libraries ? (Example: ipp_async_preview_gpu_30_gen7.dll )


4) Would the source code for the async libraries be available for other Intel development teams use, if necessary ? This question is related to future Linux support.


 


Thanks,


Brian N. Shuman

Determining the thresholds automatically for Canny Edge Detector

$
0
0

Hello All, 

I am working on Canny Edge Detection. I need to determine the high and the low thresholds automatically. I was planning to use median value auto-thresholding. I am trying to find the histogram of the image, sort histogram index by value and take the median value. 

In my below code, I calculate the median without sorting the histogram. I tried using the IPP sort functions but that seems to not work for my problem. How do I go about sorting the histogram index by value so that while calculating the median, I get the correct index value ?

Kindly please help me solve this issue. 

Note: I use templates for the image functions (histogrameven, sobel, canny) just for clarification. 

#define GrayLevels 256

int  main()
{
	std::string path("C:\\Images\\Edge\\");
	std::string inputImageFile = path + "lena_gray.bmp";

	IppImage<Ipp8u,1> imgsrc;
	ippiLoadBMP(inputImageFile.c_str(),imgsrc);
	IppImage<Ipp8u,1> imgDst(imgsrc.Size());
	IppImage<Ipp8u,1> dx(imgsrc.Size());
	IppImage<Ipp8u,1> dy(imgsrc.Size());
	Ipp32s imHist[GrayLevels];
	Ipp32s imLevels[GrayLevels+1];
	int scaleFactor = 1.2;
	Ipp32f high;
	Ipp32f low;
	int i;

	IppiSize imgSize;
	int w = imgsrc.Width();
	int h = imgsrc.Height();
	IppStatus status;
	imgSize.width = w;
	imgSize.height = h;
	Ipp32s cumSum;
	cumSum = 0;

	IppImage<Ipp8u,1> imgDst1(w,h);

	status = ippiHistogramEven(imgsrc, imgSize, imHist, imLevels, GrayLevels+1, 0, GrayLevels);
	status = ippiSobelFilterNegVertBorder(imgsrc, dx, imgSize, ippMskSize3x3, ippBorderRepl, 0);
	status = ippiSobelFilterHorizBorder(imgsrc, dy, imgSize, ippMskSize3x3, ippBorderRepl, 0);

//Calculating the high and the low thresholds

	for (i = 0; i < GrayLevels; i++)
	{
		cumSum += imHist[i];
		if (cumSum >= (Ipp32s)(0.5 * w * h))
		{
			high = i;
			low = 0.5 * high;
			break;
		}
	}

	imgDst.ResizeNE(w,h);
	status = ippiCanny(dx, dy, imgDst, imgSize, low, high);
	status = ippiAddSfs(imgsrc, imgDst, imgDst1, scaleFactor);
	std::string out4f = path + "lena_gray_detected.bmp";
	imgDst.ResizeNE(imgsrc.Width(),imgsrc.Height());
	imgDst.ResizeNE(w,h);
	ippiSaveBMP(out4f.c_str(),imgDst);
	return(EXIT_SUCCESS);
}

Thanks, 

Sharath 

ippiResize

$
0
0

Hi, I am new to the IPP. Can the ippiResize method be used on encoded h264 frames? Or is it used exclusively for uncompressed images such as RGBA?

Regards,

Joe Tomczyk

Bug in ippiFloodFillGetSize_Grad

$
0
0

or ippiFloodFill_Grad8Con_32f_C1IR? I don`t know it.

Normally it works, but there are a overflow for a given image and diffMin is 0.00064f. The calculated value from ippiFloodFillGetSize_Grad is to small.

Any idea or solution for those errors?

void ExecuteFloodFillGrad()
{
  const int testWidth = 29;
  const int testHeight = 28;

	CImage32fC1 img;
	img.Create(testWidth,testWidth);

  *(img.DataPtr(0, 0)) = -0.041359305f; *(img.DataPtr(1, 0)) = -0.040551849f; *(img.DataPtr(2, 0)) = -0.039700896f; *(img.DataPtr(3, 0)) = -0.038801193f; *(img.DataPtr(4, 0)) = -0.037854474f; *(img.DataPtr(5, 0)) = -0.036893703f; *(img.DataPtr(6, 0)) = -0.035940997f; *(img.DataPtr(7, 0)) = -0.034996118f; *(img.DataPtr(8, 0)) = -0.034058873f; *(img.DataPtr(9, 0)) = -0.033125922f; *(img.DataPtr(10, 0)) = -0.032198206f; *(img.DataPtr(11, 0)) = -0.031274345f; *(img.DataPtr(12, 0)) = -0.030351648f; *(img.DataPtr(13, 0)) = -0.029429829f; *(img.DataPtr(14, 0)) = -0.028508564f; *(img.DataPtr(15, 0)) = -0.027586684f; *(img.DataPtr(16, 0)) = -0.026663359f; *(img.DataPtr(17, 0)) = -0.025735574f; *(img.DataPtr(18, 0)) = -0.024801414f; *(img.DataPtr(19, 0)) = -0.027460925f; *(img.DataPtr(20, 0)) = -0.026567634f; *(img.DataPtr(21, 0)) = -0.025669908f; *(img.DataPtr(22, 0)) = -0.024767900f; *(img.DataPtr(23, 0)) = -0.023866726f; *(img.DataPtr(24, 0)) = -0.022970574f; *(img.DataPtr(25, 0)) = -0.022076001f; *(img.DataPtr(26, 0)) = -0.021180894f; *(img.DataPtr(27, 0)) = -0.020286271f; *(img.DataPtr(28, 0)) = -0.019390738f;
  *(img.DataPtr(0, 1)) = -0.041799415f; *(img.DataPtr(1, 1)) = -0.040994138f; *(img.DataPtr(2, 1)) = -0.040141661f; *(img.DataPtr(3, 1)) = -0.039242487f; *(img.DataPtr(4, 1)) = -0.038292460f; *(img.DataPtr(5, 1)) = -0.037327528f; *(img.DataPtr(6, 1)) = -0.036370717f; *(img.DataPtr(7, 1)) = -0.035423342f; *(img.DataPtr(8, 1)) = -0.034481280f; *(img.DataPtr(9, 1)) = -0.033546295f; *(img.DataPtr(10, 1)) = -0.032614194f; *(img.DataPtr(11, 1)) = -0.031688336f; *(img.DataPtr(12, 1)) = -0.030762870f; *(img.DataPtr(13, 1)) = -0.029841159f; *(img.DataPtr(14, 1)) = -0.028918007f; *(img.DataPtr(15, 1)) = -0.027997596f; *(img.DataPtr(16, 1)) = -0.027071640f; *(img.DataPtr(17, 1)) = -0.026144236f; *(img.DataPtr(18, 1)) = -0.025211867f; *(img.DataPtr(19, 1)) = -0.027869157f; *(img.DataPtr(20, 1)) = -0.026975738f; *(img.DataPtr(21, 1)) = -0.026081143f; *(img.DataPtr(22, 1)) = -0.025179781f; *(img.DataPtr(23, 1)) = -0.024281939f; *(img.DataPtr(24, 1)) = -0.023385651f; *(img.DataPtr(25, 1)) = -0.022492629f; *(img.DataPtr(26, 1)) = -0.021597851f; *(img.DataPtr(27, 1)) = -0.020707674f; *(img.DataPtr(28, 1)) = -0.019812819f;
  *(img.DataPtr(0, 2)) = -0.042244311f; *(img.DataPtr(1, 2)) = -0.041439246f; *(img.DataPtr(2, 2)) = -0.040587161f; *(img.DataPtr(3, 2)) = -0.039687391f; *(img.DataPtr(4, 2)) = -0.038734592f; *(img.DataPtr(5, 2)) = -0.037764940f; *(img.DataPtr(6, 2)) = -0.036803838f; *(img.DataPtr(7, 2)) = -0.035851441f; *(img.DataPtr(8, 2)) = -0.034905568f; *(img.DataPtr(9, 2)) = -0.033966787f; *(img.DataPtr(10, 2)) = -0.033031702f; *(img.DataPtr(11, 2)) = -0.032103289f; *(img.DataPtr(12, 2)) = -0.031176910f; *(img.DataPtr(13, 2)) = -0.030251876f; *(img.DataPtr(14, 2)) = -0.029329112f; *(img.DataPtr(15, 2)) = -0.028405424f; *(img.DataPtr(16, 2)) = -0.027481673f; *(img.DataPtr(17, 2)) = -0.026554044f; *(img.DataPtr(18, 2)) = -0.025622411f; *(img.DataPtr(19, 2)) = -0.028275793f; *(img.DataPtr(20, 2)) = -0.027385123f; *(img.DataPtr(21, 2)) = -0.026490301f; *(img.DataPtr(22, 2)) = -0.025590317f; *(img.DataPtr(23, 2)) = -0.024693279f; *(img.DataPtr(24, 2)) = -0.023799501f; *(img.DataPtr(25, 2)) = -0.022907382f; *(img.DataPtr(26, 2)) = -0.022013256f; *(img.DataPtr(27, 2)) = -0.021125857f; *(img.DataPtr(28, 2)) = -0.020235062f;
  *(img.DataPtr(0, 3)) = -0.042694889f; *(img.DataPtr(1, 3)) = -0.041889694f; *(img.DataPtr(2, 3)) = -0.041038942f; *(img.DataPtr(3, 3)) = -0.040137414f; *(img.DataPtr(4, 3)) = -0.039183147f; *(img.DataPtr(5, 3)) = -0.038210835f; *(img.DataPtr(6, 3)) = -0.037243251f; *(img.DataPtr(7, 3)) = -0.036287144f; *(img.DataPtr(8, 3)) = -0.035337999f; *(img.DataPtr(9, 3)) = -0.034395196f; *(img.DataPtr(10, 3)) = -0.033457316f; *(img.DataPtr(11, 3)) = -0.032525331f; *(img.DataPtr(12, 3)) = -0.031597015f; *(img.DataPtr(13, 3)) = -0.030670485f; *(img.DataPtr(14, 3)) = -0.029745452f; *(img.DataPtr(15, 3)) = -0.028822016f; *(img.DataPtr(16, 3)) = -0.027896497f; *(img.DataPtr(17, 3)) = -0.026968427f; *(img.DataPtr(18, 3)) = -0.026037738f; *(img.DataPtr(19, 3)) = -0.026896473f; *(img.DataPtr(20, 3)) = -0.027798757f; *(img.DataPtr(21, 3)) = -0.026906194f; *(img.DataPtr(22, 3)) = -0.026008200f; *(img.DataPtr(23, 3)) = -0.025112344f; *(img.DataPtr(24, 3)) = -0.024219094f; *(img.DataPtr(25, 3)) = -0.023328252f; *(img.DataPtr(26, 3)) = -0.022437630f; *(img.DataPtr(27, 3)) = -0.021550965f; *(img.DataPtr(28, 3)) = -0.020661617f;
  *(img.DataPtr(0, 4)) = -0.043148592f; *(img.DataPtr(1, 4)) = -0.042345498f; *(img.DataPtr(2, 4)) = -0.041493021f; *(img.DataPtr(3, 4)) = -0.040591247f; *(img.DataPtr(4, 4)) = -0.039635263f; *(img.DataPtr(5, 4)) = -0.038659472f; *(img.DataPtr(6, 4)) = -0.037688714f; *(img.DataPtr(7, 4)) = -0.036725979f; *(img.DataPtr(8, 4)) = -0.035772994f; *(img.DataPtr(9, 4)) = -0.034825597f; *(img.DataPtr(10, 4)) = -0.033885539f; *(img.DataPtr(11, 4)) = -0.032950614f; *(img.DataPtr(12, 4)) = -0.032019388f; *(img.DataPtr(13, 4)) = -0.031089969f; *(img.DataPtr(14, 4)) = -0.030164545f; *(img.DataPtr(15, 4)) = -0.029238699f; *(img.DataPtr(16, 4)) = -0.028314168f; *(img.DataPtr(17, 4)) = -0.027385920f; *(img.DataPtr(18, 4)) = -0.026455147f; *(img.DataPtr(19, 4)) = -0.025520429f; *(img.DataPtr(20, 4)) = -0.028215265f; *(img.DataPtr(21, 4)) = -0.027323440f; *(img.DataPtr(22, 4)) = -0.026427694f; *(img.DataPtr(23, 4)) = -0.025531026f; *(img.DataPtr(24, 4)) = -0.024639560f; *(img.DataPtr(25, 4)) = -0.023750352f; *(img.DataPtr(26, 4)) = -0.022862127f; *(img.DataPtr(27, 4)) = -0.021976562f; *(img.DataPtr(28, 4)) = -0.021090563f;
  *(img.DataPtr(0, 5)) = -0.043600090f; *(img.DataPtr(1, 1)) = -0.042796899f; *(img.DataPtr(2, 5)) = -0.041945782f; *(img.DataPtr(3, 5)) = -0.041043114f; *(img.DataPtr(4, 5)) = -0.040083509f; *(img.DataPtr(5, 5)) = -0.039106201f; *(img.DataPtr(6, 5)) = -0.038130593f; *(img.DataPtr(7, 5)) = -0.037163854f; *(img.DataPtr(8, 5)) = -0.036204148f; *(img.DataPtr(9, 5)) = -0.035254806f; *(img.DataPtr(10, 5)) = -0.034310859f; *(img.DataPtr(11, 5)) = -0.033373278f; *(img.DataPtr(12, 5)) = -0.032438606f; *(img.DataPtr(13, 5)) = -0.031508628f; *(img.DataPtr(14, 5)) = -0.030580632f; *(img.DataPtr(15, 5)) = -0.029653905f; *(img.DataPtr(16, 5)) = -0.028726444f; *(img.DataPtr(17, 5)) = -0.027798690f; *(img.DataPtr(18, 5)) = -0.026868511f; *(img.DataPtr(19, 5)) = -0.025934940f; *(img.DataPtr(20, 5)) = -0.028625757f; *(img.DataPtr(21, 5)) = -0.027734889f; *(img.DataPtr(22, 5)) = -0.026841603f; *(img.DataPtr(23, 5)) = -0.025947213f; *(img.DataPtr(24, 5)) = -0.025054105f; *(img.DataPtr(25, 5)) = -0.024166826f; *(img.DataPtr(26, 5)) = -0.023280330f; *(img.DataPtr(27, 5)) = -0.022397183f; *(img.DataPtr(28, 5)) = -0.021511339f;
  *(img.DataPtr(0, 6)) = -0.044056710f; *(img.DataPtr(1, 6)) = -0.043253947f; *(img.DataPtr(2, 6)) = -0.042402506f; *(img.DataPtr(3, 6)) = -0.041497547f; *(img.DataPtr(4, 6)) = -0.040538318f; *(img.DataPtr(5, 6)) = -0.039557509f; *(img.DataPtr(6, 6)) = -0.038574893f; *(img.DataPtr(7, 6)) = -0.037604328f; *(img.DataPtr(8, 6)) = -0.036640871f; *(img.DataPtr(9, 6)) = -0.035686634f; *(img.DataPtr(10, 6)) = -0.034739021f; *(img.DataPtr(11, 6)) = -0.033797801f; *(img.DataPtr(12, 6)) = -0.032860730f; *(img.DataPtr(13, 6)) = -0.031927973f; *(img.DataPtr(14, 6)) = -0.030998468f; *(img.DataPtr(15, 6)) = -0.030069444f; *(img.DataPtr(16, 6)) = -0.029141817f; *(img.DataPtr(17, 6)) = -0.028213132f; *(img.DataPtr(18, 6)) = -0.027282942f; *(img.DataPtr(19, 6)) = -0.026349908f; *(img.DataPtr(20, 6)) = -0.029038509f; *(img.DataPtr(21, 6)) = -0.028150229f; *(img.DataPtr(22, 6)) = -0.027256045f; *(img.DataPtr(23, 6)) = -0.026361464f; *(img.DataPtr(24, 6)) = -0.025472213f; *(img.DataPtr(25, 6)) = -0.024584871f; *(img.DataPtr(26, 6)) = -0.023698555f; *(img.DataPtr(27, 6)) = -0.022817720f; *(img.DataPtr(28, 6)) = -0.021933461f;
  *(img.DataPtr(0, 7)) = -0.044514723f; *(img.DataPtr(1, 7)) = -0.043712448f; *(img.DataPtr(2, 7)) = -0.042861395f; *(img.DataPtr(3, 7)) = -0.041956007f; *(img.DataPtr(4, 7)) = -0.040992301f; *(img.DataPtr(5, 7)) = -0.040010717f; *(img.DataPtr(6, 7)) = -0.039025802f; *(img.DataPtr(7, 7)) = -0.038048889f; *(img.DataPtr(8, 7)) = -0.037081096f; *(img.DataPtr(9, 7)) = -0.036121782f; *(img.DataPtr(10, 7)) = -0.035171524f; *(img.DataPtr(11, 7)) = -0.034226902f; *(img.DataPtr(12, 7)) = -0.033286870f; *(img.DataPtr(13, 7)) = -0.032351185f; *(img.DataPtr(14, 7)) = -0.031419180f; *(img.DataPtr(15, 7)) = -0.030488946f; *(img.DataPtr(16, 7)) = -0.029560160f; *(img.DataPtr(17, 7)) = -0.028631227f; *(img.DataPtr(18, 7)) = -0.027700879f; *(img.DataPtr(19, 7)) = -0.026768655f; *(img.DataPtr(20, 7)) = -0.029454703f; *(img.DataPtr(21, 7)) = -0.028566146f; *(img.DataPtr(22, 7)) = -0.027674062f; *(img.DataPtr(23, 7)) = -0.026779654f; *(img.DataPtr(24, 7)) = -0.025889454f; *(img.DataPtr(25, 7)) = -0.025003811f; *(img.DataPtr(26, 7)) = -0.024120955f; *(img.DataPtr(27, 7)) = -0.023241870f; *(img.DataPtr(28, 7)) = -0.022358114f;
  *(img.DataPtr(0, 8)) = -0.044975843f; *(img.DataPtr(1, 8)) = -0.044174772f; *(img.DataPtr(2, 8)) = -0.043323617f; *(img.DataPtr(3, 8)) = -0.042415321f; *(img.DataPtr(4, 8)) = -0.041450761f; *(img.DataPtr(5, 8)) = -0.040466398f; *(img.DataPtr(6, 8)) = -0.039479528f; *(img.DataPtr(7, 8)) = -0.038496841f; *(img.DataPtr(8, 8)) = -0.037523728f; *(img.DataPtr(9, 8)) = -0.036560737f; *(img.DataPtr(10, 8)) = -0.035605654f; *(img.DataPtr(11, 8)) = -0.034656636f; *(img.DataPtr(12, 8)) = -0.033715487f; *(img.DataPtr(13, 8)) = -0.032777101f; *(img.DataPtr(14, 8)) = -0.031841613f; *(img.DataPtr(15, 8)) = -0.030909987f; *(img.DataPtr(16, 8)) = -0.029979447f; *(img.DataPtr(17, 8)) = -0.029050075f; *(img.DataPtr(18, 8)) = -0.028119378f; *(img.DataPtr(19, 8)) = -0.027186455f; *(img.DataPtr(20, 8)) = -0.029870428f; *(img.DataPtr(21, 8)) = -0.028982284f; *(img.DataPtr(22, 8)) = -0.028090714f; *(img.DataPtr(23, 8)) = -0.027196763f; *(img.DataPtr(24, 8)) = -0.026307335f; *(img.DataPtr(25, 8)) = -0.025423249f; *(img.DataPtr(26, 8)) = -0.024539825f; *(img.DataPtr(27, 8)) = -0.023660805f; *(img.DataPtr(28, 8)) = -0.022780357f;
  *(img.DataPtr(0, 9)) = -0.045447979f; *(img.DataPtr(1, 9)) = -0.044645637f; *(img.DataPtr(2, 9)) = -0.043794811f; *(img.DataPtr(3, 9)) = -0.042886533f; *(img.DataPtr(4, 9)) = -0.041918468f; *(img.DataPtr(5, 9)) = -0.040931985f; *(img.DataPtr(6, 9)) = -0.039942227f; *(img.DataPtr(7, 9)) = -0.038953856f; *(img.DataPtr(8, 9)) = -0.037976738f; *(img.DataPtr(9, 9)) = -0.037007824f; *(img.DataPtr(10, 9)) = -0.036050469f; *(img.DataPtr(11, 9)) = -0.035095628f; *(img.DataPtr(12, 9)) = -0.034150284f; *(img.DataPtr(13, 9)) = -0.033209782f; *(img.DataPtr(14, 9)) = -0.032273058f; *(img.DataPtr(15, 9)) = -0.031338178f; *(img.DataPtr(16, 9)) = -0.030407773f; *(img.DataPtr(17, 9)) = -0.029475663f; *(img.DataPtr(18, 9)) = -0.028545270f; *(img.DataPtr(19, 9)) = -0.027611895f; *(img.DataPtr(20, 9)) = -0.030293945f; *(img.DataPtr(21, 9)) = -0.029404689f; *(img.DataPtr(22, 9)) = -0.028515251f; *(img.DataPtr(23, 9)) = -0.027621195f; *(img.DataPtr(24, 9)) = -0.026732901f; *(img.DataPtr(25, 9)) = -0.025847889f; *(img.DataPtr(26, 9)) = -0.024967659f; *(img.DataPtr(27, 9)) = -0.024088649f; *(img.DataPtr(28, 9)) = -0.023210445f;
  *(img.DataPtr(0, 10)) = -0.045919187f; *(img.DataPtr(1, 10)) = -0.045118805f; *(img.DataPtr(2, 10)) = -0.044266216f; *(img.DataPtr(3, 10)) = -0.043357026f; *(img.DataPtr(4, 10)) = -0.042387597f; *(img.DataPtr(5, 10)) = -0.041396633f; *(img.DataPtr(6, 10)) = -0.040404815f; *(img.DataPtr(7, 10)) = -0.039414093f; *(img.DataPtr(8, 10)) = -0.038430385f; *(img.DataPtr(9, 10)) = -0.037456937f; *(img.DataPtr(10, 10)) = -0.036495108f; *(img.DataPtr(11, 10)) = -0.035537459f; *(img.DataPtr(12, 10)) = -0.034586519f; *(img.DataPtr(13, 10)) = -0.033643719f; *(img.DataPtr(14, 10)) = -0.032704335f; *(img.DataPtr(15, 10)) = -0.031767659f; *(img.DataPtr(16, 10)) = -0.030835528f; *(img.DataPtr(17, 10)) = -0.029902589f; *(img.DataPtr(18, 10)) = -0.028971015f; *(img.DataPtr(19, 10)) = -0.028037407f; *(img.DataPtr(20, 10)) = -0.028909868f; *(img.DataPtr(21, 10)) = -0.029828370f; *(img.DataPtr(22, 10)) = -0.028939053f; *(img.DataPtr(23, 10)) = -0.028045695f; *(img.DataPtr(24, 10)) = -0.027157433f; *(img.DataPtr(25, 10)) = -0.026274197f; *(img.DataPtr(26, 10)) = -0.025394611f; *(img.DataPtr(27, 10)) = -0.024516942f; *(img.DataPtr(28, 10)) = -0.023638848f;
  *(img.DataPtr(0, 11)) = -0.046403028f; *(img.DataPtr(1, 11)) = -0.045602452f; *(img.DataPtr(2, 11)) = -0.044749685f; *(img.DataPtr(3, 11)) = -0.043838020f; *(img.DataPtr(4, 11)) = -0.042866852f; *(img.DataPtr(5, 11)) = -0.041873198f; *(img.DataPtr(6, 11)) = -0.040878363f; *(img.DataPtr(7, 11)) = -0.039885540f; *(img.DataPtr(8, 11)) = -0.038896132f; *(img.DataPtr(9, 11)) = -0.037918676f; *(img.DataPtr(10, 11)) = -0.036949720f; *(img.DataPtr(11, 11)) = -0.035988603f; *(img.DataPtr(12, 11)) = -0.035035893f; *(img.DataPtr(13, 11)) = -0.034088127f; *(img.DataPtr(14, 11)) = -0.033145037f; *(img.DataPtr(15, 11)) = -0.032207623f; *(img.DataPtr(16, 11)) = -0.031271882f; *(img.DataPtr(17, 11)) = -0.030338336f; *(img.DataPtr(18, 11)) = -0.029405825f; *(img.DataPtr(19, 11)) = -0.028471809f; *(img.DataPtr(20, 11)) = -0.027536253f; *(img.DataPtr(21, 11)) = -0.030260468f; *(img.DataPtr(22, 11)) = -0.029369731f; *(img.DataPtr(23, 11)) = -0.028480545f; *(img.DataPtr(24, 11)) = -0.027591316f; *(img.DataPtr(25, 11)) = -0.026709298f; *(img.DataPtr(26, 11)) = -0.025828350f; *(img.DataPtr(27, 11)) = -0.024952425f; *(img.DataPtr(28, 11)) = -0.024075883f;
  *(img.DataPtr(0, 12)) = -0.046890851f; *(img.DataPtr(1, 12)) = -0.046090707f; *(img.DataPtr(2, 12)) = -0.045237664f; *(img.DataPtr(3, 12)) = -0.044324689f; *(img.DataPtr(4, 12)) = -0.043350741f; *(img.DataPtr(5, 12)) = -0.042353548f; *(img.DataPtr(6, 12)) = -0.041355237f; *(img.DataPtr(7, 12)) = -0.040360253f; *(img.DataPtr(8, 12)) = -0.039365329f; *(img.DataPtr(9, 12)) = -0.038381241f; *(img.DataPtr(10, 12)) = -0.037407335f; *(img.DataPtr(11, 12)) = -0.036442544f; *(img.DataPtr(12, 12)) = -0.035484619f; *(img.DataPtr(13, 12)) = -0.034533713f; *(img.DataPtr(14, 12)) = -0.033587959f; *(img.DataPtr(15, 12)) = -0.032647934f; *(img.DataPtr(16, 12)) = -0.031710487f; *(img.DataPtr(17, 12)) = -0.030775733f; *(img.DataPtr(18, 12)) = -0.029841660f; *(img.DataPtr(19, 12)) = -0.028906154f; *(img.DataPtr(20, 12)) = -0.027971838f; *(img.DataPtr(21, 12)) = -0.030693229f; *(img.DataPtr(22, 12)) = -0.029804483f; *(img.DataPtr(23, 12)) = -0.028912393f; *(img.DataPtr(24, 12)) = -0.028025722f; *(img.DataPtr(25, 12)) = -0.027142396f; *(img.DataPtr(26, 12)) = -0.026263287f; *(img.DataPtr(27, 12)) = -0.025387993f; *(img.DataPtr(28, 12)) = -0.024512855f;
  *(img.DataPtr(0, 13)) = -0.047386117f; *(img.DataPtr(1, 13)) = -0.046586931f; *(img.DataPtr(2, 13)) = -0.045732003f; *(img.DataPtr(3, 13)) = -0.044818286f; *(img.DataPtr(4, 13)) = -0.043841217f; *(img.DataPtr(5, 13)) = -0.042841539f; *(img.DataPtr(6, 13)) = -0.041840844f; *(img.DataPtr(7, 13)) = -0.040841237f; *(img.DataPtr(8, 13)) = -0.039844982f; *(img.DataPtr(9, 13)) = -0.038855977f; *(img.DataPtr(10, 13)) = -0.037876040f; *(img.DataPtr(11, 13)) = -0.036907330f; *(img.DataPtr(12, 13)) = -0.035944737f; *(img.DataPtr(13, 13)) = -0.034990881f; *(img.DataPtr(14, 13)) = -0.034040578f; *(img.DataPtr(15, 13)) = -0.033097740f; *(img.DataPtr(16, 13)) = -0.032157518f; *(img.DataPtr(17, 13)) = -0.031221332f; *(img.DataPtr(18, 13)) = -0.030284623f; *(img.DataPtr(19, 13)) = -0.029350894f; *(img.DataPtr(20, 13)) = -0.028413242f; *(img.DataPtr(21, 13)) = -0.031135056f; *(img.DataPtr(22, 13)) = -0.030244958f; *(img.DataPtr(23, 13)) = -0.029353419f; *(img.DataPtr(24, 13)) = -0.028466865f; *(img.DataPtr(25, 13)) = -0.027584950f; *(img.DataPtr(26, 13)) = -0.026704703f; *(img.DataPtr(27, 13)) = -0.025830410f; *(img.DataPtr(28, 13)) = -0.024957065f;
  *(img.DataPtr(0, 14)) = -0.047883701f; *(img.DataPtr(1, 14)) = -0.047083117f; *(img.DataPtr(2, 14)) = -0.046228208f; *(img.DataPtr(3, 14)) = -0.045313660f, *(img.DataPtr(4, 14)) = -0.044332091f, *(img.DataPtr(5, 14)) = -0.043330316f; *(img.DataPtr(6, 14)) = -0.042325649f; *(img.DataPtr(7, 14)) = -0.041324615f; *(img.DataPtr(8, 14)) = -0.040323477f; *(img.DataPtr(9, 14)) = -0.039328992f; *(img.DataPtr(10, 14)) = -0.038344081f; *(img.DataPtr(11, 14)) = -0.037370086f; *(img.DataPtr(12, 14)) = -0.036403500f; *(img.DataPtr(13, 14)) = -0.035445299f; *(img.DataPtr(14, 14)) = -0.034492381f; *(img.DataPtr(15, 14)) = -0.033547405f; *(img.DataPtr(16, 14)) = -0.032603450f; *(img.DataPtr(17, 14)) = -0.031664833f; *(img.DataPtr(18, 14)) = -0.030727053f; *(img.DataPtr(19, 14)) = -0.029792788f; *(img.DataPtr(20, 14)) = -0.028854704f; *(img.DataPtr(21, 14)) = -0.031573847f; *(img.DataPtr(22, 14)) = -0.030682640f; *(img.DataPtr(23, 14)) = -0.029793749f; *(img.DataPtr(24, 14)) = -0.028904401f; *(img.DataPtr(25, 14)) = -0.028022796f; *(img.DataPtr(26, 14)) = -0.027144149f; *(img.DataPtr(27, 14)) = -0.026271243f; *(img.DataPtr(28, 14)) = -0.025397616f;
  *(img.DataPtr(0, 15)) = -0.048385575f; *(img.DataPtr(1, 15)) = -0.047586445f; *(img.DataPtr(2, 15)) = -0.046729811f; *(img.DataPtr(3, 15)) = -0.045812920f; *(img.DataPtr(4, 15)) = -0.044829212f; *(img.DataPtr(5, 15)) = -0.043824032f; *(img.DataPtr(6, 15)) = -0.042816851f; *(img.DataPtr(7, 15)) = -0.041812684f; *(img.DataPtr(8, 15)) = -0.040809762f; *(img.DataPtr(9, 15)) = -0.039812114f; *(img.DataPtr(10, 15)) = -0.038822327f; *(img.DataPtr(11, 15)) = -0.037841938f; *(img.DataPtr(12, 15)) = -0.036871489f; *(img.DataPtr(13, 15)) = -0.035909105f; *(img.DataPtr(14, 15)) = -0.034951653f; *(img.DataPtr(15, 15)) = -0.034002617f; *(img.DataPtr(16, 15)) = -0.033057600f; *(img.DataPtr(17, 15)) = -0.032116760f; *(img.DataPtr(18, 15)) = -0.031177685f; *(img.DataPtr(19, 15)) = -0.030240480f; *(img.DataPtr(20, 15)) = -0.029303044f; *(img.DataPtr(21, 15)) = -0.032018322f; *(img.DataPtr(22, 15)) = -0.031128041f; *(img.DataPtr(23, 15)) = -0.030238368f; *(img.DataPtr(24, 15)) = -0.029349774f; *(img.DataPtr(25, 15)) = -0.028466465f; *(img.DataPtr(26, 15)) = -0.027589262f; *(img.DataPtr(27, 15)) = -0.026716618f; *(img.DataPtr(28, 15)) = -0.025845038f;
  *(img.DataPtr(0, 16)) = -0.048894208f; *(img.DataPtr(1, 16)) = -0.048092954f; *(img.DataPtr(2, 16)) = -0.047236346f; *(img.DataPtr(3, 16)) = -0.046317823f; *(img.DataPtr(4, 16)) = -0.045331705f; *(img.DataPtr(5, 16)) = -0.044322610f; *(img.DataPtr(6, 16)) = -0.043312836f; *(img.DataPtr(7, 16)) = -0.042305067f; *(img.DataPtr(8, 16)) = -0.041299090f; *(img.DataPtr(9, 16)) = -0.040298600f; *(img.DataPtr(10, 16)) = -0.039302900f; *(img.DataPtr(11, 16)) = -0.038317915f; *(img.DataPtr(12, 16)) = -0.037341341f; *(img.DataPtr(13, 16)) = -0.036374543f; *(img.DataPtr(14, 16)) = -0.035414416f; *(img.DataPtr(15, 16)) = -0.034461539f; *(img.DataPtr(16, 16)) = -0.033513580f; *(img.DataPtr(17, 16)) = -0.032569446f; *(img.DataPtr(18, 16)) = -0.031628426f; *(img.DataPtr(19, 16)) = -0.030690670f; *(img.DataPtr(20, 16)) = -0.029752361f; *(img.DataPtr(21, 16)) = -0.032465182f; *(img.DataPtr(22, 16)) = -0.031574264f; *(img.DataPtr(23, 16)) = -0.030684048f; *(img.DataPtr(24, 16)) = -0.029795576f; *(img.DataPtr(25, 16)) = -0.028913232f; *(img.DataPtr(26, 16)) = -0.028033514f; *(img.DataPtr(27, 16)) = -0.027161937f; *(img.DataPtr(28, 16)) = -0.026289767f;
  *(img.DataPtr(0, 17)) = -0.049414724f; *(img.DataPtr(1, 17)) = -0.048612952f; *(img.DataPtr(2, 17)) = -0.047756333f; *(img.DataPtr(3, 17)) = -0.046834778f; *(img.DataPtr(4, 17)) = -0.045844883f; *(img.DataPtr(5, 17)) = -0.044832874f; *(img.DataPtr(6, 17)) = -0.043819129f; *(img.DataPtr(7, 17)) = -0.042808369f; *(img.DataPtr(8, 17)) = -0.041799970f; *(img.DataPtr(9, 17)) = -0.040796090f; *(img.DataPtr(10, 17)) = -0.039794561f; *(img.DataPtr(11, 17)) = -0.038803454f; *(img.DataPtr(12, 17)) = -0.037822910f; *(img.DataPtr(13, 17)) = -0.036851019f; *(img.DataPtr(14, 17)) = -0.035887122f; *(img.DataPtr(15, 17)) = -0.034929302f; *(img.DataPtr(16, 17)) = -0.033978581f; *(img.DataPtr(17, 17)) = -0.033032194f; *(img.DataPtr(18, 17)) = -0.032089014f; *(img.DataPtr(19, 17)) = -0.031149181f; *(img.DataPtr(20, 17)) = -0.030209769f; *(img.DataPtr(21, 17)) = -0.031095337f; *(img.DataPtr(22, 17)) = -0.032028969f; *(img.DataPtr(23, 17)) = -0.031138919f; *(img.DataPtr(24, 17)) = -0.030249052f; *(img.DataPtr(25, 17)) = -0.029364228f; *(img.DataPtr(26, 17)) = -0.028488053f; *(img.DataPtr(27, 17)) = -0.027614538f; *(img.DataPtr(28, 17)) = -0.026745619f;
  *(img.DataPtr(0, 18)) = -0.049938776f; *(img.DataPtr(1, 18)) = -0.049136978f; *(img.DataPtr(2, 18)) = -0.048277922f; *(img.DataPtr(3, 18)) = -0.047353331f; *(img.DataPtr(4, 18)) = -0.046361547f; *(img.DataPtr(5, 18)) = -0.045345373f; *(img.DataPtr(6, 18)) = -0.044328410f; *(img.DataPtr(7, 18)) = -0.043313839f; *(img.DataPtr(8, 18)) = -0.042303007f; *(img.DataPtr(9, 18)) = -0.041296545f; *(img.DataPtr(10, 18)) = -0.040292576f; *(img.DataPtr(11, 18)) = -0.039295528f; *(img.DataPtr(12, 18)) = -0.038308334f; *(img.DataPtr(13, 18)) = -0.037331119f; *(img.DataPtr(14, 18)) = -0.036364060f; *(img.DataPtr(15, 18)) = -0.035402354f; *(img.DataPtr(16, 18)) = -0.034447826f; *(img.DataPtr(17, 18)) = -0.033498984f; *(img.DataPtr(18, 18)) = -0.032553002f; *(img.DataPtr(19, 18)) = -0.031612199f; *(img.DataPtr(20, 18)) = -0.030670179f; *(img.DataPtr(21, 18)) = -0.029731397f; *(img.DataPtr(22, 18)) = -0.032486565f; *(img.DataPtr(23, 18)) = -0.031595562f; *(img.DataPtr(24, 18)) = -0.030705767f; *(img.DataPtr(25, 18)) = -0.029821629f; *(img.DataPtr(26, 18)) = -0.028943636f; *(img.DataPtr(27, 18)) = -0.028072411f; *(img.DataPtr(28, 18)) = -0.027201232f;
  *(img.DataPtr(0, 19)) = -0.050465208f; *(img.DataPtr(1, 19)) = -0.049663525f; *(img.DataPtr(2, 19)) = -0.048803002f; *(img.DataPtr(3, 19)) = -0.047876794f; *(img.DataPtr(4, 19)) = -0.046882018f; *(img.DataPtr(5, 19)) = -0.045860369f; *(img.DataPtr(6, 19)) = -0.044840071f; *(img.DataPtr(7, 19)) = -0.043823194f; *(img.DataPtr(8, 19)) = -0.042809445f; *(img.DataPtr(9, 19)) = -0.041799922f; *(img.DataPtr(10, 19)) = -0.040792610f; *(img.DataPtr(11, 19)) = -0.039789364f; *(img.DataPtr(12, 19)) = -0.038797725f; *(img.DataPtr(13, 19)) = -0.037815370f; *(img.DataPtr(14, 19)) = -0.036842022f; *(img.DataPtr(15, 19)) = -0.035876188f; *(img.DataPtr(16, 19)) = -0.034920149f; *(img.DataPtr(17, 19)) = -0.033966076f; *(img.DataPtr(18, 19)) = -0.033019222f; *(img.DataPtr(19, 19)) = -0.032075051f; *(img.DataPtr(20, 19)) = -0.031133259f; *(img.DataPtr(21, 19)) = -0.030191295f; *(img.DataPtr(22, 19)) = -0.032943994f; *(img.DataPtr(23, 19)) = -0.032051340f; *(img.DataPtr(24, 19)) = -0.031164598f; *(img.DataPtr(25, 19)) = -0.030278165f; *(img.DataPtr(26, 19)) = -0.029401036f; *(img.DataPtr(27, 19)) = -0.028528558f; *(img.DataPtr(28, 19)) = -0.027659366f;
  *(img.DataPtr(0, 20)) = -0.051002059f; *(img.DataPtr(1, 20)) = -0.050199214f; *(img.DataPtr(2, 20)) = -0.049337845f; *(img.DataPtr(3, 20)) = -0.048409529f; *(img.DataPtr(4, 20)) = -0.047409791f; *(img.DataPtr(5, 20)) = -0.046386059f; *(img.DataPtr(6, 20)) = -0.045361880f; *(img.DataPtr(7, 20)) = -0.044341743f; *(img.DataPtr(8, 20)) = -0.043322541f; *(img.DataPtr(9, 20)) = -0.042310640f; *(img.DataPtr(10, 20)) = -0.041300718f; *(img.DataPtr(11, 20)) = -0.040294673f; *(img.DataPtr(12, 20)) = -0.039296638f; *(img.DataPtr(13, 20)) = -0.038309239f; *(img.DataPtr(14, 20)) = -0.037331380f; *(img.DataPtr(15, 20)) = -0.036361557f; *(img.DataPtr(16, 20)) = -0.035399102f; *(img.DataPtr(17, 20)) = -0.034443352f; *(img.DataPtr(18, 20)) = -0.033494521f; *(img.DataPtr(19, 20)) = -0.032547168f; *(img.DataPtr(20, 20)) = -0.031603608f; *(img.DataPtr(21, 20)) = -0.030661771f; *(img.DataPtr(22, 20)) = -0.033413101f; *(img.DataPtr(23, 20)) = -0.032519527f; *(img.DataPtr(24, 20)) = -0.031629644f; *(img.DataPtr(25, 20)) = -0.030743092f; *(img.DataPtr(26, 20)) = -0.029864779f; *(img.DataPtr(27, 20)) = -0.028992340f; *(img.DataPtr(28, 20)) = -0.028122047f;
  *(img.DataPtr(0, 21)) = -0.049987033f; *(img.DataPtr(1, 21)) = -0.050743129f; *(img.DataPtr(2, 21)) = -0.049878925f; *(img.DataPtr(3, 21)) = -0.048947636f; *(img.DataPtr(4, 21)) = -0.047945701f; *(img.DataPtr(5, 21)) = -0.046916552f; *(img.DataPtr(6, 21)) = -0.045888338f; *(img.DataPtr(7, 21)) = -0.044864003f; *(img.DataPtr(8, 21)) = -0.043843240f; *(img.DataPtr(9, 21)) = -0.042828470f; *(img.DataPtr(10, 21)) = -0.041814215f; *(img.DataPtr(11, 21)) = -0.040806532f; *(img.DataPtr(12, 21)) = -0.039801829f; *(img.DataPtr(13, 21)) = -0.038808718f; *(img.DataPtr(14, 21)) = -0.037824854f; *(img.DataPtr(15, 21)) = -0.036851224f; *(img.DataPtr(16, 21)) = -0.035885505f; *(img.DataPtr(17, 21)) = -0.034926176f; *(img.DataPtr(18, 21)) = -0.033972990f; *(img.DataPtr(19, 21)) = -0.033023112f; *(img.DataPtr(20, 21)) = -0.032077122f; *(img.DataPtr(21, 21)) = -0.031134304f; *(img.DataPtr(22, 21)) = -0.033882514f; *(img.DataPtr(23, 21)) = -0.032987740f; *(img.DataPtr(24, 21)) = -0.032097232f; *(img.DataPtr(25, 21)) = -0.031211318f; *(img.DataPtr(26, 21)) = -0.030331668f; *(img.DataPtr(27, 21)) = -0.029458163f; *(img.DataPtr(28, 21)) = -0.028588101f;
  *(img.DataPtr(0, 22)) = -0.048967950f; *(img.DataPtr(1, 22)) = -0.051287543f; *(img.DataPtr(2, 22)) = -0.050421447f; *(img.DataPtr(3, 22)) = -0.049487486f; *(img.DataPtr(4, 22)) = -0.048480477f; *(img.DataPtr(5, 22)) = -0.047448587f; *(img.DataPtr(6, 22)) = -0.046416640f; *(img.DataPtr(7, 22)) = -0.045389660f; *(img.DataPtr(8, 22)) = -0.044364464f; *(img.DataPtr(9, 22)) = -0.043345563f; *(img.DataPtr(10, 22)) = -0.042328984f; *(img.DataPtr(11, 22)) = -0.041318841f; *(img.DataPtr(12, 22)) = -0.040311903f; *(img.DataPtr(13, 22)) = -0.039312832f; *(img.DataPtr(14, 22)) = -0.038323548f; *(img.DataPtr(15, 22)) = -0.037344616f; *(img.DataPtr(16, 22)) = -0.036374550f; *(img.DataPtr(17, 22)) = -0.035410967f; *(img.DataPtr(18, 22)) = -0.034454063f; *(img.DataPtr(19, 22)) = -0.033502731f; *(img.DataPtr(20, 22)) = -0.032554533f; *(img.DataPtr(21, 22)) = -0.031609628f; *(img.DataPtr(22, 22)) = -0.034355253f; *(img.DataPtr(23, 22)) = -0.033459987f; *(img.DataPtr(24, 22)) = -0.032567713f; *(img.DataPtr(25, 22)) = -0.031680413f; *(img.DataPtr(26, 22)) = -0.030800683f; *(img.DataPtr(27, 22)) = -0.029925475f; *(img.DataPtr(28, 22)) = -0.029056471f;
  *(img.DataPtr(0, 23)) = -0.049515355f; *(img.DataPtr(1, 23)) = -0.051838897f; *(img.DataPtr(2, 23)) = -0.050970908f; *(img.DataPtr(3, 23)) = -0.050033528f; *(img.DataPtr(4, 23)) = -0.049022298f; *(img.DataPtr(5, 23)) = -0.047985937f; *(img.DataPtr(6, 23)) = -0.046949334f; *(img.DataPtr(7, 23)) = -0.045918368f; *(img.DataPtr(8, 23)) = -0.044890657f; *(img.DataPtr(9, 23)) = -0.043868739f; *(img.DataPtr(10, 23)) = -0.042849347f; *(img.DataPtr(11, 23)) = -0.041836660f; *(img.DataPtr(12, 23)) = -0.040827014f; *(img.DataPtr(13, 23)) = -0.039820883f; *(img.DataPtr(14, 23)) = -0.038826346f; *(img.DataPtr(15, 23)) = -0.037843138f; *(img.DataPtr(16, 23)) = -0.036868490f; *(img.DataPtr(17, 23)) = -0.035900440f; *(img.DataPtr(18, 23)) = -0.034939591f; *(img.DataPtr(19, 23)) = -0.033985276f; *(img.DataPtr(20, 23)) = -0.033035092f; *(img.DataPtr(21, 23)) = -0.032087423f; *(img.DataPtr(22, 23)) = -0.034830540f; *(img.DataPtr(23, 23)) = -0.033934560f; *(img.DataPtr(24, 23)) = -0.033042606f; *(img.DataPtr(25, 23)) = -0.032152846f; *(img.DataPtr(26, 23)) = -0.031271458f; *(img.DataPtr(27, 23)) = -0.030397778f; *(img.DataPtr(28, 23)) = -0.029527277f;
  *(img.DataPtr(0, 24)) = -0.050068904f; *(img.DataPtr(1, 24)) = -0.052395895f; *(img.DataPtr(2, 24)) = -0.051525414f; *(img.DataPtr(3, 24)) = -0.050584901f; *(img.DataPtr(4, 24)) = -0.049571421f; *(img.DataPtr(5, 24)) = -0.048529208f; *(img.DataPtr(6, 24)) = -0.047488566f; *(img.DataPtr(7, 24)) = -0.046452653f; *(img.DataPtr(8, 24)) = -0.045422275f; *(img.DataPtr(9, 24)) = -0.044396795f; *(img.DataPtr(10, 24)) = -0.043375701f; *(img.DataPtr(11, 24)) = -0.042357486f; *(img.DataPtr(12, 24)) = -0.041345865f; *(img.DataPtr(13, 24)) = -0.040333636f; *(img.DataPtr(14, 24)) = -0.039333150f; *(img.DataPtr(15, 24)) = -0.038343709f; *(img.DataPtr(16, 24)) = -0.037364215f; *(img.DataPtr(17, 24)) = -0.036392275f; *(img.DataPtr(18, 24)) = -0.035428952f; *(img.DataPtr(19, 24)) = -0.034470990f; *(img.DataPtr(20, 24)) = -0.033517253f; *(img.DataPtr(21, 24)) = -0.032567911f; *(img.DataPtr(22, 24)) = -0.035308581f; *(img.DataPtr(23, 24)) = -0.034408901f; *(img.DataPtr(24, 24)) = -0.033516049f; *(img.DataPtr(25, 24)) = -0.032625921f; *(img.DataPtr(26, 24)) = -0.031743627f; *(img.DataPtr(27, 24)) = -0.030867428f; *(img.DataPtr(28, 24)) = -0.029997153f;
  *(img.DataPtr(0, 25)) = -0.050631952f; *(img.DataPtr(1, 25)) = -0.052961819f; *(img.DataPtr(2, 25)) = -0.052089036f; *(img.DataPtr(3, 25)) = -0.051145736f; *(img.DataPtr(4, 25)) = -0.050125640f; *(img.DataPtr(5, 25)) = -0.049081363f; *(img.DataPtr(6, 25)) = -0.048035719f; *(img.DataPtr(7, 25)) = -0.046996709f; *(img.DataPtr(8, 25)) = -0.045961484f; *(img.DataPtr(9, 25)) = -0.044933550f; *(img.DataPtr(10, 25)) = -0.043907765f; *(img.DataPtr(11, 25)) = -0.042888034f; *(img.DataPtr(12, 25)) = -0.041872699f; *(img.DataPtr(13, 25)) = -0.040858146f; *(img.DataPtr(14, 25)) = -0.039851803f; *(img.DataPtr(15, 25)) = -0.038856667f; *(img.DataPtr(16, 25)) = -0.037872013f; *(img.DataPtr(17, 25)) = -0.036895491f; *(img.DataPtr(18, 25)) = -0.035926826f; *(img.DataPtr(19, 25)) = -0.034965366f; *(img.DataPtr(20, 25)) = -0.034008242f; *(img.DataPtr(21, 25)) = -0.033058293f; *(img.DataPtr(22, 25)) = -0.033954229f; *(img.DataPtr(23, 25)) = -0.034895860f; *(img.DataPtr(24, 25)) = -0.034000553f; *(img.DataPtr(25, 25)) = -0.033109460f; *(img.DataPtr(26, 25)) = -0.032224696f; *(img.DataPtr(27, 25)) = -0.031350154f; *(img.DataPtr(28, 25)) = -0.030477580f;
  *(img.DataPtr(0, 26)) = -0.051201239f; *(img.DataPtr(1, 26)) = -0.053535305f; *(img.DataPtr(2, 26)) = -0.052660186f; *(img.DataPtr(3, 26)) = -0.051713526f; *(img.DataPtr(4, 26)) = -0.050689444f; *(img.DataPtr(5, 26)) = -0.049638961f; *(img.DataPtr(6, 26)) = -0.048589364f; *(img.DataPtr(7, 26)) = -0.047545511f; *(img.DataPtr(8, 26)) = -0.046505310f; *(img.DataPtr(9, 26)) = -0.045473982f; *(img.DataPtr(10, 26)) = -0.044445038f; *(img.DataPtr(11, 26)) = -0.043422043f; *(img.DataPtr(12, 26)) = -0.042404976f; *(img.DataPtr(13, 26)) = -0.041387614f; *(img.DataPtr(14, 26)) = -0.040373873f; *(img.DataPtr(15, 26)) = -0.039372746f; *(img.DataPtr(16, 26)) = -0.038382687f; *(img.DataPtr(17, 26)) = -0.037401736f; *(img.DataPtr(18, 26)) = -0.036429644f; *(img.DataPtr(19, 26)) = -0.035464011f; *(img.DataPtr(20, 26)) = -0.034505039f; *(img.DataPtr(21, 26)) = -0.033550706f; *(img.DataPtr(22, 26)) = -0.032601215f; *(img.DataPtr(23, 26)) = -0.035384208f; *(img.DataPtr(24, 26)) = -0.034485739f; *(img.DataPtr(25, 26)) = -0.033592477f; *(img.DataPtr(26, 26)) = -0.032708347f; *(img.DataPtr(27, 26)) = -0.031830966f; *(img.DataPtr(28, 26)) = -0.030959785f;
  *(img.DataPtr(0, 27)) = -0.050197858f; *(img.DataPtr(1, 27)) = -0.054110561f; *(img.DataPtr(2, 27)) = -0.053232074f; *(img.DataPtr(3, 27)) = -0.052281789f; *(img.DataPtr(4, 27)) = -0.051252078f; *(img.DataPtr(5, 27)) = -0.050197579f; *(img.DataPtr(6, 27)) = -0.049143445f; *(img.DataPtr(7, 27)) = -0.048094578f; *(img.DataPtr(8, 27)) = -0.047050498f; *(img.DataPtr(9, 27)) = -0.046014827f; *(img.DataPtr(10, 27)) = -0.044982631f; *(img.DataPtr(11, 27)) = -0.043957524f; *(img.DataPtr(12, 27)) = -0.042936176f; *(img.DataPtr(13, 27)) = -0.041917637f; *(img.DataPtr(14, 27)) = -0.040901728f; *(img.DataPtr(15, 27)) = -0.039894331f; *(img.DataPtr(16, 27)) = -0.038898163f; *(img.DataPtr(17, 27)) = -0.037912082f; *(img.DataPtr(18, 27)) = -0.036934569f; *(img.DataPtr(19, 27)) = -0.035966672f; *(img.DataPtr(20, 27)) = -0.035002939f; *(img.DataPtr(21, 27)) = -0.034046620f; *(img.DataPtr(22, 27)) = -0.033093944f; *(img.DataPtr(23, 27)) = -0.035874054f; *(img.DataPtr(24, 27)) = -0.034973525f; *(img.DataPtr(25, 27)) = -0.034079690f; *(img.DataPtr(26, 27)) = -0.033192690f; *(img.DataPtr(27, 27)) = -0.032314677f; *(img.DataPtr(28, 27)) = -0.031441297f;

	int floodFillSize	= 0;

	ippiFloodFillGetSize_Grad(img.Size(), &floodFillSize);
	uint ffSize = (uint) floodFillSize;

	size_t mallSize = static_cast<size_t>(ffSize);
  Ipp8u* pBuffer = static_cast<Ipp8u*>(_aligned_malloc(mallSize, 32));

	IppiConnectedComp connectedComp;
	IppiPoint seed = {28,0};
  Ipp32f newVal = -0.019380737;

  ippiFloodFill_Grad8Con_32f_C1IR(img.DataPtr(), img.Step(), img.Size(),
        seed, newVal,
        0.00064f, 0.00064f,
        &connectedComp, pBuffer);

  _aligned_free(pBuffer);
  pBuffer = nullptr;
}

 

ippi: Grayscale 16-bit

$
0
0

I noticed that there aren't many functions available on Image Processing that support Grayscale 16-bit.

For example, If I want to scale an image on Grayscale 16 format where bytes per pixel == 2, the function ippiResizeLinear_8u_C1R doesn't work properly, nor ippiResizeLinear_8u_C3R.

So to use Intel IPP for this purpose on this type of images, should I then convert the images to RGB? And from what I could see there is no function in IPP for doing that for me.

What would be suggested?

How to port 'ippiResize_8u_C1R' function to IPP version 8.1.1

$
0
0

Hello:



We have one very old IPP funtion (from IPP 2.0) that we have been using for more than a decade. It is called 'ippiResize_8u_C1R'. It appears that that function is no longer available in IPP 8.1.



We are not sure which corresponding new method we should be calling when we upgrade our code base to IPP 8.1. We could not find or found very little information on internet about that subject. Note we are also upgrading from 32 bit to 64 bit platform (Windows 7). We use "Nearest Neighbor' interpolation method when we call that function.



As a first step, can you guide us what changes we should make to make it compatible with 8.1? We want to achieve the same exact functionality in order not to impact our users. We provide methods\wrappers to users who need to resize image.



Are there any 8.1 code examples for resize image?

I  attached 2 files which has code showing what we have today using the old function "ippiResize_8u_C1R"

The first file contains code for our resizeImage() wrapper method for resizing 1 D image, The second file is our resizeImage() wrapper method for 2 D image.   Both functions use the old IPP funtion. We use  "Nearest Neighbor' interpolation method.

 

I am a beginner in IPP. and I was assigned to port our code base to 8.1.1. So if you can guide me with as many details as possible on how to replace our old function with the new one which should achieve the same functionality, it would be much appreciated.

 

Thanks in advance!



Steve

ippFloodFill crashes because of wrong buffer

$
0
0

Hello,

exactly for this image there is an overflow. The buffer is to small. It does not matter if the whole image is scanned or only 29x29. The buffer is overwritten.

Does anyone know a solution?

Best regard!

void ExecuteFloodFillGrad()
{
  const int width = 29;
  const int height = 29;
  const int stepFloat = 32;
  const int step = stepFloat*sizeof(Ipp32f);

		Ipp32f image[stepFloat*height] = {
			-0.041359305f, -0.040551849f, -0.039700896f, -0.038801193f, -0.037854474f, -0.036893703f, -0.035940997f, -0.034996118f, -0.034058873f, -0.033125922f, -0.032198206f, -0.031274345f, -0.030351648f, -0.029429829f, -0.028508564f, -0.027586684f, -0.026663359f, -0.025735574f, -0.024801414f, -0.027460925f, -0.026567634f, -0.025669908f, -0.024767900f, -0.023866726f, -0.022970574f, -0.022076001f, -0.021180894f, -0.020286271f, -0.019390738f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.041799415f, -0.040994138f, -0.040141661f, -0.039242487f, -0.038292460f, -0.037327528f, -0.036370717f, -0.035423342f, -0.034481280f, -0.033546295f, -0.032614194f, -0.031688336f, -0.030762870f, -0.029841159f, -0.028918007f, -0.027997596f, -0.027071640f, -0.026144236f, -0.025211867f, -0.027869157f, -0.026975738f, -0.026081143f, -0.025179781f, -0.024281939f, -0.023385651f, -0.022492629f, -0.021597851f, -0.020707674f, -0.019812819f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.042244311f, -0.041439246f, -0.040587161f, -0.039687391f, -0.038734592f, -0.037764940f, -0.036803838f, -0.035851441f, -0.034905568f, -0.033966787f, -0.033031702f, -0.032103289f, -0.031176910f, -0.030251876f, -0.029329112f, -0.028405424f, -0.027481673f, -0.026554044f, -0.025622411f, -0.028275793f, -0.027385123f, -0.026490301f, -0.025590317f, -0.024693279f, -0.023799501f, -0.022907382f, -0.022013256f, -0.021125857f, -0.020235062f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.042694889f, -0.041889694f, -0.041038942f, -0.040137414f, -0.039183147f, -0.038210835f, -0.037243251f, -0.036287144f, -0.035337999f, -0.034395196f, -0.033457316f, -0.032525331f, -0.031597015f, -0.030670485f, -0.029745452f, -0.028822016f, -0.027896497f, -0.026968427f, -0.026037738f, -0.026896473f, -0.027798757f, -0.026906194f, -0.026008200f, -0.025112344f, -0.024219094f, -0.023328252f, -0.022437630f, -0.021550965f, -0.020661617f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.043148592f, -0.042345498f, -0.041493021f, -0.040591247f, -0.039635263f, -0.038659472f, -0.037688714f, -0.036725979f, -0.035772994f, -0.034825597f, -0.033885539f, -0.032950614f, -0.032019388f, -0.031089969f, -0.030164545f, -0.029238699f, -0.028314168f, -0.027385920f, -0.026455147f, -0.025520429f, -0.028215265f, -0.027323440f, -0.026427694f, -0.025531026f, -0.024639560f, -0.023750352f, -0.022862127f, -0.021976562f, -0.021090563f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.043600090f, -0.042796899f, -0.041945782f, -0.041043114f, -0.040083509f, -0.039106201f, -0.038130593f, -0.037163854f, -0.036204148f, -0.035254806f, -0.034310859f, -0.033373278f, -0.032438606f, -0.031508628f, -0.030580632f, -0.029653905f, -0.028726444f, -0.027798690f, -0.026868511f, -0.025934940f, -0.028625757f, -0.027734889f, -0.026841603f, -0.025947213f, -0.025054105f, -0.024166826f, -0.023280330f, -0.022397183f, -0.021511339f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.044056710f, -0.043253947f, -0.042402506f, -0.041497547f, -0.040538318f, -0.039557509f, -0.038574893f, -0.037604328f, -0.036640871f, -0.035686634f, -0.034739021f, -0.033797801f, -0.032860730f, -0.031927973f, -0.030998468f, -0.030069444f, -0.029141817f, -0.028213132f, -0.027282942f, -0.026349908f, -0.029038509f, -0.028150229f, -0.027256045f, -0.026361464f, -0.025472213f, -0.024584871f, -0.023698555f, -0.022817720f, -0.021933461f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.044514723f, -0.043712448f, -0.042861395f, -0.041956007f, -0.040992301f, -0.040010717f, -0.039025802f, -0.038048889f, -0.037081096f, -0.036121782f, -0.035171524f, -0.034226902f, -0.033286870f, -0.032351185f, -0.031419180f, -0.030488946f, -0.029560160f, -0.028631227f, -0.027700879f, -0.026768655f, -0.029454703f, -0.028566146f, -0.027674062f, -0.026779654f, -0.025889454f, -0.025003811f, -0.024120955f, -0.023241870f, -0.022358114f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.044975843f, -0.044174772f, -0.043323617f, -0.042415321f, -0.041450761f, -0.040466398f, -0.039479528f, -0.038496841f, -0.037523728f, -0.036560737f, -0.035605654f, -0.034656636f, -0.033715487f, -0.032777101f, -0.031841613f, -0.030909987f, -0.029979447f, -0.029050075f, -0.028119378f, -0.027186455f, -0.029870428f, -0.028982284f, -0.028090714f, -0.027196763f, -0.026307335f, -0.025423249f, -0.024539825f, -0.023660805f, -0.022780357f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.045447979f, -0.044645637f, -0.043794811f, -0.042886533f, -0.041918468f, -0.040931985f, -0.039942227f, -0.038953856f, -0.037976738f, -0.037007824f, -0.036050469f, -0.035095628f, -0.034150284f, -0.033209782f, -0.032273058f, -0.031338178f, -0.030407773f, -0.029475663f, -0.028545270f, -0.027611895f, -0.030293945f, -0.029404689f, -0.028515251f, -0.027621195f, -0.026732901f, -0.025847889f, -0.024967659f, -0.024088649f, -0.023210445f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.045919187f, -0.045118805f, -0.044266216f, -0.043357026f, -0.042387597f, -0.041396633f, -0.040404815f, -0.039414093f, -0.038430385f, -0.037456937f, -0.036495108f, -0.035537459f, -0.034586519f, -0.033643719f, -0.032704335f, -0.031767659f, -0.030835528f, -0.029902589f, -0.028971015f, -0.028037407f, -0.028909868f, -0.029828370f, -0.028939053f, -0.028045695f, -0.027157433f, -0.026274197f, -0.025394611f, -0.024516942f, -0.023638848f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.046403028f, -0.045602452f, -0.044749685f, -0.043838020f, -0.042866852f, -0.041873198f, -0.040878363f, -0.039885540f, -0.038896132f, -0.037918676f, -0.036949720f, -0.035988603f, -0.035035893f, -0.034088127f, -0.033145037f, -0.032207623f, -0.031271882f, -0.030338336f, -0.029405825f, -0.028471809f, -0.027536253f, -0.030260468f, -0.029369731f, -0.028480545f, -0.027591316f, -0.026709298f, -0.025828350f, -0.024952425f, -0.024075883f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.046890851f, -0.046090707f, -0.045237664f, -0.044324689f, -0.043350741f, -0.042353548f, -0.041355237f, -0.040360253f, -0.039365329f, -0.038381241f, -0.037407335f, -0.036442544f, -0.035484619f, -0.034533713f, -0.033587959f, -0.032647934f, -0.031710487f, -0.030775733f, -0.029841660f, -0.028906154f, -0.027971838f, -0.030693229f, -0.029804483f, -0.028912393f, -0.028025722f, -0.027142396f, -0.026263287f, -0.025387993f, -0.024512855f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.047386117f, -0.046586931f, -0.045732003f, -0.044818286f, -0.043841217f, -0.042841539f, -0.041840844f, -0.040841237f, -0.039844982f, -0.038855977f, -0.037876040f, -0.036907330f, -0.035944737f, -0.034990881f, -0.034040578f, -0.033097740f, -0.032157518f, -0.031221332f, -0.030284623f, -0.029350894f, -0.028413242f, -0.031135056f, -0.030244958f, -0.029353419f, -0.028466865f, -0.027584950f, -0.026704703f, -0.025830410f, -0.024957065f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.047883701f, -0.047083117f, -0.046228208f, -0.045313660f, -0.044332091f, -0.043330316f, -0.042325649f, -0.041324615f, -0.040323477f, -0.039328992f, -0.038344081f, -0.037370086f, -0.036403500f, -0.035445299f, -0.034492381f, -0.033547405f, -0.032603450f, -0.031664833f, -0.030727053f, -0.029792788f, -0.028854704f, -0.031573847f, -0.030682640f, -0.029793749f, -0.028904401f, -0.028022796f, -0.027144149f, -0.026271243f, -0.025397616f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.048385575f, -0.047586445f, -0.046729811f, -0.045812920f, -0.044829212f, -0.043824032f, -0.042816851f, -0.041812684f, -0.040809762f, -0.039812114f, -0.038822327f, -0.037841938f, -0.036871489f, -0.035909105f, -0.034951653f, -0.034002617f, -0.033057600f, -0.032116760f, -0.031177685f, -0.030240480f, -0.029303044f, -0.032018322f, -0.031128041f, -0.030238368f, -0.029349774f, -0.028466465f, -0.027589262f, -0.026716618f, -0.025845038f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.048894208f, -0.048092954f, -0.047236346f, -0.046317823f, -0.045331705f, -0.044322610f, -0.043312836f, -0.042305067f, -0.041299090f, -0.040298600f, -0.039302900f, -0.038317915f, -0.037341341f, -0.036374543f, -0.035414416f, -0.034461539f, -0.033513580f, -0.032569446f, -0.031628426f, -0.030690670f, -0.029752361f, -0.032465182f, -0.031574264f, -0.030684048f, -0.029795576f, -0.028913232f, -0.028033514f, -0.027161937f, -0.026289767f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.049414724f, -0.048612952f, -0.047756333f, -0.046834778f, -0.045844883f, -0.044832874f, -0.043819129f, -0.042808369f, -0.041799970f, -0.040796090f, -0.039794561f, -0.038803454f, -0.037822910f, -0.036851019f, -0.035887122f, -0.034929302f, -0.033978581f, -0.033032194f, -0.032089014f, -0.031149181f, -0.030209769f, -0.031095337f, -0.032028969f, -0.031138919f, -0.030249052f, -0.029364228f, -0.028488053f, -0.027614538f, -0.026745619f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.049938776f, -0.049136978f, -0.048277922f, -0.047353331f, -0.046361547f, -0.045345373f, -0.044328410f, -0.043313839f, -0.042303007f, -0.041296545f, -0.040292576f, -0.039295528f, -0.038308334f, -0.037331119f, -0.036364060f, -0.035402354f, -0.034447826f, -0.033498984f, -0.032553002f, -0.031612199f, -0.030670179f, -0.029731397f, -0.032486565f, -0.031595562f, -0.030705767f, -0.029821629f, -0.028943636f, -0.028072411f, -0.027201232f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.050465208f, -0.049663525f, -0.048803002f, -0.047876794f, -0.046882018f, -0.045860369f, -0.044840071f, -0.043823194f, -0.042809445f, -0.041799922f, -0.040792610f, -0.039789364f, -0.038797725f, -0.037815370f, -0.036842022f, -0.035876188f, -0.034920149f, -0.033966076f, -0.033019222f, -0.032075051f, -0.031133259f, -0.030191295f, -0.032943994f, -0.032051340f, -0.031164598f, -0.030278165f, -0.029401036f, -0.028528558f, -0.027659366f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.051002059f, -0.050199214f, -0.049337845f, -0.048409529f, -0.047409791f, -0.046386059f, -0.045361880f, -0.044341743f, -0.043322541f, -0.042310640f, -0.041300718f, -0.040294673f, -0.039296638f, -0.038309239f, -0.037331380f, -0.036361557f, -0.035399102f, -0.034443352f, -0.033494521f, -0.032547168f, -0.031603608f, -0.030661771f, -0.033413101f, -0.032519527f, -0.031629644f, -0.030743092f, -0.029864779f, -0.028992340f, -0.028122047f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.049987033f, -0.050743129f, -0.049878925f, -0.048947636f, -0.047945701f, -0.046916552f, -0.045888338f, -0.044864003f, -0.043843240f, -0.042828470f, -0.041814215f, -0.040806532f, -0.039801829f, -0.038808718f, -0.037824854f, -0.036851224f, -0.035885505f, -0.034926176f, -0.033972990f, -0.033023112f, -0.032077122f, -0.031134304f, -0.033882514f, -0.032987740f, -0.032097232f, -0.031211318f, -0.030331668f, -0.029458163f, -0.028588101f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.048967950f, -0.051287543f, -0.050421447f, -0.049487486f, -0.048480477f, -0.047448587f, -0.046416640f, -0.045389660f, -0.044364464f, -0.043345563f, -0.042328984f, -0.041318841f, -0.040311903f, -0.039312832f, -0.038323548f, -0.037344616f, -0.036374550f, -0.035410967f, -0.034454063f, -0.033502731f, -0.032554533f, -0.031609628f, -0.034355253f, -0.033459987f, -0.032567713f, -0.031680413f, -0.030800683f, -0.029925475f, -0.029056471f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.049515355f, -0.051838897f, -0.050970908f, -0.050033528f, -0.049022298f, -0.047985937f, -0.046949334f, -0.045918368f, -0.044890657f, -0.043868739f, -0.042849347f, -0.041836660f, -0.040827014f, -0.039820883f, -0.038826346f, -0.037843138f, -0.036868490f, -0.035900440f, -0.034939591f, -0.033985276f, -0.033035092f, -0.032087423f, -0.034830540f, -0.033934560f, -0.033042606f, -0.032152846f, -0.031271458f, -0.030397778f, -0.029527277f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.050068904f, -0.052395895f, -0.051525414f, -0.050584901f, -0.049571421f, -0.048529208f, -0.047488566f, -0.046452653f, -0.045422275f, -0.044396795f, -0.043375701f, -0.042357486f, -0.041345865f, -0.040333636f, -0.039333150f, -0.038343709f, -0.037364215f, -0.036392275f, -0.035428952f, -0.034470990f, -0.033517253f, -0.032567911f, -0.035308581f, -0.034408901f, -0.033516049f, -0.032625921f, -0.031743627f, -0.030867428f, -0.029997153f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.050631952f, -0.052961819f, -0.052089036f, -0.051145736f, -0.050125640f, -0.049081363f, -0.048035719f, -0.046996709f, -0.045961484f, -0.044933550f, -0.043907765f, -0.042888034f, -0.041872699f, -0.040858146f, -0.039851803f, -0.038856667f, -0.037872013f, -0.036895491f, -0.035926826f, -0.034965366f, -0.034008242f, -0.033058293f, -0.033954229f, -0.034895860f, -0.034000553f, -0.033109460f, -0.032224696f, -0.031350154f, -0.030477580f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.051201239f, -0.053535305f, -0.052660186f, -0.051713526f, -0.050689444f, -0.049638961f, -0.048589364f, -0.047545511f, -0.046505310f, -0.045473982f, -0.044445038f, -0.043422043f, -0.042404976f, -0.041387614f, -0.040373873f, -0.039372746f, -0.038382687f, -0.037401736f, -0.036429644f, -0.035464011f, -0.034505039f, -0.033550706f, -0.032601215f, -0.035384208f, -0.034485739f, -0.033592477f, -0.032708347f, -0.031830966f, -0.030959785f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.050197858f, -0.054110561f, -0.053232074f, -0.052281789f, -0.051252078f, -0.050197579f, -0.049143445f, -0.048094578f, -0.047050498f, -0.046014827f, -0.044982631f, -0.043957524f, -0.042936176f, -0.041917637f, -0.040901728f, -0.039894331f, -0.038898163f, -0.037912082f, -0.036934569f, -0.035966672f, -0.035002939f, -0.034046620f, -0.033093944f, -0.035874054f, -0.034973525f, -0.034079690f, -0.033192690f, -0.032314677f, -0.031441297f, -0.0013270393f, -0.0013270393f, -0.0013270393f,
			-0.049204681f, -0.053101134f, -0.053821467f, -0.052866250f, -0.051831029f, -0.050771017f, -0.049712464f, -0.048659962f, -0.047611333f, -0.046571512f, -0.045536250f, -0.044507615f, -0.043483056f, -0.042460650f, -0.041442830f, -0.040428806f, -0.039426170f, -0.038434651f, -0.037452258f, -0.036480065f, -0.035512168f, -0.034552701f, -0.033598807f, -0.036375783f, -0.035472959f, -0.034577865f, -0.033688795f, -0.032809518f, -0.031934287f, -0.0013270393f, -0.0013270393f, -0.0013270393f };

  //IppiSize size; size.width = width; size.height = height;
  IppiSize size; size.width=stepFloat; size.height = height;

	int floodFillSize	= 0;

	ippiFloodFillGetSize_Grad(size, &floodFillSize);

  Ipp8u* pBuffer = static_cast<Ipp8u*>(ippsMalloc_8u(floodFillSize));
  memset (pBuffer, 0xcd, floodFillSize);

	IppiConnectedComp connectedComp;
	IppiPoint seed = {28,0};
  Ipp32f newVal = -0.019380737;
  Ipp32f floodFillMinValue = 0.00063999998f;

  ippiFloodFill_Grad8Con_32f_C1IR(image, step, size,
        seed, newVal,
        floodFillMinValue, 0.00064f,
        &connectedComp, pBuffer);

  ippsFree(pBuffer);
  pBuffer = nullptr;
}

 


Replacing ippiFilterBox_8u_C1R with ippifilterboxborder_8u_C1R

$
0
0

Hi:

We plan to upgrade to IPP 8.1. We understand that ippiFilterBox_8u_C1R function is deprecated and we should use  ippifilterboxborder_8u_C1R.

I noted that there are two new parameter in ippifilterboxborder_8u_C1R function that do not exist in old function.

 

1. Border type

2. Border value

 

My question

What values should be given to those two parameters before calling the new IPP function? Can I just randomly choose some type and some value?

Probably not.

 

Anyway, since the old one does not have those 2, I have no idea how to translate that in a new IPP function. Please help!

Thanks in advance!

 

Steve

Deployment: IPP 8.1 redist\intel64\ipp folder has 1033/1041 folders

$
0
0

Hi:

I am planning to upgrade from 2.0 to 8.1

There are 2 folders named 1033 and 1041 under redist\intel64\ipp folder. They both have "ippmsg.dll" file.

 

What are they used for?

In IPP 2.0, those 2 folders do not exist.

 

Do we need to have those two  folders packaged and deployed on target machine in addition to the dll files  in ipp folder?

Or is it sufficient to  have only  the dlls (and not 1033 and 1041 folders)?

 

Please help!

Thanks

Steve

 

 

 

 

 

UIC Upates

$
0
0

any updates to UIC or it status ?

 im lookin specifically for updates to j2k encoder/decoder so it can better deal with slightly weird j2k's produced by kakadu (and similar)? 

 

Resizing with subpixel precision - Ipp32f?

$
0
0

If I want to work with Subpixel precision, I read on another post that someone is using Ipp32f types for that purpose.

But I fail to understand how that can help me.

If I have a Grayscale 16 image, where 1 pixel == 2 bytes, how would I represent the byte array in Ipp32f? And the function ippiResizeLinear_32f_C1R, for example, still takes IppiPoint and IppiSize which contain height and width in integers...

What am I missing here?

Unable to create GPU accelerators

$
0
0

Hello

I am using the February Preview of IPP Asynchronous Libraries for C/C++. I have been working on a project which requires me to create a single accelerator from a file and use it over multiple files. CPU accelerator created in this manner is being used over the files without any problem and generating the expected results. However, when I direct the program to create a GPU accelerator, it still creates a CPU accelerator. 

The examples provided with the Feb release are successfully creating a GPU accelerator (HPP_ACCEL_TYPE_GPU_VIA_DX9) when directed, hence the system specifications and drivers are in place.

Is it because I am writing the code on one machine and using the generated dlls for running a program on another machine?

Both the machines have the IPP February release installed, but only one(destination machine) has the hardware specifications capable of GPU acceleration. I am writing the code on another(source) machine, building it, and transferring the dlls generated to the destination machine. 

Thanks.

Viewing all 1294 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>