<?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 Jpeg2000 to DXT5n in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Jpeg2000-to-DXT5n/m-p/835298#M5889</link>
    <description>Hello,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I have a normal map saved as a JP2. Using the UIC codecs and the CIPPImage class, I want to load in the JP2, then convert it to a DXT5, but with the source red channel placed in the destination alpha channel.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Here is my code:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV id="_mcePaste"&gt;CStdFileInput inStream;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;inStream.Open("test.jp2")&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;PARAMS_JPEG2K params;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ZeroMemory(&amp;amp;params, sizeof(PARAMS_JPEG2K));&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;params.nthreads = 2;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;		CIppImage image;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;		&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;		ReadImageJPEG2000(inStream, params,image);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;CStdFileOutput outStream;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;ioutStream.Open("test.dds")&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;CIppImage alphaImage;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;image.ToRGBA32(alphaImage);&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;int dxt5Order[4] = { 3, 1, 2, 0 };&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;alphaImage.SwapChannels(dxt5Order);&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;PARAMS_DDS ddsParams;&lt;/DIV&gt;&lt;DIV&gt;ZeroMemory(&amp;amp;ddsParams, sizeof(ddsParams));&lt;/DIV&gt;&lt;DIV&gt;ddsParams.ac = 1;&lt;/DIV&gt;&lt;DIV&gt;ddsParams.nthreads = 2;&lt;/DIV&gt;&lt;DIV&gt;ddsParams.fmt = DDS_DXT5;&lt;/DIV&gt;&lt;DIV&gt;SaveImageDDS(alphaImage, ddsParams, outStream);&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The resulting image is a gray-scale texture and a blank alpha channel. I get the same result whether or not I call SwapChannels on alphaImage, which leads me to believe that SaveImageDDS isn't handling something properly with 4 channel textures, or toRGBA32 is bugged. That or I'm doing something wrong, which is more likely :)&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Does anyone see something is wrong w/ my approach?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thank you,&lt;BR /&gt;Eric&lt;/DIV&gt;</description>
    <pubDate>Thu, 21 Apr 2011 20:26:38 GMT</pubDate>
    <dc:creator>ericfriedman</dc:creator>
    <dc:date>2011-04-21T20:26:38Z</dc:date>
    <item>
      <title>Jpeg2000 to DXT5n</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Jpeg2000-to-DXT5n/m-p/835298#M5889</link>
      <description>Hello,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I have a normal map saved as a JP2. Using the UIC codecs and the CIPPImage class, I want to load in the JP2, then convert it to a DXT5, but with the source red channel placed in the destination alpha channel.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Here is my code:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV id="_mcePaste"&gt;CStdFileInput inStream;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;inStream.Open("test.jp2")&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;PARAMS_JPEG2K params;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ZeroMemory(&amp;amp;params, sizeof(PARAMS_JPEG2K));&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;params.nthreads = 2;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;		CIppImage image;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;		&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;		ReadImageJPEG2000(inStream, params,image);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;CStdFileOutput outStream;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;ioutStream.Open("test.dds")&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;CIppImage alphaImage;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;image.ToRGBA32(alphaImage);&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;int dxt5Order[4] = { 3, 1, 2, 0 };&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;alphaImage.SwapChannels(dxt5Order);&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;PARAMS_DDS ddsParams;&lt;/DIV&gt;&lt;DIV&gt;ZeroMemory(&amp;amp;ddsParams, sizeof(ddsParams));&lt;/DIV&gt;&lt;DIV&gt;ddsParams.ac = 1;&lt;/DIV&gt;&lt;DIV&gt;ddsParams.nthreads = 2;&lt;/DIV&gt;&lt;DIV&gt;ddsParams.fmt = DDS_DXT5;&lt;/DIV&gt;&lt;DIV&gt;SaveImageDDS(alphaImage, ddsParams, outStream);&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The resulting image is a gray-scale texture and a blank alpha channel. I get the same result whether or not I call SwapChannels on alphaImage, which leads me to believe that SaveImageDDS isn't handling something properly with 4 channel textures, or toRGBA32 is bugged. That or I'm doing something wrong, which is more likely :)&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Does anyone see something is wrong w/ my approach?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thank you,&lt;BR /&gt;Eric&lt;/DIV&gt;</description>
      <pubDate>Thu, 21 Apr 2011 20:26:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Jpeg2000-to-DXT5n/m-p/835298#M5889</guid>
      <dc:creator>ericfriedman</dc:creator>
      <dc:date>2011-04-21T20:26:38Z</dc:date>
    </item>
    <item>
      <title>Jpeg2000 to DXT5n</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Jpeg2000-to-DXT5n/m-p/835299#M5890</link>
      <description>Hi Eric,&lt;BR /&gt;&lt;BR /&gt;I think you should specify ddsParams.ac = 0 (to not add Alpha channel, as you already converted image to 4-channels). You may also need to specify ddsParams.ycocg = 0 - to prevent convertion to YCoCg color space before encoding to DXT5 format.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt; Vladimir</description>
      <pubDate>Thu, 21 Apr 2011 21:11:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Jpeg2000-to-DXT5n/m-p/835299#M5890</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2011-04-21T21:11:53Z</dc:date>
    </item>
    <item>
      <title>Jpeg2000 to DXT5n</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Jpeg2000-to-DXT5n/m-p/835300#M5891</link>
      <description>Thanks Vladimir. I was confused as to what the .ac meant. Setting it to zero fixed the issue.&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Eric&lt;/DIV&gt;</description>
      <pubDate>Thu, 21 Apr 2011 22:32:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Jpeg2000-to-DXT5n/m-p/835300#M5891</guid>
      <dc:creator>ericfriedman</dc:creator>
      <dc:date>2011-04-21T22:32:40Z</dc:date>
    </item>
  </channel>
</rss>

