Lines Matching refs:s

38 void BZ2_bsInitWrite ( EState* s )  in BZ2_bsInitWrite()  argument
40 s->bsLive = 0; in BZ2_bsInitWrite()
41 s->bsBuff = 0; in BZ2_bsInitWrite()
47 void bsFinishWrite ( EState* s ) in bsFinishWrite() argument
49 while (s->bsLive > 0) { in bsFinishWrite()
50 s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24); in bsFinishWrite()
51 s->numZ++; in bsFinishWrite()
52 s->bsBuff <<= 8; in bsFinishWrite()
53 s->bsLive -= 8; in bsFinishWrite()
61 while (s->bsLive >= 8) { \
62 s->zbits[s->numZ] \
63 = (UChar)(s->bsBuff >> 24); \
64 s->numZ++; \
65 s->bsBuff <<= 8; \
66 s->bsLive -= 8; \
74 void bsW ( EState* s, Int32 n, UInt32 v ) in bsW() argument
77 s->bsBuff |= (v << (32 - s->bsLive - n)); in bsW()
78 s->bsLive += n; in bsW()
84 void bsPutUInt32 ( EState* s, UInt32 u ) in bsPutUInt32() argument
86 bsW ( s, 8, (u >> 24) & 0xffL ); in bsPutUInt32()
87 bsW ( s, 8, (u >> 16) & 0xffL ); in bsPutUInt32()
88 bsW ( s, 8, (u >> 8) & 0xffL ); in bsPutUInt32()
89 bsW ( s, 8, u & 0xffL ); in bsPutUInt32()
95 void bsPutUChar ( EState* s, UChar c ) in bsPutUChar() argument
97 bsW( s, 8, (UInt32)c ); in bsPutUChar()
107 void makeMaps_e ( EState* s ) in makeMaps_e() argument
110 s->nInUse = 0; in makeMaps_e()
112 if (s->inUse[i]) { in makeMaps_e()
113 s->unseqToSeq[i] = s->nInUse; in makeMaps_e()
114 s->nInUse++; in makeMaps_e()
121 void generateMTFValues ( EState* s ) in generateMTFValues() argument
151 UInt32* ptr = s->ptr; in generateMTFValues()
152 UChar* block = s->block; in generateMTFValues()
153 UInt16* mtfv = s->mtfv; in generateMTFValues()
155 makeMaps_e ( s ); in generateMTFValues()
156 EOB = s->nInUse+1; in generateMTFValues()
158 for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0; in generateMTFValues()
162 for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i; in generateMTFValues()
164 for (i = 0; i < s->nblock; i++) { in generateMTFValues()
167 j = ptr[i]-1; if (j < 0) j += s->nblock; in generateMTFValues()
168 ll_i = s->unseqToSeq[block[j]]; in generateMTFValues()
169 AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" ); in generateMTFValues()
180 s->mtfFreq[BZ_RUNB]++; in generateMTFValues()
183 s->mtfFreq[BZ_RUNA]++; in generateMTFValues()
207 mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++; in generateMTFValues()
218 s->mtfFreq[BZ_RUNB]++; in generateMTFValues()
221 s->mtfFreq[BZ_RUNA]++; in generateMTFValues()
229 mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++; in generateMTFValues()
231 s->nMTF = wr; in generateMTFValues()
240 void sendMTFValues ( EState* s ) in sendMTFValues() argument
260 UInt16* mtfv = s->mtfv; in sendMTFValues()
262 if (s->verbosity >= 3) in sendMTFValues()
265 s->nblock, s->nMTF, s->nInUse ); in sendMTFValues()
267 alphaSize = s->nInUse+2; in sendMTFValues()
270 s->len[t][v] = BZ_GREATER_ICOST; in sendMTFValues()
273 AssertH ( s->nMTF > 0, 3001 ); in sendMTFValues()
274 if (s->nMTF < 200) nGroups = 2; else in sendMTFValues()
275 if (s->nMTF < 600) nGroups = 3; else in sendMTFValues()
276 if (s->nMTF < 1200) nGroups = 4; else in sendMTFValues()
277 if (s->nMTF < 2400) nGroups = 5; else in sendMTFValues()
285 remF = s->nMTF; in sendMTFValues()
293 aFreq += s->mtfFreq[ge]; in sendMTFValues()
299 aFreq -= s->mtfFreq[ge]; in sendMTFValues()
303 if (s->verbosity >= 3) in sendMTFValues()
307 (100.0 * (float)aFreq) / (float)(s->nMTF) ); in sendMTFValues()
311 s->len[nPart-1][v] = BZ_LESSER_ICOST; else in sendMTFValues()
312 s->len[nPart-1][v] = BZ_GREATER_ICOST; in sendMTFValues()
329 s->rfreq[t][v] = 0; in sendMTFValues()
337 s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v]; in sendMTFValues()
338 s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v]; in sendMTFValues()
339 s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v]; in sendMTFValues()
349 if (gs >= s->nMTF) break; in sendMTFValues()
351 if (ge >= s->nMTF) ge = s->nMTF-1; in sendMTFValues()
367 cost01 += s->len_pack[icv][0]; \ in sendMTFValues()
368 cost23 += s->len_pack[icv][1]; \ in sendMTFValues()
369 cost45 += s->len_pack[icv][2]; \ in sendMTFValues()
392 for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv]; in sendMTFValues()
405 s->selector[nSelectors] = bt; in sendMTFValues()
414 # define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++ in sendMTFValues()
432 s->rfreq[bt][ mtfv[i] ]++; in sendMTFValues()
437 if (s->verbosity >= 3) { in sendMTFValues()
451 BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]), in sendMTFValues()
467 ll_i = s->selector[i]; in sendMTFValues()
477 s->selectorMtf[i] = j; in sendMTFValues()
486 if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; in sendMTFValues()
487 if (s->len[t][i] < minLen) minLen = s->len[t][i]; in sendMTFValues()
491 BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]), in sendMTFValues()
501 if (s->inUse[i * 16 + j]) inUse16[i] = True; in sendMTFValues()
504 nBytes = s->numZ; in sendMTFValues()
506 if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0); in sendMTFValues()
511 if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0); in sendMTFValues()
514 if (s->verbosity >= 3) in sendMTFValues()
515 VPrintf1( " bytes: mapping %d, ", s->numZ-nBytes ); in sendMTFValues()
519 nBytes = s->numZ; in sendMTFValues()
520 bsW ( s, 3, nGroups ); in sendMTFValues()
521 bsW ( s, 15, nSelectors ); in sendMTFValues()
523 for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1); in sendMTFValues()
524 bsW(s,1,0); in sendMTFValues()
526 if (s->verbosity >= 3) in sendMTFValues()
527 VPrintf1( "selectors %d, ", s->numZ-nBytes ); in sendMTFValues()
530 nBytes = s->numZ; in sendMTFValues()
533 Int32 curr = s->len[t][0]; in sendMTFValues()
534 bsW ( s, 5, curr ); in sendMTFValues()
536 while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ }; in sendMTFValues()
537 while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ }; in sendMTFValues()
538 bsW ( s, 1, 0 ); in sendMTFValues()
542 if (s->verbosity >= 3) in sendMTFValues()
543 VPrintf1 ( "code lengths %d, ", s->numZ-nBytes ); in sendMTFValues()
546 nBytes = s->numZ; in sendMTFValues()
550 if (gs >= s->nMTF) break; in sendMTFValues()
552 if (ge >= s->nMTF) ge = s->nMTF-1; in sendMTFValues()
553 AssertH ( s->selector[selCtr] < nGroups, 3006 ); in sendMTFValues()
559 = &(s->len[s->selector[selCtr]][0]); in sendMTFValues()
561 = &(s->code[s->selector[selCtr]][0]); in sendMTFValues()
565 bsW ( s, \ in sendMTFValues()
585 bsW ( s, in sendMTFValues()
586 s->len [s->selector[selCtr]] [mtfv[i]], in sendMTFValues()
587 s->code [s->selector[selCtr]] [mtfv[i]] ); in sendMTFValues()
597 if (s->verbosity >= 3) in sendMTFValues()
598 VPrintf1( "codes %d\n", s->numZ-nBytes ); in sendMTFValues()
603 void BZ2_compressBlock ( EState* s, Bool is_last_block ) in BZ2_compressBlock() argument
605 if (s->nblock > 0) { in BZ2_compressBlock()
607 BZ_FINALISE_CRC ( s->blockCRC ); in BZ2_compressBlock()
608 s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31); in BZ2_compressBlock()
609 s->combinedCRC ^= s->blockCRC; in BZ2_compressBlock()
610 if (s->blockNo > 1) s->numZ = 0; in BZ2_compressBlock()
612 if (s->verbosity >= 2) in BZ2_compressBlock()
615 s->blockNo, s->blockCRC, s->combinedCRC, s->nblock ); in BZ2_compressBlock()
617 BZ2_blockSort ( s ); in BZ2_compressBlock()
620 s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]); in BZ2_compressBlock()
623 if (s->blockNo == 1) { in BZ2_compressBlock()
624 BZ2_bsInitWrite ( s ); in BZ2_compressBlock()
625 bsPutUChar ( s, BZ_HDR_B ); in BZ2_compressBlock()
626 bsPutUChar ( s, BZ_HDR_Z ); in BZ2_compressBlock()
627 bsPutUChar ( s, BZ_HDR_h ); in BZ2_compressBlock()
628 bsPutUChar ( s, (UChar)(BZ_HDR_0 + s->blockSize100k) ); in BZ2_compressBlock()
631 if (s->nblock > 0) { in BZ2_compressBlock()
633 bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 ); in BZ2_compressBlock()
634 bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 ); in BZ2_compressBlock()
635 bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 ); in BZ2_compressBlock()
638 bsPutUInt32 ( s, s->blockCRC ); in BZ2_compressBlock()
649 bsW(s,1,0); in BZ2_compressBlock()
651 bsW ( s, 24, s->origPtr ); in BZ2_compressBlock()
652 generateMTFValues ( s ); in BZ2_compressBlock()
653 sendMTFValues ( s ); in BZ2_compressBlock()
660 bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 ); in BZ2_compressBlock()
661 bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 ); in BZ2_compressBlock()
662 bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 ); in BZ2_compressBlock()
663 bsPutUInt32 ( s, s->combinedCRC ); in BZ2_compressBlock()
664 if (s->verbosity >= 2) in BZ2_compressBlock()
665 VPrintf1( " final combined CRC = 0x%08x\n ", s->combinedCRC ); in BZ2_compressBlock()
666 bsFinishWrite ( s ); in BZ2_compressBlock()