@gmod/cram 3.0.6 → 4.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 (248) hide show
  1. package/dist/craiIndex.js +70 -87
  2. package/dist/craiIndex.js.map +1 -1
  3. package/dist/cram-bundle.js +1 -1
  4. package/dist/cramFile/codecs/_base.d.ts +1 -1
  5. package/dist/cramFile/codecs/beta.d.ts +2 -2
  6. package/dist/cramFile/codecs/beta.js +1 -1
  7. package/dist/cramFile/codecs/beta.js.map +1 -1
  8. package/dist/cramFile/codecs/byteArrayLength.d.ts +2 -2
  9. package/dist/cramFile/codecs/byteArrayStop.d.ts +4 -4
  10. package/dist/cramFile/codecs/byteArrayStop.js +1 -1
  11. package/dist/cramFile/codecs/byteArrayStop.js.map +1 -1
  12. package/dist/cramFile/codecs/external.d.ts +1 -1
  13. package/dist/cramFile/codecs/external.js +1 -1
  14. package/dist/cramFile/codecs/external.js.map +1 -1
  15. package/dist/cramFile/codecs/gamma.d.ts +1 -1
  16. package/dist/cramFile/codecs/gamma.js +1 -1
  17. package/dist/cramFile/codecs/gamma.js.map +1 -1
  18. package/dist/cramFile/codecs/getBits.d.ts +1 -1
  19. package/dist/cramFile/codecs/getBits.js.map +1 -1
  20. package/dist/cramFile/codecs/huffman.d.ts +1 -1
  21. package/dist/cramFile/codecs/huffman.js +1 -1
  22. package/dist/cramFile/codecs/huffman.js.map +1 -1
  23. package/dist/cramFile/codecs/index.d.ts +1 -1
  24. package/dist/cramFile/codecs/index.js +5 -5
  25. package/dist/cramFile/codecs/index.js.map +1 -1
  26. package/dist/cramFile/codecs/subexp.d.ts +2 -2
  27. package/dist/cramFile/codecs/subexp.js +1 -1
  28. package/dist/cramFile/codecs/subexp.js.map +1 -1
  29. package/dist/cramFile/container/compressionScheme.d.ts +2 -2
  30. package/dist/cramFile/container/compressionScheme.js +1 -1
  31. package/dist/cramFile/container/compressionScheme.js.map +1 -1
  32. package/dist/cramFile/container/index.d.ts +1 -2
  33. package/dist/cramFile/container/index.js +62 -79
  34. package/dist/cramFile/container/index.js.map +1 -1
  35. package/dist/cramFile/file.d.ts +9 -13
  36. package/dist/cramFile/file.js +218 -249
  37. package/dist/cramFile/file.js.map +1 -1
  38. package/dist/cramFile/record.js +2 -2
  39. package/dist/cramFile/record.js.map +1 -1
  40. package/dist/cramFile/sectionParsers.d.ts +16 -16
  41. package/dist/cramFile/sectionParsers.js +12 -9
  42. package/dist/cramFile/sectionParsers.js.map +1 -1
  43. package/dist/cramFile/slice/decodeRecord.d.ts +3 -3
  44. package/dist/cramFile/slice/decodeRecord.js +11 -11
  45. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  46. package/dist/cramFile/slice/index.d.ts +2 -2
  47. package/dist/cramFile/slice/index.js +241 -262
  48. package/dist/cramFile/slice/index.js.map +1 -1
  49. package/dist/cramFile/util.d.ts +4 -2
  50. package/dist/cramFile/util.js +29 -6
  51. package/dist/cramFile/util.js.map +1 -1
  52. package/dist/htscodecs/arith_gen.d.ts +18 -0
  53. package/dist/htscodecs/arith_gen.js +318 -0
  54. package/dist/htscodecs/arith_gen.js.map +1 -0
  55. package/dist/htscodecs/arith_sh.d.ts +16 -0
  56. package/dist/htscodecs/arith_sh.js +128 -0
  57. package/dist/htscodecs/arith_sh.js.map +1 -0
  58. package/dist/htscodecs/byte_model.d.ts +11 -0
  59. package/dist/htscodecs/byte_model.js +113 -0
  60. package/dist/htscodecs/byte_model.js.map +1 -0
  61. package/dist/htscodecs/fqzcomp.d.ts +1 -0
  62. package/dist/htscodecs/fqzcomp.js +325 -0
  63. package/dist/htscodecs/fqzcomp.js.map +1 -0
  64. package/dist/htscodecs/index.d.ts +5 -0
  65. package/dist/htscodecs/index.js +70 -0
  66. package/dist/htscodecs/index.js.map +1 -0
  67. package/dist/htscodecs/iostream.d.ts +27 -0
  68. package/dist/htscodecs/iostream.js +243 -0
  69. package/dist/htscodecs/iostream.js.map +1 -0
  70. package/dist/htscodecs/rans.d.ts +1 -0
  71. package/dist/htscodecs/rans.js +213 -0
  72. package/dist/htscodecs/rans.js.map +1 -0
  73. package/dist/htscodecs/rans4x16.d.ts +1 -0
  74. package/dist/htscodecs/rans4x16.js +405 -0
  75. package/dist/htscodecs/rans4x16.js.map +1 -0
  76. package/dist/htscodecs/tok3.d.ts +2 -0
  77. package/dist/htscodecs/tok3.js +363 -0
  78. package/dist/htscodecs/tok3.js.map +1 -0
  79. package/dist/index.d.ts +1 -1
  80. package/dist/index.js +2 -2
  81. package/dist/index.js.map +1 -1
  82. package/dist/indexedCramFile.d.ts +4 -4
  83. package/dist/indexedCramFile.js +97 -108
  84. package/dist/indexedCramFile.js.map +1 -1
  85. package/dist/io/index.d.ts +2 -2
  86. package/dist/io/index.js +6 -6
  87. package/dist/io/index.js.map +1 -1
  88. package/dist/rans/constants.d.ts +1 -1
  89. package/dist/rans/constants.js +1 -1
  90. package/dist/rans/constants.js.map +1 -1
  91. package/dist/rans/d04.js.map +1 -1
  92. package/dist/rans/decoding.js.map +1 -1
  93. package/dist/rans/frequencies.js.map +1 -1
  94. package/dist/rans/index.js +5 -5
  95. package/dist/rans/index.js.map +1 -1
  96. package/dist/unzip.d.ts +1 -1
  97. package/dist/unzip.js +5 -3
  98. package/dist/unzip.js.map +1 -1
  99. package/esm/craiIndex.js +10 -12
  100. package/esm/craiIndex.js.map +1 -1
  101. package/esm/cramFile/codecs/_base.d.ts +1 -1
  102. package/esm/cramFile/codecs/beta.d.ts +2 -2
  103. package/esm/cramFile/codecs/beta.js +1 -1
  104. package/esm/cramFile/codecs/beta.js.map +1 -1
  105. package/esm/cramFile/codecs/byteArrayLength.d.ts +2 -2
  106. package/esm/cramFile/codecs/byteArrayStop.d.ts +4 -4
  107. package/esm/cramFile/codecs/byteArrayStop.js +1 -1
  108. package/esm/cramFile/codecs/byteArrayStop.js.map +1 -1
  109. package/esm/cramFile/codecs/external.d.ts +1 -1
  110. package/esm/cramFile/codecs/external.js +1 -1
  111. package/esm/cramFile/codecs/external.js.map +1 -1
  112. package/esm/cramFile/codecs/gamma.d.ts +1 -1
  113. package/esm/cramFile/codecs/gamma.js +1 -1
  114. package/esm/cramFile/codecs/gamma.js.map +1 -1
  115. package/esm/cramFile/codecs/getBits.d.ts +1 -1
  116. package/esm/cramFile/codecs/getBits.js.map +1 -1
  117. package/esm/cramFile/codecs/huffman.d.ts +1 -1
  118. package/esm/cramFile/codecs/huffman.js +1 -1
  119. package/esm/cramFile/codecs/huffman.js.map +1 -1
  120. package/esm/cramFile/codecs/index.d.ts +1 -1
  121. package/esm/cramFile/codecs/index.js +5 -5
  122. package/esm/cramFile/codecs/index.js.map +1 -1
  123. package/esm/cramFile/codecs/subexp.d.ts +2 -2
  124. package/esm/cramFile/codecs/subexp.js +1 -1
  125. package/esm/cramFile/codecs/subexp.js.map +1 -1
  126. package/esm/cramFile/container/compressionScheme.d.ts +2 -2
  127. package/esm/cramFile/container/compressionScheme.js +1 -1
  128. package/esm/cramFile/container/compressionScheme.js.map +1 -1
  129. package/esm/cramFile/container/index.d.ts +1 -2
  130. package/esm/cramFile/container/index.js +4 -7
  131. package/esm/cramFile/container/index.js.map +1 -1
  132. package/esm/cramFile/file.d.ts +9 -13
  133. package/esm/cramFile/file.js +54 -61
  134. package/esm/cramFile/file.js.map +1 -1
  135. package/esm/cramFile/record.js +2 -2
  136. package/esm/cramFile/record.js.map +1 -1
  137. package/esm/cramFile/sectionParsers.d.ts +16 -16
  138. package/esm/cramFile/sectionParsers.js +7 -7
  139. package/esm/cramFile/sectionParsers.js.map +1 -1
  140. package/esm/cramFile/slice/decodeRecord.d.ts +3 -3
  141. package/esm/cramFile/slice/decodeRecord.js +11 -11
  142. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  143. package/esm/cramFile/slice/index.d.ts +2 -2
  144. package/esm/cramFile/slice/index.js +7 -6
  145. package/esm/cramFile/slice/index.js.map +1 -1
  146. package/esm/cramFile/util.d.ts +4 -2
  147. package/esm/cramFile/util.js +19 -2
  148. package/esm/cramFile/util.js.map +1 -1
  149. package/esm/htscodecs/arith_gen.d.ts +18 -0
  150. package/esm/htscodecs/arith_gen.js +318 -0
  151. package/esm/htscodecs/arith_gen.js.map +1 -0
  152. package/esm/htscodecs/arith_sh.d.ts +16 -0
  153. package/esm/htscodecs/arith_sh.js +128 -0
  154. package/esm/htscodecs/arith_sh.js.map +1 -0
  155. package/esm/htscodecs/byte_model.d.ts +11 -0
  156. package/esm/htscodecs/byte_model.js +113 -0
  157. package/esm/htscodecs/byte_model.js.map +1 -0
  158. package/esm/htscodecs/fqzcomp.d.ts +1 -0
  159. package/esm/htscodecs/fqzcomp.js +325 -0
  160. package/esm/htscodecs/fqzcomp.js.map +1 -0
  161. package/esm/htscodecs/index.d.ts +5 -0
  162. package/esm/htscodecs/index.js +70 -0
  163. package/esm/htscodecs/index.js.map +1 -0
  164. package/esm/htscodecs/iostream.d.ts +27 -0
  165. package/esm/htscodecs/iostream.js +243 -0
  166. package/esm/htscodecs/iostream.js.map +1 -0
  167. package/esm/htscodecs/rans.d.ts +1 -0
  168. package/esm/htscodecs/rans.js +213 -0
  169. package/esm/htscodecs/rans.js.map +1 -0
  170. package/esm/htscodecs/rans4x16.d.ts +1 -0
  171. package/esm/htscodecs/rans4x16.js +405 -0
  172. package/esm/htscodecs/rans4x16.js.map +1 -0
  173. package/esm/htscodecs/tok3.d.ts +2 -0
  174. package/esm/htscodecs/tok3.js +363 -0
  175. package/esm/htscodecs/tok3.js.map +1 -0
  176. package/esm/index.d.ts +1 -1
  177. package/esm/index.js +1 -1
  178. package/esm/index.js.map +1 -1
  179. package/esm/indexedCramFile.d.ts +4 -4
  180. package/esm/indexedCramFile.js +10 -10
  181. package/esm/indexedCramFile.js.map +1 -1
  182. package/esm/io/index.d.ts +2 -2
  183. package/esm/io/index.js +1 -1
  184. package/esm/io/index.js.map +1 -1
  185. package/esm/rans/constants.d.ts +1 -1
  186. package/esm/rans/constants.js +1 -1
  187. package/esm/rans/constants.js.map +1 -1
  188. package/esm/rans/d04.js.map +1 -1
  189. package/esm/rans/decoding.js.map +1 -1
  190. package/esm/rans/frequencies.js.map +1 -1
  191. package/esm/rans/index.js +5 -5
  192. package/esm/rans/index.js.map +1 -1
  193. package/esm/unzip.d.ts +1 -1
  194. package/esm/unzip.js +4 -1
  195. package/esm/unzip.js.map +1 -1
  196. package/package.json +7 -10
  197. package/src/craiIndex.ts +17 -16
  198. package/src/cramFile/codecs/_base.ts +1 -1
  199. package/src/cramFile/codecs/beta.ts +3 -3
  200. package/src/cramFile/codecs/byteArrayLength.ts +1 -1
  201. package/src/cramFile/codecs/byteArrayStop.ts +3 -4
  202. package/src/cramFile/codecs/external.ts +3 -3
  203. package/src/cramFile/codecs/gamma.ts +2 -2
  204. package/src/cramFile/codecs/getBits.ts +1 -1
  205. package/src/cramFile/codecs/huffman.ts +2 -3
  206. package/src/cramFile/codecs/index.ts +7 -8
  207. package/src/cramFile/codecs/subexp.ts +3 -3
  208. package/src/cramFile/container/compressionScheme.ts +3 -3
  209. package/src/cramFile/container/index.ts +7 -10
  210. package/src/cramFile/file.ts +78 -86
  211. package/src/cramFile/record.ts +3 -3
  212. package/src/cramFile/sectionParsers.ts +27 -22
  213. package/src/cramFile/slice/decodeRecord.ts +17 -17
  214. package/src/cramFile/slice/index.ts +8 -9
  215. package/src/cramFile/util.ts +24 -6
  216. package/src/htscodecs/arith_gen.js +344 -0
  217. package/src/htscodecs/arith_sh.js +138 -0
  218. package/src/htscodecs/byte_model.js +126 -0
  219. package/src/htscodecs/fqzcomp.js +360 -0
  220. package/src/htscodecs/index.js +77 -0
  221. package/src/htscodecs/iostream.js +257 -0
  222. package/src/htscodecs/rans.js +233 -0
  223. package/src/htscodecs/rans4x16.js +452 -0
  224. package/src/htscodecs/tok3.js +413 -0
  225. package/src/index.ts +1 -1
  226. package/src/indexedCramFile.ts +6 -5
  227. package/src/io/index.ts +5 -4
  228. package/src/rans/constants.ts +1 -1
  229. package/src/rans/d04.ts +0 -1
  230. package/src/rans/decoding.ts +0 -1
  231. package/src/rans/frequencies.ts +0 -1
  232. package/src/rans/index.ts +5 -7
  233. package/src/unzip.ts +5 -1
  234. package/dist/cramFile/filehandle.d.ts +0 -1
  235. package/dist/cramFile/filehandle.js +0 -3
  236. package/dist/cramFile/filehandle.js.map +0 -1
  237. package/dist/unzip-pako.d.ts +0 -2
  238. package/dist/unzip-pako.js +0 -9
  239. package/dist/unzip-pako.js.map +0 -1
  240. package/esm/cramFile/filehandle.d.ts +0 -1
  241. package/esm/cramFile/filehandle.js +0 -2
  242. package/esm/cramFile/filehandle.js.map +0 -1
  243. package/esm/unzip-pako.d.ts +0 -2
  244. package/esm/unzip-pako.js +0 -6
  245. package/esm/unzip-pako.js.map +0 -1
  246. package/src/cramFile/filehandle.ts +0 -1
  247. package/src/typings/htscodecs.d.ts +0 -6
  248. package/src/unzip-pako.ts +0 -6
