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

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

?? bwtscheme.c

?? 這是在PCA下的基于IPP庫示例代碼例子,在網上下了IPP的庫之后,設置相關參數就可以編譯該代碼.
?? C
字號:
/*//////////////////////////////// "bwtscheme.c" /////////////////////////////////                  INTEL CORPORATION PROPRIETARY INFORMATION//     This 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.//////     higher level functions of IPP DC ( data compression ) domain for//     BWT, MTF, RLE and Huffman encoding/decoding usage*/#include "bwtscheme.h"Ipp8u *pTmpB;/* macro to exchange 2 pointers */#define EXCHANGEBUFFERS(PSRC, PDST) \pTmpB=PSRC; PSRC=PDST; PDST=pTmpB/* Allocates memory nad inits the bwtState **ppState structure */int Compress1StateInitAlloc( bwtState **ppState, int blocksize ) {    IppStatus st;    int totalSize   = 0;    /* total size of all buffers */    int bwtSize     = 0;    /* size of additional buffer for BWT transform */    int mtfSize     = 0;    /* size of state structure for MTF transform */    int hufSize     = 0;    /* size of state structure for Huffman encoding */    /* allocation of additional buffer for BWT */    if( ippStsNoErr != ( st = ippsBWTFwdGetSize_8u( blocksize, &bwtSize ) ) )        return st;    totalSize += bwtSize;    if( ippStsNoErr != ( st = ippsMTFGetSize_8u( &mtfSize ) ) )        return st;    totalSize += mtfSize;    if( ippStsNoErr != ( st = ippsHuffGetSize_8u( &hufSize ) ) )        return st;    totalSize += hufSize;    /* allocates memory for the structure itself */    (*ppState)                  = (bwtState *)ippsMalloc_8u(sizeof(bwtState));    /* allocates memory for the additional buffers and state structures       as a one big piece of memory and then just inits a pointers as a       shift inside this memory piece */    (*ppState)->mtfStateSize    = mtfSize;    (*ppState)->huffStateSize   = hufSize;    (*ppState)->bwtBufferSize   = bwtSize;    (*ppState)->mainstream      = (Ipp8u *)ippsMalloc_8u(sizeof(Ipp8u)*totalSize);    (*ppState)->pBwtAddBuffer   = (*ppState)->mainstream;    (*ppState)->pMTFState       = (*ppState)->pBwtAddBuffer + bwtSize;    (*ppState)->pHuffState      = (*ppState)->pMTFState + mtfSize;    (*ppState)->blocksize       = blocksize;    if( ippStsNoErr != ( st = ippsMTFInit_8u( (IppMTFState_8u *)((*ppState)->pMTFState) ) ) )        return st;    return ippStsNoErr;}int Decompress1StateInitAlloc( bwtState **ppState, int blocksize ) {    IppStatus st;    int totalSize   = 0;    /* total size of all buffers */    int bwtSize     = 0;    /* size of additional buffer for BWT transform */    int mtfSize     = 0;    /* size of state structure for MTF transform */    int hufSize     = 0;    /* size of state structure for Huffman encoding */    /* gets size of additional buffer for BWT */    if( ippStsNoErr != ( st = ippsBWTInvGetSize_8u( blocksize, &bwtSize ) ) )        return st;    totalSize += bwtSize;    /* gets size of state structure for MTF */    if( ippStsNoErr != ( st = ippsMTFGetSize_8u( &mtfSize ) ) )        return st;    totalSize += mtfSize;    /* gets size of state structure for Huffman Encoding */    if( ippStsNoErr != ( st = ippsHuffGetSize_8u( &hufSize ) ) )        return st;    totalSize += hufSize;    /* allocates memory for the structure itself */    (*ppState) = (bwtState *)ippsMalloc_8u(sizeof(bwtState));    /* allocates memory for the additional buffers and state structures       as a one big piece of memory and then just inits a pointers as a       shift inside this memory piece */    (*ppState)->mtfStateSize    = mtfSize;    (*ppState)->huffStateSize   = hufSize;    (*ppState)->bwtBufferSize   = bwtSize;    (*ppState)->blocksize       = blocksize;    (*ppState)->mainstream      = (Ipp8u *)ippsMalloc_8u( sizeof(Ipp8u) * totalSize + 1);    (*ppState)->pBwtAddBuffer   = (*ppState)->mainstream;    (*ppState)->pMTFState       = ((*ppState)->pBwtAddBuffer + bwtSize);    (*ppState)->pHuffState      = ((*ppState)->pMTFState + mtfSize);    if( ippStsNoErr != ( st = ippsMTFInit_8u( (IppMTFState_8u *)((*ppState)->pMTFState) ) ) )        return st;    return ippStsNoErr;}/* top level function for compression */int Compress1( Ipp8u **ppSrc, int SrcLen, Ipp8u **ppDst, int *pDstLen, bwtState *pState ) {    int st;    // initializes local variables from main state structure fields    IppHuffState_8u * pHuffState    = (IppHuffState_8u *)(pState->pHuffState);    IppMTFState_8u  * pMTFState     = (IppMTFState_8u *)(pState->pMTFState);    Ipp8u           * pBwtAddBuffer =  pState->pBwtAddBuffer;    Ipp8u           * pSrc          = *ppSrc;    Ipp8u           * pDst          = *ppDst;    int               bwtLen        = *pDstLen,                      mtfLen        = *pDstLen,                      rleLen        = *pDstLen,                      rleLenZ       = *pDstLen;    // does the Run-Length Encoding (see file rle.c for implementation details)    if( ippStsNoErr != ( st = EncodeRLE( pSrc, SrcLen, pDst, &rleLenZ ) ) ) {        fprintf(stderr, "Error <%d> while trying to encode RLE. Exiting.\n", st );        return st;    }    // swaps two pointers    EXCHANGEBUFFERS( pSrc, pDst );    // does forward Burrows-Wheller transform (see file bwt.c for implementation details)    if( ippStsNoErr != ( st = ForwardBWT( pSrc, rleLenZ, pDst, &bwtLen, pBwtAddBuffer ) ) ) {        fprintf(stderr, "Error <%d> while trying forward BWT Transformation. Exiting.\n", st );        return st;    }    // swaps two pointers    EXCHANGEBUFFERS( pSrc, pDst );    // does forward Move-To-Front transform (see file mtf.c for implementation details)    if( ippStsNoErr != ( st = ForwardMTF( pSrc, bwtLen, pDst, &mtfLen, pMTFState ) ) ) {        fprintf(stderr, "Error <%d> while trying forward MTF Transformation. Exiting.\n", st );        return st;    }    // swaps two pointers    EXCHANGEBUFFERS( pSrc, pDst );    // does the Run-Length Encoding (see file rle.c for implementation details)    if( ippStsNoErr != ( st = EncodeRLE( pSrc, mtfLen, pDst, &rleLen ) ) ) {        fprintf(stderr, "Error <%d> while trying to encode RLE. Exiting.\n", st );        return st;    }    // swaps two pointers    EXCHANGEBUFFERS( pSrc, pDst );    // does the Huffman Encoding (see file huffman.c for implementation details)    if( ippStsNoErr != ( st = EncodeHuffman( pSrc, rleLen, pDst, pDstLen, pHuffState ) ) ) {        fprintf(stderr, "Error <%d> while trying to encode Huffman. Exiting.\n", st );        return st;    }    *ppSrc = pSrc;    *ppDst = pDst;    return st;}/* top level function for decompression */int Decompress1( Ipp8u **ppSrc, int SrcLen, Ipp8u **ppDst, int *pDstLen, bwtState *pState ) {    int st;    IppHuffState_8u * pHuffState    = (IppHuffState_8u *)(pState->pHuffState);    IppMTFState_8u  * pMTFState     = (IppMTFState_8u  *)(pState->pMTFState);    Ipp8u           * pBwtAddBuffer = pState->pBwtAddBuffer;    Ipp8u           * pSrc          = *ppSrc;    Ipp8u           * pDst          = *ppDst;    int               rleLen        = *pDstLen,                      rleLenZ       = *pDstLen,                      mtfLen        = *pDstLen,                      hufLen        = *pDstLen;    // does the Huffman Decoding (see file huffman.c for implementation details)    if( ippStsNoErr != ( st = DecodeHuffman( pSrc, SrcLen, pDst, &hufLen, pHuffState ) ) ) {        fprintf(stderr, "Error <%d> while trying to decode Huffman. Exiting.\n", st );        return st;    }    // swaps two pointers    EXCHANGEBUFFERS( pSrc, pDst );    // does the Run-Length Decoding (see file rle.c for implementation details)    if( ippStsNoErr != ( st = DecodeRLE( pSrc, hufLen, pDst, &rleLen ) ) ) {        fprintf(stderr, "Error <%d> while trying to decode RLE. Exiting.\n", st );        return st;    }    // swaps two pointers    EXCHANGEBUFFERS( pSrc, pDst );    // does backward Move-To-Front transform (see file mtf.c for implementation details)    if( ippStsNoErr != ( st = InverseMTF( pSrc, rleLen, pDst, &mtfLen, pMTFState ) ) ) {        fprintf(stderr, "Error <%d> while trying backward MTF Transformation. Exiting.\n", st );        return st;    }    // swaps two pointers    EXCHANGEBUFFERS( pSrc, pDst );    // does backward Burrows-Wheller transform (see file bwt.c for implementation details)    if( ippStsNoErr != ( st = InverseBWT( pSrc, mtfLen, pDst, &rleLenZ, pBwtAddBuffer ) ) ) {        fprintf(stderr, "Error <%d> while trying backward BWT Transformation. Exiting.\n", st );        return st;    }    // swaps two pointers    EXCHANGEBUFFERS( pSrc, pDst );    // does the Run-Length Decoding (see file rle.c for implementation details)    if( ippStsNoErr != ( st = DecodeRLE( pSrc, rleLenZ, pDst, pDstLen ) ) ) {        fprintf(stderr, "Error <%d> while trying to decode RLE. Exiting.\n", st );        return st;    }    *ppSrc = pSrc;    *ppDst = pDst;    return st;}/* frees all the fields of bwtState structure */void Free1State( bwtState *pState ) {    ippsFree(pState->mainstream);    ippsFree(pState);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲成aⅴ人片在线观看| 欧美大白屁股肥臀xxxxxx| 亚洲一区二区综合| 欧美成人高清电影在线| 91女厕偷拍女厕偷拍高清| 日本视频在线一区| 国产精品免费看片| 欧美不卡123| 欧美日韩一区三区| 不卡在线视频中文字幕| 久久精品国产免费| 亚洲午夜av在线| 17c精品麻豆一区二区免费| 精品理论电影在线| 欧美丰满美乳xxx高潮www| eeuss国产一区二区三区| 国内精品国产三级国产a久久| 亚洲va国产天堂va久久en| 国产精品久久久久久久久免费樱桃 | 成人黄色大片在线观看| 精品一区二区三区免费| 偷拍日韩校园综合在线| 亚洲线精品一区二区三区| 国产精品另类一区| 国产片一区二区| 精品久久国产老人久久综合| 91精品国产综合久久精品| 欧美色综合久久| 欧美色中文字幕| 91国产视频在线观看| av不卡在线观看| 国产成人精品亚洲日本在线桃色| 久久99精品一区二区三区| 日本中文字幕一区| 午夜欧美电影在线观看| 亚洲高清免费视频| 亚洲一区二区在线免费看| 夜夜嗨av一区二区三区中文字幕| 亚洲欧美日韩中文播放| 一区二区国产视频| 樱花草国产18久久久久| 亚洲欧美偷拍卡通变态| 18成人在线观看| 亚洲精品高清在线| 亚洲一卡二卡三卡四卡五卡| 亚洲尤物视频在线| 亚洲电影你懂得| 视频一区二区国产| 奇米一区二区三区| 毛片一区二区三区| 精品中文av资源站在线观看| 国产尤物一区二区| 国产成人精品一区二区三区网站观看 | 日韩一区二区三区在线视频| 欧美一区二区日韩一区二区| 欧美videos大乳护士334| 久久理论电影网| 国产精品久久久久三级| 亚洲国产一二三| 久久国产乱子精品免费女| 国产成人av影院| 91在线一区二区三区| 在线看不卡av| 日韩欧美国产高清| 国产日产欧美一区| 亚洲九九爱视频| 日本视频一区二区三区| 国产v日产∨综合v精品视频| 99re成人精品视频| 欧美精品久久99久久在免费线| 日韩欧美国产电影| 最新日韩在线视频| 欧美96一区二区免费视频| 国产剧情在线观看一区二区| 一本久久精品一区二区| 91精品国产福利| 中文乱码免费一区二区| 亚洲午夜成aⅴ人片| 激情五月播播久久久精品| 波多野结衣中文字幕一区 | 日韩欧美一级二级三级| 中文字幕一区二区不卡| 偷拍一区二区三区四区| 成人涩涩免费视频| 欧美美女网站色| 欧美经典一区二区| 午夜av一区二区三区| 国产精品夜夜嗨| 欧美妇女性影城| 国产精品国产三级国产普通话99| 日日夜夜一区二区| 国产成人精品综合在线观看| 欧美日韩精品一区二区三区蜜桃| 国产日韩欧美精品一区| 亚洲高清久久久| 9色porny自拍视频一区二区| 91精品国产aⅴ一区二区| 最新日韩av在线| 久久成人羞羞网站| 欧美午夜寂寞影院| 国产精品天美传媒沈樵| 美脚の诱脚舐め脚责91 | 91免费观看国产| 久久综合久久鬼色| 爽好久久久欧美精品| 99久久伊人网影院| 久久久久一区二区三区四区| 亚洲成人黄色影院| 色综合久久久久| 国产精品欧美一区喷水| 国内精品在线播放| 欧美一区二区在线视频| 一区二区三区在线观看国产| 国产高清精品在线| 精品电影一区二区| 日韩精品一级中文字幕精品视频免费观看| 99久久精品国产麻豆演员表| 久久久久99精品国产片| 久久国产夜色精品鲁鲁99| 91麻豆精品国产91久久久久久久久| 亚洲欧美成人一区二区三区| 成人毛片视频在线观看| 国产欧美一区二区精品婷婷| 狠狠久久亚洲欧美| 日韩精品一区二区三区视频播放 | 色国产精品一区在线观看| 日本一二三四高清不卡| 激情综合五月婷婷| 欧美一区二区播放| 丝袜美腿成人在线| 在线播放一区二区三区| 香蕉乱码成人久久天堂爱免费| 色综合久久中文字幕综合网 | 狠狠色狠狠色合久久伊人| 欧美一区二区三区色| 日韩综合在线视频| 51精品久久久久久久蜜臀| 日本成人在线不卡视频| 欧美高清视频在线高清观看mv色露露十八| 亚洲综合在线第一页| 欧美在线观看18| 午夜精品久久久久久久蜜桃app| 欧美性三三影院| 午夜激情一区二区三区| 欧美一区日韩一区| 精品一区二区av| 久久嫩草精品久久久久| 国产99精品视频| 自拍偷拍亚洲激情| 色综合久久综合网97色综合| 亚洲国产精品精华液网站| 欧美美女一区二区| 精品一区二区三区免费视频| 国产亚洲精品精华液| 91在线一区二区三区| 亚洲最新视频在线播放| 欧美日韩精品专区| 久久精品国内一区二区三区| 久久日一线二线三线suv| 不卡的av电影在线观看| 亚洲一区在线观看免费观看电影高清| 欧美丰满美乳xxx高潮www| 国产综合久久久久久久久久久久| 欧美高清在线一区二区| 91小宝寻花一区二区三区| 亚洲444eee在线观看| 日韩三级精品电影久久久| 国产不卡视频一区| 亚洲大片免费看| 精品噜噜噜噜久久久久久久久试看 | 精品视频全国免费看| 美腿丝袜亚洲色图| 国产精品久99| 欧美美女喷水视频| 国产在线国偷精品免费看| 亚洲欧美自拍偷拍色图| 欧美美女喷水视频| 成人免费电影视频| 视频一区二区三区入口| 欧美激情一区二区三区蜜桃视频 | 国产精品一区二区黑丝| 一区二区三区在线视频观看58| 日韩欧美国产小视频| 99久久综合99久久综合网站| 日本欧美大码aⅴ在线播放| 欧美国产精品专区| 日韩一区二区三区av| 99在线热播精品免费| 免费成人在线网站| 一区二区三区四区高清精品免费观看| 日韩欧美一级片| 欧美在线小视频| 粉嫩13p一区二区三区| 日韩电影在线观看网站| 中文字幕在线视频一区| 欧美电视剧在线看免费| 色哟哟一区二区三区| 国产精品一区在线| 日产国产欧美视频一区精品| 亚洲视频在线一区观看|