Adds MMSys 18
This commit is contained in:
parent
2370d41471
commit
afb8bee33d
|
@ -0,0 +1,37 @@
|
|||
const fs = require('fs');
|
||||
const optimum = 100;
|
||||
|
||||
function find(path) {
|
||||
let output = [];
|
||||
for (let content of fs.readdirSync(path, {withFileTypes: true})) {
|
||||
if (content.isDirectory()) {
|
||||
output.push(...find(path + '/' + content.name));
|
||||
} else {
|
||||
output.push(path + '/' + content.name);
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
function optimizeCurve(path) {
|
||||
let input = fs.readFileSync(path, 'utf-8')
|
||||
.split('\n')
|
||||
.map((x) => x.split(' '));
|
||||
|
||||
let output = [input[0]];
|
||||
|
||||
let step = Math.floor(input.length / optimum);
|
||||
|
||||
for (let i = 1; i < input.length; i += step) {
|
||||
output.push(input[i]);
|
||||
}
|
||||
|
||||
fs.writeFileSync(path.slice(0, - '-full.dat'.length) + '.dat', output.map((x) => x.join(' ')).join('\n'));
|
||||
}
|
||||
|
||||
for (let file of find('.')) {
|
||||
if (file.endsWith('-full.dat')) {
|
||||
optimizeCurve(file);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,420 +1,102 @@
|
|||
x y1 y2
|
||||
50 0.131942 0.238320
|
||||
100 0.205725 0.356426
|
||||
150 0.242529 0.399903
|
||||
200 0.278507 0.436995
|
||||
250 0.303498 0.470774
|
||||
300 0.326138 0.501938
|
||||
350 0.345066 0.530680
|
||||
400 0.366400 0.557247
|
||||
450 0.380507 0.581496
|
||||
500 0.397580 0.603497
|
||||
550 0.412134 0.623504
|
||||
600 0.421523 0.641811
|
||||
650 0.428828 0.659131
|
||||
700 0.434932 0.675321
|
||||
750 0.441448 0.690581
|
||||
800 0.449477 0.705094
|
||||
850 0.459193 0.718605
|
||||
900 0.465525 0.731273
|
||||
950 0.473074 0.743392
|
||||
1000 0.480954 0.755044
|
||||
1050 0.487500 0.766290
|
||||
1100 0.492953 0.777063
|
||||
1150 0.497089 0.787407
|
||||
1200 0.501430 0.797337
|
||||
1250 0.507154 0.806836
|
||||
1300 0.510778 0.815817
|
||||
1350 0.517049 0.824390
|
||||
1400 0.521230 0.832663
|
||||
1450 0.522772 0.840678
|
||||
1500 0.524264 0.848443
|
||||
1550 0.526208 0.855931
|
||||
1600 0.529293 0.863128
|
||||
1650 0.532167 0.869959
|
||||
1700 0.534288 0.876448
|
||||
1750 0.539359 0.882622
|
||||
1800 0.543343 0.888526
|
||||
1850 0.546010 0.894202
|
||||
1900 0.548814 0.899647
|
||||
1950 0.552221 0.904834
|
||||
2000 0.556037 0.909772
|
||||
2050 0.560241 0.914487
|
||||
2100 0.565780 0.918977
|
||||
2150 0.570375 0.923214
|
||||
2200 0.573157 0.927178
|
||||
2250 0.578510 0.930889
|
||||
1 0.005755 0.009458
|
||||
210 0.283952 0.443984
|
||||
419 0.371935 0.566748
|
||||
628 0.426774 0.651649
|
||||
837 0.457305 0.715185
|
||||
1046 0.487327 0.765409
|
||||
1255 0.507299 0.807756
|
||||
1464 0.523058 0.842872
|
||||
1673 0.532736 0.872979
|
||||
1882 0.548073 0.897718
|
||||
2091 0.564363 0.918185
|
||||
2300 0.584053 0.934271
|
||||
2350 0.593370 0.937358
|
||||
2400 0.601812 0.940252
|
||||
2450 0.617184 0.943003
|
||||
2500 0.624025 0.945608
|
||||
2550 0.630036 0.948090
|
||||
2600 0.637701 0.950440
|
||||
2650 0.646357 0.952698
|
||||
2700 0.653498 0.954861
|
||||
2750 0.665690 0.956936
|
||||
2800 0.675088 0.958936
|
||||
2850 0.686781 0.960854
|
||||
2900 0.686909 0.962623
|
||||
2950 0.687540 0.964227
|
||||
3000 0.687849 0.965722
|
||||
3050 0.688321 0.967139
|
||||
3100 0.693394 0.968524
|
||||
3150 0.694474 0.969839
|
||||
3200 0.705058 0.971154
|
||||
3250 0.708841 0.972438
|
||||
3300 0.710565 0.973670
|
||||
3350 0.720899 0.974870
|
||||
3400 0.725468 0.976020
|
||||
3450 0.731085 0.977133
|
||||
3500 0.736501 0.978201
|
||||
3550 0.738313 0.979218
|
||||
3600 0.743687 0.980205
|
||||
3650 0.752294 0.981191
|
||||
3700 0.754119 0.982101
|
||||
3750 0.757645 0.983005
|
||||
3800 0.758436 0.983841
|
||||
3850 0.759179 0.984663
|
||||
3900 0.762766 0.985485
|
||||
3950 0.767053 0.986257
|
||||
4000 0.768039 0.986997
|
||||
4050 0.768951 0.987736
|
||||
4100 0.770770 0.988425
|
||||
4150 0.773462 0.989082
|
||||
4200 0.782674 0.989740
|
||||
4250 0.784454 0.990392
|
||||
4300 0.791198 0.990968
|
||||
4350 0.800382 0.991543
|
||||
4400 0.805439 0.992118
|
||||
4450 0.806450 0.992688
|
||||
4500 0.810880 0.993181
|
||||
4550 0.812841 0.993674
|
||||
4600 0.813789 0.994167
|
||||
4650 0.817104 0.994660
|
||||
4700 0.821348 0.995153
|
||||
4750 0.823234 0.995582
|
||||
4800 0.825861 0.995993
|
||||
4850 0.829420 0.996404
|
||||
4900 0.832822 0.996815
|
||||
4950 0.839297 0.997170
|
||||
5000 0.842057 0.997499
|
||||
5050 0.845612 0.997827
|
||||
5100 0.850905 0.998082
|
||||
5150 0.854108 0.998329
|
||||
5200 0.857518 0.998575
|
||||
5250 0.859906 0.998817
|
||||
5300 0.862068 0.998981
|
||||
5350 0.863851 0.999145
|
||||
5400 0.865889 0.999310
|
||||
5450 0.868748 0.999474
|
||||
5500 0.875016 0.999637
|
||||
5550 0.879465 0.999719
|
||||
5600 0.884537 0.999801
|
||||
5650 0.891037 0.999883
|
||||
5700 0.894935 0.999965
|
||||
5750 0.899050 1.000000
|
||||
5800 0.906692 1.000000
|
||||
5850 0.914201 1.000000
|
||||
5900 0.919515 1.000000
|
||||
5950 0.925242 1.000000
|
||||
6000 0.931547 1.000000
|
||||
6050 0.936965 1.000000
|
||||
6100 0.943933 1.000000
|
||||
6150 0.948192 1.000000
|
||||
6200 0.952154 1.000000
|
||||
6250 0.959043 1.000000
|
||||
6300 0.965127 1.000000
|
||||
6350 0.969322 1.000000
|
||||
6400 0.971877 1.000000
|
||||
6450 0.974122 1.000000
|
||||
6500 0.975494 1.000000
|
||||
6550 0.977028 1.000000
|
||||
6600 0.979805 1.000000
|
||||
6650 0.980725 1.000000
|
||||
6700 0.982934 1.000000
|
||||
6750 0.984247 1.000000
|
||||
6800 0.984938 1.000000
|
||||
6850 0.986581 1.000000
|
||||
6900 0.987715 1.000000
|
||||
6950 0.988011 1.000000
|
||||
7000 0.988596 1.000000
|
||||
7050 0.989161 1.000000
|
||||
7100 0.989237 1.000000
|
||||
7150 0.989559 1.000000
|
||||
7200 0.989738 1.000000
|
||||
7250 0.990027 1.000000
|
||||
7300 0.990590 1.000000
|
||||
7350 0.991285 1.000000
|
||||
7400 0.991809 1.000000
|
||||
7450 0.992369 1.000000
|
||||
7500 0.992830 1.000000
|
||||
7550 0.993457 1.000000
|
||||
7600 0.993936 1.000000
|
||||
7650 0.994172 1.000000
|
||||
7700 0.994531 1.000000
|
||||
7750 0.994823 1.000000
|
||||
7800 0.995125 1.000000
|
||||
7850 0.995492 1.000000
|
||||
7900 0.995688 1.000000
|
||||
7950 0.995964 1.000000
|
||||
8000 0.996158 1.000000
|
||||
8050 0.996327 1.000000
|
||||
8100 0.996432 1.000000
|
||||
8150 0.996633 1.000000
|
||||
8200 0.996780 1.000000
|
||||
8250 0.996848 1.000000
|
||||
8300 0.996981 1.000000
|
||||
8350 0.997045 1.000000
|
||||
8400 0.997114 1.000000
|
||||
8450 0.997242 1.000000
|
||||
8500 0.997315 1.000000
|
||||
8550 0.997366 1.000000
|
||||
8600 0.997487 1.000000
|
||||
8650 0.997601 1.000000
|
||||
8700 0.997656 1.000000
|
||||
8750 0.997775 1.000000
|
||||
8800 0.997900 1.000000
|
||||
8850 0.997944 1.000000
|
||||
8900 0.998108 1.000000
|
||||
8950 0.998161 1.000000
|
||||
9000 0.998217 1.000000
|
||||
9050 0.998389 1.000000
|
||||
9100 0.998480 1.000000
|
||||
9150 0.998672 1.000000
|
||||
9200 0.998779 1.000000
|
||||
9250 0.998879 1.000000
|
||||
9300 0.998945 1.000000
|
||||
9350 0.999020 1.000000
|
||||
9400 0.999121 1.000000
|
||||
9450 0.999205 1.000000
|
||||
9500 0.999285 1.000000
|
||||
9550 0.999412 1.000000
|
||||
9600 0.999463 1.000000
|
||||
9650 0.999499 1.000000
|
||||
9700 0.999551 1.000000
|
||||
9750 0.999589 1.000000
|
||||
9800 0.999625 1.000000
|
||||
9850 0.999643 1.000000
|
||||
9900 0.999655 1.000000
|
||||
9950 0.999689 1.000000
|
||||
10000 0.999694 1.000000
|
||||
10050 0.999698 1.000000
|
||||
10100 0.999827 1.000000
|
||||
10150 0.999870 1.000000
|
||||
10200 0.999875 1.000000
|
||||
10250 0.999875 1.000000
|
||||
10300 0.999877 1.000000
|
||||
10350 0.999878 1.000000
|
||||
10400 0.999880 1.000000
|
||||
10450 0.999880 1.000000
|
||||
10500 0.999993 1.000000
|
||||
10550 0.999993 1.000000
|
||||
10600 0.999993 1.000000
|
||||
10650 1.000000 1.000000
|
||||
10700 1.000000 1.000000
|
||||
10750 1.000000 1.000000
|
||||
10800 1.000000 1.000000
|
||||
10850 1.000000 1.000000
|
||||
10900 1.000000 1.000000
|
||||
10950 1.000000 1.000000
|
||||
11000 1.000000 1.000000
|
||||
11050 1.000000 1.000000
|
||||
11100 1.000000 1.000000
|
||||
11150 1.000000 1.000000
|
||||
11200 1.000000 1.000000
|
||||
11250 1.000000 1.000000
|
||||
11300 1.000000 1.000000
|
||||
11350 1.000000 1.000000
|
||||
11400 1.000000 1.000000
|
||||
11450 1.000000 1.000000
|
||||
11500 1.000000 1.000000
|
||||
11550 1.000000 1.000000
|
||||
11600 1.000000 1.000000
|
||||
11650 1.000000 1.000000
|
||||
11700 1.000000 1.000000
|
||||
11750 1.000000 1.000000
|
||||
11800 1.000000 1.000000
|
||||
11850 1.000000 1.000000
|
||||
11900 1.000000 1.000000
|
||||
11950 1.000000 1.000000
|
||||
12000 1.000000 1.000000
|
||||
12050 1.000000 1.000000
|
||||
12100 1.000000 1.000000
|
||||
12150 1.000000 1.000000
|
||||
12200 1.000000 1.000000
|
||||
12250 1.000000 1.000000
|
||||
12300 1.000000 1.000000
|
||||
12350 1.000000 1.000000
|
||||
12400 1.000000 1.000000
|
||||
12450 1.000000 1.000000
|
||||
12500 1.000000 1.000000
|
||||
12550 1.000000 1.000000
|
||||
12600 1.000000 1.000000
|
||||
12650 1.000000 1.000000
|
||||
12700 1.000000 1.000000
|
||||
2509 0.625557 0.946067
|
||||
2718 0.663158 0.955622
|
||||
2927 0.687540 0.963509
|
||||
3136 0.694305 0.969471
|
||||
3345 0.720457 0.974755
|
||||
3554 0.742463 0.979297
|
||||
3763 0.757721 0.983233
|
||||
3972 0.767483 0.986583
|
||||
4181 0.778537 0.989490
|
||||
4390 0.805164 0.992003
|
||||
4599 0.813789 0.994157
|
||||
4808 0.826447 0.996059
|
||||
5017 0.843146 0.997610
|
||||
5226 0.858641 0.998703
|
||||
5435 0.867922 0.999425
|
||||
5644 0.890417 0.999873
|
||||
5853 0.914330 1.000000
|
||||
6062 0.939489 1.000000
|
||||
6271 0.960974 1.000000
|
||||
6480 0.975065 1.000000
|
||||
6689 0.982177 1.000000
|
||||
6898 0.987715 1.000000
|
||||
7107 0.989260 1.000000
|
||||
7316 0.990782 1.000000
|
||||
7525 0.993237 1.000000
|
||||
7734 0.994721 1.000000
|
||||
7943 0.995942 1.000000
|
||||
8152 0.996636 1.000000
|
||||
8361 0.997071 1.000000
|
||||
8570 0.997448 1.000000
|
||||
8779 0.997860 1.000000
|
||||
8988 0.998217 1.000000
|
||||
9197 0.998779 1.000000
|
||||
9406 0.999129 1.000000
|
||||
9615 0.999463 1.000000
|
||||
9824 0.999635 1.000000
|
||||
10033 0.999694 1.000000
|
||||
10242 0.999875 1.000000
|
||||
10451 0.999880 1.000000
|
||||
10660 1.000000 1.000000
|
||||
10869 1.000000 1.000000
|
||||
11078 1.000000 1.000000
|
||||
11287 1.000000 1.000000
|
||||
11496 1.000000 1.000000
|
||||
11705 1.000000 1.000000
|
||||
11914 1.000000 1.000000
|
||||
12123 1.000000 1.000000
|
||||
12332 1.000000 1.000000
|
||||
12541 1.000000 1.000000
|
||||
12750 1.000000 1.000000
|
||||
12800 1.000000 1.000000
|
||||
12850 1.000000 1.000000
|
||||
12900 1.000000 1.000000
|
||||
12950 1.000000 1.000000
|
||||
13000 1.000000 1.000000
|
||||
13050 1.000000 1.000000
|
||||
13100 1.000000 1.000000
|
||||
13150 1.000000 1.000000
|
||||
13200 1.000000 1.000000
|
||||
13250 1.000000 1.000000
|
||||
13300 1.000000 1.000000
|
||||
13350 1.000000 1.000000
|
||||
13400 1.000000 1.000000
|
||||
13450 1.000000 1.000000
|
||||
13500 1.000000 1.000000
|
||||
13550 1.000000 1.000000
|
||||
13600 1.000000 1.000000
|
||||
13650 1.000000 1.000000
|
||||
13700 1.000000 1.000000
|
||||
13750 1.000000 1.000000
|
||||
13800 1.000000 1.000000
|
||||
13850 1.000000 1.000000
|
||||
13900 1.000000 1.000000
|
||||
13950 1.000000 1.000000
|
||||
14000 1.000000 1.000000
|
||||
14050 1.000000 1.000000
|
||||
14100 1.000000 1.000000
|
||||
14150 1.000000 1.000000
|
||||
14200 1.000000 1.000000
|
||||
14250 1.000000 1.000000
|
||||
14300 1.000000 1.000000
|
||||
14350 1.000000 1.000000
|
||||
14400 1.000000 1.000000
|
||||
14450 1.000000 1.000000
|
||||
14500 1.000000 1.000000
|
||||
14550 1.000000 1.000000
|
||||
14600 1.000000 1.000000
|
||||
14650 1.000000 1.000000
|
||||
14700 1.000000 1.000000
|
||||
14750 1.000000 1.000000
|
||||
14800 1.000000 1.000000
|
||||
14850 1.000000 1.000000
|
||||
14900 1.000000 1.000000
|
||||
14950 1.000000 1.000000
|
||||
15000 1.000000 1.000000
|
||||
15050 1.000000 1.000000
|
||||
15100 1.000000 1.000000
|
||||
15150 1.000000 1.000000
|
||||
15200 1.000000 1.000000
|
||||
15250 1.000000 1.000000
|
||||
15300 1.000000 1.000000
|
||||
15350 1.000000 1.000000
|
||||
15400 1.000000 1.000000
|
||||
15450 1.000000 1.000000
|
||||
15500 1.000000 1.000000
|
||||
15550 1.000000 1.000000
|
||||
15600 1.000000 1.000000
|
||||
15650 1.000000 1.000000
|
||||
15700 1.000000 1.000000
|
||||
15750 1.000000 1.000000
|
||||
15800 1.000000 1.000000
|
||||
15850 1.000000 1.000000
|
||||
15900 1.000000 1.000000
|
||||
15950 1.000000 1.000000
|
||||
16000 1.000000 1.000000
|
||||
16050 1.000000 1.000000
|
||||
16100 1.000000 1.000000
|
||||
16150 1.000000 1.000000
|
||||
16200 1.000000 1.000000
|
||||
16250 1.000000 1.000000
|
||||
16300 1.000000 1.000000
|
||||
16350 1.000000 1.000000
|
||||
16400 1.000000 1.000000
|
||||
16450 1.000000 1.000000
|
||||
16500 1.000000 1.000000
|
||||
16550 1.000000 1.000000
|
||||
16600 1.000000 1.000000
|
||||
16650 1.000000 1.000000
|
||||
16700 1.000000 1.000000
|
||||
16750 1.000000 1.000000
|
||||
16800 1.000000 1.000000
|
||||
16850 1.000000 1.000000
|
||||
16900 1.000000 1.000000
|
||||
16950 1.000000 1.000000
|
||||
17000 1.000000 1.000000
|
||||
17050 1.000000 1.000000
|
||||
17100 1.000000 1.000000
|
||||
17150 1.000000 1.000000
|
||||
17200 1.000000 1.000000
|
||||
17250 1.000000 1.000000
|
||||
17300 1.000000 1.000000
|
||||
17350 1.000000 1.000000
|
||||
17400 1.000000 1.000000
|
||||
17450 1.000000 1.000000
|
||||
17500 1.000000 1.000000
|
||||
17550 1.000000 1.000000
|
||||
17600 1.000000 1.000000
|
||||
17650 1.000000 1.000000
|
||||
17700 1.000000 1.000000
|
||||
17750 1.000000 1.000000
|
||||
17800 1.000000 1.000000
|
||||
17850 1.000000 1.000000
|
||||
17900 1.000000 1.000000
|
||||
17950 1.000000 1.000000
|
||||
18000 1.000000 1.000000
|
||||
18050 1.000000 1.000000
|
||||
18100 1.000000 1.000000
|
||||
18150 1.000000 1.000000
|
||||
18200 1.000000 1.000000
|
||||
18250 1.000000 1.000000
|
||||
18300 1.000000 1.000000
|
||||
18350 1.000000 1.000000
|
||||
18400 1.000000 1.000000
|
||||
18450 1.000000 1.000000
|
||||
18500 1.000000 1.000000
|
||||
18550 1.000000 1.000000
|
||||
18600 1.000000 1.000000
|
||||
18650 1.000000 1.000000
|
||||
18700 1.000000 1.000000
|
||||
18750 1.000000 1.000000
|
||||
18800 1.000000 1.000000
|
||||
18850 1.000000 1.000000
|
||||
18900 1.000000 1.000000
|
||||
18950 1.000000 1.000000
|
||||
19000 1.000000 1.000000
|
||||
19050 1.000000 1.000000
|
||||
19100 1.000000 1.000000
|
||||
19150 1.000000 1.000000
|
||||
19200 1.000000 1.000000
|
||||
19250 1.000000 1.000000
|
||||
19300 1.000000 1.000000
|
||||
19350 1.000000 1.000000
|
||||
19400 1.000000 1.000000
|
||||
19450 1.000000 1.000000
|
||||
19500 1.000000 1.000000
|
||||
19550 1.000000 1.000000
|
||||
19600 1.000000 1.000000
|
||||
19650 1.000000 1.000000
|
||||
19700 1.000000 1.000000
|
||||
19750 1.000000 1.000000
|
||||
19800 1.000000 1.000000
|
||||
19850 1.000000 1.000000
|
||||
19900 1.000000 1.000000
|
||||
19950 1.000000 1.000000
|
||||
20000 1.000000 1.000000
|
||||
20050 1.000000 1.000000
|
||||
20100 1.000000 1.000000
|
||||
20150 1.000000 1.000000
|
||||
20200 1.000000 1.000000
|
||||
20250 1.000000 1.000000
|
||||
20300 1.000000 1.000000
|
||||
20350 1.000000 1.000000
|
||||
20400 1.000000 1.000000
|
||||
20450 1.000000 1.000000
|
||||
20500 1.000000 1.000000
|
||||
20550 1.000000 1.000000
|
||||
20600 1.000000 1.000000
|
||||
20650 1.000000 1.000000
|
||||
20700 1.000000 1.000000
|
||||
20750 1.000000 1.000000
|
||||
20800 1.000000 1.000000
|
||||
20850 1.000000 1.000000
|
||||
20900 1.000000 1.000000
|
||||
20950 1.000000 1.000000
|
||||
12959 1.000000 1.000000
|
||||
13168 1.000000 1.000000
|
||||
13377 1.000000 1.000000
|
||||
13586 1.000000 1.000000
|
||||
13795 1.000000 1.000000
|
||||
14004 1.000000 1.000000
|
||||
14213 1.000000 1.000000
|
||||
14422 1.000000 1.000000
|
||||
14631 1.000000 1.000000
|
||||
14840 1.000000 1.000000
|
||||
15049 1.000000 1.000000
|
||||
15258 1.000000 1.000000
|
||||
15467 1.000000 1.000000
|
||||
15676 1.000000 1.000000
|
||||
15885 1.000000 1.000000
|
||||
16094 1.000000 1.000000
|
||||
16303 1.000000 1.000000
|
||||
16512 1.000000 1.000000
|
||||
16721 1.000000 1.000000
|
||||
16930 1.000000 1.000000
|
||||
17139 1.000000 1.000000
|
||||
17348 1.000000 1.000000
|
||||
17557 1.000000 1.000000
|
||||
17766 1.000000 1.000000
|
||||
17975 1.000000 1.000000
|
||||
18184 1.000000 1.000000
|
||||
18393 1.000000 1.000000
|
||||
18602 1.000000 1.000000
|
||||
18811 1.000000 1.000000
|
||||
19020 1.000000 1.000000
|
||||
19229 1.000000 1.000000
|
||||
19438 1.000000 1.000000
|
||||
19647 1.000000 1.000000
|
||||
19856 1.000000 1.000000
|
||||
20065 1.000000 1.000000
|
||||
20274 1.000000 1.000000
|
||||
20483 1.000000 1.000000
|
||||
20692 1.000000 1.000000
|
||||
20901 1.000000 1.000000
|
|
@ -1,14 +0,0 @@
|
|||
const fs = require('fs');
|
||||
const step = 50;
|
||||
|
||||
let input = fs.readFileSync('cdf-full.dat', 'utf-8')
|
||||
.split('\n')
|
||||
.map((x) => x.split(' '));
|
||||
|
||||
let output = [];
|
||||
|
||||
for (let i = 0; i < input.length; i += step) {
|
||||
output.push(input[i]);
|
||||
}
|
||||
|
||||
fs.writeFileSync('cdf.dat', output.map((x) => x.join(' ')).join('\n'));
|
|
@ -0,0 +1,13 @@
|
|||
<AdaptationSet>
|
||||
<SupplementalProperty value="156.4909,1.6267,-146.2062,
|
||||
157.43106,1.5476,-146.5379" />
|
||||
<BaseURL>b1/</BaseURL>
|
||||
<Representation>
|
||||
<BaseURL>repr1/</BaseURL>
|
||||
<SegmentList>
|
||||
<SegmentURL media="thumbnail.jpg" />
|
||||
<SegmentURL media="geometry.png" />
|
||||
<SegmentURL media="texture.png" />
|
||||
</SegmentList>
|
||||
</Representation>
|
||||
</AdaptationSet>
|
Binary file not shown.
After Width: | Height: | Size: 485 KiB |
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.3 MiB |
Binary file not shown.
After Width: | Height: | Size: 186 KiB |
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,102 @@
|
|||
x y
|
||||
2096.775 5.304463744060101
|
||||
3278.352 16.33223526359845
|
||||
3765.701 17.82544457063185
|
||||
4218.115 18.589007065953005
|
||||
4684.482 19.42118685569443
|
||||
5110.977 20.260051627523794
|
||||
5489.205 21.135982097443545
|
||||
5844.729 21.791159498308467
|
||||
6029.781 22.388393403115323
|
||||
6223.579 22.622539924953074
|
||||
6475.052 22.901617781396723
|
||||
6636.333 23.051755134306912
|
||||
6840.258 23.361998325341634
|
||||
6979.642 23.552028685502886
|
||||
7178.009 23.792324344850996
|
||||
7335.255 24.37904714631765
|
||||
7562.806 24.627126371680227
|
||||
7783.907 24.830101227775987
|
||||
8004.982 24.98316925195544
|
||||
8298.254 25.134506113585452
|
||||
8537.904 25.253864984545505
|
||||
8760.497 25.424271800733774
|
||||
8975.765 25.815704778578432
|
||||
9132.999 26.05737581292668
|
||||
9336.317 26.24459093572962
|
||||
9585.492 26.34288322083019
|
||||
9834.779 26.56109537386416
|
||||
10015.356 26.64092477739196
|
||||
10197.587 26.795018658955616
|
||||
10382.454 26.852112168640375
|
||||
10660.685 26.949328264208262
|
||||
11002.568 27.132409940676443
|
||||
11212.622 27.39460054169387
|
||||
11436.797 27.491959345395113
|
||||
11713.363 27.574627957485113
|
||||
11935.723 27.769619399694005
|
||||
12244.282 28.025041014432883
|
||||
12581.571 28.091760646148813
|
||||
12858.842 28.315622825578973
|
||||
13184.942 28.397586054247707
|
||||
13420.055 28.5539632384609
|
||||
13659.684 28.735798273742716
|
||||
13932.029 28.8003790969466
|
||||
14152.145 28.89289989375855
|
||||
14446.734 29.176296841593608
|
||||
14642.384 29.31648529606198
|
||||
14929.181 29.51497966684016
|
||||
15239.433 29.593907444726458
|
||||
15492.758 29.64385069848459
|
||||
15702.097 29.875349945685944
|
||||
15990.349 29.923674072288893
|
||||
16216.101 30.000956362057998
|
||||
16536.053 30.048765593761654
|
||||
16835.814 30.179714365314794
|
||||
16947.621 30.303597674832947
|
||||
17351.936 30.454985450771478
|
||||
17698.016 30.51488489310914
|
||||
17914.157 30.57906837725667
|
||||
18176.872 30.6333851995108
|
||||
18478.734 30.686713214685515
|
||||
18700.801 30.72446873968476
|
||||
19068.58 30.79875557787023
|
||||
19274.092 30.825517076526523
|
||||
19511.412 31.047321936347846
|
||||
19771.741 31.161969837918278
|
||||
20000.518 31.244778479662273
|
||||
20437.107 31.39050365034943
|
||||
20738.83 31.419166811578165
|
||||
20984.226 31.481651144575647
|
||||
21210.303 31.533387458554923
|
||||
21399.556 31.602704941358184
|
||||
21699.614 31.630398444224518
|
||||
21920.074 31.71911304292729
|
||||
22184.264 31.809957781450375
|
||||
22450.506 31.91726319695296
|
||||
22705.485 31.938175973564782
|
||||
22992.71 32.00032417356417
|
||||
23187.091 32.06927870559721
|
||||
23371.526 32.13252361716746
|
||||
23610.851 32.172553853895955
|
||||
23829.056 32.27147130631661
|
||||
24063.348 32.28717183689912
|
||||
24333.848 32.36429686377921
|
||||
24624.219 32.38857482526059
|
||||
24836.26 32.39834096376875
|
||||
25169.551 32.41610214165156
|
||||
25397.637 32.42320630537081
|
||||
25562.038 32.44565520758354
|
||||
26032.329 32.47660039180723
|
||||
26306.626 32.50108090494127
|
||||
26571.944 32.55278150089108
|
||||
27230.628 32.57779673674716
|
||||
27880.51 32.58179923455058
|
||||
28981.995 32.64233379671855
|
||||
29530.95 32.68646229696469
|
||||
30414.846 32.70890893132706
|
||||
32118.437 32.714182817400385
|
||||
35372.112 32.72226100839287
|
||||
36963.641 32.727660581775375
|
||||
38352.216 32.72914284807573
|
||||
41005.768 32.7434806741804
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,107 @@
|
|||
x y
|
||||
2097.299 14.65229700280427
|
||||
2428.811 16.42331697162227
|
||||
2741.798 17.615419269452932
|
||||
2989.542 18.58143558442525
|
||||
3216.337 19.473848297754373
|
||||
3533.192 20.52023876523144
|
||||
3711.406 21.253546002568765
|
||||
3976.308 22.104274370125776
|
||||
4172.89 22.740400360316613
|
||||
4358.214 23.353008897428712
|
||||
4588.408 24.06017066889605
|
||||
4760.717 24.62552443244102
|
||||
4972.379 25.169569630764887
|
||||
5101.935 25.551587455912113
|
||||
5210.509 25.93456284201698
|
||||
5324.409 26.26021800647523
|
||||
5636.664 26.696952638130615
|
||||
5866.146 27.097992277995374
|
||||
6167.952 27.442711626117816
|
||||
6639.831 27.805255625243447
|
||||
6918.572 28.09147289425434
|
||||
7160.043 28.402028193283044
|
||||
7342.463 28.693288060691298
|
||||
7557.869 28.963781236247808
|
||||
7704.073 29.25060867553245
|
||||
7898.886 29.52757738640797
|
||||
8046.169 29.758051434778224
|
||||
8202.773 29.972807749829013
|
||||
8416.491 30.212201552921872
|
||||
8574.974 30.394423948452925
|
||||
8697.311 30.56197357249853
|
||||
8820.89 30.786888130512335
|
||||
9009.739 30.988190063862962
|
||||
9181.465 31.148900356164646
|
||||
9393.396 31.47028440166912
|
||||
9607.22 31.71378645100736
|
||||
9792.055 31.899879073166044
|
||||
10058.272 32.0222076957666
|
||||
10422.634 32.186398305281486
|
||||
10663.359 32.34560351255068
|
||||
10941.866 32.47742010084354
|
||||
11249.192 32.673246088508414
|
||||
11415.359 32.835431347751
|
||||
11563.274 33.00515732068416
|
||||
11757.551 33.14822836829327
|
||||
11924.901 33.33575972093754
|
||||
12073.172 33.48201894646152
|
||||
12196.406 33.583449370219434
|
||||
12368.404 33.663304498599466
|
||||
12494.029 33.76095350435364
|
||||
12660.623 33.871991293160754
|
||||
12826.343 33.9811601594348
|
||||
12940.443 34.07802913989907
|
||||
13025.183 34.183953669024646
|
||||
13179.378 34.31372811498469
|
||||
13335.766 34.385830597855076
|
||||
13508.535 34.47375788499503
|
||||
13728.453 34.565907882347226
|
||||
13982.265 34.63417565728688
|
||||
14125.323 34.70753152956884
|
||||
14373.137 34.7783210627385
|
||||
14631.342 34.89180521443487
|
||||
14841.108 34.96270554982211
|
||||
15038.914 35.02474445749689
|
||||
15462.525 35.09387694406902
|
||||
15803.481 35.14404052149408
|
||||
16057.772 35.18935531941039
|
||||
16206.026 35.237174616450424
|
||||
16408.44 35.29326838832231
|
||||
17052.455 35.36789790546246
|
||||
17461.244 35.41136536136477
|
||||
17876.169 35.45175173426117
|
||||
18711.637 35.49969846835455
|
||||
18958.605 35.52962616350533
|
||||
19097.287 35.56427445477692
|
||||
19266.388 35.60036257766602
|
||||
19413.593 35.622270888122415
|
||||
19713.179 35.64788110119483
|
||||
20038.527 35.6649416847754
|
||||
20210.44 35.6841288635726
|
||||
20548.611 35.710449992443
|
||||
20786.487 35.73076440916822
|
||||
20979.859 35.74714916310743
|
||||
21213.496 35.762185494217746
|
||||
21423.152 35.77690661206711
|
||||
21677.622 35.789675051389274
|
||||
22011.401 35.80544068503998
|
||||
22264.21 35.82704399855524
|
||||
22638.264 35.84394602614001
|
||||
22942.439 35.862162822181055
|
||||
23370.18 35.88039914450786
|
||||
23702.799 35.89732681794534
|
||||
24033.236 35.91397558277833
|
||||
24990.624 35.931153394081804
|
||||
25534.702 35.95103337805992
|
||||
26662.913 35.96958514961193
|
||||
28478.36 35.98673525211481
|
||||
30084.913 36.02258447410546
|
||||
30893.914 36.04235311736233
|
||||
31903.977 36.07236282374023
|
||||
32591.01 36.088730718453384
|
||||
33389.82 36.10193204060815
|
||||
36005.481 36.124420964103564
|
||||
39003.902 36.13088361508645
|
||||
40994.559 36.14704615526186
|
||||
42357.406 36.158301360942424
|
|
@ -173,7 +173,7 @@ We denote this combination as \textsf{V-PP}, for Prefetching based on Prediction
|
|||
\centering
|
||||
\begin{tikzpicture}
|
||||
\draw [fill=LightCoral] (0,0) rectangle (5,1);
|
||||
\node at (2.5,0.5) {Furstum / backface culling};
|
||||
\node at (2.5,0.5) {Frustum / backface culling};
|
||||
\draw [fill=Khaki] (5,0) rectangle (6.5,1);
|
||||
\node at (5.75,0.5) {$B_i$};
|
||||
\draw [fill=SandyBrown] (6.5,0) rectangle (7,1);
|
||||
|
|
|
@ -0,0 +1,147 @@
|
|||
\section{Adding bookmarks into DASH NVE framework}\label{sec:bookmarks}
|
||||
|
||||
In this section, we explain how to include a new interaction in the system described in Section~\ref{sec:dash3d}.
|
||||
|
||||
\subsection{Interaction --- Visual}
|
||||
|
||||
We decide to add bookmarks of recommended viewpoints in the 3D scene.
|
||||
A bookmark is defined by a camera position, orientation, and intrinsic parameters, and offers a particular view of the 3D virtual environment.
|
||||
As such, it should be represented using a widget that (i) is attached to a particular position, therefore appearing small (respectively big) when it is far (respectively close), and (ii) points at a particular direction, allowing the user to predict what can be seen from this viewpoint.
|
||||
Bookmarks have been already introduced in the literature, with various appearances \todo[inline]{figure of possible appearances}.
|
||||
Since, no particular preeminence of one design on the others has been demonstrated in previous work, we arbitrarily choose to use \todo[inline]{type of bookmark} in this work.
|
||||
|
||||
Bookmarks can be created either automatically, or manually defined by an expert user (e.g.\ the 3D model designer, or administrator).
|
||||
Bookmarks could even be derived from the observation of user behavior, by focusing on the most visited areas of the models.
|
||||
Automated ways of defining bookmarks or adapting them to user behavior is beyond the scope of this paper; methods have been proposed in \todo[inline]{References}
|
||||
|
||||
We choose to implement two interactions with bookmarks.
|
||||
The first, most obvious one, is to position the user camera on the bookmark's viewpoint when the user clicks on the bookmark.
|
||||
In order to avoid users to lose context, clicking on a bookmark triggers an automatic, smooth, camera displacement that ends up at the bookmark.
|
||||
% We use Hermite's polynomials to compute this displacement, as proposed in MMSYS16. Lol we don't :'(
|
||||
We implement an additional interaction that displays a preview of the bookmark's viewpoint while it is hovered by the user's mouse.
|
||||
A small thumbnail of the viewport is displayed below the bookmark.
|
||||
|
||||
\subsection{Segments utility at bookmarked viewpoint}\label{sec:utility}
|
||||
Introducing bookmarks is a way to make users navigation more predictable.
|
||||
Indeed, since they are emphasized and, in a way, recommended viewpoints, bookmarks are more likely to be visited by a significant portion of users than any other viewpoint on the scene.
|
||||
As such, bookmarks can be used as a way to optimize streaming by downloading segments in an optimal, pre-computed order.
|
||||
|
||||
More specifically, segment utility as introduced in Section~\ref{sec:dash3d} is only an approximation of the segment's true contribution to the current viewpoint rendering.
|
||||
When bookmarks are defined, it is possible to obtain a perfect measure of segment utility by performing an offline rendering at each bookmark's viewpoint.
|
||||
Then, by simply counting the number of pixels that are rendered using each segment, we can rank the segments by order of importance in the rendering.
|
||||
|
||||
We define $\mathcal{U}^{*} (s,B_i)$ as being the true utility of a segment $s$ in a viewpoint defined at bookmark $B_i$.
|
||||
This utility is simply the ratio between the number of pixels displaying that segment on screen, and the total screen area (in pixels).
|
||||
This utility definition is the same for geometry and texture segments, which allows all segments to be ranked by order of importance, i.e.\ of decreasing utility.
|
||||
|
||||
\begin{figure}[th]
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
xlabel=Data downloaded (in B),
|
||||
ylabel=PSNR,
|
||||
no markers,
|
||||
cycle list name=mystyle,
|
||||
width=\tikzwidth,
|
||||
height=\tikzheight,
|
||||
legend pos=south east,
|
||||
xmin=0,
|
||||
]
|
||||
|
||||
\addplot table [x=x, y=y]{assets/system-bookmarks/precomputation/greedy.dat};
|
||||
\addlegendentry{\scriptsize Default order $\mathcal{U}$}
|
||||
\addplot table [x=x, y=y]{assets/system-bookmarks/precomputation/precomputed.dat};
|
||||
\addlegendentry{\scriptsize Proposed order $\mathcal{U}^*$}
|
||||
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\caption{Impact of using the precomputed information of bookmarks to select segments to download\label{fig:precomputation}}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[th]
|
||||
\includegraphics[width=0.49\columnwidth]{assets/system-bookmarks/bookmark/ground-truth.png}
|
||||
\includegraphics[width=0.49\columnwidth]{assets/system-bookmarks/bookmark/geometry.png}
|
||||
\caption{A bookmarked viewpoint (left), and a pixel to geometry segment map (right)}\label{fig:bookmarks-utility}
|
||||
\end{figure}
|
||||
|
||||
Figure~\ref{fig:bookmarks-utility} depicts a ``pixel to geometry segment'' map: all pixels of the same color in the right image display an element of the same geometry segment.
|
||||
We render such maps offline, for each bookmark, and use it to compute the true utility $\mathcal{U}^*(s)$ of segment $s$.
|
||||
|
||||
\subsection{MPD modification}
|
||||
|
||||
We now present how to introduce bookmarks information in the Media Presentation Description (MPD) file, to be used in a DASH framework.
|
||||
Bookmarks are fully defined by a viewport description, and the additional content needed to properly render and use a bookmark in a system consists in three images: a thumbnail of the point of view at the bookmark, along with two ``pixel to segment'' maps (see Figure~\ref{fig:bookmarks-utility}, right image).
|
||||
For this reason, we create a separate adaptation set in the MPD\@.
|
||||
The bookmarked viewport information is stored as a supplemental property.
|
||||
Bookmarks adaptation set only contain one representation, composed of three segments corresponding to the three images described earlier.
|
||||
|
||||
\begin{figure}[th]
|
||||
\lstinputlisting[%
|
||||
language=XML,
|
||||
caption={MPD description of a geometry adaptation set, and a texture adaptation set.},
|
||||
label=listing:bookmark-as,
|
||||
emph={%
|
||||
MPD,
|
||||
Period,
|
||||
AdaptationSet,
|
||||
Representation,
|
||||
BaseURL,
|
||||
SegmentBase,
|
||||
Initialization,
|
||||
Role,
|
||||
SupplementalProperty,
|
||||
SegmentList,
|
||||
SegmentURL,
|
||||
Viewpoint
|
||||
}
|
||||
]{assets/system-bookmarks/bookmark-as.xml}
|
||||
\end{figure}
|
||||
|
||||
An example of a bookmark adaptation set is depicted on Listing~\ref{listing:bookmark-as}.
|
||||
The three first values in the supplemental property are the camera position coordinates, and the three last values are the target point coordinates.
|
||||
|
||||
\subsection{System-aware bookmarks}
|
||||
|
||||
The information we include in the MPD to optimize streaming at bookmarked viewpoints can also be used to give a sense of the system state to the user.
|
||||
Indeed, displaying a thumbnail of what can be seen from a bookmark might fool users into thinking that all necessary segments visible from the bookmarked viewpoint have been downloaded.
|
||||
In case this would be not true, users' Quality of Experience would be unsatisfactory.
|
||||
|
||||
In order to give users a sense of the amount of information readily available at a given bookmarked viewpoint, we use the pixel to segment maps described in Section~\ref{sec:utility} to create a mask of segment availability.
|
||||
Since we know which segments have been downloaded at any given time, we know which pixels in the thumbnail accurately depict what the user will see when clicking on the bookmark.
|
||||
We thus render the thumbnail with the mask of already downloaded segments superimposed over it.
|
||||
|
||||
\todo[inline]{Figure of altered thumbnail}
|
||||
|
||||
|
||||
\subsection{Loader modifications}
|
||||
|
||||
We build on the loader introduced in~\cite{forgione2018dash} (Algorithm 1) to implement a client adaptation logic.
|
||||
We include a bookmark adaptation logic such that (i) when a bookmark is hovered for the first time, the corresponding images (see Listing~\ref{bookmark-as}) are downloaded, and (ii) when a bookmark is clicked, we switch from utility $\mathcal{U}$ to true utility $\mathcal{U}^*$ to determine which segments to download next.
|
||||
|
||||
\begin{algorithm}[th]
|
||||
\SetKwInOut{Input}{input}
|
||||
\SetKwInOut{Output}{output}
|
||||
\Input{Current index $i$, time $t_i$, viewpoint $v(t_i)$, buffer of already downloaded \texttt{segments} $\mathcal{B}_i$, MPD}
|
||||
\Output{Next segment $s^{*}_i$ to request, updated buffer $\mathcal{B}_{i+1}$}
|
||||
\SetAlgoLined%
|
||||
{- Estimate the bandwidth $\widehat{BW_i}$ and RTT $\widehat{\tau_i}$ \;}
|
||||
|
||||
{- Among all \texttt{segments} that are not already downloaded $s \in \mathcal{S} \backslash \mathcal{B}_i$, % \;}
|
||||
% {-
|
||||
keep the ones inside the upcoming viewing frustums $\mathcal{FC}=\mathbb{FC}(\widehat{v}(t_i)), t\in [t_i, t_i+\chi]$ thanks to a viewpoint predictor $t_i \rightarrow \hat{v}(t_i)$, a temporal horizon $\chi$ and a frustum culling operator $\mathbb{FC}$ \;}
|
||||
|
||||
|
||||
{- Optimize a criterion $\Omega$ based on $\mathcal{U}$ values and well chosen viewpoint $v(t_i)$ to select the next segment to query }
|
||||
{\begin{equation*}
|
||||
s^{*}_i= \argmax{s \in \mathcal{S} \backslash \mathcal{B}_i \cap \mathcal{FC}} \Omega_{\theta_i} \Big(\mathcal{U}(s,v(t_i))\Big) \label{eq1}
|
||||
\end{equation*} \\
|
||||
given parameters $\theta_i$ that gathers both online parameters $(i,t_i,v(t_i),\widehat{BW_i}, \widehat{\tau_i}, \mathcal{B}_i)$ and offline metadata;}
|
||||
|
||||
{- Update the buffer $\mathcal{B}_{i+1}$ for the next decision: $s^{*}_i$ and lowest \texttt{representations} of $s^{*}_i$ are considered downloaded\;}
|
||||
{- \Return{segment $s^{*}_i$, buffer $\mathcal{B}_{i+1}$}\;}
|
||||
|
||||
{\caption{Algorithm to identify the next segment to query\label{algorithm:nextsegment}}}
|
||||
\end{algorithm}
|
||||
|
||||
\todo[inline]{to be modified to include bookmarks}
|
||||
|
|
@ -1,2 +1,3 @@
|
|||
\chapter{System bookmarks}
|
||||
\input{system-bookmarks/bookmark}
|
||||
\input{system-bookmarks/user-study}
|
||||
|
|
Loading…
Reference in New Issue