亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ipp_zlib.c

?? 這是在PCA下的基于IPP庫示例代碼例子,在網上下了IPP的庫之后,設置相關參數就可以編譯該代碼.
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*
//
//               INTEL CORPORATION PROPRIETARY INFORMATION
//  th software is supplied under the terms of a license agreement or
//  nondisclosure agreement with Intel Corporation and may not be copied
//  or disclosed except in accordance with the terms of that agreement.
//        Copyright (c) 2005 Intel Corporation. All Rights Reserved.
//
//
*/
    
/* zlib.h -- interface of the 'zlib' general purpose compression library
  version 1.2.1, November 17th, 2003

  Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler

  th software is provided 'as-is', without any express or implied
  warranty.  In no event will the authors be held liable for any damages
  arising from the use of th software.

  Permission is granted to anyone to use th software for any purpose,
  including commercial applications, and to alter it and redistribute it
  freely, subject to the following restrictions:

  1. The origin of th software must not be misrepresented; you must not
     claim that you wrote the original software. If you use th software
     in a product, an acknowledgment in the product documentation would be
     appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be
     misrepresented as being the original software.
  3. th notice may not be removed or altered from any source distribution.

  Jean-loup Gailly        Mark Adler
  jloup@gzip.org          madler@alumni.caltech.edu


  The data format used by the zlib library is described by RFCs (Request for
  Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt
  (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
*/
    
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//#include "omp.h"
#include "ippdc.h"
#include "ipps.h"
#include "ipp_zlib.h"

#define z_off_t long

typedef struct gz_stream {
    z_stream stream;
    int      z_err;   /* error code for last stream operation */
    int      z_eof;   /* set if end of input file */
    FILE     *file;   /* .gz file */
    Byte     *inbuf;  /* input buffer */
    Byte     *outbuf; /* output buffer */
    uLong    crc;     /* crc32 of uncompressed data */
    char     *msg;    /* error message */
    char     *path;   /* path name for debugging only */
    int      transparent; /* 1 if input file is not a .gz file */
    char     mode;    /* 'w' or 'r' */
    z_off_t  start;   /* start of compressed data in file (header skipped) */
    z_off_t  in;      /* bytes into deflate or inflate */
    z_off_t  out;     /* bytes out of deflate or inflate */
    int      back;    /* one character push-back */
    int      last;    /* true if push-back is last character */
} gz_stream;

static int const gz_magic[2] = {0x1f, 0x8b};

#define ASCII_FLAG   0x01 /* bit 0 set: file probably ascii text */
#define HEAD_CRC     0x02 /* bit 1 set: header CRC present */
#define EXTRA_FIELD  0x04 /* bit 2 set: extra field present */
#define ORIG_NAME    0x08 /* bit 3 set: original file name present */
#define COMMENT      0x10 /* bit 4 set: file comment present */
#define RESERVED     0xE0 /* bits 5..7: reserved */

/**********************************************************************************/
/*               Declarations and type definitions for inflate()                  */
/**********************************************************************************/

# define ENOUGH 1440
# define MAXD 154
# define MAXBITS 15 

typedef struct {
    unsigned char op;           /* operation, extra bits, table bits */
    unsigned char bits;         /* bits in this part of the code */
    unsigned short val;         /* offset in table or code value */
} code;

#ifdef NATIVE_INFLATE

typedef enum {
    CODES,
    LENS,
    DISTS
} codetype;

