Lines Matching refs:s

77 void BZ2_bsInitWrite ( EState* s )  in BZ2_bsInitWrite()  argument
79 s->bsLive = 0; in BZ2_bsInitWrite()
80 s->bsBuff = 0; in BZ2_bsInitWrite()
86 void bsFinishWrite ( EState* s ) in bsFinishWrite() argument
88 while (s->bsLive > 0) { in bsFinishWrite()
89 s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24); in bsFinishWrite()
90 s->numZ++; in bsFinishWrite()
91 s->bsBuff <<= 8; in bsFinishWrite()
92 s->bsLive -= 8; in bsFinishWrite()
100 while (s->bsLive >= 8) { \
101 s->zbits[s->numZ] \
102 = (UChar)(s->bsBuff >> 24); \
103 s->numZ++; \
104 s->bsBuff <<= 8; \
105 s->bsLive -= 8; \
113 void bsW ( EState* s, Int32 n, UInt32 v ) in bsW() argument
116 s->bsBuff |= (v << (32 - s->bsLive - n)); in bsW()
117 s->bsLive += n; in bsW()
123 void bsPutUInt32 ( EState* s, UInt32 u ) in bsPutUInt32() argument
125 bsW ( s, 8, (u >> 24) & 0xffL ); in bsPutUInt32()
126 bsW ( s, 8, (u >> 16) & 0xffL ); in bsPutUInt32()
127 bsW ( s, 8, (u >> 8) & 0xffL ); in bsPutUInt32()
128 bsW ( s, 8, u & 0xffL ); in bsPutUInt32()
134 void bsPutUChar ( EState* s, UChar c ) in bsPutUChar() argument
136 bsW( s, 8, (UInt32)c ); in bsPutUChar()
146 void makeMaps_e ( EState* s ) in makeMaps_e() argument
149 s->nInUse = 0; in makeMaps_e()
151 if (s->inUse[i]) { in makeMaps_e()
152 s->unseqToSeq[i] = s->nInUse; in makeMaps_e()
153 s->nInUse++; in makeMaps_e()
160 void generateMTFValues ( EState* s ) in generateMTFValues() argument
190 UInt32* ptr = s->ptr; in generateMTFValues()
191 UChar* block = s->block; in generateMTFValues()
192 UInt16* mtfv = s->mtfv; in generateMTFValues()
194 makeMaps_e ( s ); in generateMTFValues()
195 EOB = s->nInUse+1; in generateMTFValues()
197 for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0; in generateMTFValues()
201 for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i; in generateMTFValues()
203 for (i = 0; i < s->nblock; i++) { in generateMTFValues()
206 j = ptr[i]-1; if (j < 0) j += s->nblock; in generateMTFValues()
207 ll_i = s->unseqToSeq[block[j]]; in generateMTFValues()
208 AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" ); in generateMTFValues()
219 s->mtfFreq[BZ_RUNB]++; in generateMTFValues()
222 s->mtfFreq[BZ_RUNA]++; in generateMTFValues()
246 mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++; in generateMTFValues()
257 s->mtfFreq[BZ_RUNB]++; in generateMTFValues()
260 s->mtfFreq[BZ_RUNA]++; in generateMTFValues()
268 mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++; in generateMTFValues()
270 s->nMTF = wr; in generateMTFValues()
279 void sendMTFValues ( EState* s ) in sendMTFValues() argument
300 UInt16* mtfv = s->mtfv; in sendMTFValues()
302 if (s->verbosity >= 3) in sendMTFValues()
305 s->nblock, s->nMTF, s->nInUse ); in sendMTFValues()
307 alphaSize = s->nInUse+2; in sendMTFValues()
310 s->len[t][v] = BZ_GREATER_ICOST; in sendMTFValues()
313 AssertH ( s->nMTF > 0, 3001 ); in sendMTFValues()
314 if (s->nMTF < 200) nGroups = 2; else in sendMTFValues()
315 if (s->nMTF < 600) nGroups = 3; else in sendMTFValues()
316 if (s->nMTF < 1200) nGroups = 4; else in sendMTFValues()
317 if (s->nMTF < 2400) nGroups = 5; else in sendMTFValues()
325 remF = s->nMTF; in sendMTFValues()
333 aFreq += s->mtfFreq[ge]; in sendMTFValues()
339 aFreq -= s->mtfFreq[ge]; in sendMTFValues()
343 if (s->verbosity >= 3) in sendMTFValues()
347 (100.0 * (float)aFreq) / (float)(s->nMTF) ); in sendMTFValues()
351 s->len[nPart-1][v] = BZ_LESSER_ICOST; else in sendMTFValues()
352 s->len[nPart-1][v] = BZ_GREATER_ICOST; in sendMTFValues()
369 s->rfreq[t][v] = 0; in sendMTFValues()
377 s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v]; in sendMTFValues()
378 s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v]; in sendMTFValues()
379 s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v]; in sendMTFValues()
389 if (gs >= s->nMTF) break; in sendMTFValues()
391 if (ge >= s->nMTF) ge = s->nMTF-1; in sendMTFValues()
407 cost01 += s->len_pack[icv][0]; \ in sendMTFValues()
408 cost23 += s->len_pack[icv][1]; \ in sendMTFValues()
409 cost45 += s->len_pack[icv][2]; \ in sendMTFValues()
432 for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv]; in sendMTFValues()
445 s->selector[nSelectors] = bt; in sendMTFValues()
454 # define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++ in sendMTFValues()
472 s->rfreq[bt][ mtfv[i] ]++; in sendMTFValues()
477 if (s->verbosity >= 3) { in sendMTFValues()
491 BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]), in sendMTFValues()
507 ll_i = s->selector[i]; in sendMTFValues()
517 s->selectorMtf[i] = j; in sendMTFValues()
526 if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; in sendMTFValues()
527 if (s->len[t][i] < minLen) minLen = s->len[t][i]; in sendMTFValues()
531 BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]), in sendMTFValues()
541 if (s->inUse[i * 16 + j]) inUse16[i] = True; in sendMTFValues()
544 nBytes = s->numZ; in sendMTFValues()
546 if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0); in sendMTFValues()
551 if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0); in sendMTFValues()
554 if (s->verbosity >= 3) in sendMTFValues()
555 VPrintf1( " bytes: mapping %d, ", s->numZ-nBytes ); in sendMTFValues()
559 nBytes = s->numZ; in sendMTFValues()
560 bsW ( s, 3, nGroups ); in sendMTFValues()
561 bsW ( s, 15, nSelectors ); in sendMTFValues()
563 for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1); in sendMTFValues()
564 bsW(s,1,0); in sendMTFValues()
566 if (s->verbosity >= 3) in sendMTFValues()
567 VPrintf1( "selectors %d, ", s->numZ-nBytes ); in sendMTFValues()
570 nBytes = s->numZ; in sendMTFValues()
573 Int32 curr = s->len[t][0]; in sendMTFValues()
574 bsW ( s, 5, curr ); in sendMTFValues()
576 while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ }; in sendMTFValues()
577 while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ }; in sendMTFValues()
578 bsW ( s, 1, 0 ); in sendMTFValues()
582 if (s->verbosity >= 3) in sendMTFValues()
583 VPrintf1 ( "code lengths %d, ", s->numZ-nBytes ); in sendMTFValues()
586 nBytes = s->numZ; in sendMTFValues()
590 if (gs >= s->nMTF) break; in sendMTFValues()
592 if (ge >= s->nMTF) ge = s->nMTF-1; in sendMTFValues()
593 AssertH ( s->selector[selCtr] < nGroups, 3006 ); in sendMTFValues()
599 = &(s->len[s->selector[selCtr]][0]); in sendMTFValues()
601 = &(s->code[s->selector[selCtr]][0]); in sendMTFValues()
605 bsW ( s, \ in sendMTFValues()
625 bsW ( s, in sendMTFValues()
626 s->len [s->selector[selCtr]] [mtfv[i]], in sendMTFValues()
627 s->code [s->selector[selCtr]] [mtfv[i]] ); in sendMTFValues()
637 if (s->verbosity >= 3) in sendMTFValues()
638 VPrintf1( "codes %d\n", s->numZ-nBytes ); in sendMTFValues()
643 void BZ2_compressBlock ( EState* s, Bool is_last_block ) in BZ2_compressBlock() argument
645 if (s->nblock > 0) { in BZ2_compressBlock()
647 BZ_FINALISE_CRC ( s->blockCRC ); in BZ2_compressBlock()
648 s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31); in BZ2_compressBlock()
649 s->combinedCRC ^= s->blockCRC; in BZ2_compressBlock()
650 if (s->blockNo > 1) s->numZ = 0; in BZ2_compressBlock()
652 if (s->verbosity >= 2) in BZ2_compressBlock()
655 s->blockNo, s->blockCRC, s->combinedCRC, s->nblock ); in BZ2_compressBlock()
657 BZ2_blockSort ( s ); in BZ2_compressBlock()
660 s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]); in BZ2_compressBlock()
663 if (s->blockNo == 1) { in BZ2_compressBlock()
664 BZ2_bsInitWrite ( s ); in BZ2_compressBlock()
665 bsPutUChar ( s, BZ_HDR_B ); in BZ2_compressBlock()
666 bsPutUChar ( s, BZ_HDR_Z ); in BZ2_compressBlock()
667 bsPutUChar ( s, BZ_HDR_h ); in BZ2_compressBlock()
668 bsPutUChar ( s, (UChar)(BZ_HDR_0 + s->blockSize100k) ); in BZ2_compressBlock()
671 if (s->nblock > 0) { in BZ2_compressBlock()
673 bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 ); in BZ2_compressBlock()
674 bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 ); in BZ2_compressBlock()
675 bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 ); in BZ2_compressBlock()
678 bsPutUInt32 ( s, s->blockCRC ); in BZ2_compressBlock()
689 bsW(s,1,0); in BZ2_compressBlock()
691 bsW ( s, 24, s->origPtr ); in BZ2_compressBlock()
692 generateMTFValues ( s ); in BZ2_compressBlock()
693 sendMTFValues ( s ); in BZ2_compressBlock()
700 bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 ); in BZ2_compressBlock()
701 bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 ); in BZ2_compressBlock()
702 bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 ); in BZ2_compressBlock()
703 bsPutUInt32 ( s, s->combinedCRC ); in BZ2_compressBlock()
704 if (s->verbosity >= 2) in BZ2_compressBlock()
705 VPrintf1( " final combined CRC = 0x%08x\n ", s->combinedCRC ); in BZ2_compressBlock()
706 bsFinishWrite ( s ); in BZ2_compressBlock()