<?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 First, if you don't need to in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105984#M25292</link>
    <description>&lt;P&gt;First, if you don't need to specify your color coefficients you should use ippiRGBToGray() which uses standard coefficients.&lt;/P&gt;
&lt;P&gt;Second, ColorToGray() works like this:&lt;/P&gt;

&lt;PRE class="brush.c"&gt;Y = coeffs[0] * R + coeffs[1] * G + coeffs[2] * B;&lt;/PRE&gt;

Sum of coeffs must be positive and &amp;lt;= 1.

Thrid, what he wrote above is that temporary bias of 32768 is being added to avoid negative values for R, G, and B.

Hope this helps.</description>
    <pubDate>Sat, 07 May 2016 17:14:11 GMT</pubDate>
    <dc:creator>levicki</dc:creator>
    <dc:date>2016-05-07T17:14:11Z</dc:date>
    <item>
      <title>ColorConvert16s trouble</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105979#M25287</link>
      <description>&lt;P&gt;I am trying to call ippiColorToGray_16s_C3C1R and have a strange results. For typical image in range 0 - 255 (but in 16s) and standard coeffs i get pixels with value below -10000.&lt;/P&gt;

&lt;P&gt;Finding the reason, I tried to call this func with&amp;nbsp; different input. e.g. with zero coeffs, with only one non-zero coeff and with only-one-pixel image (1x1)&lt;/P&gt;

&lt;P&gt;With zero coeffs, result is 16s min (-32,768, 0 expected) so it makes me think about unsigned result - but in docs it says that Dst type is similar to Src. So, can anyone resolve my doubts? Is it bug or what?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;UPD: Works fine if coeffs sum is equal to 1. If it less - as said above&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Regards&lt;/P&gt;

&lt;P&gt;Nickolas&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 13:05:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105979#M25287</guid>
      <dc:creator>Nickolas_G_</dc:creator>
      <dc:date>2016-03-10T13:05:45Z</dc:date>
    </item>
    <item>
      <title>To answer question send me</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105980#M25288</link>
      <description>&lt;P&gt;To answer question send me your code,pls.&lt;/P&gt;

&lt;P&gt;Sergey.&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 14:47:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105980#M25288</guid>
      <dc:creator>Sergey_P_Intel1</dc:creator>
      <dc:date>2016-03-10T14:47:53Z</dc:date>
    </item>
    <item>
      <title>Good day, Sergey! Thx for</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105981#M25289</link>
      <description>&lt;P&gt;Good day, Sergey! Thx for your answer.&lt;/P&gt;

&lt;P&gt;Here is not my code, but this sample app gives a nice presentation of this (bug?)&lt;/P&gt;

&lt;P&gt;//&lt;/P&gt;

&lt;P&gt;#include &amp;lt;iostream&amp;gt;&lt;/P&gt;

&lt;P&gt;#include &amp;lt;ipp.h&amp;gt;&lt;BR /&gt;
	using namespace std;&lt;/P&gt;

