Lines Matching refs:s
83 void BZ2_bsInitWrite(EState* s) { in BZ2_bsInitWrite() argument
84 s->bsLive = 0; in BZ2_bsInitWrite()
85 s->bsBuff = 0; in BZ2_bsInitWrite()
89 static void bsFinishWrite(EState* s) { in bsFinishWrite() argument
90 while (s->bsLive > 0) { in bsFinishWrite()
91 s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24); in bsFinishWrite()
92 s->numZ++; in bsFinishWrite()
93 s->bsBuff <<= 8; in bsFinishWrite()
94 s->bsLive -= 8; in bsFinishWrite()
101 while (s->bsLive >= 8) { \
102 s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24); \
103 s->numZ++; \
104 s->bsBuff <<= 8; \
105 s->bsLive -= 8; \
110 static __inline__ void bsW(EState* s, Int32 n, UInt32 v) { in bsW() argument
112 s->bsBuff |= (v << (32 - s->bsLive - n)); in bsW()
113 s->bsLive += n; in bsW()
117 static void bsPutUInt32(EState* s, UInt32 u) { in bsPutUInt32() argument
118 bsW(s, 8, (u >> 24) & 0xffL); in bsPutUInt32()
119 bsW(s, 8, (u >> 16) & 0xffL); in bsPutUInt32()
120 bsW(s, 8, (u >> 8) & 0xffL); in bsPutUInt32()
121 bsW(s, 8, u & 0xffL); in bsPutUInt32()
125 static void bsPutUChar(EState* s, UChar c) { in bsPutUChar() argument
126 bsW(s, 8, (UInt32)c); in bsPutUChar()
134 static void makeMaps_e(EState* s) { in makeMaps_e() argument
136 s->nInUse = 0; in makeMaps_e()
138 if (s->inUse[i]) { in makeMaps_e()
139 s->unseqToSeq[i] = s->nInUse; in makeMaps_e()
140 s->nInUse++; in makeMaps_e()
145 static void generateMTFValues(EState* s) { in generateMTFValues() argument
174 UInt32* ptr = s->ptr; in generateMTFValues()
175 UChar* block = s->block; in generateMTFValues()
176 UInt16* mtfv = s->mtfv; in generateMTFValues()
178 makeMaps_e(s); in generateMTFValues()
179 EOB = s->nInUse + 1; in generateMTFValues()
182 s->mtfFreq[i] = 0; in generateMTFValues()
186 for (i = 0; i < s->nInUse; i++) in generateMTFValues()
189 for (i = 0; i < s->nblock; i++) { in generateMTFValues()
194 j += s->nblock; in generateMTFValues()
195 ll_i = s->unseqToSeq[block[j]]; in generateMTFValues()
196 AssertD(ll_i < s->nInUse, "generateMTFValues(2a)"); in generateMTFValues()
208 s->mtfFreq[BZ_RUNB]++; in generateMTFValues()
213 s->mtfFreq[BZ_RUNA]++; in generateMTFValues()
240 s->mtfFreq[j + 1]++; in generateMTFValues()
251 s->mtfFreq[BZ_RUNB]++; in generateMTFValues()
256 s->mtfFreq[BZ_RUNA]++; in generateMTFValues()
267 s->mtfFreq[EOB]++; in generateMTFValues()
269 s->nMTF = wr; in generateMTFValues()
276 static void sendMTFValues(EState* s) { in sendMTFValues() argument
294 UInt16* mtfv = s->mtfv; in sendMTFValues()
296 if (s->verbosity >= 3) in sendMTFValues()
299 s->nblock, in sendMTFValues()
300 s->nMTF, in sendMTFValues()
301 s->nInUse); in sendMTFValues()
303 alphaSize = s->nInUse + 2; in sendMTFValues()
306 s->len[i][j] = BZ_GREATER_ICOST; in sendMTFValues()
309 AssertH(s->nMTF > 0, 3001); in sendMTFValues()
310 if (s->nMTF < 200) in sendMTFValues()
312 else if (s->nMTF < 600) in sendMTFValues()
314 else if (s->nMTF < 1200) in sendMTFValues()
316 else if (s->nMTF < 2400) in sendMTFValues()
326 remF = s->nMTF; in sendMTFValues()
334 aFreq += s->mtfFreq[ge]; in sendMTFValues()
338 aFreq -= s->mtfFreq[ge]; in sendMTFValues()
342 if (s->verbosity >= 3) in sendMTFValues()
349 (100.0 * (float)aFreq) / (float)(s->nMTF)); in sendMTFValues()
353 s->len[nPart - 1][i] = BZ_LESSER_ICOST; in sendMTFValues()
355 s->len[nPart - 1][i] = BZ_GREATER_ICOST; in sendMTFValues()
372 s->rfreq[i][j] = 0; in sendMTFValues()
380 s->len_pack[i][0] = (s->len[1][i] << 16) | s->len[0][i]; in sendMTFValues()
381 s->len_pack[i][1] = (s->len[3][i] << 16) | s->len[2][i]; in sendMTFValues()
382 s->len_pack[i][2] = (s->len[5][i] << 16) | s->len[4][i]; in sendMTFValues()
391 if (gs >= s->nMTF) in sendMTFValues()
394 if (ge >= s->nMTF) in sendMTFValues()
395 ge = s->nMTF - 1; in sendMTFValues()
412 cost01 += s->len_pack[icv][0]; \ in sendMTFValues()
413 cost23 += s->len_pack[icv][1]; \ in sendMTFValues()
414 cost45 += s->len_pack[icv][2]; in sendMTFValues()
481 cost[j] += s->len[j][icv]; in sendMTFValues()
498 s->selector[nSelectors] = bt; in sendMTFValues()
507 #define BZ_ITUR(nn) s->rfreq[bt][mtfv[gs + (nn)]]++ in sendMTFValues()
565 s->rfreq[bt][mtfv[i]]++; in sendMTFValues()
570 if (s->verbosity >= 3) { in sendMTFValues()
583 BZ2_hbMakeCodeLengths(&(s->len[i][0]), &(s->rfreq[i][0]), alphaSize, 17 /*20*/); in sendMTFValues()
595 ll_i = s->selector[i]; in sendMTFValues()
605 s->selectorMtf[i] = j; in sendMTFValues()
614 if (s->len[j][i] > maxLen) in sendMTFValues()
615 maxLen = s->len[j][i]; in sendMTFValues()
616 if (s->len[j][i] < minLen) in sendMTFValues()
617 minLen = s->len[j][i]; in sendMTFValues()
621 BZ2_hbAssignCodes(&(s->code[j][0]), &(s->len[j][0]), minLen, maxLen, alphaSize); in sendMTFValues()
630 if (s->inUse[i * 16 + j]) in sendMTFValues()
634 nBytes = s->numZ; in sendMTFValues()
637 bsW(s, 1, 1); in sendMTFValues()
639 bsW(s, 1, 0); in sendMTFValues()
644 if (s->inUse[i * 16 + j]) in sendMTFValues()
645 bsW(s, 1, 1); in sendMTFValues()
647 bsW(s, 1, 0); in sendMTFValues()
650 if (s->verbosity >= 3) in sendMTFValues()
651 VPrintf1(" bytes: mapping %d, ", s->numZ - nBytes); in sendMTFValues()
655 nBytes = s->numZ; in sendMTFValues()
656 bsW(s, 3, nGroups); in sendMTFValues()
657 bsW(s, 15, nSelectors); in sendMTFValues()
659 for (j = 0; j < s->selectorMtf[i]; j++) in sendMTFValues()
660 bsW(s, 1, 1); in sendMTFValues()
661 bsW(s, 1, 0); in sendMTFValues()
663 if (s->verbosity >= 3) in sendMTFValues()
664 VPrintf1("selectors %d, ", s->numZ - nBytes); in sendMTFValues()
667 nBytes = s->numZ; in sendMTFValues()
670 Int32 curr = s->len[t][0]; in sendMTFValues()
671 bsW(s, 5, curr); in sendMTFValues()
673 while (curr < s->len[t][i]) { in sendMTFValues()
674 bsW(s, 2, 2); in sendMTFValues()
677 while (curr > s->len[t][i]) { in sendMTFValues()
678 bsW(s, 2, 3); in sendMTFValues()
681 bsW(s, 1, 0); in sendMTFValues()
685 if (s->verbosity >= 3) in sendMTFValues()
686 VPrintf1("code lengths %d, ", s->numZ - nBytes); in sendMTFValues()
689 nBytes = s->numZ; in sendMTFValues()
693 if (gs >= s->nMTF) in sendMTFValues()
696 if (ge >= s->nMTF) in sendMTFValues()
697 ge = s->nMTF - 1; in sendMTFValues()
698 AssertH(s->selector[selCtr] < nGroups, 3006); in sendMTFValues()
703 UChar* s_len_sel_selCtr = &(s->len[s->selector[selCtr]][0]); in sendMTFValues()
704 Int32* s_code_sel_selCtr = &(s->code[s->selector[selCtr]][0]); in sendMTFValues()
708 bsW(s, s_len_sel_selCtr[mtfv_i], s_code_sel_selCtr[mtfv_i]) in sendMTFValues()
766 bsW(s, s->len[s->selector[selCtr]][mtfv[i]], s->code[s->selector[selCtr]][mtfv[i]]); in sendMTFValues()
775 if (s->verbosity >= 3) in sendMTFValues()
776 VPrintf1("codes %d\n", s->numZ - nBytes); in sendMTFValues()
780 void BZ2_compressBlock(EState* s, Bool is_last_block) { in BZ2_compressBlock() argument
781 if (s->nblock > 0) { in BZ2_compressBlock()
782 BZ_FINALISE_CRC(s->blockCRC); in BZ2_compressBlock()
783 s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31); in BZ2_compressBlock()
784 s->combinedCRC ^= s->blockCRC; in BZ2_compressBlock()
785 if (s->blockNo > 1) in BZ2_compressBlock()
786 s->numZ = 0; in BZ2_compressBlock()
788 if (s->verbosity >= 2) in BZ2_compressBlock()
791 s->blockNo, in BZ2_compressBlock()
792 s->blockCRC, in BZ2_compressBlock()
793 s->combinedCRC, in BZ2_compressBlock()
794 s->nblock); in BZ2_compressBlock()
796 BZ2_blockSort(s); in BZ2_compressBlock()
799 s->zbits = (UChar*)(&((UChar*)s->arr2)[s->nblock]); in BZ2_compressBlock()
802 if (s->blockNo == 1) { in BZ2_compressBlock()
803 BZ2_bsInitWrite(s); in BZ2_compressBlock()
804 bsPutUChar(s, BZ_HDR_B); in BZ2_compressBlock()
805 bsPutUChar(s, BZ_HDR_Z); in BZ2_compressBlock()
806 bsPutUChar(s, BZ_HDR_h); in BZ2_compressBlock()
807 bsPutUChar(s, (UChar)(BZ_HDR_0 + s->blockSize100k)); in BZ2_compressBlock()
810 if (s->nblock > 0) { in BZ2_compressBlock()
811 bsPutUChar(s, 0x31); in BZ2_compressBlock()
812 bsPutUChar(s, 0x41); in BZ2_compressBlock()
813 bsPutUChar(s, 0x59); in BZ2_compressBlock()
814 bsPutUChar(s, 0x26); in BZ2_compressBlock()
815 bsPutUChar(s, 0x53); in BZ2_compressBlock()
816 bsPutUChar(s, 0x59); in BZ2_compressBlock()
819 bsPutUInt32(s, s->blockCRC); in BZ2_compressBlock()
830 bsW(s, 1, 0); in BZ2_compressBlock()
832 bsW(s, 24, s->origPtr); in BZ2_compressBlock()
833 generateMTFValues(s); in BZ2_compressBlock()
834 sendMTFValues(s); in BZ2_compressBlock()
839 bsPutUChar(s, 0x17); in BZ2_compressBlock()
840 bsPutUChar(s, 0x72); in BZ2_compressBlock()
841 bsPutUChar(s, 0x45); in BZ2_compressBlock()
842 bsPutUChar(s, 0x38); in BZ2_compressBlock()
843 bsPutUChar(s, 0x50); in BZ2_compressBlock()
844 bsPutUChar(s, 0x90); in BZ2_compressBlock()
845 bsPutUInt32(s, s->combinedCRC); in BZ2_compressBlock()
846 if (s->verbosity >= 2) in BZ2_compressBlock()
847 VPrintf1(" final combined CRC = 0x%08x\n ", s->combinedCRC); in BZ2_compressBlock()
848 bsFinishWrite(s); in BZ2_compressBlock()