@gmod/cram 6.0.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/craiIndex.js +2 -2
  2. package/dist/craiIndex.js.map +1 -1
  3. package/dist/cram-bundle.js +1 -1
  4. package/dist/cramFile/file.d.ts +2 -2
  5. package/dist/cramFile/file.js +9 -13
  6. package/dist/cramFile/file.js.map +1 -1
  7. package/dist/htscodecs/index.d.ts +1 -5
  8. package/dist/htscodecs/index.js +11 -72
  9. package/dist/htscodecs/index.js.map +1 -1
  10. package/dist/htscodecs-wasm.d.ts +7 -0
  11. package/dist/htscodecs-wasm.js +183 -0
  12. package/dist/htscodecs-wasm.js.map +1 -0
  13. package/dist/unzip.d.ts +1 -1
  14. package/dist/unzip.js +3 -3
  15. package/dist/unzip.js.map +1 -1
  16. package/dist/wasm/htscodecs.d.ts +5 -0
  17. package/dist/wasm/htscodecs.js +0 -0
  18. package/dist/wasm/htscodecs.js.map +1 -0
  19. package/esm/craiIndex.js +2 -2
  20. package/esm/craiIndex.js.map +1 -1
  21. package/esm/cramFile/file.d.ts +2 -2
  22. package/esm/cramFile/file.js +7 -11
  23. package/esm/cramFile/file.js.map +1 -1
  24. package/esm/htscodecs/index.d.ts +1 -5
  25. package/esm/htscodecs/index.js +3 -31
  26. package/esm/htscodecs/index.js.map +1 -1
  27. package/esm/htscodecs-wasm.d.ts +7 -0
  28. package/esm/htscodecs-wasm.js +171 -0
  29. package/esm/htscodecs-wasm.js.map +1 -0
  30. package/esm/unzip.d.ts +1 -1
  31. package/esm/unzip.js +3 -3
  32. package/esm/unzip.js.map +1 -1
  33. package/esm/wasm/htscodecs.d.ts +5 -0
  34. package/esm/wasm/htscodecs.js +0 -0
  35. package/esm/wasm/htscodecs.js.map +1 -0
  36. package/package.json +9 -9
  37. package/src/craiIndex.ts +4 -2
  38. package/src/cramFile/file.ts +7 -11
  39. package/src/htscodecs/index.ts +12 -38
  40. package/src/htscodecs-wasm.ts +210 -0
  41. package/src/unzip.ts +3 -3
  42. package/src/wasm/htscodecs.d.ts +58 -0
  43. package/src/wasm/htscodecs.js +0 -0
  44. package/dist/htscodecs/arith_gen.d.ts +0 -16
  45. package/dist/htscodecs/arith_gen.js +0 -323
  46. package/dist/htscodecs/arith_gen.js.map +0 -1
  47. package/dist/htscodecs/arith_sh.d.ts +0 -9
  48. package/dist/htscodecs/arith_sh.js +0 -134
  49. package/dist/htscodecs/arith_sh.js.map +0 -1
  50. package/dist/htscodecs/byte_model.d.ts +0 -6
  51. package/dist/htscodecs/byte_model.js +0 -121
  52. package/dist/htscodecs/byte_model.js.map +0 -1
  53. package/dist/htscodecs/fqzcomp.d.ts +0 -1
  54. package/dist/htscodecs/fqzcomp.js +0 -346
  55. package/dist/htscodecs/fqzcomp.js.map +0 -1
  56. package/dist/htscodecs/iostream.d.ts +0 -16
  57. package/dist/htscodecs/iostream.js +0 -148
  58. package/dist/htscodecs/iostream.js.map +0 -1
  59. package/dist/htscodecs/rans.d.ts +0 -1
  60. package/dist/htscodecs/rans.js +0 -224
  61. package/dist/htscodecs/rans.js.map +0 -1
  62. package/dist/htscodecs/rans4x16.d.ts +0 -1
  63. package/dist/htscodecs/rans4x16.js +0 -445
  64. package/dist/htscodecs/rans4x16.js.map +0 -1
  65. package/dist/htscodecs/tok3.d.ts +0 -1
  66. package/dist/htscodecs/tok3.js +0 -206
  67. package/dist/htscodecs/tok3.js.map +0 -1
  68. package/dist/rans/constants.d.ts +0 -4
  69. package/dist/rans/constants.js +0 -10
  70. package/dist/rans/constants.js.map +0 -1
  71. package/dist/rans/d04.d.ts +0 -1
  72. package/dist/rans/d04.js +0 -100
  73. package/dist/rans/d04.js.map +0 -1
  74. package/dist/rans/d14.d.ts +0 -1
  75. package/dist/rans/d14.js +0 -96
  76. package/dist/rans/d14.js.map +0 -1
  77. package/dist/rans/decoding.d.ts +0 -27
  78. package/dist/rans/decoding.js +0 -119
  79. package/dist/rans/decoding.js.map +0 -1
  80. package/dist/rans/frequencies.d.ts +0 -2
  81. package/dist/rans/frequencies.js +0 -112
  82. package/dist/rans/frequencies.js.map +0 -1
  83. package/dist/rans/index.d.ts +0 -1
  84. package/dist/rans/index.js +0 -198
  85. package/dist/rans/index.js.map +0 -1
  86. package/dist/seek-bzip/bitreader.d.ts +0 -27
  87. package/dist/seek-bzip/bitreader.js +0 -101
  88. package/dist/seek-bzip/bitreader.js.map +0 -1
  89. package/dist/seek-bzip/crc32.d.ts +0 -26
  90. package/dist/seek-bzip/crc32.js +0 -115
  91. package/dist/seek-bzip/crc32.js.map +0 -1
  92. package/dist/seek-bzip/index.d.ts +0 -9
  93. package/dist/seek-bzip/index.js +0 -585
  94. package/dist/seek-bzip/index.js.map +0 -1
  95. package/dist/seek-bzip/stream.d.ts +0 -8
  96. package/dist/seek-bzip/stream.js +0 -37
  97. package/dist/seek-bzip/stream.js.map +0 -1
  98. package/dist/seek-bzip/toHex.d.ts +0 -1
  99. package/dist/seek-bzip/toHex.js +0 -36
  100. package/dist/seek-bzip/toHex.js.map +0 -1
  101. package/esm/htscodecs/arith_gen.d.ts +0 -16
  102. package/esm/htscodecs/arith_gen.js +0 -317
  103. package/esm/htscodecs/arith_gen.js.map +0 -1
  104. package/esm/htscodecs/arith_sh.d.ts +0 -9
  105. package/esm/htscodecs/arith_sh.js +0 -131
  106. package/esm/htscodecs/arith_sh.js.map +0 -1
  107. package/esm/htscodecs/byte_model.d.ts +0 -6
  108. package/esm/htscodecs/byte_model.js +0 -118
  109. package/esm/htscodecs/byte_model.js.map +0 -1
  110. package/esm/htscodecs/fqzcomp.d.ts +0 -1
  111. package/esm/htscodecs/fqzcomp.js +0 -340
  112. package/esm/htscodecs/fqzcomp.js.map +0 -1
  113. package/esm/htscodecs/iostream.d.ts +0 -16
  114. package/esm/htscodecs/iostream.js +0 -145
  115. package/esm/htscodecs/iostream.js.map +0 -1
  116. package/esm/htscodecs/rans.d.ts +0 -1
  117. package/esm/htscodecs/rans.js +0 -218
  118. package/esm/htscodecs/rans.js.map +0 -1
  119. package/esm/htscodecs/rans4x16.d.ts +0 -1
  120. package/esm/htscodecs/rans4x16.js +0 -439
  121. package/esm/htscodecs/rans4x16.js.map +0 -1
  122. package/esm/htscodecs/tok3.d.ts +0 -1
  123. package/esm/htscodecs/tok3.js +0 -167
  124. package/esm/htscodecs/tok3.js.map +0 -1
  125. package/esm/rans/constants.d.ts +0 -4
  126. package/esm/rans/constants.js +0 -5
  127. package/esm/rans/constants.js.map +0 -1
  128. package/esm/rans/d04.d.ts +0 -1
  129. package/esm/rans/d04.js +0 -94
  130. package/esm/rans/d04.js.map +0 -1
  131. package/esm/rans/d14.d.ts +0 -1
  132. package/esm/rans/d14.js +0 -93
  133. package/esm/rans/d14.js.map +0 -1
  134. package/esm/rans/decoding.d.ts +0 -27
  135. package/esm/rans/decoding.js +0 -117
  136. package/esm/rans/decoding.js.map +0 -1
  137. package/esm/rans/frequencies.d.ts +0 -2
  138. package/esm/rans/frequencies.js +0 -105
  139. package/esm/rans/frequencies.js.map +0 -1
  140. package/esm/rans/index.d.ts +0 -1
  141. package/esm/rans/index.js +0 -192
  142. package/esm/rans/index.js.map +0 -1
  143. package/esm/seek-bzip/bitreader.d.ts +0 -27
  144. package/esm/seek-bzip/bitreader.js +0 -98
  145. package/esm/seek-bzip/bitreader.js.map +0 -1
  146. package/esm/seek-bzip/crc32.d.ts +0 -26
  147. package/esm/seek-bzip/crc32.js +0 -112
  148. package/esm/seek-bzip/crc32.js.map +0 -1
  149. package/esm/seek-bzip/index.d.ts +0 -9
  150. package/esm/seek-bzip/index.js +0 -579
  151. package/esm/seek-bzip/index.js.map +0 -1
  152. package/esm/seek-bzip/stream.d.ts +0 -8
  153. package/esm/seek-bzip/stream.js +0 -34
  154. package/esm/seek-bzip/stream.js.map +0 -1
  155. package/esm/seek-bzip/toHex.d.ts +0 -1
  156. package/esm/seek-bzip/toHex.js +0 -33
  157. package/esm/seek-bzip/toHex.js.map +0 -1
  158. package/src/htscodecs/arith_gen.ts +0 -371
  159. package/src/htscodecs/arith_sh.ts +0 -146
  160. package/src/htscodecs/byte_model.ts +0 -136
  161. package/src/htscodecs/fqzcomp.ts +0 -394
  162. package/src/htscodecs/iostream.ts +0 -159
  163. package/src/htscodecs/rans.ts +0 -250
  164. package/src/htscodecs/rans4x16.ts +0 -521
  165. package/src/htscodecs/tok3.ts +0 -197
  166. package/src/rans/README.md +0 -1
  167. package/src/rans/constants.ts +0 -5
  168. package/src/rans/d04.ts +0 -112
  169. package/src/rans/d14.ts +0 -106
  170. package/src/rans/decoding.ts +0 -138
  171. package/src/rans/frequencies.ts +0 -115
  172. package/src/rans/index.ts +0 -245
  173. package/src/seek-bzip/README.md +0 -6
  174. package/src/seek-bzip/bitreader.ts +0 -113
  175. package/src/seek-bzip/crc32.ts +0 -121
  176. package/src/seek-bzip/index.ts +0 -615
  177. package/src/seek-bzip/stream.ts +0 -33
  178. package/src/seek-bzip/toHex.ts +0 -33
