@maplibre/mlt 1.0.0 → 1.1.1
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/LICENSE.txt +231 -0
- package/dist/decoding/decodingUtils.js.map +1 -1
- package/dist/decoding/decodingUtils.spec.js +2 -2
- package/dist/decoding/decodingUtils.spec.js.map +1 -1
- package/dist/decoding/fsstDecoder.js.map +1 -1
- package/dist/decoding/fsstDecoder.spec.js +14 -10
- package/dist/decoding/fsstDecoder.spec.js.map +1 -1
- package/dist/decoding/geometryDecoder.js +32 -192
- package/dist/decoding/geometryDecoder.js.map +1 -1
- package/dist/decoding/geometryDecoder.spec.js.map +1 -1
- package/dist/decoding/geometryScaling.js.map +1 -1
- package/dist/decoding/intWrapper.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.spec.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.d.ts +12 -21
- package/dist/decoding/integerStreamDecoder.js +234 -234
- package/dist/decoding/integerStreamDecoder.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.spec.js +55 -35
- package/dist/decoding/integerStreamDecoder.spec.js.map +1 -1
- package/dist/decoding/propertyDecoder.js +11 -11
- package/dist/decoding/propertyDecoder.js.map +1 -1
- package/dist/decoding/propertyDecoder.spec.js +157 -197
- package/dist/decoding/propertyDecoder.spec.js.map +1 -1
- package/dist/decoding/stringDecoder.d.ts +3 -0
- package/dist/decoding/stringDecoder.js +74 -24
- package/dist/decoding/stringDecoder.js.map +1 -1
- package/dist/decoding/stringDecoder.spec.js +83 -39
- package/dist/decoding/stringDecoder.spec.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata/tile/dictionaryType.js.map +1 -1
- package/dist/metadata/tile/lengthType.js.map +1 -1
- package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -1
- package/dist/metadata/tile/logicalStreamType.js.map +1 -1
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +1 -1
- package/dist/metadata/tile/offsetType.js.map +1 -1
- package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -1
- package/dist/metadata/tile/physicalStreamType.js.map +1 -1
- package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +1 -1
- package/dist/metadata/tile/scalarType.js.map +1 -1
- package/dist/metadata/tile/streamMetadata.js.map +1 -1
- package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/tilesetMetadata.js.map +1 -1
- package/dist/metadata/tileset/typeMap.js.map +1 -1
- package/dist/mltDecoder.d.ts +1 -1
- package/dist/mltDecoder.js +21 -11
- package/dist/mltDecoder.js.map +1 -1
- package/dist/mltDecoder.spec.js.map +1 -1
- package/dist/mltMetadata.js.map +1 -1
- package/dist/vector/constant/intConstVector.js.map +1 -1
- package/dist/vector/constant/longConstVector.js.map +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/featureTable.js.map +1 -1
- package/dist/vector/filter/flatSelectionVector.d.ts +27 -0
- package/dist/vector/filter/flatSelectionVector.js +54 -0
- package/dist/vector/filter/flatSelectionVector.js.map +1 -0
- package/dist/vector/filter/flatSelectionVector.spec.d.ts +1 -0
- package/dist/vector/filter/flatSelectionVector.spec.js +51 -0
- package/dist/vector/filter/flatSelectionVector.spec.js.map +1 -0
- package/dist/vector/filter/selectionVector.d.ts +8 -0
- package/dist/vector/filter/selectionVector.js +2 -0
- package/dist/vector/filter/selectionVector.js.map +1 -0
- package/dist/vector/filter/selectionVectorUtil.spec.d.ts +1 -0
- package/dist/vector/filter/selectionVectorUtil.spec.js +154 -0
- package/dist/vector/filter/selectionVectorUtil.spec.js.map +1 -0
- package/dist/vector/filter/selectionVectorUtils.d.ts +16 -0
- package/dist/vector/filter/selectionVectorUtils.js +37 -0
- package/dist/vector/filter/selectionVectorUtils.js.map +1 -0
- package/dist/vector/filter/sequenceSelectionVector.d.ts +26 -0
- package/dist/vector/filter/sequenceSelectionVector.js +67 -0
- package/dist/vector/filter/sequenceSelectionVector.js.map +1 -0
- package/dist/vector/filter/sequenceSelectionVector.spec.d.ts +1 -0
- package/dist/vector/filter/sequenceSelectionVector.spec.js +115 -0
- package/dist/vector/filter/sequenceSelectionVector.spec.js.map +1 -0
- package/dist/vector/fixedSizeVector.js.map +1 -1
- package/dist/vector/flat/bitVector.js.map +1 -1
- package/dist/vector/flat/booleanFlatVector.js.map +1 -1
- package/dist/vector/flat/doubleFlatVector.js.map +1 -1
- package/dist/vector/flat/floatFlatVector.js.map +1 -1
- package/dist/vector/flat/floatFlatVector.spec.js.map +1 -1
- package/dist/vector/flat/intFlatVector.js.map +1 -1
- package/dist/vector/flat/intFlatVector.spec.js.map +1 -1
- package/dist/vector/flat/longFlatVector.js.map +1 -1
- package/dist/vector/flat/longFlatVector.spec.js.map +1 -1
- package/dist/vector/flat/stringFlatVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +1 -1
- package/dist/vector/geometry/constGeometryVector.d.ts +2 -2
- package/dist/vector/geometry/constGeometryVector.js +6 -6
- package/dist/vector/geometry/constGeometryVector.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +1 -1
- package/dist/vector/geometry/constGpuVector.js +3 -24
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGeometryVector.d.ts +2 -2
- package/dist/vector/geometry/flatGeometryVector.js +7 -7
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +1 -1
- package/dist/vector/geometry/flatGpuVector.js +3 -22
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/geometryType.js.map +1 -1
- package/dist/vector/geometry/geometryVector.js.map +1 -1
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/spaceFillingCurve.js.map +1 -1
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/geometry/vertexBufferType.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.spec.js.map +1 -1
- package/dist/vector/intVector.js.map +1 -1
- package/dist/vector/sequence/intSequenceVector.js.map +1 -1
- package/dist/vector/sequence/longSequenceVector.js.map +1 -1
- package/dist/vector/sequence/longSequenceVektor.spec.js.map +1 -1
- package/dist/vector/sequence/sequenceVector.js.map +1 -1
- package/dist/vector/variableSizeVector.js.map +1 -1
- package/dist/vector/vector.js.map +1 -1
- package/dist/vector/vectorType.js.map +1 -1
- package/package.json +6 -6
|
@@ -3,261 +3,261 @@ import { decodeComponentwiseDeltaVec2, decodeComponentwiseDeltaVec2Scaled, decod
|
|
|
3
3
|
import { LogicalLevelTechnique } from "../metadata/tile/logicalLevelTechnique";
|
|
4
4
|
import BitVector from "../vector/flat/bitVector";
|
|
5
5
|
import { VectorType } from "../vector/vectorType";
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
export function decodeIntStream(data, offset, streamMetadata, isSigned, scalingData) {
|
|
7
|
+
const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
8
|
+
return decodeIntBuffer(values, streamMetadata, isSigned, scalingData);
|
|
9
|
+
}
|
|
10
|
+
export function decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata) {
|
|
11
|
+
const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
12
|
+
return decodeLengthToOffsetBuffer(values, streamMetadata);
|
|
13
|
+
}
|
|
14
|
+
function decodePhysicalLevelTechnique(data, offset, streamMetadata) {
|
|
15
|
+
const physicalLevelTechnique = streamMetadata.physicalLevelTechnique;
|
|
16
|
+
if (physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR) {
|
|
17
|
+
return decodeFastPfor(data, streamMetadata.numValues, streamMetadata.byteLength, offset);
|
|
11
18
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return this.decodeLengthToOffsetBuffer(values, streamMetadata);
|
|
19
|
+
if (physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {
|
|
20
|
+
return decodeVarintInt32(data, offset, streamMetadata.numValues);
|
|
15
21
|
}
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const byteLength = streamMetadata.byteLength;
|
|
24
|
-
offset.add(byteLength);
|
|
25
|
-
//TODO: use Byte Rle for geometry type encoding
|
|
26
|
-
const slice = data.subarray(dataOffset, offset.get());
|
|
27
|
-
return new Int32Array(slice);
|
|
28
|
-
}
|
|
29
|
-
throw new Error("Specified physicalLevelTechnique is not supported (yet).");
|
|
22
|
+
if (physicalLevelTechnique === PhysicalLevelTechnique.NONE) {
|
|
23
|
+
const dataOffset = offset.get();
|
|
24
|
+
const byteLength = streamMetadata.byteLength;
|
|
25
|
+
offset.add(byteLength);
|
|
26
|
+
//TODO: use Byte Rle for geometry type encoding
|
|
27
|
+
const slice = data.subarray(dataOffset, offset.get());
|
|
28
|
+
return new Int32Array(slice);
|
|
30
29
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return isSigned ?
|
|
38
|
-
}
|
|
39
|
-
static decodeSequenceIntStream(data, offset, streamMetadata) {
|
|
40
|
-
const values = IntegerStreamDecoder.decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
41
|
-
return decodeZigZagSequenceRle(values);
|
|
30
|
+
throw new Error("Specified physicalLevelTechnique is not supported (yet).");
|
|
31
|
+
}
|
|
32
|
+
export function decodeConstIntStream(data, offset, streamMetadata, isSigned) {
|
|
33
|
+
const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
34
|
+
if (values.length === 1) {
|
|
35
|
+
const value = values[0];
|
|
36
|
+
return isSigned ? decodeZigZagValue(value) : value;
|
|
42
37
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
return isSigned ? decodeZigZagConstRle(values) : decodeUnsignedConstRle(values);
|
|
39
|
+
}
|
|
40
|
+
export function decodeSequenceIntStream(data, offset, streamMetadata) {
|
|
41
|
+
const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
42
|
+
return decodeZigZagSequenceRle(values);
|
|
43
|
+
}
|
|
44
|
+
export function decodeSequenceLongStream(data, offset, streamMetadata) {
|
|
45
|
+
const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
|
|
46
|
+
return decodeZigZagSequenceRleInt64(values);
|
|
47
|
+
}
|
|
48
|
+
export function decodeLongStream(data, offset, streamMetadata, isSigned) {
|
|
49
|
+
const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
|
|
50
|
+
return decodeLongBuffer(values, streamMetadata, isSigned);
|
|
51
|
+
}
|
|
52
|
+
export function decodeLongFloat64Stream(data, offset, streamMetadata, isSigned) {
|
|
53
|
+
const values = decodeVarintFloat64(data, streamMetadata.numValues, offset);
|
|
54
|
+
return decodeFloat64Buffer(values, streamMetadata, isSigned);
|
|
55
|
+
}
|
|
56
|
+
export function decodeConstLongStream(data, offset, streamMetadata, isSigned) {
|
|
57
|
+
const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
|
|
58
|
+
if (values.length === 1) {
|
|
59
|
+
const value = values[0];
|
|
60
|
+
return isSigned ? decodeZigZagValueInt64(value) : value;
|
|
46
61
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
62
|
+
return isSigned ? decodeZigZagConstRleInt64(values) : decodeUnsignedConstRleInt64(values);
|
|
63
|
+
}
|
|
64
|
+
function decodeIntBuffer(values, streamMetadata, isSigned, scalingData) {
|
|
65
|
+
/*
|
|
66
|
+
* Currently the encoder uses only fixed combinations of encodings.
|
|
67
|
+
* For performance reasons it is also used a fixed combination of the encodings on the decoding side.
|
|
68
|
+
* The following encodings and combinations are used:
|
|
69
|
+
* - Morton Delta -> always sorted so not ZigZag encoding needed
|
|
70
|
+
* - Delta -> currently always in combination with ZigZag encoding
|
|
71
|
+
* - Rle -> in combination with ZigZag encoding if data type is signed
|
|
72
|
+
* - Delta Rle
|
|
73
|
+
* - Componentwise Delta -> always ZigZag encoding is used
|
|
74
|
+
* */
|
|
75
|
+
switch (streamMetadata.logicalLevelTechnique1) {
|
|
76
|
+
case LogicalLevelTechnique.DELTA:
|
|
77
|
+
if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
78
|
+
const rleMetadata = streamMetadata;
|
|
79
|
+
return decodeDeltaRle(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
80
|
+
}
|
|
81
|
+
decodeZigZagDelta(values);
|
|
82
|
+
return values;
|
|
83
|
+
case LogicalLevelTechnique.RLE:
|
|
84
|
+
return decodeRle(values, streamMetadata, isSigned);
|
|
85
|
+
case LogicalLevelTechnique.MORTON:
|
|
86
|
+
fastInverseDelta(values);
|
|
87
|
+
return values;
|
|
88
|
+
case LogicalLevelTechnique.COMPONENTWISE_DELTA:
|
|
89
|
+
if (scalingData) {
|
|
90
|
+
decodeComponentwiseDeltaVec2Scaled(values, scalingData.scale, scalingData.min, scalingData.max);
|
|
91
|
+
return values;
|
|
92
|
+
}
|
|
93
|
+
decodeComponentwiseDeltaVec2(values);
|
|
94
|
+
return values;
|
|
95
|
+
case LogicalLevelTechnique.NONE:
|
|
96
|
+
if (isSigned) {
|
|
97
|
+
decodeZigZag(values);
|
|
98
|
+
}
|
|
99
|
+
return values;
|
|
100
|
+
default:
|
|
101
|
+
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
50
102
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
103
|
+
}
|
|
104
|
+
function decodeLongBuffer(values, streamMetadata, isSigned) {
|
|
105
|
+
switch (streamMetadata.logicalLevelTechnique1) {
|
|
106
|
+
case LogicalLevelTechnique.DELTA:
|
|
107
|
+
if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
108
|
+
const rleMetadata = streamMetadata;
|
|
109
|
+
return decodeDeltaRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
110
|
+
}
|
|
111
|
+
decodeZigZagDeltaInt64(values);
|
|
112
|
+
return values;
|
|
113
|
+
case LogicalLevelTechnique.RLE:
|
|
114
|
+
return decodeRleInt64(values, streamMetadata, isSigned);
|
|
115
|
+
case LogicalLevelTechnique.NONE:
|
|
116
|
+
if (isSigned) {
|
|
117
|
+
decodeZigZagInt64(values);
|
|
118
|
+
}
|
|
119
|
+
return values;
|
|
120
|
+
default:
|
|
121
|
+
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
54
122
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
123
|
+
}
|
|
124
|
+
export function decodeFloat64Buffer(values, streamMetadata, isSigned) {
|
|
125
|
+
switch (streamMetadata.logicalLevelTechnique1) {
|
|
126
|
+
case LogicalLevelTechnique.DELTA:
|
|
127
|
+
if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
128
|
+
const rleMetadata = streamMetadata;
|
|
129
|
+
values = decodeUnsignedRleFloat64(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
130
|
+
}
|
|
131
|
+
decodeZigZagDeltaFloat64(values);
|
|
132
|
+
return values;
|
|
133
|
+
case LogicalLevelTechnique.RLE:
|
|
134
|
+
return decodeRleFloat64(values, streamMetadata, isSigned);
|
|
135
|
+
case LogicalLevelTechnique.NONE:
|
|
136
|
+
if (isSigned) {
|
|
137
|
+
decodeZigZagFloat64(values);
|
|
138
|
+
}
|
|
139
|
+
return values;
|
|
140
|
+
default:
|
|
141
|
+
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
62
142
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
* - Delta -> currently always in combination with ZigZag encoding
|
|
70
|
-
* - Rle -> in combination with ZigZag encoding if data type is signed
|
|
71
|
-
* - Delta Rle
|
|
72
|
-
* - Componentwise Delta -> always ZigZag encoding is used
|
|
73
|
-
* */
|
|
74
|
-
switch (streamMetadata.logicalLevelTechnique1) {
|
|
75
|
-
case LogicalLevelTechnique.DELTA:
|
|
76
|
-
if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
77
|
-
const rleMetadata = streamMetadata;
|
|
78
|
-
return decodeDeltaRle(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
79
|
-
}
|
|
80
|
-
decodeZigZagDelta(values);
|
|
81
|
-
return values;
|
|
82
|
-
case LogicalLevelTechnique.RLE:
|
|
83
|
-
return decodeRle(values, streamMetadata, isSigned);
|
|
84
|
-
case LogicalLevelTechnique.MORTON:
|
|
85
|
-
fastInverseDelta(values);
|
|
86
|
-
return values;
|
|
87
|
-
case LogicalLevelTechnique.COMPONENTWISE_DELTA:
|
|
88
|
-
if (scalingData) {
|
|
89
|
-
decodeComponentwiseDeltaVec2Scaled(values, scalingData.scale, scalingData.min, scalingData.max);
|
|
90
|
-
return values;
|
|
91
|
-
}
|
|
92
|
-
decodeComponentwiseDeltaVec2(values);
|
|
93
|
-
return values;
|
|
94
|
-
case LogicalLevelTechnique.NONE:
|
|
95
|
-
if (isSigned) {
|
|
96
|
-
decodeZigZag(values);
|
|
97
|
-
}
|
|
98
|
-
return values;
|
|
99
|
-
default:
|
|
100
|
-
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
101
|
-
}
|
|
143
|
+
}
|
|
144
|
+
function decodeLengthToOffsetBuffer(values, streamMetadata) {
|
|
145
|
+
if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&
|
|
146
|
+
streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
|
|
147
|
+
const decodedValues = zigZagDeltaOfDeltaDecoding(values);
|
|
148
|
+
return decodedValues;
|
|
102
149
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return decodeDeltaRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
109
|
-
}
|
|
110
|
-
decodeZigZagDeltaInt64(values);
|
|
111
|
-
return values;
|
|
112
|
-
case LogicalLevelTechnique.RLE:
|
|
113
|
-
return decodeRleInt64(values, streamMetadata, isSigned);
|
|
114
|
-
case LogicalLevelTechnique.NONE:
|
|
115
|
-
if (isSigned) {
|
|
116
|
-
decodeZigZagInt64(values);
|
|
117
|
-
}
|
|
118
|
-
return values;
|
|
119
|
-
default:
|
|
120
|
-
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
121
|
-
}
|
|
150
|
+
if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.RLE &&
|
|
151
|
+
streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
|
|
152
|
+
const rleMetadata = streamMetadata;
|
|
153
|
+
const decodedValues = rleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
154
|
+
return decodedValues;
|
|
122
155
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
case LogicalLevelTechnique.RLE:
|
|
133
|
-
return decodeRleFloat64(values, streamMetadata, isSigned);
|
|
134
|
-
case LogicalLevelTechnique.NONE:
|
|
135
|
-
if (isSigned) {
|
|
136
|
-
decodeZigZagFloat64(values);
|
|
137
|
-
}
|
|
138
|
-
return values;
|
|
139
|
-
default:
|
|
140
|
-
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
141
|
-
}
|
|
156
|
+
if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.NONE &&
|
|
157
|
+
streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
|
|
158
|
+
//TODO: use fastInverseDelta again and check what are the performance problems in zoom 14
|
|
159
|
+
//fastInverseDelta(values);
|
|
160
|
+
inverseDelta(values);
|
|
161
|
+
const offsets = new Int32Array(streamMetadata.numValues + 1);
|
|
162
|
+
offsets[0] = 0;
|
|
163
|
+
offsets.set(values, 1);
|
|
164
|
+
return offsets;
|
|
142
165
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.RLE &&
|
|
150
|
-
streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
|
|
151
|
-
const rleMetadata = streamMetadata;
|
|
152
|
-
const decodedValues = rleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
153
|
-
return decodedValues;
|
|
154
|
-
}
|
|
155
|
-
if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.NONE &&
|
|
156
|
-
streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
|
|
157
|
-
//TODO: use fastInverseDelta again and check what are the performance problems in zoom 14
|
|
158
|
-
//fastInverseDelta(values);
|
|
159
|
-
inverseDelta(values);
|
|
160
|
-
const offsets = new Int32Array(streamMetadata.numValues + 1);
|
|
161
|
-
offsets[0] = 0;
|
|
162
|
-
offsets.set(values, 1);
|
|
163
|
-
return offsets;
|
|
164
|
-
}
|
|
165
|
-
if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&
|
|
166
|
-
streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
167
|
-
const rleMetadata = streamMetadata;
|
|
168
|
-
const decodedValues = zigZagRleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
169
|
-
fastInverseDelta(decodedValues);
|
|
170
|
-
return decodedValues;
|
|
171
|
-
}
|
|
172
|
-
throw new Error("Only delta encoding is supported for transforming length to offset streams yet.");
|
|
166
|
+
if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&
|
|
167
|
+
streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
168
|
+
const rleMetadata = streamMetadata;
|
|
169
|
+
const decodedValues = zigZagRleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
170
|
+
fastInverseDelta(decodedValues);
|
|
171
|
+
return decodedValues;
|
|
173
172
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
173
|
+
throw new Error("Only delta encoding is supported for transforming length to offset streams yet.");
|
|
174
|
+
}
|
|
175
|
+
export function decodeNullableIntStream(data, offset, streamMetadata, isSigned, bitVector) {
|
|
176
|
+
const values = streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR
|
|
177
|
+
? decodeFastPfor(data, streamMetadata.numValues, streamMetadata.byteLength, offset)
|
|
178
|
+
: decodeVarintInt32(data, offset, streamMetadata.numValues);
|
|
179
|
+
return decodeNullableIntBuffer(values, streamMetadata, isSigned, bitVector);
|
|
180
|
+
}
|
|
181
|
+
export function decodeNullableLongStream(data, offset, streamMetadata, isSigned, bitVector) {
|
|
182
|
+
const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
|
|
183
|
+
return decodeNullableLongBuffer(values, streamMetadata, isSigned, bitVector);
|
|
184
|
+
}
|
|
185
|
+
function decodeNullableIntBuffer(values, streamMetadata, isSigned, bitVector) {
|
|
186
|
+
switch (streamMetadata.logicalLevelTechnique1) {
|
|
187
|
+
case LogicalLevelTechnique.DELTA:
|
|
188
|
+
if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
189
|
+
const rleMetadata = streamMetadata;
|
|
190
|
+
values = decodeUnsignedRle(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
191
|
+
}
|
|
192
|
+
return decodeNullableZigZagDelta(bitVector, values);
|
|
193
|
+
case LogicalLevelTechnique.RLE:
|
|
194
|
+
return decodeNullableRle(values, streamMetadata, isSigned, bitVector);
|
|
195
|
+
case LogicalLevelTechnique.MORTON:
|
|
196
|
+
fastInverseDelta(values);
|
|
197
|
+
return values;
|
|
198
|
+
case LogicalLevelTechnique.COMPONENTWISE_DELTA:
|
|
199
|
+
decodeComponentwiseDeltaVec2(values);
|
|
200
|
+
return values;
|
|
201
|
+
case LogicalLevelTechnique.NONE:
|
|
202
|
+
values = isSigned ? padZigZagWithZeros(bitVector, values) : padWithZeros(bitVector, values);
|
|
203
|
+
return values;
|
|
204
|
+
default:
|
|
205
|
+
throw new Error("The specified Logical level technique is not supported");
|
|
179
206
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
207
|
+
}
|
|
208
|
+
function decodeNullableLongBuffer(values, streamMetadata, isSigned, bitVector) {
|
|
209
|
+
switch (streamMetadata.logicalLevelTechnique1) {
|
|
210
|
+
case LogicalLevelTechnique.DELTA:
|
|
211
|
+
if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
212
|
+
const rleMetadata = streamMetadata;
|
|
213
|
+
values = decodeUnsignedRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
214
|
+
}
|
|
215
|
+
return decodeNullableZigZagDeltaInt64(bitVector, values);
|
|
216
|
+
case LogicalLevelTechnique.RLE:
|
|
217
|
+
return decodeNullableRleInt64(values, streamMetadata, isSigned, bitVector);
|
|
218
|
+
case LogicalLevelTechnique.NONE:
|
|
219
|
+
values = isSigned ? padZigZagWithZerosInt64(bitVector, values) : padWithZerosInt64(bitVector, values);
|
|
220
|
+
return values;
|
|
221
|
+
default:
|
|
222
|
+
throw new Error("The specified Logical level technique is not supported");
|
|
183
223
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
values = decodeUnsignedRle(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
190
|
-
}
|
|
191
|
-
return decodeNullableZigZagDelta(bitVector, values);
|
|
192
|
-
case LogicalLevelTechnique.RLE:
|
|
193
|
-
return decodeNullableRle(values, streamMetadata, isSigned, bitVector);
|
|
194
|
-
case LogicalLevelTechnique.MORTON:
|
|
195
|
-
fastInverseDelta(values);
|
|
196
|
-
return values;
|
|
197
|
-
case LogicalLevelTechnique.COMPONENTWISE_DELTA:
|
|
198
|
-
decodeComponentwiseDeltaVec2(values);
|
|
199
|
-
return values;
|
|
200
|
-
case LogicalLevelTechnique.NONE:
|
|
201
|
-
values = isSigned ? padZigZagWithZeros(bitVector, values) : padWithZeros(bitVector, values);
|
|
202
|
-
return values;
|
|
203
|
-
default:
|
|
204
|
-
throw new Error("The specified Logical level technique is not supported");
|
|
205
|
-
}
|
|
224
|
+
}
|
|
225
|
+
export function getVectorType(streamMetadata, sizeOrNullabilityBuffer, data, offset) {
|
|
226
|
+
const logicalLevelTechnique1 = streamMetadata.logicalLevelTechnique1;
|
|
227
|
+
if (logicalLevelTechnique1 === LogicalLevelTechnique.RLE) {
|
|
228
|
+
return streamMetadata.runs === 1 ? VectorType.CONST : VectorType.FLAT;
|
|
206
229
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
case LogicalLevelTechnique.RLE:
|
|
216
|
-
return decodeNullableRleInt64(values, streamMetadata, isSigned, bitVector);
|
|
217
|
-
case LogicalLevelTechnique.NONE:
|
|
218
|
-
values = isSigned ? padZigZagWithZerosInt64(bitVector, values) : padWithZerosInt64(bitVector, values);
|
|
219
|
-
return values;
|
|
220
|
-
default:
|
|
221
|
-
throw new Error("The specified Logical level technique is not supported");
|
|
230
|
+
const numFeatures = sizeOrNullabilityBuffer instanceof BitVector ? sizeOrNullabilityBuffer.size() : sizeOrNullabilityBuffer;
|
|
231
|
+
if (logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&
|
|
232
|
+
streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
233
|
+
const rleMetadata = streamMetadata;
|
|
234
|
+
const runs = rleMetadata.runs;
|
|
235
|
+
const zigZagOne = 2;
|
|
236
|
+
if (rleMetadata.numRleValues !== numFeatures) {
|
|
237
|
+
return VectorType.FLAT;
|
|
222
238
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
if (logicalLevelTechnique1 === LogicalLevelTechnique.RLE) {
|
|
227
|
-
return streamMetadata.runs === 1 ? VectorType.CONST : VectorType.FLAT;
|
|
239
|
+
// Single run is always a sequence
|
|
240
|
+
if (runs === 1) {
|
|
241
|
+
return VectorType.SEQUENCE;
|
|
228
242
|
}
|
|
229
|
-
|
|
230
|
-
if (
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
if (rleMetadata.numRleValues !== numFeatures) {
|
|
236
|
-
return VectorType.FLAT;
|
|
243
|
+
// Two runs can be a sequence if both deltas are equal to 1
|
|
244
|
+
if (runs === 2) {
|
|
245
|
+
const savedOffset = offset.get();
|
|
246
|
+
let values;
|
|
247
|
+
if (streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {
|
|
248
|
+
values = decodeVarintInt32(data, offset, 4);
|
|
237
249
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
250
|
+
else {
|
|
251
|
+
const byteOffset = offset.get();
|
|
252
|
+
values = new Int32Array(data.buffer, data.byteOffset + byteOffset, 4);
|
|
241
253
|
}
|
|
242
|
-
|
|
243
|
-
if
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
if (streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {
|
|
247
|
-
values = decodeVarintInt32(data, offset, 4);
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
const byteOffset = offset.get();
|
|
251
|
-
values = new Int32Array(data.buffer, data.byteOffset + byteOffset, 4);
|
|
252
|
-
}
|
|
253
|
-
offset.set(savedOffset);
|
|
254
|
-
// Check if both deltas are encoded 1
|
|
255
|
-
if (values[2] === zigZagOne && values[3] === zigZagOne) {
|
|
256
|
-
return VectorType.SEQUENCE;
|
|
257
|
-
}
|
|
254
|
+
offset.set(savedOffset);
|
|
255
|
+
// Check if both deltas are encoded 1
|
|
256
|
+
if (values[2] === zigZagOne && values[3] === zigZagOne) {
|
|
257
|
+
return VectorType.SEQUENCE;
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
|
-
return streamMetadata.numValues === 1 ? VectorType.CONST : VectorType.FLAT;
|
|
261
260
|
}
|
|
261
|
+
return streamMetadata.numValues === 1 ? VectorType.CONST : VectorType.FLAT;
|
|
262
262
|
}
|
|
263
263
|
//# sourceMappingURL=integerStreamDecoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integerStreamDecoder.js","sourceRoot":"","sources":["../../src/decoding/integerStreamDecoder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EACH,4BAA4B,EAC5B,kCAAkC,EAClC,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,gBAAuB,CAAC;IAExB,MAAM,CAAC,eAAe,CAClB,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB,EACjB,WAA6B;QAE7B,MAAM,MAAM,GAAG,oBAAoB,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,gCAAgC,CACnC,IAAgB,EAChB,MAAkB,EAClB,cAA8B;QAE9B,MAAM,MAAM,GAAG,oBAAoB,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnE,CAAC;IAEO,MAAM,CAAC,4BAA4B,CAAC,IAAgB,EAAE,MAAkB,EAAE,cAA8B;QAC5G,MAAM,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,CAAC;QACrE,IAAI,sBAAsB,KAAK,sBAAsB,CAAC,MAAM,EAAE,CAAC;YAC3D,OAAO,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,sBAAsB,KAAK,sBAAsB,CAAC,IAAI,EAAE,CAAC;YACzD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvB,+CAA+C;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,oBAAoB,CACvB,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB;QAEjB,MAAM,MAAM,GAAG,oBAAoB,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAE/F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACvD,CAAC;QAED,OAAO,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,CAAC,uBAAuB,CAC1B,IAAgB,EAChB,MAAkB,EAClB,cAA8B;QAE9B,MAAM,MAAM,GAAG,oBAAoB,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/F,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,wBAAwB,CAC3B,IAAgB,EAChB,MAAkB,EAClB,cAA8B;QAE9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,gBAAgB,CACnB,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB;QAEjB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,uBAAuB,CAC1B,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB;QAEjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,qBAAqB,CACxB,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB;QAEjB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5D,CAAC;QAED,OAAO,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC9F,CAAC;IAEO,MAAM,CAAC,eAAe,CAC1B,MAAkB,EAClB,cAA8B,EAC9B,QAAiB,EACjB,WAA6B;QAE7B;;;;;;;;;aASK;QACL,QAAQ,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,qBAAqB,CAAC,KAAK;gBAC5B,IAAI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,cAA0C,CAAC;oBAC/D,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC9E,CAAC;gBACD,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC1B,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,SAAS,CAAC,MAAM,EAAE,cAA0C,EAAE,QAAQ,CAAC,CAAC;YACnF,KAAK,qBAAqB,CAAC,MAAM;gBAC7B,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,mBAAmB;gBAC1C,IAAI,WAAW,EAAE,CAAC;oBACd,kCAAkC,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBAChG,OAAO,MAAM,CAAC;gBAClB,CAAC;gBAED,4BAA4B,CAAC,MAAM,CAAC,CAAC;gBACrC,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,IAAI,QAAQ,EAAE,CAAC;oBACX,YAAY,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC;gBACD,OAAO,MAAM,CAAC;YAClB;gBACI,MAAM,IAAI,KAAK,CACX,2DAA2D,cAAc,CAAC,sBAAsB,EAAE,CACrG,CAAC;QACV,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAC3B,MAAqB,EACrB,cAA8B,EAC9B,QAAiB;QAEjB,QAAQ,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,qBAAqB,CAAC,KAAK;gBAC5B,IAAI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,cAA0C,CAAC;oBAC/D,OAAO,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;gBACnF,CAAC;gBACD,sBAAsB,CAAC,MAAM,CAAC,CAAC;gBAC/B,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,cAAc,CAAC,MAAM,EAAE,cAA0C,EAAE,QAAQ,CAAC,CAAC;YACxF,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,IAAI,QAAQ,EAAE,CAAC;oBACX,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC;gBACD,OAAO,MAAM,CAAC;YAClB;gBACI,MAAM,IAAI,KAAK,CACX,2DAA2D,cAAc,CAAC,sBAAsB,EAAE,CACrG,CAAC;QACV,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAC9B,MAAoB,EACpB,cAA8B,EAC9B,QAAiB;QAEjB,QAAQ,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,qBAAqB,CAAC,KAAK;gBAC5B,IAAI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,cAA0C,CAAC;oBAC/D,MAAM,GAAG,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC1F,CAAC;gBACD,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBACjC,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,gBAAgB,CAAC,MAAM,EAAE,cAA0C,EAAE,QAAQ,CAAC,CAAC;YAC1F,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,IAAI,QAAQ,EAAE,CAAC;oBACX,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,MAAM,CAAC;YAClB;gBACI,MAAM,IAAI,KAAK,CACX,2DAA2D,cAAc,CAAC,sBAAsB,EAAE,CACrG,CAAC;QACV,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,MAAkB,EAAE,cAA8B;QACxF,IACI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,KAAK;YACrE,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,IAAI,EACtE,CAAC;YACC,MAAM,aAAa,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO,aAAa,CAAC;QACzB,CAAC;QAED,IACI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG;YACnE,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,IAAI,EACtE,CAAC;YACC,MAAM,WAAW,GAAG,cAA0C,CAAC;YAC/D,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;YAC3F,OAAO,aAAa,CAAC;QACzB,CAAC;QAED,IACI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,IAAI;YACpE,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,IAAI,EACtE,CAAC;YACC,yFAAyF;YACzF,2BAA2B;YAC3B,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvB,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,IACI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,KAAK;YACrE,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EACrE,CAAC;YACC,MAAM,WAAW,GAAG,cAA0C,CAAC;YAC/D,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;YACjG,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAChC,OAAO,aAAa,CAAC;QACzB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;IACvG,CAAC;IAEM,MAAM,CAAC,uBAAuB,CACjC,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB,EACjB,SAAoB;QAEpB,MAAM,MAAM,GACR,cAAc,CAAC,sBAAsB,KAAK,sBAAsB,CAAC,SAAS;YACtE,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC;YACnF,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAEpE,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrF,CAAC;IAEM,MAAM,CAAC,wBAAwB,CAClC,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB,EACjB,SAAoB;QAEpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAClC,MAAkB,EAClB,cAA8B,EAC9B,QAAiB,EACjB,SAAoB;QAEpB,QAAQ,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,qBAAqB,CAAC,KAAK;gBAC5B,IAAI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,cAA0C,CAAC;oBAC/D,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;gBACnF,CAAC;gBACD,OAAO,yBAAyB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACxD,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1E,KAAK,qBAAqB,CAAC,MAAM;gBAC7B,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,mBAAmB;gBAC1C,4BAA4B,CAAC,MAAM,CAAC,CAAC;gBACrC,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC5F,OAAO,MAAM,CAAC;YAClB;gBACI,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,wBAAwB,CACnC,MAAqB,EACrB,cAA8B,EAC9B,QAAiB,EACjB,SAAoB;QAEpB,QAAQ,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,qBAAqB,CAAC,KAAK;gBAC5B,IAAI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,cAA0C,CAAC;oBAC/D,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;gBACxF,CAAC;gBACD,OAAO,8BAA8B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7D,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC/E,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACtG,OAAO,MAAM,CAAC;YAClB;gBACI,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAED,MAAM,CAAC,aAAa,CAChB,cAA8B,EAC9B,uBAA2C,EAC3C,IAAgB,EAChB,MAAkB;QAElB,MAAM,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,CAAC;QACrE,IAAI,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;YACvD,OAAQ,cAA2C,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QACxG,CAAC;QAED,MAAM,WAAW,GACb,uBAAuB,YAAY,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC;QAE5G,IACI,sBAAsB,KAAK,qBAAqB,CAAC,KAAK;YACtD,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EACrE,CAAC;YACC,MAAM,WAAW,GAAG,cAA0C,CAAC;YAC/D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC9B,MAAM,SAAS,GAAG,CAAC,CAAC;YAEpB,IAAI,WAAW,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;gBAC3C,OAAO,UAAU,CAAC,IAAI,CAAC;YAC3B,CAAC;YACD,kCAAkC;YAClC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,OAAO,UAAU,CAAC,QAAQ,CAAC;YAC/B,CAAC;YACD,2DAA2D;YAC3D,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;gBAEjC,IAAI,MAAkB,CAAC;gBACvB,IAAI,cAAc,CAAC,sBAAsB,KAAK,sBAAsB,CAAC,MAAM,EAAE,CAAC;oBAC1E,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACJ,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;oBAChC,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxB,qCAAqC;gBACrC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrD,OAAO,UAAU,CAAC,QAAQ,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,cAAc,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;IAC/E,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"integerStreamDecoder.js","sourceRoot":"","sources":["../../src/decoding/integerStreamDecoder.ts"],"names":[],"mappings":"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","sourcesContent":["import { type StreamMetadata } from \"../metadata/tile/streamMetadata\";\nimport { PhysicalLevelTechnique } from \"../metadata/tile/physicalLevelTechnique\";\nimport type IntWrapper from \"./intWrapper\";\nimport {\n decodeComponentwiseDeltaVec2,\n decodeComponentwiseDeltaVec2Scaled,\n decodeDeltaRle,\n decodeDeltaRleInt64,\n decodeFastPfor,\n decodeNullableRle,\n decodeNullableRleInt64,\n decodeNullableZigZagDelta,\n decodeNullableZigZagDeltaInt64,\n decodeRle,\n decodeRleFloat64,\n decodeRleInt64,\n decodeUnsignedConstRle,\n decodeUnsignedConstRleInt64,\n decodeUnsignedRle,\n decodeUnsignedRleFloat64,\n decodeUnsignedRleInt64,\n decodeVarintInt32,\n decodeVarintInt64,\n decodeVarintFloat64,\n decodeZigZag,\n decodeZigZagConstRle,\n decodeZigZagConstRleInt64,\n decodeZigZagDelta,\n decodeZigZagDeltaFloat64,\n decodeZigZagDeltaInt64,\n decodeZigZagFloat64,\n decodeZigZagInt64,\n decodeZigZagSequenceRle,\n decodeZigZagSequenceRleInt64,\n decodeZigZagValue,\n decodeZigZagValueInt64,\n fastInverseDelta,\n inverseDelta,\n padWithZeros,\n padWithZerosInt64,\n padZigZagWithZeros,\n padZigZagWithZerosInt64,\n rleDeltaDecoding,\n zigZagDeltaOfDeltaDecoding,\n zigZagRleDeltaDecoding,\n} from \"./integerDecodingUtils\";\nimport { LogicalLevelTechnique } from \"../metadata/tile/logicalLevelTechnique\";\nimport { type RleEncodedStreamMetadata } from \"../metadata/tile/rleEncodedStreamMetadata\";\nimport BitVector from \"../vector/flat/bitVector\";\nimport { VectorType } from \"../vector/vectorType\";\nimport type GeometryScaling from \"./geometryScaling\";\n\nexport function decodeIntStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n scalingData?: GeometryScaling,\n): Int32Array {\n const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);\n return decodeIntBuffer(values, streamMetadata, isSigned, scalingData);\n}\n\nexport function decodeLengthStreamToOffsetBuffer(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n): Int32Array {\n const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);\n return decodeLengthToOffsetBuffer(values, streamMetadata);\n}\n\nfunction decodePhysicalLevelTechnique(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata) {\n const physicalLevelTechnique = streamMetadata.physicalLevelTechnique;\n if (physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR) {\n return decodeFastPfor(data, streamMetadata.numValues, streamMetadata.byteLength, offset);\n }\n if (physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {\n return decodeVarintInt32(data, offset, streamMetadata.numValues);\n }\n\n if (physicalLevelTechnique === PhysicalLevelTechnique.NONE) {\n const dataOffset = offset.get();\n const byteLength = streamMetadata.byteLength;\n offset.add(byteLength);\n //TODO: use Byte Rle for geometry type encoding\n const slice = data.subarray(dataOffset, offset.get());\n return new Int32Array(slice);\n }\n\n throw new Error(\"Specified physicalLevelTechnique is not supported (yet).\");\n}\n\nexport function decodeConstIntStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n): number {\n const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);\n\n if (values.length === 1) {\n const value = values[0];\n return isSigned ? decodeZigZagValue(value) : value;\n }\n\n return isSigned ? decodeZigZagConstRle(values) : decodeUnsignedConstRle(values);\n}\n\nexport function decodeSequenceIntStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n): [baseValue: number, delta: number] {\n const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);\n return decodeZigZagSequenceRle(values);\n}\n\nexport function decodeSequenceLongStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n): [baseValue: bigint, delta: bigint] {\n const values = decodeVarintInt64(data, offset, streamMetadata.numValues);\n return decodeZigZagSequenceRleInt64(values);\n}\n\nexport function decodeLongStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n): BigInt64Array {\n const values = decodeVarintInt64(data, offset, streamMetadata.numValues);\n return decodeLongBuffer(values, streamMetadata, isSigned);\n}\n\nexport function decodeLongFloat64Stream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n): Float64Array {\n const values = decodeVarintFloat64(data, streamMetadata.numValues, offset);\n return decodeFloat64Buffer(values, streamMetadata, isSigned);\n}\n\nexport function decodeConstLongStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n): bigint {\n const values = decodeVarintInt64(data, offset, streamMetadata.numValues);\n\n if (values.length === 1) {\n const value = values[0];\n return isSigned ? decodeZigZagValueInt64(value) : value;\n }\n\n return isSigned ? decodeZigZagConstRleInt64(values) : decodeUnsignedConstRleInt64(values);\n}\n\nfunction decodeIntBuffer(\n values: Int32Array,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n scalingData?: GeometryScaling,\n): Int32Array {\n /*\n * Currently the encoder uses only fixed combinations of encodings.\n * For performance reasons it is also used a fixed combination of the encodings on the decoding side.\n * The following encodings and combinations are used:\n * - Morton Delta -> always sorted so not ZigZag encoding needed\n * - Delta -> currently always in combination with ZigZag encoding\n * - Rle -> in combination with ZigZag encoding if data type is signed\n * - Delta Rle\n * - Componentwise Delta -> always ZigZag encoding is used\n * */\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n return decodeDeltaRle(values, rleMetadata.runs, rleMetadata.numRleValues);\n }\n decodeZigZagDelta(values);\n return values;\n case LogicalLevelTechnique.RLE:\n return decodeRle(values, streamMetadata as RleEncodedStreamMetadata, isSigned);\n case LogicalLevelTechnique.MORTON:\n fastInverseDelta(values);\n return values;\n case LogicalLevelTechnique.COMPONENTWISE_DELTA:\n if (scalingData) {\n decodeComponentwiseDeltaVec2Scaled(values, scalingData.scale, scalingData.min, scalingData.max);\n return values;\n }\n\n decodeComponentwiseDeltaVec2(values);\n return values;\n case LogicalLevelTechnique.NONE:\n if (isSigned) {\n decodeZigZag(values);\n }\n return values;\n default:\n throw new Error(\n `The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`,\n );\n }\n}\n\nfunction decodeLongBuffer(values: BigInt64Array, streamMetadata: StreamMetadata, isSigned: boolean): BigInt64Array {\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n return decodeDeltaRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);\n }\n decodeZigZagDeltaInt64(values);\n return values;\n case LogicalLevelTechnique.RLE:\n return decodeRleInt64(values, streamMetadata as RleEncodedStreamMetadata, isSigned);\n case LogicalLevelTechnique.NONE:\n if (isSigned) {\n decodeZigZagInt64(values);\n }\n return values;\n default:\n throw new Error(\n `The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`,\n );\n }\n}\n\nexport function decodeFloat64Buffer(\n values: Float64Array,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n): Float64Array {\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n values = decodeUnsignedRleFloat64(values, rleMetadata.runs, rleMetadata.numRleValues);\n }\n decodeZigZagDeltaFloat64(values);\n return values;\n case LogicalLevelTechnique.RLE:\n return decodeRleFloat64(values, streamMetadata as RleEncodedStreamMetadata, isSigned);\n case LogicalLevelTechnique.NONE:\n if (isSigned) {\n decodeZigZagFloat64(values);\n }\n return values;\n default:\n throw new Error(\n `The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`,\n );\n }\n}\n\nfunction decodeLengthToOffsetBuffer(values: Int32Array, streamMetadata: StreamMetadata): Int32Array {\n if (\n streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&\n streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE\n ) {\n const decodedValues = zigZagDeltaOfDeltaDecoding(values);\n return decodedValues;\n }\n\n if (\n streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.RLE &&\n streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE\n ) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n const decodedValues = rleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);\n return decodedValues;\n }\n\n if (\n streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.NONE &&\n streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE\n ) {\n //TODO: use fastInverseDelta again and check what are the performance problems in zoom 14\n //fastInverseDelta(values);\n inverseDelta(values);\n const offsets = new Int32Array(streamMetadata.numValues + 1);\n offsets[0] = 0;\n offsets.set(values, 1);\n return offsets;\n }\n\n if (\n streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&\n streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE\n ) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n const decodedValues = zigZagRleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);\n fastInverseDelta(decodedValues);\n return decodedValues;\n }\n\n throw new Error(\"Only delta encoding is supported for transforming length to offset streams yet.\");\n}\n\nexport function decodeNullableIntStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n bitVector: BitVector,\n): Int32Array {\n const values =\n streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR\n ? decodeFastPfor(data, streamMetadata.numValues, streamMetadata.byteLength, offset)\n : decodeVarintInt32(data, offset, streamMetadata.numValues);\n\n return decodeNullableIntBuffer(values, streamMetadata, isSigned, bitVector);\n}\n\nexport function decodeNullableLongStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n bitVector: BitVector,\n): BigInt64Array {\n const values = decodeVarintInt64(data, offset, streamMetadata.numValues);\n return decodeNullableLongBuffer(values, streamMetadata, isSigned, bitVector);\n}\n\nfunction decodeNullableIntBuffer(\n values: Int32Array,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n bitVector: BitVector,\n): Int32Array {\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n values = decodeUnsignedRle(values, rleMetadata.runs, rleMetadata.numRleValues);\n }\n return decodeNullableZigZagDelta(bitVector, values);\n case LogicalLevelTechnique.RLE:\n return decodeNullableRle(values, streamMetadata, isSigned, bitVector);\n case LogicalLevelTechnique.MORTON:\n fastInverseDelta(values);\n return values;\n case LogicalLevelTechnique.COMPONENTWISE_DELTA:\n decodeComponentwiseDeltaVec2(values);\n return values;\n case LogicalLevelTechnique.NONE:\n values = isSigned ? padZigZagWithZeros(bitVector, values) : padWithZeros(bitVector, values);\n return values;\n default:\n throw new Error(\"The specified Logical level technique is not supported\");\n }\n}\n\nfunction decodeNullableLongBuffer(\n values: BigInt64Array,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n bitVector: BitVector,\n): BigInt64Array {\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n values = decodeUnsignedRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);\n }\n return decodeNullableZigZagDeltaInt64(bitVector, values);\n case LogicalLevelTechnique.RLE:\n return decodeNullableRleInt64(values, streamMetadata, isSigned, bitVector);\n case LogicalLevelTechnique.NONE:\n values = isSigned ? padZigZagWithZerosInt64(bitVector, values) : padWithZerosInt64(bitVector, values);\n return values;\n default:\n throw new Error(\"The specified Logical level technique is not supported\");\n }\n}\n\nexport function getVectorType(\n streamMetadata: StreamMetadata,\n sizeOrNullabilityBuffer: number | BitVector,\n data: Uint8Array,\n offset: IntWrapper,\n): VectorType {\n const logicalLevelTechnique1 = streamMetadata.logicalLevelTechnique1;\n if (logicalLevelTechnique1 === LogicalLevelTechnique.RLE) {\n return (streamMetadata as RleEncodedStreamMetadata).runs === 1 ? VectorType.CONST : VectorType.FLAT;\n }\n\n const numFeatures =\n sizeOrNullabilityBuffer instanceof BitVector ? sizeOrNullabilityBuffer.size() : sizeOrNullabilityBuffer;\n\n if (\n logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&\n streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE\n ) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n const runs = rleMetadata.runs;\n const zigZagOne = 2;\n\n if (rleMetadata.numRleValues !== numFeatures) {\n return VectorType.FLAT;\n }\n // Single run is always a sequence\n if (runs === 1) {\n return VectorType.SEQUENCE;\n }\n // Two runs can be a sequence if both deltas are equal to 1\n if (runs === 2) {\n const savedOffset = offset.get();\n\n let values: Int32Array;\n if (streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {\n values = decodeVarintInt32(data, offset, 4);\n } else {\n const byteOffset = offset.get();\n values = new Int32Array(data.buffer, data.byteOffset + byteOffset, 4);\n }\n offset.set(savedOffset);\n // Check if both deltas are encoded 1\n if (values[2] === zigZagOne && values[3] === zigZagOne) {\n return VectorType.SEQUENCE;\n }\n }\n }\n\n return streamMetadata.numValues === 1 ? VectorType.CONST : VectorType.FLAT;\n}\n"]}
|