typedef enum {
    HEAD,       /* i: waiting for magic header */
#ifdef GZIP
    FLAGS,      /* i: waiting for method and flags (gzip) */
    TIME,       /* i: waiting for modification time (gzip) */
    OS,         /* i: waiting for extra flags and operating system (gzip) */
    EXLEN,      /* i: waiting for extra length (gzip) */
    EXTRA,      /* i: waiting for extra bytes (gzip) */
    NAME,       /* i: waiting for end of file name (gzip) */
    ICOMMENT,    /* i: waiting for end of comment (gzip) */
    HCRC,       /* i: waiting for header crc (gzip) */
#endif
    DICTID,     /* i: waiting for dictionary check value */
    DICT,       /* waiting for inflateSetDictionary() call */
    TYPE,       /* i: waiting for type bits, including last-flag bit */
    TYPEDO,     /* i: same, but skip check to exit inflate on new block */
    STORED,     /* i: waiting for stored size (length and complement) */
    COPY,       /* i/o: waiting for input or output to copy stored block */
    TABLE,      /* i: waiting for dynamic block table lengths */
    LENLENS,    /* i: waiting for code length code lengths */
    CODELENS,   /* i: waiting for length/lit and distance code lengths */
    LEN,        /* i: waiting for length/lit code */
    LENEXT,     /* i: waiting for length extra bits */
    DIST,       /* i: waiting for distance code */
    DISTEXT,    /* i: waiting for distance extra bits */
    MATCH,      /* o: waiting for output space to copy string */
    LIT,        /* o: waiting for output space to write literal */
    CHECK,      /* i: waiting for 32-bit check value */
#ifdef GZIP
    LENGTH,     /* i: waiting for 32-bit length (gzip) */
#endif
    DONE,       /* finished check, done -- remain here until reset */
    BAD,        /* got a data error -- remain here until reset */
    MEM,        /* got an inflate() memory error -- remain here until reset */
    SYNC        /* looking for synchronization bytes to restart inflate() */
} inflate_mode;

struct inflate_state {
    inflate_mode mode;          /* current inflate mode */
    int last;                   /* true if processing last block */
    int wrap;                   /* bit 0 true for zlib, bit 1 true for gzip */
    int havedict;               /* true if dictionary provided */
    int flags;                  /* gzip header method and flags (0 if zlib) */
    unsigned long check;        /* protected copy of check value */
    unsigned long total;        /* protected copy of output count */
        /* sliding window */
    unsigned wbits;             /* log base 2 of requested window size */
    unsigned wsize;             /* window size or zero if not using window */
    unsigned whave;             /* valid bytes in the window */
    unsigned write;             /* window write index */
    unsigned char FAR *window;  /* allocated sliding window, if needed */
        /* bit accumulator */
    unsigned long hold;         /* input bit accumulator */
    unsigned bits;              /* number of bits in "in" */
        /* for string and stored block copying */
    unsigned length;            /* literal or length of data to copy */
    unsigned offset;            /* distance back to copy string from */
        /* for table and code decoding */
    unsigned extra;             /* extra bits needed */
        /* fixed and dynamic code tables */
    code const FAR *lencode;    /* starting table for length/literal codes */
    code const FAR *distcode;   /* starting table for distance codes */
    unsigned lenbits;           /* index bits for lencode */
    unsigned distbits;          /* index bits for distcode */
        /* dynamic table building */
    unsigned ncode;             /* number of code length code lengths */
    unsigned nlen;              /* number of length code lengths */
    unsigned ndist;             /* number of distance code lengths */
    unsigned have;              /* number of code lengths in lens[] */
    code FAR *next;             /* next available space in codes[] */
    unsigned short lens[320];   /* temporary storage for code lengths */
    unsigned short work[288];   /* work area for code table building */
    code codes[ENOUGH];         /* space for code tables */
};

#endif /* NATIVE_INFLATE */

/**********************************************************************************/
/*                             ZLIB own functions                                 */
/**********************************************************************************/

void
zmemcpy(unsigned char* toBuffer, unsigned char* fromBuffer, int howMuch)
{
  if(howMuch == 0) 
    return;
 
  do{
    *toBuffer++ = *fromBuffer++;  
  }while(--howMuch != 0 );
} /* memCpy() */

/**********************************************************************************/

int
put_byte(z_stream* pZStream, unsigned char b) 
{ 

   if(pZStream->avail_out == 0 ) return (-1);

   *(pZStream->next_out) = b;
   (pZStream->avail_out)--;
   (pZStream->next_out)++;

  return 0;
} /* put_byte() */

/**********************************************************************************/

