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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? compress.c

?? p2p技術(shù)C源代碼.rar
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*-------------------------------------------------------------*//*--- Compression machinery (not incl block sorting)        ---*//*---                                            compress.c ---*//*-------------------------------------------------------------*//*--  This file is a part of bzip2 and/or libbzip2, a program and  library for lossless, block-sorting data compression.  Copyright (C) 1996-2002 Julian R Seward.  All rights reserved.  Redistribution and use in source and binary forms, with or without  modification, are permitted provided that the following conditions  are met:  1. Redistributions of source code must retain the above copyright     notice, this list of conditions and the following disclaimer.  2. The origin of this software must not be misrepresented; you must      not claim that you wrote the original software.  If you use this      software in a product, an acknowledgment in the product      documentation would be appreciated but is not required.  3. Altered source versions must be plainly marked as such, and must     not be misrepresented as being the original software.  4. The name of the author may not be used to endorse or promote      products derived from this software without specific prior written      permission.  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  Julian Seward, Cambridge, UK.  jseward@acm.org  bzip2/libbzip2 version 1.0 of 21 March 2000  This program is based on (at least) the work of:     Mike Burrows     David Wheeler     Peter Fenwick     Alistair Moffat     Radford Neal     Ian H. Witten     Robert Sedgewick     Jon L. Bentley  For more information on these sources, see the manual.--*//*--   CHANGES   ~~~~~~~   0.9.0 -- original version.   0.9.0a/b -- no changes in this file.   0.9.0c      * changed setting of nGroups in sendMTFValues() so as to         do a bit better on small files--*/#include "bzlib_private.h"/*---------------------------------------------------*//*--- Bit stream I/O                              ---*//*---------------------------------------------------*//*---------------------------------------------------*/void BZ2_bsInitWrite ( EState* s ){   s->bsLive = 0;   s->bsBuff = 0;}/*---------------------------------------------------*/staticvoid bsFinishWrite ( EState* s ){   while (s->bsLive > 0) {      s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24);      s->numZ++;      s->bsBuff <<= 8;      s->bsLive -= 8;   }}/*---------------------------------------------------*/#define bsNEEDW(nz)                           \{                                             \   while (s->bsLive >= 8) {                   \      s->zbits[s->numZ]                       \         = (UChar)(s->bsBuff >> 24);          \      s->numZ++;                              \      s->bsBuff <<= 8;                        \      s->bsLive -= 8;                         \   }                                          \}/*---------------------------------------------------*/static__inline__void bsW ( EState* s, Int32 n, UInt32 v ){   bsNEEDW ( n );   s->bsBuff |= (v << (32 - s->bsLive - n));   s->bsLive += n;}/*---------------------------------------------------*/staticvoid bsPutUInt32 ( EState* s, UInt32 u ){   bsW ( s, 8, (u >> 24) & 0xffL );   bsW ( s, 8, (u >> 16) & 0xffL );   bsW ( s, 8, (u >>  8) & 0xffL );   bsW ( s, 8,  u        & 0xffL );}/*---------------------------------------------------*/staticvoid bsPutUChar ( EState* s, UChar c ){   bsW( s, 8, (UInt32)c );}/*---------------------------------------------------*//*--- The back end proper                         ---*//*---------------------------------------------------*//*---------------------------------------------------*/staticvoid makeMaps_e ( EState* s ){   Int32 i;   s->nInUse = 0;   for (i = 0; i < 256; i++)      if (s->inUse[i]) {         s->unseqToSeq[i] = s->nInUse;         s->nInUse++;      }}/*---------------------------------------------------*/staticvoid generateMTFValues ( EState* s ){   UChar   yy[256];   Int32   i, j;   Int32   zPend;   Int32   wr;   Int32   EOB;   /*       After sorting (eg, here),         s->arr1 [ 0 .. s->nblock-1 ] holds sorted order,         and         ((UChar*)s->arr2) [ 0 .. s->nblock-1 ]          holds the original block data.      The first thing to do is generate the MTF values,      and put them in         ((UInt16*)s->arr1) [ 0 .. s->nblock-1 ].      Because there are strictly fewer or equal MTF values      than block values, ptr values in this area are overwritten      with MTF values only when they are no longer needed.      The final compressed bitstream is generated into the      area starting at         (UChar*) (&((UChar*)s->arr2)[s->nblock])      These storage aliases are set up in bzCompressInit(),      except for the last one, which is arranged in       compressBlock().   */   UInt32* ptr   = s->ptr;   UChar* block  = s->block;   UInt16* mtfv  = s->mtfv;   makeMaps_e ( s );   EOB = s->nInUse+1;   for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0;   wr = 0;   zPend = 0;   for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i;   for (i = 0; i < s->nblock; i++) {      UChar ll_i;      AssertD ( wr <= i, "generateMTFValues(1)" );      j = ptr[i]-1; if (j < 0) j += s->nblock;      ll_i = s->unseqToSeq[block[j]];      AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" );      if (yy[0] == ll_i) {          zPend++;      } else {         if (zPend > 0) {            zPend--;            while (True) {               if (zPend & 1) {                  mtfv[wr] = BZ_RUNB; wr++;                   s->mtfFreq[BZ_RUNB]++;                } else {                  mtfv[wr] = BZ_RUNA; wr++;                   s->mtfFreq[BZ_RUNA]++;                }               if (zPend < 2) break;               zPend = (zPend - 2) / 2;            };            zPend = 0;         }         {            register UChar  rtmp;            register UChar* ryy_j;            register UChar  rll_i;            rtmp  = yy[1];            yy[1] = yy[0];            ryy_j = &(yy[1]);            rll_i = ll_i;            while ( rll_i != rtmp ) {               register UChar rtmp2;               ryy_j++;               rtmp2  = rtmp;               rtmp   = *ryy_j;               *ryy_j = rtmp2;            };            yy[0] = rtmp;            j = ryy_j - &(yy[0]);            mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++;         }      }   }   if (zPend > 0) {      zPend--;      while (True) {         if (zPend & 1) {            mtfv[wr] = BZ_RUNB; wr++;             s->mtfFreq[BZ_RUNB]++;          } else {            mtfv[wr] = BZ_RUNA; wr++;             s->mtfFreq[BZ_RUNA]++;          }         if (zPend < 2) break;         zPend = (zPend - 2) / 2;      };      zPend = 0;   }   mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++;   s->nMTF = wr;}/*---------------------------------------------------*/#define BZ_LESSER_ICOST  0#define BZ_GREATER_ICOST 15staticvoid sendMTFValues ( EState* s ){   Int32 v, t, i, j, gs, ge, totc, bt, bc, iter;   Int32 nSelectors, alphaSize, minLen, maxLen, selCtr;   Int32 nGroups, nBytes;   /*--   UChar  len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];   is a global since the decoder also needs it.   Int32  code[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];   Int32  rfreq[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];   are also globals only used in this proc.   Made global to keep stack frame size small.   --*/   UInt16 cost[BZ_N_GROUPS];   Int32  fave[BZ_N_GROUPS];   UInt16* mtfv = s->mtfv;   if (s->verbosity >= 3)      VPrintf3( "      %d in block, %d after MTF & 1-2 coding, "                "%d+2 syms in use\n",                 s->nblock, s->nMTF, s->nInUse );   alphaSize = s->nInUse+2;   for (t = 0; t < BZ_N_GROUPS; t++)      for (v = 0; v < alphaSize; v++)         s->len[t][v] = BZ_GREATER_ICOST;   /*--- Decide how many coding tables to use ---*/   AssertH ( s->nMTF > 0, 3001 );   if (s->nMTF < 200)  nGroups = 2; else   if (s->nMTF < 600)  nGroups = 3; else   if (s->nMTF < 1200) nGroups = 4; else   if (s->nMTF < 2400) nGroups = 5; else                       nGroups = 6;   /*--- Generate an initial set of coding tables ---*/   {       Int32 nPart, remF, tFreq, aFreq;      nPart = nGroups;      remF  = s->nMTF;      gs = 0;      while (nPart > 0) {         tFreq = remF / nPart;         ge = gs-1;         aFreq = 0;         while (aFreq < tFreq && ge < alphaSize-1) {            ge++;            aFreq += s->mtfFreq[ge];         }         if (ge > gs              && nPart != nGroups && nPart != 1              && ((nGroups-nPart) % 2 == 1)) {            aFreq -= s->mtfFreq[ge];            ge--;         }         if (s->verbosity >= 3)            VPrintf5( "      initial group %d, [%d .. %d], "                      "has %d syms (%4.1f%%)\n",                      nPart, gs, ge, aFreq,                       (100.0 * (float)aFreq) / (float)(s->nMTF) );          for (v = 0; v < alphaSize; v++)            if (v >= gs && v <= ge)                s->len[nPart-1][v] = BZ_LESSER_ICOST; else               s->len[nPart-1][v] = BZ_GREATER_ICOST;          nPart--;         gs = ge+1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久av中文字幕片| 成人综合激情网| 2024国产精品| 日本韩国欧美在线| 国产精品自拍三区| 亚洲成在线观看| 国产精品久久久久影视| 制服视频三区第一页精品| 成人免费三级在线| 久久成人久久爱| 亚洲一区二区三区四区的| 国产欧美日韩中文久久| 亚洲国产另类精品专区| 2023国产精品| 在线综合视频播放| 在线中文字幕不卡| eeuss鲁片一区二区三区在线看| 麻豆91在线播放免费| 一区二区三区日韩在线观看| 亚洲国产精品成人综合| 欧美电影免费观看高清完整版| 欧美亚洲自拍偷拍| hitomi一区二区三区精品| 国产麻豆日韩欧美久久| 看国产成人h片视频| 天堂久久久久va久久久久| 伊人婷婷欧美激情| 国产精品久久毛片| 欧美激情一区二区三区在线| 欧美mv日韩mv亚洲| 日韩一区二区三区精品视频| 欧美日韩国产一级二级| 在线免费观看一区| 色88888久久久久久影院野外| 不卡一区二区中文字幕| 成人免费av网站| www.日韩精品| 成人h动漫精品| av亚洲精华国产精华精华| 丰满少妇在线播放bd日韩电影| 国产福利一区二区三区| 国产精品18久久久久久久久久久久 | 成人av在线电影| 国产成人精品一区二区三区四区 | 一区二区三区国产| 亚洲欧美日韩一区二区| 亚洲三级久久久| 日韩一区欧美一区| 亚洲精品免费电影| 一区二区成人在线| 亚洲成人精品一区| 日韩av一区二区三区四区| 日韩高清不卡在线| 精品在线观看视频| 亚洲韩国一区二区三区| 亚洲视频小说图片| 亚洲综合免费观看高清完整版 | 久久综合一区二区| 久久精品男人的天堂| 国产亚洲精品aa| 综合久久久久久| 亚洲午夜久久久久久久久电影院 | 91蜜桃网址入口| 欧美体内she精高潮| 欧美日本免费一区二区三区| 日韩小视频在线观看专区| 精品久久久久一区| 国产精品国产自产拍高清av王其| 亚洲免费av高清| 日韩成人一区二区三区在线观看| 久久精品国内一区二区三区| 成人激情免费网站| 欧美在线视频日韩| 精品美女被调教视频大全网站| 国产欧美一区二区精品婷婷| 一区二区三区在线免费播放| 捆绑变态av一区二区三区| 国产91精品一区二区| 在线一区二区观看| 精品国产乱码久久久久久浪潮| 国产精品免费视频一区| 天天影视色香欲综合网老头| 国产成人在线视频网址| 在线观看国产精品网站| 精品国产3级a| 亚洲六月丁香色婷婷综合久久| 美女视频免费一区| av午夜精品一区二区三区| 91精品国产欧美一区二区成人| 久久精品一区二区三区不卡 | 日本欧美一区二区在线观看| 粉嫩嫩av羞羞动漫久久久| 欧美视频你懂的| 欧美国产丝袜视频| 亚洲超碰精品一区二区| 高清av一区二区| 91麻豆精品国产综合久久久久久| 国产精品久久夜| 麻豆久久一区二区| 日本高清不卡在线观看| 国产日韩在线不卡| 青青草国产成人99久久| 91影视在线播放| 久久久久久久网| 日日夜夜精品视频天天综合网| 99久久婷婷国产综合精品电影| 欧美成人乱码一区二区三区| 亚洲永久免费av| www.日韩精品| 国产三级精品视频| 另类小说综合欧美亚洲| 欧美三片在线视频观看| 国产精品国产a| 国产东北露脸精品视频| 欧美一区二区三区的| 亚洲一区二区在线播放相泽| av在线这里只有精品| 久久新电视剧免费观看| 麻豆一区二区三区| 911精品产国品一二三产区| 一区二区三区久久| a4yy欧美一区二区三区| 国产欧美日韩一区二区三区在线观看| 美女视频网站久久| 91精品国产欧美日韩| 性久久久久久久久久久久| 色88888久久久久久影院野外 | 亚洲精品视频在线| gogogo免费视频观看亚洲一| 欧美韩日一区二区三区| 国产精品一区二区果冻传媒| 2020国产精品自拍| 国产一区美女在线| xvideos.蜜桃一区二区| 国内精品免费**视频| 日韩免费高清av| 久久国产精品72免费观看| 日韩欧美在线网站| 久久精工是国产品牌吗| 精品少妇一区二区三区视频免付费| 免费人成网站在线观看欧美高清| 91精品国产欧美一区二区成人| 日韩—二三区免费观看av| 91精品国产全国免费观看| 蜜桃视频在线观看一区| 精品国产一二三区| 国产毛片精品一区| 中文字幕久久午夜不卡| 91在线国产观看| 亚洲国产欧美日韩另类综合| 91精品欧美一区二区三区综合在| 日韩av网站免费在线| 欧美成人精品福利| 国产乱子伦视频一区二区三区| 久久精品一级爱片| 91伊人久久大香线蕉| 亚洲一区av在线| 日韩一区二区在线观看视频播放| 另类小说一区二区三区| 国产午夜精品一区二区| 99精品欧美一区| 天堂久久一区二区三区| 亚洲精品在线免费观看视频| 成人丝袜高跟foot| 夜夜揉揉日日人人青青一国产精品| 欧美日韩免费一区二区三区视频| 青青草伊人久久| 国产精品网站一区| 欧美日韩视频一区二区| 蜜臀91精品一区二区三区| 久久精品男人的天堂| 色噜噜狠狠色综合中国| 秋霞av亚洲一区二区三| 国产网红主播福利一区二区| 欧美在线一二三四区| 精品亚洲成a人| 亚洲精品网站在线观看| 日韩欧美国产综合| av电影一区二区| 日韩国产欧美在线播放| 欧美国产精品专区| 欧美年轻男男videosbes| 国产福利精品导航| 亚洲成人自拍一区| 日本一区二区三级电影在线观看| 欧美性欧美巨大黑白大战| 国产一区二区三区精品视频| 一区二区三区精密机械公司| 久久久亚洲国产美女国产盗摄 | 欧美videofree性高清杂交| 成人小视频免费在线观看| 香蕉加勒比综合久久| 国产欧美一二三区| 69p69国产精品| 色综合天天综合网天天看片| 久久国产精品色婷婷| 亚洲综合视频在线观看| 中文字幕国产一区| 日韩精品一区二| 欧美精品v国产精品v日韩精品 |