package/src/rans/d04.ts DELETED
@@ -1,112 +0,0 @@
1
- // @ts-nocheck
2
- import { CramMalformedError } from '../errors.ts'
3
- import { TF_SHIFT } from './constants.ts'
4
- import Decoding from './decoding.ts'
5
-
6
- // Inline constants for performance
7
- const RANS_BYTE_L = 8388608 // 1 << 23
8
- const MASK = 4095 // (1 << 12) - 1
9
-
10
- export default function uncompress(
11
- /* ByteBuffer */ input,
12
- /* Decoding.AriDecoder */ D,
13
- /* Decoding.Symbol[] */ syms,
14
- /* ByteBuffer */ out,
15
- ) {
16
- let rans0 = input.getInt()
17
- let rans1 = input.getInt()
18
- let rans2 = input.getInt()
19
- let rans3 = input.getInt()
20
-
21
- const /* int */ outputSize = out.remaining()
22
- const /* int */ outputEnd = outputSize & ~3
23
- const D_R = D.R
24
-
25
- for (let i = 0; i < outputEnd; i += 4) {
26
- const /* byte */ c0 = D_R[rans0 & MASK]
27
- const /* byte */ c1 = D_R[rans1 & MASK]
28
- const /* byte */ c2 = D_R[rans2 & MASK]
29
- const /* byte */ c3 = D_R[rans3 & MASK]
30
-
31
- // Inline putAt to avoid function call overhead
32
- out._buffer[i] = c0
33
- out._buffer[i + 1] = c1
34
- out._buffer[i + 2] = c2
35
- out._buffer[i + 3] = c3
36
-
37
- const sym0 = syms[0xff & c0]
38
- const sym1 = syms[0xff & c1]
39
- const sym2 = syms[0xff & c2]
40
- const sym3 = syms[0xff & c3]
41
-
42
- rans0 = sym0.freq * (rans0 >> TF_SHIFT) + (rans0 & MASK) - sym0.start
43
- rans1 = sym1.freq * (rans1 >> TF_SHIFT) + (rans1 & MASK) - sym1.start
44
- rans2 = sym2.freq * (rans2 >> TF_SHIFT) + (rans2 & MASK) - sym2.start
45
- rans3 = sym3.freq * (rans3 >> TF_SHIFT) + (rans3 & MASK) - sym3.start
46
-
47
- // Inline renormalize to avoid function call overhead
48
- if (rans0 < RANS_BYTE_L) {
49
- do {
50
- rans0 = (rans0 << 8) | (0xff & input.get())
51
- } while (rans0 < RANS_BYTE_L)
52
- }
53
- if (rans1 < RANS_BYTE_L) {
54
- do {
55
- rans1 = (rans1 << 8) | (0xff & input.get())
56
- } while (rans1 < RANS_BYTE_L)
57
- }
58
- if (rans2 < RANS_BYTE_L) {
59
- do {
60
- rans2 = (rans2 << 8) | (0xff & input.get())
61
- } while (rans2 < RANS_BYTE_L)
62
- }
63
- if (rans3 < RANS_BYTE_L) {
64
- do {
65
- rans3 = (rans3 << 8) | (0xff & input.get())
66
- } while (rans3 < RANS_BYTE_L)
67
- }
68
- }
69
-
70
- out.setPosition(outputEnd)
71
- let /* byte */ c: number
72
- switch (outputSize & 3) {
73
- case 0:
74
- break
75
- case 1:
76
- c = D.R[Decoding.get(rans0, TF_SHIFT)]
77
- Decoding.advanceSymbol(rans0, input, syms[0xff & c], TF_SHIFT)
78
- out.put(c)
79
- break
80
-
81
- case 2:
82
- c = D.R[Decoding.get(rans0, TF_SHIFT)]
83
- Decoding.advanceSymbol(rans0, input, syms[0xff & c], TF_SHIFT)
84
- out.put(c)
85
-
86
- c = D.R[Decoding.get(rans1, TF_SHIFT)]
87
- Decoding.advanceSymbol(rans1, input, syms[0xff & c], TF_SHIFT)
88
- out.put(c)
89
- break
90
-
91
- case 3:
92
- c = D.R[Decoding.get(rans0, TF_SHIFT)]
93
- Decoding.advanceSymbol(rans0, input, syms[0xff & c], TF_SHIFT)
94
- out.put(c)
95
-
96
- c = D.R[Decoding.get(rans1, TF_SHIFT)]
97
- Decoding.advanceSymbol(rans1, input, syms[0xff & c], TF_SHIFT)
98
- out.put(c)
99
-
100
- c = D.R[Decoding.get(rans2, TF_SHIFT)]
101
- Decoding.advanceSymbol(rans2, input, syms[0xff & c], TF_SHIFT)
102
- out.put(c)
103
- break
104
-
105
- default:
106
- throw new CramMalformedError(
107
- 'invalid output size encountered during rANS decoding',
108
- )
109
- }
110
-
111
- out.setPosition(0)
112
- }
package/src/rans/d14.ts DELETED
@@ -1,106 +0,0 @@
1
- // @ts-nocheck
2
- import { TF_SHIFT } from './constants.ts'
3
-
4
- // Inline constants for performance
5
- const RANS_BYTE_L = 8388608 // 1 << 23
6
- const MASK = 4095 // (1 << 12) - 1
7
-
8
- export default function uncompress(
9
- /* ByteBuffer */ input,
10
- /* ByteBuffer */ output,
11
- /* Decoding.AriDecoder[] */ D,
12
- /* Decoding.Symbol[][] */ syms,
13
- ) {
14
- const /* int */ outputSize = output.remaining()
15
- let rans0 = input.getInt()
16
- let rans1 = input.getInt()
17
- let rans2 = input.getInt()
18
- let rans7 = input.getInt()
19
-
20
- const /* int */ isz4 = outputSize >> 2
21
- let /* int */ i0 = 0
22
- let /* int */ i1 = isz4
23
- let /* int */ i2 = 2 * isz4
24
- let /* int */ i7 = 3 * isz4
25
- let /* int */ l0 = 0
26
- let /* int */ l1 = 0
27
- let /* int */ l2 = 0
28
- let /* int */ l7 = 0
29
-
30
- for (; i0 < isz4; i0 += 1, i1 += 1, i2 += 1, i7 += 1) {
31
- const D_l0_R = D[l0].R
32
- const D_l1_R = D[l1].R
33
- const D_l2_R = D[l2].R
34
- const D_l7_R = D[l7].R
35
-
36
- const /* int */ c0 = 0xff & D_l0_R[rans0 & MASK]
37
- const /* int */ c1 = 0xff & D_l1_R[rans1 & MASK]
38
- const /* int */ c2 = 0xff & D_l2_R[rans2 & MASK]
39
- const /* int */ c7 = 0xff & D_l7_R[rans7 & MASK]
40
-
41
- // Inline putAt to avoid function call overhead
42
- output._buffer[i0] = c0
43
- output._buffer[i1] = c1
44
- output._buffer[i2] = c2
45
- output._buffer[i7] = c7
46
-
47
- const sym_l0_c0 = syms[l0][c0]
48
- const sym_l1_c1 = syms[l1][c1]
49
- const sym_l2_c2 = syms[l2][c2]
50
- const sym_l7_c7 = syms[l7][c7]
51
-
52
- rans0 =
53
- sym_l0_c0.freq * (rans0 >> TF_SHIFT) + (rans0 & MASK) - sym_l0_c0.start
54
- rans1 =
55
- sym_l1_c1.freq * (rans1 >> TF_SHIFT) + (rans1 & MASK) - sym_l1_c1.start
56
- rans2 =
57
- sym_l2_c2.freq * (rans2 >> TF_SHIFT) + (rans2 & MASK) - sym_l2_c2.start
58
- rans7 =
59
- sym_l7_c7.freq * (rans7 >> TF_SHIFT) + (rans7 & MASK) - sym_l7_c7.start
60
-
61
- // Inline renormalize to avoid function call overhead
62
- if (rans0 < RANS_BYTE_L) {
63
- do {
64
- rans0 = (rans0 << 8) | (0xff & input.get())
65
- } while (rans0 < RANS_BYTE_L)
66
- }
67
- if (rans1 < RANS_BYTE_L) {
68
- do {
69
- rans1 = (rans1 << 8) | (0xff & input.get())
70
- } while (rans1 < RANS_BYTE_L)
71
- }
72
- if (rans2 < RANS_BYTE_L) {
73
- do {
74
- rans2 = (rans2 << 8) | (0xff & input.get())
75
- } while (rans2 < RANS_BYTE_L)
76
- }
77
- if (rans7 < RANS_BYTE_L) {
78
- do {
79
- rans7 = (rans7 << 8) | (0xff & input.get())
80
- } while (rans7 < RANS_BYTE_L)
81
- }
82
-
83
- l0 = c0
84
- l1 = c1
85
- l2 = c2
86
- l7 = c7
87
- }
88
-
89
- // Remainder
90
- for (; i7 < outputSize; i7 += 1) {
91
- const /* int */ c7 = 0xff & D[l7].R[rans7 & MASK]
92
- // Inline putAt to avoid function call overhead
93
- output._buffer[i7] = c7
94
-
95
- // Inline advanceSymbol to avoid function call overhead
96
- const sym = syms[l7][c7]
97
- rans7 = sym.freq * (rans7 >> TF_SHIFT) + (rans7 & MASK) - sym.start
98
- if (rans7 < RANS_BYTE_L) {
99
- do {
100
- rans7 = (rans7 << 8) | (0xff & input.get())
101
- } while (rans7 < RANS_BYTE_L)
102
- }
103
-
104
- l7 = c7
105
- }
106
- }
@@ -1,138 +0,0 @@
1
- // @ts-nocheck
2
- import { CramMalformedError } from '../errors.ts'
3
- import { RANS_BYTE_L } from './constants.ts'
4
-
5
- class FC {
6
- // int F, C;
7
- constructor() {
8
- this.F = undefined
9
- this.C = undefined
10
- }
11
- }
12
-
13
- class AriDecoder {
14
- // final FC[] fc = new FC[256];
15
- // byte[] R;
16
-
17
- constructor() {
18
- // Use two parallel arrays instead of array of objects for better cache efficiency
19
- this.fcF = new Array(256)
20
- this.fcC = new Array(256)
21
- this.R = null
22
- }
23
- }
24
-
25
- class DecodingSymbol {
26
- // int start; // Start of range.
27
- // int freq; // Symbol frequency.
28
- constructor() {
29
- this.start = undefined
30
- this.freq = undefined
31
- }
32
- }
33
-
34
- // Initialize a decoder symbol to start "start" and frequency "freq"
35
- function symbolInit(sym, start, freq) {
36
- if (!(start <= 1 << 16)) {
37
- throw new CramMalformedError('assertion failed: start <= 1<<16')
38
- }
39
- if (!(freq <= (1 << 16) - start)) {
40
- throw new CramMalformedError('assertion failed: freq <= 1<<16')
41
- }
42
- sym.start = start
43
- sym.freq = freq
44
- }
45
-
46
- // Advances in the bit stream by "popping" a single symbol with range start
47
- // "start" and frequency "freq". All frequencies are assumed to sum to
48
- // "1 << scaleBits".
49
- // No renormalization or output happens.
50
- /* private static int */ function advanceStep(
51
- /* final int */ r,
52
- /* final int */ start,
53
- /* final int */ freq,
54
- /* final int */ scaleBits,
55
- ) {
56
- /* final int */ const mask = (1 << scaleBits) - 1
57
-
58
- // s, x = D(x)
59
- return freq * (r >> scaleBits) + (r & mask) - start
60
- }
61
-
62
- // Equivalent to RansDecAdvanceStep that takes a symbol.
63
- /* static int */ function advanceSymbolStep(
64
- /* final int */ r,
65
- /* final RansDecSymbol */ sym,
66
- /* final int */ scaleBits,
67
- ) {
68
- return advanceStep(r, sym.start, sym.freq, scaleBits)
69
- }
70
-
71
- // Returns the current cumulative frequency (map it to a symbol yourself!)
72
- /* static int */ function get(/* final int */ r, /* final int */ scaleBits) {
73
- return r & ((1 << scaleBits) - 1)
74
- }
75
-
76
- // Advances in the bit stream by "popping" a single symbol with range start
77
- // "start" and frequency "freq". All frequencies are assumed to sum to
78
- // "1 << scaleBits",
79
- // and the resulting bytes get written to ptr (which is updated).
80
- /* private static int */ function advance(
81
- /* int */ r,
82
- /* final ByteBuffer */ pptr,
83
- /* final int */ start,
84
- /* final int */ freq,
85
- /* final int */ scaleBits,
86
- ) {
87
- /* final int */ const mask = (1 << scaleBits) - 1
88
-
89
- // s, x = D(x)
90
- r = freq * (r >> scaleBits) + (r & mask) - start
91
-
92
- // re-normalize
93
- if (r < RANS_BYTE_L) {
94
- do {
95
- /* final int */ const b = 0xff & pptr.get()
96
- r = (r << 8) | b
97
- } while (r < RANS_BYTE_L)
98
- }
99
-
100
- return r
101
- }
102
-
103
- // Equivalent to RansDecAdvance that takes a symbol.
104
- /* static int */ function advanceSymbol(
105
- /* final int */ r,
106
- /* final ByteBuffer */ pptr,
107
- /* final RansDecSymbol */ sym,
108
- /* final int */ scaleBits,
109
- ) {
110
- return advance(r, pptr, sym.start, sym.freq, scaleBits)
111
- }
112
-
113
- // Re-normalize.
114
- /* static int */ function renormalize(
115
- /* int */ r,
116
- /* final ByteBuffer */ pptr,
117
- ) {
118
- // re-normalize
119
- if (r < RANS_BYTE_L) {
120
- do {
121
- r = (r << 8) | (0xff & pptr.get())
122
- } while (r < RANS_BYTE_L)
123
- }
124
-
125
- return r
126
- }
127
-
128
- export default {
129
- FC,
130
- AriDecoder,
131
- DecodingSymbol,
132
- symbolInit,
133
- advanceStep,
134
- advanceSymbolStep,
135
- get,
136
- advanceSymbol,
137
- renormalize,
138
- }
@@ -1,115 +0,0 @@
1
- // @ts-nocheck
2
- import { CramMalformedError } from '../errors.ts'
3
- import { TOTFREQ } from './constants.ts'
4
- import Decoding from './decoding.ts'
5
-
6
- function assert(result) {
7
- if (!result) {
8
- throw new CramMalformedError('assertion failed')
9
- }
10
- }
11
-
12
- export function readStatsO0(
13
- /* ByteBuffer */ cp,
14
- /* Decoding.AriDecoder */ decoder,
15
- /* Decoding.RansDecSymbol[] */ syms,
16
- ) {
17
- // Pre-compute reverse lookup of frequency.
18
- let rle = 0
19
- let x = 0
20
- let j = cp.get() & 0xff
21
- do {
22
- decoder.fcF[j] = cp.get() & 0xff
23
- if (decoder.fcF[j] >= 128) {
24
- decoder.fcF[j] &= ~128
25
- decoder.fcF[j] = ((decoder.fcF[j] & 127) << 8) | (cp.get() & 0xff)
26
- }
27
- decoder.fcC[j] = x
28
-
29
- Decoding.symbolInit(syms[j], decoder.fcC[j], decoder.fcF[j])
30
-
31
- /* Build reverse lookup table */
32
- if (!decoder.R) {
33
- decoder.R = new Array(TOTFREQ)
34
- }
35
- decoder.R.fill(j, x, x + decoder.fcF[j])
36
-
37
- x += decoder.fcF[j]
38
-
39
- if (rle === 0 && j + 1 === (0xff & cp.getByteAt(cp.position()))) {
40
- j = cp.get() & 0xff
41
- rle = cp.get() & 0xff
42
- } else if (rle !== 0) {
43
- rle -= 1
44
- j += 1
45
- } else {
46
- j = cp.get() & 0xff
47
- }
48
- } while (j !== 0)
49
-
50
- assert(x < TOTFREQ)
51
- }
52
-
53
- export function readStatsO1(
54
- /* ByteBuffer */ cp,
55
- /* Decoding.AriDecoder[] */ D,
56
- /* Decoding.RansDecSymbol[][] */ syms,
57
- ) {
58
- let rlei = 0
59
- let i = 0xff & cp.get()
60
- do {
61
- let rlej = 0
62
- let x = 0
63
- let j = 0xff & cp.get()
64
- if (D[i] == null) {
65
- D[i] = new Decoding.AriDecoder()
66
- }
67
- do {
68
- D[i].fcF[j] = 0xff & cp.get()
69
- if (D[i].fcF[j] >= 128) {
70
- D[i].fcF[j] &= ~128
71
- D[i].fcF[j] = ((D[i].fcF[j] & 127) << 8) | (0xff & cp.get())
72
- }
73
- D[i].fcC[j] = x
74
-
75
- if (D[i].fcF[j] === 0) {
76
- D[i].fcF[j] = TOTFREQ
77
- }
78
-
79
- if (syms[i][j] == null) {
80
- syms[i][j] = new Decoding.RansDecSymbol()
81
- }
82
-
83
- Decoding.symbolInit(syms[i][j], D[i].fcC[j], D[i].fcF[j])
84
-
85
- /* Build reverse lookup table */
86
- if (D[i].R == null) {
87
- D[i].R = new Array(TOTFREQ)
88
- }
89
- D[i].R.fill(j, x, x + D[i].fcF[j])
90
-
91
- x += D[i].fcF[j]
92
- assert(x <= TOTFREQ)
93
-
94
- if (rlej === 0 && j + 1 === (0xff & cp.getByteAt(cp.position()))) {
95
- j = 0xff & cp.get()
96
- rlej = 0xff & cp.get()
97
- } else if (rlej !== 0) {
98
- rlej -= 1
99
- j += 1
100
- } else {
101
- j = 0xff & cp.get()
102
- }
103
- } while (j !== 0)
104
-
105
- if (rlei === 0 && i + 1 === (0xff & cp.getByteAt(cp.position()))) {
106
- i = 0xff & cp.get()
107
- rlei = 0xff & cp.get()
108
- } else if (rlei !== 0) {
109
- rlei -= 1
110
- i += 1
111
- } else {
112
- i = 0xff & cp.get()
113
- }
114
- } while (i !== 0)
115
- }