int 
putShortMSB (z_stream* pZStream, unsigned int b)
{
    if(pZStream->avail_out <= 1 ) return(-1);

    put_byte(pZStream, (unsigned char)(b >> 8));
    put_byte(pZStream, (unsigned char)(b & 0xff));
    return 0;
} /* putShortMSB */

/**********************************************************************************/

int 
get_byte(gz_stream* s)
{
    if (s->z_eof) return EOF;
    if (s->stream.avail_in == 0) 
    {
        s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file);
        if (s->stream.avail_in == 0) 
        {
            s->z_eof = 1;
            if (ferror(s->file)) s->z_err = Z_ERRNO;
            return EOF;
        }
        s->stream.next_in = s->inbuf;
    }
    s->stream.avail_in--;
    return *(s->stream.next_in)++;
} /* get_byte() */

/**********************************************************************************/

unsigned long 
getLong (gz_stream* s)
{
    unsigned long x = (unsigned long)get_byte(s);
    int c;

    x += ((unsigned long)get_byte(s))<<8;
    x += ((unsigned long)get_byte(s))<<16;
    c = get_byte(s);
    if (c == EOF) s->z_err = Z_DATA_ERROR;
    x += ((unsigned long)c)<<24;

    return x;
} /* getLong() */

/**********************************************************************************/

void 
check_header(gz_stream* s)
{
    int method; 
    int flags;  
    unsigned int len;
    int c;
    
    len = s->stream.avail_in;
    if (len < 2) 
    {
        if (len) s->inbuf[0] = s->stream.next_in[0];
        len = fread(s->inbuf + len, 1, Z_BUFSIZE >> len, s->file);
        if (len == 0 && ferror(s->file)) s->z_err = Z_ERRNO;
        s->stream.avail_in += len;
        s->stream.next_in = s->inbuf;
        if (s->stream.avail_in < 2) {
            s->transparent = s->stream.avail_in;
            return;
        }
    }
    
    if (s->stream.next_in[0] != gz_magic[0] ||
        s->stream.next_in[1] != gz_magic[1]) {
        s->transparent = 1;
        return;
    }
    s->stream.avail_in -= 2;
    s->stream.next_in += 2;

    method = get_byte(s);
    flags = get_byte(s);
    if (method != Z_DEFLATED || (flags & RESERVED) != 0) 
    {
        s->z_err = Z_DATA_ERROR;
        return;
    }

    for (len = 0; len < 6; len++) (void)get_byte(s);

    if ((flags & EXTRA_FIELD) != 0) 
    { 
        len  =  (uInt)get_byte(s);
        len += ((uInt)get_byte(s))<<8;
        while (len-- != 0 && get_byte(s) != EOF) ;
    }
    if ((flags & ORIG_NAME) != 0) 
    { 
        while ((c = get_byte(s)) != 0 && c != EOF) ;
    }
    if ((flags & COMMENT) != 0) 
    {   
        while ((c = get_byte(s)) != 0 && c != EOF) ;
    }
    if ((flags & HEAD_CRC) != 0) 
    { 
        for (len = 0; len < 2; len++) (void)get_byte(s);
    }
    s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK;
    ippsDecodeLZ77SetStatus_8u(IppLZ77InflateStatusHuffProcess, s->stream.state);  

} /* check_header() */


#ifdef NATIVE_INFLATE
/**********************************************************************************/

