geotiff 3.0.2 → 3.0.4-beta.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.
- package/dist-browser/geotiff.js +3 -3
- package/dist-browser/geotiff.js.map +1 -1
- package/dist-module/compression/basedecoder.d.ts +30 -4
- package/dist-module/compression/basedecoder.d.ts.map +1 -1
- package/dist-module/compression/basedecoder.js +22 -1
- package/dist-module/compression/basedecoder.js.map +1 -0
- package/dist-module/compression/deflate.d.ts +2 -1
- package/dist-module/compression/deflate.d.ts.map +1 -1
- package/dist-module/compression/deflate.js +2 -0
- package/dist-module/compression/deflate.js.map +1 -0
- package/dist-module/compression/index.d.ts +14 -22
- package/dist-module/compression/index.d.ts.map +1 -1
- package/dist-module/compression/index.js +36 -25
- package/dist-module/compression/index.js.map +1 -0
- package/dist-module/compression/jpeg.d.ts +55 -15
- package/dist-module/compression/jpeg.d.ts.map +1 -1
- package/dist-module/compression/jpeg.js +187 -16
- package/dist-module/compression/jpeg.js.map +1 -0
- package/dist-module/compression/lerc.d.ts +11 -1
- package/dist-module/compression/lerc.d.ts.map +1 -1
- package/dist-module/compression/lerc.js +16 -4
- package/dist-module/compression/lerc.js.map +1 -0
- package/dist-module/compression/lzw.d.ts +2 -1
- package/dist-module/compression/lzw.d.ts.map +1 -1
- package/dist-module/compression/lzw.js +29 -1
- package/dist-module/compression/lzw.js.map +1 -0
- package/dist-module/compression/packbits.d.ts +2 -1
- package/dist-module/compression/packbits.d.ts.map +1 -1
- package/dist-module/compression/packbits.js +2 -0
- package/dist-module/compression/packbits.js.map +1 -0
- package/dist-module/compression/raw.d.ts +2 -1
- package/dist-module/compression/raw.d.ts.map +1 -1
- package/dist-module/compression/raw.js +2 -0
- package/dist-module/compression/raw.js.map +1 -0
- package/dist-module/compression/webimage.d.ts +2 -1
- package/dist-module/compression/webimage.d.ts.map +1 -1
- package/dist-module/compression/webimage.js +5 -0
- package/dist-module/compression/webimage.js.map +1 -0
- package/dist-module/compression/zstd.d.ts +4 -2
- package/dist-module/compression/zstd.d.ts.map +1 -1
- package/dist-module/compression/zstd.js +3 -1
- package/dist-module/compression/zstd.js.map +1 -0
- package/dist-module/dataslice.d.ts +78 -22
- package/dist-module/dataslice.d.ts.map +1 -1
- package/dist-module/dataslice.js +57 -1
- package/dist-module/dataslice.js.map +1 -0
- package/dist-module/dataview64.d.ts +71 -14
- package/dist-module/dataview64.d.ts.map +1 -1
- package/dist-module/dataview64.js +58 -1
- package/dist-module/dataview64.js.map +1 -0
- package/dist-module/geotiff.d.ts +61 -12
- package/dist-module/geotiff.d.ts.map +1 -1
- package/dist-module/geotiff.js +73 -14
- package/dist-module/geotiff.js.map +1 -0
- package/dist-module/geotiffimage.d.ts +41 -15
- package/dist-module/geotiffimage.d.ts.map +1 -1
- package/dist-module/geotiffimage.js +132 -52
- package/dist-module/geotiffimage.js.map +1 -0
- package/dist-module/geotiffwriter.d.ts +28 -1
- package/dist-module/geotiffwriter.d.ts.map +1 -1
- package/dist-module/geotiffwriter.js +206 -84
- package/dist-module/geotiffwriter.js.map +1 -0
- package/dist-module/globals.d.ts +912 -92
- package/dist-module/globals.d.ts.map +1 -1
- package/dist-module/globals.js +201 -227
- package/dist-module/globals.js.map +1 -0
- package/dist-module/imagefiledirectory.d.ts +72 -19
- package/dist-module/imagefiledirectory.d.ts.map +1 -1
- package/dist-module/imagefiledirectory.js +51 -26
- package/dist-module/imagefiledirectory.js.map +1 -0
- package/dist-module/logging.d.ts +36 -10
- package/dist-module/logging.d.ts.map +1 -1
- package/dist-module/logging.js +16 -2
- package/dist-module/logging.js.map +1 -0
- package/dist-module/pool.d.ts +15 -8
- package/dist-module/pool.d.ts.map +1 -1
- package/dist-module/pool.js +11 -3
- package/dist-module/pool.js.map +1 -0
- package/dist-module/predictor.d.ts +10 -1
- package/dist-module/predictor.d.ts.map +1 -1
- package/dist-module/predictor.js +19 -0
- package/dist-module/predictor.js.map +1 -0
- package/dist-module/resample.d.ts.map +1 -1
- package/dist-module/resample.js +12 -0
- package/dist-module/resample.js.map +1 -0
- package/dist-module/rgb.js +1 -0
- package/dist-module/rgb.js.map +1 -0
- package/dist-module/source/arraybuffer.d.ts +7 -4
- package/dist-module/source/arraybuffer.d.ts.map +1 -1
- package/dist-module/source/arraybuffer.js +15 -1
- package/dist-module/source/arraybuffer.js.map +1 -0
- package/dist-module/source/basesource.d.ts +11 -6
- package/dist-module/source/basesource.d.ts.map +1 -1
- package/dist-module/source/basesource.js +7 -4
- package/dist-module/source/basesource.js.map +1 -0
- package/dist-module/source/blockedsource.d.ts +2 -2
- package/dist-module/source/blockedsource.d.ts.map +1 -1
- package/dist-module/source/blockedsource.js +8 -5
- package/dist-module/source/blockedsource.js.map +1 -0
- package/dist-module/source/client/base.d.ts +8 -7
- package/dist-module/source/client/base.d.ts.map +1 -1
- package/dist-module/source/client/base.js +7 -5
- package/dist-module/source/client/base.js.map +1 -0
- package/dist-module/source/client/fetch.d.ts +6 -2
- package/dist-module/source/client/fetch.d.ts.map +1 -1
- package/dist-module/source/client/fetch.js +7 -2
- package/dist-module/source/client/fetch.js.map +1 -0
- package/dist-module/source/client/http.d.ts +27 -5
- package/dist-module/source/client/http.d.ts.map +1 -1
- package/dist-module/source/client/http.js +16 -2
- package/dist-module/source/client/http.js.map +1 -0
- package/dist-module/source/client/xhr.d.ts +22 -3
- package/dist-module/source/client/xhr.d.ts.map +1 -1
- package/dist-module/source/client/xhr.js +12 -2
- package/dist-module/source/client/xhr.js.map +1 -0
- package/dist-module/source/file.d.ts +8 -5
- package/dist-module/source/file.d.ts.map +1 -1
- package/dist-module/source/file.js +40 -8
- package/dist-module/source/file.js.map +1 -0
- package/dist-module/source/filereader.d.ts +12 -4
- package/dist-module/source/filereader.d.ts.map +1 -1
- package/dist-module/source/filereader.js +15 -2
- package/dist-module/source/filereader.js.map +1 -0
- package/dist-module/source/httputils.d.ts +16 -9
- package/dist-module/source/httputils.d.ts.map +1 -1
- package/dist-module/source/httputils.js +19 -12
- package/dist-module/source/httputils.js.map +1 -0
- package/dist-module/source/remote.d.ts.map +1 -1
- package/dist-module/source/remote.js +19 -7
- package/dist-module/source/remote.js.map +1 -0
- package/dist-module/utils.d.ts +36 -41
- package/dist-module/utils.d.ts.map +1 -1
- package/dist-module/utils.js +17 -12
- package/dist-module/utils.js.map +1 -0
- package/dist-module/worker/create.js +1 -1
- package/dist-module/worker/create.js.map +1 -0
- package/dist-module/worker/decoder.d.ts +2 -0
- package/dist-module/worker/decoder.d.ts.map +1 -0
- package/dist-module/worker/decoder.js +21 -0
- package/dist-module/worker/decoder.js.map +1 -0
- package/dist-node/compression/basedecoder.d.ts +30 -4
- package/dist-node/compression/basedecoder.d.ts.map +1 -1
- package/dist-node/compression/basedecoder.js +22 -1
- package/dist-node/compression/basedecoder.js.map +1 -1
- package/dist-node/compression/deflate.d.ts +2 -1
- package/dist-node/compression/deflate.d.ts.map +1 -1
- package/dist-node/compression/deflate.js +2 -0
- package/dist-node/compression/deflate.js.map +1 -1
- package/dist-node/compression/index.d.ts +14 -22
- package/dist-node/compression/index.d.ts.map +1 -1
- package/dist-node/compression/index.js +36 -25
- package/dist-node/compression/index.js.map +1 -1
- package/dist-node/compression/jpeg.d.ts +55 -16
- package/dist-node/compression/jpeg.d.ts.map +1 -1
- package/dist-node/compression/jpeg.js +187 -16
- package/dist-node/compression/jpeg.js.map +1 -1
- package/dist-node/compression/lerc.d.ts +11 -1
- package/dist-node/compression/lerc.d.ts.map +1 -1
- package/dist-node/compression/lerc.js +16 -4
- package/dist-node/compression/lerc.js.map +1 -1
- package/dist-node/compression/lzw.d.ts +2 -1
- package/dist-node/compression/lzw.d.ts.map +1 -1
- package/dist-node/compression/lzw.js +29 -1
- package/dist-node/compression/lzw.js.map +1 -1
- package/dist-node/compression/packbits.d.ts +2 -1
- package/dist-node/compression/packbits.d.ts.map +1 -1
- package/dist-node/compression/packbits.js +2 -0
- package/dist-node/compression/packbits.js.map +1 -1
- package/dist-node/compression/raw.d.ts +2 -1
- package/dist-node/compression/raw.d.ts.map +1 -1
- package/dist-node/compression/raw.js +2 -0
- package/dist-node/compression/raw.js.map +1 -1
- package/dist-node/compression/webimage.d.ts +2 -2
- package/dist-node/compression/webimage.d.ts.map +1 -1
- package/dist-node/compression/webimage.js +5 -0
- package/dist-node/compression/webimage.js.map +1 -1
- package/dist-node/compression/zstd.d.ts +2 -1
- package/dist-node/compression/zstd.d.ts.map +1 -1
- package/dist-node/compression/zstd.js +3 -1
- package/dist-node/compression/zstd.js.map +1 -1
- package/dist-node/dataslice.d.ts +78 -22
- package/dist-node/dataslice.d.ts.map +1 -1
- package/dist-node/dataslice.js +57 -1
- package/dist-node/dataslice.js.map +1 -1
- package/dist-node/dataview64.d.ts +71 -14
- package/dist-node/dataview64.d.ts.map +1 -1
- package/dist-node/dataview64.js +58 -1
- package/dist-node/dataview64.js.map +1 -1
- package/dist-node/geotiff.d.ts +61 -12
- package/dist-node/geotiff.d.ts.map +1 -1
- package/dist-node/geotiff.js +75 -15
- package/dist-node/geotiff.js.map +1 -1
- package/dist-node/geotiffimage.d.ts +41 -15
- package/dist-node/geotiffimage.d.ts.map +1 -1
- package/dist-node/geotiffimage.js +132 -52
- package/dist-node/geotiffimage.js.map +1 -1
- package/dist-node/geotiffwriter.d.ts +28 -1
- package/dist-node/geotiffwriter.d.ts.map +1 -1
- package/dist-node/geotiffwriter.js +206 -84
- package/dist-node/geotiffwriter.js.map +1 -1
- package/dist-node/globals.d.ts +910 -90
- package/dist-node/globals.d.ts.map +1 -1
- package/dist-node/globals.js +202 -228
- package/dist-node/globals.js.map +1 -1
- package/dist-node/imagefiledirectory.d.ts +72 -19
- package/dist-node/imagefiledirectory.d.ts.map +1 -1
- package/dist-node/imagefiledirectory.js +51 -26
- package/dist-node/imagefiledirectory.js.map +1 -1
- package/dist-node/logging.d.ts +36 -10
- package/dist-node/logging.d.ts.map +1 -1
- package/dist-node/logging.js +16 -2
- package/dist-node/logging.js.map +1 -1
- package/dist-node/pool.d.ts +15 -8
- package/dist-node/pool.d.ts.map +1 -1
- package/dist-node/pool.js +11 -3
- package/dist-node/pool.js.map +1 -1
- package/dist-node/predictor.d.ts +10 -1
- package/dist-node/predictor.d.ts.map +1 -1
- package/dist-node/predictor.js +19 -0
- package/dist-node/predictor.js.map +1 -1
- package/dist-node/resample.d.ts.map +1 -1
- package/dist-node/resample.js +12 -0
- package/dist-node/resample.js.map +1 -1
- package/dist-node/rgb.js +1 -0
- package/dist-node/rgb.js.map +1 -1
- package/dist-node/source/arraybuffer.d.ts +7 -4
- package/dist-node/source/arraybuffer.d.ts.map +1 -1
- package/dist-node/source/arraybuffer.js +15 -1
- package/dist-node/source/arraybuffer.js.map +1 -1
- package/dist-node/source/basesource.d.ts +11 -6
- package/dist-node/source/basesource.d.ts.map +1 -1
- package/dist-node/source/basesource.js +7 -4
- package/dist-node/source/basesource.js.map +1 -1
- package/dist-node/source/blockedsource.d.ts +2 -2
- package/dist-node/source/blockedsource.d.ts.map +1 -1
- package/dist-node/source/blockedsource.js +8 -5
- package/dist-node/source/blockedsource.js.map +1 -1
- package/dist-node/source/client/base.d.ts +8 -7
- package/dist-node/source/client/base.d.ts.map +1 -1
- package/dist-node/source/client/base.js +7 -5
- package/dist-node/source/client/base.js.map +1 -1
- package/dist-node/source/client/fetch.d.ts +5 -2
- package/dist-node/source/client/fetch.d.ts.map +1 -1
- package/dist-node/source/client/fetch.js +7 -2
- package/dist-node/source/client/fetch.js.map +1 -1
- package/dist-node/source/client/http.d.ts +22 -4
- package/dist-node/source/client/http.d.ts.map +1 -1
- package/dist-node/source/client/http.js +16 -2
- package/dist-node/source/client/http.js.map +1 -1
- package/dist-node/source/client/xhr.d.ts +23 -3
- package/dist-node/source/client/xhr.d.ts.map +1 -1
- package/dist-node/source/client/xhr.js +12 -2
- package/dist-node/source/client/xhr.js.map +1 -1
- package/dist-node/source/file.d.ts +8 -5
- package/dist-node/source/file.d.ts.map +1 -1
- package/dist-node/source/file.js +40 -8
- package/dist-node/source/file.js.map +1 -1
- package/dist-node/source/filereader.d.ts +12 -4
- package/dist-node/source/filereader.d.ts.map +1 -1
- package/dist-node/source/filereader.js +15 -2
- package/dist-node/source/filereader.js.map +1 -1
- package/dist-node/source/httputils.d.ts +16 -9
- package/dist-node/source/httputils.d.ts.map +1 -1
- package/dist-node/source/httputils.js +19 -12
- package/dist-node/source/httputils.js.map +1 -1
- package/dist-node/source/remote.d.ts.map +1 -1
- package/dist-node/source/remote.js +19 -7
- package/dist-node/source/remote.js.map +1 -1
- package/dist-node/utils.d.ts +9 -8
- package/dist-node/utils.d.ts.map +1 -1
- package/dist-node/utils.js +17 -12
- package/dist-node/utils.js.map +1 -1
- package/dist-node/worker/create.js +1 -1
- package/dist-node/worker/create.js.map +1 -1
- package/dist-node/worker/decoder.d.ts +2 -0
- package/dist-node/worker/decoder.d.ts.map +1 -0
- package/dist-node/worker/decoder.js +24 -0
- package/dist-node/worker/decoder.js.map +1 -0
- package/package.json +5 -3
|
@@ -52,6 +52,33 @@ const dctSqrt2 = 5793; // sqrt(2)
|
|
|
52
52
|
const dctSqrt1d2 = 2896; // sqrt(2) / 2
|
|
53
53
|
/** @typedef {(number|HuffmanNode)[]} HuffmanNode */
|
|
54
54
|
/** @typedef {{children: HuffmanNode, index: number}} Code */
|
|
55
|
+
/**
|
|
56
|
+
* @typedef {Object} JpegComponent
|
|
57
|
+
* @property {number} h
|
|
58
|
+
* @property {number} v
|
|
59
|
+
* @property {number} [quantizationIdx]
|
|
60
|
+
* @property {Int32Array} [quantizationTable]
|
|
61
|
+
* @property {number} blocksPerLine
|
|
62
|
+
* @property {number} blocksPerColumn
|
|
63
|
+
* @property {Int32Array[][]} blocks
|
|
64
|
+
* @property {HuffmanNode} [huffmanTableDC]
|
|
65
|
+
* @property {HuffmanNode} [huffmanTableAC]
|
|
66
|
+
* @property {number} [pred]
|
|
67
|
+
*/
|
|
68
|
+
/**
|
|
69
|
+
* @typedef {Object} JpegFrame
|
|
70
|
+
* @property {boolean} extended
|
|
71
|
+
* @property {boolean} progressive
|
|
72
|
+
* @property {number} precision
|
|
73
|
+
* @property {number} scanLines
|
|
74
|
+
* @property {number} samplesPerLine
|
|
75
|
+
* @property {Object.<string, JpegComponent>} components
|
|
76
|
+
* @property {number[]} componentsOrder
|
|
77
|
+
* @property {number} maxH
|
|
78
|
+
* @property {number} maxV
|
|
79
|
+
* @property {number} mcusPerLine
|
|
80
|
+
* @property {number} mcusPerColumn
|
|
81
|
+
*/
|
|
55
82
|
/**
|
|
56
83
|
* @param {Uint8Array<ArrayBuffer>} codeLengths
|
|
57
84
|
* @param {Uint8Array<ArrayBuffer>} values
|
|
@@ -101,8 +128,25 @@ function buildHuffmanTable(codeLengths, values) {
|
|
|
101
128
|
}
|
|
102
129
|
return code[0].children;
|
|
103
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* @param {Uint8Array} data
|
|
133
|
+
* @param {number} initialOffset
|
|
134
|
+
* @param {JpegFrame} frame
|
|
135
|
+
* @param {JpegComponent[]} components
|
|
136
|
+
* @param {number} resetInterval
|
|
137
|
+
* @param {number} spectralStart
|
|
138
|
+
* @param {number} spectralEnd
|
|
139
|
+
* @param {number} successivePrev
|
|
140
|
+
* @param {number} successive
|
|
141
|
+
*/
|
|
104
142
|
function decodeScan(data, initialOffset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) {
|
|
105
143
|
const { mcusPerLine, progressive } = frame;
|
|
144
|
+
if (components.length > 1 && (mcusPerLine === undefined || frame.mcusPerColumn === undefined)) {
|
|
145
|
+
throw new Error('Missing MCU dimensions');
|
|
146
|
+
}
|
|
147
|
+
if (components.length === 1 && (components[0].blocksPerLine === undefined || components[0].blocksPerColumn === undefined)) {
|
|
148
|
+
throw new Error('Missing block dimensions');
|
|
149
|
+
}
|
|
106
150
|
const startOffset = initialOffset;
|
|
107
151
|
let offset = initialOffset;
|
|
108
152
|
let bitsData = 0;
|
|
@@ -123,20 +167,26 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
123
167
|
bitsCount = 7;
|
|
124
168
|
return bitsData >>> 7;
|
|
125
169
|
}
|
|
170
|
+
/** @param {HuffmanNode|undefined} tree */
|
|
126
171
|
function decodeHuffman(tree) {
|
|
172
|
+
if (!tree) {
|
|
173
|
+
throw new Error('Huffman table not found');
|
|
174
|
+
}
|
|
127
175
|
let node = tree;
|
|
128
176
|
let bit;
|
|
129
177
|
while ((bit = readBit()) !== null) { // eslint-disable-line no-cond-assign
|
|
130
|
-
|
|
131
|
-
if (typeof
|
|
132
|
-
return
|
|
178
|
+
const next = node[bit];
|
|
179
|
+
if (typeof next === 'number') {
|
|
180
|
+
return next;
|
|
133
181
|
}
|
|
134
|
-
if (typeof
|
|
182
|
+
if (typeof next !== 'object') {
|
|
135
183
|
throw new Error('invalid huffman sequence');
|
|
136
184
|
}
|
|
185
|
+
node = next;
|
|
137
186
|
}
|
|
138
187
|
return null;
|
|
139
188
|
}
|
|
189
|
+
/** @param {number} initialLength */
|
|
140
190
|
function receive(initialLength) {
|
|
141
191
|
let length = initialLength;
|
|
142
192
|
let n = 0;
|
|
@@ -150,6 +200,7 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
150
200
|
}
|
|
151
201
|
return n;
|
|
152
202
|
}
|
|
203
|
+
/** @param {number} length */
|
|
153
204
|
function receiveAndExtend(length) {
|
|
154
205
|
const n = receive(length);
|
|
155
206
|
if (n === undefined) {
|
|
@@ -160,9 +211,22 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
160
211
|
}
|
|
161
212
|
return n + (-1 << length) + 1;
|
|
162
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* @param {JpegComponent} component
|
|
216
|
+
* @param {Int32Array} zz
|
|
217
|
+
*/
|
|
163
218
|
function decodeBaseline(component, zz) {
|
|
164
219
|
const t = decodeHuffman(component.huffmanTableDC);
|
|
220
|
+
if (t === null) {
|
|
221
|
+
throw new Error('Huffman error');
|
|
222
|
+
}
|
|
165
223
|
const diff = t === 0 ? 0 : receiveAndExtend(t);
|
|
224
|
+
if (diff === undefined) {
|
|
225
|
+
throw new Error('Unexpected end of stream');
|
|
226
|
+
}
|
|
227
|
+
if (component.pred === undefined) {
|
|
228
|
+
component.pred = 0;
|
|
229
|
+
}
|
|
166
230
|
component.pred += diff;
|
|
167
231
|
zz[0] = component.pred;
|
|
168
232
|
let k = 1;
|
|
@@ -182,25 +246,51 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
182
246
|
else {
|
|
183
247
|
k += r;
|
|
184
248
|
const z = dctZigZag[k];
|
|
185
|
-
|
|
249
|
+
const val = receiveAndExtend(s);
|
|
250
|
+
if (val === undefined) {
|
|
251
|
+
throw new Error('Unexpected end of stream');
|
|
252
|
+
}
|
|
253
|
+
zz[z] = val;
|
|
186
254
|
k++;
|
|
187
255
|
}
|
|
188
256
|
}
|
|
189
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* @param {JpegComponent} component
|
|
260
|
+
* @param {Int32Array} zz
|
|
261
|
+
*/
|
|
190
262
|
function decodeDCFirst(component, zz) {
|
|
191
263
|
const t = decodeHuffman(component.huffmanTableDC);
|
|
264
|
+
if (t === null) {
|
|
265
|
+
throw new Error('Huffman error');
|
|
266
|
+
}
|
|
192
267
|
const value = receiveAndExtend(t);
|
|
193
268
|
if (value === undefined) {
|
|
194
269
|
throw new Error('Unexpected end of data in DC coefficient decoding');
|
|
195
270
|
}
|
|
196
271
|
const diff = t === 0 ? 0 : (value << successive);
|
|
272
|
+
if (component.pred === undefined) {
|
|
273
|
+
component.pred = 0;
|
|
274
|
+
}
|
|
197
275
|
component.pred += diff;
|
|
198
276
|
zz[0] = component.pred;
|
|
199
277
|
}
|
|
200
|
-
|
|
201
|
-
|
|
278
|
+
/**
|
|
279
|
+
* @param {JpegComponent} _
|
|
280
|
+
* @param {Int32Array} zz
|
|
281
|
+
*/
|
|
282
|
+
function decodeDCSuccessive(_, zz) {
|
|
283
|
+
const bit = readBit();
|
|
284
|
+
if (bit === null) {
|
|
285
|
+
throw new Error('Unexpected end of data in DC coefficient decoding');
|
|
286
|
+
}
|
|
287
|
+
zz[0] |= bit << successive;
|
|
202
288
|
}
|
|
203
289
|
let eobrun = 0;
|
|
290
|
+
/**
|
|
291
|
+
* @param {JpegComponent} component
|
|
292
|
+
* @param {Int32Array} zz
|
|
293
|
+
*/
|
|
204
294
|
function decodeACFirst(component, zz) {
|
|
205
295
|
if (eobrun > 0) {
|
|
206
296
|
eobrun--;
|
|
@@ -239,7 +329,12 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
239
329
|
}
|
|
240
330
|
}
|
|
241
331
|
let successiveACState = 0;
|
|
332
|
+
/** @type {number} */
|
|
242
333
|
let successiveACNextValue;
|
|
334
|
+
/**
|
|
335
|
+
* @param {JpegComponent} component
|
|
336
|
+
* @param {Int32Array} zz
|
|
337
|
+
*/
|
|
243
338
|
function decodeACSuccessive(component, zz) {
|
|
244
339
|
let k = spectralStart;
|
|
245
340
|
const e = spectralEnd;
|
|
@@ -273,7 +368,11 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
273
368
|
if (s !== 1) {
|
|
274
369
|
throw new Error('invalid ACn encoding');
|
|
275
370
|
}
|
|
276
|
-
|
|
371
|
+
const nextVal = receiveAndExtend(s);
|
|
372
|
+
if (nextVal === undefined) {
|
|
373
|
+
throw new Error('Unexpected end of data in AC coefficient decoding');
|
|
374
|
+
}
|
|
375
|
+
successiveACNextValue = nextVal;
|
|
277
376
|
successiveACState = r ? 2 : 3;
|
|
278
377
|
}
|
|
279
378
|
continue; // eslint-disable-line no-continue
|
|
@@ -281,7 +380,11 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
281
380
|
case 1: // skipping r zero items
|
|
282
381
|
case 2:
|
|
283
382
|
if (zz[z]) {
|
|
284
|
-
|
|
383
|
+
const bit = readBit();
|
|
384
|
+
if (bit === null) {
|
|
385
|
+
throw new Error('Unexpected end of data in AC coefficient decoding');
|
|
386
|
+
}
|
|
387
|
+
zz[z] += (bit << successive) * direction;
|
|
285
388
|
}
|
|
286
389
|
else {
|
|
287
390
|
r--;
|
|
@@ -292,7 +395,11 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
292
395
|
break;
|
|
293
396
|
case 3: // set value for a zero item
|
|
294
397
|
if (zz[z]) {
|
|
295
|
-
|
|
398
|
+
const bit = readBit();
|
|
399
|
+
if (bit === null) {
|
|
400
|
+
throw new Error('Unexpected end of data in AC coefficient decoding');
|
|
401
|
+
}
|
|
402
|
+
zz[z] += (bit << successive) * direction;
|
|
296
403
|
}
|
|
297
404
|
else {
|
|
298
405
|
zz[z] = successiveACNextValue << successive;
|
|
@@ -301,7 +408,11 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
301
408
|
break;
|
|
302
409
|
case 4: // eob
|
|
303
410
|
if (zz[z]) {
|
|
304
|
-
|
|
411
|
+
const bit = readBit();
|
|
412
|
+
if (bit === null) {
|
|
413
|
+
throw new Error('Unexpected end of data in AC coefficient decoding');
|
|
414
|
+
}
|
|
415
|
+
zz[z] += (bit << successive) * direction;
|
|
305
416
|
}
|
|
306
417
|
break;
|
|
307
418
|
default:
|
|
@@ -316,16 +427,34 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
316
427
|
}
|
|
317
428
|
}
|
|
318
429
|
}
|
|
430
|
+
/**
|
|
431
|
+
* @param {JpegComponent} component
|
|
432
|
+
* @param {function} decodeFunction
|
|
433
|
+
* @param {number} mcu
|
|
434
|
+
* @param {number} row
|
|
435
|
+
* @param {number} col
|
|
436
|
+
*/
|
|
319
437
|
function decodeMcu(component, decodeFunction, mcu, row, col) {
|
|
320
438
|
const mcuRow = (mcu / mcusPerLine) | 0;
|
|
321
439
|
const mcuCol = mcu % mcusPerLine;
|
|
322
440
|
const blockRow = (mcuRow * component.v) + row;
|
|
323
441
|
const blockCol = (mcuCol * component.h) + col;
|
|
442
|
+
if (!component.blocks) {
|
|
443
|
+
throw new Error('Missing blocks');
|
|
444
|
+
}
|
|
324
445
|
decodeFunction(component, component.blocks[blockRow][blockCol]);
|
|
325
446
|
}
|
|
447
|
+
/**
|
|
448
|
+
* @param {JpegComponent} component
|
|
449
|
+
* @param {function} decodeFunction
|
|
450
|
+
* @param {number} mcu
|
|
451
|
+
*/
|
|
326
452
|
function decodeBlock(component, decodeFunction, mcu) {
|
|
327
453
|
const blockRow = (mcu / component.blocksPerLine) | 0;
|
|
328
454
|
const blockCol = mcu % component.blocksPerLine;
|
|
455
|
+
if (!component.blocks) {
|
|
456
|
+
throw new Error('Missing blocks');
|
|
457
|
+
}
|
|
329
458
|
decodeFunction(component, component.blocks[blockRow][blockCol]);
|
|
330
459
|
}
|
|
331
460
|
const componentsLength = components.length;
|
|
@@ -402,9 +531,15 @@ function decodeScan(data, initialOffset, frame, components, resetInterval, spect
|
|
|
402
531
|
}
|
|
403
532
|
return offset - startOffset;
|
|
404
533
|
}
|
|
405
|
-
|
|
534
|
+
/**
|
|
535
|
+
* @param {JpegComponent} component
|
|
536
|
+
*/
|
|
537
|
+
function buildComponentData(component) {
|
|
406
538
|
const lines = [];
|
|
407
539
|
const { blocksPerLine, blocksPerColumn } = component;
|
|
540
|
+
if (!blocksPerLine || !blocksPerColumn || !component.blocks) {
|
|
541
|
+
throw new Error('Missing component data');
|
|
542
|
+
}
|
|
408
543
|
const samplesPerLine = blocksPerLine << 3;
|
|
409
544
|
const R = new Int32Array(64);
|
|
410
545
|
const r = new Uint8Array(64);
|
|
@@ -413,8 +548,16 @@ function buildComponentData(frame, component) {
|
|
|
413
548
|
// "Practical Fast 1-D DCT Algorithms with 11 Multiplications",
|
|
414
549
|
// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,
|
|
415
550
|
// 988-991.
|
|
551
|
+
/**
|
|
552
|
+
* @param {Int32Array} zz
|
|
553
|
+
* @param {Uint8Array} dataOut
|
|
554
|
+
* @param {Int32Array} dataIn
|
|
555
|
+
*/
|
|
416
556
|
function quantizeAndInverse(zz, dataOut, dataIn) {
|
|
417
557
|
const qt = component.quantizationTable;
|
|
558
|
+
if (!qt) {
|
|
559
|
+
throw new Error('No quantization table found');
|
|
560
|
+
}
|
|
418
561
|
let v0;
|
|
419
562
|
let v1;
|
|
420
563
|
let v2;
|
|
@@ -593,14 +736,21 @@ class JpegStreamReader {
|
|
|
593
736
|
constructor() {
|
|
594
737
|
this.jfif = null;
|
|
595
738
|
this.adobe = null;
|
|
739
|
+
/** @type {number} */
|
|
740
|
+
this.resetInterval = 0;
|
|
741
|
+
/** @type {Int32Array[]} */
|
|
596
742
|
this.quantizationTables = [];
|
|
743
|
+
/** @type {HuffmanNode[]} */
|
|
597
744
|
this.huffmanTablesAC = [];
|
|
745
|
+
/** @type {HuffmanNode[]} */
|
|
598
746
|
this.huffmanTablesDC = [];
|
|
747
|
+
/** @type {JpegFrame[]} */
|
|
599
748
|
this.frames = [];
|
|
600
749
|
}
|
|
601
750
|
resetFrames() {
|
|
602
751
|
this.frames = [];
|
|
603
752
|
}
|
|
753
|
+
/** @param {Uint8Array} data */
|
|
604
754
|
parse(data) {
|
|
605
755
|
let offset = 0;
|
|
606
756
|
// const { length } = data;
|
|
@@ -615,6 +765,7 @@ class JpegStreamReader {
|
|
|
615
765
|
offset += array.length;
|
|
616
766
|
return array;
|
|
617
767
|
}
|
|
768
|
+
/** @param {JpegFrame} frame */
|
|
618
769
|
function prepareComponents(frame) {
|
|
619
770
|
let maxH = 0;
|
|
620
771
|
let maxV = 0;
|
|
@@ -741,15 +892,21 @@ class JpegStreamReader {
|
|
|
741
892
|
case 0xFFC1: // SOF1 (Start of Frame, Extended DCT)
|
|
742
893
|
case 0xFFC2: { // SOF2 (Start of Frame, Progressive DCT)
|
|
743
894
|
readUint16(); // skip data length
|
|
895
|
+
/** @type {JpegFrame} */
|
|
744
896
|
const frame = {
|
|
745
897
|
extended: (fileMarker === 0xFFC1),
|
|
746
898
|
progressive: (fileMarker === 0xFFC2),
|
|
747
899
|
precision: data[offset++],
|
|
748
900
|
scanLines: readUint16(),
|
|
749
901
|
samplesPerLine: readUint16(),
|
|
902
|
+
/** @type {Object.<string, JpegComponent>} */
|
|
750
903
|
components: {},
|
|
751
|
-
/** @type {
|
|
904
|
+
/** @type {number[]} */
|
|
752
905
|
componentsOrder: [],
|
|
906
|
+
maxH: 0,
|
|
907
|
+
maxV: 0,
|
|
908
|
+
mcusPerLine: 0,
|
|
909
|
+
mcusPerColumn: 0,
|
|
753
910
|
};
|
|
754
911
|
const componentsCount = data[offset++];
|
|
755
912
|
let componentId;
|
|
@@ -765,6 +922,9 @@ class JpegStreamReader {
|
|
|
765
922
|
h,
|
|
766
923
|
v,
|
|
767
924
|
quantizationIdx: qId,
|
|
925
|
+
blocksPerLine: 0,
|
|
926
|
+
blocksPerColumn: 0,
|
|
927
|
+
blocks: [],
|
|
768
928
|
};
|
|
769
929
|
offset += 3;
|
|
770
930
|
}
|
|
@@ -849,11 +1009,17 @@ class JpegStreamReader {
|
|
|
849
1009
|
for (let i = 0; i < this.frames.length; i++) {
|
|
850
1010
|
const cp = this.frames[i].components;
|
|
851
1011
|
for (const j of Object.keys(cp)) {
|
|
852
|
-
|
|
853
|
-
|
|
1012
|
+
const qIdx = cp[j].quantizationIdx;
|
|
1013
|
+
if (typeof qIdx === 'number') {
|
|
1014
|
+
cp[j].quantizationTable = this.quantizationTables[qIdx];
|
|
1015
|
+
delete cp[j].quantizationIdx;
|
|
1016
|
+
}
|
|
854
1017
|
}
|
|
855
1018
|
}
|
|
856
1019
|
const frame = frames[0];
|
|
1020
|
+
if (!frame.maxH || !frame.maxV) {
|
|
1021
|
+
throw new Error('Invalid frame dimensions');
|
|
1022
|
+
}
|
|
857
1023
|
const { components, componentsOrder } = frame;
|
|
858
1024
|
const outComponents = [];
|
|
859
1025
|
const width = frame.samplesPerLine;
|
|
@@ -861,7 +1027,7 @@ class JpegStreamReader {
|
|
|
861
1027
|
for (let i = 0; i < componentsOrder.length; i++) {
|
|
862
1028
|
const component = components[componentsOrder[i]];
|
|
863
1029
|
outComponents.push({
|
|
864
|
-
lines: buildComponentData(
|
|
1030
|
+
lines: buildComponentData(component),
|
|
865
1031
|
scaleX: component.h / frame.maxH,
|
|
866
1032
|
scaleY: component.v / frame.maxV,
|
|
867
1033
|
});
|
|
@@ -881,6 +1047,9 @@ class JpegStreamReader {
|
|
|
881
1047
|
}
|
|
882
1048
|
}
|
|
883
1049
|
class JpegDecoder extends basedecoder_js_1.default {
|
|
1050
|
+
/**
|
|
1051
|
+
* @param {import('./basedecoder.js').BaseDecoderParameters & { JPEGTables?: Uint8Array }} parameters
|
|
1052
|
+
*/
|
|
884
1053
|
constructor(parameters) {
|
|
885
1054
|
super(parameters);
|
|
886
1055
|
this.reader = new JpegStreamReader();
|
|
@@ -888,6 +1057,7 @@ class JpegDecoder extends basedecoder_js_1.default {
|
|
|
888
1057
|
this.reader.parse(parameters.JPEGTables);
|
|
889
1058
|
}
|
|
890
1059
|
}
|
|
1060
|
+
/** @param {ArrayBuffer} buffer */
|
|
891
1061
|
decodeBlock(buffer) {
|
|
892
1062
|
this.reader.resetFrames();
|
|
893
1063
|
this.reader.parse(new Uint8Array(buffer));
|
|
@@ -895,4 +1065,5 @@ class JpegDecoder extends basedecoder_js_1.default {
|
|
|
895
1065
|
}
|
|
896
1066
|
}
|
|
897
1067
|
exports.default = JpegDecoder;
|
|
1068
|
+
//# sourceMappingURL=jpeg.js.map
|
|
898
1069
|
//# sourceMappingURL=jpeg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jpeg.js","sourceRoot":"","sources":["../../dist-module/compression/jpeg.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jpeg.js","sourceRoot":"","sources":["../../dist-module/compression/jpeg.js"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import('./basedecoder.js').BaseDecoderParameters & { LercParameters?: any }} LercDecoderParameters
|
|
3
|
+
*/
|
|
1
4
|
export const zstd: ZSTDDecoder;
|
|
2
5
|
export default class LercDecoder extends BaseDecoder {
|
|
3
|
-
|
|
6
|
+
/**
|
|
7
|
+
* @param {ArrayBufferLike} buffer
|
|
8
|
+
* @returns {ArrayBufferLike}
|
|
9
|
+
*/
|
|
10
|
+
decodeBlock(buffer: ArrayBufferLike): ArrayBufferLike;
|
|
4
11
|
}
|
|
12
|
+
export type LercDecoderParameters = import("./basedecoder.js").BaseDecoderParameters & {
|
|
13
|
+
LercParameters?: any;
|
|
14
|
+
};
|
|
5
15
|
import { ZSTDDecoder } from 'zstddec';
|
|
6
16
|
import BaseDecoder from './basedecoder.js';
|
|
7
17
|
//# sourceMappingURL=lerc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lerc.d.ts","sourceRoot":"","sources":["../../dist-module/compression/lerc.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lerc.d.ts","sourceRoot":"","sources":["../../dist-module/compression/lerc.js"],"names":[],"mappings":"AAMA;;GAEG;AACH,+BAAsC;AACtC;IACI;;;OAGG;IACH,oBAHW,eAAe,GACb,eAAe,CAsB3B;CACJ;oCA7BY,OAAO,kBAAkB,EAAE,qBAAqB,GAAG;IAAE,cAAc,CAAC,EAAE,GAAG,CAAA;CAAE;4BAJ5D,SAAS;wBACb,kBAAkB"}
|
|
@@ -5,30 +5,42 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.zstd = void 0;
|
|
7
7
|
const pako_1 = require("pako");
|
|
8
|
+
// @ts-expect-error
|
|
8
9
|
const lerc_1 = __importDefault(require("lerc"));
|
|
9
10
|
const zstddec_1 = require("zstddec");
|
|
10
11
|
const basedecoder_js_1 = __importDefault(require("./basedecoder.js"));
|
|
11
12
|
const globals_js_1 = require("../globals.js");
|
|
13
|
+
/**
|
|
14
|
+
* @typedef {import('./basedecoder.js').BaseDecoderParameters & { LercParameters?: any }} LercDecoderParameters
|
|
15
|
+
*/
|
|
12
16
|
exports.zstd = new zstddec_1.ZSTDDecoder();
|
|
13
17
|
class LercDecoder extends basedecoder_js_1.default {
|
|
18
|
+
/**
|
|
19
|
+
* @param {ArrayBufferLike} buffer
|
|
20
|
+
* @returns {ArrayBufferLike}
|
|
21
|
+
*/
|
|
14
22
|
decodeBlock(buffer) {
|
|
15
|
-
const
|
|
23
|
+
const params = /** @type {LercDecoderParameters} */ (this.parameters);
|
|
24
|
+
const addCompression = params.LercParameters?.[globals_js_1.LercParameters.AddCompression];
|
|
25
|
+
/** @type {ArrayBufferLike} */
|
|
26
|
+
let decoded = buffer;
|
|
16
27
|
switch (addCompression) {
|
|
17
28
|
case globals_js_1.LercAddCompression.None:
|
|
18
29
|
break;
|
|
19
30
|
case globals_js_1.LercAddCompression.Deflate:
|
|
20
|
-
|
|
31
|
+
decoded = (0, pako_1.inflate)(new Uint8Array(decoded)).buffer;
|
|
21
32
|
break;
|
|
22
33
|
case globals_js_1.LercAddCompression.Zstandard:
|
|
23
|
-
|
|
34
|
+
decoded = exports.zstd.decode(new Uint8Array(decoded)).buffer;
|
|
24
35
|
break;
|
|
25
36
|
default:
|
|
26
37
|
throw new Error(`Unsupported LERC additional compression method identifier: ${addCompression}`);
|
|
27
38
|
}
|
|
28
|
-
const lercResult = lerc_1.default.decode(
|
|
39
|
+
const lercResult = lerc_1.default.decode(decoded, { returnPixelInterleavedDims: this.parameters.planarConfiguration === 1 });
|
|
29
40
|
const lercData = lercResult.pixels[0];
|
|
30
41
|
return lercData.buffer;
|
|
31
42
|
}
|
|
32
43
|
}
|
|
33
44
|
exports.default = LercDecoder;
|
|
45
|
+
//# sourceMappingURL=lerc.js.map
|
|
34
46
|
//# sourceMappingURL=lerc.js.map
|