&lt;P&gt;void printImage(Ipp16s* pSrc, int width, int height, int srcStep, int chan)&lt;BR /&gt;
	{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; for (int y = 0; y &amp;lt; height; y++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "[";&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int x = 0; x &amp;lt; width; x++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "{";&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int c = 0; c &amp;lt; chan; c++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ipp8u * ptr = (Ipp8u *)pSrc;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr += srcStep * y + x * chan * sizeof(Ipp16s) + c * sizeof(Ipp16s);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ipp16s val = *(Ipp16s *)ptr;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; " " &amp;lt;&amp;lt; val &amp;lt;&amp;lt; ",";&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "}";&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "]" &amp;lt;&amp;lt; endl;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;
	}&lt;/P&gt;

&lt;P&gt;int main()&lt;BR /&gt;
	{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; int width = 5;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; int height = 5;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; int srcStep = 0;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; int dstStep = 0;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; IppiSize roi = {width, height};&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; Ipp32f coeff[3] = {0.1, 0.1, 0.1};&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; Ipp16s* pSrc = ippiMalloc_16s_C3(width, height, &amp;amp;srcStep);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; Ipp16s startVal[3] = {5, 5, 5};&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; ippiSet_16s_C3R(startVal, pSrc, srcStep, roi);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; Ipp16s* pDst = ippiMalloc_16s_C1(width, height, &amp;amp;dstStep);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; ippiColorToGray_16s_C3C1R(pSrc, srcStep, pDst, dstStep, roi, coeff);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; printImage(pSrc, width, height, srcStep, 3);&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; endl;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; printImage(pDst, width, height, dstStep, 1);&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; return 0;&lt;BR /&gt;
	}&lt;/P&gt;

&lt;P&gt;&lt;BR /&gt;
	//&lt;/P&gt;

&lt;P&gt;with this coeffs, out is this:&lt;/P&gt;

&lt;P&gt;SRC:&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#252525"&gt;&lt;SPAN&gt;[{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#252525"&gt;&lt;SPAN&gt;[{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#252525"&gt;&lt;SPAN&gt;[{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#252525"&gt;&lt;SPAN&gt;[{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#252525"&gt;&lt;SPAN&gt;[{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="color:#9d9d9d"&gt;&lt;SPAN style="color:#252525"&gt;DST:&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#252525"&gt;&lt;SPAN&gt;[{ -22936,}{ -22936,}{ -22936,}{ -22936,}{ -22936,}]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#252525"&gt;&lt;SPAN&gt;[{ -22936,}{ -22936,}{ -22936,}{ -22936,}{ -22936,}]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#252525"&gt;&lt;SPAN&gt;[{ -22936,}{ -22936,}{ -22936,}{ -22936,}{ -22936,}]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#252525"&gt;&lt;SPAN&gt;[{ -22936,}{ -22936,}{ -22936,}{ -22936,}{ -22936,}]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#252525"&gt;&lt;SPAN&gt;[{ -22936,}{ -22936,}{ -22936,}{ -22936,}{ -22936,}]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;But if i change coeffs to Ipp32f coeff[3] = {0.1, 0.8, 0.1}; (sum eqals to 1), out is&lt;/P&gt;

&lt;P&gt;SRC:&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#000000"&gt;[{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}]&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#000000"&gt;[{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}]&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#000000"&gt;[{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}]&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#000000"&gt;[{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}]&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#000000"&gt;[{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}{ 5, 5, 5,}]&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="color:#000000"&gt;DST:&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#000000"&gt;[{ 5,}{ 5,}{ 5,}{ 5,}{ 5,}]&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#000000"&gt;[{ 5,}{ 5,}{ 5,}{ 5,}{ 5,}]&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#000000"&gt;[{ 5,}{ 5,}{ 5,}{ 5,}{ 5,}]&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#000000"&gt;[{ 5,}{ 5,}{ 5,}{ 5,}{ 5,}]&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color:#000000"&gt;[{ 5,}{ 5,}{ 5,}{ 5,}{ 5,}]&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Which is right. What's the problem?&lt;/P&gt;</description>
      <pubDate>Fri, 18 Mar 2016 14:36:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105981#M25289</guid>
      <dc:creator>Nickolas_G_</dc:creator>
      <dc:date>2016-03-18T14:36:16Z</dc:date>
    </item>
    <item>
      <title>All color functions RGB_16s&lt;</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105982#M25290</link>
      <description>&lt;P&gt;All color functions RGB_16s&amp;lt;&amp;gt;Color_16s/HSV_16s … work so.&lt;/P&gt;

&lt;P&gt;E.g.:&lt;/P&gt;

&lt;P&gt;R = (float)(src[0] + 32768); G = (float)(src[1] + 32768); B = (float)(src[2] + 32768);&lt;/P&gt;

&lt;P&gt;gray = (Ipp16s) (k0 * R + k1 * G + k2 * B) - 32768);&lt;/P&gt;

&lt;P&gt;Regards,&lt;/P&gt;

&lt;P&gt;Sergey.&lt;/P&gt;</description>
      <pubDate>Fri, 25 Mar 2016 12:06:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105982#M25290</guid>
      <dc:creator>Sergey_P_Intel1</dc:creator>
      <dc:date>2016-03-25T12:06:06Z</dc:date>
    </item>
    <item>
      <title>But... Why so? It seems not</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105983#M25291</link>
      <description>&lt;P&gt;But... Why so? It seems not as right behaviour, as I understand, isn't it?&lt;/P&gt;</description>
      <pubDate>Fri, 25 Mar 2016 12:17:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105983#M25291</guid>
      <dc:creator>Nickolas_G_</dc:creator>
      <dc:date>2016-03-25T12:17:09Z</dc:date>
    </item>
    <item>
      <title>First, if you don't need to</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105984#M25292</link>
      <description>&lt;P&gt;First, if you don't need to specify your color coefficients you should use ippiRGBToGray() which uses standard coefficients.&lt;/P&gt;
&lt;P&gt;Second, ColorToGray() works like this:&lt;/P&gt;

&lt;PRE class="brush.c"&gt;Y = coeffs[0] * R + coeffs[1] * G + coeffs[2] * B;&lt;/PRE&gt;

Sum of coeffs must be positive and &amp;lt;= 1.

Thrid, what he wrote above is that temporary bias of 32768 is being added to avoid negative values for R, G, and B.

Hope this helps.</description>
      <pubDate>Sat, 07 May 2016 17:14:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ColorConvert16s-trouble/m-p/1105984#M25292</guid>
      <dc:creator>levicki</dc:creator>
      <dc:date>2016-05-07T17:14:11Z</dc:date>
    </item>
  </channel>
</rss>

