<?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 Quote:Fiona Z. (Intel) wrote: in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075465#M24657</link>
    <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Fiona Z. (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi sun,&lt;/P&gt;

&lt;P&gt;We do not support for 1u type, I am afraid some Convert &amp;amp; Scale function could not binarize image.&amp;nbsp;You probable need to use ippiReduceBits function. But in any case image step parameter in IPP is always measured in bytes, not in pixels nor elements.&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;{...
	ippiBinToGray_1u8u_C1R(bitonalImage, 4, 0, grayImageIPP, 32, { 32, 2 }, 0, 255);
	...
	ippiReduceBits_8u1u_C1R(grayImageIPP, 32, bitonalImageIPP, 4, 0, {32,2}, 0, 0, ippDitherNone, 1, 0);
	for(int i=0;i&amp;lt;sizeof(bitonalImageIPP);i++)
	{
		std::bitset&amp;lt;8&amp;gt; x(bitonalImageIPP&lt;I&gt;);
		std::cout&amp;lt;&amp;lt;"bitonalImageIPP["&amp;lt;&amp;lt;i&amp;lt;&amp;lt;"]="&amp;lt;&amp;lt;x&amp;lt;&amp;lt;"\n";
	}
...}&lt;/I&gt;&lt;/PRE&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thanks, &lt;FONT face="Courier New"&gt;&lt;STRONG&gt;ippiReduceBits_8u1u_C1R &lt;/STRONG&gt;is OK, will check the diffirernce with &lt;/FONT&gt;ippiGrayToBin_8u1u_C1R&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 20 Sep 2016 05:25:00 GMT</pubDate>
    <dc:creator>sun_c_</dc:creator>
    <dc:date>2016-09-20T05:25:00Z</dc:date>
    <item>
      <title>Some confusion about converting IPL 1bit funciton to IPP</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075460#M24652</link>
      <description>&lt;P&gt;My company still used old IPL &amp;nbsp;(IPL_DEPTH_1U functions)&amp;nbsp;&amp;nbsp;, and let me change IPL 1bit function to IPP for build x64 software.&lt;/P&gt;

&lt;P&gt;After used &amp;nbsp;ippiBinToGray_1u8u_C1R------&amp;gt;ipp functions------&amp;gt;ippiGrayToBin_8u1u_C1R, I find the result are different with IPL.&lt;/P&gt;

&lt;P&gt;So, I&amp;nbsp;do a test and find some&amp;nbsp;difference.&amp;nbsp; I find old IPL 1 bit functions,gray to bin,&amp;nbsp;convert&amp;nbsp;8 byte&amp;nbsp;&amp;nbsp;&amp;nbsp;to 1 byte with the older"high bit to low bit",&lt;/P&gt;

&lt;P&gt;as opposed to IPP's&amp;nbsp;&amp;nbsp;&amp;nbsp;ippiGrayToBin_8u1u.&lt;/P&gt;

&lt;P&gt;The test code is:&lt;/P&gt;

&lt;P&gt;/////////////////////////////////////////////////////////code begin////////////////////////////////////////////////////////////////////&lt;/P&gt;

&lt;P&gt;Ipp8u bitonalImage[8] = { 0 }; // for a 32x2 image&lt;BR /&gt;
	&amp;nbsp;bitonalImage[0] = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000001&amp;nbsp; high bit-&amp;gt;low bit;&lt;BR /&gt;
	&amp;nbsp;bitonalImage[1] = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//&amp;nbsp; 00000010&lt;BR /&gt;
	&amp;nbsp;bitonalImage[2] = 4;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//&amp;nbsp; 00000100&lt;BR /&gt;
	&amp;nbsp;bitonalImage[3] = 8;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//&amp;nbsp; 00001000&lt;BR /&gt;
	&amp;nbsp;bitonalImage[4] = 16;&amp;nbsp; &amp;nbsp;//&amp;nbsp; 00010000&lt;BR /&gt;
	&amp;nbsp;bitonalImage[5] = 32;&amp;nbsp; &amp;nbsp;//&amp;nbsp; 00100000&lt;BR /&gt;
	&amp;nbsp;bitonalImage[6] = 64;&amp;nbsp; &amp;nbsp;//&amp;nbsp; 01000000&lt;BR /&gt;
	&amp;nbsp;bitonalImage[7] = 128; //&amp;nbsp; 10000000&lt;/P&gt;

&lt;P&gt;&amp;nbsp;Ipp8u grayImageIPP[64] = { 0 };&lt;BR /&gt;
	&lt;BR /&gt;
	&amp;nbsp;ippiBinToGray_1u8u_C1R(bitonalImage, 4, 0, grayImageIPP, 32, { 32, 2 }, 0, 255);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;Ipp8u&lt;STRONG&gt; bitonalImage&lt;EM&gt;IPP&lt;/EM&gt;&lt;/STRONG&gt;[8] = { 0 };&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;EM&gt;&lt;STRONG&gt;ippiGrayToBin_8u1u_C1R&lt;/STRONG&gt;&lt;/EM&gt;(grayImageIPP, 32, &lt;STRONG&gt;bitonalImage&lt;EM&gt;IPP&lt;/EM&gt;&lt;/STRONG&gt;, 4, 0, { 32, 2 }, 1);&lt;/P&gt;

&lt;P&gt;IplImage *srcImage = iplCreateImageHeader(&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// number of channels&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no alpha channel&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;IPL_DEPTH_8U,&amp;nbsp;&amp;nbsp;&amp;nbsp;// data of byte type&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;"Gray",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// color model&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;"Gray",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// color order&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;IPL_DATA_ORDER_PIXEL,&amp;nbsp;// channel arrangement&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;IPL_ORIGIN_TL,&amp;nbsp;&amp;nbsp;&amp;nbsp;// top left orientation&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;IPL_ALIGN_DWORD,&amp;nbsp;&amp;nbsp;// 4 bytes align&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;32,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// image width&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;2,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// image height&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;NULL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no ROI&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;NULL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no mask ROI&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;NULL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no image ID&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;NULL);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// not tiled&lt;/P&gt;

&lt;P&gt;&amp;nbsp;if (NULL == srcImage)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;return 0;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;srcImage-&amp;gt;imageData = (char *)grayImageIPP;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;Ipp8u &lt;STRONG&gt;bitonalImage&lt;EM&gt;IPL&lt;/EM&gt;&lt;/STRONG&gt;[8] = { 0 };&lt;BR /&gt;
	&amp;nbsp;IplImage *dstImage = iplCreateImageHeader(&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// number of channels&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no alpha channel&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;IPL_DEPTH_1U,&amp;nbsp;&amp;nbsp;&amp;nbsp;// data of byte type&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;"Gray",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// color model&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;"Gray",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// color order&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;IPL_DATA_ORDER_PIXEL,&amp;nbsp;// channel arrangement&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;IPL_ORIGIN_TL,&amp;nbsp;&amp;nbsp;&amp;nbsp;// top left orientation&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;IPL_ALIGN_DWORD,&amp;nbsp;&amp;nbsp;// 4 bytes align&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;32,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// image width&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;2,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// image height&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;NULL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no ROI&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;NULL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no mask ROI&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;NULL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no image ID&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;NULL);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// not tiled&lt;/P&gt;

&lt;P&gt;&amp;nbsp;if (NULL == dstImage)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;return 0;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;dstImage-&amp;gt;imageData = (char *)&lt;STRONG&gt;bitonalImage&lt;EM&gt;IPL&lt;/EM&gt;&lt;/STRONG&gt;;&lt;BR /&gt;
	&amp;nbsp;&lt;EM&gt;&lt;STRONG&gt;iplThreshold&lt;/STRONG&gt;&lt;/EM&gt;(srcImage, dstImage, 1);&lt;/P&gt;

&lt;P&gt;&lt;BR /&gt;
	&amp;nbsp;iplDeallocate(srcImage, IPL_IMAGE_HEADER);&lt;BR /&gt;
	&amp;nbsp;iplDeallocate(dstImage, IPL_IMAGE_HEADER);&lt;/P&gt;

&lt;P&gt;/////////////////////////////////////////////////////code end////////////////////////////////////////////////////////////////&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;The result of bitonalImage&lt;EM&gt;IPP&lt;/EM&gt; is:&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;bitonalImage[0] = 1;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000001&amp;nbsp; high bit-&amp;gt;low bit;&lt;BR /&gt;
	bitonalImage[1] = 2;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000010&lt;BR /&gt;
	bitonalImage[2] = 4;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000100&lt;BR /&gt;
	bitonalImage[3] = 8;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00001000&lt;BR /&gt;
	bitonalImage[4] = 16;&amp;nbsp; //&amp;nbsp; 00010000&lt;BR /&gt;
	bitonalImage[5] = 32;&amp;nbsp; //&amp;nbsp; 00100000&lt;BR /&gt;
	bitonalImage[6] = 64;&amp;nbsp; //&amp;nbsp; 01000000&lt;BR /&gt;
	bitonalImage[7] = 128; //&amp;nbsp; 10000000&lt;BR /&gt;
	&lt;STRONG&gt;&lt;EM&gt;As the same with the bitonalImage.&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;The result of &lt;STRONG&gt;bitonalImage&lt;EM&gt;IPL&lt;/EM&gt;&lt;/STRONG&gt; is:&lt;/P&gt;

&lt;P&gt;bitonalImageIPL[0] = 128; //&amp;nbsp; 10000000 high bit------&amp;gt;low bit&lt;BR /&gt;
	&amp;nbsp;bitonalImageIPL[1] = 64;&amp;nbsp; //&amp;nbsp; 01000000&lt;BR /&gt;
	&amp;nbsp;bitonalImageIPL[2] = 32;&amp;nbsp; //&amp;nbsp; 00100000&lt;BR /&gt;
	&amp;nbsp;bitonalImageIPL[3] = 16;&amp;nbsp; //&amp;nbsp; 00010000&lt;BR /&gt;
	&amp;nbsp;bitonalImageIPL[4] = 8;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00001000&lt;BR /&gt;
	&amp;nbsp;bitonalImageIPL[5] = 4;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000100&lt;BR /&gt;
	&amp;nbsp;bitonalImageIPL[6] = 2;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000010&lt;BR /&gt;
	&amp;nbsp;bitonalImageIPL[7] = 1;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000001&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Are&amp;nbsp; all IPL 1 bit functions having these difference?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Sep 2016 06:06:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075460#M24652</guid>
      <dc:creator>sun_c_</dc:creator>
      <dc:date>2016-09-14T06:06:04Z</dc:date>
    </item>
    <item>
      <title>I convered IPL 1bit funciton</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075461#M24653</link>
      <description>&lt;P&gt;I convered IPL 1bit funciton to IPP successful.&lt;/P&gt;

&lt;P&gt;All th IPL&amp;nbsp; 1 bit funcitions(Intel® Image Processing Library 2.5 [IPL2.5W-B9]&amp;nbsp;&amp;nbsp;)&amp;nbsp;&amp;nbsp;have that difference.&lt;/P&gt;</description>
      <pubDate>Sun, 18 Sep 2016 08:18:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075461#M24653</guid>
      <dc:creator>sun_c_</dc:creator>
      <dc:date>2016-09-18T08:18:10Z</dc:date>
    </item>
    <item>
      <title>Hi sun,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075462#M24654</link>
      <description>&lt;P&gt;Hi sun,&lt;/P&gt;

&lt;P&gt;Here's an example of mapping IPL function to IPP functions, you could refer to take a try. I am afraid the functionality of using &lt;EM&gt;iplThreshold&lt;/EM&gt;&amp;nbsp;is not equals to IPP function &lt;EM&gt;ippiGrayToBin_8u1u_C1R.&lt;/EM&gt;&amp;nbsp;The &lt;EM&gt;iplThreshold&lt;/EM&gt;&amp;nbsp;function could be implemented by &lt;EM&gt;ippiSet_8u_C1R,&amp;nbsp;&lt;/EM&gt;ippiThreshold_LTVal_8u_C1R and&amp;nbsp;ippiThreshold_GTVal_8u_C1IR.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Please learn more info from:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.intel.com/legacyfs/online/drupal_files/m/6/7/d/1/6/876-ipl-ipp.pdf"&gt;https://software.intel.com/sites/default/files/m/6/7/d/1/6/876-ipl-ipp.pdf&lt;/A&gt;&lt;BR /&gt;
	&lt;SPAN style="font-size: 1em;"&gt;I also attached sample code to you that you could access in download center for IPP 5.3.4 version.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;</description>
      <pubDate>Sun, 18 Sep 2016 08:46:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075462#M24654</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2016-09-18T08:46:53Z</dc:date>
    </item>
    <item>
      <title>Quote:Fiona Z. (Intel) wrote:</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075463#M24655</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Fiona Z. (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi sun,&lt;/P&gt;

&lt;P&gt;Here's an example of mapping IPL function to IPP functions, you could refer to take a try. I am afraid the functionality of using &lt;EM&gt;iplThreshold&lt;/EM&gt;&amp;nbsp;is not equals to IPP function &lt;EM&gt;ippiGrayToBin_8u1u_C1R.&lt;/EM&gt;&amp;nbsp;The &lt;EM&gt;iplThreshold&lt;/EM&gt;&amp;nbsp;function could be implemented by &lt;EM&gt;ippiSet_8u_C1R,&amp;nbsp;&lt;/EM&gt;ippiThreshold_LTVal_8u_C1R and&amp;nbsp;ippiThreshold_GTVal_8u_C1IR.&lt;/P&gt;

&lt;P&gt;Please learn more info from:&amp;nbsp;&lt;A href="https://community.intel.com/legacyfs/online/drupal_files/m/6/7/d/1/6/876-ipl-ipp.pdf"&gt;https://software.intel.com/sites/default/files/m/6/7/d/1/6/876-ipl-ipp.pdf&lt;/A&gt;&lt;BR /&gt;
	I also attached sample code to you that you could access in download center for IPP 5.3.4 version.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi,Fiona.&lt;/P&gt;

&lt;P&gt;I have seen the ipl-ipp.pdf and souce of IPL implements by IPP 5.3.4 in image processing sample.seems it &lt;EM&gt;&lt;STRONG&gt;does not support 1 bit function&lt;/STRONG&gt;&lt;/EM&gt;.&lt;/P&gt;

&lt;P&gt;Part of souce code of IPLImage:&lt;/P&gt;

&lt;P&gt;///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;/P&gt;

&lt;P&gt;depth = (iplImage-&amp;gt;depth&amp;amp;IPL_DEPTH_MASK);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* absolute depth value&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* +sag */&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;EM&gt;&lt;STRONG&gt; if( 1 == depth ) depth = 8;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* -sag */&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alignBit = (align&amp;lt;&amp;lt;3)-1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maskBit = ~alignBit;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( IPL_DATA_ORDER_PIXEL == dataOrder ) {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iplImage-&amp;gt;&lt;EM&gt;&lt;STRONG&gt;widthStep&lt;/STRONG&gt;&lt;/EM&gt; = ((width*&lt;EM&gt;&lt;STRONG&gt;depth&lt;/STRONG&gt;&lt;/EM&gt;*nChannels+alignBit)&amp;amp;maskBit)&amp;gt;&amp;gt;3; //&lt;STRONG&gt; For IPL_DEPTH_1U Image the depth should be 1, not 8&lt;/STRONG&gt;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iplImage-&amp;gt;imageSize = iplImage-&amp;gt;widthStep*height;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iplImage-&amp;gt;widthStep = ((width*depth+alignBit)&amp;amp;maskBit)&amp;gt;&amp;gt;3;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iplImage-&amp;gt;imageSize = iplImage-&amp;gt;widthStep*height*nChannels;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;P&gt;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;/P&gt;

&lt;P&gt;In my&amp;nbsp; case, I use iplThreshold&amp;nbsp;(&lt;EM&gt;&lt;STRONG&gt;8bit&amp;nbsp;gray Image&lt;/STRONG&gt;&lt;/EM&gt;(src),&lt;EM&gt;&lt;STRONG&gt;1bit image&lt;/STRONG&gt;&lt;/EM&gt;(dst),1), In the process 8bit src to 1 bit dst, it must have GraytoBin funciton, so I use &amp;nbsp;ippiGrayToBin_8u1u_C1R instead.&lt;/P&gt;

&lt;P&gt;While ,I&amp;nbsp; use&amp;nbsp; ippiThreshold_LTVal_8u_C1R and ippiThreshold_GTVal_8u_C1IR first and then use &amp;nbsp;&lt;EM&gt;ippiGrayToBin_8u1u_C1R.The result are the same.&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;&lt;EM&gt;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;Ipp8u bitonalImage[8] = { 0 }; // for a 32x2 image&lt;BR /&gt;
	&amp;nbsp;bitonalImage[0] = 1;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000001&amp;nbsp; high bit-&amp;gt;low bit;&lt;BR /&gt;
	&amp;nbsp;bitonalImage[1] = 2;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000010&lt;BR /&gt;
	&amp;nbsp;bitonalImage[2] = 4;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000100&lt;BR /&gt;
	&amp;nbsp;bitonalImage[3] = 8;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00001000&lt;BR /&gt;
	&amp;nbsp;bitonalImage[4] = 16;&amp;nbsp; //&amp;nbsp; 00010000&lt;BR /&gt;
	&amp;nbsp;bitonalImage[5] = 32;&amp;nbsp; //&amp;nbsp; 00100000&lt;BR /&gt;
	&amp;nbsp;bitonalImage[6] = 64;&amp;nbsp; //&amp;nbsp; 01000000&lt;BR /&gt;
	&amp;nbsp;bitonalImage[7] = 128; //&amp;nbsp; 10000000&lt;/P&gt;

&lt;P&gt;&amp;nbsp;Ipp8u grayImageIPP[64] = { 0 };&lt;BR /&gt;
	&amp;nbsp;Ipp8u grayImageIPPTemp[64] = { 0 };&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;ippiBinToGray_1u8u_C1R(bitonalImage, 4, 0, grayImageIPP, 32, { 32, 2 }, 0, 255);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;Ipp8u bitonalImageIPP[8] = { 0 };&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;Ipp8u thresholdLT = (Ipp8u)1, thresholdGT = 0;&lt;BR /&gt;
	&amp;nbsp;Ipp8u valueLT = 0, valueGT = (Ipp8u)IPP_MAX_8U;&lt;BR /&gt;
	&amp;nbsp;ippiThreshold_LTVal_8u_C1R(grayImageIPP, 32, grayImageIPPTemp, 32, {32,2},&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;thresholdLT, valueLT);&lt;BR /&gt;
	&amp;nbsp;ippiThreshold_GTVal_8u_C1IR(grayImageIPPTemp, 32, {32,2}, thresholdGT, valueGT);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;ippiGrayToBin_8u1u_C1R(grayImageIPPTemp, 32, bitonalImageIPP, 4, 0, { 32, 2 }, 1);&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;The result of bitonalImage&lt;EM&gt;IPP&lt;/EM&gt; is:&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;bitonalImage[0] = 1;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000001&amp;nbsp; high bit-&amp;gt;low bit;&lt;BR /&gt;
	bitonalImage[1] = 2;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000010&lt;BR /&gt;
	bitonalImage[2] = 4;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00000100&lt;BR /&gt;
	bitonalImage[3] = 8;&amp;nbsp;&amp;nbsp; //&amp;nbsp; 00001000&lt;BR /&gt;
	bitonalImage[4] = 16;&amp;nbsp; //&amp;nbsp; 00010000&lt;BR /&gt;
	bitonalImage[5] = 32;&amp;nbsp; //&amp;nbsp; 00100000&lt;BR /&gt;
	bitonalImage[6] = 64;&amp;nbsp; //&amp;nbsp; 01000000&lt;BR /&gt;
	bitonalImage[7] = 128; //&amp;nbsp; 10000000&lt;/P&gt;

&lt;P&gt;No difference.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Sep 2016 02:52:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075463#M24655</guid>
      <dc:creator>sun_c_</dc:creator>
      <dc:date>2016-09-19T02:52:00Z</dc:date>
    </item>
    <item>
      <title>Hi sun,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075464#M24656</link>
      <description>&lt;P&gt;Hi sun,&lt;/P&gt;

&lt;P&gt;We do not support for 1u type, I am afraid some Convert &amp;amp; Scale function could not binarize image.&amp;nbsp;You probable need to use ippiReduceBits function. But in any case image step parameter in IPP is always measured in bytes, not in pixels nor elements.&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;{...
	ippiBinToGray_1u8u_C1R(bitonalImage, 4, 0, grayImageIPP, 32, { 32, 2 }, 0, 255);
	...
	ippiReduceBits_8u1u_C1R(grayImageIPP, 32, bitonalImageIPP, 4, 0, {32,2}, 0, 0, ippDitherNone, 1, 0);
	for(int i=0;i&amp;lt;sizeof(bitonalImageIPP);i++)
	{
		std::bitset&amp;lt;8&amp;gt; x(bitonalImageIPP&lt;I&gt;);
		std::cout&amp;lt;&amp;lt;"bitonalImageIPP["&amp;lt;&amp;lt;i&amp;lt;&amp;lt;"]="&amp;lt;&amp;lt;x&amp;lt;&amp;lt;"\n";
	}
...}&lt;/I&gt;&lt;/PRE&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;</description>
      <pubDate>Tue, 20 Sep 2016 03:39:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075464#M24656</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2016-09-20T03:39:55Z</dc:date>
    </item>
    <item>
      <title>Quote:Fiona Z. (Intel) wrote:</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075465#M24657</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Fiona Z. (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi sun,&lt;/P&gt;

&lt;P&gt;We do not support for 1u type, I am afraid some Convert &amp;amp; Scale function could not binarize image.&amp;nbsp;You probable need to use ippiReduceBits function. But in any case image step parameter in IPP is always measured in bytes, not in pixels nor elements.&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;{...
	ippiBinToGray_1u8u_C1R(bitonalImage, 4, 0, grayImageIPP, 32, { 32, 2 }, 0, 255);
	...
	ippiReduceBits_8u1u_C1R(grayImageIPP, 32, bitonalImageIPP, 4, 0, {32,2}, 0, 0, ippDitherNone, 1, 0);
	for(int i=0;i&amp;lt;sizeof(bitonalImageIPP);i++)
	{
		std::bitset&amp;lt;8&amp;gt; x(bitonalImageIPP&lt;I&gt;);
		std::cout&amp;lt;&amp;lt;"bitonalImageIPP["&amp;lt;&amp;lt;i&amp;lt;&amp;lt;"]="&amp;lt;&amp;lt;x&amp;lt;&amp;lt;"\n";
	}
...}&lt;/I&gt;&lt;/PRE&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thanks, &lt;FONT face="Courier New"&gt;&lt;STRONG&gt;ippiReduceBits_8u1u_C1R &lt;/STRONG&gt;is OK, will check the diffirernce with &lt;/FONT&gt;ippiGrayToBin_8u1u_C1R&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Sep 2016 05:25:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Some-confusion-about-converting-IPL-1bit-funciton-to-IPP/m-p/1075465#M24657</guid>
      <dc:creator>sun_c_</dc:creator>
      <dc:date>2016-09-20T05:25:00Z</dc:date>
    </item>
  </channel>
</rss>