int 
inflate_table(codetype type, unsigned short* lens, unsigned int codes, code** table, unsigned int* bits, unsigned short* work)
{
    int i;
    unsigned len;               /* a code's length in bits */
    unsigned sym;               /* index of code symbols */
    unsigned min, max;          /* minimum and maximum code lengths */
    unsigned root;              /* number of index bits for root table */
    unsigned curr;              /* number of index bits for current table */
    unsigned drop;              /* code bits to drop for sub-table */
    int left;                   /* number of prefix codes available */
    unsigned used;              /* code entries in table used */
    unsigned huff;              /* Huffman code */
    unsigned incr;              /* for incrementing code, index */
    unsigned fill;              /* index for replicating entries */
    unsigned low;               /* low bits for current root entry */
    unsigned mask;              /* mask for low root bits */
    code this;                  /* table entry for duplication */
    code *next;                 /* next available space in table */
    const unsigned short *base;     /* base value table to use */
    const unsigned short *extra;    /* extra bits table to use */
    int end;                    /* use base and extra for symbol > end */
    unsigned short count[MAXBITS+1];    /* number of codes of each length */
    unsigned short offs[MAXBITS+1];     /* offsets in table for each length */
    static const unsigned short lbase[31] = { /* Length codes 257..285 base */
        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
    static const unsigned short lext[31] = { /* Length codes 257..285 extra */
        16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 76, 66};
    static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
        8193, 12289, 16385, 24577, 0, 0};
    static const unsigned short dext[32] = { /* Distance codes 0..29 extra */
        16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
        23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
        28, 28, 29, 29, 64, 64};

    for (len = 0; len <= MAXBITS; len++)
        count[len] = 0;
    for (sym = 0; sym < codes; sym++)
        count[lens[sym]]++;

    root = *bits;
    for (max = MAXBITS; max >= 1; max--)
        if (count[max] != 0) break;
    if (root > max) root = max;
    if (max == 0) return -1;            
    for (min = 1; min <= MAXBITS; min++)
        if (count[min] != 0) break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线免费视频| 高清国产一区二区三区| 精品播放一区二区| 欧美一区二区三区啪啪| 欧美另类变人与禽xxxxx| 欧美精品色一区二区三区| 欧美羞羞免费网站| 777精品伊人久久久久大香线蕉| 欧美日韩五月天| 日韩一区二区三区视频在线 | 日韩av一区二| 午夜成人免费视频| 九九九精品视频| 97精品久久久久中文字幕| 在线观看亚洲成人| www成人在线观看| 亚洲一区在线观看网站| 久久99精品国产.久久久久久| 色哟哟一区二区| 在线观看免费亚洲| 中文字幕佐山爱一区二区免费| 国产精品美女视频| 91精品国产免费久久综合| 成人综合在线网站| 欧美高清一级片在线| 国产欧美一区二区精品仙草咪| 国产美女主播视频一区| 亚洲综合色区另类av| 亚洲激情五月婷婷| 欧美一区二区免费视频| 国产成人综合在线观看| 一区二区三区色| 亚洲精品成人天堂一二三| 日韩你懂的在线观看| 91视频免费看| 精品一区二区免费在线观看| 亚洲乱码国产乱码精品精可以看 | 91婷婷韩国欧美一区二区| 欧美日韩一区三区四区| 亚洲卡通动漫在线| 在线欧美日韩国产| 中文字幕av资源一区| 国产91丝袜在线播放0| 精品国产乱子伦一区| 麻豆视频观看网址久久| 777色狠狠一区二区三区| 婷婷开心久久网| 91精品久久久久久久91蜜桃| 水蜜桃久久夜色精品一区的特点 | 91久久精品一区二区| 国产精品情趣视频| av亚洲精华国产精华精| 国产精品国产a| 99精品国产一区二区三区不卡| 亚洲素人一区二区| 一本一道波多野结衣一区二区| 国产精品久久福利| 在线视频综合导航| 国产真实乱子伦精品视频| 日韩欧美三级在线| 国产麻豆精品视频| 日韩一级黄色片| 国产欧美日本一区二区三区| 蜜桃视频在线观看一区| 久久久精品日韩欧美| 91.com视频| 欧美激情一区二区三区| 亚洲va国产va欧美va观看| 亚洲国产一区二区视频| 亚洲美女免费视频| 亚洲精品第1页| 亚洲色图一区二区| 黄色日韩三级电影| 日韩高清在线电影| 欧美aaa在线| 麻豆精品视频在线观看| 奇米色一区二区| 九九**精品视频免费播放| 蜜桃av一区二区| 1024精品合集| 久久综合久久综合久久综合| 欧美视频一区二区三区在线观看| 国产老肥熟一区二区三区| 亚洲国产一二三| 国产精品日韩成人| 中文字幕乱码日本亚洲一区二区 | 国产视频一区二区在线观看| 色综合一个色综合亚洲| 国产一区美女在线| 国内精品自线一区二区三区视频| 日韩电影免费在线看| 亚洲444eee在线观看| 日一区二区三区| 午夜久久久久久| 免费视频一区二区| 麻豆视频一区二区| 国产在线观看免费一区| 日本成人在线不卡视频| 久久精品72免费观看| 亚洲成av人在线观看| 丝袜美腿亚洲综合| 成人激情免费视频| 91在线视频18| 在线精品国精品国产尤物884a| 在线观看日韩电影| 成人ar影院免费观看视频| 国产精品久久久久一区| 欧美电影免费观看高清完整版在线| 在线视频欧美区| 欧美日韩国产一二三| 亚洲欧美一区二区视频| 欧美精品乱码久久久久久| 欧美aⅴ一区二区三区视频| 国产精品久久久久久久裸模| 亚洲最大的成人av| 久久国产精品无码网站| av电影在线观看一区| 亚洲青青青在线视频| 日韩av电影免费观看高清完整版| 狠狠色综合日日| 99久久国产综合精品麻豆| 69堂亚洲精品首页| 亚洲欧美在线高清| 久久99日本精品| 色偷偷久久人人79超碰人人澡| 亚洲精品国产a久久久久久| 日韩高清电影一区| 91在线视频播放| 久久日韩精品一区二区五区| 伊人色综合久久天天人手人婷| 麻豆精品在线播放| 色一区在线观看| 国产视频不卡一区| 精品一区二区日韩| 日韩一二三区视频| 午夜久久电影网| 欧美日韩精品一区二区三区蜜桃| 久久久精品国产免费观看同学| 午夜精品福利一区二区三区av| 91麻豆.com| 亚洲欧洲韩国日本视频| 懂色一区二区三区免费观看| 久久青草欧美一区二区三区| 污片在线观看一区二区| 欧美影院午夜播放| 亚洲综合成人网| 欧美性感一区二区三区| 一二三四社区欧美黄| 色婷婷综合久久久久中文| 亚洲欧美电影院| 在线观看一区二区视频| 五月天网站亚洲| 欧美日韩精品二区第二页| 久久aⅴ国产欧美74aaa| 日韩女优av电影| 国产一区日韩二区欧美三区| 久久久久久99精品| 91社区在线播放| 亚洲制服丝袜av| gogogo免费视频观看亚洲一| 国产精品人妖ts系列视频| 9i在线看片成人免费| 一区二区日韩av| 亚洲美女少妇撒尿| 国产一区999| 色综合久久久久综合体| 美女免费视频一区| 欧美一区永久视频免费观看| 午夜亚洲国产au精品一区二区| 欧美日韩一卡二卡| 亚洲午夜羞羞片| 中文字幕中文乱码欧美一区二区| 国产一区二区三区综合| 国产亚洲一区二区三区在线观看| 国产精品一区二区三区网站| 久久婷婷综合激情| av激情综合网| 一区二区在线免费| 欧美视频一区二区三区| 中文字幕一区二区三区精华液| 欧美精品一区二区三区蜜臀 | 婷婷成人综合网| 国产亚洲一区二区三区在线观看 | 欧美三级午夜理伦三级中视频| 激情偷乱视频一区二区三区| 亚洲精品v日韩精品| 国产午夜久久久久| 国产日韩欧美综合一区| 欧美一区二区三区四区视频| av一本久道久久综合久久鬼色| 久草中文综合在线| 免费日韩伦理电影| 天堂一区二区在线免费观看| 亚洲最新视频在线播放| 亚洲日本电影在线| 亚洲欧美一区二区不卡| 亚洲三级电影全部在线观看高清| 国产视频一区在线观看| 国产精品网站一区| 国产精品不卡视频|