forked from cameramanben/LUTCalc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgamma.js
3554 lines (3541 loc) · 135 KB
/
gamma.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* gamma.js
* Transfer functions (gamma) web worker object for the LUTCalc Web App.
* 27th June 2015
*
* LUTCalc generates 1D and 3D Lookup Tables (LUTs) for video cameras that shoot log gammas,
* principally the Sony CineAlta line.
*
* By Ben Turley, http://turley.tv
* First License: GPLv2
* Github: https://github.com/cameramanben/LUTCalc
*/
function LUTGamma() {
this.nul = false;
this.gammas = [];
this.isTrans = false;
this.ver = 0;
this.curIn = 0;
this.curOut = 0;
this.eiMult = 1;
this.stopShift = 0;
this.inL = false;
this.outL = true;
this.clip = false;
this.sIn = false;
this.sMin = 0;
this.sMax = 1;
this.bClip = 0;
this.mClip = 67025937;
this.linList = [];
this.inList = [];
this.outList = [];
this.catList = [];
this.subNames = [];
this.gammaSub = [];
this.gammaDat = [];
this.kSmooth = 1;
this.doBlkHi = false;
this.doASCCDL = false;
this.al = 1;
this.bl = 0;
this.ad = 1;
this.bd = 0;
this.highRef = 0.9;
this.asc = new Float64Array([
1,1,1, // s - Slope / Gain
0,0,0, // o - Offset / Lift
1,1,1, // p - Power / Gamma
1 // sat - Saturation
]);
this.gammaList();
}
// Prepare transfer functions
LUTGamma.prototype.subIdx = function(cat) {
switch (cat) {
case 'Sony': return 0;
case 'Arri': return 1;
case 'Canon': return 2;
case 'Panasonic': return 3;
case 'RED': return 4;
case 'GoPro': return 5;
case 'Panavision': return 6;
case 'Blackmagic': return 7;
case 'Nikon': return 8;
case 'Log': return 9;
case 'Display': return 10;
case 'HDR Display': return 11;
case 'All': return 12;
}
return false;
};
LUTGamma.prototype.gammaList = function() {
this.subNames = [ 'Sony',
'Arri',
'Canon',
'Panasonic',
'RED',
'GoPro',
'Panavision',
'Blackmagic',
'Nikon',
'Log',
'Display',
'HDR Display',
'Linear / γ',
'All'
];
this.SL3 = 0;
this.gammas.push(new LUTGammaLog(
'S-Log3',
[ 0.1677922920,-0.0155818840, 0.2556207230, 4.7368421060,10.0000000000, 0.4105571850, 0.0526315790, 0.1673609920, 0.0125000000 ]));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLog(
'S-Log2', [ 0.330000000129966,-0.0291229262672453,0.3705223107287920,0.7077625570776260,10,0.6162444730868150,0.0375840001141552,0.0879765396,0 ]));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLog(
'S-Log', [ 0.3241960136,-0.0286107171, 0.3705223110, 1,10.0000000000, 0.6162444740, 0.0375840000, 0.0882900450, 0.000000000000001 ]));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaArri(
'LogC (Sup 3.x & 4.x)',3));
this.gammaSub.push([this.subIdx('Arri'),this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaArri(
'LogC (Sup 2.x)',2));
this.gammaSub.push([this.subIdx('Arri'),this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLog(
'C-Log', [ 0.3734467748,-0.0467265867, 0.45310179472141, 10.1596, 10, 0.1251224801564, 1, 0.00391002619746, -0.0452664 ]));
this.gammaSub.push([this.subIdx('Canon'),this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLog(
'Canon C-Log2', [ 0.045164984,-0.006747091156,0.241360772,87.09937546,10,0.092864125,1,0,-0.006747091156 ]));
this.gammaSub.push([this.subIdx('Canon'),this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaCineon(
'Cineon', {cv:1023, bp:95, wp: 685, nGamma: 0.6, cv2d:0.002}));
this.gammaSub.push([this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLog(
'Panasonic V-Log', [ 0.198412698,-0.024801587, 0.241514, 0.9, 10, 0.598206, 0.00873, 0.181, 0.009 ]));
this.gammaSub.push([this.subIdx('Panasonic'),this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLog(
'Panalog', [ 0.324196014, -0.020278938, 0.434198361, 0.956463747, 10, 0.665276427, 0.040913561, 0.088290045, 0 ]));
this.gammaSub.push([this.subIdx('Panavision'),this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaCineon(
'REDLogFilm', {cv:1023, bp:95, wp: 685, nGamma: 0.6, cv2d:0.002}));
this.gammaSub.push([this.subIdx('RED'),this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLog(
'BMD Film', [ 0.235007442, -0.021824371, 0.367608584, 3.806255082, 10, 0.424864581, 0.123774409, 0.114884702, 0.005175 ]));
this.gammaSub.push([this.subIdx('Blackmagic'),this.subIdx('Log')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLog(
'BMD Film4k', [ 0.335139188, -0.031122728, 0.582240631, 2.733951639, 10, 0.477563161, 0.218018711, 0.10830634, 0.005175 ]));
this.gammaSub.push([this.subIdx('Blackmagic'),this.subIdx('Log')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLog(
'Protune', [ 0,0, 876/1023, 53.39427221, 113, 64/1023, 1, 0, 0 ]));
this.gammaSub.push([this.subIdx('GoPro'),this.subIdx('Log')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLogClip(
'DJI D-Log', [ 0.188272019, -0.011778504, 0.473218054, 6.086793376, 10, 0.419294419, 0.169033387, 0.095812746, 0.00625, 0.902863937, 1.59668525, 22.90700861, -17.39462704 ]));
this.gammaSub.push([this.subIdx('Log')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'Amira709',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.0629449254, 0.0638344316, 0.0652122451, 0.0671149365, 0.0696389939, 0.0727578155, 0.0765583221, 0.0810732533,
0.0863050714, 0.0923235097, 0.0991202854, 0.1071573521, 0.1173890946, 0.1289127766, 0.1418248775, 0.1563577288,
0.1727759907, 0.1909101927, 0.2109039553, 0.2321740755, 0.2540878735, 0.2767513785, 0.3000392795, 0.3239141187,
0.3482661335, 0.3730445064, 0.3981118279, 0.4233801358, 0.4484330041, 0.4733441630, 0.4980799790, 0.5226516916,
0.5470832745, 0.5713748957, 0.5955474508, 0.6196006037, 0.6435589843, 0.6674248274, 0.6912186286, 0.7150335873,
0.7380830785, 0.7604458639, 0.7808803039, 0.7989996910, 0.8151693266, 0.8293147178, 0.8419315718, 0.8532432154,
0.8632844800, 0.8721146308, 0.8798286573, 0.8865081114, 0.8922250204, 0.8970825043, 0.9011319655, 0.9044962896,
0.9072088251, 0.9094085307, 0.9111140581, 0.9124771261, 0.9135050778, 0.9143603587, 0.9150416855, 0.9157172449,
0.9163807382 ]
)
}));
this.gammaSub.push([this.subIdx('Arri'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'Alexa-X-2',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.0591392525, 0.0597741050, 0.0612907229, 0.0636891061, 0.0670061726, 0.0713627697, 0.0766277967, 0.0826389777,
0.0892340370, 0.0962854910, 0.1039625761, 0.1129939936, 0.1252220091, 0.1381401480, 0.1513807635, 0.1651563807,
0.1799534361, 0.1962251040, 0.2139885968, 0.2330129188, 0.2532175057, 0.2745268479, 0.2973340978, 0.3215684734,
0.3464667648, 0.3712822467, 0.3957529493, 0.4204032336, 0.4450817523, 0.4696146868, 0.4938866713, 0.5180413154,
0.5420558969, 0.5658776148, 0.5894644299, 0.6129189039, 0.6361895435, 0.6591598802, 0.6817136956, 0.7042566286,
0.7267405614, 0.7484349074, 0.7686102390, 0.7868717883, 0.8037179215, 0.8191567127, 0.8331581208, 0.8456621871,
0.8565103390, 0.8659197184, 0.8741749179, 0.8815532343, 0.8878611055, 0.8930654735, 0.8974118356, 0.9011455804,
0.9042495877, 0.9065156533, 0.9082180048, 0.9096408106, 0.9109571560, 0.9118628170, 0.9125228715, 0.9131824676,
0.9140666658 ]
)
}));
this.gammaSub.push([this.subIdx('Arri'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'LC709A',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.0690751760484848,0.0728297103786901,0.0769850051182796,0.0815808343707722,0.0864978758256109,0.0915715413065494,0.0969774025141740,0.1028781916478983,
0.1091478390349951,0.1155131300480449,0.1225782317505376,0.1309263253436461,0.1403471537869012,0.1508689079248778,0.1623594253036168,0.1746108013986315,
0.1878784532660801,0.2022370183965786,0.2180209309622678,0.2356278321531769,0.2549427384062561,0.2761380900003911,0.2987492565998045,0.3224798721943793,
0.3469975840860214,0.3719286248248777,0.3971008726561094,0.4222027128650537,0.4472788568813294,0.4722718767181329,0.4971765759100684,0.5219774783500978,
0.5466479949763440,0.5711842754669599,0.5955026274948191,0.6197116512439393,0.6432306188590422,0.6651852019544967,0.6865648023053763,0.7082626223616812,
0.7296929317130010,0.7507956301978983,0.7708870295194525,0.7891859348525904,0.8059247656203324,0.8210325331867545,0.8346382669036169,0.8468258306587488,
0.8576597322080157,0.8672077039163734,0.8755439358443793,0.8827308391279569,0.8888714829059629,0.8940610364006844,0.8983856104977517,0.9019299878681326,
0.9047933223781036,0.9070732102109482,0.9088591070866080,0.9102383165201858,0.9113148913094820,0.9121898344043498,0.9129595988637339,0.9137217752193059,
0.9145739540027369 ]
)
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'LC709',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.0681458330432062,0.0691434801575758,0.0705829599217986,0.0724372206445259,0.0747874173998045,0.0776429161732649,0.0811920325388074,0.0855419981338221,
0.0909454307534702,0.0976690797726784,0.1057777820895406,0.1155958029012708,0.1266116066854350,0.1383486226503910,0.1510262218009775,0.1646815963955523,
0.1793847118819159,0.1951918111528836,0.2121812541317693,0.2304357320288367,0.2499984938760508,0.2709281624411535,0.2932613077270772,0.3170617964918866,
0.3423063612379277,0.3695615137341154,0.3971217829388074,0.4231725001074290,0.4486077701176930,0.4736812772283969,0.4984996145517106,0.5232706256325024,
0.5479442434314760,0.5725367356025903,0.5970569416109482,0.6215751675531770,0.6459232811886606,0.6699759671530302,0.6936750809141740,0.7170080478474583,
0.7397128428660801,0.7617580170455522,0.7824392672742913,0.8009083916954056,0.8175656376203322,0.8324964241259040,0.8457970340590418,0.8575570277373410,
0.8678819918256108,0.8768748757833822,0.8846331515440858,0.8912549486405668,0.8968412437341152,0.9014929560172531,0.9053083874291300,0.9083859090127075,
0.9108262326490713,0.9127307504679862,0.9141957927663734,0.9153135383675464,0.9161978338220919,0.9170093433528834,0.9176997927663735,0.9182731424731183,
0.9187333528836756 ]
)
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'Varicam V709',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.03093963,0.03517715,0.03975096,0.04459771,0.0498902,0.05557408,0.06190443,0.06897675,
0.07677725,0.08537468,0.09473446,0.10541067,0.11868528,0.13311738,0.1487007,0.16548566,
0.1835071,0.20262917,0.22283545,0.24403145,0.26617877,0.28925105,0.31327642,0.33809209,
0.3635757,0.3896826,0.41631627,0.44341889,0.47081168,0.49848151,0.52623353,0.55406649,
0.58169329,0.60913806,0.63624608,0.66303621,0.68930935,0.71517113,0.73981736,0.76273104,
0.78514678,0.80792983,0.82988348,0.85024823,0.86926131,0.88683223,0.90300653,0.91783703,
0.93129966,0.94331701,0.95391642,0.96327691,0.97138937,0.97818037,0.98361305,0.98799011,
0.99133483,0.9937684,0.9951962,0.99614917,0.99691692,0.9975211,0.99811777,0.99867865,
0.9992434 ]
)
}));
this.gammaSub.push([this.subIdx('Panasonic'),this.subIdx('Display')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLUT(
'REDGamma3',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ -0.03714517,-0.00423269,0.0286798,0.06159228,0.08210614,0.08742128,0.09352044,0.10024791,0.10760079,0.11612612,
0.12508897,0.13477347,0.14708845,0.16039003,0.17473353,0.19047034,0.20764301,0.22600144,0.24574689,0.26695764,
0.28923082,0.31230737,0.33598015,0.36085173,0.3858281,0.41159915,0.43762202,0.46412136,0.49040391,0.51679063,
0.54330912,0.56927544,0.59476868,0.61927984,0.64375537,0.66689702,0.68910742,0.71075087,0.73073736,0.74993632,
0.76768928,0.78399945,0.79911844,0.81328213,0.82578649,0.8370763,0.84742981,0.85645727,0.86438563,0.87143002,
0.87786935,0.88346431,0.88841647,0.89282182,0.89677137,0.9002692,0.90328175,0.90617316,0.90922153,0.91226993,
0.91531834,0.91836678,0.92141523,0.92446369,0.92751216 ]
)
}));
this.gammaSub.push([this.subIdx('RED'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'REDGamma4',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.06256195,0.06323056,0.06389918,0.06466177,0.06594874,0.06800416,0.07093249,0.07480647,0.07968515,0.08563111,
0.09269295,0.10093909,0.11044067,0.12128673,0.13353197,0.14714679,0.16204168,0.17813072,0.19535417,0.21360164,
0.23282177,0.25294762,0.27393907,0.29569596,0.31818494,0.34135291,0.36517517,0.38955921,0.41448426,0.43990639,
0.46576321,0.49186053,0.51808495,0.54430155,0.57038436,0.59623525,0.621684,0.6466398,0.67098891,0.69464144,
0.71744088,0.73929985,0.76010898,0.77977573,0.79815014,0.81514007,0.83063023,0.8445487,0.8569426,0.86793847,
0.8776334,0.88611348,0.89346229,0.89973462,0.90500049,0.90931905,0.91274846,0.91533843,0.91715216,0.91826249,
0.9187713,0.91886608,0.91886608,0.91886608,0.91886608 ]
)
}));
this.gammaSub.push([this.subIdx('RED'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaACEScc(
'ACEScc', {}));
this.gammaSub.push([this.subIdx('Log')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaACESProxy(
'ACESproxy10', 10));
this.gammaSub.push([this.subIdx('Log')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaACESProxy(
'ACESproxy12', 12));
this.gammaSub.push([this.subIdx('Log')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaIOLUT(
'Rec709 (800%)',
{
rec: {
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
-0.0446421313, -0.0204893067, 0.0036635180, 0.0278163427, 0.0519691674, 0.0761219921, 0.1002707756, 0.1244698215, 0.1486224622, 0.1716290677,
0.1906642455, 0.2085204718, 0.2254012975, 0.2413982532, 0.2565166388, 0.2708530435, 0.2844393079, 0.2973183908, 0.3096854620, 0.3215533433,
0.3328146131, 0.3436401143, 0.3540168103, 0.3639875695, 0.3735997301, 0.3828629905, 0.3917793547, 0.4004128911, 0.4088059207, 0.4169027148,
0.4247147130, 0.4322985725, 0.4396753339, 0.4468468853, 0.4538127938, 0.4605775118, 0.4671640916, 0.4735878362, 0.4798545760, 0.4860006009,
0.4920048747, 0.4977093585, 0.5038431061, 0.5116567043, 0.5181791292, 0.5247650308, 0.5315938853, 0.5385493314, 0.5456541485, 0.5530263072,
0.5606487371, 0.5686002240, 0.5768926044, 0.5855586010, 0.5948269850, 0.6046748461, 0.6152549633, 0.6269138470, 0.6396734938, 0.6541629455,
0.6710471506, 0.6915209719, 0.7181498682, 0.7574674791, 0.8445913579
])
},
out: {
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289066996, 0.0390080746, 0.0491133029, 0.0592146779, 0.0693160529, 0.0794212813, 0.0895274289, 0.0996411169, 0.1097173681, 0.1197901614,
0.1300004174, 0.1408247747, 0.1535938980, 0.1670471322, 0.1812353271, 0.1961807539, 0.2118897750, 0.2285885784, 0.2462546509, 0.2650729108,
0.2848894628, 0.3059138202, 0.3282876301, 0.3520647492, 0.3773249255, 0.4041951748, 0.4326924843, 0.4630104118, 0.4953512291, 0.5296917198,
0.5663211163, 0.6052213632, 0.6468385483, 0.6811695613, 0.7179664821, 0.7526207094, 0.7849335846, 0.8147522501, 0.8419881738, 0.8664954100,
0.8881412487, 0.9073422173, 0.9239607990, 0.9381992542, 0.9503103153, 0.9605564777, 0.9690464375, 0.9762167750, 0.9819309464, 0.9867203043,
0.9904006942, 0.9934500190, 0.9956787345, 0.9979577502, 0.9998967591, 1.0018141003, 1.0037311922, 1.0056480668, 1.0075647537, 1.0094812760,
1.0113976563, 1.0133139134, 1.0152300629, 1.0171461197, 1.0190620951
])
}
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaIOLUT(
'Nikon Standard',
{
rec: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ -0.342551352061, -0.288177568708, -0.233803785356, -0.179430002004, -0.125056218652, -0.070682435300, -0.016308651953, 0.038065131380, 0.090182450305,
0.114844812055, 0.147037855967, 0.170190534243, 0.182505160319, 0.195266314669, 0.203853784990, 0.211095737876, 0.219221792780, 0.227999341155,
0.236282183331, 0.243254666213, 0.249799997985, 0.256337363135, 0.262712725704, 0.268527439248, 0.273815628826, 0.278801564019, 0.283644789095,
0.288392421002, 0.293133710416, 0.297755513447, 0.302175617216, 0.306502426672, 0.310752741262, 0.314959622924, 0.319114515832, 0.323165229840,
0.327112045597, 0.330908933709, 0.334586176331, 0.338175148420, 0.341680833810, 0.345139426450, 0.348544714039, 0.351947325653, 0.355371475627,
0.358794773339, 0.362214961661, 0.365622412467, 0.368960430415, 0.372229078201, 0.375549771636, 0.378978477443, 0.382437665513, 0.385876364569,
0.389311177226, 0.392717070632, 0.396099211847, 0.399596228751, 0.403257717617, 0.406948529183, 0.410631822241, 0.414307485422, 0.417949748127,
0.421597747322, 0.425300362807, 0.429011956465, 0.432665489009, 0.436293179570, 0.439950131174, 0.443618495668, 0.447217356045, 0.450752752428,
0.454308147167, 0.457896600163, 0.461486503027, 0.465077971802, 0.468649625500, 0.472179139518, 0.475681843863, 0.479172398173, 0.482643830686,
0.486071715900, 0.489456560345, 0.492829660552, 0.496199806504, 0.499557029186, 0.502883973225, 0.506202425833, 0.509583182445, 0.513027270364,
0.516439758293, 0.519795229070, 0.523139387370, 0.526486431936, 0.529841782722, 0.533239406650, 0.536673918577, 0.540201395758, 0.543843468628,
0.547563839344, 0.551365664452, 0.555211858630, 0.559065206970, 0.562987330755, 0.567008663481, 0.571141048171, 0.575388384633, 0.579852755032,
0.584596219521, 0.589656886066, 0.595013785817, 0.600608182746, 0.606593136633, 0.612862738119, 0.619558115806, 0.627134629835, 0.635771882841,
0.646090898198, 0.702378530367, 0.761472498521, 0.820637751415, 0.879845357987, 0.939077825206, 0.998324880860, 1.057576659021, 1.116828424985,
1.176080190950, 1.235331956914, 1.294583722879 ]
)
},
out: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.049218249549, 0.050340760298, 0.051463271048, 0.052585781797, 0.053708292546, 0.054830803295, 0.055953314045, 0.057075824794, 0.058198335543,
0.059320846293, 0.060443357042, 0.061565867791, 0.063440922871, 0.065939828995, 0.068461377294, 0.071083719271, 0.073457071312, 0.075178362835,
0.076926716563, 0.078377767373, 0.079774496126, 0.082090196935, 0.087053858463, 0.091985226944, 0.096851206605, 0.101597266466, 0.108640869604,
0.117026469673, 0.124564288309, 0.131532001666, 0.138653050872, 0.147207407755, 0.156488919267, 0.165859362460, 0.175652722265, 0.186927260407,
0.199243267088, 0.212044116616, 0.225041844751, 0.238895615805, 0.253240133306, 0.267917983908, 0.283304261071, 0.299792645427, 0.317160501155,
0.335057795993, 0.352889810206, 0.370819575819, 0.389352213885, 0.407101174185, 0.424871237485, 0.442772100713, 0.459451481748, 0.476039712868,
0.492777153962, 0.509246934718, 0.526027527985, 0.542712928580, 0.559913284646, 0.576928975938, 0.593971033204, 0.611344689037, 0.628930013031,
0.646950916067, 0.665096433879, 0.683435767729, 0.701243173150, 0.719444395779, 0.737622227049, 0.755320491138, 0.772001056736, 0.787997434894,
0.803729034995, 0.818764033383, 0.832972783544, 0.845877373044, 0.857555748351, 0.868473696665, 0.878489111063, 0.887958347868, 0.896363952038,
0.903591827347, 0.910315723114, 0.915372062462, 0.918298748293, 0.918941618409, 0.918972202977, 0.919075471565, 0.919879717190, 0.920939802190,
0.921973664508, 0.923007251183, 0.924040581079, 0.925073671761, 0.926106539583, 0.927139199777, 0.928171666527, 0.929203953044, 0.930236071632,
0.931268033751, 0.932299850078, 0.933331530557, 0.934363084451, 0.935394520390, 0.936425846414, 0.937457070013, 0.938488198167, 0.939519237376,
0.940550193699, 0.941581072781, 0.942611879880, 0.943642619897, 0.944673297399, 0.945703916640, 0.946734481587, 0.947764995932, 0.948795463120,
0.949825886359, 0.950856268638, 0.951886612744, 0.952916921275, 0.953947196648, 0.954977441120, 0.956007656792, 0.957037845623, 0.958068009437,
0.959098149936, 0.960128268706, 0.961158367223 ]
)
}
}));
this.gammaSub.push([this.subIdx('Nikon'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaIOLUT(
'Nikon Neutral',
{
rec: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ -0.342551352061, -0.288177568708, -0.233803785356, -0.179430002004, -0.125056218652, -0.070682435300, -0.016308651953, 0.038065131380, 0.090370277129,
0.111261816878, 0.130837070772, 0.154724281799, 0.167748578657, 0.175153042048, 0.183813600540, 0.193613893606, 0.201845384547, 0.208862712809,
0.216240385882, 0.223891266282, 0.231266341219, 0.238137235412, 0.244526657912, 0.250600574579, 0.256676156574, 0.262573904298, 0.268179682113,
0.273510523045, 0.278725079401, 0.283798074261, 0.288755859858, 0.293711495514, 0.298540024556, 0.303202660636, 0.307723722115, 0.312136686485,
0.316510929668, 0.320823103675, 0.325061599754, 0.329250845847, 0.333404903584, 0.337481786689, 0.341478003981, 0.345410076747, 0.349276802698,
0.353155050352, 0.357055174830, 0.360924326908, 0.364761909620, 0.368534160768, 0.372219561935, 0.375965970561, 0.379837133354, 0.383697823226,
0.387509788827, 0.391294383841, 0.395027283063, 0.398805761668, 0.402714808096, 0.406648722824, 0.410557207556, 0.414440514338, 0.418281270173,
0.422101311085, 0.425921487535, 0.429708258188, 0.433414855526, 0.437113588260, 0.440894188305, 0.444702269231, 0.448484157653, 0.452247923518,
0.455979626530, 0.459680464278, 0.463339649468, 0.466960507431, 0.470544248238, 0.474091256304, 0.477614456193, 0.481114289829, 0.484597025237,
0.488049600937, 0.491511604916, 0.495056838882, 0.498638495167, 0.502143788814, 0.505593447821, 0.509025317989, 0.512445400947, 0.515831817485,
0.519169669140, 0.522481361650, 0.525786987556, 0.529082557203, 0.532387937393, 0.535693607451, 0.539042131765, 0.542445907579, 0.545931580767,
0.549599723684, 0.553417839780, 0.557224827183, 0.561055098051, 0.564975986003, 0.568990380621, 0.573121964995, 0.577399927778, 0.581947100667,
0.586726717568, 0.591716948652, 0.596740236407, 0.601900927218, 0.607552931270, 0.614097227575, 0.621247444919, 0.628629296746, 0.636894410971,
0.647118201427, 0.701473594388, 0.759117452800, 0.816827933730, 0.874580070648, 0.932356983196, 0.990148625585, 1.047946225923, 1.105743851253,
1.163541476583, 1.221339101914, 1.279136727244 ]
)
},
out: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.049218249549, 0.050340760298, 0.051463271048, 0.052585781797, 0.053708292546, 0.054830803295, 0.055953314045, 0.057075824794, 0.058198335543,
0.059320846293, 0.060443357042, 0.061565867791, 0.063424532172, 0.066451860312, 0.069540979037, 0.072767011953, 0.075906919979, 0.078853518191,
0.081631137728, 0.084115161140, 0.086479804114, 0.090146659344, 0.098326897931, 0.105813214308, 0.112411325511, 0.118632105327, 0.126340654717,
0.135121024858, 0.143188481435, 0.151214506061, 0.159704595685, 0.168946154075, 0.178917743693, 0.188988933153, 0.199496185802, 0.210829472801,
0.222607262009, 0.234859080761, 0.247268132837, 0.260349232373, 0.274083476359, 0.288130112770, 0.302582467828, 0.317331828344, 0.332620806037,
0.348365834915, 0.364049610993, 0.379997823816, 0.396454197491, 0.412256458371, 0.428299584401, 0.444563625444, 0.460140581966, 0.475797913493,
0.491724507182, 0.507769291577, 0.524243967159, 0.540321153567, 0.556518544281, 0.572986274856, 0.589827764317, 0.607037655073, 0.624500979893,
0.642132788801, 0.659260502589, 0.676925684511, 0.694832172329, 0.713193903044, 0.731687117698, 0.750046927552, 0.767681303891, 0.783847467497,
0.799775652757, 0.815021702518, 0.829406565570, 0.842479215886, 0.854706468324, 0.866698387523, 0.877330903455, 0.886205655894, 0.894607432632,
0.902626621574, 0.909273722489, 0.914867761327, 0.918285650651, 0.918940220570, 0.918992912762, 0.919122306060, 0.919952578245, 0.921038681814,
0.922098555256, 0.923158146120, 0.924217473745, 0.925276556137, 0.926335410063, 0.927394051136, 0.928452493899, 0.929510751894, 0.930568837735,
0.931626763171, 0.932684539147, 0.933742175856, 0.934799682795, 0.935857068813, 0.936914342150, 0.937971510485, 0.939028580973, 0.940085560280,
0.941142454614, 0.942199269764, 0.943256011120, 0.944312683707, 0.945369292206, 0.946425840978, 0.947482334089, 0.948538775326, 0.949595168219,
0.950651516058, 0.951707821906, 0.952764088621, 0.953820318865, 0.954876515118, 0.955932679692, 0.956988814742, 0.958044922274, 0.959101004161,
0.960157062147, 0.961213097856, 0.962269112803 ]
)
}
}));
this.gammaSub.push([this.subIdx('Nikon'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaIOLUT(
'Nikon Vivid',
{
rec: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ -0.342551352061, -0.288177568708, -0.233803785356, -0.179430002004, -0.125056218652, -0.070682435300, -0.016308651953, 0.038065131380, 0.090022266287,
0.124983618100, 0.174358067479, 0.200885292861, 0.210394128231, 0.219679538515, 0.229782588225, 0.237527072241, 0.243640168554, 0.250127754776,
0.257349865517, 0.264748252859, 0.270564224518, 0.275807100363, 0.280794974454, 0.285678082679, 0.290496609151, 0.295301613189, 0.299695171061,
0.303797972903, 0.307751983351, 0.311586237919, 0.315404817492, 0.319170201075, 0.322828977424, 0.326392115832, 0.329816995605, 0.333116458736,
0.336347797973, 0.339521970675, 0.342645003881, 0.345727309828, 0.348765618565, 0.351808171675, 0.354882352416, 0.357954246165, 0.360988936855,
0.363995548567, 0.366968530013, 0.369872023109, 0.372746601324, 0.375718615365, 0.378835757890, 0.382015542918, 0.385197001913, 0.388398496231,
0.391560845343, 0.394665368289, 0.397769976495, 0.400928640905, 0.404115357104, 0.407272557992, 0.410397071901, 0.413502895037, 0.416589818624,
0.419660824008, 0.422740719992, 0.425840284669, 0.428929810665, 0.431975923618, 0.434993999602, 0.438037471593, 0.441136068781, 0.444236363145,
0.447275819442, 0.450270537122, 0.453286432626, 0.456347163141, 0.459436026617, 0.462554221976, 0.465705641406, 0.468868557494, 0.472022133151,
0.475193176007, 0.478429604773, 0.481730408691, 0.485010213005, 0.488233925164, 0.491463556240, 0.494758069364, 0.498091267968, 0.501401033442,
0.504676474735, 0.507998529829, 0.511426279031, 0.514894259405, 0.518319250205, 0.521742852369, 0.525265607959, 0.528889614943, 0.532532949141,
0.536178537282, 0.539893166950, 0.543690024018, 0.547605615691, 0.551688497347, 0.555854084117, 0.560050009191, 0.564521264881, 0.569347955800,
0.574322784361, 0.579510092645, 0.584961457677, 0.590754171202, 0.597105965002, 0.604106477697, 0.611752014152, 0.620589041280, 0.630734397016,
0.641901685999, 0.704513814536, 0.767045464082, 0.829654095144, 0.892306570909, 0.954983997519, 1.017675103286, 1.080368518869, 1.143061934456,
1.205755350042, 1.268448765629, 1.331142181216 ]
)
},
out: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.049218249549, 0.050340760298, 0.051463271048, 0.052585781797, 0.053708292546, 0.054830803295, 0.055953314045, 0.057075824794, 0.058198335543,
0.059320846293, 0.060443357042, 0.061565867791, 0.063422106433, 0.065166902090, 0.066857240455, 0.068727634913, 0.070315430976, 0.071522246881,
0.072621736604, 0.073632345620, 0.074546172578, 0.075767169852, 0.077558928054, 0.079330994587, 0.081062569715, 0.082816923899, 0.087517230265,
0.094217660090, 0.100822872848, 0.106844083563, 0.113466488200, 0.123209893266, 0.132666302326, 0.141121837628, 0.149492480790, 0.160487736691,
0.172594382415, 0.185184084790, 0.198017570112, 0.212665734218, 0.228431904394, 0.244606313346, 0.261721930295, 0.280252238739, 0.299659730327,
0.319685136453, 0.339583171500, 0.359954596243, 0.380963884464, 0.400400861762, 0.419544431276, 0.439164017255, 0.458393958826, 0.477973742903,
0.497810160738, 0.517555133739, 0.537693887480, 0.557430697093, 0.577710884416, 0.597523047859, 0.616894400479, 0.636145035402, 0.654723587302,
0.673606897408, 0.691989257762, 0.710506630240, 0.728218016286, 0.745983563913, 0.762868835952, 0.779520832114, 0.795442039283, 0.810311738796,
0.824686064119, 0.837470043276, 0.849512612712, 0.860724908386, 0.870992043119, 0.880028241330, 0.888298577234, 0.895604283736, 0.901898605243,
0.907772519766, 0.913241598575, 0.917684640033, 0.918890180731, 0.918814825701, 0.918933210545, 0.918973452193, 0.919720908703, 0.920724222029,
0.921701328915, 0.922678175291, 0.923654778984, 0.924631156594, 0.925607323580, 0.926583294335, 0.927559082266, 0.928534699858, 0.929510158739,
0.930485469742, 0.931460642955, 0.932435687778, 0.933410612965, 0.934385426672, 0.935360136499, 0.936334749524, 0.937309272342, 0.938283711099,
0.939258071520, 0.940232358939, 0.941206578328, 0.942180734318, 0.943154831224, 0.944128873068, 0.945102863597, 0.946076806303, 0.947050704440,
0.948024561041, 0.948998378932, 0.949972160744, 0.950945908934, 0.951919625787, 0.952893313435, 0.953866973864, 0.954840608925, 0.955814220343,
0.956787809726, 0.957761378572, 0.958734928277 ]
)
}
}));
this.gammaSub.push([this.subIdx('Nikon'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaIOLUT(
'Nikon Monochrome',
{
rec: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ -0.342551352061, -0.288177568708, -0.233803785356, -0.179430002004, -0.125056218652, -0.070682435300, -0.016308651953, 0.038065131380, 0.090129558931,
0.118513428992, 0.161557439104, 0.183585697405, 0.200093975652, 0.208057578622, 0.215970131333, 0.225002608116, 0.233879495392, 0.240662071274,
0.247338185443, 0.254230227189, 0.261105306305, 0.267394020451, 0.272873708978, 0.278074662081, 0.283101734765, 0.288019832776, 0.292944821742,
0.297672426491, 0.302032614613, 0.306221352992, 0.310269266663, 0.314275256213, 0.318250784779, 0.322119607870, 0.325888885467, 0.329541475946,
0.333079047674, 0.336554832203, 0.339984067915, 0.343360976958, 0.346693108790, 0.349974270211, 0.353182034904, 0.356320329348, 0.359418720617,
0.362492160458, 0.365529954410, 0.368516385984, 0.371436781625, 0.374369295393, 0.377384246411, 0.380449869114, 0.383514484285, 0.386579658573,
0.389634808054, 0.392647838871, 0.395627110133, 0.398638883870, 0.401722968051, 0.404834439823, 0.407921483765, 0.410994007883, 0.414057208753,
0.417103783757, 0.420145602950, 0.423212741133, 0.426311460699, 0.429399300683, 0.432442612510, 0.435466396352, 0.438510650641, 0.441585590904,
0.444654826762, 0.447678826870, 0.450678493363, 0.453724102095, 0.456831012284, 0.459983753466, 0.463189922895, 0.466448049052, 0.469692451023,
0.472914434645, 0.476132751775, 0.479351891463, 0.482571917094, 0.485795265077, 0.489003126931, 0.492300997063, 0.495805683520, 0.499380185386,
0.502849518582, 0.506282440542, 0.509735949913, 0.513204774156, 0.516641723170, 0.520030088579, 0.523424396172, 0.526834100575, 0.530287729731,
0.533858145421, 0.537543411008, 0.541400840406, 0.545443580335, 0.549638874781, 0.553990299209, 0.558400834273, 0.562991914893, 0.567987937632,
0.572992749012, 0.578023423534, 0.583389324988, 0.589449547730, 0.596237282899, 0.603370029808, 0.610812834357, 0.618810651619, 0.628449397199,
0.641209364072, 0.656079610743, 0.670851711888, 0.685633413195, 0.700423865429, 0.715221980601, 0.730026806070, 0.744837506804, 0.759653351062,
0.774473698233, 0.789297986894, 0.804125719542 ]
)
},
out: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.049218249549, 0.050340760298, 0.051463271048, 0.052585781797, 0.053708292546, 0.054830803295, 0.055953314045, 0.057075824794, 0.058198335543,
0.059320846293, 0.060443357042, 0.061565867791, 0.063411298637, 0.065473225005, 0.067709381852, 0.069944812343, 0.071995254172, 0.073304162528,
0.074720219671, 0.076007169791, 0.077253960239, 0.078699062445, 0.081546572735, 0.084481566293, 0.087397030027, 0.090312742629, 0.096416171392,
0.104602992261, 0.111880792294, 0.118525378827, 0.125502768452, 0.134622916852, 0.143692343699, 0.152481137891, 0.161711453810, 0.172700686416,
0.184604076215, 0.196978236277, 0.209564548601, 0.223672279297, 0.238726919005, 0.254134628935, 0.270374429331, 0.287668992396, 0.305595138142,
0.324155748053, 0.343639382930, 0.363686479761, 0.384465305893, 0.404456370194, 0.424425227873, 0.444796339648, 0.464510678743, 0.484388513840,
0.504418236358, 0.524172308005, 0.544292886223, 0.564185830752, 0.584416939007, 0.603905098281, 0.622720493201, 0.641667395658, 0.660613507070,
0.679425795473, 0.696693040387, 0.714409322616, 0.732049896563, 0.750029943547, 0.767754182324, 0.784375558828, 0.799577226262, 0.813738486503,
0.827318392881, 0.839525636331, 0.851714184079, 0.862831025734, 0.872171976419, 0.880858961930, 0.889141803850, 0.896959604445, 0.903627190101,
0.909264232179, 0.913744505556, 0.917827820241, 0.921965195577, 0.926097506034, 0.930228497746, 0.934358028270, 0.938486197832, 0.942613099722,
0.946738820786, 0.950863441875, 0.954987038264, 0.959109680045, 0.963231432487, 0.967352356368, 0.971472508295, 0.975591940984, 0.979710703538,
0.983828841690, 0.987946398044, 0.992063412282, 0.996179921373, 1.000295959754, 1.004411559510, 1.008526750532, 1.012641560668, 1.016756015863,
1.020870140294, 1.024983956485, 1.029097485424, 1.033210746667, 1.037323758437, 1.041436537713, 1.045549100319, 1.049661460998, 1.053773633490,
1.057885630599, 1.061997464257, 1.066109145582, 1.070220684937, 1.074332091976, 1.078443375701, 1.082554544497, 1.086665606179, 1.090776568032,
1.094887436845, 1.098998218942, 1.103108920220 ]
)
}
}));
this.gammaSub.push([this.subIdx('Nikon'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaIOLUT(
'Nikon Portrait',
{
rec: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ -0.342551352061, -0.288177568708, -0.233803785356, -0.179430002004, -0.125056218652, -0.070682435300, -0.016308651953, 0.038065131380, 0.090377297204,
0.111226442710, 0.130633567550, 0.154389555468, 0.167484430608, 0.174839594233, 0.183469996634, 0.193294111001, 0.201590147870, 0.208632209126,
0.215987405560, 0.223629338832, 0.231017469096, 0.237919995757, 0.244328495635, 0.250389900549, 0.256464961207, 0.262363127247, 0.267986335890,
0.273335963136, 0.278548689567, 0.283619640858, 0.288574227782, 0.293525082167, 0.298362229115, 0.303041988045, 0.307568668181, 0.311976904229,
0.316346477308, 0.320656949316, 0.324898573361, 0.329092080323, 0.333253752423, 0.337335390357, 0.341329550890, 0.345261031804, 0.349127299667,
0.353006646136, 0.356915623834, 0.360789759371, 0.364625604109, 0.368397738648, 0.372080006233, 0.375820505631, 0.379695767711, 0.383563170183,
0.387373448545, 0.391156890498, 0.394891149850, 0.398666495274, 0.402574220925, 0.406510206401, 0.410414856020, 0.414296056300, 0.418138859891,
0.421960984406, 0.425782809615, 0.429572667473, 0.433281562063, 0.436977734201, 0.440756156341, 0.444565180033, 0.448345285966, 0.452106942345,
0.455840644695, 0.459545962435, 0.463207496528, 0.466829072947, 0.470414623672, 0.473964223990, 0.477488781828, 0.480988569456, 0.484470908978,
0.487924337343, 0.491384406479, 0.494925495146, 0.498507119369, 0.502014399827, 0.505463972776, 0.508895331480, 0.512316255254, 0.515704743895,
0.519044770981, 0.522357771953, 0.525665262942, 0.528962750745, 0.532271028161, 0.535581223979, 0.538931946024, 0.542336228199, 0.545819335767,
0.549487438103, 0.553313651701, 0.557125889811, 0.560955468698, 0.564878349439, 0.568897239861, 0.573033256488, 0.577313495907, 0.581857451013,
0.586635041242, 0.591627926730, 0.596657408025, 0.601816456841, 0.607467824225, 0.614007423583, 0.621166374566, 0.628556362922, 0.636811644190,
0.647065080028, 0.699367091432, 0.753605174839, 0.807897396769, 0.862229480648, 0.916586008425, 0.970957527998, 1.025337298823, 1.079717878082,
1.134098457344, 1.188479036605, 1.242859615866 ]
)
},
out: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.049218249549, 0.050340760298, 0.051463271048, 0.052585781797, 0.053708292546, 0.054830803295, 0.055953314045, 0.057075824794, 0.058198335543,
0.059320846293, 0.060443357042, 0.061565867791, 0.063423136263, 0.066462881746, 0.069554089606, 0.072792511194, 0.075979139105, 0.078932975596,
0.081758133236, 0.084242338721, 0.086596467332, 0.090414496703, 0.098632787117, 0.106105448010, 0.112691707091, 0.118886717045, 0.126607307194,
0.135381970506, 0.143446256435, 0.151488012869, 0.159970471694, 0.169194405121, 0.179186968869, 0.189265265898, 0.199781372605, 0.211087600159,
0.222882010816, 0.235146602782, 0.247564852184, 0.260618796978, 0.274368775975, 0.288433493799, 0.302881118328, 0.317614474157, 0.332918076574,
0.348667044053, 0.364322697224, 0.380282324822, 0.396752589681, 0.412531634149, 0.428585041949, 0.444846606680, 0.460417216218, 0.476090075277,
0.492011628887, 0.508051391505, 0.524528209215, 0.540603806442, 0.556812950525, 0.573270231981, 0.590112805234, 0.607317141768, 0.624784484757,
0.642417689555, 0.659550111550, 0.677221493533, 0.695127386540, 0.713484669929, 0.731966315749, 0.750300629233, 0.767925373457, 0.784054829694,
0.799974605754, 0.815195868133, 0.829558770206, 0.842627040471, 0.854840162809, 0.866820716862, 0.877438793785, 0.886299046904, 0.894688794916,
0.902697672504, 0.909338504065, 0.914892130237, 0.918231731742, 0.918915083032, 0.919043476065, 0.919239149469, 0.920136059151, 0.921288779755,
0.922415251170, 0.923541422251, 0.924667313553, 0.925792944212, 0.926918332049, 0.928043493659, 0.929168444498, 0.930293198958, 0.931417770448,
0.932542171453, 0.933666413606, 0.934790507742, 0.935914463954, 0.937038291645, 0.938161999576, 0.939285595908, 0.940409088244, 0.941532483668,
0.942655788782, 0.943779009735, 0.944902152257, 0.946025221689, 0.947148223006, 0.948271160844, 0.949394039523, 0.950516863068, 0.951639635232,
0.952762359509, 0.953885039159, 0.955007677216, 0.956130276510, 0.957252839678, 0.958375369175, 0.959497867293, 0.960620336166, 0.961742777781,
0.962865193993, 0.963987586528, 0.965109956997 ]
)
}
}));
this.gammaSub.push([this.subIdx('Nikon'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaIOLUT(
'Nikon Landscape',
{
rec: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ -0.342551352061, -0.288177568708, -0.233803785356, -0.179430002004, -0.125056218652, -0.070682435300, -0.016308651953, 0.038065131380, 0.090014281627,
0.125262756783, 0.175394871323, 0.201468245826, 0.210914156758, 0.220255090663, 0.230320004433, 0.237899490783, 0.244037210321, 0.250534903571,
0.257758397707, 0.265125636355, 0.270861063964, 0.276088839523, 0.281077811268, 0.285962815933, 0.290792094924, 0.295589187329, 0.299952875638,
0.304038876382, 0.307985999261, 0.311823369684, 0.315647582100, 0.319412786133, 0.323068235362, 0.326624111035, 0.330039441071, 0.333332259731,
0.336562154474, 0.339737539911, 0.342863954371, 0.345947530923, 0.348988934054, 0.352034941511, 0.355105612192, 0.358169762222, 0.361200953136,
0.364207980690, 0.367181171002, 0.370081303694, 0.372961364740, 0.375946473112, 0.379070635127, 0.382250836990, 0.385437951772, 0.388644687165,
0.391806775547, 0.394912899124, 0.398023732258, 0.401189225678, 0.404377387650, 0.407533994910, 0.410661186470, 0.413769752051, 0.416856569741,
0.419928375398, 0.423011688238, 0.426113673928, 0.429202840995, 0.432247581554, 0.435269097809, 0.438320205573, 0.441423089653, 0.444521471455,
0.447557800230, 0.450556342802, 0.453581499220, 0.456648032790, 0.459742607442, 0.462868813548, 0.466028335421, 0.469195953395, 0.472352862884,
0.475531499554, 0.478780564930, 0.482087135150, 0.485363351397, 0.488586918940, 0.491824446382, 0.495130114255, 0.498468340983, 0.501777107483,
0.505058400010, 0.508397188549, 0.511840110704, 0.515312142846, 0.518738499960, 0.522176040842, 0.525720612003, 0.529356285838, 0.532997521466,
0.536642367114, 0.540365200664, 0.544175285378, 0.548107328251, 0.552192349558, 0.556349227616, 0.560560482382, 0.565069214291, 0.569899347725,
0.574871037285, 0.580070468084, 0.585551663364, 0.591351930507, 0.597726675336, 0.604734853205, 0.612436678142, 0.621316593050, 0.631412155268,
0.642407361803, 0.705185166051, 0.768799223484, 0.832491771003, 0.896228587957, 0.959990352659, 1.023765329935, 1.087542056186, 1.151318782440,
1.215095508694, 1.278872234948, 1.342648961202 ]
)
},
out: {
format: 'cube',
size: 129,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.049218249549, 0.050340760298, 0.051463271048, 0.052585781797, 0.053708292546, 0.054830803295, 0.055953314045, 0.057075824794, 0.058198335543,
0.059320846293, 0.060443357042, 0.061565867791, 0.063424602387, 0.065158719093, 0.066844337216, 0.068684208620, 0.070266797005, 0.071428317343,
0.072543802315, 0.073565478875, 0.074487180884, 0.075615127884, 0.077358107033, 0.079057203638, 0.080785142809, 0.082568609461, 0.087086590075,
0.093769852277, 0.100367927146, 0.106434856177, 0.113007625398, 0.122717469882, 0.132201743401, 0.140683305794, 0.149045991690, 0.160057857913,
0.172146745702, 0.184714602362, 0.197531016229, 0.212198748641, 0.227944458602, 0.244092918950, 0.261202823820, 0.279731408185, 0.299105025428,
0.319106165979, 0.339034794480, 0.359391749047, 0.380382823923, 0.399821157211, 0.418933430124, 0.438529485049, 0.457746216431, 0.477300192906,
0.497127504497, 0.516859464506, 0.536977578582, 0.556704529271, 0.576955897034, 0.596747644730, 0.616086030400, 0.635316040970, 0.653874499813,
0.672741331452, 0.691099597289, 0.709588441640, 0.727270882484, 0.745001904949, 0.761868035665, 0.778540245167, 0.794460294454, 0.809377586481,
0.823762555425, 0.836596499610, 0.848686298910, 0.859908326372, 0.870238967260, 0.879342623248, 0.887630917192, 0.894981327227, 0.901356587391,
0.907285193365, 0.912856265123, 0.917595172338, 0.918922145184, 0.918818251367, 0.918920088871, 0.918943684746, 0.919674534281, 0.920661245730,
0.921621755491, 0.922582009166, 0.923542024281, 0.924501817154, 0.925461402979, 0.926420795907, 0.927380009116, 0.928339054879, 0.929297944628,
0.930256689010, 0.931215297944, 0.932173780667, 0.933132145787, 0.934090401321, 0.935048554738, 0.936006612998, 0.936964582584, 0.937922469536,
0.938880279483, 0.939838017669, 0.940795688979, 0.941753297967, 0.942710848875, 0.943668345656, 0.944625791994, 0.945583191322, 0.946540546837,
0.947497861522, 0.948455138154, 0.949412379321, 0.950369587435, 0.951326764746, 0.952283913348, 0.953241035193, 0.954198132101, 0.955155205767,
0.956112257773, 0.957069289591, 0.958026302593 ]
)
}
}));
this.gammaSub.push([this.subIdx('Nikon'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaHLG(
'Hybrid-Log Gamma', {r: 0.5, a: 0.17883277, b: 0.28466892, c: c = 0.55991073}));
this.gammaSub.push([this.subIdx('HDR Display')]);
this.gammaDat.push(false);
this.PQ = this.gammas.length;
this.gammas.push(new LUTGammaPQ(
'Dolby PQ', {Lmax: 300}));
this.gammaSub.push([this.subIdx('HDR Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaITUProp(
'ITU Proposal (400%)', {m: 0.12314858 }));
this.gammaSub.push([this.subIdx('HDR Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaITUProp(
'ITU Proposal (800%)', {m: 0.083822216783 }));
this.gammaSub.push([this.subIdx('HDR Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaBBC283(
'BBC WHP283 (400%)', {m: 0.139401137752}));
this.gammaSub.push([this.subIdx('HDR Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaBBC283(
'BBC WHP283 (800%)', {m: 0.097401889128}));
this.gammaSub.push([this.subIdx('HDR Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'Cine+709',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array(
[ 0.0954769032273705,0.0954769032273705,0.0954769032273705,0.0954769032273705,0.0959562285059629,0.0986129722666667,0.1007855288203324,0.1029588361822092,
0.1050407417212121,0.1074285380684262,0.1099629372543499,0.1130464363605083,0.1177288390959922,0.1240367851088954,0.1317128550772239,0.1446664451886608,
0.1593985946267840,0.1769490133200391,0.1979285524238514,0.2225798091347019,0.2503051930361682,0.2801856689798631,0.3139098335757576,0.3497721297235581,
0.3877613456508310,0.4271625989083088,0.4681812744179862,0.5088015816062559,0.5499994622256109,0.5872390699675464,0.6241285479593353,0.6586195764848485,
0.6911271021012708,0.7225135523745846,0.7510633629106550,0.7792410185047898,0.8018812229200390,0.8241061586361680,0.8444257556473117,0.8612752989857283,
0.8756776019698924,0.8878454024414468,0.8998906007616814,0.9083085358631475,0.9159943303734116,0.9179524270561095,0.9184450504086021,0.9188426483980449,
0.9188660801564027,0.9188660801564027,0.9188660801564027,0.9188660801564027,0.9188660801564027,0.9188660801564027,0.9188660801564027,0.9188660801564027,
0.9188660801564027,0.9188660801564027,0.9188660801564027,0.9188660801564027,0.9188660801564027,0.9188660801564027,0.9188660801564027,0.9188660801564027,
0.9188660801564027 ]
)
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'HG3250G36 (HG1)',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289119261, 0.0390133011, 0.0491185295, 0.0592199045, 0.0693212795, 0.0794265079, 0.0895278829, 0.0996292579, 0.1097344862, 0.1198489276,
0.1298980573, 0.1408828420, 0.1553893266, 0.1696390594, 0.1796483651, 0.1892650047, 0.1996267379, 0.2109056292, 0.2231518541, 0.2363968859,
0.2507801221, 0.2663814894, 0.2833530851, 0.3017307664, 0.3217218418, 0.3432416445, 0.3666160839, 0.3916727667, 0.4184672745, 0.4470575917,
0.4773207767, 0.5091313677, 0.5421846974, 0.5762867165, 0.6109211495, 0.6457898131, 0.6803577003, 0.7141192878, 0.7466272917, 0.7773880135,
0.8059901984, 0.8322521580, 0.8557442859, 0.8765194612, 0.8944932047, 0.9097234957, 0.9222535787, 0.9320576722, 0.9391599182, 0.9435720152,
0.9453050700, 0.9453481677, 0.9453645091, 0.9453808472, 0.9453971825, 0.9454135154, 0.9454298461, 0.9454461750, 0.9454625023, 0.9454788282,
0.9454951528, 0.9455114764, 0.9455277991, 0.9455441211, 0.9455604423 ])
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'HG4600G30 (HG2)',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289119261, 0.0390133011, 0.0491185295, 0.0592199045, 0.0693212795, 0.0794265079, 0.0895278829, 0.0996553906, 0.1096969204, 0.1197434680,
0.1300527920, 0.1398311906, 0.1468566085, 0.1533670948, 0.1610151214, 0.1688820435, 0.1774935574, 0.1866581433, 0.1966808348, 0.2074564436,
0.2191268498, 0.2317682073, 0.2455176199, 0.2603790492, 0.2765968032, 0.2942480585, 0.3134300198, 0.3341571316, 0.3564861986, 0.3806666873,
0.4065803294, 0.4343884698, 0.4638191042, 0.4948531790, 0.5272277574, 0.5608216165, 0.5951559422, 0.6299771584, 0.6646186294, 0.6987260516,
0.7318205453, 0.7634567283, 0.7931709338, 0.8204843055, 0.8452075650, 0.8672560235, 0.8865311958, 0.9029141596, 0.9167743026, 0.9273184101,
0.9349663489, 0.9395128970, 0.9408997630, 0.9409981918, 0.9410966035, 0.9411950004, 0.9412933846, 0.9413917576, 0.9414901209, 0.9415884758,
0.9416868234, 0.9417851647, 0.9418835005, 0.9419818315, 0.9420801584
])
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'HG3259G40 (HG3)',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289066996, 0.0390080746, 0.0491133029, 0.0592146779, 0.0693160529, 0.0794212813, 0.0895274289, 0.0996275371, 0.1097317411, 0.1198302809,
0.1299429475, 0.1408970657, 0.1552031760, 0.1717752306, 0.1892071895, 0.2006407186, 0.2120103562, 0.2243506886, 0.2376914329, 0.2520455973,
0.2677236515, 0.2847553072, 0.3031662886, 0.3232262007, 0.3449501629, 0.3684849719, 0.3939471151, 0.4212682380, 0.4505027013, 0.4816786310,
0.5147395794, 0.5493902993, 0.5853519151, 0.6224500491, 0.6602954096, 0.6982916141, 0.7358964535, 0.7727585471, 0.8081865176, 0.8417273995,
0.8728933556, 0.9014834174, 0.9270848718, 0.9497747086, 0.9693455759, 0.9858782162, 0.9996523080, 1.0104835282, 1.0185295603, 1.0238233299,
1.0264157353, 1.0267448930, 1.0268009760, 1.0268570479, 1.0269131101, 1.0269691639, 1.0270252103, 1.0270812505, 1.0271372851, 1.0271933149,
1.0272493406, 1.0273053626, 1.0273613816, 1.0274173978, 1.0274734116
])
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLUT(
'HG4609G33 (HG4)',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289066996, 0.0390080746, 0.0491133029, 0.0592146779, 0.0693160529, 0.0794212813, 0.0895274289, 0.0996411169, 0.1097173681, 0.1198015349,
0.1300188580, 0.1409229155, 0.1533254990, 0.1619671583, 0.1697650309, 0.1784851434, 0.1878555576, 0.1979180070, 0.2086787493, 0.2205086771,
0.2331925123, 0.2470263651, 0.2619660359, 0.2782308184, 0.2958470084, 0.3151658061, 0.3359448068, 0.3585449682, 0.3830110669, 0.4093441902,
0.4376611883, 0.4678268593, 0.4998414096, 0.5337495973, 0.5690954906, 0.6057033518, 0.6430593583, 0.6810431909, 0.7188393700, 0.7560127244,
0.7920738969, 0.8265670006, 0.8588105017, 0.8885823478, 0.9155984146, 0.9396436154, 0.9606399052, 0.9785982038, 0.9935443419, 1.0055353536,
1.0142014922, 1.0196049620, 1.0216801052, 1.0218009160, 1.0219109031, 1.0220208737, 1.0221308300, 1.0222407738, 1.0223507068, 1.0224606304,
1.0225705459, 1.0226804542, 1.0227903565, 1.0229002533, 1.0230101456
])
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLUT(
'HG8000G36 (HG5)',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289119261, 0.0390133011, 0.0491185295, 0.0592199045, 0.0693212795, 0.0794265079, 0.0895278829, 0.0996292579, 0.1097344862, 0.1198489276,
0.1299131451, 0.1408929822, 0.1553215448, 0.1702013305, 0.1802091941, 0.1893485435, 0.1993959417, 0.2103733785, 0.2223045456, 0.2353777085,
0.2496227612, 0.2652447146, 0.2821811945, 0.3008422528, 0.3210456569, 0.3429178434, 0.3666316002, 0.3920708636, 0.4192194078, 0.4479199726,
0.4780880788, 0.5094053957, 0.5414383300, 0.5740738032, 0.6066805223, 0.6389955014, 0.6704069910, 0.7007064958, 0.7292187950, 0.7559569289,
0.7806348947, 0.8029689791, 0.8230861655, 0.8408963689, 0.8564389322, 0.8698473489, 0.8812246137, 0.8908836364, 0.8989333228, 0.9054965229,
0.9108959988, 0.9151403254, 0.9186276595, 0.9213008517, 0.9234154911, 0.9251431532, 0.9266552210, 0.9281114218, 0.9295670329, 0.9310225190,
0.9324778974, 0.9339331821, 0.9353883852, 0.9368435178, 0.9382985887
])
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'HG8000G30 (HG6)',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289119261, 0.0390133011, 0.0491185295, 0.0592199045, 0.0693212795, 0.0794265079, 0.0895278829, 0.0996169125, 0.1097384034, 0.1198489276,
0.1298870124, 0.1408907364, 0.1548247048, 0.1634298851, 0.1702371250, 0.1782319100, 0.1865795187, 0.1955763536, 0.2052081749, 0.2156689318,
0.2269707590, 0.2391943796, 0.2524886635, 0.2668345440, 0.2824460540, 0.2994395956, 0.3177970478, 0.3377233763, 0.3592433017, 0.3823295878,
0.4070777292, 0.4335311931, 0.4614344905, 0.4907406185, 0.5212404987, 0.5527337336, 0.5847939369, 0.6170220502, 0.6491108984, 0.6805687615,
0.7108898435, 0.7399171792, 0.7669757072, 0.7922223456, 0.8152037405, 0.8356987978, 0.8538505549, 0.8697311962, 0.8831687395, 0.8946665384,
0.9041688565, 0.9120572730, 0.9182633935, 0.9219116984, 0.9242043102, 0.9248527786, 0.9248533416, 0.9248539045, 0.9248544674, 0.9248550302,
0.9248555930, 0.9248561557, 0.9248567184, 0.9248572811, 0.9248578437
])
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLUT(
'HG8009G40 (HG7)',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289066996, 0.0390080746, 0.0491133029, 0.0592146779, 0.0693160529, 0.0794212813, 0.0895274289, 0.0996275371, 0.1097317411, 0.1198436325,
0.1299285967, 0.1408945953, 0.1552663117, 0.1715037553, 0.1913565095, 0.2031061167, 0.2140999104, 0.2259405776, 0.2387913409, 0.2528145644,
0.2681420786, 0.2848613503, 0.3030418722, 0.3228892377, 0.3444812433, 0.3678989540, 0.3932250761, 0.4203831747, 0.4493878944, 0.4801171377,
0.5123261936, 0.5459612126, 0.5804585247, 0.6156461338, 0.6509655445, 0.6859977463, 0.7202441597, 0.7532609022, 0.7846799200, 0.8140532836,
0.8412852225, 0.8660052040, 0.8884392419, 0.9082448431, 0.9255184893, 0.9405191314, 0.9534382425, 0.9643303641, 0.9733885098, 0.9808103005,
0.9868613395, 0.9917888130, 0.9958440242, 0.9986304913, 1.0009083204, 1.0026796959, 1.0041240764, 1.0054206269, 1.0067005427, 1.0079803485,
1.0092600596, 1.0105396883, 1.0118192453, 1.0130987403, 1.0143781809
])
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLUT(
'HG8009G33 (HG8)',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289066996, 0.0390080746, 0.0491133029, 0.0592146779, 0.0693160529, 0.0794212813, 0.0895274289, 0.0996131640, 0.1097443190, 0.1198734000,
0.1298405590, 0.1408838669, 0.1554578491, 0.1645652958, 0.1718634910, 0.1802970185, 0.1893520704, 0.1990671209, 0.2096601566, 0.2209904706,
0.2334700912, 0.2469643581, 0.2615734729, 0.2776846438, 0.2951768666, 0.3141884412, 0.3348829905, 0.3573398808, 0.3816512461, 0.4078724933,
0.4360581481, 0.4659481794, 0.4975837249, 0.5308537944, 0.5652170403, 0.6006049742, 0.6364899111, 0.6724600536, 0.7079666339, 0.7426016615,
0.7758179395, 0.8072739240, 0.8367058232, 0.8635551123, 0.8878673878, 0.9096518510, 0.9286912862, 0.9452586499, 0.9593532614, 0.9711499108,
0.9810043362, 0.9890354824, 0.9952331711, 0.9990479469, 1.0014082724, 1.0021397119, 1.0021498482, 1.0021599834, 1.0021701175, 1.0021802508,
1.0021903834, 1.0022005153, 1.0022106466, 1.0022207774, 1.0022309078
])
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLUT(
'CineGamma1',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289066996, 0.0390080746, 0.0491133029, 0.0592146779, 0.0693160529, 0.0794212813, 0.0895274289, 0.0996411169, 0.1097173681, 0.1198015349,
0.1300188580, 0.1409229155, 0.1533254990, 0.1619671583, 0.1697650309, 0.1784851434, 0.1878555576, 0.1979180070, 0.2086787493, 0.2205086771,
0.2331925123, 0.2470263651, 0.2619660359, 0.2782308184, 0.2958470084, 0.3151658061, 0.3359448068, 0.3585449682, 0.3830110669, 0.4093441902,
0.4376611883, 0.4678268593, 0.4998414096, 0.5337495973, 0.5690954906, 0.6057033518, 0.6430593583, 0.6810431909, 0.7188393700, 0.7560127244,
0.7920738969, 0.8265670006, 0.8588105017, 0.8885823478, 0.9155984146, 0.9396436154, 0.9606399052, 0.9785982038, 0.9935443419, 1.0055353536,
1.0142014922, 1.0196049620, 1.0216801052, 1.0218009160, 1.0219109031, 1.0220208737, 1.0221308300, 1.0222407738, 1.0223507068, 1.0224606304,
1.0225705459, 1.0226804542, 1.0227903565, 1.0229002533, 1.0230101456
])
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(true);
this.gammas.push(new LUTGammaLUT(
'CineGamma2',
{
format: 'cube',
size: 65,
min: [0,0,0],
max: [1,1,1],
lut: new Float64Array([
0.0289119261, 0.0390133011, 0.0491185295, 0.0592199045, 0.0693212795, 0.0794265079, 0.0895278829, 0.0996553906, 0.1096969204, 0.1197434680,
0.1300527920, 0.1398311906, 0.1468566085, 0.1533670948, 0.1610151214, 0.1688820435, 0.1774935574, 0.1866581433, 0.1966808348, 0.2074564436,
0.2191268498, 0.2317682073, 0.2455176199, 0.2603790492, 0.2765968032, 0.2942480585, 0.3134300198, 0.3341571316, 0.3564861986, 0.3806666873,
0.4065803294, 0.4343884698, 0.4638191042, 0.4948531790, 0.5272277574, 0.5608216165, 0.5951559422, 0.6299771584, 0.6646186294, 0.6987260516,
0.7318205453, 0.7634567283, 0.7931709338, 0.8204843055, 0.8452075650, 0.8672560235, 0.8865311958, 0.9029141596, 0.9167743026, 0.9273184101,
0.9349663489, 0.9395128970, 0.9408997630, 0.9409981918, 0.9410966035, 0.9411950004, 0.9412933846, 0.9413917576, 0.9414901209, 0.9415884758,
0.9416868234, 0.9417851647, 0.9418835005, 0.9419818315, 0.9420801584
])
}));
this.gammaSub.push([this.subIdx('Sony'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGen(
'Canon WideDR',
{
blk: [ 4.143864904, 0.062733691 ],
bot: [ 4.143864904, 0.062733691 ],
low: [ 1.123724397, 0.023399556, 0.725329449, 1.793298155, 1.618753622, 1.512604528, 0.010239171 ],
mid: [ 1.175009007, -0.889534156, 0.366778059, 1.74451447, 0.920944271, 0.662662566, 0.200816705 ],
high: [ 1.075984367, 0.080088043, 0.54850957, 1.222465712, 1.162090342, 1.216780039, 1.001012923 ],
top: [ 1.184590585, 0.32981997, 0.381916345, 1.047595142, 1.356034214, 1.40672617, 3.213458281 ]
}));
this.gammaSub.push([this.subIdx('Canon'),this.subIdx('Display')]);
this.gammaDat.push(false);
this.rec709 = this.gammas.length;
this.gammas.push(new LUTGammaGam(
'Rec709', [ 1/0.45, 4.50000000, 0.09900000, 0.01800000, 0.08100000, 1.9 ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'Rec2020 12-bit', [ 1/0.45, 4.50000000, 0.09930000, 0.01810000, 0.08145000, 1.9 ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'sRGB', [ 2.40000000,12.92000000, 0.05500000, 0.00313080, 0.04015966, 2.2 ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'DCI', [ 2.6,1, 0, 0.0000001, 0.0000001, 2.6 ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLin(
'Scene Linear IRE', 0.2));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaLin(
'Scene Reflectance', 0.18));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'ProPhoto / ROMM', [ 1.8,16, 0, Math.pow(16,1.8/-0.8), Math.pow(Math.pow(16,1.8/-0.8),1/1.8), 1.8 ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ1.5', [ 1.5,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ1.6', [ 1.6,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ1.7', [ 1.7,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ1.8', [ 1.8,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ1.9', [ 1.9,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ2.0', [ 2.0,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ2.1', [ 2.1,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ2.2', [ 2.2,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ2.3', [ 2.3,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ2.4', [ 2.4,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ2.5', [ 2.5,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaGam(
'γ2.6', [ 2.6,1, 0, 0.0000001, 0.0000001, false ]));
this.gammaSub.push([this.subIdx('Display')]);
this.gammaDat.push(false);
this.LA = this.gammas.length;
this.gammas.push(new LUTGammaLA(
'LA'));
this.gammaSub.push([0,1,2,3,4,5,6,7,8,9,10,11,12]);
this.gammaDat.push(false);
this.gammas.push(new LUTGammaNull(
'Null'));
this.gammaSub.push([0,1,2,3,4,5,6,7,8,9,10,11,12]);
this.gammaDat.push(true);
var max = this.gammas.length;
var logList = [], linList = [], genList = [], hdrList = [], ioList = [];
var firstLin = false;
for (var i=0; i < max; i++) {
this.catList[i] = this.gammas[i].cat;
switch(this.gammas[i].cat) {
case 0: logList.push({name: this.gammas[i].name, idx: i});
this.inList.push({name: this.gammas[i].name, idx: i});
this.outList.push({name: this.gammas[i].name, idx: i});
break;