@@ -0,0 +1,405 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2019,2020 Genome Research Ltd.
4
+ * Author(s): James Bonfield
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ *
9
+ * 1. Redistributions of source code must retain the above copyright notice,
10
+ * this list of conditions and the following disclaimer.
11
+ *
12
+ * 2. Redistributions in binary form must reproduce the above
13
+ * copyright notice, this list of conditions and the following
14
+ * disclaimer in the documentation and/or other materials provided
15
+ * with the distribution.
16
+ *
17
+ * 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger
18
+ * Institute nor the names of its contributors may be used to endorse
19
+ * or promote products derived from this software without specific
20
+ * prior written permission.
21
+ *
22
+ * THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS
23
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
24
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
25
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH
26
+ * LTD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
+ */
34
+ const IOStream = require('./iostream');
35
+ //----------------------------------------------------------------------
36
+ // rANS primitives itself
37
+ //
38
+ // RansGet* is decoder side
39
+ function RansGetCumulativeFreq(R, bits) {
40
+ return R & ((1 << bits) - 1);
41
+ }
42
+ function RansGetSymbolFromFreq(C, f) {
43
+ // NOTE: Inefficient.
44
+ // In practice we would implement this via a precomputed
45
+ // lookup table C2S[f]; see RansBuildC2S below.
46
+ var s = 0;
47
+ while (f >= C[s + 1])
48
+ s++;
49
+ //console.error(f, C, s)
50
+ return s;
51
+ }
52
+ function RansBuildC2S(C, bits) {
53
+ var max = 1 << bits;
54
+ var C2S = new Array(max);
55
+ var s = 0;
56
+ for (var f = 0; f < max; f++) {
57
+ while (f >= C[s + 1])
58
+ s++;
59
+ C2S[f] = s;
60
+ }
61
+ return C2S;
62
+ }
63
+ function RansAdvanceStep(R, c, f, bits) {
64
+ return f * (R >> bits) + (R & ((1 << bits) - 1)) - c;
65
+ }
66
+ function RansRenorm(src, R) {
67
+ if (R < 1 << 15)
68
+ R = (R << 16) + src.ReadUint16();
69
+ return R;
70
+ }
71
+ function DecodeRLEMeta(src, N) {
72
+ var u_meta_len = src.ReadUint7();
73
+ var rle_len = src.ReadUint7();
74
+ // Decode RLE lengths
75
+ if (u_meta_len & 1) {
76
+ var rle_meta = src.ReadData((u_meta_len - 1) / 2);
77
+ }
78
+ else {
79
+ var comp_meta_len = src.ReadUint7();
80
+ var rle_meta = src.ReadData(comp_meta_len);
81
+ rle_meta = RansDecode0(new IOStream(rle_meta), u_meta_len / 2, N);
82
+ }
83
+ // Decode list of symbols for which RLE lengths are applied
84
+ var rle_meta = new IOStream(rle_meta);
85
+ var L = new Array(256);
86
+ var n = rle_meta.ReadByte();
87
+ if (n == 0)
88
+ n = 256;
89
+ for (var i = 0; i < n; i++)
90
+ L[rle_meta.ReadByte()] = 1;
91
+ return [L, rle_meta, rle_len];
92
+ }
93
+ function DecodeRLE(buf, L, rle_meta, len) {
94
+ var src = new IOStream(buf);
95
+ var out = new Uint8Array(len);
96
+ // Expand up buf+meta to out; i = buf index, j = out index
97
+ var j = 0;
98
+ for (var i = 0; j < len; i++) {
99
+ var sym = buf[i];
100
+ if (L[sym]) {
101
+ var run = rle_meta.ReadUint7();
102
+ for (var r = 0; r <= run; r++)
103
+ out[j++] = sym;
104
+ }
105
+ else {
106
+ out[j++] = sym;
107
+ }
108
+ }
109
+ return out;
110
+ }
111
+ // Pack meta data is the number and value of distinct symbols plus
112
+ // the length of the packed byte stream.
113
+ function DecodePackMeta(src) {
114
+ var nsym = src.ReadByte();
115
+ var P = new Array(nsym);
116
+ for (var i = 0; i < nsym; i++)
117
+ P[i] = src.ReadByte();
118
+ var len = src.ReadUint7();
119
+ return [P, nsym, len];
120
+ }
121
+ // Extract bits from src producing output of length len.
122
+ // Nsym is number of distinct symbols used.
123
+ function DecodePack(data, P, nsym, len) {
124
+ var out = new Uint8Array(len);
125
+ var j = 0;
126
+ // Constant value
127
+ if (nsym <= 1) {
128
+ for (var i = 0; i < len; i++)
129
+ out[i] = P[0];
130
+ }
131
+ // 1 bit per value
132
+ else if (nsym <= 2) {
133
+ for (i = 0; i < len; i++) {
134
+ if (i % 8 == 0)
135
+ var v = data[j++];
136
+ out[i] = P[v & 1];
137
+ v >>= 1;
138
+ }
139
+ }
140
+ // 2 bits per value
141
+ else if (nsym <= 4) {
142
+ for (i = 0; i < len; i++) {
143
+ if (i % 4 == 0)
144
+ var v = data[j++];
145
+ out[i] = P[v & 3];
146
+ v >>= 2;
147
+ }
148
+ }
149
+ // 4 bits per value
150
+ else if (nsym <= 16) {
151
+ for (i = 0; i < len; i++) {
152
+ if (i % 2 == 0)
153
+ var v = data[j++];
154
+ out[i] = P[v & 15];
155
+ v >>= 4;
156
+ }
157
+ }
158
+ return out;
159
+ }
160
+ function RansDecodeStripe(src, len) {
161
+ var N = src.ReadByte();
162
+ // Retrieve lengths
163
+ var clen = new Array(N);
164
+ var ulen = new Array(N);
165
+ for (var j = 0; j < N; j++)
166
+ clen[j] = src.ReadUint7();
167
+ // Decode streams
168
+ var T = new Array(N);
169
+ for (var j = 0; j < N; j++) {
170
+ ulen[j] = Math.floor(len / N) + (len % N > j);
171
+ T[j] = RansDecodeStream(src, ulen[j]);
172
+ }
173
+ // Transpose
174
+ var out = new Uint8Array(len);
175
+ for (var j = 0; j < N; j++) {
176
+ for (var i = 0; i < ulen[j]; i++) {
177
+ out[i * N + j] = T[j][i];
178
+ }
179
+ }
180
+ return out;
181
+ }
182
+ //----------------------------------------------------------------------
183
+ // Main rANS entry function: decodes a compressed src and
184
+ // returns the uncompressed buffer.
185
+ function decode(src) {
186
+ var stream = new IOStream(src);
187
+ return RansDecodeStream(stream, 0);
188
+ }
189
+ function RansDecodeStream(stream, n_out) {
190
+ var format = stream.ReadByte();
191
+ var order = format & 1;
192
+ var x32 = format & 4;
193
+ var stripe = format & 8;
194
+ var nosz = format & 16;
195
+ var cat = format & 32;
196
+ var rle = format & 64;
197
+ var pack = format & 128;
198
+ var Nway = x32 ? 32 : 4;
199
+ if (!nosz)
200
+ n_out = stream.ReadUint7();
201
+ // N-way interleaving
202
+ if (stripe)
203
+ return RansDecodeStripe(stream, n_out);
204
+ // Bit packing
205
+ if (pack) {
206
+ var pack_len = n_out;
207
+ var [P, nsym, n_out] = DecodePackMeta(stream);
208
+ }
209
+ // Run length encoding
210
+ if (rle) {
211
+ var rle_len = n_out;
212
+ var [L, rle_meta, n_out] = DecodeRLEMeta(stream, Nway);
213
+ }
214
+ // Uncompress data (all, packed or run literals)
215
+ if (cat)
216
+ var buf = stream.ReadData(n_out);
217
+ else if (order == 0)
218
+ var buf = RansDecode0(stream, n_out, Nway);
219
+ else
220
+ var buf = RansDecode1(stream, n_out, Nway);
221
+ // Apply expansion transforms
222
+ if (rle)
223
+ buf = DecodeRLE(buf, L, rle_meta, rle_len);
224
+ if (pack)
225
+ buf = DecodePack(buf, P, nsym, pack_len);
226
+ return buf;
227
+ }
228
+ //----------------------------------------------------------------------
229
+ // Order-0 decoder
230
+ function ReadAlphabet(src) {
231
+ var A = new Array(256);
232
+ for (var i = 0; i < 256; i++)
233
+ A[i] = 0;
234
+ var rle = 0;
235
+ var sym = src.ReadByte();
236
+ var last_sym = sym;
237
+ do {
238
+ A[sym] = 1;
239
+ if (rle > 0) {
240
+ rle--;
241
+ sym++;
242
+ }
243
+ else {
244
+ sym = src.ReadByte();
245
+ if (sym == last_sym + 1)
246
+ rle = src.ReadByte();
247
+ }
248
+ last_sym = sym;
249
+ } while (sym != 0);
250
+ return A;
251
+ }
252
+ // Decode a single table of order-0 frequences,
253
+ // filling out the F and C arrays.
254
+ function ReadFrequencies0(src, F, C) {
255
+ // Initialise; not in the specification - implicit?
256
+ for (var i = 0; i < 256; i++)
257
+ F[i] = 0;
258
+ // Fetch alphabet
259
+ var A = ReadAlphabet(src);
260
+ // Fetch frequencies for the symbols listed in our alphabet
261
+ for (var i = 0; i < 256; i++) {
262
+ if (A[i] > 0)
263
+ F[i] = src.ReadUint7();
264
+ }
265
+ NormaliseFrequencies0_Shift(F, 12);
266
+ // Compute C[] from F[]
267
+ C[0] = 0;
268
+ for (var i = 0; i <= 255; i++)
269
+ C[i + 1] = C[i] + F[i];
270
+ }
271
+ function RansDecode0(src, nbytes, N) {
272
+ // Decode frequencies
273
+ var F = new Array(256);
274
+ var C = new Array(256);
275
+ ReadFrequencies0(src, F, C);
276
+ // Fast lookup to avoid slow RansGetSymbolFromFreq
277
+ var C2S = RansBuildC2S(C, 12);
278
+ // Initialise rANS state
279
+ var R = new Array(N);
280
+ for (var i = 0; i < N; i++)
281
+ R[i] = src.ReadUint32();
282
+ // Main decode loop
283
+ var output = new Uint8Array(nbytes);
284
+ for (var i = 0; i < nbytes; i++) {
285
+ var ix = i & (N - 1); // equiv to i%N as N is power of 2
286
+ var f = RansGetCumulativeFreq(R[ix], 12);
287
+ var s = C2S[f]; // Equiv to RansGetSymbolFromFreq(C, f);
288
+ output[i] = s;
289
+ R[ix] = RansAdvanceStep(R[ix], C[s], F[s], 12);
290
+ R[ix] = RansRenorm(src, R[ix]);
291
+ }
292
+ // Main decode loop
293
+ return output;
294
+ }
295
+ function NormaliseFrequencies0_Shift(F, bits) {
296
+ // Compute total and number of bits to shift by
297
+ var tot = 0;
298
+ for (var i = 0; i < 256; i++)
299
+ tot += F[i];
300
+ if (tot == 0 || tot == 1 << bits)
301
+ return;
302
+ var shift = 0;
303
+ while (tot < 1 << bits) {
304
+ tot *= 2;
305
+ shift++;
306
+ }
307
+ // Scale total of frequencies to (1<<bits)
308
+ for (var i = 0; i < 256; i++)
309
+ F[i] <<= shift;
310
+ }
311
+ //----------------------------------------------------------------------
312
+ // Order-1 decoder
313
+ // Decode a table of order-1 frequences,
314
+ // filling out the F and C arrays.
315
+ function ReadFrequencies1(src, F, C, shift) {
316
+ // Initialise; not in the specification - implicit?
317
+ for (var i = 0; i < 256; i++) {
318
+ F[i] = new Array(256);
319
+ C[i] = new Array(256);
320
+ for (var j = 0; j < 256; j++)
321
+ F[i][j] = 0;
322
+ }
323
+ // Fetch alphabet
324
+ var A = ReadAlphabet(src);
325
+ // Read F[]
326
+ for (var i = 0; i < 256; i++) {
327
+ if (!A[i])
328
+ continue;
329
+ var run = 0;
330
+ for (var j = 0; j < 256; j++) {
331
+ if (!A[j])
332
+ continue;
333
+ if (run > 0) {
334
+ run--;
335
+ }
336
+ else {
337
+ F[i][j] = src.ReadUint7();
338
+ if (F[i][j] == 0)
339
+ run = src.ReadByte();
340
+ }
341
+ }
342
+ NormaliseFrequencies0_Shift(F[i], shift);
343
+ // Compute C[] from F[]
344
+ C[i][0] = 0;
345
+ for (var j = 0; j < 256; j++)
346
+ C[i][j + 1] = C[i][j] + F[i][j];
347
+ }
348
+ }
349
+ function RansDecode1(src, nbytes, N) {
350
+ // FIXME: this bit is missing from the RansDecode0 pseudocode.
351
+ var comp = src.ReadByte();
352
+ var shift = comp >> 4;
353
+ var freq_src = src;
354
+ if (comp & 1) {
355
+ var ulen = src.ReadUint7();
356
+ var clen = src.ReadUint7();
357
+ var comp = new IOStream(src.ReadData(clen));
358
+ var freq_src = new IOStream(RansDecode0(comp, ulen, 4));
359
+ }
360
+ // Decode frequencies
361
+ var F = new Array(256);
362
+ var C = new Array(256);
363
+ ReadFrequencies1(freq_src, F, C, shift);
364
+ // Fast lookup to avoid slow RansGetSymbolFromFreq
365
+ var C2S = new Array(256);
366
+ for (var i = 0; i < 256; i++)
367
+ // Could do only for symbols in alphabet?
368
+ C2S[i] = RansBuildC2S(C[i], shift);
369
+ // Initialise rANS state
370
+ var R = new Array(N);
371
+ var L = new Array(N);
372
+ for (var j = 0; j < N; j++) {
373
+ R[j] = src.ReadUint32();
374
+ L[j] = 0;
375
+ }
376
+ // Main decode loop
377
+ var output = new Uint8Array(nbytes);
378
+ var nbytesx = Math.floor(nbytes / N);
379
+ for (var i = 0; i < nbytesx; i++) {
380
+ for (var j = 0; j < N; j++) {
381
+ var f = RansGetCumulativeFreq(R[j], shift);
382
+ //var s = RansGetSymbolFromFreq(C[L[j]], f);
383
+ var s = C2S[L[j]][f]; // Precomputed version of above
384
+ output[i + j * nbytesx] = s;
385
+ R[j] = RansAdvanceStep(R[j], C[L[j]][s], F[L[j]][s], shift);
386
+ R[j] = RansRenorm(src, R[j]);
387
+ L[j] = s;
388
+ }
389
+ }
390
+ // Now deal with the remainder if buffer size is not a multiple of N,
391
+ // using the last rANS state exclusively. (It'd have been nice to have
392
+ // designed this to just act as if we kept going with a bail out.)
393
+ i = N * i;
394
+ while (i < nbytes) {
395
+ var f = RansGetCumulativeFreq(R[N - 1], shift);
396
+ var s = RansGetSymbolFromFreq(C[L[N - 1]], f);
397
+ output[i++] = s;
398
+ R[N - 1] = RansAdvanceStep(R[N - 1], C[L[N - 1]][s], F[L[N - 1]][s], shift);
399
+ R[N - 1] = RansRenorm(src, R[N - 1]);
400
+ L[N - 1] = s;
401
+ }
402
+ return output;
403
+ }
404
+ module.exports = { decode };
405
+ //# sourceMappingURL=rans4x16.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rans4x16.js","sourceRoot":"","sources":["../../src/htscodecs/rans4x16.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export function encode(src: any, use_arith: any): any;
2
+ export function decode(src: any, len: any, separator: any): string;