<?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 proper use of ippsDecode(Encode)LZ77DynamicHuff_8u / ippsDecode in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813904#M4101</link>
    <description>after a lot of trial and error, I think i got it... do your encodelz77/encodelz77dynamichuf until you get streamend (it must internally maintain that state based on the last encode call) then when done with the buffer being compressed (presuming you don't want it to continue to stream) call ippencodereset. &lt;BR /&gt;&lt;BR /&gt;On the decode, do the same thing, waiting for streamend, and you must call reset again if not part of a larger stream (not individual buffers). &lt;BR /&gt;&lt;BR /&gt;Now, there is a bug with the decodereset in that it resets the size of the pairs array back to the default of 0x2000 even if you've change the size (keeps the new buffer you may have assigned) so look out there. They shoudl probably fix that bug.&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Tue, 29 May 2012 23:01:46 GMT</pubDate>
    <dc:creator>DF</dc:creator>
    <dc:date>2012-05-29T23:01:46Z</dc:date>
    <item>
      <title>proper use of ippsDecode(Encode)LZ77DynamicHuff_8u / ippsDecode(Encode)LZ77_8u</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813903#M4100</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;I've still been playing around with a basic routine of encodelz77 / encodelz77dynamichuff to compression a buch of different blocks of data and found out several things. One is that you have to to use the setstatus routine before each one to the proper LZ77Process or LZ77HuffProcess or it doesn't work, also when done with each block of encoding you have to use ippsEncodeLZ77Reset after each block or you get uncompressible data in the next or even encoding failures. On the decoe side you have to do the same thing, but you can't use reset because if you assign a new pair buffer the reset changes the size but keeps the same buffer (I don't think it shoudl change it at all?). I've found that the ippsDecodeLZ77DynamicHuff function can crash based on data created with the encode routines (with access deined when somewhere in ippsSet is trying to update some memory location). For the most part it will work if one the encode size you can do it without any looping (just one encode/dynamichuff/reset each time). There isn't much detail I can find on proper use of these functions, can someone detail them with a basic loop that would be reliable. Those are the only thing's i'm interested in, not zlib compatiblity or anything like that. &lt;BR /&gt;&lt;BR /&gt;TIA!!&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Sun, 27 May 2012 20:47:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813903#M4100</guid>
      <dc:creator>DF</dc:creator>
      <dc:date>2012-05-27T20:47:00Z</dc:date>
    </item>
    <item>
      <title>proper use of ippsDecode(Encode)LZ77DynamicHuff_8u / ippsDecode</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813904#M4101</link>
      <description>after a lot of trial and error, I think i got it... do your encodelz77/encodelz77dynamichuf until you get streamend (it must internally maintain that state based on the last encode call) then when done with the buffer being compressed (presuming you don't want it to continue to stream) call ippencodereset. &lt;BR /&gt;&lt;BR /&gt;On the decode, do the same thing, waiting for streamend, and you must call reset again if not part of a larger stream (not individual buffers). &lt;BR /&gt;&lt;BR /&gt;Now, there is a bug with the decodereset in that it resets the size of the pairs array back to the default of 0x2000 even if you've change the size (keeps the new buffer you may have assigned) so look out there. They shoudl probably fix that bug.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 29 May 2012 23:01:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813904#M4101</guid>
      <dc:creator>DF</dc:creator>
      <dc:date>2012-05-29T23:01:46Z</dc:date>
    </item>
    <item>
      <title>proper use of ippsDecode(Encode)LZ77DynamicHuff_8u / ippsDecode</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813905#M4102</link>
      <description>&lt;P&gt;Hi DF,&lt;BR /&gt;&lt;BR /&gt;I justguesssome ofproblem you discribled here. maybe simplier than ippsDecode(Encode)LZ77,in Zlib sample code,it use awhile loop to handle theblock data,like,&lt;BR /&gt;&lt;BR /&gt;int DecompressLZSS( Ipp8u *pSrc, int SrcLen, Ipp8u *pDst, int *pDstLen ) {&lt;/P&gt;&lt;P&gt; IppStatus st;&lt;BR /&gt; IppLZSSState_8u * pLZSSState = NULL;&lt;BR /&gt; Ipp8u * pTSrc = pSrc,&lt;BR /&gt; * pTDst = pDst;&lt;BR /&gt; int srcLen = SrcLen,&lt;BR /&gt; dstLen = *pDstLen,&lt;BR /&gt; tDstLen = 0;&lt;/P&gt;&lt;P&gt; /* inits the lzss state structure for decoding */&lt;BR /&gt; if( ippStsNoErr != ( st = ippsDecodeLZSSInitAlloc_8u( &amp;amp;pLZSSState ) ) ) {&lt;BR /&gt; fprintf( stderr, "Error while initalloc 4 decode lz77.exiting...\n");&lt;BR /&gt; return st;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt; do {&lt;BR /&gt; dstLen = GZIPBLOCKSIZE; /* decode using a small blocks of GZIPBLOCKSIZE length */&lt;BR /&gt; tDstLen += dstLen;&lt;/P&gt;&lt;P&gt; /* decode source vector pSrc to destination pDst and returns len of decoded vector to dstLen*/&lt;BR /&gt; st = ippsDecodeLZSS_8u( &amp;amp;pTSrc, &amp;amp;srcLen, &amp;amp;pTDst, &amp;amp;dstLen, pLZSSState );&lt;/P&gt;&lt;P&gt; /* if error is not due to the insufficies output buffer */&lt;BR /&gt; if( st != ippStsNoErr &amp;amp;&amp;amp; st != ippStsDstSizeLessExpected ) {&lt;BR /&gt; fprintf( stderr, "Error %d while decode lz77.exiting...\n", st);&lt;BR /&gt; return st;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt; tDstLen -= dstLen;&lt;/P&gt;&lt;P&gt; } while( st != ippStsNoErr );&lt;/P&gt;&lt;P&gt; *pDstLen = tDstLen;&lt;BR /&gt; dstLen = tDstLen;&lt;/P&gt;&lt;P&gt; /* frees the space, allocated for pLZSSState state structure */&lt;BR /&gt; ippsLZSSFree_8u( pLZSSState );&lt;BR /&gt; return 0;&lt;BR /&gt;} /* DecompressLZSS() */&lt;BR /&gt;&lt;BR /&gt;ippsDecode(Encode)LZ77DynamicHuff should have more complex exit condition because, &lt;/P&gt;&lt;P MSHELP="http://www.microsoft.com/MSHelp/"&gt;The function ippsDecodeLZ77DynamicHuff is declared in the ippdc.h file. This function performs decoding of the source data ppSrc with the dynamic Huffman codes (see &lt;A&gt;RFC1951&lt;/A&gt; specification).&lt;/P&gt;&lt;P MSHELP="http://www.microsoft.com/MSHelp/"&gt;Exit from the ippsDecodeLZ77FixedHuff function occurs when:&lt;/P&gt;&lt;UL MSHELP="http://www.microsoft.com/MSHelp/" type="disc" class="bullet"&gt;&lt;LI&gt;the input stream has ended, but the end-of-block marker is not decoded and the function returns the ippStsSrcSizeLessExpected status.&lt;/LI&gt;&lt;LI&gt;the input stream has not ended, but the destination buffer is full and the function returns the ippStsDstSizeLessExpected status.&lt;/LI&gt;&lt;LI&gt;the input stream has ended, the end-of-stream marker is decoded and the function returns the ippStsNoErr status.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;BR /&gt;And you alsomentioned, other problem like ippsDecodeLZ77Reset_8u etc.Could you please providea smallrunable test code so we can see what is the exact probelm? (if the code is confidential, you can post as private). &lt;BR /&gt;&lt;BR /&gt;and you mentioned"there is a bug with the decodereset in that it resets the size of the pairs array back to the default of 0x2000 even if you've change the size (keeps the new buffer you may have assigned) so look out there" , we need to have a sample case to reproduce the problem too.&lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;Ying &lt;/P&gt;</description>
      <pubDate>Wed, 30 May 2012 07:36:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813905#M4102</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2012-05-30T07:36:17Z</dc:date>
    </item>
    <item>
      <title>proper use of ippsDecode(Encode)LZ77DynamicHuff_8u / ippsDecode</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813906#M4103</link>
      <description>Basically if you init for decompress as:&lt;BR /&gt;&lt;BR /&gt;#define IPPpairSize 0xFF00&lt;BR /&gt;&lt;BR /&gt; #if defined(IPPpairSize)&lt;BR /&gt; IppLZ77Pair* pairs=(IppLZ77Pair*) ippsMalloc_8u(IPPpairSize*sizeof(IppLZ77Pair));&lt;BR /&gt; // ensure enough memory&lt;BR /&gt; if (pairs==NULL) {&lt;BR /&gt; return ERROR_OUTOFMEM;&lt;BR /&gt; }&lt;BR /&gt; #endif&lt;BR /&gt; // create and setup the ipp state buffer&lt;BR /&gt; if (ippsDecodeLZ77InitAlloc_8u(IppLZ77NoChcksm, &amp;amp;IPPLZ77State)!=ippStsNoErr) {&lt;BR /&gt; // on failure - clean up and exit&lt;BR /&gt; #if defined(IPPpairSize)&lt;BR /&gt; ippsFree(pairs);&lt;BR /&gt; #endif&lt;BR /&gt; IPPLZ77State=NULL;&lt;BR /&gt; return ERROR_OUTOFMEM;&lt;BR /&gt; }&lt;BR /&gt; // setup the new larger pairs buffer to use.&lt;BR /&gt; #if defined(IPPpairSize)&lt;BR /&gt; ippsDecodeLZ77SetPairs_8u(pairs, 0, IPPpairSize, IPPLZ77State);&lt;BR /&gt; #endif&lt;BR /&gt;&lt;BR /&gt;// now you see pairlen is 0xFF00&lt;BR /&gt;IppLZ77Pair *ppair;&lt;BR /&gt;
int paircur, pairlen;&lt;BR /&gt;
ippsDecodeLZ77GetPairs_8u(&amp;amp;ppair, &amp;amp;paircur, &amp;amp;pairlen, IPPLZ77State);&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;// Then in your routine somewhere (even here) called:&lt;BR /&gt;&lt;BR /&gt; ippsDecodeLZ77Reset_8u(IPPLZ77State);&lt;BR /&gt;&lt;BR /&gt;// Then next time you did :&lt;BR /&gt;&lt;BR /&gt;ippsDecodeLZ77GetPairs_8u(&amp;amp;ppair, &amp;amp;paircur, &amp;amp;pairlen, IPPLZ77State);&lt;BR /&gt;&lt;BR /&gt;You'll see the pairlen is now 0x2000 and no longer 0xFF00&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 30 May 2012 18:28:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813906#M4103</guid>
      <dc:creator>DF</dc:creator>
      <dc:date>2012-05-30T18:28:08Z</dc:date>
    </item>
    <item>
      <title>proper use of ippsDecode(Encode)LZ77DynamicHuff_8u / ippsDecode</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813907#M4104</link>
      <description>Hi DF, &lt;BR /&gt;&lt;BR /&gt;Thanks for the test case. I get more informationfromIPP developer.&lt;BR /&gt;&lt;BR /&gt;Sorry,these LZ77 interfacementioned here are kinda deprecated and is not used for a while.IPP_GZIP in IPP version 6.0 had use the funtions.&lt;H2&gt;&lt;/H2&gt;&lt;P&gt;&lt;SPAN style="font-family: Times New Roman;"&gt;IPP_GZIP sample uses the following functions for Intel Performance Primitives Data Compression library: &lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" id="table10" style="border-collapse: collapse;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="131" valign="top" style="padding-bottom: 0in; padding-left: 5.4pt; width: 98.6pt; padding-right: 5.4pt; padding-top: 0in; border: windowtext 1pt solid;"&gt;IPP_GZIP Function &lt;/TD&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;IPP Function &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Function Description &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="131" rowspan="9" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 98.6pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Compression/Test &lt;/TD&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsEncodeLZ77InitAlloc_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Allocates memory and initializes the encoding state &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsEncodeLZ77SetStatus_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Sets the deflate status to the desired value in the LZ77 encoding state structure &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsEncodeLZ77GetPairs_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Retrieves pair data from the LZ77 encoding state &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsEncodeLZ77_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Performs LZ77 encoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsEncodeLZ77FixedHuff_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Performs fixed Huffman encoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsEncodeLZ77DynamicHuff_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Performs dynamic Huffman encoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsEncodeLZ77Flush_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Writes the checksum and total length of the input data to the end of the stream &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsLZ77Free_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Frees memory allocated for the LZ77 encoding and decoding structures &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsCRC32_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Computes the CRC32 checksum for the source data buffer &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="131" rowspan="6" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 98.6pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Decompression &lt;/TD&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsDecodeLZ77InitAlloc_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Allocates memory and initializes the LZ77 decoding structure &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsDecodeLZ77SetStatus_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Sets the inflate status to the desired value in the LZ77 decoding state structure &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsDecodeLZ77GetBlockType_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Determines the type of encoded data block &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsDecodeLZ77FixedHuffFull_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Performs LZ77 and fixed Huffman decoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsDecodeLZ77DynamicHuffFull_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Performs LZ77 and dynamic Huffman decoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsDecodeLZ77StoredBlock_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Performs stored block (RFC 1951) decoding &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;So if you'd like see the example, you can refer to &lt;A href="http://software.intel.com/file/44097"&gt;it&lt;/A&gt;. (attachment ) and Please notes, we may consider to remove the old interface in the further version. so may not bug fix on these. &lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;Therearenew LZ77 interface based on ippsDeflateLZ77_8u/ippsInflate_8u functions in current version,you can see them fromreadme.htmunder the folder &lt;IPP install="" dir=""&gt;/interface/IPP_GZIP. &lt;/IPP&gt;&lt;/P&gt;&lt;H2&gt;Intel IPP Functions Used In The Interface &lt;/H2&gt;&lt;P&gt;IPP_GZIP interface uses the following functions from Intel Performance Primitives Data Compression library: &lt;/P&gt;&lt;TABLE cellpadding="0" cellspacing="0" border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="131" valign="top"&gt;IPP_GZIP Function &lt;/TD&gt;&lt;TD width="265" valign="top"&gt;IPP Function &lt;/TD&gt;&lt;TD width="289" valign="top"&gt;Function Description &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="131" rowspan="3" valign="top"&gt;Compression &lt;/TD&gt;&lt;TD width="265" valign="top"&gt;ippsDeflateLZ77_8u &lt;/TD&gt;&lt;TD width="289" valign="top"&gt;Performs LZ77 encoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top"&gt;ippsDeflateHuff_8u &lt;/TD&gt;&lt;TD width="289" valign="top"&gt;Performs Huffman encoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top"&gt;ippsCRC32_8u &lt;/TD&gt;&lt;TD width="289" valign="top"&gt;Computes the CRC32 checksum for the source data buffer &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="131" rowspan="2" valign="top"&gt;Decompression/Test &lt;/TD&gt;&lt;TD width="265" valign="top"&gt;ippsInflate_8u &lt;/TD&gt;&lt;TD width="289" valign="top"&gt;Performs LZ77 decoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top"&gt;ippsInflateBuildHuffTable &lt;/TD&gt;&lt;TD width="289" valign="top"&gt;Performs Huffman decoding &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" id="table10" style="border-collapse: collapse;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="131" valign="top" style="padding-bottom: 0in; padding-left: 5.4pt; width: 98.6pt; padding-right: 5.4pt; padding-top: 0in; border: windowtext 1pt solid;"&gt;IPP_GZIP Function &lt;/TD&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;IPP Function &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Function Description &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="131" rowspan="3" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 98.6pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Compression &lt;/TD&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsDeflateLZ77_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Performs LZ77 encoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsDeflateHuff_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Performs Huffman encoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsCRC32_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Computes the CRC32 checksum for the source data buffer &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="131" rowspan="2" valign="top" style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 98.6pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Decompression/Test &lt;/TD&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsInflate_8u &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Performs LZ77 decoding &lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="265" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 199.05pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;ippsInflateBuildHuffTable &lt;/TD&gt;&lt;TD width="289" valign="top" style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 216.85pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in;"&gt;Performs Huffman decoding &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;And they are used in IPP data compression sample too. &lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;Ying &lt;/P&gt;</description>
      <pubDate>Fri, 01 Jun 2012 06:50:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/proper-use-of-ippsDecode-Encode-LZ77DynamicHuff-8u-ippsDecode/m-p/813907#M4104</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2012-06-01T06:50:53Z</dc:date>
    </item>
  </channel>
</rss>

