<?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 Re: LZO decompression function in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856043#M7110</link>
    <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/255766"&gt;bronxzv&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;FYI here is the workaround I use for production code :&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hard to hearing that :). &lt;BR /&gt;BTW, why do you use single-thread mode? a) Single-core CPU? b) Compatibility with native LZO libs? c) Real need of good compression ratio? &lt;BR /&gt;I am asking this, because with multi-threading you will propably loose another couple of %% in compression ratio, but will gain 2x+ in compression/decompression speed. Moreover, MT-mode LZO doesn't have that problem you are fighting against.&lt;BR /&gt;&lt;BR /&gt;Sergey&lt;BR /&gt;</description>
    <pubDate>Tue, 06 Oct 2009 11:22:51 GMT</pubDate>
    <dc:creator>Sergey_K_Intel</dc:creator>
    <dc:date>2009-10-06T11:22:51Z</dc:date>
    <item>
      <title>LZO decompression function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856037#M7104</link>
      <description>I have been using LZO using IppLZO1XST method for a while now and it works great. However, I have noticed some unexpected behaviour with respect to decompression.&lt;BR /&gt;&lt;BR /&gt;When I initially &lt;SPAN class="kwd"&gt; used ippsDecodeLZO_8u, I did not initialise dstLen. This worked fine until I upgraded from Intel Compiler Suite Pro (11.0 Build 074) to 11.1 Build 046. A few data sets under certain conditions which I have been unable to properly determine would cause my program to crash soon after decompression of these data sets. The problem went away when I initialise dstLen to some value (even 0 worked). &lt;BR /&gt;&lt;BR /&gt;So my questions are these:&lt;BR /&gt;&lt;BR /&gt;1) Is it important to initialise dstLen before callign ippsDecodeLZO_8u? &lt;BR /&gt;2) If it is not important, is there any reason why the above might have happened?&lt;BR /&gt;3) If it is important, should 0 work? I noticed that one of the status the decode function can return is &lt;/SPAN&gt;&lt;SPAN class="keyword"&gt;ippStsDstSizeLessExpected. Shouldn't the function return this? As I have never seen this status error, under what conditions will ippsDecodeLZO_8u return this?&lt;BR /&gt;&lt;BR /&gt;If you need anything from me (code, data sets), please let me know.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;&lt;BR /&gt;Edward&lt;BR /&gt;&lt;/SPAN&gt;</description>
      <pubDate>Fri, 02 Oct 2009 09:41:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856037#M7104</guid>
      <dc:creator>trekker99</dc:creator>
      <dc:date>2009-10-02T09:41:43Z</dc:date>
    </item>
    <item>
      <title>Re: LZO decompression function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856038#M7105</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/431345"&gt;trekker99&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;I have been using LZO using IppLZO1XST method for a while now and it works great. However, I have noticed some unexpected behaviour with respect to decompression.&lt;BR /&gt;&lt;BR /&gt;When I initially &lt;SPAN class="kwd"&gt;used ippsDecodeLZO_8u, I did not initialise dstLen. This worked fine until I upgraded from Intel Compiler Suite Pro (11.0 Build 074) to 11.1 Build 046. A few data sets under certain conditions which I have been unable to properly determine would cause my program to crash soon after decompression of these data sets. The problem went away when I initialise dstLen to some value (even 0 worked). &lt;BR /&gt;&lt;BR /&gt;So my questions are these:&lt;BR /&gt;&lt;BR /&gt;1) Is it important to initialise dstLen before callign ippsDecodeLZO_8u? &lt;BR /&gt;2) If it is not important, is there any reason why the above might have happened?&lt;BR /&gt;3) If it is important, should 0 work? I noticed that one of the status the decode function can return is &lt;/SPAN&gt;&lt;SPAN class="keyword"&gt;ippStsDstSizeLessExpected. Shouldn't the function return this? As I have never seen this status error, under what conditions will ippsDecodeLZO_8u return this?&lt;BR /&gt;&lt;BR /&gt;If you need anything from me (code, data sets), please let me know.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;&lt;BR /&gt;Edward&lt;BR /&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;See my topic here:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://software.intel.com/en-us/forums/showthread.php?t=68265"&gt;http://software.intel.com/en-us/forums/showthread.php?t=68265&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;btw I have alwaysset dstLen = 0 before to call ippsDecodeLZO_8u, but I still get corrupted data in roughly 5% of the tests with arrays with size &amp;gt; 100 KB&lt;BR /&gt;&lt;BR /&gt;the bug isn't fixed in v11.1.46 according to my tests (exactly the same datasets trigger the bug) though they plan a fix for November as you can see in the other thread&lt;BR /&gt;</description>
      <pubDate>Fri, 02 Oct 2009 16:11:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856038#M7105</guid>
      <dc:creator>bronxzv</dc:creator>
      <dc:date>2009-10-02T16:11:01Z</dc:date>
    </item>
    <item>
      <title>Re: LZO decompression function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856039#M7106</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/255766"&gt;bronxzv&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;See my topic here:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://software.intel.com/en-us/forums/showthread.php?t=68265"&gt;http://software.intel.com/en-us/forums/showthread.php?t=68265&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;btw I have alwaysset dstLen = 0 before to call ippsDecodeLZO_8u, but I still get corrupted data in roughly 5% of the tests with arrays with size &amp;gt; 100 KB&lt;BR /&gt;&lt;BR /&gt;the bug isn't fixed in v11.1.46 according to my tests (exactly the same datasets trigger the bug) though they plan a fix for November as you can see in the other thread&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hi bronzxv,&lt;BR /&gt;&lt;BR /&gt;I have read through your topic, but I am not sure if it is the same problem. Most of my data sets are less than 100 KB and the ones I have trouble with are all 50 KB in size. Additionally, I have not encountered corrupted data, just a crash soon after I called ippsDecodeLZO_8u if dstLen was not initialized. If I set dstLen to some value (I have tried 0, 1 and the actual size), then it will work fine.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;&lt;BR /&gt;Edward&lt;BR /&gt;</description>
      <pubDate>Mon, 05 Oct 2009 01:19:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856039#M7106</guid>
      <dc:creator>trekker99</dc:creator>
      <dc:date>2009-10-05T01:19:21Z</dc:date>
    </item>
    <item>
      <title>Re: LZO decompression function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856040#M7107</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/255766"&gt;bronxzv&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt; &lt;BR /&gt;See my topic here:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://software.intel.com/en-us/forums/showthread.php?t=68265"&gt;http://software.intel.com/en-us/forums/showthread.php?t=68265&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;btw I have alwaysset dstLen = 0 before to call ippsDecodeLZO_8u, but I still get corrupted data in roughly 5% of the tests with arrays with size &amp;gt; 100 KB&lt;BR /&gt;&lt;BR /&gt;the bug isn't fixed in v11.1.46 according to my tests (exactly the same datasets trigger the bug) though they plan a fix for November as you can see in the other thread&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hi bronzxv,&lt;BR /&gt;&lt;BR /&gt;I have read through your topic, but I am not sure if it is the same problem. Most of my data sets are less than 100 KB and the ones I have trouble with are all 50 KB in size. Additionally, I have not encountered corrupted data, just a crash soon after I called ippsDecodeLZO_8u if dstLen was not initialized. If I set dstLen to some value (I have tried 0, 1 and the actual size), then it will work fine.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;&lt;BR /&gt;Edward&lt;BR /&gt;</description>
      <pubDate>Mon, 05 Oct 2009 01:19:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856040#M7107</guid>
      <dc:creator>trekker99</dc:creator>
      <dc:date>2009-10-05T01:19:49Z</dc:date>
    </item>
    <item>
      <title>Re: LZO decompression function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856041#M7108</link>
      <description>&lt;DIV style="margin:0px;"&gt;Hi Edward,&lt;BR /&gt;&lt;BR /&gt;For speed reason it was not planned that Decode function would be tracking the remaining dst length. But, it happened than in optimized (non-PX) code, some code pieces are common for Decode and DecodeSafe - where tracking is on - functions. &lt;BR /&gt;&lt;BR /&gt;We will additionally split optimized code to avoid possible not initialized dstLen usage. Regarding &lt;STRONG&gt;ippStsDstSizeLessExpected&lt;/STRONG&gt;, this error code is not used in LZO. We will update the documentation on this. &lt;BR /&gt;The onlyerror code saying that something is wrong in decoding is &lt;STRONG&gt;ippStsLzoBrokenStreamErr&lt;/STRONG&gt; code, which is returned by DecodeSafe function when it sees, that either format of compressed data is not valid, or output data doesn't fit into output buffer. We also will update DecodeSafe's description in the doc.&lt;BR /&gt;&lt;BR /&gt;Incurrent situation I would recommend you to initialize dstLen with the real length of output datat buffer you allocated.&lt;BR /&gt;&lt;BR /&gt;P.S. We track the problem, that &lt;STRONG&gt;bronxzv&lt;/STRONG&gt; is suffered from. It will be fixed in the ongoing release.&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey&lt;BR /&gt;&lt;/DIV&gt;
&lt;BR /&gt;</description>
      <pubDate>Mon, 05 Oct 2009 08:34:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856041#M7108</guid>
      <dc:creator>Sergey_K_Intel</dc:creator>
      <dc:date>2009-10-05T08:34:45Z</dc:date>
    </item>
    <item>
      <title>Re: LZO decompression function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856042#M7109</link>
      <description>&lt;DIV style="margin: 0px; height: auto;"&gt;&lt;/DIV&gt;
&amp;gt;P.S. We track the problem, that &lt;STRONG&gt;bronxzv&lt;/STRONG&gt; is suffered from. It will be fixed in the ongoing release.&lt;BR /&gt;&lt;BR /&gt;that's a very good new, FYI here is the workaround I use for production code :&lt;BR /&gt;I split the original array in multiple chunks (much like the example in the documentation) then I compress them in sequence, at each step I compress to a buffer+ decompress in an auxiliarybufferjust tocompare its content with the original array, if the arrays are exactly the same, I save the LZO compressed chunk ortherwise I save the uncompressed data, just for this chunk (all of this with a small header for each chunk to keep track of th compression method and inflated size)&lt;BR /&gt;&lt;BR /&gt;this way I have a solid solution forward compatiblewith the fixed version of the IPP, with the fixed version I'll be allowed to increase the size of the chunks for better overal compression ratio though</description>
      <pubDate>Mon, 05 Oct 2009 17:17:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856042#M7109</guid>
      <dc:creator>bronxzv</dc:creator>
      <dc:date>2009-10-05T17:17:02Z</dc:date>
    </item>
    <item>
      <title>Re: LZO decompression function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856043#M7110</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/255766"&gt;bronxzv&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;FYI here is the workaround I use for production code :&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hard to hearing that :). &lt;BR /&gt;BTW, why do you use single-thread mode? a) Single-core CPU? b) Compatibility with native LZO libs? c) Real need of good compression ratio? &lt;BR /&gt;I am asking this, because with multi-threading you will propably loose another couple of %% in compression ratio, but will gain 2x+ in compression/decompression speed. Moreover, MT-mode LZO doesn't have that problem you are fighting against.&lt;BR /&gt;&lt;BR /&gt;Sergey&lt;BR /&gt;</description>
      <pubDate>Tue, 06 Oct 2009 11:22:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856043#M7110</guid>
      <dc:creator>Sergey_K_Intel</dc:creator>
      <dc:date>2009-10-06T11:22:51Z</dc:date>
    </item>
    <item>
      <title>Re: LZO decompression function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856044#M7111</link>
      <description>&lt;DIV style="margin: 0px; height: auto;"&gt;&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;&amp;gt;why do you use single-thread mode?&lt;BR /&gt;&amp;gt;b) Compatibility with native LZO libs?&lt;BR /&gt;&lt;BR /&gt;yes this is definitely the reason, I use LZO in the final stage of a function that saves serialized object databases for an application with 100s of users (more apps and users planed)&lt;BR /&gt;it's paramount to be able to read back the persistent data in the future, so even if IPP no more support LZO in the future we will have a fallback solution by using the oberhumer LZOlibrary&lt;BR /&gt;&lt;BR /&gt;now IPP LZO is so fast thatthe compressiontakes less than 10% of the total time to save a stream (tested in memory so HD access isn't taken into account), so the best way to improve performancein the future will be to use multiple threads for the whole serialization process, including the LZO stage (so multiple single threaded LZO functions will be run in parallel), it will probably requires a new file format though, on a related note most legacy file formats (JPG/MPGx/3DS/...) are definitely designed with a single thread in mind, it is something that must evolve if we want reallyto use all the cores when saving or loading files, with SSDs replacing HDs the hotspotsarenow clearly in the routines that load and save serialized files&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;</description>
      <pubDate>Sat, 10 Oct 2009 18:35:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/LZO-decompression-function/m-p/856044#M7111</guid>
      <dc:creator>bronxzv</dc:creator>
      <dc:date>2009-10-10T18:35:11Z</dc:date>
    </item>
  </channel>
</rss>

